Commit febf2825 authored by wei's avatar wei
Browse files

add.

parent e1ca3828
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@
                            <van-popover v-model="showPopoveSetRank" trigger="click" :actions="columnsSetRank"
                                @select="onSelectSetRank">
                                <template #reference>
                                    <van-field v-model="severityValue" readonly required name="level" label="发生的可能性"
                                    <van-field v-model="severityValue" readonly required name="level" label="后果严重程度"
                                        placeholder="请选择" />
                                </template>
                            </van-popover>
+80 −21
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@
                :rules="[{ required: true, message: '准事故类型不能为空' }]"
            />

            <van-field
            <!-- <van-field
                readonly
                v-model="form.level"
                required
@@ -95,7 +95,9 @@
                placeholder="请选择"
                @click="seletGrade('level')"
                :rules="[{ required: true, message: '风险等级不能为空' }]"
            />
            /> -->
            <van-field readonly v-model="form.level" required name="level" label="风险等级" placeholder="请选择"
                @click="seletGrade" :rules="[{ required: true, message: '风险等级不能为空' }]" />

            <van-field
                required
@@ -295,7 +297,7 @@
                    </van-uploader>
                </template>
            </van-field>
            <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" >
            <div  v-if="this.$route.params.isView" style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" >
            <img src="@/assets/accidentIcon/bookmark.svg" alt="" style="position: relative;top: 32%;transform: translateY(-50%);" >
            参考依据
            </div>
@@ -330,13 +332,42 @@
                />
            </van-popup>

            <div style="margin: 16px 16px 0">
            <div style="margin: 16px 16px 0" v-if="this.$route.params.isView" >
                <van-button round block type="info" native-type="submit"
                    >上报</van-button
                >
            </div>
        </van-form>
        <div style="margin: 10px 16px 0px; padding-bottom: 16px">
        <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>
        <div v-if="this.$route.params.isView" style="margin: 10px 16px 0px; padding-bottom: 16px">
            <van-button round block type="warning" @click.native="cancel"
                >取消</van-button
            >
@@ -393,6 +424,10 @@ export default {
    },
    data() {
        return {
            showPopoveSetRank: false,
            activeNames: ["1"],
            showPopover: false,
            showGradeDialog: false,
            taskId: "",
            text: "添加现状风险",
            id: "",
@@ -459,6 +494,10 @@ export default {
            urgentImg: [], //应急措施图片
            returnCause: "", // 退回原因
            isShowreturnCause: false,
            possibleValue: "",
            possibleScore:0,
            severityValue: "",
            severityScore:0,
        };
    },
    created() {
@@ -546,22 +585,42 @@ export default {
            ]
        },
        seletGrade(name){
            this.showTrouble=true
            this.riskName=name
            this.columnsTrouble=[
                {
                    name:'重大风险',
                },
                {
                    name:'较大风险',
            this.getGradeList('possibility')
            this.getGradeList('severity')
            this.showGradeDialog = true
        },
         //风险模型配置
         getGradeList(type) {
            // possibility 可能性 severity 严重性
            getFun(`/risk/plan/matrix/${type}/list`).then(res => {
                let arr = []
                res.data.forEach(item => {
                    arr.push({ text: item.title, type: item.type, sort: item.sort, score: item.score })
                })
                if (type === 'possibility') {
                    this.columnsRiskRank = arr
                } else {
                    this.columnsSetRank = arr
                }

            })
        },
                {
                    name:'一般风险',
        onSelect(data) {
            this.possibleValue = data.text
            this.possibleScore = data.score
        },
                {
                    name:'较小风险',
        onSelectSetRank(data) {
            this.severityValue = data.text
            this.severityScore = data.score
        },
            ]
         //开始测评
         goResultPage(){
            this.$router.push({
                name:'resultPage',
                params:{
                    score:this.severityScore * this.possibleScore
                }
            })
        },
        performTasks(){
          
+294 −0
Original line number Diff line number Diff line
<template>
    <div>
        <van-form :scroll-to-error="true" :show-error="false" validate-trigger="onSubmit">
            <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                风险信息
            </div>
            <van-field readonly required :value="InherentRisk.userName" label="评估人" placeholder="请输入" />
            <van-field readonly required :value="InherentRisk.projectName" label="所属项目" placeholder="请输入" />
            <van-field readonly required :value="InherentRisk.buildingName" label="所属建筑物" placeholder="请输入" />

            <van-field required clickable name="floorId" :value="InherentRisk.floorId" label="所属楼层" placeholder="请选择"
                 :rules="[{ required: true, message: '所属楼层不能为空' }]" />
            <div style="display: flex;">
                <van-field readonly required name="roomName" :value="InherentRisk.roomName" label="所属房间" placeholder="请输入"
                    :rules="[{ required: true, message: '所属房间不能为空' }]" />
                <van-button style="color: #cccc;background-color: #f0f1f5;" icon="plus" type="info" />
            </div>
            <van-field required clickable name="name" v-model="InherentRisk.factor" label="风险源名称" placeholder="请输入"
                :rules="[{ required: true, message: '风险源名称不能为空' }]" />
            <van-field v-model="InherentRisk.factor" required name="factor" label="风险因素" placeholder="请选择"
                 :rules="[{ required: true, message: '风险因素不能为空' }]" />
            <van-field v-model="InherentRisk.type" required name="type" label="准事故类型" placeholder="请选择" @click="seletType('type')"
                :rules="[{ required: true, message: '准事故类型不能为空' }]" />

            <van-field readonly v-model="InherentRisk.level" required name="level" label="风险等级" placeholder="请选择"
                :rules="[{ required: true, message: '风险等级不能为空' }]" />

              <van-field required name="presenceLocation" v-model="InherentRisk.presenceLocation" label="存在部位" placeholder="请输入"
                :rules="[{ required: true, message: '存在部位不能为空' }]" />

             <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                风险源图片
            </div>
            <van-field name="hdPicture1" label="风险源图片">
                <template #input>
                    <van-uploader multiple :max-count="5"
                        upload-text="最多上传五个" v-model="uploaderImg">
                        <template slot="default">
                            <div style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                ">
                                <img src="@/assets/upload/pic.png" alt="" style="width: 0.64rem; height: 0.64rem" />
                                <span class="van-uploader__upload-text">最多上传五个</span>
                            </div>
                        </template>
                    </van-uploader>
                </template>
            </van-field>
             <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                技术措施
            </div>
            <van-field v-model="InherentRisk.measuresProject" name="measuresProject" label="技术措施" type="textarea" rows="1" autosize
                placeholder="请输入" />
            <van-field name="measuresProjectFile[]" label=" ">
                <template #input>
                    <van-uploader multiple :max-count="5" upload-text="最多上传五个" v-model="measuresProjectFile" accept="file"
                        result-type="file" @delete="deleteFile(...arguments, 'measuresProjectFile')">
                        <template slot="default">
                            <div style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                ">
                                <img src="@/assets/upload/file.png" alt="" style="width: 0.64rem; height: 0.64rem" />
                                <span class="van-uploader__upload-text">最多上传五个</span>
                            </div>
                        </template>
                    </van-uploader>
                </template>
            </van-field>
            <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                管理措施
            </div>
            <van-field v-model="InherentRisk.measuresAdministration" name="measuresAdministration" label="管理措施" type="textarea"
                rows="1" autosize placeholder="请输入" />
            <van-field name="measuresAdministrationFile[]" label=" ">
                <template #input>
                    <van-uploader multiple :max-count="5" upload-text="最多上传五个" v-model="measuresAdministrationFile"
                        accept="file" result-type="file" @delete="deleteFile(...arguments, 'measuresAdministrationFile')">
                        <template slot="default">
                            <div style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                ">
                                <img src="@/assets/upload/file.png" alt="" style="width: 0.64rem; height: 0.64rem" />
                                <span class="van-uploader__upload-text">最多上传五个</span>
                            </div>
                        </template>
                    </van-uploader>
                </template>
            </van-field>
            <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                应急措施
            </div>
            <van-field v-model="InherentRisk.measuresEmergency" name="measuresEmergency" label="应急措施" type="textarea" rows="1"
                autosize placeholder="请输入" />
            <van-field name="measuresEmergencyFile[]" label=" ">
                <template #input>
                    <van-uploader multiple :max-count="5" upload-text="最多上传五个" v-model="measuresEmergencyFile" accept="file"
                        result-type="file" @delete="deleteFile(...arguments, 'measuresEmergencyFile')">
                        <template slot="default">
                            <div style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                ">
                                <img src="@/assets/upload/file.png" alt="" style="width: 0.64rem; height: 0.64rem" />
                                <span class="van-uploader__upload-text">最多上传五个</span>
                            </div>
                        </template>
                    </van-uploader>
                </template>
            </van-field>
            <div style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;">
                <img src="@/assets/accidentIcon/bookmark.svg" alt=""
                    style="position: relative;top: 32%;transform: translateY(-50%);">
                参考依据
            </div>
        </van-form>

    </div>
</template>

<script>
export default {
    props: ["InherentRisk"],
    data() {
        return {
            showPopoveSetRank: false,
            activeNames: ["1"],
            showPopover: false,
            showGradeDialog: false,
            taskId: "",
            text: "添加固有风险",
            id: "",
            isTimely: 1,
            active: 0,
            form: {

            },
            projectId: "", // 所属工程
            projectName: "", // 所属工程
            projectDirectorName: "", // 所属工程
            projectDirector: "", // 所属工程
            showProjectName: false,
            show: false,
            columnsProjectName: [],
            factor: "", //风险因素
            showFactor: false,
            columnsFactor: [],
            messageList: [
                {
                    title: '回显风险源名称',
                    time: '2022-12-12',
                    name: 'Mr.周',
                    state: 1
                }
            ],
            source: "", //风险源
            userPrefix: "", //风险源
            showSource: false,
            columnsSource: [],
            trouble: "", //事故类型
            showTrouble: false,
            columnsTrouble: [],
            setRank: "", //风险定级
            showSetRank: false,
            columnsSetRank: ["矩阵式定级", "其他定级方式"],//严重程度
            riskRank: "", // 风险等级
            showRiskRank: false,
            columnsRiskRank: [],//发生可能性
            showSetRankMode: false, // 是否显示定级方式
            setRankMode: "", // 定级方式文字
            setRankModeImg: [], // 定级方式图片
            uploaderImg: [], // 定级方式图片
            location: "", //风险部位
            control: "", //管控层级
            riskName: "", //管控层级
            showControl: false,
            columnsControl: ["项目级", "企业级"],
            mainDutyDept: "", // 主责部门
            mainDutyDeptId: "",
            showMainDutyDept: false,
            columnsMainDutyDept: [],
            mainDutyPeopLe: "", // 主责人员
            mainDutyPeopLeId: "",
            showMainDutyPeopLe: false,
            columnsMainDutyPeopLe: [],
            technology: "", //技术措施文字
            technologyImg: [], //技术措施图片
            administration: "", //管理措施文字
            measuresAdministrationFile: [], //管理措施图片
            measuresProjectFile: [], //管理措施图片
            measuresEmergencyFile: [], //管理措施图片
            urgent: "", //应急措施文字
            urgentImg: [], //应急措施图片
            returnCause: "", // 退回原因
            isShowreturnCause: false,
            possibleValue: "",
            possibleScore: 0,
            severityValue: "",
            severityScore: 0,
        };
    },
    created() {
        // this.form.buildingIds = this.$route.params.buildingId ||sessionStorage.getItem("buildingId")
        // this.form.planId = this.$route.params.planId||sessionStorage.getItem("planId")
        // this.form.buildingName = this.$route.params.buildingName||sessionStorage.getItem("buildingName")
        // this.form.userId = userInfo.userId
        // this.form.userName = userInfo.userName
        // this.form.deptName = userInfo.dept.deptName
        // this.form.projectId = '测试项目',
        // this.form.level = this.$route.params.level ? this.$route.params.level :''
    },
    methods: {

    },
    watch: {

    },
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
    padding: 0;
    background-color: #f0f1f5;

    .van-cell-group--inset {
        margin: 0;
        margin-bottom: 0.26667rem;
        padding: 0.25rem;
        font-size: 0.4rem;
        position: relative;
        border-radius: 4%;
        box-shadow: 0px 0px 10px 2px #f3f3f3;
        width: 90%;
        margin: 0.4rem auto;

        .van-row {
            font-size: 0.4rem;
            line-height: 0.8rem;
            margin-bottom: 0;
        }

        .van-overlay {
            position: absolute;

            .wrapper {
                display: flex;
                align-items: center;
                justify-content: space-evenly;
                height: 100%;
            }
        }
    }
}

.dialogContain {
    width: 100%;
    height: 100%;
    padding: 10px;
    box-sizing: border-box;
}
</style>
+30 −6
Original line number Diff line number Diff line
@@ -4,13 +4,13 @@
      <LHeader :text="text"></LHeader>
    </van-sticky>
    <div class="section">
      <van-tabs v-model="activeName" color="#2980f7" animated>
      <van-tabs v-model="activeName" color="#2980f7" animated @click="onClick">
        <van-tab title="固有风险信息" name="a">

          <TabDetail :InherentRisk="InherentRisk"/>
        </van-tab>
        <van-tab title="现状风险" name="b">
          <div class="quolist">
            <van-cell-group style="padding: 10px;box-sizing: border-box;background-color: #fff;margin: 8px;border-radius: 10px;" v-for="(item, index) in quoRiskList" :key="index">
            <van-cell-group style="padding: 10px;box-sizing: border-box;background-color: #fff;margin: 8px;border-radius: 10px;" v-for="(item, index) in quoRiskList" :key="index" @click="goDetail(item)">
              <div style="font-size: 0.45rem;padding: 5px 0;">
                {{ item.name }}
              </div>
@@ -61,6 +61,7 @@
<script type="text/ecmascript-6">
import LHeader from "@/components/header.vue";
import drawCanvas from '@/views/drawCanvas/riskView.vue'
import TabDetail from "./tabDetail.vue"
import { getFun, postFun } from "@/service/table.js";
import { timestampToTime } from "@/utils/format";
export default {
@@ -70,13 +71,14 @@ export default {
      text: "固有风险列表",
      activeName: 'a',
      quoRiskList: [],//现状风险列表
      InherentRisk: [],//固有风险
      InherentRisk: {},//固有风险
      inherentId: ''
    }
  },
  components: {
    LHeader,
    drawCanvas
    drawCanvas,
    TabDetail
  },
  created() {
    this.inherentId = this.$route.params.id
@@ -88,7 +90,7 @@ export default {
  methods: {
    getInherentRiskList(inherentId){
      getFun(`/risk/plan/inherent/details/${inherentId}`).then(res=>{
          console.log(res.data,'lllll')
          this.InherentRisk= res.data
      })
    },
    getQuoRiskList(inherentId) {
@@ -99,6 +101,28 @@ export default {
    timestampToTimes(time) {
      return timestampToTime(new Date(time), "DT2", true);
    },
    goDetail(item){
      console.log(item,'???')
      this.$router.push({
        name:'addPresent',
        params:{
          isView:false,
          // buildingId:,
          // planId:,
          // floorId:,
          // roomId:,
          // inherentId:,
          // roomName:,
        }
      })
    },
    onClick(name){
      if(name==='a'){
        this.getQuoRiskList(this.$route.params.id)
      }else if(name==='b'){
        this.getInherentRiskList(this.$route.params.id)
      }
    }
  },
}
</script>