Commit 95cf4f4f authored by wei's avatar wei

comit

parent a9115a80
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
'riskAdd' 'riskAdd'
], ],
// 不需要展示底部tabbar的页面 // 不需要展示底部tabbar的页面
noTab:["login", "login2", 'addCurrent','addPresent','addInherent','riskInherent',"choose-people","scan",'success','fail','warn','center','reset-pas-two','riskTaskList','riskBigDetail','riskView'], noTab:["login", "login2", 'addCurrent','addPresent','addInherent','riskInherent',"choose-people","scan",'success','fail','warn','center','reset-pas-two','riskTaskList','riskBigDetail','riskView','resultPage'],
// cachePage预先定义的缓存页面 // cachePage预先定义的缓存页面
otherCache: [], otherCache: [],
// 专门处理列表缓存的页面,这些页面缓存逻辑与其他缓存不一样去详情返回列表缓存,但是进入列表必须刷新,如何有需要缓存的列表请放到这里来。 // 专门处理列表缓存的页面,这些页面缓存逻辑与其他缓存不一样去详情返回列表缓存,但是进入列表必须刷新,如何有需要缓存的列表请放到这里来。
......
...@@ -9,14 +9,14 @@ import './permission' ...@@ -9,14 +9,14 @@ import './permission'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import util from './api/util.js' import util from './api/util.js'
import {DropdownMenu, DropdownItem, Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar,DatetimePicker, import {DropdownMenu, DropdownItem, Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar,DatetimePicker,
Step, Steps,Lazyload } from 'vant' Step, Steps,Lazyload,Popover,Collapse, CollapseItem } from 'vant'
import 'lib-flexible/flexible' import 'lib-flexible/flexible'
import vueEsign from 'vue-esign' import vueEsign from 'vue-esign'
Vue.use(vueEsign) Vue.use(vueEsign)
Vue.prototype.util = util Vue.prototype.util = util
Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify) Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify)
.use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky) .use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky)
.use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker).use(Step).use(Steps).use(Lazyload) .use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker).use(Step).use(Steps).use(Popover).use(Lazyload).use(Collapse).use(CollapseItem)
Vue.use(DropdownMenu); Vue.use(DropdownMenu);
Vue.use(DropdownItem); Vue.use(DropdownItem);
// 引用高德地图组件 main.js // 引用高德地图组件 main.js
......
...@@ -191,6 +191,11 @@ const routes = [{ ...@@ -191,6 +191,11 @@ const routes = [{
name: 'taskDetail', name: 'taskDetail',
component: () => import('../views/riskProject/taskLedger/taskDetail.vue'), component: () => import('../views/riskProject/taskLedger/taskDetail.vue'),
}, },
{//任务台账
path: '/resultPage',
name: 'resultPage',
component: () => import('../views/riskProject/add/resultPage.vue'),
},
] ]
const router = new VueRouter({ const router = new VueRouter({
......
...@@ -14,17 +14,14 @@ ...@@ -14,17 +14,14 @@
<van-field required clickable name="floorId" :value="form.floorId" label="所属楼层" placeholder="请选择" <van-field required clickable name="floorId" :value="form.floorId" label="所属楼层" placeholder="请选择"
@click="seletFloor('floor')" :rules="[{ required: true, message: '所属楼层不能为空' }]" /> @click="seletFloor('floor')" :rules="[{ required: true, message: '所属楼层不能为空' }]" />
<van-field readonly required name="roomName" :value="form.roomName" label="所属房间" placeholder="请输入" <div style="display: flex;">
<van-field readonly required name="roomName" :value="form.roomName" label="所属房间" placeholder="请输入"
@click="seletRoom('room')" :rules="[{ required: true, message: '所属房间不能为空' }]" /> @click="seletRoom('room')" :rules="[{ required: true, message: '所属房间不能为空' }]" />
<van-field <van-button icon="plus" type="info" />
required </div>
clickable
name="name" <van-field required clickable name="name" v-model="form.name" label="风险源名称" placeholder="请输入"
v-model="form.name" :rules="[{ required: true, message: '风险源名称不能为空' }]" />
label="风险源名称"
placeholder="请输入"
:rules="[{ required: true, message: '风险源名称不能为空' }]"
/>
<van-field v-model="form.factor" required name="factor" label="风险因素" placeholder="请选择" <van-field v-model="form.factor" required name="factor" label="风险因素" placeholder="请选择"
@click="seletFactor('factor')" :rules="[{ required: true, message: '风险因素不能为空' }]" /> @click="seletFactor('factor')" :rules="[{ required: true, message: '风险因素不能为空' }]" />
...@@ -32,7 +29,9 @@ ...@@ -32,7 +29,9 @@
:rules="[{ required: true, message: '准事故类型不能为空' }]" /> :rules="[{ required: true, message: '准事故类型不能为空' }]" />
<van-field readonly v-model="form.level" required name="level" label="风险等级" placeholder="请选择" <van-field readonly v-model="form.level" required name="level" label="风险等级" placeholder="请选择"
@click="seletGrade('level')" :rules="[{ required: true, message: '风险等级不能为空' }]" /> @click="seletGrade" :rules="[{ required: true, message: '风险等级不能为空' }]" />
<!-- <van-field readonly v-model="form.level" required name="level" label="风险等级" placeholder="请选择"
@click="seletGrade('level')" :rules="[{ required: true, message: '风险等级不能为空' }]" /> -->
<van-field required name="presenceLocation" v-model="form.presenceLocation" label="存在部位" placeholder="请输入" <van-field required name="presenceLocation" v-model="form.presenceLocation" label="存在部位" placeholder="请输入"
:rules="[{ required: true, message: '存在部位不能为空' }]" /> :rules="[{ required: true, message: '存在部位不能为空' }]" />
...@@ -167,6 +166,35 @@ ...@@ -167,6 +166,35 @@
@click="showTrouble = true" @click="showTrouble = true"
:rules="[{ required: true, message: '事故类型不能为空' }]" :rules="[{ required: true, message: '事故类型不能为空' }]"
/> --> /> -->
<van-dialog v-model="showGradeDialog" title="风险评测配置" :show-cancel-button="false" :show-confirm-button="false" >
<div class="dialogContain">
<van-collapse v-model="activeNames">
<van-collapse-item title="风险模型" name="1">
<van-field readonly required name="level" label="当前风险模型" placeholder="LS风险矩阵评估模型" />
</van-collapse-item>
<van-collapse-item title="风险模型配置" name="2">
<van-popover v-model="showPopover" trigger="click" :actions="columnsRiskRank"
@select="onSelect">
<template #reference>
<van-field v-model="possibleValue" readonly required name="level" label="发生的可能性"
placeholder="请选择" />
</template>
</van-popover>
<van-popover v-model="showPopoveSetRank" trigger="click" :actions="columnsSetRank"
@select="onSelectSetRank">
<template #reference>
<van-field v-model="severityValue" readonly required name="level" label="发生的可能性"
placeholder="请选择" />
</template>
</van-popover>
</van-collapse-item>
</van-collapse>
<van-row type="flex" justify="center" style="margin-top:10px">
<van-col span="6"><van-button size="small" plain type="info" @click="showGradeDialog = false">取消</van-button></van-col>
<van-col span="6"><van-button size="small" type="info" @click="goResultPage">开始测评</van-button></van-col>
</van-row>
</div>
</van-dialog>
<van-popup v-model="showTrouble" position="bottom"> <van-popup v-model="showTrouble" position="bottom">
<van-picker show-toolbar value-key="name" :columns="columnsTrouble" @confirm="onConTrouble" <van-picker show-toolbar value-key="name" :columns="columnsTrouble" @confirm="onConTrouble"
@cancel="showTrouble = false" /> @cancel="showTrouble = false" />
...@@ -235,6 +263,10 @@ export default { ...@@ -235,6 +263,10 @@ export default {
}, },
data() { data() {
return { return {
showPopoveSetRank: false,
activeNames: ["1"],
showPopover: false,
showGradeDialog: false,
taskId: "", taskId: "",
text: "添加固有风险", text: "添加固有风险",
id: "", id: "",
...@@ -270,10 +302,10 @@ export default { ...@@ -270,10 +302,10 @@ export default {
columnsTrouble: [], columnsTrouble: [],
setRank: "", //风险定级 setRank: "", //风险定级
showSetRank: false, showSetRank: false,
columnsSetRank: ["矩阵式定级", "其他定级方式"], columnsSetRank: ["矩阵式定级", "其他定级方式"],//严重程度
riskRank: "", // 风险等级 riskRank: "", // 风险等级
showRiskRank: false, showRiskRank: false,
columnsRiskRank: ["重大风险", "较大风险", "一般风险", "较小风险"], columnsRiskRank: [],//发生可能性
showSetRankMode: false, // 是否显示定级方式 showSetRankMode: false, // 是否显示定级方式
setRankMode: "", // 定级方式文字 setRankMode: "", // 定级方式文字
setRankModeImg: [], // 定级方式图片 setRankModeImg: [], // 定级方式图片
...@@ -301,17 +333,22 @@ export default { ...@@ -301,17 +333,22 @@ export default {
urgentImg: [], //应急措施图片 urgentImg: [], //应急措施图片
returnCause: "", // 退回原因 returnCause: "", // 退回原因
isShowreturnCause: false, isShowreturnCause: false,
possibleValue: "",
possibleScore:0,
severityValue: "",
severityScore:0,
}; };
}, },
created() { created() {
var userInfo = getUserInfo() var userInfo = getUserInfo()
this.form.buildingIds = this.$route.params.id this.form.buildingIds = this.$route.params.buildingId
this.form.planId = this.$route.params.planId this.form.planId = this.$route.params.planId
this.form.buildingName = '1号楼' this.form.buildingName = '1号楼'
this.form.userId = userInfo.userId this.form.userId = userInfo.userId
this.form.userName = userInfo.userName this.form.userName = userInfo.userName
this.form.deptName = userInfo.dept.deptName this.form.deptName = userInfo.dept.deptName
this.form.projectId = '测试项目' this.form.projectId = '测试项目',
this.form.level = this.$route.params.level ? this.$route.params.level :''
}, },
methods: { methods: {
seletFloor(name) { seletFloor(name) {
...@@ -354,28 +391,14 @@ export default { ...@@ -354,28 +391,14 @@ export default {
.then(res => { .then(res => {
console.log(res.data) console.log(res.data)
const arr = [] const arr = []
res.data.forEach(item=>{ res.data.forEach(item => {
arr.push({name:item.dictLabel}) arr.push({ name: item.dictLabel })
}) })
this.columnsTrouble = arr this.columnsTrouble = arr
}) })
.catch(() => { .catch(() => {
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
}); });
// this.columnsTrouble = [
// {
// name: '人的因素',
// },
// {
// name: '物的因素',
// },
// {
// name: '环境因素',
// },
// {
// name: '管理因素',
// },
// ]
}, },
//准事故类型 //准事故类型
seletType(name) { seletType(name) {
...@@ -384,46 +407,75 @@ export default { ...@@ -384,46 +407,75 @@ export default {
getFun(`/risk/plan/dict/data/list?dictType=risk_plan_type`) getFun(`/risk/plan/dict/data/list?dictType=risk_plan_type`)
.then(res => { .then(res => {
const arr = [] const arr = []
res.data.forEach(item=>{ res.data.forEach(item => {
arr.push({name:item.dictLabel}) arr.push({ name: item.dictLabel })
}) })
this.columnsTrouble = arr this.columnsTrouble = arr
}) })
.catch(() => { .catch(() => {
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
}); });
},
//风险等级
seletGrade(name) {
// this.showTrouble = true
// this.riskName = name
// this.columnsTrouble = [ // this.columnsTrouble = [
// { // {
// name: '物体打击', // name: '重大风险',
// }, // },
// { // {
// name: '车辆伤害', // name: '较大风险',
// }, // },
// { // {
// name: '起重伤害', // name: '一般风险',
// }, // },
// { // {
// name: '机械伤害', // name: '较小风险',
// }, // },
// ] // ]
this.getGradeList('possibility')
this.getGradeList('severity')
this.showGradeDialog = true
}, },
seletGrade(name) { //风险模型配置
this.showTrouble = true getGradeList(type) {
this.riskName = name // possibility 可能性 severity 严重性
this.columnsTrouble = [ getFun(`/risk/plan/matrix/${type}/list`).then(res => {
{ let arr = []
name: '重大风险', res.data.forEach(item => {
}, arr.push({ text: item.title, type: item.type, sort: item.sort, score: item.score })
{ })
name: '较大风险', if (type === 'possibility') {
}, this.columnsRiskRank = arr
{ } else {
name: '一般风险', this.columnsSetRank = arr
}, }
{
name: '较小风险', })
}, },
] // //后果严重程度
// getConsequence(){
// getFun(`/risk/plan/matrix/${type}/list`).then(res=>{
// })
// },
onSelect(data) {
this.possibleValue = data.text
this.possibleScore = data.score
},
onSelectSetRank(data) {
this.severityValue = data.text
this.severityScore = data.score
},
//开始测评
goResultPage(){
this.$router.push({
name:'resultPage',
params:{
score:this.severityScore * this.possibleScore
}
})
}, },
performTasks() { performTasks() {
console.log('1233213 :>> ', 1233213); console.log('1233213 :>> ', 1233213);
...@@ -712,4 +764,16 @@ export default { ...@@ -712,4 +764,16 @@ export default {
} }
} }
} }
.dialogContain {
width: 100%;
height: 100%;
padding: 10px;
box-sizing: border-box;
}
.van-button--info {
color: #cccc;
background-color: #f0f1f5;
border: 0.02667rem solid #f0f1f5;
}
</style> </style>
...@@ -116,7 +116,6 @@ export default { ...@@ -116,7 +116,6 @@ export default {
this.planId = this.$route.params.id || sessionStorage.getItem("planId"); this.planId = this.$route.params.id || sessionStorage.getItem("planId");
this.buildingId = this.$route.params.buildingId; this.buildingId = this.$route.params.buildingId;
this.buildingName = this.$route.params.buildingName; this.buildingName = this.$route.params.buildingName;
console.log(this.buildingId, this.buildingName);
this.getRiskList(this.planId); this.getRiskList(this.planId);
// this.postList(); // this.postList();
}, },
...@@ -140,7 +139,8 @@ export default { ...@@ -140,7 +139,8 @@ export default {
name: "addInherent", name: "addInherent",
params: { params: {
id: this.active, id: this.active,
planId: this.planId planId: this.planId,
buildingId:this.buildingId
} }
}); });
}, },
......
<template>
<div class="wrapper">
<LHeader :text="text"></LHeader>
<div class="section">
<p>该次测评风险值为:</p>
<div>
<p style="font-weight: bold;font-size: 20px;">{{ score }}</p>
</div>
<p>本次评估结果评定为:{{ level }}</p>
<van-divider></van-divider>
<van-field readonly label="所属模型:" placeholder="ls风险矩阵评估模型" />
<van-field readonly label="风险发生可能性:" placeholder="一般情况不会发生" />
<van-field readonly label="后果严重程度" placeholder="轻微影响" />
<van-field readonly label="判定标准:" placeholder="见下图" />
</div>
<div style="display: flex;margin: 10px 16px 0px; padding-bottom: 16px">
<van-button block type="info" @click="sureClose">确认本次测评结果</van-button>
<van-button block plain type="info" @click="resetClose">取消</van-button>
</div>
</div>
</template>
<script>
import { getFun, postFun } from "@/service/table.js";
import LHeader from "@/components/header.vue";
export default {
name:'resultPage',
components:{
LHeader
},
data(){
return{
text:'测评结果',
score:0,
level:''
}
},
created(){
this.getResult()
},
methods:{
getResult(){
getFun(`/risk/plan/matrix/score/${this.$route.params.score}`).then(res=>{
this.level = res.data.level
this.score = res.data.max
})
},
resetClose(){
this.$router.push({
name:'addInherent',
params:{
level:''
}
})
},
sureClose(){
this.$router.push({
name:'addInherent',
params:{
level:this.level
}
})
}
}
}
</script>
<style lang="less" scoped>
.wrapper{
width: 100%;
height: 100%;
.section{
width: 100%;
height: 100%;
padding: 10px;
box-sizing: border-box;
background: #fff;
font-size: 14px;
}
}
</style>
\ No newline at end of file
...@@ -147,7 +147,9 @@ ...@@ -147,7 +147,9 @@
/> />
</van-form> </van-form>
</van-tab> </van-tab>
<van-tab title="风险清单"> </van-tab> <van-tab title="风险清单">
</van-tab>
<van-tab title="审核记录"> <van-tab title="审核记录">
<div class="journal-wrap"> <div class="journal-wrap">
<van-cell-group inset> <van-cell-group inset>
...@@ -353,7 +355,7 @@ export default { ...@@ -353,7 +355,7 @@ export default {
this.$router.push({ this.$router.push({
name: "risk-big-detail", name: "risk-big-detail",
params: { params: {
id: data.businessId || data.id id: data.businessId || data.id,
} }
}); });
this.showIndex = null; this.showIndex = null;
......
...@@ -12,7 +12,7 @@ export default { ...@@ -12,7 +12,7 @@ export default {
name:'taskDetail', name:'taskDetail',
data() { data() {
return { return {
text: "任务单", text: "固有风险列表",
} }
}, },
components: { components: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment