lct123456
2022-04-25 70fb6d09d29ca1b4ba29a9299f310e2455301b8c
四色图
已修改10个文件
已添加27个文件
7794 ■■■■■ 文件已修改
config/dev.env.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/tileset.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionRecord/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionComplete/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionPerson/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionUnusual/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionTask/components/inpectionPoint.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doublePreventAction/riskLevelManage/fourColorMap/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/equipment/index.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/file/allFire.vue 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/file/constructionFile.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/file/index.vue 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/fireMan/index.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/reviewInfo/index.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/safetyAction/index.vue 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/safetyAndRiskConfirm/index.vue 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/taskBasic/index.vue 1552 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/components/taskCreate.vue 1336 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskCreate/index.vue 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/equipment/index.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/fileAndEquipment/index.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/fireMan/index.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/hotFireBasic/index.vue 723 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/reviewInfo/index.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/safetyAction/index.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/safetyAndRiskConfirm/index.vue 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/components/taskInfo.vue 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/specialWork/taskInfo/index.vue 528 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/workPlan/form/dialog.vue 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/workPlan/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/workPlan/reserve.vue 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkManage/workPlan/statistics.vue 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/dev.env.js
@@ -5,8 +5,8 @@
    // BASE_API: '"http://10.142.119.232:8100"',
    // IMG_API: '"http://10.142.119.232:8100/upload/"',
  // BASE_API: '"http://222.92.213.22:8101/api"',
  // IMG_API: '"http://222.92.213.22:8101/api/upload/"',
  // BASE_API: '"http://222.92.213.22:8006/zhongtai"',
  // IMG_API: '"http://222.92.213.22:8006/zhongtai/upload/"',
  //
  // BASE_API: '"https://sinanoaq.cn:8100"',
  //  BASE_API: '"http://127.0.0.1:8100"',
@@ -18,9 +18,11 @@
  //   IMG_API: '"http://220.171.99.118:4100/upload/"',
  //     BASE_API: '"http://192.168.0.35:8006"',
  //     IMG_API: '"http://192.168.0.35:8006/upload/"',
    BASE_API: '"http://222.92.213.21:8006/zhongtai"',
    IMG_API: '"http://222.92.213.21:8006/zhongtai/upload/"',
    // BASE_API: '"http://222.92.213.21:8006/zhongtai"',
    // IMG_API: '"http://222.92.213.21:8006/zhongtai/upload/"',
    NANO_API: '"http://127.0.0.1:8081/zhongtaiexam"',
    // BASE_API: '"http://220.171.99.118:4101/api"',
    // IMG_API: '"http://220.171.99.118:4101/api/upload/"',
        BASE_API: '"http://112.86.23.31:8006"',
    IMG_API: '"http://112.86.23.31:8006/upload/"',
};
src/assets/tileset.json
对比新文件
@@ -0,0 +1 @@
{"asset":{"generatetool":"cesiumlab2@www.cesiumlab.com/osgb2tiles3","gltfUpAxis":"Z","version":"1.0"},"geometricError":1483.9877869095,"root":{"boundingVolume":{"box":[-163.46875,141.668724060059,1254.39343261719,646.749145507813,0,0,0,360.510932922363,0,0,0,47.9827880859375]},"children":[{"boundingVolume":{"box":[-163.46875,141.668724060059,1254.39343261719,646.749145507813,0,0,0,360.510932922363,0,0,0,47.9827880859375]},"content":{"uri":"top/0_0_0_0.json"},"geometricError":741.99389345475}],"geometricError":1483.9877869095,"transform":[-0.989732660191945,0.142930967076336,0.0,0.0,-0.0953358071431997,-0.660157584780009,0.745052378785398,0.0,0.106491057022322,0.737402672837608,0.667005961642188,0.0,680094.759938871,4709350.32278489,4231252.07610948,1.0]}}
src/router/index.js
@@ -55,11 +55,11 @@
    {
        path: '/',
        component: Layout,
        redirect: '/workPlan/workPlan/reserve',
        redirect: '/specialWorkManage/index/specialWorkManage/workPlan/index/specialWorkManage/workPlan/reserve',
        children: [
            {
                path: 'dashboard',
                component: () => import('@/views/workPlan/reserve'),
                component: () => import('@/views/specialWorkManage/workPlan/reserve'),
                name: 'Dashboard1',
                meta: { title: '首页', icon: 'el-icon-dash', noCache: true, affix: true }
            }
src/views/doublePreventAction/hiddenDanger/inspectionRecord/index.vue
@@ -91,11 +91,14 @@
                            </el-table-column>
                            <el-table-column label="隐患排查内容" prop="content" align="center">
                            </el-table-column>
                            <el-table-column label="巡检内容" prop="info" align="center">
                            <el-table-column label="上报说明" prop="info" align="center">
                            </el-table-column>
                            <el-table-column label="巡检照片" prop="img" align="center">
                            <el-table-column label="上报照片" prop="img" align="center">
                            </el-table-column>
                            <el-table-column label="状态" prop="status" align="center">
                                <template slot-scope="scope">
                                     {{ scope.row.status | parseStatusList}}
                                </template>
                            </el-table-column>
                            <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                                <template slot-scope="scope">
@@ -115,6 +118,12 @@
                <el-table-column label="异常通知人" prop="noticeUname" align="center">
                </el-table-column>
                <el-table-column label="巡检人" prop="execUname" align="center">
                </el-table-column>
                <el-table-column label="巡检开始时间" prop="execUname" align="center">
                </el-table-column>
                <el-table-column label="巡检结束时间" prop="execUname" align="center">
                </el-table-column>
                <el-table-column label="巡检提交时间" prop="execUname" align="center">
                </el-table-column>
                <el-table-column label="任务状态" prop="status" align="center">
                     <template slot-scope="scope">
@@ -176,6 +185,7 @@
    import { computePageCount } from '@/utils'
    import { getInspectionRecord } from '@/api/inspectionTask'
    import {getAllDepartment, getDepartmentList} from "../../../../api/departmentManage";
    import {safetyInspectionItemName} from "../../../../api/safetySelfInspection";
    export default {
        name: 'index',
        filters: {
@@ -193,6 +203,19 @@
                    return "任务关闭"
                }
            },
            parseStatusList(status) {
                if(status === 1){
                    return "待巡检"
                }else if(status === 2) {
                    return "巡检中"
                }else if(status === 3) {
                    return "已完成"
                }else if(status === 4) {
                    return "超时未巡检"
                }else{
                    return "已取消"
                }
            }
        },
        computed: {
            ...mapGetters([
@@ -237,6 +260,7 @@
        created() {
            this.getInspectionRecordData()
            this.getDepartment()
            this.getUser()
        },
        methods: {
            async getInspectionRecordData(){
@@ -264,6 +288,17 @@
                    })
                }
            },
            async getUser(){
                let res = await safetyInspectionItemName()
                if(res.data.code === '200'){
                    this.userList = res.data.result
                }else{
                    this.$message({
                        message:res.data.message,
                        type:'warning'
                    })
                }
            },
            showAnalyseUnitForm(value,type){
                this.inspectionRecordVisible = true
                this.$nextTick(() =>{
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionComplete/index.vue
@@ -25,7 +25,7 @@
                xAxis: {
                type: 'category',
                boundaryGap: false,
                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                data: ['2022-4-1', '2022-4-2', '2022-4-4', '2022-4-4', '2022-4-5', '2022-4-6', '2022-4-7']
                },
                yAxis: {
                    type: 'value'
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionPerson/index.vue
@@ -17,6 +17,14 @@
        this.drawLine()
    },
    methods:{
        // setCount(val){
        //         this.numData = val.map(item =>{
        //             return item.num
        //         })
        //         this.timeData = val.map(item =>{
        //             return item.errorTaskIdList
        //         })
        // },
        async drawLine(){
            this.myChart = this.$echarts.init(document.getElementById('inspectionPerson'))
            this.myChart.setOption({
@@ -30,7 +38,7 @@
                color:'#fac858',
                xAxis: {
                    type: 'category',
                    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                    data: ['2022-4-1', '2022-4-2', '2022-4-4', '2022-4-4', '2022-4-5', '2022-4-6', '2022-4-7']
                },
                yAxis: {
                    type: 'value'
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/components/inspectionUnusual/index.vue
@@ -1,5 +1,5 @@
<template>
    <div id="toadyLine" style="width:90%;height:360px;margin: 0 auto;">
    <div id="inspectionUnusual" style="width:90%;height:360px;margin: 0 auto;">
    </div>
</template>
@@ -18,9 +18,9 @@
    },
    methods:{
        async drawTodayLine(){
            this.timeData = [1,2,3,4,]
            this.numData = [2,5,7,9]
            let myChart = this.$echarts.init(document.getElementById('toadyLine'))
            this.timeData = ['2022-4-1', '2022-4-2', '2022-4-4', '2022-4-4', '2022-4-5', '2022-4-6', '2022-4-7']
            this.numData = [2,5,7,9,1,15,6]
            let myChart = this.$echarts.init(document.getElementById('inspectionUnusual'))
            myChart.setOption({
                xAxis: {
                    type: 'category',
src/views/doublePreventAction/hiddenDanger/inspectionStatistics/index.vue
@@ -81,8 +81,6 @@
                value3:['',''],
                listQuery:{
                "dateList": [
                "",
                ""
                ],
                "endDate": "",
                "execUid": null,
@@ -111,7 +109,7 @@
                this.listQuery.startDate = this.value1[0]
                this.listQuery.endDate = this.value1[1]
                let res = await getInspectionCount(this.listQuery)
                debugger
                // this.$refs.inspectionPerson.setCount(res.data.result)
            },
            async changeInspectionPerson() {
                let res = await getInspectionCount(this.listQuery)
@@ -122,7 +120,7 @@
<style scoped>
    /deep/.el-divider--horizontal {
        margin-top: 0px !important;
        margin-top: 1px !important;
    }
    .inspectionStatistics{
        width:100%;
src/views/doublePreventAction/hiddenDanger/inspectionTask/components/inpectionPoint.vue
@@ -84,8 +84,10 @@
                        //         content:item.riskMeasureDesc    
                        //     }
                        // })))
                        this.inspectionPointData.push({id:value.id,content:value.riskMeasureDesc})
                        this.$emit('giveToForm',this.inspectionPointData)
                            if(this.inspectionPointData.findIndex(item => item.id === value.id) === -1) {
                                this.inspectionPointData.push({id:value.id,content:value.riskMeasureDesc})
                                this.$emit('giveToForm',this.inspectionPointData)
                            }
                        }
                }else{
                    this.controlActionForm.workId = JSON.stringify(this.inspectionTaskForm.workId)
src/views/doublePreventAction/hiddenDanger/inspectionTask/index.vue
@@ -467,7 +467,7 @@
                    this.noticeDepartment = this.handleDepartment(JSON.parse(JSON.stringify(value)).noticeUid)
                    this.changeNotice()
                    this.execDepartment = this.handleDepartment(JSON.parse(JSON.stringify(value)).execUid)
                     this.changeExec()
                    this.changeExec()
                    this.inspectionTaskForm = JSON.parse(JSON.stringify(value))
                    // this.inspectionTaskForm.execUid = value.execUname
                    // this.inspectionTaskForm.noticeUid = value.noticeUname
@@ -576,10 +576,11 @@
                })
            },
            receiveToForm(value) {
                this.inspectionTaskForm.riskControlMeasureIdList = []
                this.inspectionTaskForm.riskControlMeasureIdList = value.map( item => {
                    return item.id
                })
                // this.inspectionTaskForm.riskControlMeasureIdList = []
                // this.inspectionTaskForm.riskControlMeasureIdList = value.map( item => {
                //     return item.id
                // })
                this.inspectionTaskForm.riskControlMeasureIdList.push({id:value.id})
            },
            refreshHandle(){
                this.getInspectionTaskData()
src/views/doublePreventAction/riskLevelManage/fourColorMap/index.vue
@@ -6,6 +6,7 @@
</template>
<script>
    import tileset from '../../../../assets/tileset.json'
    import Map from '../../../../components/Map';
    import Tab from '../../../../components/Tab';
    import { global } from '../../../../global';
@@ -66,7 +67,7 @@
                this.loaded = true;
                map.addModel({
                    link: 'http://222.92.213.21:8006/zhongtaiweb/tileset.json',
                    link: 'http://222.92.213.22:8006/b3dm60/tileset.json',
                    name: '商业园区',
                    callback: tileset => {
                        var boundingSphere = tileset.boundingSphere;
src/views/specialWorkManage/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
    <router-view></router-view>
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
    <router-view></router-view>
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/equipment/index.vue
对比新文件
@@ -0,0 +1,91 @@
<template>
    <div>
        <div style="padding-bottom: 10px">
            <el-button type="primary" @click="addEquipment">添加设备</el-button>
        </div>
        <el-table :data="equipmentData" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="taskcode" label="作业编号" align="left">
            </el-table-column>
            <el-table-column prop="name" label="设备名称" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.name"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="type" label="设备类型" align="left">
                <template slot-scope="scope">
                    <el-select v-model="scope.row.type">
                        <el-option
                        v-for="item in typeList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.name"
                        >
                        </el-option>
                    </el-select>
                </template>
            </el-table-column>
            <el-table-column prop="num" label="设备数量" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.num"></el-input>
                </template>
            </el-table-column>
            <el-table-column label="操作" align="center">
                <template slot-scope="scope">
                    <el-button type="text" @click="deleteEquipment(scope.$index)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写' || title === '复制'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
    </div>
</template>
<script>
import { getSafetyActionList } from '@/api/task'
export default {
    props:['basicInformation','title'],
    name: 'index',
    data(){
        return{
            typeList:[{id:1,name:'安全防护设备及工具'},{id:2,name:'安全施工防护用具'},{id:3,name:'有毒有害防护设备'},{id:4,name:'个人防护设备'},{id:5,name:'安全措施设备及工器具'}],
            equipmentData:[],
        }
    },
    created(){
    },
    methods:{
        addEquipment(){
            this.equipmentData.push({
                createdat: "",
                createdby: "",
                flag: 0,
                id: 0,
                modifiedat: "",
                modifiedby: "",
                name: "",
                num: "",
                taskcode: this.basicInformation.code,
            })
        },
        deleteEquipment(val){
            this.equipmentData.splice(val,1)
        },
        goNext(){
            if(this.title === '施工单位确认'){
                this.$emit('changeToConstructionConfirm')
            }else if(this.title === '施工单位信息填写'){
                this.$emit('confirmConstruction')
            }else {
                this.$emit('changeToCardFile')
            }
        },
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/file/allFire.vue
对比新文件
@@ -0,0 +1,244 @@
<template>
    <div>
        <el-form ref="form" :model="fileForm" label-width="160px" label-position="right">
            <!--                        <el-form-item label="事故救援预案:">-->
            <!--                            <el-upload-->
            <!--                                accept=".pdf,.jpg,.png"-->
            <!--                                :action="fileRoad"-->
            <!--                                class="upload-demo"-->
            <!--                                ref="upload"-->
            <!--                                :headers="header"-->
            <!--                                :data="uploadForm"-->
            <!--                                :on-change="handleChangeOne"-->
            <!--                                :auto-upload="true"-->
            <!--                                :on-remove="onRemove"-->
            <!--                                :on-success="onSuccess"-->
            <!--                                :on-preview="onPreview"-->
            <!--                                :file-list="fileListOne">-->
            <!--                                <el-button size="small" type="primary">点击上传</el-button>-->
            <!--                            </el-upload>-->
            <!--                        </el-form-item>-->
            <el-form-item label="作业人员身体健康:">
                <el-upload
                    accept=".pdf,.jpg,.png"
                    :action="fileRoad"
                    class="upload-demo"
                    ref="upload"
                    :headers="header"
                    :data="uploadForm"
                    :on-preview="onPreview"
                    :file-list="fileListTwo">
                    <el-button size="small" type="primary" v-if="false">点击上传</el-button>
                </el-upload>
            </el-form-item>
            <el-form-item label="作业资质证书:" v-if="false">
                <el-upload
                    accept=".pdf,.jpg,.png"
                    :action="fileRoad"
                    class="upload-demo"
                    ref="upload"
                    :data="uploadForm"
                    :on-preview="onPreview"
                    :file-list="fileListThree">
                    <el-button size="small" type="primary" v-if="false">点击上传</el-button>
                </el-upload>
            </el-form-item>
            <el-form-item label="事故救援预案:" v-if="false">
                <el-upload
                    accept=".pdf,.jpg,.png"
                    :action="fileRoad"
                    class="upload-demo"
                    ref="upload"
                    :headers="header"
                    :data="uploadForm"
                    :on-preview="onPreview"
                    :file-list="fileListOne">
                </el-upload>
            </el-form-item>
            <!--            <el-form-item label="作业人员身体健康:" v-if="ifConstruction">-->
            <!--                <el-upload-->
            <!--                    accept=".pdf,.jpg,.png"-->
            <!--                    :action="fileRoad"-->
            <!--                    class="upload-demo"-->
            <!--                    ref="upload"-->
            <!--                    :headers="header"-->
            <!--                    :data="uploadForm"-->
            <!--                    :on-change="handleChangeTwo"-->
            <!--                    :auto-upload="true"-->
            <!--                    :on-remove="onRemove"-->
            <!--                    :on-success="onSuccess"-->
            <!--                    :on-preview="onPreview"-->
            <!--                    :file-list="fileListTwo">-->
            <!--                    <el-button size="small" type="primary">点击上传</el-button>-->
            <!--                </el-upload>-->
            <!--            </el-form-item>-->
            <!--            <el-form-item label="作业资质证书:" v-if="ifConstruction">-->
            <!--                <el-upload-->
            <!--                    accept=".pdf,.jpg,.png"-->
            <!--                    :action="fileRoad"-->
            <!--                    class="upload-demo"-->
            <!--                    ref="upload"-->
            <!--                    :headers="header"-->
            <!--                    :data="uploadForm"-->
            <!--                    :on-change="handleChangeThree"-->
            <!--                    :on-remove="onRemove"-->
            <!--                    :on-success="onSuccess"-->
            <!--                    :auto-upload="true"-->
            <!--                    :on-preview="onPreview"-->
            <!--                    :file-list="fileListThree">-->
            <!--                    <el-button size="small" type="primary">点击上传</el-button>-->
            <!--                </el-upload>-->
            <!--            </el-form-item>-->
        </el-form>
        <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
    import Cookies from 'js-cookie'
    import { deleteFile, getFileData } from '@/api/task'
    export default {
        props:['basicInformation','title'],
        name: 'index',
        data(){
            return{
                ifApply:'',
                ifCompany:'',
                ifConstruction:'',
                ifApplyButton:'',
                ifCompanyButton:'',
                disabled:'',
                fileForm:{},
                header:{Authorization:''},
                fileRoad:process.env.BASE_API + '/task/upload',
                dialogVisible:false,
                dialogImageUrl:'',
                riskAndDanger:[],
                safetyOrganizeAction:[],
                workSecurityAction:[],
                fileList:[],
                fileListOne:[],
                fileListTwo:[],
                fileListThree:[],
                uploadForm:{
                    taskcode:'',
                    type:'',
                }
            }
        },
        mounted(){
            this.getFileList()
        },
        methods:{
            async onPreview(file){
                window.open( process.env.IMG_API + file.fileurl,'_blank')
            },
            async getFileList(){
                let params = {}
                params["taskCode"] = this.basicInformation.code
                let res = await getFileData(params)
                if(res.data.code === '200'){
                    this.fileList = []
                    this.fileListOne = []
                    this.fileListTwo = []
                    this.fileListThree = []
                    this.fileList = res.data.result
                    this.fileList.map(item =>{
                        return Object.assign(item,{name:item.originalname})
                    })
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '事故救援预案'){
                            this.fileListOne.push(this.fileList[i])
                        }
                    }
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '作业人员身体健康'){
                            this.fileListTwo.push(this.fileList[i])
                        }
                    }
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '作业资质证书'){
                            this.fileListThree.push(this.fileList[i])
                        }
                    }
                }
            },
            submit(){
                this.uploadForm.type = "事故救援预案"
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
                this.$refs.upload.submit()
            },
            handlePictureCardPreview(file) {
                this.dialogImageUrl = file.url;
                this.dialogVisible = true;
            },
            handleChangeOne(file, fileList) {
                this.uploadForm.type = '事故救援预案'
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            handleChangeTwo(file, fileList) {
                this.uploadForm.type = '作业人员身体健康';
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            handleChangeThree(file, fileList) {
                this.uploadForm.type = '作业资质证书';
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            onSuccess(response){
                if(response.code === '200'){
                    this.$notify({
                        type:'success',
                        duration:2000,
                        message:'上传成功',
                        title:'成功',
                    })
                    this.getFileList()
                }
            },
            onRemove(file,fileList){
                return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                    confirmButtonText:'确定',
                    cancelButtonText:'取消',
                    type:'warning',
                }).then(() =>{
                    let params = {}
                    params["id"] = file.id
                    deleteFile(params).then(res =>{
                        if(res.data.code === '200'){
                            this.$notify({
                                type:'success',
                                duration:2000,
                                message:'删除成功',
                                title:'成功',
                            })
                            this.getFileList()
                        }else{
                            this.$message({
                                type:'warning',
                                message:res.data.message
                            })
                        }
                    })
                })
            },
            goNext(){
                if(this.title === '施工单位确认'){
                    this.$emit('changeToConstructionConfirm')
                }else{
                    this.$emit('confirmConstruction')
                }
            },
        }
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/file/constructionFile.vue
对比新文件
@@ -0,0 +1,247 @@
<template>
    <div>
        <el-form ref="form" :model="fileForm" label-width="160px" label-position="right">
<!--            <el-form-item label="事故救援预案:">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-change="handleChangeOne"-->
<!--                    :auto-upload="true"-->
<!--                    :on-remove="onRemove"-->
<!--                    :on-success="onSuccess"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListOne">-->
<!--                    <el-button size="small" type="primary">点击上传</el-button>-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
<!--                        <el-form-item label="作业人员身体健康:" v-if="ifApply">-->
<!--                            <el-upload-->
<!--                                accept=".pdf,.jpg,.png"-->
<!--                                :action="fileRoad"-->
<!--                                class="upload-demo"-->
<!--                                ref="upload"-->
<!--                                :headers="header"-->
<!--                                :data="uploadForm"-->
<!--                                :on-preview="onPreview"-->
<!--                                :file-list="fileListTwo">-->
<!--                                <el-button size="small" type="primary" v-if="false">点击上传</el-button>-->
<!--                            </el-upload>-->
<!--                        </el-form-item>-->
<!--                        <el-form-item label="作业资质证书:" v-if="ifApply">-->
<!--                            <el-upload-->
<!--                                accept=".pdf,.jpg,.png"-->
<!--                                :action="fileRoad"-->
<!--                                class="upload-demo"-->
<!--                                ref="upload"-->
<!--                                :data="uploadForm"-->
<!--                                :on-preview="onPreview"-->
<!--                                :file-list="fileListThree">-->
<!--                                <el-button size="small" type="primary" v-if="false">点击上传</el-button>-->
<!--                            </el-upload>-->
<!--                        </el-form-item>-->
                        <el-form-item label="事故救援预案:" v-if="ifCompany">
                            <el-upload
                                accept=".pdf,.jpg,.png"
                                :action="fileRoad"
                                class="upload-demo"
                                ref="upload"
                                :headers="header"
                                :data="uploadForm"
                                :on-preview="onPreview"
                                :file-list="fileListOne">
                            </el-upload>
                        </el-form-item>
                        <el-form-item label="作业人员身体健康:" v-if="ifConstruction">
                            <el-upload
                                accept=".pdf,.jpg,.png"
                                :action="fileRoad"
                                class="upload-demo"
                                ref="upload"
                                :headers="header"
                                :data="uploadForm"
                                :on-change="handleChangeTwo"
                                :auto-upload="true"
                                :on-remove="onRemove"
                                :on-success="onSuccess"
                                :on-preview="onPreview"
                                :file-list="fileListTwo">
                                <el-button size="small" type="primary">点击上传</el-button>
                            </el-upload>
                        </el-form-item>
                        <el-form-item label="作业资质证书:" v-if="ifConstruction">
                            <el-upload
                                accept=".pdf,.jpg,.png"
                                :action="fileRoad"
                                class="upload-demo"
                                ref="upload"
                                :headers="header"
                                :data="uploadForm"
                                :on-change="handleChangeThree"
                                :on-remove="onRemove"
                                :on-success="onSuccess"
                                :auto-upload="true"
                                :on-preview="onPreview"
                                :file-list="fileListThree">
                                <el-button size="small" type="primary">点击上传</el-button>
                            </el-upload>
                        </el-form-item>
        </el-form>
        <div align="center" style="padding-top: 20px">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
        <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
    import Cookies from 'js-cookie'
    import { deleteFile, getFileData } from '@/api/task'
    export default {
        props:['basicInformation','title'],
        name: 'index',
        data(){
            return{
                ifApply:'',
                ifCompany:'',
                ifConstruction:'',
                ifApplyButton:'',
                ifCompanyButton:'',
                disabled:'',
                fileForm:{},
                header:{Authorization:''},
                fileRoad:process.env.BASE_API + '/task/upload',
                dialogVisible:false,
                dialogImageUrl:'',
                riskAndDanger:[],
                safetyOrganizeAction:[],
                workSecurityAction:[],
                fileList:[],
                fileListOne:[],
                fileListTwo:[],
                fileListThree:[],
                uploadForm:{
                    taskcode:'',
                    type:'',
                }
            }
        },
        mounted(){
            this.getFileList()
        },
        methods:{
            async onPreview(file){
                window.open( process.env.IMG_API + file.fileurl,'_blank')
            },
            async getFileList(){
                let params = {}
                params["taskCode"] = this.basicInformation.code
                let res = await getFileData(params)
                if(res.data.code === '200'){
                    this.fileList = []
                    this.fileListOne = []
                    this.fileListTwo = []
                    this.fileListThree = []
                    this.fileList = res.data.result
                    this.fileList.map(item =>{
                        return Object.assign(item,{name:item.originalname})
                    })
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '事故救援预案'){
                            this.fileListOne.push(this.fileList[i])
                        }
                    }
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '作业人员身体健康'){
                            this.fileListTwo.push(this.fileList[i])
                        }
                    }
                    for(let i in this.fileList){
                        if(this.fileList[i].type === '作业资质证书'){
                            this.fileListThree.push(this.fileList[i])
                        }
                    }
                }
            },
            submit(){
                this.uploadForm.type = "事故救援预案"
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
                this.$refs.upload.submit()
            },
            handlePictureCardPreview(file) {
                this.dialogImageUrl = file.url;
                this.dialogVisible = true;
            },
            handleChangeOne(file, fileList) {
                this.uploadForm.type = '事故救援预案'
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            handleChangeTwo(file, fileList) {
                this.uploadForm.type = '作业人员身体健康';
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            handleChangeThree(file, fileList) {
                this.uploadForm.type = '作业资质证书';
                this.uploadForm.taskcode = this.basicInformation.code
                this.header.Authorization = Cookies.get('token')
            },
            onSuccess(response){
                if(response.code === '200'){
                    this.$notify({
                        type:'success',
                        duration:2000,
                        message:'上传成功',
                        title:'成功',
                    })
                    this.getFileList()
                }
            },
            onRemove(file,fileList){
                return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                    confirmButtonText:'确定',
                    cancelButtonText:'取消',
                    type:'warning',
                }).then(() =>{
                    let params = {}
                    params["id"] = file.id
                    deleteFile(params).then(res =>{
                        if(res.data.code === '200'){
                            this.$notify({
                                type:'success',
                                duration:2000,
                                message:'删除成功',
                                title:'成功',
                            })
                            this.getFileList()
                        }else{
                            this.$message({
                                type:'warning',
                                message:res.data.message
                            })
                        }
                    })
                })
            },
            goNext(){
                if(this.title === '施工单位确认'){
                    this.$emit('changeToConstructionConfirm')
                }else{
                    this.$emit('confirmConstruction')
                }
            },
        }
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/file/index.vue
对比新文件
@@ -0,0 +1,251 @@
<template>
    <div>
        <el-form ref="form" :model="fileForm" label-width="160px" label-position="right">
            <el-form-item label="事故救援预案:">
                <el-upload
                    accept=".pdf,.jpg,.png"
                    :action="fileRoad"
                    class="upload-demo"
                    ref="upload"
                    :headers="header"
                    :data="uploadForm"
                    :on-change="handleChangeOne"
                    :auto-upload="true"
                    :on-remove="onRemove"
                    :on-success="onSuccess"
                    :on-preview="onPreview"
                    :file-list="fileListOne">
                    <el-button size="small" type="primary">点击上传</el-button>
                </el-upload>
            </el-form-item>
<!--            <el-form-item label="作业人员身体健康:" v-if="ifApply">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListTwo">-->
<!--                    <el-button size="small" type="primary" v-if="false">点击上传</el-button>-->
<!--                </el-upload>-->
<!--&lt;!&ndash;            </el-form-item>&ndash;&gt;-->
<!--            <el-form-item label="作业资质证书:" v-if="ifApply">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :data="uploadForm"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListThree">-->
<!--                    <el-button size="small" type="primary" v-if="false">点击上传</el-button>-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
<!--            <el-form-item label="事故救援预案:" v-if="ifCompany">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListOne">-->
<!--                    <el-button size="small" type="primary" v-if="false">点击上传</el-button>-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
<!--            <el-form-item label="作业人员身体健康:" v-if="ifCompany">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-change="handleChangeTwo"-->
<!--                    :auto-upload="true"-->
<!--                    :on-remove="onRemove"-->
<!--                    :on-success="onSuccess"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListTwo">-->
<!--                    <el-button size="small" type="primary" v-if="ifCompanyButton">点击上传</el-button>-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
<!--            <el-form-item label="作业资质证书:" v-if="ifCompany">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-change="handleChangeThree"-->
<!--                    :on-remove="onRemove"-->
<!--                    :on-success="onSuccess"-->
<!--                    :auto-upload="true"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListThree">-->
<!--                    <el-button size="small" type="primary" v-if="ifCompanyButton">点击上传</el-button>-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
        </el-form>
        <div align="center" style="padding-top: 20px">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
        <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
import Cookies from 'js-cookie'
import { deleteFile, getFileData } from '@/api/task'
export default {
    props:['basicInformation','title'],
    name: 'index',
    data(){
        return{
            ifApply:'',
            ifCompany:'',
            ifApplyButton:'',
            ifCompanyButton:'',
            disabled:'',
            fileForm:{},
            header:{Authorization:''},
            fileRoad:process.env.BASE_API + '/task/upload',
            dialogVisible:false,
            dialogImageUrl:'',
            riskAndDanger:[],
            safetyOrganizeAction:[],
            workSecurityAction:[],
            fileList:[],
            fileListOne:[],
            fileListTwo:[],
            fileListThree:[],
            uploadForm:{
                taskcode:'',
                type:'',
            }
        }
    },
    mounted(){
        this.getFileList()
    },
    methods:{
        async onPreview(file){
            window.open( process.env.IMG_API + file.fileurl,'_blank')
        },
        async getFileList(){
            let params = {}
            params["taskCode"] = this.basicInformation.code
            let res = await getFileData(params)
            if(res.data.code === '200'){
                this.fileList = []
                this.fileListOne = []
                this.fileListTwo = []
                this.fileListThree = []
                this.fileList = res.data.result
                this.fileList.map(item =>{
                    return Object.assign(item,{name:item.originalname})
                })
                for(let i in this.fileList){
                    if(this.fileList[i].type === '事故救援预案'){
                        this.fileListOne.push(this.fileList[i])
                    }
                }
                for(let i in this.fileList){
                    if(this.fileList[i].type === '作业人员身体健康'){
                        this.fileListTwo.push(this.fileList[i])
                    }
                }
                for(let i in this.fileList){
                    if(this.fileList[i].type === '作业资质证书'){
                        this.fileListThree.push(this.fileList[i])
                    }
                }
            }
        },
        submit(){
            this.uploadForm.type = "事故救援预案"
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
            this.$refs.upload.submit()
        },
        handlePictureCardPreview(file) {
            this.dialogImageUrl = file.url;
            this.dialogVisible = true;
        },
        handleChangeOne(file, fileList) {
            this.uploadForm.type = '事故救援预案'
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        handleChangeTwo(file, fileList) {
            this.uploadForm.type = '作业人员身体健康';
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        handleChangeThree(file, fileList) {
            this.uploadForm.type = '作业资质证书';
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        onSuccess(response){
            if(response.code === '200'){
                console.log(this.fileListOne)
                this.$notify({
                    type:'success',
                    duration:2000,
                    message:'上传成功',
                    title:'成功',
                })
                this.getFileList()
            }
        },
        onRemove(file,fileList){
            return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(() =>{
                let params = {}
                params["id"] = file.id
                deleteFile(params).then(res =>{
                    if(res.data.code === '200'){
                        this.$notify({
                            type:'success',
                            duration:2000,
                            message:'删除成功',
                            title:'成功',
                        })
                        this.getFileList()
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                })
            })
        },
        goNext(){
            if(this.title === '施工单位确认'){
                this.$emit('changeToConstructionConfirm')
            }else if(this.title === '施工单位信息填写'){
            }else {
                this.$emit('confirm')
            }
        },
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/fireMan/index.vue
对比新文件
@@ -0,0 +1,127 @@
<template>
    <div>
        <div style="padding-bottom: 10px">
            <el-button type="primary" @click="addTaskWorker">添加作业人</el-button>
        </div>
        <el-table :data="taskWorkers" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="taskcode" label="作业编号" align="left">
            </el-table-column>
            <el-table-column prop="unit" label="作业类型" align="left">
                <template slot-scope="scope">
                    <el-select v-model="scope.row.tasktype">
                        <el-option
                            v-for="item in taskTypeList"
                            :key="item.id"
                            :label="item.name"
                            :value="item.name"
                        >
                        </el-option>
                    </el-select>
                </template>
            </el-table-column>
            <el-table-column prop="unit" label="施工单位" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.unit"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="worker" label="作业人姓名" align="left">
                <template slot-scope="scope">
                    <el-select v-model="scope.row.worker">
                        <el-option
                        v-for="item in workerList"
                        :key="item.id"
                        :value="item.realname"
                        :label="item.realname"
                        >
                        </el-option>
                    </el-select>
                </template>
            </el-table-column>
            <el-table-column prop="branch" label="特种作业工种" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.branch"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="number" label="特种作业证号" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.number"></el-input>
                </template>
            </el-table-column>
            <el-table-column label="操作" align="center">
                <template slot-scope="scope">
                    <el-button type="text" @click="deleteWorker(scope.$index)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写' || title === '复制'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
    </div>
</template>
<script>
import { userList } from '@/api/user'
export default {
    props:['basicInformation','title'],
    name: 'index',
    data(){
        return{
            taskWorkers:[],
            workerList:[],
            taskTypeList:[
                {id:0,name:'受限空间作业'},
                {id:1,name:'吊装作业'},
                {id:2,name:'动土作业'},
                {id:3,name:'断路作业'},
                {id:4,name:'高处作业'},
                {id:5,name:'临时用电作业'},
                {id:6,name:'盲板抽堵作业'},
                {id:7,name:'动火作业'},
            ],
        }
    },
    created(){
        this.getWorker()
    },
    methods:{
        addTaskWorker(){
            this.taskWorkers.push({
                createdat: "",
                createdby: "",
                flag: 0,
                id: 0,
                modifiedat: "",
                modifiedby: "",
                taskcode: this.basicInformation.code,
                unit: "",
                worker: "",
                branch: "",
                number: "",
                tasktype:'',
            })
        },
        deleteWorker(val){
            this.taskWorkers.splice(val,1)
        },
        goNext(){
            this.$emit('confirmConstruction')
        },
        async getWorker(){
            let params = {}
            params['pageIndex'] = 1
            params['pageSize'] = 1000
            let res = await userList(params)
            if(res.data.code === '200'){
                this.workerList = res.data.result.result
            }
        }
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/reviewInfo/index.vue
对比新文件
@@ -0,0 +1,73 @@
<template>
    <el-dialog title="审批" :visible.sync="reviewInfoDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="50%">
        <div class="block">
            <el-timeline>
                <el-timeline-item
                    v-for="(activity, index) in activities"
                    :key="index"
                    :color="'#0bbd87'"
                    :size="activity.size"
                    :timestamp="activity.reviewat">
                    <div style="padding-bottom: 10px;font-weight: bolder">{{activity.level}}</div>
                    <el-card>
                        <el-row>
                            <el-col :span="2">
                                <div>签字:</div>
                            </el-col>
                            <el-col :span="22">
                                <img :src="activity.autograph" style="width:40px;height:40px;margin-left:10px;cursor:pointer" @click="showPic(activity.autograph)"></img>
                            </el-col>
                        </el-row>
                        <el-row>
                            <span>现场图:</span>
                            <img slot="reference" v-for="(item,index) in activity.pictures" :src="item.url" :key="index" style="width:40px;height:40px;margin-left:10px;cursor:pointer" @click="showPic()"></img>
                        </el-row>
                    </el-card>
                </el-timeline-item>
            </el-timeline>
        </div>
        <el-dialog :visible.sync="dialogVisible" :append-to-body="true">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </el-dialog>
</template>
<script>
    export default {
        name: 'index',
        data(){
            return{
                reviewInfoDialog:false,
                dialogVisible:false,
                dialogImageUrl:'',
                activities: []
            }
        },
        methods:{
            openReviewInfo(value){
                this.reviewInfoDialog = true
                debugger
                this.activities = JSON.parse(JSON.stringify(value.taskReviews))
                for(let i in this.activities){
                    if(this.activities[i].pictures !== null && this.activities[i].pictures.length !== 0){
                        this.activities[i].pictures = this.activities[i].pictures.map( item =>{
                            return process.env.IMG_API + item
                        })
                    }
                    this.activities[i].autograph = process.env.IMG_API + this.activities[i].autograph
                }
            },
            showPic(value){
                this.dialogVisible = true
                this.dialogImageUrl = value
            },
        }
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/safetyAction/index.vue
对比新文件
@@ -0,0 +1,170 @@
<template>
    <div>
        <el-table :data="tasksecurity" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="content" label="安全措施" align="left">
                <template slot-scope="scope">
                    <div v-if="scope.row.checktype === '判断'">
                        {{scope.row.content}}
                    </div>
                    <div v-if="scope.row.checktype === '填空'">
                        <span>{{scope.row.content.split('_')[0]}}</span>
                        <el-input style="width:50px" v-model="scope.row.num"></el-input>
                        <span>{{scope.row.content.split('_')[1]}}</span>
                    </div>
                </template>
            </el-table-column>
            <el-table-column prop="checked" label="选项" align="center" width="300">
                <template slot-scope="scope">
                    <el-radio v-model="scope.row.checked" :label="1">是</el-radio>
                    <el-radio v-model="scope.row.checked" :label="0">否</el-radio>
                    <el-radio v-model="scope.row.checked" :label="2">不涉及</el-radio>
                </template>
            </el-table-column>
        </el-table>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写' || title === '复制'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
    </div>
</template>
<script>
import { getSafetyActionList } from '@/api/task'
export default {
    props:['basicInformation','title'],
    name: 'index',
    data(){
        return{
            currentPage:0,
            pageSize:1000,
            tasksecurity:[],
            safetyActionData:[
                // {id:0,selected:true,action:'动火设备内部构件清理干净,蒸汽吹扫或水洗合格,达到用火条件。',type:0},
                // {id:1,selected:null,actionOne:'',actionTwo:'',type:1},
                // {id:2,selected:null,action:'动火点10m范围内及动火点下部区域严禁同时进行可燃溶剂清洗和喷漆等作业。在受限空间内进行动火作业、临时用电作业时,不得同时进行刷漆、喷漆作业或使用可燃溶剂清洗等其他可能散发易燃气体、可燃液体的作业。',type:0},
                // {id:3,selected:null,action:'动火点周围的下水井、地漏、地沟、电缆沟等已清除易燃物,并已采取覆盖、铺沙、水封等手段进行隔离。',type:0},
                // {id:4,selected:null,action:'动火点周围易燃物已清除。',type:0},
                // {id:5,selected:null,action:'罐区内动火点同一围堰内和防火间距内的储罐不同时进行脱水作业,排凝等作业。',type:0},
                // {id:6,selected:null,action:'距动火点30m内严禁排放可燃气体,15m内严禁排放各类可燃液体。',type:0},
                // {id:7,selected:null,action:'电焊回路线已接在焊件上,把线未穿过下水井或其它设备搭接。',type:0},
                // {id:8,selected:null,action:'高处作业已采取防火花飞溅措施。',type:0},
                // {id:9,selected:null,action:'乙炔气瓶(直立放置)、氧气瓶与火源间的距离大于10m,二者间距不应小于5m。',type:0},
                // {id:10,selected:null,actionOne:'',actionTwo:'',actionThree:'',actionFour:'',type:2},
                // {id:11,selected:null,actionOne:'',type:3},
                ],
        }
    },
    methods:{
        async getSafeTyAction(){
            let typeList = []
            for(let i in this.basicInformation.subTaskInfos){
                typeList.push(this.basicInformation.subTaskInfos[i].type)
            }
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['type'] = '申请单位负责检查项'
            this.safetyActionData = []
            this.tasksecurity = []
            let res = await getSafetyActionList(params)
            if(res.data.code === '200'){
                this.safetyActionData = res.data.result
                for(let i in this.safetyActionData){
                    if(typeList.indexOf(this.safetyActionData[i].tasktype) !== -1){
                        this.tasksecurity.push({
                            id:this.safetyActionData[i].id,
                            taskcode: this.basicInformation.code,
                            content: this.safetyActionData[i].content,
                            checked: this.safetyActionData[i].check,
                            num: this.safetyActionData[i].number,
                            confirmedby: "test",
                            checktype:this.safetyActionData[i].checktype,
                            tasktype:this.safetyActionData[i].tasktype
                        })
                    }
                }
                // this.safetyActionData.filter(item =>{
                //     if(typeList.indexOf(item.tasktype) !== -1){
                //         return{
                //             id:item.id,
                //             taskcode: this.basicInformation.code,
                //             content: item.content,
                //             checked: item.check,
                //             num: item.number,
                //             confirmedby: "test",
                //             checktype:item.checktype,
                //             tasktype:item.tasktype
                //         }
                //     }
                // })
                // console.log(typeList)
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        },
        async getConstructionAction(){
            // let typeList = []
            // for(let i in this.basicInformation.subTaskInfos){
            //     typeList.push(this.basicInformation.subTaskInfos[i].type)
            // }
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['type'] = '施工单位负责检查项'
            this.safetyActionData = []
            this.tasksecurity = []
            let res = await getSafetyActionList(params)
            if(res.data.code === '200'){
                this.safetyActionData = res.data.result
                // for(let i in this.safetyActionData){
                //     if(typeList.indexOf(this.safetyActionData[i].tasktype) !== -1){
                //         this.tasksecurity.push({
                //             id:this.safetyActionData[i].id,
                //             taskcode: this.basicInformation.code,
                //             content: this.safetyActionData[i].content,
                //             checked: this.safetyActionData[i].check,
                //             num: this.safetyActionData[i].number,
                //             confirmedby: "test",
                //             checktype:this.safetyActionData[i].checktype,
                //             tasktype:this.safetyActionData[i].tasktype
                //         })
                //     }
                // }
                this.tasksecurity = this.safetyActionData.map(item =>{
                    return {
                        id:item.id,
                        taskcode: this.basicInformation.code,
                        content: item.content,
                        checked: item.check,
                        num: item.number,
                        confirmedby: "test",
                        checktype:item.checktype,
                    }
                })
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        },
        goNext(){
            if(this.title === '施工单位确认'){
                this.$emit('changeToConstructionConfirm')
            }else if(this.title === '施工单位信息填写'){
                this.$emit('confirmConstruction')
            }else {
                this.$emit('changeToCardFile')
            }
        },
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/safetyAndRiskConfirm/index.vue
对比新文件
@@ -0,0 +1,298 @@
<template>
    <div class="safetyAndRiskConfirm">
        <div class="safetyAndRiskConfirm_title">
            <span>{{"安全交底和风险告知确认卡"}}</span>
            <span style="color:red">{{"(*必填项)"}}</span>
        </div>
        <el-descriptions class="margin-top" :column="2"  border>
            <el-descriptions-item :span="1">
                <template slot="label">
                    <i class="el-icon-office-building"></i>
                    作业单位
                </template>
                <div class="safetyAndRiskConfirm_input">{{constructionUnit}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="1" class="test">
                <template slot="label">
                    <i class="el-icon-user-solid"></i>
                    车间项目负责人
                </template>
                <div class="safetyAndRiskConfirm_input">{{director}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-notebook-2"></i>
                    作业内容
                    <span style="color:red">*</span>
                    <span>:</span>
                </template>
                <el-input class="safetyAndRiskConfirm_input" v-model="taskRiskForm.content"></el-input>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-time"></i>
                    作业时间
                </template>
                <div class="safetyAndRiskConfirm_input">{{startTime + '-' + endTime}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-user"></i>
                    作业人员
                </template>
                <el-input class="safetyAndRiskConfirm_input"></el-input>
            </el-descriptions-item>
        </el-descriptions>
        <el-descriptions title="基本要求" direction="vertical" :column="4" border>
        </el-descriptions>
        <div class="safetyAndRiskConfirm_top">
            <div class="safetyAndRiskConfirm_top_title">
                {{"作业前,项目负责人应对施工作业人员进行安全交底和风险告知,内容包括作业许可范围及作业环境、作业风险、防范措施(工艺、设备、个体防护等)、应急措施及其他注意事项。作业人员应按照风险告知内容,逐条对接确认,落实到位后方可作业。"}}
            </div>
        </div>
        <div class="safetyAndRiskConfirm_middle">
            <div class="safetyAndRiskConfirm_middle_left">
                <div class="safetyAndRiskConfirm_middle_left_title">{{'安全交底和风险告知内容'}}</div>
            </div>
            <div class="safetyAndRiskConfirm_middle_right">
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"作业许可范围及作业环境"}}
                        <span style="color:red">*</span>
                        <span>:</span>
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.environment"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"作业风险:"}}
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="hazard" readonly></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"防范措施(工艺、设备、个体防护等)"}}
                        <span style="color:red">*</span>
                        <span>:</span>
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.preventive"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"应急措施"}}
                        <span style="color:red">*</span>
                        <span>:</span>
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.emergency"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"其他注意事项"}}
                        <span style="color:red">*</span>
                        <span>:</span>
                    </div>
                    <div calss="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.other"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_two">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"企业负责人确认:"}}
                    </div>
                    <div calss="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea"></el-input>
                    </div>
                </div>
            </div>
        </div>
        <div class="safetyAndRiskConfirm_bottom">
            <div class="safetyAndRiskConfirm_bottom_title">
                {{"我方所有施工作业人员已明确该项目的风险并清楚了危害、防范措施和其它注意事项。"}}
            </div>
        </div>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写' || title === '复制'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
    </div>
</template>
<script>
export default {
    name: 'index',
    props:['basicInformation','title'],
    data(){
        return{
            director:'',
            startTime:'',
            endTime:'',
            constructionUnit:'',
            hazard:'',
            taskRiskForm:{
                id:'',
                taskcode:'',
                content:'',
                environment:'',
                preventive:'',
                emergency:'',
                other:'',
                director:'',
                taskdirector:'',
                confirmat:'',
                createdat:'',
                createdby:'',
                modifiedat:'',
                modifiedby:'',
                flag:'',
            },
        }
    },
    mounted(){
        this.getBasic()
    },
    methods:{
        getBasic(){
            this.constructionUnit = this.basicInformation.constructionunit
            this.director = this.basicInformation.director
            this.startTime = this.basicInformation.starttime
            this.endTime = this.basicInformation.endtime
            this.hazard = this.basicInformation.hazard
            this.taskRiskForm.taskcode = this.basicInformation.code
        },
        goNext(){
            if(this.title === '施工单位确认'){
                this.$emit('changeToConstructionConfirm')
            }else {
                this.$emit('changeToCardFile')
            }
        },
    }
}
</script>
<style scoped>
.safetyAndRiskConfirm{
    width:60%;
    margin:0 auto;
}
.safetyAndRiskConfirm_title{
    padding-bottom: 15px;
    font-weight: bold;
    font-size: 25px;
    text-align: center;
}
/deep/.el-descriptions__header{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:30px;
    text-align: center;
}
/deep/.el-descriptions__title{
    text-align: center;
    width:100%;
    margin: 0px auto;
}
.safetyAndRiskConfirm_top{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:80px;
    font-size: 18px;
    text-indent: 2em;
}
.safetyAndRiskConfirm_top_title{
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
/*.safetyAndRiskConfirm_basic{*/
/*    border-left: 1px solid #EBEEF5;*/
/*    border-right: 1px solid #EBEEF5;*/
/*    border-bottom: 1px solid #EBEEF5;*/
/*    margin: 0px auto;*/
/*    height:80px;*/
/*    font-size: 18px;*/
/*    text-indent: 2em;*/
/*}*/
.safetyAndRiskConfirm_middle{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:550px;
    font-size: 18px;
}
.safetyAndRiskConfirm_middle_left{
    height:100%;
    width:10%;
    border-right: 1px solid #EBEEF5;
    display:inline-block;
    float: left;
}
.safetyAndRiskConfirm_middle_left_title{
    padding-left: 12px;
    padding-right: 12px;
    text-align: center;
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
.safetyAndRiskConfirm_middle_right{
    float: left;
    height:100%;
    width:90%;
}
.safetyAndRiskConfirm_middle_right_one{
    height:16.6%;
    width:100%;
    border-bottom: 1px solid #EBEEF5;
}
.safetyAndRiskConfirm_middle_right_two{
    height:16.6%;
    width:100%;
}
.safetyAndRiskConfirm_middle_right_one_top{
    height:30%;
    width:100%;
    padding-top:5px;
    padding-left: 5px;
}
.safetyAndRiskConfirm_middle_right_one_textarea{
    padding-left: 5px;
    padding-right:5px ;
    padding-top: 2px;
}
.safetyAndRiskConfirm_middle_right_one_text{
    height:70%;
    width:100%;
}
.safetyAndRiskConfirm_bottom{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:100px;
    font-size: 18px;
}
.safetyAndRiskConfirm_bottom_title{
    text-align: center;
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
.test{
    /*border: 0px;*/
}
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/taskBasic/index.vue
对比新文件
@@ -0,0 +1,1552 @@
<template>
    <div style="padding:20px 50px 0 50px;">
        <el-form ref="form" :rules="taskBasicRules" :model="taskBasicForm" label-position="center" label-width="150px">
            <el-collapse v-model="activeNames">
                <el-collapse-item title="基本信息" name="0">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item  label="申请单位:" prop="unit">
                                <el-input v-model="taskBasicForm.unit" readonly></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="申请人:" prop="applicant">
                                <el-input v-model="taskBasicForm.applicant" readonly></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="负责人:" prop="director">
                                <el-input v-model="taskBasicForm.director"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="危害辨识:" prop="hazard">
                                <el-select v-model="taskBasicForm.hazard" filterable  class="taskBasic_select" multiple>
                                    <el-option
                                    v-for="item in hazardList"
                                    :key="item.id"
                                    :label="item.text"
                                    :value="item.text"
                                    >
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="开始时间:" style="margin-right: 0px" prop="starttime">
                                <el-date-picker value-format="yyyy-MM-dd HH:mm" type="datetime" v-model="taskBasicForm.starttime" placeholder="选择开始日期" class="taskBasic_select">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="结束时间:" prop="endtime">
                                <el-date-picker value-format="yyyy-MM-dd HH:mm" type="datetime" v-model="taskBasicForm.endtime" placeholder="选择结束日期" class="taskBasic_select">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="施工单位:" prop="constructionunit" >
                                <el-select v-model="taskBasicForm.constructionunit" clearable class="taskBasic_select">
                                    <el-option
                                        v-for="item in companyList"
                                        :key="item.id"
                                        :value="item.company"
                                        :label="item.company"
                                    ></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="16">
                            <el-form-item label="作业地点:" prop="area">
                                <el-input v-model="taskBasicForm.area"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否节假日:" prop="isholiday" >
                                <el-select v-model="taskBasicForm.isholiday" clearable class="taskBasic_select">
                                    <el-option
                                        v-for="item in list"
                                        :key="item.id"
                                        :value="item.id"
                                        :label="item.name"
                                    ></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="16">
                            <el-form-item label="作业内容:" prop="description">
                                <el-input v-model="taskBasicForm.description"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否需要检测气体:" prop="isanalysis" >
                                <el-select v-model="taskBasicForm.isanalysis" clearable class="taskBasic_select" @change="showAnalysis">
                                    <el-option
                                    v-for="item in list"
                                    :key="item.id"
                                    :value="item.id"
                                    :label="item.name"
                                    ></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8" v-if="ifAnalysis">
                            <el-form-item label="分析地点:" prop="analysisarea" >
                                <el-input v-model="taskBasicForm.analysisarea"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8" v-if="ifAnalysis">
                            <el-form-item label="分析介质:" prop="analysismedium" >
                                <el-input v-model="taskBasicForm.analysismedium"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-collapse-item>
                <el-collapse-item title="受限空间作业" name="1">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeArea" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeArea" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeArea">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="受限空间分类:" prop="spacecategory">
                                    <el-select v-model="taskBasicForm.spacecategory" class="taskBasic_select" @change="handleSpaceCategory">
                                        <el-option
                                            v-for="item in spaceCategoryList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="受限空间名称:" prop="spacename">
                                    <el-select v-model="taskBasicForm.spacename" class="taskBasic_select">
                                        <el-option
                                            v-for="item in spaceNameList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item label="受限空间介质名称:" prop="spacemedium">
                                    <el-input v-model="taskBasicForm.spacemedium" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="是否受酸碱腐蚀:" prop="acibase">
                                    <el-select v-model="taskBasicForm.acibase" class="taskBasic_select">
                                        <el-option
                                            v-for="item in acibaseList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="吊装作业" name="2">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifHoisting" :label="1">是</el-radio>
                                <el-radio v-model="ifHoisting" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifHoisting">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="吊装重物等级:" prop="hoistinglevel">
                                    <el-select v-model="taskBasicForm.hoistinglevel" class="taskBasic_select">
                                        <el-option value="一级吊装(质量>100吨)"></el-option>
                                        <el-option value="二级吊装(40吨<=质量<=100吨)"></el-option>
                                        <el-option value="三级吊装(质量<40吨)"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="吊装重物质量(t):" prop="hoistingweight">
                                    <el-input v-model="taskBasicForm.hoistingweight" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="动土作业" name="3">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifBuilding" :label="1">是</el-radio>
                                <el-radio v-model="ifBuilding" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifBuilding">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="动土作业深度:" prop="soildepth">
                                    <el-input v-model="taskBasicForm.soildepth" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="动土作业面积:" prop="soilarea">
                                    <el-input v-model="taskBasicForm.soilarea" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="动土方案文件:" prop="soilfile">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    :data="uploadForm"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.soilfile"
                                    :on-change="handleChangeBuildingFile"
                                    :on-success="onSoilFileSuccess"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'one')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="断路作业" name="4">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeRoad" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeRoad" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeRoad">
                        <el-row>
                            <el-col :span="16">
                                <el-form-item  label="断路原因:" prop="breakreason">
                                    <el-input v-model="taskBasicForm.breakreason" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="断路地段示意图:" prop="breakfile">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.breakfile"
                                    :on-success="onBreakFileSuccess"
                                    :on-change="handleChangeRoadFile"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'two')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="高处作业" name="5">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeHigh" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeHigh" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeHigh">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="作业等级:" prop="heightlevel">
                                    <el-select v-model="taskBasicForm.heightlevel" class="taskBasic_select">
                                        <el-option value="一级高处作业(2米≤高度<5米)"></el-option>
                                        <el-option value="二级高处作业(5米≤高度<15米)"></el-option>
                                        <el-option value="三级高处作业(15米≤高度<30米)"></el-option>
                                        <el-option value="特级高处作业(高度≥30米)"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="作业高度:" prop="workheight">
                                    <el-input type="number" v-model="taskBasicForm.workheight" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="临时用电作业" name="6">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeElectricity" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeElectricity" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeElectricity">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="电压接入点:" prop="electricityarea">
                                    <el-input v-model="taskBasicForm.electricityarea" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="工作电压:" prop="voltage">
                                    <el-input v-model="taskBasicForm.voltage" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="用电设备及功率:" prop="power">
                                    <el-input  v-model="taskBasicForm.power" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="盲板抽堵作业" name="7">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludePump" :label="1" >是</el-radio>
                                <el-radio v-model="ifIncludePump" :label="0" >否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludePump">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="设备管道名称:" prop="pipename">
                                    <el-input v-model="taskBasicForm.pipename" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="设备管道介质:" prop="pipemedium">
                                    <el-input v-model="taskBasicForm.pipemedium" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="设备管道温度:" prop="pipetemperature">
                                    <el-input v-model="taskBasicForm.pipetemperature" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="设备管道压力:" prop="pipepressure">
                                    <el-input v-model="taskBasicForm.pipepressure" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="盲板材质:" prop="blindboardmaterial">
                                    <el-input v-model="taskBasicForm.blindboardmaterial" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="盲板规格11:" prop="blindboardspecification">
                                    <el-input v-model="taskBasicForm.blindboardspecification" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="盲板编号:" prop="blindboardnumber">
                                    <el-input v-model="taskBasicForm.blindboardnumber" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="盲板位置图:" prop="blindboardlocation">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.blindboardlocation"
                                    :on-success="onPumpFileSuccess"
                                    :on-change="handleChangePumpFile"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'three')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="动火作业" name="8">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeFire" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeFire" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeFire">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="动火级别:" prop="firelevel">
                                    <el-select v-model="taskBasicForm.firelevel" class="taskBasic_select">
                                        <el-option
                                            v-for="item in levelList"
                                            :key="item.id"
                                            :label="item.name"
                                            :value="item.id"
                                        >
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="动火方式:" prop="firetype">
                                    <el-select v-model="taskBasicForm.firetype" filterable class="taskBasic_select">
                                        <el-option
                                        v-for="item in fireTypeList"
                                        :key="item.id"
                                        :value="item.text"
                                        :label="item.text"
                                        >
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
            </el-collapse>
        </el-form>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写'|| title === '施工单位信息填写' || title === '复制'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
        <el-dialog :visible.sync="dialogVisible" :append-to-body="true">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
  import { getUnitList } from '@/api/unitManage'
  import Cookies from 'js-cookie'
  import { addTask, updateTask } from '@/api/task'
  import { dictionaryAllItems } from '@/api/dictionary'
  export default {
      name: 'index',
      props:['title'],
      data(){
          return{
              type:'',
              fileRoad:process.env.BASE_API + '/task/web/upload',
              uploadForm:{
                  name:'',
              },
              header:{Authorization:''},
              taskBasicForm:{
                  applicant: "",
                  applyunitname: "",
                  applyunitopinion: "",
                  applyunittime: "",
                  approverprofession: "",
                  approversupervisor: "",
                  area: "",
                  code: "",
                  completedconfirm: "",
                  completedname: "",
                  completedtime: "",
                  constructionname: "",
                  constructionopinion: "",
                  constructiontime: "",
                  constructionunit: "",
                  createdat: "",
                  createdby: "",
                  department: "",
                  director: "",
                  endtime: "",
                  enterprisename: "",
                  enterpriseopinion: "",
                  enterprisetime: "",
                  flag: 0,
                  hazard: [],
                  id: 0,
                  isdel: 0,
                  isholiday: null,
                  level:'',
                  modifiedat: "",
                  modifiedby: "",
                  othertask: "",
                  partdirector: "",
                  profession: "",
                  relevantname: "",
                  relevantopinion: "",
                  relevanttime: "",
                  resources: [
                  ],
                  securityname: "",
                  securityopinion: "",
                  securitytime: "",
                  securitydep: "",
                  shiftleadername: "",
                  shiftleaderopinion: "",
                  shiftleadertime: "",
                  starttime: "",
                  status: 0,
                  supervisor: "",
                  taskAnalyses: [
                  ],
                  taskEquipments: [
                  ],
                  taskRisk: {
                      confirmat: "",
                      content: "",
                      createdat: "",
                      createdby: "",
                      director: "",
                      emergency: "",
                      environment: "",
                      flag: 0,
                      id: 0,
                      modifiedat: "",
                      modifiedby: "",
                      other: "",
                      preventive: "",
                      taskcode: "",
                      taskdirector: ""
                  },
                  taskSecurities: [
                  ],
                  taskWorkers: [
                  ],
                  unit: "",
                  subTaskInfos:[],
                  type:'',
                  category:'',
                  firelevel:'',
                  checked:'',
                  spacecategory:'',
                  spacename:'',
                  spacemedium:'',
                  acibase:'',
                  hoistinglevel:'',
                  hoistingweight:'',
                  soildepth:'',
                  soilarea:'',
                  soilfile:[],
                  breakreason:'',
                  breakfile:[],
                  workheight:'',
                  heightlevel:'',
                  electricityarea:'',
                  voltage:'',
                  power:'',
                  pipename:'',
                  pipemedium:'',
                  pipetemperature:'',
                  pipepressure:'',
                  blindboardmaterial:'',
                  blindboardspecification:'',
                  blindboardnumber:'',
                  commander:'',
                  blindboardlocation:[],
                  firetype:'',
                  description:'',
                  isanalysis:'',
                  analysisarea:'',
                  analysismedium:''
              },
              activeNames:['0'],
              companyList:[],
              fireTypeList:[],
              hazardList:[],
              list:[{id:0,name:'否'},{id:1,name:'是'}],
              levelList:[{id:2,name:'特级'},{id:1,name:'一级'},{id:0,name:'二级'},],
              spaceCategoryList:[{id:0,name:'密闭设备:如船舱、贮罐、车载槽罐、反应塔(釜)、冷藏箱、压力容器、管道、烟道、锅炉等'},{id:1,name:'地下有限空间:如地下管道、地下室、地下仓库、地下工程、暗沟、隧道、涵洞、地坑、废井、地窖、污水池(井)、沼气池、化粪池、下水道等'},{id:2,name:'地上有限空间:如储藏室、酒糟池、发酵池、垃圾站、温室、冷库、粮仓、料仓等'},],
              spaceNameList:[],
              acibaseList:[{id:0,name:'酸腐蚀'},{id:1,name:'碱腐蚀'},{id:2,name:'其他腐蚀'},{id:3,name:'没有腐蚀'}],
              taskBasicRules:{
                  unit: [{ required: true, message: '申请单位不能为空', trigger: 'blur' }],
                  applicant: [{ required: true, message: '申请人不能为空', trigger: 'blur' }],
                  level: [{ required: true, message: '动火作业级别不能为空', trigger: 'change' }],
                  mode: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
                  hazard: [{ required: true, message: '危害辨识不能为空', trigger: 'blur' }],
                  director: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
                  area: [{ required: true, message: '动火地点不能为空', trigger: 'blur' }],
                  constructionunit: [{ required: true, message: '施工部门不能为空', trigger: 'change' }],
                  starttime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
                  endtime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
                  spacecategory: [{ required: true, message: '受限空间分类不能为空', trigger: 'change' }],
                  spacename: [{ required: true, message: '受限空间名称不能为空', trigger: 'change' }],
                  spacemedium: [{ required: true, message: '受限空间介质名称不能为空', trigger: 'change' }],
                  acibase: [{ required: true, message: '是否酸碱腐蚀不能为空', trigger: 'change' }],
                  hoistinglevel: [{ required: true, message: '吊装重物等级不能为空', trigger: 'change' }],
                  hoistingweight: [{ required: true, message: '吊装重物质量不能为空', trigger: 'blur' }],
                  soildepth: [{ required: true, message: '动土作业深度不能为空', trigger: 'blur' }],
                  soilarea: [{ required: true, message: '动土作业面积不能为空', trigger: 'blur' }],
                  // soilfile: [{ required: true, message: '动土方案文件不能为空', trigger: 'blur' }],
                  breakreason: [{ required: true, message: '断路原因不能为空', trigger: 'blur' }],
                  // breakfile: [{ required: true, message: '断路地段示意图不能为空', trigger: 'blur' }],
                  heightlevel: [{ required: true, message: '作业等级不能为空', trigger: 'change' }],
                  workheight: [{ required: true, message: '作业高度不能为空', trigger: 'blur' }],
                  electricityarea: [{ required: true, message: '电压接入点不能为空', trigger: 'blur' }],
                  voltage: [{ required: true, message: '工作电压不能为空', trigger: 'blur' }],
                  power: [{ required: true, message: '用电设备及功率不能为空', trigger: 'blur' }],
                  pipename: [{ required: true, message: '设备管道名称不能为空', trigger: 'blur' }],
                  pipemedium: [{ required: true, message: '设备管道介质不能为空', trigger: 'blur' }],
                  pipetemperature: [{ required: true, message: '设备管道温度不能为空', trigger: 'blur' }],
                  pipepressure: [{ required: true, message: '设备管道压力不能为空', trigger: 'blur' }],
                  blindboardmaterial: [{ required: true, message: '盲板材质不能为空', trigger: 'blur' }],
                  blindboardspecification: [{ required: true, message: '盲板规格不能为空', trigger: 'blur' }],
                  blindboardnumber: [{ required: true, message: '盲板编号不能为空', trigger: 'blur' }],
                  // blindboardlocation: [{ required: true, message: '盲板位置图不能为空', trigger: 'blur' }],
                  firelevel: [{ required: true, message: '动火级别不能为空', trigger: 'blur' }],
                  firetype: [{ required: true, message: '动火类型不能为空', trigger: 'blur' }],
                  isholiday:[{ required: true, message: '是否节假日不能为空', trigger: 'change' }],
                  description:[{ required: true, message: '作业内容不能为空', trigger: 'blur' }],
                  isanalysis:[{ required: true, message: '是否需要气体检测不能为空', trigger: 'change' }],
                  analysisarea:[{ required: true, message: '分析地点不能为空', trigger: 'blur' }],
                  analysismedium:[{ required: true, message: '分析介质不能为空', trigger: 'blur' }]
              },
              ifIncludeArea:null,
              ifHoisting:null,
              ifBuilding:null,
              ifIncludeRoad:null,
              ifIncludeHigh:null,
              ifIncludeElectricity:null,
              ifIncludePump:null,
              ifIncludeFire:null,
              dialogImageUrl:false,
              dialogVisible:false,
              disabled: false,
              ifAnalysis:false,
          }
      },
      watch:{
          ifIncludeArea: {
            handler(newName, oldName) {
                if(newName === 1){
                    this.ifAnalysis = true
                    this.taskBasicForm.isanalysis = 1
                }else{
                    this.ifAnalysis = false
                    this.taskBasicForm.isanalysis = 0
                }
            },
            immediate:true,
            deep:true
          },
          ifIncludeFire: {
              handler(newName, oldName) {
                  if(newName === 1){
                      this.ifAnalysis = true
                      this.taskBasicForm.isanalysis = 1
                  }else{
                      this.ifAnalysis = false
                      this.taskBasicForm.isanalysis = 0
                  }
              },
              immediate:true,
              deep:true
          }
      },
      created(){
          this.getCompany()
          this.getFireTypeList()
          this.getHazardList()
      },
      methods:{
          giveTaskBasic(){
              this.taskBasicForm = JSON.parse(JSON.stringify(this.taskBasicForm))
          },
          handlePictureCardPreview(file){
              this.dialogImageUrl = file.url;
              this.dialogVisible = true;
          },
          showAnalysis(){
              if(this.taskBasicForm.isanalysis === 0){
                  this.ifAnalysis = false
              }else{
                  this.ifAnalysis = true
              }
          },
          goNext(){
              if(this.title === '施工单位确认'){
                  this.$emit('changeToConstructionConfirm')
              }else{
                  this.$refs["form"].validate((valid) =>{
                      if(valid){
                          if(this.type === 1){
                              this.addTask()
                          }else if(this.type === 2){
                              this.updateTask()
                          }
                      }else{
                          this.$message({
                              type:'warning',
                              message:'请完善基本信息'
                          })
                          if(this.ifIncludeArea === true){
                          }else if(this.ifHoisting === true){
                          }else if(this.ifBuilding === true){
                          }else if(this.ifIncludeRoad === true){
                          }else if(this.ifIncludeHigh === true){
                          }else if(this.ifIncludeElectricity === true){
                          }else if(this.ifIncludePump === true){
                          }else if(this.ifIncludeFire === true){
                          }
                      }
                  })
              }
          },
          async addTask(){
              if(this.taskBasicForm.soilfile.length === 0 && this.ifBuilding === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传动图方案文件'
                  })
              }else if(this.taskBasicForm.breakfile.length === 0 && this.ifIncludeRoad === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传短路地段示意图'
                  })
              }else if(this.taskBasicForm.blindboardlocation.length === 0 && this.ifIncludePump === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传盲板位置图'
                  })
              }else{
                  this.taskBasicForm.hazard = this.taskBasicForm.hazard.join('、')
                  let addForm = JSON.parse(JSON.stringify(this.taskBasicForm))
                  let level = []
                  addForm.subTaskInfos = []
                  if(this.ifIncludeArea === 1){
                      level.push(0)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'受限空间作业',category:'',level:'',checked:1,spacecategory:this.taskBasicForm.spacecategory,spacename:this.taskBasicForm.spacename,spacemedium:this.taskBasicForm.spacemedium,acibase:this.taskBasicForm.acibase,hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifHoisting === 1){
                      if(this.taskBasicForm.hoistinglevel === '一级吊装(质量>100吨)'){
                          level.push(2)
                      }else if(this.taskBasicForm.hoistinglevel === '二级吊装(40吨<=质量<=100吨)'){
                          level.push(1)
                      }else{
                          level.push(0)
                      }
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'吊装作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:this.taskBasicForm.hoistinglevel,hoistingweight:this.taskBasicForm.hoistingweight,soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifBuilding === 1){
                      level.push(1)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'动土作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:this.taskBasicForm.soildepth,soilarea:this.taskBasicForm.soilarea,soilfile:this.taskBasicForm.soilfile,breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifIncludeRoad === 1){
                      level.push(1)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'断路作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:this.taskBasicForm.breakreason,breakfile:this.taskBasicForm.breakfile,heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifIncludeHigh === 1){
                      if (this.taskBasicForm.heightlevel = '特级高处作业(高度≥30米)'){
                          level.push(2)
                      }else if(this.taskBasicForm.heightlevel = '三级高处作业(15米≤高度<30米)' || this.taskBasicForm.heightlevel === '二级高处作业(5米≤高度<15米)'){
                          level.push(1)
                      }else{
                          level.push(0)
                      }
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'高处作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:this.taskBasicForm.heightlevel,workheight:this.taskBasicForm.workheight,electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifIncludeElectricity === 1){
                      level.push(1)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'临时用电作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:this.taskBasicForm.electricityarea,voltage:this.taskBasicForm.voltage,power:this.taskBasicForm.power,pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                  }
                  if(this.ifIncludePump === 1){
                      level.push(0)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'盲板抽堵作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:this.taskBasicForm.pipename,pipemedium:this.taskBasicForm.pipemedium,pipetemperature:this.taskBasicForm.pipetemperature,pipepressure:this.taskBasicForm.pipepressure,blindboardmaterial:this.taskBasicForm.blindboardmaterial,blindboardspecification:this.taskBasicForm.blindboardspecification,blindboardnumber:this.taskBasicForm.blindboardnumber,commander:'',blindboardlocation:this.taskBasicForm.blindboardlocation,firetype:'',level:''})
                  }
                  if(this.ifIncludeFire === 1){
                      level.push(this.taskBasicForm.firelevel)
                      addForm.subTaskInfos.push({id:'',taskcode:'',type:'动火作业',category:'',level:'',checked:1,spacecategory:'',spacename:'',spacemedium:'',acibase:'',hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:this.taskBasicForm.firetype,level:this.taskBasicForm.firelevel})
                  }
                  let largeNum = 0
                  for(let i in level){
                      if(level[i] > largeNum){
                          largeNum = level[i]
                      }
                  }
                  addForm.level = largeNum
                  this.$delete(addForm,'type')
                  this.$delete(addForm,'category')
                  this.$delete(addForm,'firelevel')
                  this.$delete(addForm,'checked')
                  this.$delete(addForm,'spacecategory')
                  this.$delete(addForm,'spacename')
                  this.$delete(addForm,'spacemedium')
                  this.$delete(addForm,'acibase')
                  this.$delete(addForm,'hoistinglevel')
                  this.$delete(addForm,'hoistingweight')
                  this.$delete(addForm,'soildepth')
                  this.$delete(addForm,'soilarea')
                  this.$delete(addForm,'soilfile')
                  this.$delete(addForm,'breakreason')
                  this.$delete(addForm,'breakfile')
                  this.$delete(addForm,'workheight')
                  this.$delete(addForm,'heightlevel')
                  this.$delete(addForm,'electricityarea')
                  this.$delete(addForm,'voltage')
                  this.$delete(addForm,'power')
                  this.$delete(addForm,'pipename')
                  this.$delete(addForm,'pipemedium')
                  this.$delete(addForm,'pipetemperature')
                  this.$delete(addForm,'pipepressure')
                  this.$delete(addForm,'blindboardmaterial')
                  this.$delete(addForm,'blindboardspecification')
                  this.$delete(addForm,'blindboardnumber')
                  this.$delete(addForm,'commander')
                  this.$delete(addForm,'blindboardlocation')
                  this.$delete(addForm,'firetype')
                  let res = await addTask(addForm)
                  if(res.data.code === '200'){
                      this.$notify({
                          type:'success',
                          duration:2000,
                          message:'基本信息新建成功',
                          title:'成功'
                      })
                      this.$emit('changeCardToSafetyActionEdit',res.data.result)
                  }else{
                      this.$message({
                          message:res.data.message,
                          type:'warning'
                      })
                  }
              }
          },
          async updateTask(){
              if(this.taskBasicForm.soilfile.length === 0 && this.ifBuilding === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传动图方案文件'
                  })
              }else if(this.taskBasicForm.breakfile.length === 0 && this.ifIncludeRoad === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传短路地段示意图'
                  })
              }else if(this.taskBasicForm.blindboardlocation.length === 0 && this.ifIncludePump === 1){
                  this.$message({
                      type:'warning',
                      message:'请上传盲板位置图'
                  })
              }else {
                  this.taskBasicForm.hazard = this.taskBasicForm.hazard.join('、')
                  let addForm = JSON.parse(JSON.stringify(this.taskBasicForm))
                  let level = []
                  if (this.ifIncludeArea === 1) {
                      level.push(0)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '受限空间作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].spacecategory = this.taskBasicForm.spacecategory
                              addForm.subTaskInfos[i].spacename = this.taskBasicForm.spacename
                              addForm.subTaskInfos[i].spacemedium = this.taskBasicForm.spacemedium
                              addForm.subTaskInfos[i].acibase = this.taskBasicForm.acibase
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({id:'',taskcode:'',type:'受限空间作业',category:'',level:'',checked:1,spacecategory:this.taskBasicForm.spacecategory,spacename:this.taskBasicForm.spacename,spacemedium:this.taskBasicForm.spacemedium,acibase:this.taskBasicForm.acibase,hoistinglevel:'',hoistingweight:'',soildepth:'',soilarea:'',soilfile:[],breakreason:'',breakfile:[],heightlevel:'',workheight:'',electricityarea:'',voltage:'',power:'',pipename:'',pipemedium:'',pipetemperature:'',pipepressure:'',blindboardmaterial:'',blindboardspecification:'',blindboardnumber:'',commander:'',blindboardlocation:[],firetype:'',level:''})
                      }
                  }
                  if (this.ifHoisting === 1) {
                      if (this.taskBasicForm.hoistinglevel === '一级吊装(质量>100吨)') {
                          level.push(2)
                      } else if (this.taskBasicForm.hoistinglevel === '二级吊装(40吨<=质量<=100吨)') {
                          level.push(1)
                      } else {
                          level.push(0)
                      }
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '吊装作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].hoistinglevel = this.taskBasicForm.hoistinglevel
                              addForm.subTaskInfos[i].hoistingweight = this.taskBasicForm.hoistingweight
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '吊装作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: this.taskBasicForm.hoistinglevel,
                              hoistingweight: this.taskBasicForm.hoistingweight,
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: '',
                              breakfile: [],
                              heightlevel: '',
                              workheight: '',
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifBuilding === 1) {
                      level.push(1)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '动土作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].soildepth = this.taskBasicForm.soildepth
                              addForm.subTaskInfos[i].soilarea = this.taskBasicForm.soilarea
                              addForm.subTaskInfos[i].soilfile = this.taskBasicForm.soilfile
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '动土作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: this.taskBasicForm.soildepth,
                              soilarea: this.taskBasicForm.soilarea,
                              soilfile: this.taskBasicForm.soilfile,
                              breakreason: '',
                              breakfile: [],
                              heightlevel: '',
                              workheight: '',
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifIncludeRoad === 1) {
                      level.push(1)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '断路作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].breakreason = this.taskBasicForm.breakreason
                              addForm.subTaskInfos[i].breakfile = this.taskBasicForm.breakfile
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '断路作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: this.taskBasicForm.breakreason,
                              breakfile: this.taskBasicForm.breakfile,
                              heightlevel: '',
                              workheight: '',
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifIncludeHigh === 1) {
                      if (this.taskBasicForm.heightlevel = '特级高处作业(高度≥30米)') {
                          level.push(2)
                      } else if (this.taskBasicForm.heightlevel = '三级高处作业(15米≤高度<30米)' || this.taskBasicForm.heightlevel === '二级高处作业(5米≤高度<15米)') {
                          level.push(1)
                      } else {
                          level.push(0)
                      }
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '高处作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].breakreason = this.taskBasicForm.breakreason
                              addForm.subTaskInfos[i].breakfile = this.taskBasicForm.breakfile
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '高处作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: '',
                              breakfile: [],
                              heightlevel: this.taskBasicForm.heightlevel,
                              workheight: this.taskBasicForm.workheight,
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifIncludeElectricity === 1) {
                      level.push(1)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '临时用电作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].electricityarea = this.taskBasicForm.electricityarea
                              addForm.subTaskInfos[i].voltage = this.taskBasicForm.voltage
                              addForm.subTaskInfos[i].power = this.taskBasicForm.power
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '临时用电作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: '',
                              breakfile: [],
                              heightlevel: '',
                              workheight: '',
                              electricityarea: this.taskBasicForm.electricityarea,
                              voltage: this.taskBasicForm.voltage,
                              power: this.taskBasicForm.power,
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifIncludePump === 1) {
                      level.push(0)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '盲板抽堵作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].pipename = this.taskBasicForm.pipename
                              addForm.subTaskInfos[i].pipemedium = this.taskBasicForm.pipemedium
                              addForm.subTaskInfos[i].pipetemperature = this.taskBasicForm.pipetemperature
                              addForm.subTaskInfos[i].pipepressure = this.taskBasicForm.pipepressure
                              addForm.subTaskInfos[i].blindboardmaterial = this.taskBasicForm.blindboardmaterial
                              addForm.subTaskInfos[i].blindboardspecification = this.taskBasicForm.blindboardspecification
                              addForm.subTaskInfos[i].blindboardlocation = this.taskBasicForm.blindboardlocation
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '盲板抽堵作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: '',
                              breakfile: [],
                              heightlevel: '',
                              workheight: '',
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: this.taskBasicForm.pipename,
                              pipemedium: this.taskBasicForm.pipemedium,
                              pipetemperature: this.taskBasicForm.pipetemperature,
                              pipepressure: this.taskBasicForm.pipepressure,
                              blindboardmaterial: this.taskBasicForm.blindboardmaterial,
                              blindboardspecification: this.taskBasicForm.blindboardspecification,
                              blindboardnumber: this.taskBasicForm.blindboardnumber,
                              commander: '',
                              blindboardlocation: this.taskBasicForm.blindboardlocation,
                              firetype: '',
                              level: ''
                          })
                      }
                  }
                  if (this.ifIncludeFire === 1) {
                      level.push(this.taskBasicForm.firelevel)
                      let ifFirst = true
                      for(let i in addForm.subTaskInfos){
                          if(addForm.subTaskInfos[i].type === '动火作业'){
                              ifFirst = false
                              addForm.subTaskInfos[i].firetype = this.taskBasicForm.firetype
                              addForm.subTaskInfos[i].level = this.taskBasicForm.firelevel
                          }
                      }
                      if(ifFirst === true){
                          addForm.subTaskInfos.push({
                              id: '',
                              taskcode: '',
                              type: '动火作业',
                              category: '',
                              level: '',
                              checked: 1,
                              spacecategory: '',
                              spacename: '',
                              spacemedium: '',
                              acibase: '',
                              hoistinglevel: '',
                              hoistingweight: '',
                              soildepth: '',
                              soilarea: '',
                              soilfile: [],
                              breakreason: '',
                              breakfile: [],
                              heightlevel: '',
                              workheight: '',
                              electricityarea: '',
                              voltage: '',
                              power: '',
                              pipename: '',
                              pipemedium: '',
                              pipetemperature: '',
                              pipepressure: '',
                              blindboardmaterial: '',
                              blindboardspecification: '',
                              blindboardnumber: '',
                              commander: '',
                              blindboardlocation: [],
                              firetype: this.taskBasicForm.firetype,
                              level: this.taskBasicForm.firelevel
                          })
                      }
                  }
                  let largeNum = 0
                  for (let i in level) {
                      if (level[i] > largeNum) {
                          largeNum = level[i]
                      }
                  }
                  if(largeNum === 2){
                      largeNum = 2
                  }else{
                      largeNum += 1
                  }
                  addForm.level = largeNum
                  this.$delete(addForm,'type')
                  this.$delete(addForm,'category')
                  this.$delete(addForm,'firelevel')
                  this.$delete(addForm,'checked')
                  this.$delete(addForm,'spacecategory')
                  this.$delete(addForm,'spacename')
                  this.$delete(addForm,'spacemedium')
                  this.$delete(addForm,'acibase')
                  this.$delete(addForm,'hoistinglevel')
                  this.$delete(addForm,'hoistingweight')
                  this.$delete(addForm,'soildepth')
                  this.$delete(addForm,'soilarea')
                  this.$delete(addForm,'soilfile')
                  this.$delete(addForm,'breakreason')
                  this.$delete(addForm,'breakfile')
                  this.$delete(addForm,'workheight')
                  this.$delete(addForm,'heightlevel')
                  this.$delete(addForm,'electricityarea')
                  this.$delete(addForm,'voltage')
                  this.$delete(addForm,'power')
                  this.$delete(addForm,'pipename')
                  this.$delete(addForm,'pipemedium')
                  this.$delete(addForm,'pipetemperature')
                  this.$delete(addForm,'pipepressure')
                  this.$delete(addForm,'blindboardmaterial')
                  this.$delete(addForm,'blindboardspecification')
                  this.$delete(addForm,'blindboardnumber')
                  this.$delete(addForm,'commander')
                  this.$delete(addForm,'blindboardlocation')
                  this.$delete(addForm,'firetype')
                  let res = await updateTask(addForm)
                  if(res.data.code === '200'){
                      this.$notify({
                          type:'success',
                          duration:2000,
                          message:'基本信息编辑成功',
                          title:'成功'
                      })
                      this.$emit('changeCardToSafetyActionEdit',addForm)
                  }else{
                      this.$message({
                          type:'warning',
                          message:res.data.message
                      })
                  }
              }
          },
          handleSpaceCategory(value){
              if(value === '密闭设备'){
                  this.taskBasicForm.spacename = ''
                  this.spaceNameList = [{id:0,name:'如船舱'},{id:1,name:'贮罐'},{id:2,name:'车载槽罐'},{id:4,name:'反应塔(釜)'},{id:5,name:'冷藏箱'},{id:6,name:'压力容器'},{id:7,name:'管道'},{id:8,name:'烟道'},{id:9,name:'锅炉'},{id:10,name:'其他'}]
              }else if(value === '地下有限空间'){
                  this.taskBasicForm.spacename = ''
                  this.spaceNameList = [{id:0,name:'地下管道'},{id:1,name:'地下室'},{id:2,name:'地下仓库'},{id:4,name:'地下工程'},{id:5,name:'暗沟'},{id:6,name:'隧道'},{id:7,name:'涵洞'},{id:8,name:'地坑'},{id:9,name:'废井'},{id:10,name:'地窖'},{id:11,name:'污水池(井)'},{id:12,name:'沼气池'},{id:13,name:'化粪池'},{id:14,name:'下水道'},{id:15,name:'其他'}]
              }else{
                  this.taskBasicForm.spacename = ''
                  this.spaceNameList = [{id:0,name:'储藏室'},{id:1,name:'酒糟池'},{id:2,name:'发酵池'},{id:4,name:'垃圾站'},{id:5,name:'温室'},{id:6,name:'冷库'},{id:7,name:'粮仓'},{id:8,name:'料仓'},{id:9,name:'其他'}]
              }
          },
          resetFormRules(){
              this.$nextTick(() =>{
                  this.$refs["form"].clearValidate()
              })
          },
          async getCompany(){
              let params = {}
              params['pageIndex'] = this.currentPage
              params['pageSize'] = this.pageSize
              params['company'] = this.company
              params['code'] = this.code
              let res = await getUnitList(params)
              if(res.data.code === '200'){
                  this.companyList = res.data.result.result
              }else{
                  this.$message({
                      message:res.data.message,
                      type:'warning'
                  })
              }
          },
          async getFireTypeList(){
              const params = {}
              params['dictionaryType'] = '动火方式'
              let res = await dictionaryAllItems(params)
              if (res.data.code === '200') {
                  this.fireTypeList = res.data.result
              } else {
                  this.$message({
                      type:'warning',
                      message:res.data.message
                  })
              }
          },
          async getHazardList(){
              let params = {}
              params['dictionaryType'] = '危害辨识'
              let res = await dictionaryAllItems(params)
              if(res.data.code === '200'){
                  this.hazardList = res.data.result
              }else{
                  this.$message({
                      type:'warning',
                      message:res.data.message
                  })
              }
          },
          handleChangeBuildingFile(file,fileList){
              this.uploadForm.name = file.name
              this.header.Authorization = Cookies.get('token')
          },
          onSoilFileSuccess(response){
              if(response.code === '200'){
                  this.taskBasicForm.soilfile.push({url:process.env.IMG_API + response.result.path,name:response.result.name,fileurl:response.result.path})
                  this.$notify({
                      type:'success',
                      duration:2000,
                      message:'上传成功',
                      title:'成功',
                  })
              }
          },
          handleChangeRoadFile(){
              this.header.Authorization = Cookies.get('token')
          },
          onBreakFileSuccess(response){
              if(response.code === '200'){
                  this.taskBasicForm.breakfile.push({url:process.env.IMG_API + response.result.path,name:response.result.name,fileurl:response.result.path})
                  this.$notify({
                      type:'success',
                      duration:2000,
                      message:'上传成功',
                      title:'成功',
                  })
              }
          },
          handleChangePumpFile(){
              this.header.Authorization = Cookies.get('token')
          },
          onPumpFileSuccess(response){
              if(response.code === '200'){
                  this.taskBasicForm.blindboardlocation.push({url:process.env.IMG_API + response.result.path,name:response.result.name,fileurl:response.result.path})
                  this.$notify({
                      type:'success',
                      duration:2000,
                      message:'上传成功',
                      title:'成功',
                  })
              }
          },
          handleFile(file){
              this.dialogImageUrl = file.url;
              this.dialogVisible = true;
          },
          handleRemove(file,value) {
              return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                  confirmButtonText:'确定',
                  cancelButtonText:'取消',
                  type:'warning',
              }).then(()=> {
                  switch (value) {
                      case 'one':this.taskBasicForm.soilfile.splice(this.taskBasicForm.soilfile.findIndex(item =>item.name === file.name),1);
                          break;
                      case 'two':this.taskBasicForm.breakfile.splice(this.taskBasicForm.breakfile.findIndex(item =>item.name === file.name),1);
                          break;
                      case 'three':this.taskBasicForm.blindboardlocation.splice(this.taskBasicForm.blindboardlocation.findIndex(item =>item.name === file.name),1);
                          break;
                  }
              })
          },
      }
  }
</script>
<style scoped>
.taskBasic_title{
    font-weight: bolder;
    font-size: large;
    text-align: center;
    margin-top: 24px;
}
/deep/.el-collapse-item__header{
    margi:0 auto;
    width:100%;
    font-weight: bolder;
    font-size: large;
    text-align: center;
    padding-left: 45%;
}
.taskBasic_select{
    width: 100%;
}
</style>
src/views/specialWorkManage/specialWork/taskCreate/components/taskCreate.vue
对比新文件
@@ -0,0 +1,1336 @@
<template>
    <div>
        <el-dialog :title="title" :visible.sync="taskCreateDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="70%">
            <el-tabs type="border-card" class="active" v-model="activeName">
                <el-tab-pane label="作业基本信息" name="taskBasic" v-if="ifHotFireBasic">
                    <task-basic ref="taskBasic" :title="title" @changeCardToSafetyActionEdit="changeToSecond" @changeToConstructionConfirm="constructionConfirm"></task-basic>
                </el-tab-pane>
                <el-tab-pane label="安全措施" name="safetyAction" v-if="ifSafetyAction">
                    <safety-action ref="safetyAction" :basicInformation="basicForm" :title="title" @changeToCardFile="changeToThird" @changeToConstructionConfirm="constructionConfirm" @confirmConstruction="confirmConstruction"></safety-action>
                </el-tab-pane>
                <el-tab-pane label="安全交底和风险告知确认卡" name="safetyAndRiskConfirm" v-if="ifSafetyAndRisk">
                    <safety-and-risk-confirm ref="safetyAndRiskConfirm" :title="title" :basicInformation="basicForm" @changeToCardFile="changeToThird" @changeToConstructionConfirm="constructionConfirm"></safety-and-risk-confirm>
                </el-tab-pane>
                <el-tab-pane label="设备" name="equipment" v-if="ifSafetyAction">
                    <equipment ref="equipment" :basicInformation="basicForm" :title="title" @changeToCardFile="changeToThird" @changeToConstructionConfirm="constructionConfirm" @confirmConstruction="confirmConstruction"></equipment>
                </el-tab-pane>
                <el-tab-pane label="作业人" name="fireMan" v-if="ifFireMan">
                    <fire-man ref="fireMan" :basicInformation="basicForm" :title="title" @confirmConstruction="confirmConstruction"></fire-man>
                </el-tab-pane>
                <el-tab-pane label="文件" name="fileAndEquipment" v-if="ifFile">
                    <file ref="fileAndEquipment" :basicInformation="basicForm" :title="title" @confirm="confirmFile" @changeToConstructionConfirm="constructionConfirm"></file>
                </el-tab-pane>
                <el-tab-pane label="文件" name="constructionFile" v-if="ifConstructionFile">
                    <construction-file ref="constructionFile" :basicInformation="basicForm" :title="title" @changeToConstructionConfirm="constructionConfirm" @confirmConstruction="confirmConstruction"></construction-file>
                </el-tab-pane>
                <el-tab-pane label="文件" name="allFile" v-if="ifAllFile">
                    <all-file ref="allFile" :basicInformation="basicForm" :title="title" @changeToConstructionConfirm="constructionConfirm" @confirmConstruction="confirmConstruction"></all-file>
                </el-tab-pane>
            </el-tabs>
            <div align="center" style="padding-top: 20px" v-if="title === '动火部位审批' || title === '相关部门审批' || title=== '安全部门审批'">
                <el-button type="danger" @click="refuse">拒绝</el-button>
                <el-button type="primary" @click="agree">同意</el-button>
            </div>
            <el-dialog :visible.sync="supervisorAndAnalystAgree" :modal-append-to-body="false" :close-on-click-modal="false" width="25%">
                <div align="center">
                    <span>监火人:</span>
                    <el-input v-model="basicForm.analyst" style="width:200px">
                    </el-input>
                </div>
                <div align="center" style="padding-top: 20px">
                    <span>分析人:</span>
                    <el-input v-model="basicForm.approversupervisor" style="width:200px">
                    </el-input>
                    <div  align="center" style="padding-top: 20px">
                        <el-button type="primary" @click="submitAgreeTaskByFireDepartment()">确定</el-button>
                    </div>
                </div>
            </el-dialog>
            <el-dialog title="驳回意见" :visible.sync="supervisorAndAnalystRefuse" :modal-append-to-body="false" :close-on-click-modal="false" width="40%">
                <div align="center">
                    <el-input type="textarea" :row="2" v-model="basicForm.applyunitopinion" style="width:400px">
                    </el-input>
                </div>
                <div  align="center" style="padding-top: 20px">
                    <el-button type="primary" @click="submitRefuseTaskByFireDepartment()">确定</el-button>
                </div>
            </el-dialog>
            <el-dialog title="驳回意见" :visible.sync="relevantRefuse" :modal-append-to-body="false" :close-on-click-modal="false" width="40%">
                <div align="center">
                    <el-input type="textarea" :row="2" v-model="basicForm.relevantopinion" style="width:400px">
                    </el-input>
                </div>
                <div  align="center" style="padding-top: 20px">
                    <el-button type="primary" @click="submitRefuseTaskByFireDepartment()">确定</el-button>
                </div>
            </el-dialog>
            <el-dialog title="驳回意见" :visible.sync="securityRefuse" :modal-append-to-body="false" :close-on-click-modal="false" width="40%">
                <div align="center">
                    <el-input type="textarea" :row="2" v-model="basicForm.securityopinion" style="width:400px">
                    </el-input>
                </div>
                <div  align="center" style="padding-top: 20px">
                    <el-button type="primary" @click="submitRefuseTaskByFireDepartment()">确定</el-button>
                </div>
            </el-dialog>
        </el-dialog>
    </div>
</template>
<script>
import allFile from './file/allFire'
import constructionFile from './file/constructionFile'
import file from './file/index'
import fireMan from './fireMan/index'
import equipment from './equipment/index'
import safetyAndRiskConfirm from './safetyAndRiskConfirm/index'
import safetyAction from './safetyAction/index'
import taskBasic from './taskBasic/index'
import {
    addTaskSecond,
    involveReview, partReview,
    securityReview,
    submitConstruction,
    updateTaskSecond
} from '../../../../../api/task'
import { parseError } from '../../../../../utils/messageDialog'
export default {
    name: 'taskCreate',
    data(){
        return{
            taskCreateDialog:false,
            activeName:'taskBasic',
            title:'',
            basicForm:{},
            constructionForm:{},
            ifHotFireBasic:false,
            ifSafetyAction:false,
            ifSafetyAndRisk:false,
            ifFireMan:false,
            ifFile:false,
            ifConstructionFile:false,
            ifAllFile:false,
            supervisorAndAnalystAgree:false,
            supervisorAndAnalystRefuse:false,
            relevantRefuse:false,
            securityRefuse:false,
        }
    },
    components:{
        taskBasic,
        safetyAction,
        safetyAndRiskConfirm,
        equipment,
        fireMan,
        file,
        constructionFile,
        allFile
    },
    methods:{
        openTaskInfo(value,title){
            this.title = title
            this.taskCreateDialog = true
            this.activeName = 'taskBasic'
            if(title === '新增'){
                this.ifHotFireBasic = true
                this.ifSafetyAction = false
                this.ifSafetyAndRisk = false
                this.ifFireMan = false
                this.ifFile = false
                this.ifAllFile = false
                this.ifConstructionFile = false
                setTimeout(()=>{
                    this.$refs.taskBasic.type = 1
                    this.$refs.taskBasic.activeNames = ['0']
                    this.$refs.taskBasic.taskBasicForm = {
                        unit:sessionStorage.getItem('company'),
                        department:sessionStorage.getItem('department'),
                        applicant:sessionStorage.getItem('realname'),
                        applyunitname: "",
                        applyunitopinion: "",
                        applyunittime: "",
                        approverprofession: "",
                        approversupervisor: "",
                        area: "",
                        code: "",
                        completedconfirm: "",
                        completedname: "",
                        completedtime: "",
                        constructionname: "",
                        constructionopinion: "",
                        constructiontime: "",
                        constructionunit: "",
                        createdat: "",
                        createdby: "",
                        director: "",
                        endtime: "",
                        enterprisename: "",
                        enterpriseopinion: "",
                        enterprisetime: "",
                        flag: 0,
                        hazard: [],
                        id: 0,
                        isdel: 0,
                        isholiday: null,
                        level:'',
                        modifiedat: "",
                        modifiedby: "",
                        othertask: "",
                        partdirector: "",
                        profession: "",
                        relevantname: "",
                        relevantopinion: "",
                        relevanttime: "",
                        resources: [
                        ],
                        securityname: "",
                        securityopinion: "",
                        securitytime: "",
                        securitydep: "",
                        shiftleadername: "",
                        shiftleaderopinion: "",
                        shiftleadertime: "",
                        starttime: "",
                        status: 0,
                        supervisor: "",
                        taskAnalyses: [
                        ],
                        taskEquipments: [
                        ],
                        taskRisk: {
                            confirmat: "",
                            content: "",
                            createdat: "",
                            createdby: "",
                            director: "",
                            emergency: "",
                            environment: "",
                            flag: 0,
                            id: 0,
                            modifiedat: "",
                            modifiedby: "",
                            other: "",
                            preventive: "",
                            taskcode: "",
                            taskdirector: ""
                        },
                        taskSecurities: [
                        ],
                        taskWorkers: [
                        ],
                        subTaskInfos:[],
                        type:'',
                        category:'',
                        firelevel:'',
                        checked:'',
                        spacecategory:'',
                        spacename:'',
                        spacemedium:'',
                        acibase:'',
                        hoistinglevel:'',
                        hoistingweight:'',
                        soildepth:'',
                        soilarea:'',
                        soilfile:[],
                        breakreason:'',
                        breakfile:[],
                        workheight:'',
                        heightlevel:'',
                        electricityarea:'',
                        voltage:'',
                        power:'',
                        pipename:'',
                        pipemedium:'',
                        pipetemperature:'',
                        pipepressure:'',
                        blindboardmaterial:'',
                        blindboardspecification:'',
                        blindboardnumber:'',
                        commander:'',
                        blindboardlocation:[],
                        firetype:'',
                        description:'',
                        isanalysis:'',
                        analysisarea:'',
                        analysismedium:''
                    }
                    this.$refs.taskBasic.ifIncludeArea = null
                    this.$refs.taskBasic.ifHoisting = null
                    this.$refs.taskBasic.ifBuliding = null
                    this.$refs.taskBasic.ifIncludeRoad = null
                    this.$refs.taskBasic.ifIncludeHigh = null
                    this.$refs.taskBasic.ifIncludeElectricity = null
                    this.$refs.taskBasic.ifIncludePump = null
                    this.$refs.taskBasic.ifIncludeFire = null
                    this.$refs.taskBasic.resetFormRules()
                })
            }
            else if(title === '编辑'){
                this.ifSafetyAction = false
                this.ifSafetyAndRisk = false
                this.ifFireMan = false
                this.ifFile = false
                this.ifConstructionFile = false
                this.ifAllFile = false
                this.ifHotFireBasic = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.type = 2
                    this.$refs.taskBasic.resetFormRules()
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    this.$refs.taskBasic.taskBasicForm.hazard = this.$refs.taskBasic.taskBasicForm.hazard.split('、')
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.taskBasic.giveTaskBasic(this.$refs.taskBasic.taskBasicForm)
                })
            }
            else if(title === '复制'){
                this.ifSafetyAction = false
                this.ifSafetyAndRisk = false
                this.ifFireMan = false
                this.ifFile = false
                this.ifConstructionFile = false
                this.ifAllFile = false
                this.ifHotFireBasic = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.type = 1
                    this.$refs.taskBasic.resetFormRules()
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    this.$refs.taskBasic.taskBasicForm.hazard = this.$refs.taskBasic.taskBasicForm.hazard.split('、')
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.taskBasic.giveTaskBasic(this.$refs.taskBasic.taskBasicForm)
                })
            }
            else if(title === '施工单位确认'){
                this.title = '施工单位确认'
                this.ifHotFireBasic = true
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.ifFireMan = false
                this.ifFile = false
                this.ifConstructionFile = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    this.$refs.taskBasic.taskBasicForm.hazard = this.$refs.taskBasic.taskBasicForm.hazard.split(',')
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.safetyAction.tasksecurity = JSON.parse(JSON.stringify(value)).taskSecurities
                    this.$refs.safetyAndRiskConfirm.taskRiskForm = JSON.parse(JSON.stringify(value)).taskRisk
                    this.$refs.equipment.equipmentData = JSON.parse(JSON.stringify(value)).taskEquipments
                    this.$refs.constructionFile.ifCompany = true
                    this.$refs.constructionFile.ifConstruction = false
                    this.$refs.constructionFile.getFileList()
                    this.$refs.taskBasic.resetFormRules()
                })
            }
            else if(title === '动火部位审批'){
                this.ifHotFireBasic = true
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.ifFireMan = true
                this.ifAllFile = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.safetyAction.tasksecurity = JSON.parse(JSON.stringify(value)).taskSecurities
                    this.$refs.safetyAndRiskConfirm.taskRiskForm = JSON.parse(JSON.stringify(value)).taskRisk
                    this.$refs.equipment.equipmentData = JSON.parse(JSON.stringify(value)).taskEquipments
                    this.$refs.fireMan.taskWorkers = JSON.parse(JSON.stringify(value)).taskWorkers
                    this.$refs.taskBasic.resetFormRules()
                })
            }
            else if(title === '相关部门审批'){
                this.ifHotFireBasic = true
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.ifFireMan = true
                this.ifAllFile = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.safetyAction.tasksecurity = JSON.parse(JSON.stringify(value)).taskSecurities
                    this.$refs.safetyAndRiskConfirm.taskRiskForm = JSON.parse(JSON.stringify(value)).taskRisk
                    this.$refs.equipment.equipmentData = JSON.parse(JSON.stringify(value)).taskEquipments
                    this.$refs.fireMan.taskWorkers = JSON.parse(JSON.stringify(value)).taskWorkers
                    this.$refs.taskBasic.resetFormRules()
                })
            }
            else if(title === '安全部门审批'){
                this.ifHotFireBasic = true
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.ifFireMan = true
                this.ifAllFile = true
                this.basicForm = JSON.parse(JSON.stringify(value))
                setTimeout(()=>{
                    this.$refs.taskBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                    let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                    this.$refs.taskBasic.taskBasicForm.type = ''
                    this.$refs.taskBasic.taskBasicForm.category = ''
                    this.$refs.taskBasic.taskBasicForm.firelevel = ''
                    this.$refs.taskBasic.taskBasicForm.checked = ''
                    this.$refs.taskBasic.taskBasicForm.spacecategory = ''
                    this.$refs.taskBasic.taskBasicForm.spacename = ''
                    this.$refs.taskBasic.taskBasicForm.spacemedium = ''
                    this.$refs.taskBasic.taskBasicForm.acibase = ''
                    this.$refs.taskBasic.taskBasicForm.hoistinglevel = ''
                    this.$refs.taskBasic.taskBasicForm.hoistingweight = ''
                    this.$refs.taskBasic.taskBasicForm.soildepth = ''
                    this.$refs.taskBasic.taskBasicForm.soilarea = ''
                    this.$refs.taskBasic.taskBasicForm.soilfile = []
                    this.$refs.taskBasic.taskBasicForm.breakreason = ''
                    this.$refs.taskBasic.taskBasicForm.breakfile = []
                    this.$refs.taskBasic.taskBasicForm.workheight = ''
                    this.$refs.taskBasic.taskBasicForm.heightlevel = ''
                    this.$refs.taskBasic.taskBasicForm.electricityarea = ''
                    this.$refs.taskBasic.taskBasicForm.voltage = ''
                    this.$refs.taskBasic.taskBasicForm.power = ''
                    this.$refs.taskBasic.taskBasicForm.pipename = ''
                    this.$refs.taskBasic.taskBasicForm.pipemedium = ''
                    this.$refs.taskBasic.taskBasicForm.pipetemperature = ''
                    this.$refs.taskBasic.taskBasicForm.pipepressure = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardmaterial = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardspecification = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardnumber = ''
                    this.$refs.taskBasic.taskBasicForm.commander = ''
                    this.$refs.taskBasic.taskBasicForm.blindboardlocation = []
                    this.$refs.taskBasic.taskBasicForm.firetype = ''
                    for(let i in form){
                        if(form[i].type === '受限空间作业'){
                            this.$refs.taskBasic.activeNames.push('1')
                            this.$refs.taskBasic.ifIncludeArea = 1
                            this.$refs.taskBasic.taskBasicForm.spacecategory = form[i].spacecategory
                            this.$refs.taskBasic.taskBasicForm.spacename = form[i].spacename
                            this.$refs.taskBasic.taskBasicForm.spacemedium = form[i].spacemedium
                            this.$refs.taskBasic.taskBasicForm.acibase = form[i].acibase
                        }
                        else if(form[i].type === '吊装作业'){
                            this.$refs.taskBasic.activeNames.push('2')
                            this.$refs.taskBasic.ifHoisting = 1
                            this.$refs.taskBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                            this.$refs.taskBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                        }
                        else if(form[i].type === '动土作业'){
                            this.$refs.taskBasic.activeNames.push('3')
                            this.$refs.taskBasic.ifBuilding = 1
                            this.$refs.taskBasic.taskBasicForm.soildepth = form[i].soildepth
                            this.$refs.taskBasic.taskBasicForm.soilarea = form[i].soilarea
                            this.$refs.taskBasic.taskBasicForm.soilfile = form[i].soilfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '断路作业'){
                            this.$refs.taskBasic.activeNames.push('4')
                            this.$refs.taskBasic.ifIncludeRoad = 1
                            this.$refs.taskBasic.taskBasicForm.breakreason = form[i].breakreason
                            this.$refs.taskBasic.taskBasicForm.breakfile = form[i].breakfile.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else if(form[i].type === '高处作业'){
                            this.$refs.taskBasic.activeNames.push('5')
                            this.$refs.taskBasic.ifIncludeHigh = 1
                            this.$refs.taskBasic.taskBasicForm.heightlevel = form[i].heightlevel
                            this.$refs.taskBasic.taskBasicForm.workheight = form[i].workheight
                        }
                        else if(form[i].type === '临时用电作业'){
                            this.$refs.taskBasic.activeNames.push('6')
                            this.$refs.taskBasic.ifIncludeElectricity = 1
                            this.$refs.taskBasic.taskBasicForm.electricityarea = form[i].electricityarea
                            this.$refs.taskBasic.taskBasicForm.voltage = form[i].voltage
                            this.$refs.taskBasic.taskBasicForm.power = form[i].power
                        }
                        else if(form[i].type === '盲板抽堵作业'){
                            this.$refs.taskBasic.activeNames.push('7')
                            this.$refs.taskBasic.ifIncludePump = 1
                            this.$refs.taskBasic.taskBasicForm.pipename = form[i].pipename
                            this.$refs.taskBasic.taskBasicForm.pipemedium = form[i].pipemedium
                            this.$refs.taskBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                            this.$refs.taskBasic.taskBasicForm.pipepressure = form[i].pipepressure
                            this.$refs.taskBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                            this.$refs.taskBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                            this.$refs.taskBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                            this.$refs.taskBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation.map(item =>{
                                return Object.assign(item,{url:process.env.IMG_API + item.fileurl})
                            })
                        }
                        else{
                            this.$refs.taskBasic.activeNames.push('8')
                            this.$refs.taskBasic.ifIncludeFire = 1
                            this.$refs.taskBasic.taskBasicForm.firelevel = form[i].level
                            this.$refs.taskBasic.taskBasicForm.firetype = form[i].firetype
                        }
                    }
                    this.$refs.safetyAction.tasksecurity = JSON.parse(JSON.stringify(value)).taskSecurities
                    this.$refs.safetyAndRiskConfirm.taskRiskForm = JSON.parse(JSON.stringify(value)).taskRisk
                    this.$refs.equipment.equipmentData = JSON.parse(JSON.stringify(value)).taskEquipments
                    this.$refs.fireMan.taskWorkers = JSON.parse(JSON.stringify(value)).taskWorkers
                    this.$refs.taskBasic.resetFormRules()
                })
            }
        },
        changeToSecond(val){
            if(val.isanalysis === 1){
                this.taskCreateDialog = false
            }else if(this.title === '新增' || this.title === '编辑' || this.title === '复制'){
                this.ifHotFireBasic = false
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.activeName = 'safetyAction'
                this.basicForm = val
                this.$emit('getinfo')
                setTimeout(()=>{
                    if(val.taskSecurities.length === 0){
                        this.$refs.safetyAction.getSafeTyAction()
                    }else{
                        this.$refs.safetyAction.tasksecurity = val.taskSecurities
                    }
                    if(val.taskRisk === null){
                        this.$refs.safetyAndRiskConfirm.taskRiskForm = {
                            id:'',
                            taskcode:'',
                            content:'',
                            environment:'',
                            preventive:'',
                            emergency:'',
                            other:'',
                            director:'',
                            taskdirector:'',
                            confirmat:'',
                            createdat:'',
                            createdby:'',
                            modifiedat:'',
                            modifiedby:'',
                            flag:'',
                        }
                    }else{
                        this.$refs.safetyAndRiskConfirm.taskRiskForm = val.taskRisk
                    }
                    this.$refs.equipment.equipmentData = val.taskEquipments
                })
            }else{
                this.ifHotFireBasic = false
                this.ifSafetyAction = true
                this.ifSafetyAndRisk = true
                this.activeName = 'safetyAction'
                this.$emit('getinfo')
                setTimeout(()=>{
                    this.$refs.safetyAction.tasksecurity = this.basicForm.taskSecurities
                    this.$refs.equipment.equipmentData = this.basicForm.taskEquipments
                    this.$refs.safetyAndRiskConfirm.taskRiskForm = this.basicForm.taskRisk
                })
            }
        },
        async changeToThird(){
            let correct
            for(let i in this.$refs.safetyAction.tasksecurity){
                if(this.$refs.safetyAction.tasksecurity[i].checked === null || this.$refs.safetyAction.tasksecurity[i].checked === undefined || this.$refs.safetyAction.tasksecurity[i].checked === ''){
                    correct = 0
                    this.$message({
                        type:'warning',
                        message:'请完善安全措施'
                    })
                    break
                }else{
                    correct = 1
                }
            }
            if(correct === 1){
                if((this.$refs.safetyAndRiskConfirm.taskRiskForm.content === '' || this.$refs.safetyAndRiskConfirm.taskRiskForm.environment === '' || this.$refs.safetyAndRiskConfirm.taskRiskForm.preventive === '' || this.$refs.safetyAndRiskConfirm.taskRiskForm.emergency === '' || this.$refs.safetyAndRiskConfirm.taskRiskForm.other === '') && this.basicForm.level === 2){
                    this.$message({
                        type:'warning',
                        message:'请完善安全交底和风险告知确认卡'
                    })
                }else if(this.$refs.equipment.equipmentData.length === 0){
                    this.$message({
                        type:'warning',
                        message:'请完善设备'
                    })
                } else{
                    this.basicForm.taskSecurities = this.$refs.safetyAction.tasksecurity
                    this.basicForm.taskRisk = this.$refs.safetyAndRiskConfirm.taskRiskForm
                    this.basicForm.taskRisk.taskcode = this.basicForm.code
                    this.basicForm.taskEquipments = this.$refs.equipment.equipmentData
                    if(this.title === '新增' || this.title === '复制') {
                        let res = await addTaskSecond(this.basicForm)
                        if (res.data.code === '200') {
                            this.ifFile = true
                            this.ifHotFireBasic = false
                            this.ifSafetyAction = false
                            this.ifSafetyAndRisk = false
                            this.activeName = 'fileAndEquipment'
                            this.$notify({
                                title: '成功',
                                duration: 2000,
                                message: '信息上传成功',
                                type: 'success'
                            })
                            this.$emit('getinfo')
                        } else {
                            this.$message({
                                message: res.data.message,
                                type: 'warning'
                            })
                        }
                    }else if(this.title === '编辑'){
                        let res = await updateTaskSecond(this.basicForm)
                        if (res.data.code === '200') {
                            this.ifFile = true
                            this.ifHotFireBasic = false
                            this.ifSafetyAction = false
                            this.ifSafetyAndRisk = false
                            this.activeName = 'fileAndEquipment'
                            this.$notify({
                                title: '成功',
                                duration: 2000,
                                message: '信息上传成功',
                                type: 'success'
                            })
                            this.$emit('getinfo')
                        } else {
                            this.$message({
                                message: res.data.message,
                                type: 'warning'
                            })
                        }
                    }
                }
            }
        },
        confirmFile(){
            if(this.$refs.fileAndEquipment.fileListOne.length === 0){
                this.$message({
                    type:'warning',
                    message:'请上传事故救援预案'
                })
            }else{
                this.taskCreateDialog = false
                this.$notify({
                    title: '成功',
                    duration: 2000,
                    message: '新建成功',
                    type: 'success'
                })
            }
        },
        constructionConfirm(){
            this.title = '施工单位信息填写'
            this.activeName = 'safetyAction'
            this.ifHotFireBasic = false
            this.ifSafetyAction = true
            this.ifSafetyAndRisk = false
            this.ifFireMan = true
            this.ifFile = false
            this.ifConstructionFile = false
            this.constructionForm = {
                id: this.basicForm.id,
                isAgree: 1,
                code:this.basicForm.code,
                taskEquipments:[],
                taskSecurities:[],
                taskWorkers:[]
            }
            setTimeout(()=>{
                this.$refs.equipment.equipmentData = []
                this.$refs.safetyAction.getConstructionAction()
                this.$refs.constructionFile.ifCompany = false
                this.$refs.constructionFile.ifConstruction = true
            })
        },
        confirmConstruction(){
            let correct
            for(let i in this.$refs.safetyAction.tasksecurity){
                if(this.$refs.safetyAction.tasksecurity[i].checked === null || this.$refs.safetyAction.tasksecurity[i].checked === undefined || this.$refs.safetyAction.tasksecurity[i].checked === ''){
                    correct = 0
                    this.$message({
                        type:'warning',
                        message:'请完善安全措施'
                    })
                    break
                }else{
                    correct = 1
                }
            }
            if(correct === 1) {
                if (this.$refs.equipment.equipmentData.length === 0) {
                    this.$message({
                        type: 'warning',
                        message: '请完善设备'
                    })
                }else if(this.$refs.fireMan.taskWorkers.length === 0){
                    this.$message({
                        type: 'warning',
                        message: '请完善作业人'
                    })
                }
                // else if(this.$refs.constructionFile.fileListTwo.length === 0 || this.$refs.constructionFile.fileListThree.length === 0){
                //     this.$message({
                //         type: 'warning',
                //         message: '请上传作业人员健康和作业资质证书文件'
                //     })
                // }
                else {
                    this.constructionForm.taskEquipments = this.$refs.equipment.equipmentData
                    this.constructionForm.taskSecurities = this.$refs.safetyAction.tasksecurity
                    this.constructionForm.taskWorkers = this.$refs.fireMan.taskWorkers
                    submitConstruction(this.constructionForm).then(res => {
                        if (res.data.code === '200') {
                            this.$emit('getinfo')
                            this.taskCreateDialog = false
                            this.$notify({
                                type: 'success',
                                duration: 2000,
                                message: '施工单位确认成功',
                                title: '成功'
                            })
                        } else {
                            this.$message({
                                message: res.data.message,
                                type: 'warning'
                            })
                        }
                    }).catch(error => {
                        parseError({ error: error, vm: this })
                    })
                }
            }
        },
        refuse(){
            if(this.title === '动火部位审批'){
                this.basicForm.isAgree = 0
                this.supervisorAndAnalystRefuse = true
            }else if(this.title === '相关部门审批'){
                this.basicForm.isAgree = 0
                this.relevantRefuse = true
            }else if(this.title === '安全部门审批'){
                this.basicForm.isAgree = 0
                this.securityRefuse = true
            }
        },
        submitRefuseTaskByFireDepartment(){
            if(this.title === '动火部位审批'){
                partReview(this.basicForm).then(res=>{
                    if(res.data.code === '200'){
                        this.$emit('getinfo')
                        this.taskCreateDialog = false
                        this.supervisorAndAnalystRefuse = false
                        this.$notify({
                            title:'成功',
                            message:'审核驳回成功',
                            duration:2000,
                            type:'success'
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }).catch(error =>{
                    parseError({error:error,vm:this})
                })
            }else if(this.title === '相关部门审批'){
                involveReview(this.basicForm).then(res=>{
                    if(res.data.code === '200'){
                        this.$emit('getinfo')
                        this.taskCreateDialog = false
                        this.relevantRefuse = false
                        this.$notify({
                            title:'成功',
                            message:'审核驳回成功',
                            duration:2000,
                            type:'success'
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }).catch(error =>{
                    parseError({error:error,vm:this})
                })
            }else if(this.title === '安全部门审批'){
                securityReview(this.basicForm).then(res=>{
                    if(res.data.code === '200'){
                        this.$emit('getinfo')
                        this.taskCreateDialog = false
                        this.securityRefuse = false
                        this.$notify({
                            title:'成功',
                            message:'审核驳回成功',
                            duration:2000,
                            type:'success'
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }).catch(error =>{
                    parseError({error:error,vm:this})
                })
            }
        },
        agree(){
            if(this.title === '动火部位审批'){
                this.basicForm.isAgree = 1
                this.supervisorAndAnalystAgree = true
            }else if(this.title === '相关部门审批'){
                this.basicForm.isAgree = 1
                involveReview(this.basicForm).then(res=>{
                    if(res.data.code === '200'){
                        this.$emit('getinfo')
                        this.taskCreateDialog = false
                        this.$notify({
                            title:'成功',
                            message:'审核通过成功',
                            duration:2000,
                            type:'success'
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }).catch(error =>{
                    parseError({error:error,vm:this})
                })
            }else if(this.title === '安全部门审批'){
                this.basicForm.isAgree = 1
                securityReview(this.basicForm).then(res=>{
                    if(res.data.code === '200'){
                        this.$emit('getinfo')
                        this.taskCreateDialog = false
                        this.$notify({
                            title:'成功',
                            message:'审核通过成功',
                            duration:2000,
                            type:'success'
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }).catch(error =>{
                    parseError({error:error,vm:this})
                })
            }
        },
        submitAgreeTaskByFireDepartment(){
            partReview(this.basicForm).then(res=>{
                if(res.data.code === '200'){
                    this.$emit('getinfo')
                    this.taskCreateDialog = false
                    this.supervisorAndAnalystAgree = false
                    this.$notify({
                        title:'成功',
                        message:'审核通过成功',
                        duration:2000,
                        type:'success'
                    })
                }else{
                    this.$message({
                        type:'warning',
                        message:res.data.message
                    })
                }
            }).catch(error =>{
                parseError({error:error,vm:this})
            })
        }
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskCreate/index.vue
对比新文件
@@ -0,0 +1,344 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search">
                <span>开始时间:</span>
                <el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择开始时间" type="datetime" v-model="listQuery.starttime" style="width:200px">
                </el-date-picker>
            </div>
            <div class="basic_search">
                <span>结束时间:</span>
                <el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择结束时间" type="datetime" v-model="listQuery.endtime" style="width:200px">
                </el-date-picker>
            </div>
            <div class="basic_search">
                <span>部门:</span>
                <el-input v-model="listQuery.department" style="width:200px">
                </el-input>
            </div>
            <div class="basic_search">
                <span>施工单位:</span>
                <el-input v-model="listQuery.constructionunit" style="width:200px">
                </el-input>
            </div>
            <div class="basic_search">
                <span>作业类型:</span>
                <el-select v-model="listQuery.level" clearable style="width:200px">
                    <el-option
                        v-for="item in taskTypeList"
                        :key="item.id"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>审批状态:</span>
                <el-select v-model="listQuery.status"  clearable style="width:200px">
                    <el-option
                    v-for="item in statusList"
                    :key="item.id"
                    :value="item.id"
                    :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>作业状态:</span>
                <el-select v-model="listQuery.flag" clearable style="width:200px">
                    <el-option
                        v-for="item in flagList"
                        :key="item.id"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <el-button  style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
            <el-button  style="margin-left: 10px;" type="primary" icon="el-icon-plus" @click="showTaskInfo('','新增')">新增</el-button>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="taskData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
                @sort-change="sortChange"
            >
                <el-table-column label="单位名称" prop="unit" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="单位代码" prop="code" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="申请人" prop="applicant" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="施工单位" prop="constructionunit" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="作业内容" prop="area" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="开始时间" prop="starttime" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="结束时间" prop="endtime" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="作业级别" prop="level" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in levelList">
                            <div v-if="scope.row.level === item.id">
                                <span>{{item.name}}</span>
                                <!--                                <el-tag v-if="scope.row.level ===0" type="success">{{item.name}}</el-tag>-->
                                <!--                                <el-tag v-if="scope.row.level ===1" type="warning">{{item.name}}</el-tag>-->
                                <!--                                <el-tag v-if="scope.row.level ===2" type="danger">{{item.name}}</el-tag>-->
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="任务审批状态" prop="status" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in statusList">
                            <div v-if="scope.row.status === item.id">
                                <span>{{item.name}}</span>
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="作业状态" prop="flag" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in flagList">
                            <div v-if="scope.row.flag === item.id">
                                <span>{{item.name}}</span>
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="创建时间" prop="createdat" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="最近修改时间" prop="modifiedat" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button type="text" @click="showReviewInfo(scope.row)" v-if="scope.row.status !== 7 && scope.row.taskReviews.length !== 0">查看审批</el-button>
                        <el-button type="text" @click="downloadFile(scope.row)" v-if="scope.row.status === 7">下载</el-button>
<!--                        <el-button type="text" @click="showTaskInfo(scope.row,'主管领导审批')" v-if="scope.row.status === 6 &&  scope.row.level === 2">主管领导审批</el-button>-->
<!--                        <el-button type="text" @click="showTaskInfo(scope.row,'安全部门审批')" v-if="scope.row.status === 5 && (scope.row.level === 1 || scope.row.level === 2)">安全部门审批</el-button>-->
<!--                        <el-button type="text" @click="showTaskInfo(scope.row,'相关部门审批')" v-if="scope.row.status === 4 &&(scope.row.level === 1 || scope.row.level === 2)">相关部门审批</el-button>-->
<!--                        <el-button type="text" @click="showTaskInfo(scope.row,'动火部位审批')" v-if="scope.row.status === 3">动火部位审批</el-button>-->
                        <el-button type="text" @click="showTaskInfo(scope.row,'施工单位确认')" v-if="scope.row.status === 2 && loginForm.iscompany === 1">施工单位确认</el-button>
                        <el-button type="text" @click="submitTask(scope.row)" v-if="scope.row.status === 1 || scope.row.status === 0">提交</el-button>
                        <el-button type="text" @click="showTaskInfo(scope.row,'编辑')" v-if="scope.row.status === 1 || scope.row.status === 0">编辑</el-button>
                        <el-button type="text" @click="showTaskInfo(scope.row,'复制')">复制</el-button>
                        <el-button type="text" style="color: red" @click="deleteById(scope.row)" v-if="(scope.row.applicant === loginForm.realname) && scope.row.status === 2">撤销</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="currentPage"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
        <task-create ref="taskCreate" @getinfo="getTaskData"></task-create>
        <review-info ref="reviewInfo"></review-info>
    </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { computePageCount } from '../../../../utils'
import { getTaskList, submitTask } from '../../../../api/task'
import Cookies from 'js-cookie'
import TaskCreate from './components/taskCreate'
import reviewInfo from './components/reviewInfo/index'
export default {
    name: 'index',
    filters: {
    },
    computed: {
        ...mapGetters([
            'userType'
        ])
    },
    data() {
        return {
            tableKey: 0,
            taskData: [],
            companyList:[],
            listLoading: false,
            pageSize: 10,
            recordTotal: 0,
            currentPage: 1,
            pageTotal: 0,
            title:'',
            orderValue:'',
            sortValue:'',
            levelList:[{id:2,name:'特级'},{id:1,name:'一级'},{id:0,name:'二级'},],
            taskTypeList:[
                {id:0,name:'受限空间作业'},
                {id:1,name:'吊装作业'},
                {id:2,name:'动土作业'},
                {id:3,name:'断路作业'},
                {id:4,name:'高处作业'},
                {id:5,name:'临时用电作业'},
                {id:6,name:'盲板抽堵作业'},
                {id:7,name:'动火作业'},
            ],
            statusList:[
                {id:0,name:'已驳回'},
                {id:1,name:'待提交'},
                {id:2,name:'已提交'},
                {id:3,name:'施工单位已确认'},
                {id:4,name:'动火部位负责人审批通过'},
                {id:5,name:'相关部门审批通过'},
                {id:6,name:'安全部门审批通过'},
                {id:7,name:'审批通过'},
            ],
            flagList:[
                {id:0,name:'待提交'},
                {id:1,name:'作业中止'},
                {id:2,name:'等待检查'},
                {id:3,name:'等待开始'},
                {id:4,name:'作业中'},
                {id:5,name:'作业完成'},
            ],
            listQuery:{
                starttime:'',
                endtime:'',
                department:'',
                constructionunit:'',
                level:'',
                status:'',
                flag:'',
            },
            loginForm:{}
        }
    },
    components:{
        TaskCreate,
        reviewInfo
    },
    mounted() {
        this.getTaskData()
    },
    methods: {
        async getTaskData(){
            this.loginForm = JSON.parse(Cookies.get('loginForm'))
            this.listLoading = true
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['order'] = this.orderValue
            params['sort'] = this.sortValue
            for (const i in this.listQuery) {
                console.log(i)
                params[i] = this.listQuery[i]
            }
            let res = await getTaskList(params)
            if(res.data.code === '200'){
                this.recordTotal = res.data.result.totalCount
                this.pageSize = res.data.result.pageSize
                this.pageTotal = computePageCount(res.data.result.totalCount, res.data.result.pageSize)
                this.currentPage = res.data.result.pageIndex
                this.taskData = res.data.result.result
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
            this.listLoading = false
        },
        showTaskInfo(value,title){
            this.$refs.taskCreate.openTaskInfo(value,title)
        },
        showReviewInfo(value){
            this.$refs.reviewInfo.openReviewInfo(value)
        },
        downloadFile(val){
            if(val.path === null || val.path === ''){
                this.$message({
                    type:'warning',
                    message:'文件未生成'
                })
            }else{
                window.open(process.env.IMG_API + val.path,'_blank')
            }
        },
        submitTask(row){
            this.$confirm('提交此条任务,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                submitTask({id:row.id}).then( (res)=>{
                    if(res.data.code === '200'){
                        this.getTaskData()
                        this.$notify({
                            title:'成功',
                            message:'提交成功',
                            type:'success',
                            duration:2000,
                        })
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                })
            })
        },
        deleteById(val){
            this.$confirm('删除此条信息,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                deleteUnit({id:val.id}).then( ()=>{
                    this.getUnitForm()
                    this.$notify({
                        title:'成功',
                        message:'删除成功',
                        type:'success',
                        duration:2000,
                    })
                })
            })
        },
        refreshHandle(){
            this.getTaskData()
        },
        handleSizeChange(val){
            this.pageSize = val
            this.getTaskData()
        },
        handleCurrentChange(val){
            this.currentPage = val
            this.getTaskData()
        },
        sortChange(params){
            this.sortValue = params.sort
            this.orderValue = params.order
            this.getTaskData()
        }
    }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/equipment/index.vue
对比新文件
@@ -0,0 +1,72 @@
<template>
    <div>
        <el-table :data="equipmentData" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="taskcode" label="作业编号" align="left">
            </el-table-column>
            <el-table-column prop="name" label="设备名称" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.name"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="type" label="设备类型" align="left">
                <template slot-scope="scope">
                    <el-select v-model="scope.row.type">
                        <el-option
                        v-for="item in typeList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.name"
                        >
                        </el-option>
                    </el-select>
                </template>
            </el-table-column>
            <el-table-column prop="num" label="设备数量" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.num"></el-input>
                </template>
            </el-table-column>
        </el-table>
    </div>
</template>
<script>
import { getSafetyActionList } from '@/api/task'
export default {
    props:['basicInformation'],
    name: 'index',
    data(){
        return{
            typeList:[{id:1,name:'安全防护设备及工具'},{id:2,name:'安全施工防护用具'},{id:3,name:'有毒有害防护设备'},{id:4,name:'个人防护设备'},{id:5,name:'安全措施设备及工器具'}],
            equipmentData:[],
        }
    },
    created(){
    },
    methods:{
        addEquipment(){
            this.equipmentData.push({
                createdat: "",
                createdby: "",
                flag: 0,
                id: 0,
                modifiedat: "",
                modifiedby: "",
                name: "",
                num: "",
                taskcode: this.basicInformation.code,
                type: ""
            })
        },
        deleteEquipment(val){
            this.equipmentData.splice(val,1)
        }
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/fileAndEquipment/index.vue
对比新文件
@@ -0,0 +1,207 @@
<template>
    <div>
        <el-form ref="form" :model="fileForm" label-width="160px" label-position="right">
            <el-form-item label="事故救援预案:">
                <el-upload
                    accept=".pdf,.jpg,.png"
                    :action="fileRoad"
                    class="upload-demo"
                    ref="upload"
                    :headers="header"
                    :data="uploadForm"
                    :on-preview="onPreview"
                    :file-list="fileListOne">
                </el-upload>
            </el-form-item>
<!--            <el-form-item label="作业人员身体健康:">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :headers="header"-->
<!--                    :data="uploadForm"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListTwo">-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
<!--            <el-form-item label="作业资质证书:">-->
<!--                <el-upload-->
<!--                    accept=".pdf,.jpg,.png"-->
<!--                    :action="fileRoad"-->
<!--                    class="upload-demo"-->
<!--                    ref="upload"-->
<!--                    :data="uploadForm"-->
<!--                    :on-preview="onPreview"-->
<!--                    :file-list="fileListThree">-->
<!--                </el-upload>-->
<!--            </el-form-item>-->
        </el-form>
        <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
import Cookies from 'js-cookie'
import { deleteFile, getFileData } from '@/api/task'
export default {
    props:['basicInformation'],
    name: 'index',
    data(){
        return{
            ifApply:'',
            ifCompany:'',
            ifApplyButton:'',
            ifCompanyButton:'',
            disabled:'',
            fileForm:{},
            header:{Authorization:''},
            fileRoad:process.env.BASE_API + '/task/upload',
            dialogVisible:false,
            dialogImageUrl:'',
            riskAndDanger:[],
            safetyOrganizeAction:[],
            workSecurityAction:[],
            fileList:[],
            fileListOne:[],
            fileListTwo:[],
            fileListThree:[],
            uploadForm:{
                taskcode:'',
                type:'',
            }
        }
    },
    mounted(){
        this.getFileList()
    },
    methods:{
        async onPreview(file){
            window.open( process.env.IMG_API + file.fileurl,'_blank')
        },
        async getFileList(){
            let params = {}
            params["taskCode"] = this.basicInformation.code
            let res = await getFileData(params)
            if(res.data.code === '200'){
                this.fileList = []
                this.fileListOne = []
                this.fileListTwo = []
                this.fileListThree = []
                this.fileList = res.data.result
                this.fileList.map(item =>{
                    return Object.assign(item,{name:item.originalname})
                })
                for(let i in this.fileList){
                    if(this.fileList[i].type === '事故救援预案'){
                        this.fileListOne.push(this.fileList[i])
                    }
                }
                for(let i in this.fileList){
                    if(this.fileList[i].type === '作业人员身体健康'){
                        this.fileListTwo.push(this.fileList[i])
                    }
                }
                for(let i in this.fileList){
                    if(this.fileList[i].type === '作业资质证书'){
                        this.fileListThree.push(this.fileList[i])
                    }
                }
            }
        },
        submit(){
            this.uploadForm.type = "事故救援预案"
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
            this.$refs.upload.submit()
        },
        handlePictureCardPreview(file) {
            this.dialogImageUrl = file.url;
            this.dialogVisible = true;
        },
        handleChangeOne(file, fileList) {
            this.uploadForm.type = '事故救援预案'
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        handleChangeTwo(file, fileList) {
            this.uploadForm.type = '作业人员身体健康';
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        handleChangeThree(file, fileList) {
            this.uploadForm.type = '作业资质证书';
            this.uploadForm.taskcode = this.basicInformation.code
            this.header.Authorization = Cookies.get('token')
        },
        onSuccess(response){
            if(response.code === '200'){
                this.$notify({
                    type:'success',
                    duration:2000,
                    message:'上传成功',
                    title:'成功',
                })
                this.getFileList()
            }
        },
        onRemove(file,fileList){
            return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(() =>{
                let params = {}
                params["id"] = file.id
                deleteFile(params).then(res =>{
                    if(res.data.code === '200'){
                        this.$notify({
                            type:'success',
                            duration:2000,
                            message:'删除成功',
                            title:'成功',
                        })
                        this.getFileList()
                    }else{
                        this.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                })
            })
        },
        handleRemove(file,value) {
            return this.$confirm(`确定移除 ${ file.name }?`,'提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                switch (value) {
                    case 'one':this.riskAndDanger.splice(this.riskAndDanger.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'two':this.safetyOrganizeAction.splice(this.safetyOrganizeAction.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'three':this.workSecurityAction.splice(this.workSecurityAction.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'four':this.operationQualification.splice(this.operationQualification.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'five':this.escortCompany.splice(this.escortCompany.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'six':this.insurance.splice(this.insurance.findIndex(item =>item.name === file.name),1);
                        break;
                    case 'seven':this.safetyProduction.splice(this.safetyProduction.findIndex(item =>item.name === file.name),1);
                        break;
                }
            })
        },
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/fireMan/index.vue
对比新文件
@@ -0,0 +1,68 @@
<template>
    <div>
        <el-table :data="taskWorkers" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="taskcode" label="作业编号" align="left">
            </el-table-column>
            <el-table-column prop="unit" label="施工单位" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.unit"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="worker" label="作业人姓名" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.worker"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="branch" label="特种作业工种" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.branch"></el-input>
                </template>
            </el-table-column>
            <el-table-column prop="number" label="特种作业证号" align="left">
                <template slot-scope="scope">
                    <el-input v-model="scope.row.number"></el-input>
                </template>
            </el-table-column>
        </el-table>
    </div>
</template>
<script>
export default {
    props:['basicInformation'],
    name: 'index',
    data(){
        return{
            taskWorkers:[],
        }
    },
    created(){
    },
    methods:{
        addTaskWorker(){
            this.taskWorkers.push({
                createdat: "",
                createdby: "",
                flag: 0,
                id: 0,
                modifiedat: "",
                modifiedby: "",
                taskcode: this.basicInformation.code,
                unit: "",
                worker: "",
                branch: 0,
                number: "",
            })
        },
        deleteWorker(val){
            this.taskWorkers.splice(val,1)
        }
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/hotFireBasic/index.vue
对比新文件
@@ -0,0 +1,723 @@
<template>
    <div style="padding:20px 50px 0 50px;">
        <el-form ref="form" :rules="taskBasicRules" :model="taskBasicForm" label-position="center" label-width="150px">
            <el-collapse v-model="activeNames">
                <el-collapse-item title="基本信息" name="0">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item  label="申请单位:" prop="unit">
                                <el-input v-model="taskBasicForm.unit" readonly></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="申请人:" prop="applicant">
                                <el-input v-model="taskBasicForm.applicant" readonly></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="负责人:" prop="director">
                                <el-input v-model="taskBasicForm.director"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="危害辨识:" prop="hazard">
                                <el-input v-model="taskBasicForm.hazard">
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="开始时间:" style="margin-right: 0px" prop="starttime">
                                <el-date-picker value-format="yyyy-MM-dd HH:mm" type="datetime" v-model="taskBasicForm.starttime" placeholder="选择开始日期" class="taskBasic_select">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="8">
                            <el-form-item label="结束时间:" prop="endtime">
                                <el-date-picker value-format="yyyy-MM-dd HH:mm" type="datetime" v-model="taskBasicForm.endtime" placeholder="选择结束日期" class="taskBasic_select">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="施工单位:" prop="constructionunit" >
                                <el-select v-model="taskBasicForm.constructionunit" clearable class="taskBasic_select">
                                    <el-option
                                        v-for="item in companyList"
                                        :key="item.id"
                                        :value="item.company"
                                        :label="item.company"
                                    ></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="16">
                            <el-form-item label="作业内容:" prop="area">
                                <el-input v-model="taskBasicForm.area"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-collapse-item>
                <el-collapse-item title="受限空间作业" name="1">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeArea" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeArea" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeArea">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="受限空间分类:" prop="spacecategory">
                                    <el-select v-model="taskBasicForm.spacecategory" class="taskBasic_select">
                                        <el-option
                                            v-for="item in spaceCategoryList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="受限空间名称:" prop="spacename">
                                    <el-select v-model="taskBasicForm.spacename" class="taskBasic_select">
                                        <el-option
                                            v-for="item in spaceNameList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item label="受限空间介质名称:" prop="spacemedium">
                                    <el-input v-model="taskBasicForm.spacemedium" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="是否受酸碱腐蚀:" prop="acibase">
                                    <el-select v-model="taskBasicForm.acibase" class="taskBasic_select">
                                        <el-option
                                            v-for="item in acibaseList"
                                            :key="item.id"
                                            :value="item.name"
                                            :label="item.name"
                                        ></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="吊装作业" name="2">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifHoisting" :label="1">是</el-radio>
                                <el-radio v-model="ifHoisting" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifHoisting">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="吊装重物等级:" prop="hoistinglevel">
                                    <el-select v-model="taskBasicForm.hoistinglevel" class="taskBasic_select">
                                        <el-option value="一级吊装(质量>100吨)"></el-option>
                                        <el-option value="二级吊装(40吨<=质量<=100吨)"></el-option>
                                        <el-option value="三级吊装(质量<40吨)"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="吊装重物质量(t):" prop="hoistingweight">
                                    <el-input v-model="taskBasicForm.hoistingweight" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="动土作业" name="3">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifBuilding" :label="1">是</el-radio>
                                <el-radio v-model="ifBuilding" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifBuilding">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="动土作业深度:" prop="soildepth">
                                    <el-input v-model="taskBasicForm.soildepth" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="动土作业面积:" prop="soilarea">
                                    <el-input v-model="taskBasicForm.soilarea" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="动土方案文件:" prop="soilfile">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    :data="uploadForm"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.soilfile"
                                    :on-change="handleChangeBuildingFile"
                                    :on-success="onSoilFileSuccess"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'one')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="断路作业" name="4">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeRoad" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeRoad" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeRoad">
                        <el-row>
                            <el-col :span="16">
                                <el-form-item  label="断路原因:" prop="breakreason">
                                    <el-input v-model="taskBasicForm.breakreason" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="断路地段示意图:" prop="breakfile">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.breakfile"
                                    :on-success="onBreakFileSuccess"
                                    :on-change="handleChangeRoadFile"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'two')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="高处作业" name="5">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeHigh" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeHigh" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeHigh">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="作业等级:" prop="heightlevel">
                                    <el-select v-model="taskBasicForm.heightlevel" class="taskBasic_select">
                                        <el-option value="一级高处作业(2米≤高度<5米)"></el-option>
                                        <el-option value="二级高处作业(5米≤高度<15米)"></el-option>
                                        <el-option value="三级高处作业(15米≤高度<30米)"></el-option>
                                        <el-option value="特级高处作业(高度≥30米)"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="作业高度:" prop="workheight">
                                    <el-input type="number" v-model="taskBasicForm.workheight" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="临时用电作业" name="6">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeElectricity" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeElectricity" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeElectricity">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="电压接入点:" prop="electricityarea">
                                    <el-input v-model="taskBasicForm.electricityarea" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="工作电压:" prop="voltage">
                                    <el-input v-model="taskBasicForm.voltage" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="用电设备及功率:" prop="power">
                                    <el-input  v-model="taskBasicForm.power" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="盲板抽堵作业" name="7">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludePump" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludePump" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludePump">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="设备管道名称:" prop="pipename">
                                    <el-input v-model="taskBasicForm.pipename" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="设备管道介质:" prop="pipemedium">
                                    <el-input v-model="taskBasicForm.pipemedium" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="设备管道温度:" prop="pipetemperature">
                                    <el-input v-model="taskBasicForm.pipetemperature" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="设备管道压力:" prop="pipepressure">
                                    <el-input v-model="taskBasicForm.pipepressure" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="盲板材质:" prop="blindboardmaterial">
                                    <el-input v-model="taskBasicForm.blindboardmaterial" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="盲板规格11:" prop="blindboardspecification">
                                    <el-input v-model="taskBasicForm.blindboardspecification" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="盲板编号:" prop="blindboardnumber">
                                    <el-input v-model="taskBasicForm.blindboardnumber" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-form-item label="盲板位置图:" prop="blindboardlocation">
                                <el-upload
                                    accept=".pdf,.jpg,.png"
                                    :action="fileRoad"
                                    class="upload-demo"
                                    ref="upload"
                                    :headers="header"
                                    list-type="picture-card"
                                    :file-list="taskBasicForm.blindboardlocation"
                                    :on-success="onPumpFileSuccess"
                                    :on-change="handleChangePumpFile"
                                    :auto-upload="true">
                                    <i slot="default" class="el-icon-plus"></i>
                                    <div slot="file" slot-scope="{file}">
                                        <img
                                            class="el-upload-list__item-thumbnail"
                                            :src="file.url" alt=""
                                        >
                                        <span class="el-upload-list__item-actions">
                                <span
                                    class="el-upload-list__item-preview"
                                    @click="handleFile(file)"
                                >
                                  <i class="el-icon-zoom-in"></i>
                                </span>
                                <span
                                    v-if="!disabled"
                                    class="el-upload-list__item-delete"
                                    @click="handleRemove(file,'three')"
                                >
                                  <i class="el-icon-delete"></i>
                                </span>
                              </span>
                                    </div>
                                </el-upload>
                            </el-form-item>
                        </el-row>
                    </div>
                </el-collapse-item>
                <el-collapse-item title="动火作业" name="8">
                    <el-row>
                        <el-col :span="8">
                            <el-form-item label="是否涉及:">
                                <el-radio v-model="ifIncludeFire" :label="1">是</el-radio>
                                <el-radio v-model="ifIncludeFire" :label="0">否</el-radio>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <div v-if="ifIncludeFire">
                        <el-row>
                            <el-col :span="8">
                                <el-form-item  label="动火级别:" prop="firelevel">
                                    <el-select v-model="taskBasicForm.firelevel" class="taskBasic_select">
                                        <el-option
                                            v-for="item in levelList"
                                            :key="item.id"
                                            :label="item.name"
                                            :value="item.id"
                                        >
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item  label="动火方式:" prop="firetype">
                                    <el-input v-model="taskBasicForm.firetype" class="taskBasic_select">
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </div>
                </el-collapse-item>
            </el-collapse>
        </el-form>
        <div align="center" style="padding-top: 20px" v-if="title === '新增' || title === '编辑' || title=== '施工单位确认' || title === '施工单位信息填写'">
            <el-button type="primary" @click="goNext">下一步</el-button>
        </div>
        <el-dialog :visible.sync="dialogVisible" :append-to-body="true">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </div>
</template>
<script>
    import { getUnitList } from '@/api/unitManage'
    import Cookies from 'js-cookie'
    import { addTask, updateTask } from '@/api/task'
    export default {
        name: 'index',
        props:['title'],
        data(){
            return{
                type:'',
                fileRoad:process.env.BASE_API + '/task/web/upload',
                uploadForm:{
                    name:'',
                },
                header:{Authorization:''},
                taskBasicForm:{
                    isAgree: 0,
                    applicant: "",
                    applyunitname: "",
                    applyunitopinion: "",
                    applyunittime: "",
                    approverprofession: "",
                    approversupervisor: "",
                    area: "",
                    code: "",
                    completedconfirm: "",
                    completedname: "",
                    completedtime: "",
                    constructionname: "",
                    constructionopinion: "",
                    constructiontime: "",
                    constructionunit: "",
                    createdat: "",
                    createdby: "",
                    department: "",
                    director: "",
                    endtime: "",
                    enterprisename: "",
                    enterpriseopinion: "",
                    enterprisetime: "",
                    flag: 0,
                    hazard: "",
                    id: 0,
                    isdel: 0,
                    isholiday: 0,
                    level:'',
                    modifiedat: "",
                    modifiedby: "",
                    othertask: "",
                    partdirector: "",
                    profession: "",
                    relevantname: "",
                    relevantopinion: "",
                    relevanttime: "",
                    resources: [
                    ],
                    securityname: "",
                    securityopinion: "",
                    securitytime: "",
                    securitydep: "",
                    shiftleadername: "",
                    shiftleaderopinion: "",
                    shiftleadertime: "",
                    starttime: "",
                    status: 0,
                    supervisor: "",
                    taskAnalyses: [
                    ],
                    taskEquipments: [
                    ],
                    taskRisk: {
                        confirmat: "",
                        content: "",
                        createdat: "",
                        createdby: "",
                        director: "",
                        emergency: "",
                        environment: "",
                        flag: 0,
                        id: 0,
                        modifiedat: "",
                        modifiedby: "",
                        other: "",
                        preventive: "",
                        taskcode: "",
                        taskdirector: ""
                    },
                    taskSecurities: [
                    ],
                    taskWorkers: [
                    ],
                    unit: "",
                    subTaskInfos:[],
                    type:'',
                    category:'',
                    firelevel:'',
                    checked:'',
                    spacecategory:'',
                    spacename:'',
                    spacemedium:'',
                    acibase:'',
                    hoistinglevel:'',
                    hoistingweight:'',
                    soildepth:'',
                    soilarea:'',
                    soilfile:[],
                    breakreason:'',
                    breakfile:[],
                    workheight:'',
                    heightlevel:'',
                    electricityarea:'',
                    voltage:'',
                    power:'',
                    pipename:'',
                    pipemedium:'',
                    pipetemperature:'',
                    pipepressure:'',
                    blindboardmaterial:'',
                    blindboardspecification:'',
                    blindboardnumber:'',
                    commander:'',
                    blindboardlocation:[],
                    firetype:'',
                },
                activeNames:['0'],
                companyList:[],
                levelList:[{id:2,name:'特级'},{id:1,name:'一级'},{id:0,name:'二级'},],
                spaceCategoryList:[{id:0,name:'密闭设备'},{id:1,name:'地下有限空间'},{id:2,name:'地上有限空间'},],
                spaceNameList:[],
                acibaseList:[{id:0,name:'酸腐蚀'},{id:1,name:'碱腐蚀'},{id:2,name:'其他腐蚀'},{id:3,name:'没有腐蚀'}],
                taskBasicRules:{
                    unit: [{ required: true, message: '申请单位不能为空', trigger: 'blur' }],
                    applicant: [{ required: true, message: '申请人不能为空', trigger: 'blur' }],
                    level: [{ required: true, message: '动火作业级别不能为空', trigger: 'change' }],
                    mode: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
                    hazard: [{ required: true, message: '危害辨识不能为空', trigger: 'blur' }],
                    director: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
                    area: [{ required: true, message: '动火地点不能为空', trigger: 'blur' }],
                    constructionunit: [{ required: true, message: '施工部门不能为空', trigger: 'change' }],
                    starttime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
                    endtime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
                    spacecategory: [{ required: true, message: '受限空间分类不能为空', trigger: 'change' }],
                    spacename: [{ required: true, message: '受限空间名称不能为空', trigger: 'change' }],
                    spacemedium: [{ required: true, message: '受限空间介质名称不能为空', trigger: 'change' }],
                    acibase: [{ required: true, message: '是否酸碱腐蚀不能为空', trigger: 'change' }],
                    hoistinglevel: [{ required: true, message: '吊装重物等级不能为空', trigger: 'change' }],
                    hoistingweight: [{ required: true, message: '吊装重物质量不能为空', trigger: 'blur' }],
                    soildepth: [{ required: true, message: '动土作业深度不能为空', trigger: 'blur' }],
                    soilarea: [{ required: true, message: '动土作业面积不能为空', trigger: 'blur' }],
                    // soilfile: [{ required: true, message: '动土方案文件不能为空', trigger: 'blur' }],
                    breakreason: [{ required: true, message: '断路原因不能为空', trigger: 'blur' }],
                    // breakfile: [{ required: true, message: '断路地段示意图不能为空', trigger: 'blur' }],
                    heightlevel: [{ required: true, message: '作业等级不能为空', trigger: 'change' }],
                    workheight: [{ required: true, message: '作业高度不能为空', trigger: 'blur' }],
                    electricityarea: [{ required: true, message: '电压接入点不能为空', trigger: 'blur' }],
                    voltage: [{ required: true, message: '工作电压不能为空', trigger: 'blur' }],
                    power: [{ required: true, message: '用电设备及功率不能为空', trigger: 'blur' }],
                    pipename: [{ required: true, message: '设备管道名称不能为空', trigger: 'blur' }],
                    pipemedium: [{ required: true, message: '设备管道介质不能为空', trigger: 'blur' }],
                    pipetemperature: [{ required: true, message: '设备管道温度不能为空', trigger: 'blur' }],
                    pipepressure: [{ required: true, message: '设备管道压力不能为空', trigger: 'blur' }],
                    blindboardmaterial: [{ required: true, message: '盲板材质不能为空', trigger: 'blur' }],
                    blindboardspecification: [{ required: true, message: '盲板规格不能为空', trigger: 'blur' }],
                    blindboardnumber: [{ required: true, message: '盲板编号不能为空', trigger: 'blur' }],
                    // blindboardlocation: [{ required: true, message: '盲板位置图不能为空', trigger: 'blur' }],
                    firelevel: [{ required: true, message: '动火级别不能为空', trigger: 'blur' }],
                    firetype: [{ required: true, message: '动火类型不能为空', trigger: 'blur' }],
                },
                ifIncludeArea:null,
                ifHoisting:null,
                ifBuilding:null,
                ifIncludeRoad:null,
                ifIncludeHigh:null,
                ifIncludeElectricity:null,
                ifIncludePump:null,
                ifIncludeFire:null,
                dialogImageUrl:false,
                dialogVisible:false,
                disabled: false,
            }
        },
        created(){
            this.getCompany()
        },
        methods:{
            giveTaskBasic(){
                this.taskBasicForm = JSON.parse(JSON.stringify(this.taskBasicForm))
            },
            handlePictureCardPreview(file){
                this.dialogImageUrl = file.url;
                this.dialogVisible = true;
            },
            resetFormRules(){
                this.$nextTick(() =>{
                    this.$refs["form"].clearValidate()
                })
            },
            async getCompany(){
                let params = {}
                params['pageIndex'] = this.currentPage
                params['pageSize'] = this.pageSize
                params['company'] = this.company
                params['code'] = this.code
                let res = await getUnitList(params)
                if(res.data.code === '200'){
                    this.companyList = res.data.result.result
                }else{
                    this.$message({
                        message:res.data.message,
                        type:'warning'
                    })
                }
            },
        }
    }
</script>
<style scoped>
    .taskBasic_title{
        font-weight: bolder;
        font-size: large;
        text-align: center;
        margin-top: 24px;
    }
    /deep/.el-collapse-item__header{
        margi:0 auto;
        width:100%;
        font-weight: bolder;
        font-size: large;
        text-align: center;
        padding-left: 45%;
    }
    .taskBasic_select{
        width: 100%;
    }
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/reviewInfo/index.vue
对比新文件
@@ -0,0 +1,72 @@
<template>
    <el-dialog title="审批" :visible.sync="reviewInfoDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="50%">
        <div class="block">
            <el-timeline>
                <el-timeline-item
                    v-for="(activity, index) in activities"
                    :key="index"
                    :color="'#0bbd87'"
                    :size="activity.size"
                    :timestamp="activity.reviewat">
                    <div style="padding-bottom: 10px;font-weight: bolder">{{activity.level}}</div>
                    <el-card>
                        <el-row>
                            <el-col :span="2">
                                <div>签字:</div>
                            </el-col>
                            <el-col :span="22">
                                <img :src="activity.autograph" style="width:40px;height:40px;margin-left:10px;cursor:pointer" @click="showPic(activity.autograph)"></img>
                            </el-col>
                        </el-row>
                        <el-row>
                            <span>现场图:</span>
                            <img slot="reference" v-for="(item,index) in activity.pictures" :src="item.url" :key="index" style="width:40px;height:40px;margin-left:10px;cursor:pointer" @click="showPic()"></img>
                        </el-row>
                    </el-card>
                </el-timeline-item>
            </el-timeline>
        </div>
        <el-dialog :visible.sync="dialogVisible" :append-to-body="true">
            <img width="100%" :src="dialogImageUrl" alt="">
        </el-dialog>
    </el-dialog>
</template>
<script>
    export default {
        name: 'index',
        data(){
            return{
                reviewInfoDialog:false,
                dialogVisible:false,
                dialogImageUrl:'',
                activities: []
            }
        },
        methods:{
            openReviewInfo(value){
                this.reviewInfoDialog = true
                this.activities = JSON.parse(JSON.stringify(value.taskReviews))
                for(let i in this.activities){
                    if(this.activities[i].pictures !== null && this.activities[i].pictures.length !== 0){
                        this.activities[i].pictures = this.activities[i].pictures.map( item =>{
                            return process.env.IMG_API + item
                        })
                    }
                    this.activities[i].autograph = process.env.IMG_API + this.activities[i].autograph
                }
            },
            showPic(value){
                this.dialogVisible = true
                this.dialogImageUrl = value
            },
        }
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/safetyAction/index.vue
对比新文件
@@ -0,0 +1,118 @@
<template>
    <div>
        <el-table :data="tasksecurity" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
            <el-table-column type="index" label="序号" align="center" width="60"/>
            <el-table-column prop="content" label="安全措施" align="left">
                <template slot-scope="scope">
                    <div v-if="scope.row.checktype === '判断'">
                        {{scope.row.content}}
                    </div>
                    <div v-if="scope.row.checktype === '填空'">
                        <span>{{scope.row.content.split('_')[0]}}</span>
                        <el-input style="width:50px" v-model="scope.row.num"></el-input>
                        <span>{{scope.row.content.split('_')[1]}}</span>
                    </div>
                </template>
            </el-table-column>
            <el-table-column prop="checked" label="选项" align="center" width="300">
                <template slot-scope="scope">
                    <el-radio v-model="scope.row.checked" :label="1">是</el-radio>
                    <el-radio v-model="scope.row.checked" :label="0">否</el-radio>
                    <el-radio v-model="scope.row.checked" :label="2">不涉及</el-radio>
                </template>
            </el-table-column>
        </el-table>
    </div>
</template>
<script>
import { getSafetyActionList } from '@/api/task'
export default {
    props:['basicInformation'],
    name: 'index',
    data(){
        return{
            currentPage:0,
            pageSize:1000,
            tasksecurity:[],
            safetyActionData:[
                // {id:0,selected:true,action:'动火设备内部构件清理干净,蒸汽吹扫或水洗合格,达到用火条件。',type:0},
                // {id:1,selected:null,actionOne:'',actionTwo:'',type:1},
                // {id:2,selected:null,action:'动火点10m范围内及动火点下部区域严禁同时进行可燃溶剂清洗和喷漆等作业。在受限空间内进行动火作业、临时用电作业时,不得同时进行刷漆、喷漆作业或使用可燃溶剂清洗等其他可能散发易燃气体、可燃液体的作业。',type:0},
                // {id:3,selected:null,action:'动火点周围的下水井、地漏、地沟、电缆沟等已清除易燃物,并已采取覆盖、铺沙、水封等手段进行隔离。',type:0},
                // {id:4,selected:null,action:'动火点周围易燃物已清除。',type:0},
                // {id:5,selected:null,action:'罐区内动火点同一围堰内和防火间距内的储罐不同时进行脱水作业,排凝等作业。',type:0},
                // {id:6,selected:null,action:'距动火点30m内严禁排放可燃气体,15m内严禁排放各类可燃液体。',type:0},
                // {id:7,selected:null,action:'电焊回路线已接在焊件上,把线未穿过下水井或其它设备搭接。',type:0},
                // {id:8,selected:null,action:'高处作业已采取防火花飞溅措施。',type:0},
                // {id:9,selected:null,action:'乙炔气瓶(直立放置)、氧气瓶与火源间的距离大于10m,二者间距不应小于5m。',type:0},
                // {id:10,selected:null,actionOne:'',actionTwo:'',actionThree:'',actionFour:'',type:2},
                // {id:11,selected:null,actionOne:'',type:3},
                ],
        }
    },
    methods:{
        async getSafeTyAction(){
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['type'] = '动火作业负责检查项'
            this.safetyActionData = []
            this.tasksecurity = []
            let res = await getSafetyActionList(params)
            if(res.data.code === '200'){
                this.safetyActionData = res.data.result
                this.tasksecurity = this.safetyActionData.map(item =>{
                    return {
                        id:item.id,
                        taskcode: this.basicInformation.code,
                        content: item.content,
                        checked: item.check,
                        num: item.number,
                        confirmedby: "test",
                        checktype:item.checktype,
                    }
                })
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        },
        async getConstructionAction(){
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['type'] = '施工单位负责检查项'
            this.safetyActionData = []
            this.tasksecurity = []
            let res = await getSafetyActionList(params)
            if(res.data.code === '200'){
                this.safetyActionData = res.data.result
                this.tasksecurity = this.safetyActionData.map(item =>{
                    return {
                        id:item.id,
                        taskcode: this.basicInformation.code,
                        content: item.content,
                        checked: item.check,
                        num: item.number,
                        confirmedby: "test",
                        checktype:item.checktype,
                    }
                })
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        }
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/safetyAndRiskConfirm/index.vue
对比新文件
@@ -0,0 +1,277 @@
<template>
    <div class="safetyAndRiskConfirm">
        <div class="safetyAndRiskConfirm_title">
            <span>{{"安全交底和风险告知确认卡"}}</span>
        </div>
        <el-descriptions class="margin-top" :column="2"  border>
            <el-descriptions-item :span="1">
                <template slot="label">
                    <i class="el-icon-office-building"></i>
                    作业单位
                </template>
                <div class="safetyAndRiskConfirm_input">{{constructionUnit}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="1" class="test">
                <template slot="label">
                    <i class="el-icon-user-solid"></i>
                    车间项目负责人
                </template>
                <div class="safetyAndRiskConfirm_input">{{director}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-notebook-2"></i>
                    作业内容
                </template>
                <el-input class="safetyAndRiskConfirm_input" v-model="taskRiskForm.content"></el-input>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-time"></i>
                    作业时间
                </template>
                <div class="safetyAndRiskConfirm_input">{{startTime + '-' + endTime}}</div>
            </el-descriptions-item>
            <el-descriptions-item :span="2">
                <template slot="label" >
                    <i class="el-icon-user"></i>
                    作业人员
                </template>
                <el-input class="safetyAndRiskConfirm_input"></el-input>
            </el-descriptions-item>
        </el-descriptions>
        <el-descriptions title="基本要求" direction="vertical" :column="4" border>
        </el-descriptions>
        <div class="safetyAndRiskConfirm_top">
            <div class="safetyAndRiskConfirm_top_title">
                {{"作业前,项目负责人应对施工作业人员进行安全交底和风险告知,内容包括作业许可范围及作业环境、作业风险、防范措施(工艺、设备、个体防护等)、应急措施及其他注意事项。作业人员应按照风险告知内容,逐条对接确认,落实到位后方可作业。"}}
            </div>
        </div>
        <div class="safetyAndRiskConfirm_middle">
            <div class="safetyAndRiskConfirm_middle_left">
                <div class="safetyAndRiskConfirm_middle_left_title">{{'安全交底和风险告知内容'}}</div>
            </div>
            <div class="safetyAndRiskConfirm_middle_right">
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"作业许可范围及作业环境:"}}
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.environment"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"作业风险:"}}
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="hazard" readonly></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"防范措施(工艺、设备、个体防护等):"}}
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.preventive"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"应急措施:"}}
                    </div>
                    <div class="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.emergency"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_one">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"其他注意事项:"}}
                    </div>
                    <div calss="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea" v-model="taskRiskForm.other"></el-input>
                    </div>
                </div>
                <div class="safetyAndRiskConfirm_middle_right_two">
                    <div class="safetyAndRiskConfirm_middle_right_one_top">
                        {{"企业负责人确认:"}}
                    </div>
                    <div calss="safetyAndRiskConfirm_middle_right_one_text">
                        <el-input type="textarea" :row="2" class="safetyAndRiskConfirm_middle_right_one_textarea"></el-input>
                    </div>
                </div>
            </div>
        </div>
        <div class="safetyAndRiskConfirm_bottom">
            <div class="safetyAndRiskConfirm_bottom_title">
                {{"我方所有施工作业人员已明确该项目的风险并清楚了危害、防范措施和其它注意事项。"}}
            </div>
        </div>
    </div>
</template>
<script>
export default {
    name: 'index',
    props:['basicInformation'],
    data(){
        return{
            director:'',
            startTime:'',
            endTime:'',
            constructionUnit:'',
            hazard:'',
            taskRiskForm:{
                id:'',
                taskcode:'',
                content:'',
                environment:'',
                preventive:'',
                emergency:'',
                other:'',
                director:'',
                taskdirector:'',
                confirmat:'',
                createdat:'',
                createdby:'',
                modifiedat:'',
                modifiedby:'',
                flag:'',
            },
        }
    },
    created(){
        this.getBasic()
    },
    methods:{
        getBasic(){
            this.constructionUnit = this.basicInformation.constructionunit
            this.director = this.basicInformation.director
            this.startTime = this.basicInformation.starttime
            this.endTime = this.basicInformation.endtime
            this.hazard = this.basicInformation.hazard
            this.taskRiskForm.taskcode = this.basicInformation.code
        }
    }
}
</script>
<style scoped>
.safetyAndRiskConfirm{
    width:60%;
    margin:0 auto;
}
.safetyAndRiskConfirm_title{
    padding-bottom: 15px;
    font-weight: bold;
    font-size: 25px;
    text-align: center;
}
/deep/.el-descriptions__header{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:30px;
    text-align: center;
}
/deep/.el-descriptions__title{
    text-align: center;
    width:100%;
    margin: 0px auto;
}
.safetyAndRiskConfirm_top{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:80px;
    font-size: 18px;
    text-indent: 2em;
}
.safetyAndRiskConfirm_top_title{
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
/*.safetyAndRiskConfirm_basic{*/
/*    border-left: 1px solid #EBEEF5;*/
/*    border-right: 1px solid #EBEEF5;*/
/*    border-bottom: 1px solid #EBEEF5;*/
/*    margin: 0px auto;*/
/*    height:80px;*/
/*    font-size: 18px;*/
/*    text-indent: 2em;*/
/*}*/
.safetyAndRiskConfirm_middle{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:550px;
    font-size: 18px;
}
.safetyAndRiskConfirm_middle_left{
    height:100%;
    width:10%;
    border-right: 1px solid #EBEEF5;
    display:inline-block;
    float: left;
}
.safetyAndRiskConfirm_middle_left_title{
    padding-left: 12px;
    padding-right: 12px;
    text-align: center;
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
.safetyAndRiskConfirm_middle_right{
    float: left;
    height:100%;
    width:90%;
}
.safetyAndRiskConfirm_middle_right_one{
    height:16.6%;
    width:100%;
    border-bottom: 1px solid #EBEEF5;
}
.safetyAndRiskConfirm_middle_right_two{
    height:16.6%;
    width:100%;
}
.safetyAndRiskConfirm_middle_right_one_top{
    height:30%;
    width:100%;
    padding-top:5px;
    padding-left: 5px;
}
.safetyAndRiskConfirm_middle_right_one_textarea{
    padding-left: 5px;
    padding-right:5px ;
    padding-top: 2px;
}
.safetyAndRiskConfirm_middle_right_one_text{
    height:70%;
    width:100%;
}
.safetyAndRiskConfirm_bottom{
    border-left: 1px solid #EBEEF5;
    border-right: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
    margin: 0px auto;
    height:100px;
    font-size: 18px;
}
.safetyAndRiskConfirm_bottom_title{
    text-align: center;
    position: relative;
    top: 50%; /*偏移*/
    transform: translateY(-50%);
}
.test{
    /*border: 0px;*/
}
</style>
src/views/specialWorkManage/specialWork/taskInfo/components/taskInfo.vue
对比新文件
@@ -0,0 +1,179 @@
<template>
    <div>
        <el-dialog :title="title" :visible.sync="taskInfoDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="70%">
            <el-tabs type="border-card" class="active" v-model="activeName">
                <el-tab-pane label="作业基本信息" name="hotFireBasic" v-if="ifHotFireBasic">
                    <hot-fire-basic ref="hotFireBasic"></hot-fire-basic>
                </el-tab-pane>
                <el-tab-pane label="安全措施" name="safetyAction" v-if="ifSafetyAction">
                    <safety-action ref="safetyAction" :basicInformation="basicForm"></safety-action>
                </el-tab-pane>
                <el-tab-pane label="安全交底和风险告知确认卡" name="safetyAndRiskConfirm" v-if="ifSafetyAndRisk">
                    <safety-and-risk-confirm ref="safetyAndRiskConfirm" :basicInformation="basicForm"></safety-and-risk-confirm>
                </el-tab-pane>
                <el-tab-pane label="设备" name="equipment" v-if="ifSafetyAction">
                    <equipment ref="equipment" :basicInformation="basicForm"></equipment>
                </el-tab-pane>
                <el-tab-pane label="作业人" name="fireMan" v-if="ifFireMan">
                    <fire-man ref="fireMan" :basicInformation="basicForm"></fire-man>
                </el-tab-pane>
                <el-tab-pane label="文件" name="fileAndEquipment" v-if="ifFile">
                    <file-and-equipment ref="fileAndEquipment" :basicInformation="basicForm"></file-and-equipment>
                </el-tab-pane>
            </el-tabs>
        </el-dialog>
    </div>
</template>
<script>
import fireMan from './fireMan/index'
import equipment from './equipment/index'
import fileAndEquipment from './fileAndEquipment/index'
import safetyAndRiskConfirm from './safetyAndRiskConfirm/index'
import safetyAction from './safetyAction/index'
import hotFireBasic from './hotFireBasic/index'
export default {
    name: 'taskInfo',
    data(){
      return{
          title:'',
          taskInfoDialog:false,
          supervisorAndAnalystAgree:false,
          supervisorAndAnalystRefuse:false,
          relevantRefuse:false,
          securityRefuse:false,
          activeName:'hotFireBasic',
          ifFile:false,
          ifFireMan:false,
          ifSafetyAction:false,
          ifSafetyAndRisk:false,
          ifHotFireBasic:true,
          ifConstruction:false,
          basicForm:{},
          constructionForm:{},
      }
    },
    components:{
        hotFireBasic,
        safetyAction,
        safetyAndRiskConfirm,
        fileAndEquipment,
        equipment,
        fireMan,
    },
    methods:{
        openTaskInfo(value,title){
            this.taskInfoDialog = true
            this.activeName = 'hotFireBasic'
               if(title === '查看'){
                this.title = '查看'
                   this.ifSafetyAction = true
                   this.ifSafetyAndRisk = true
                   this.ifFireMan = true
                   this.ifFile = true
                   this.ifHotFireBasic = true
                   this.basicForm = JSON.parse(JSON.stringify(value))
                   setTimeout(()=> {
                       this.$refs.hotFireBasic.resetFormRules()
                       this.$refs.hotFireBasic.taskBasicForm = JSON.parse(JSON.stringify(value))
                       this.$refs.safetyAction.tasksecurity = JSON.parse(JSON.stringify(value)).taskSecurities
                       this.$refs.safetyAndRiskConfirm.taskRiskForm = JSON.parse(JSON.stringify(value)).taskRisk
                       this.$refs.equipment.equipmentData = JSON.parse(JSON.stringify(value)).taskEquipments
                       this.$refs.fireMan.taskWorkers = JSON.parse(JSON.stringify(value)).taskWorkers
                       let form = JSON.parse(JSON.stringify(value)).subTaskInfos
                       this.$refs.hotFireBasic.taskBasicForm.type = ''
                       this.$refs.hotFireBasic.taskBasicForm.category = ''
                       this.$refs.hotFireBasic.taskBasicForm.firelevel = ''
                       this.$refs.hotFireBasic.taskBasicForm.checked = ''
                       this.$refs.hotFireBasic.taskBasicForm.spacecategory = ''
                       this.$refs.hotFireBasic.taskBasicForm.spacename = ''
                       this.$refs.hotFireBasic.taskBasicForm.spacemedium = ''
                       this.$refs.hotFireBasic.taskBasicForm.acibase = ''
                       this.$refs.hotFireBasic.taskBasicForm.hoistinglevel = ''
                       this.$refs.hotFireBasic.taskBasicForm.hoistingweight = ''
                       this.$refs.hotFireBasic.taskBasicForm.soildepth = ''
                       this.$refs.hotFireBasic.taskBasicForm.soilarea = ''
                       this.$refs.hotFireBasic.taskBasicForm.soilfile = []
                       this.$refs.hotFireBasic.taskBasicForm.breakreason = ''
                       this.$refs.hotFireBasic.taskBasicForm.breakfile = []
                       this.$refs.hotFireBasic.taskBasicForm.workheight = ''
                       this.$refs.hotFireBasic.taskBasicForm.heightlevel = ''
                       this.$refs.hotFireBasic.taskBasicForm.electricityarea = ''
                       this.$refs.hotFireBasic.taskBasicForm.voltage = ''
                       this.$refs.hotFireBasic.taskBasicForm.power = ''
                       this.$refs.hotFireBasic.taskBasicForm.pipename = ''
                       this.$refs.hotFireBasic.taskBasicForm.pipemedium = ''
                       this.$refs.hotFireBasic.taskBasicForm.pipetemperature = ''
                       this.$refs.hotFireBasic.taskBasicForm.pipepressure = ''
                       this.$refs.hotFireBasic.taskBasicForm.blindboardmaterial = ''
                       this.$refs.hotFireBasic.taskBasicForm.blindboardspecification = ''
                       this.$refs.hotFireBasic.taskBasicForm.blindboardnumber = ''
                       this.$refs.hotFireBasic.taskBasicForm.commander = ''
                       this.$refs.hotFireBasic.taskBasicForm.blindboardlocation = []
                       this.$refs.hotFireBasic.taskBasicForm.firetype = ''
                       for (let i in form) {
                           if (form[i].type === '受限空间作业') {
                               this.$refs.hotFireBasic.activeNames.push('1')
                               this.$refs.hotFireBasic.ifIncludeArea = 1
                               this.$refs.hotFireBasic.taskBasicForm.spacecategory = form[i].spacecategory
                               this.$refs.hotFireBasic.taskBasicForm.spacename = form[i].spacename
                               this.$refs.hotFireBasic.taskBasicForm.spacemedium = form[i].spacemedium
                               this.$refs.hotFireBasic.taskBasicForm.acibase = form[i].acibase
                           } else if (form[i].type === '吊装作业') {
                               this.$refs.hotFireBasic.activeNames.push('2')
                               this.$refs.hotFireBasic.ifHoisting = 1
                               this.$refs.hotFireBasic.taskBasicForm.hoistinglevel = form[i].hoistinglevel
                               this.$refs.hotFireBasic.taskBasicForm.hoistingweight = form[i].hoistingweight
                           } else if (form[i].type === '动土作业') {
                               this.$refs.hotFireBasic.activeNames.push('3')
                               this.$refs.hotFireBasic.ifBuilding = 1
                               this.$refs.hotFireBasic.taskBasicForm.soildepth = form[i].soildepth
                               this.$refs.hotFireBasic.taskBasicForm.soilarea = form[i].soilarea
                               this.$refs.hotFireBasic.taskBasicForm.soilfile = form[i].soilfile
                           } else if (form[i].type === '断路作业') {
                               this.$refs.hotFireBasic.activeNames.push('4')
                               this.$refs.hotFireBasic.ifIncludeRoad = 1
                               this.$refs.hotFireBasic.taskBasicForm.breakreason = form[i].breakreason
                               this.$refs.hotFireBasic.taskBasicForm.breakfile = form[i].breakfile
                           } else if (form[i].type === '高处作业') {
                               this.$refs.hotFireBasic.activeNames.push('5')
                               this.$refs.hotFireBasic.ifIncludeHigh = 1
                               this.$refs.hotFireBasic.taskBasicForm.heightlevel = form[i].heightlevel
                               this.$refs.hotFireBasic.taskBasicForm.workheight = form[i].workheight
                           } else if (form[i].type === '临时用电作业') {
                               this.$refs.hotFireBasic.activeNames.push('6')
                               this.$refs.hotFireBasic.ifIncludeElectricity = 1
                               this.$refs.hotFireBasic.taskBasicForm.electricityarea = form[i].electricityarea
                               this.$refs.hotFireBasic.taskBasicForm.voltage = form[i].voltage
                               this.$refs.hotFireBasic.taskBasicForm.power = form[i].power
                           } else if (form[i].type === '盲板抽堵作业') {
                               this.$refs.hotFireBasic.activeNames.push('7')
                               this.$refs.hotFireBasic.ifIncludePump = 1
                               this.$refs.hotFireBasic.taskBasicForm.pipename = form[i].pipename
                               this.$refs.hotFireBasic.taskBasicForm.pipemedium = form[i].pipemedium
                               this.$refs.hotFireBasic.taskBasicForm.pipetemperature = form[i].pipetemperature
                               this.$refs.hotFireBasic.taskBasicForm.pipepressure = form[i].pipepressure
                               this.$refs.hotFireBasic.taskBasicForm.blindboardmaterial = form[i].blindboardmaterial
                               this.$refs.hotFireBasic.taskBasicForm.blindboardspecification = form[i].blindboardspecification
                               this.$refs.hotFireBasic.taskBasicForm.blindboardnumber = form[i].blindboardnumber
                               this.$refs.hotFireBasic.taskBasicForm.blindboardlocation = form[i].blindboardlocation
                           } else {
                               this.$refs.hotFireBasic.activeNames.push('8')
                               this.$refs.hotFireBasic.ifIncludeFire = 1
                               this.$refs.hotFireBasic.taskBasicForm.firelevel = form[i].level
                               this.$refs.hotFireBasic.taskBasicForm.firetype = form[i].firetype
                           }
                       }
                       this.$refs.hotFireBasic.giveTaskBasic(this.$refs.hotFireBasic.taskBasicForm)
                   })
            }
        },
    }
}
</script>
<style scoped>
</style>
src/views/specialWorkManage/specialWork/taskInfo/index.vue
对比新文件
@@ -0,0 +1,528 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search">
                <span>开始时间:</span>
                <el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择开始时间" type="datetime" v-model="listQuery.starttime" style="width:200px">
                </el-date-picker>
            </div>
            <div class="basic_search">
                <span>结束时间:</span>
                <el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择结束时间" type="datetime" v-model="listQuery.endtime" style="width:200px">
                </el-date-picker>
            </div>
            <div class="basic_search">
                <span>部门:</span>
                <el-input v-model="listQuery.department" style="width:200px">
                </el-input>
            </div>
            <div class="basic_search">
                <span>施工单位:</span>
                <el-input v-model="listQuery.constructionunit" style="width:200px">
                </el-input>
            </div>
            <div class="basic_search">
                <span>作业类型:</span>
                <el-select v-model="listQuery.level" clearable style="width:200px">
                    <el-option
                        v-for="item in taskTypeList"
                        :key="item.id"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>审批状态:</span>
                <el-select v-model="listQuery.status"  clearable style="width:200px">
                    <el-option
                        v-for="item in statusList"
                        :key="item.id"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span>作业状态:</span>
                <el-select v-model="listQuery.flag" clearable style="width:200px">
                    <el-option
                        v-for="item in flagList"
                        :key="item.id"
                        :value="item.id"
                        :label="item.name"
                    ></el-option>
                </el-select>
            </div>
            <el-button style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="taskData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
                @sort-change="sortChange"
            >
                <el-table-column label="单位名称" prop="unit" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="单位代码" prop="code" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="申请人" prop="applicant" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="施工单位" prop="constructionunit" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="作业内容" prop="area" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="开始时间" prop="starttime" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="结束时间" prop="endtime" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="作业级别" prop="level" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in levelList">
                            <div v-if="scope.row.level === item.id">
                                <span>{{item.name}}</span>
<!--                                <el-tag v-if="scope.row.level ===2" type="success">{{item.name}}</el-tag>-->
<!--                                <el-tag v-if="scope.row.level ===1" type="warning">{{item.name}}</el-tag>-->
<!--                                <el-tag v-if="scope.row.level ===0" type="danger">{{item.name}}</el-tag>-->
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="任务审批状态" prop="status" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in statusList">
                            <div v-if="scope.row.status === item.id">
                                <span>{{item.name}}</span>
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="作业状态" prop="flag" align="center" sortable="custom">
                    <template slot-scope="scope">
                        <div v-for="item in flagList">
                            <div v-if="scope.row.flag === item.id">
                                <span>{{item.name}}</span>
                            </div>
                        </div>
                    </template>
                </el-table-column>
                <el-table-column label="创建时间" prop="createdat" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="最近修改时间" prop="modifiedat" align="center" sortable="custom">
                </el-table-column>
                <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button type="text" @click="showReviewInfo(scope.row)" v-if="scope.row.taskReviews.length !== 0">查看审批</el-button>
                        <el-button type="text" @click="editWatch(scope.row,'监护人')" v-if="scope.row.approversupervisor !== '' && scope.row.approversupervisor !== null && applicant === scope.row.applicant">监护人</el-button>
                        <el-button type="text" @click="editWorker(scope.row,'作业人')" v-if="scope.row.taskWorkers.length !== 0 && applicant === scope.row.applicant">作业人</el-button>
                        <el-button type="text" @click="showTaskInfo(scope.row,'查看')">查看</el-button>
                        <el-button type="text" @click="downloadFile(scope.row)" v-if="scope.row.status === 7">下载</el-button>
                        <el-tooltip class="item" effect="dark" content="点击重新生成票证" placement="top-end">
                            <el-button type="text" @click="regenerateWorkCertHandler(scope.row)" icon="el-icon-refresh" v-if="scope.row.status === 7"></el-button>
                        </el-tooltip>
                    </template>
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="currentPage"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
        <task-info ref="taskInfo" @getinfo="getTaskData"></task-info>
        <el-dialog :visible.sync="watchDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="25%">
            <div align="center">
                <span>原监护人:</span>
                <el-input v-model="supervisor" style="width:200px" readonly>
                </el-input>
            </div>
            <div align="center" style="padding-top: 20px">
                <span>现监护人:</span>
                <el-select v-model="supervisorForm.approversupervisor">
                    <el-option
                        v-for="item in workerList"
                        :key="item.id"
                        :value="item.realname"
                        :label="item.realname"
                    >
                    </el-option>
                </el-select>
                <div  align="center" style="padding-top: 20px">
                    <el-button type="primary" @click="submitEditSupervisor()">确定</el-button>
                </div>
            </div>
        </el-dialog>
        <el-dialog :visible.sync="workerDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="70%">
            <div style="padding-bottom: 10px">
                <el-button type="primary" @click="addTaskWorker">添加作业人</el-button>
            </div>
            <el-table :data="taskWorkers" border fit highlight-current-row style="width: 100%;" :header-cell-style="{'text-align':'center'}">
                <el-table-column type="index" label="序号" align="center" width="60"/>
                <el-table-column prop="taskcode" label="作业编号" align="left">
                </el-table-column>
                <el-table-column prop="unit" label="作业类型" align="left">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.tasktype">
                            <el-option
                            v-for="item in taskTypeList"
                            :key="item.id"
                            :label="item.name"
                            :value="item.name"
                            >
                            </el-option>
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column prop="unit" label="施工单位" align="left">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.unit"></el-input>
                    </template>
                </el-table-column>
                <el-table-column prop="worker" label="作业人姓名" align="left">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.worker">
                            <el-option
                                v-for="item in workerList"
                                :key="item.id"
                                :value="item.realname"
                                :label="item.realname"
                            >
                            </el-option>
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column prop="branch" label="特种作业工种" align="left">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.branch"></el-input>
                    </template>
                </el-table-column>
                <el-table-column prop="number" label="特种作业证号" align="left">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.number"></el-input>
                    </template>
                </el-table-column>
                <el-table-column label="操作" align="center">
                    <template slot-scope="scope">
                        <el-button type="text" @click="deleteWorker(scope.$index)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <div align="center" style="padding-top: 20px">
                <el-button type="primary" @click="submitWorker">确定</el-button>
            </div>
        </el-dialog>
        <review-info ref="reviewInfo"></review-info>
    </div>
</template>
<script>
import taskInfo from './components/taskInfo'
import { mapGetters } from 'vuex'
import { computePageCount } from '../../../../utils'
import { changeSupervisor, changeWorker, lookTaskList, submitTask ,regenerateWorkCert} from '../../../../api/task'
import { getUnitList } from '../../../../api/unitManage'
import { concreteUser, userList } from '@/api/user'
import { parseError } from '../../../../utils/messageDialog'
import reviewInfo from './components/reviewInfo/index'
export default {
    name: 'index',
    filters: {
    },
    computed: {
        ...mapGetters([
            'userType'
        ])
    },
    data() {
        return {
            tableKey: 0,
            applicant:'',
            taskData: [],
            workerList:[],
            companyList:[],
            taskWorkers:[],
            listLoading: false,
            watchDialog:false,
            workerDialog:false,
            pageSize: 10,
            recordTotal: 0,
            currentPage: 1,
            pageTotal: 0,
            title:'',
            supervisor:'',
            code:'',
            supervisorForm:{
                taskcode:'',
                approversupervisor:''
            },
            taskTypeList:[
                {id:0,name:'受限空间作业'},
                {id:1,name:'吊装作业'},
                {id:2,name:'动土作业'},
                {id:3,name:'断路作业'},
                {id:4,name:'高处作业'},
                {id:5,name:'临时用电作业'},
                {id:6,name:'盲板抽堵作业'},
                {id:7,name:'动火作业'},
            ],
            levelList:[{id:2,name:'特级'},{id:1,name:'一级'},{id:0,name:'二级'},],
            statusList:[
                {id:0,name:'已驳回'},
                {id:1,name:'未提交'},
                {id:2,name:'已提交'},
                {id:3,name:'施工单位已确认'},
                {id:4,name:'动火部位负责人审批通过'},
                {id:5,name:'相关部门审批通过'},
                {id:6,name:'安全部门审批通过'},
                {id:7,name:'审批通过'},
            ],
            flagList:[
                {id:0,name:'等待整改'},
                {id:1,name:'作业中止'},
                {id:2,name:'等待检查'},
                {id:3,name:'等待开始'},
                {id:4,name:'作业中'},
                {id:5,name:'作业完成'},
            ],
            listQuery:{
                starttime:'',
                endtime:'',
                department:'',
                constructionunit:'',
                level:'',
                status:'',
                flag:'',
            },
        }
    },
    components:{
        taskInfo,
        reviewInfo
    },
    created() {
        this.getTaskData()
        this.getWorker()
    },
    methods: {
        async getTaskData(){
            this.applicant = sessionStorage.getItem('realname')
            this.listLoading = true
            let params = {}
            params['pageIndex'] = this.currentPage
            params['pageSize'] = this.pageSize
            params['order'] = this.orderValue
            params['sort'] = this.sortValue
            for (const i in this.listQuery) {
                console.log(i)
                params[i] = this.listQuery[i]
            }
            let res = await lookTaskList(params)
            if(res.data.code === '200'){
                this.recordTotal = res.data.result.totalCount
                this.pageSize = res.data.result.pageSize
                this.pageTotal = computePageCount(res.data.result.totalCount, res.data.result.pageSize)
                this.currentPage = res.data.result.pageIndex
                this.taskData = res.data.result.result
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
            this.listLoading = false
        },
        showReviewInfo(value){
            this.$refs.reviewInfo.openReviewInfo(value)
        },
        editWatch(value){
            this.watchDialog = true
            this.supervisor = value.approversupervisor
            this.supervisorForm.taskcode = value.code
            this.supervisorForm.approversupervisor = ''
        },
        editWorker(value){
            this.workerDialog = true
            this.code = value.code
            this.taskWorkers = value.taskWorkers
        },
        addTaskWorker(){
            this.taskWorkers.push({
                createdat: "",
                createdby: "",
                flag: 0,
                id: 0,
                modifiedat: "",
                modifiedby: "",
                taskcode: this.code,
                unit: "",
                worker: "",
                branch: "",
                number: "",
                tasktype:'',
            })
        },
        deleteWorker(val){
            this.taskWorkers.splice(val,1)
        },
        submitWorker(){
            this.$confirm('更换监护人,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                changeWorker(this.taskWorkers).then( (res)=>{
                    if(res.data.code === '200'){
                        this.workerDialog = false
                        this.getTaskData()
                        this.$notify({
                            title:'成功',
                            message:'提交成功',
                            type:'success',
                            duration:2000,
                        })
                    }else{
                        this.$message({
                            message:res.data.message,
                            type:'warning'
                        })
                    }
                })
            }).catch(error =>{
                parseError({ error: error, vm: this })
            })
        },
        submitEditSupervisor(){
            this.$confirm('更换监护人,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                changeSupervisor(this.supervisorForm).then( (res)=>{
                    if(res.data.code === '200'){
                        this.watchDialog = false
                        this.getTaskData()
                        this.$notify({
                            title:'成功',
                            message:'提交成功',
                            type:'success',
                            duration:2000,
                        })
                    }else{
                        this.$message({
                            message:res.data.message,
                            type:'warning'
                        })
                    }
                })
            }).catch(error =>{
                parseError({ error: error, vm: this })
            })
        },
        showTaskInfo(value,title){
            this.$refs.taskInfo.openTaskInfo(value,title)
        },
        submitTask(row){
            this.$confirm('提交此条任务,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                submitTask({id:row.id}).then( ()=>{
                    this.getTaskData()
                    this.$notify({
                        title:'成功',
                        message:'提交成功',
                        type:'success',
                        duration:2000,
                    })
                })
            })
        },
        downloadFile(val){
        if(val.path === null || val.path === ''){
          this.$message({
            type:'warning',
            message:'文件未生成'
          })
        }else{
          window.open(process.env.IMG_API + val.path,'_blank')
        }
      },
      regenerateWorkCertHandler(row){
        this.$confirm('是否确认重新生成票证','提示',{
          confirmButtonText:'确认',
          cancelButtonText:'取消',
          type:'warning',
        }).then(()=>{
          regenerateWorkCert(row.code).then(res=>{
            if (res.data.code === '200') {
              this.$message({
                type:'success',
                message:'重新生成成功'
              })
            }else{
              this.$message({
                type:'warning',
                message:res.data.message,
              })
            }
          })
        })
      },
        refreshHandle(){
            this.getTaskData()
        },
        handleSizeChange(val){
            this.pageSize = val
            this.getTaskData()
        },
        handleCurrentChange(val){
            this.currentPage = val
            this.getTaskData()
        },
        async getWorker(){
            let params = {}
            params['company'] = sessionStorage.getItem('company')
            params['department'] = sessionStorage.getItem('department')
            let res = await concreteUser(params)
            if(res.data.code === '200'){
                this.workerList = res.data.result
            }
        },
        sortChange(params){
            this.sortValue = params.sort
            this.orderValue = params.order
            this.getTaskData()
        }
    }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
</style>
src/views/specialWorkManage/workPlan/form/dialog.vue
对比新文件
@@ -0,0 +1,224 @@
<template>
        <el-dialog :title="title" :visible.sync="dialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="650px">
            <el-form   :model="dataForm" label-position="right" label-width="100px" style="margin-left:50px;width:600px;">
                <el-row  >
                    <el-col :span="20">
                        <el-form-item label="预约时间:" >
                            <el-date-picker
                                v-model="dataForm.appointment"
                                value-format="yyyy-MM-dd"
                                align="right"
                                type="date"
                                placeholder="选择日期"
                                :disabled="isView"
                                :picker-options="pickerOptions">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row  >
                    <el-col :span="10">
                        <el-form-item label="动火作业:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.fire" style="width: 100px" ></el-input-number>
                        </el-form-item>
                    </el-col>
                    <el-col :span="10">
                        <el-form-item label="受限空间:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.space" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row  >
                    <el-col :span="10">
                        <el-form-item label="吊装作业:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.hoisting" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                    <el-col :span="10">
                        <el-form-item label="动土作业:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.soild" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row  >
                    <el-col :span="10">
                        <el-form-item label="断路作业:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.breaks" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                    <el-col :span="10">
                        <el-form-item label="高处作业:" >
                            <el-input-number :controls="false" :disabled="isView" :min="0" v-model="dataForm.high" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row  >
                    <el-col :span="10">
                        <el-form-item label="临时用电:" >
                            <el-input-number :controls="false"  :disabled="isView" :min="0" v-model="dataForm.electricity" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                    <el-col :span="10">
                        <el-form-item label="盲板作业:" >
                            <el-input-number :controls="false"  :disabled="isView" :min="0" v-model="dataForm.blindboard" style="width: 100px"></el-input-number>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <div  align="right" style="padding-right: 30px;margin-top: 10px;" v-if="!isView">
                <el-button @click="dialogVisible=false">取消</el-button>
                <el-button type="primary" @click="submit(title)" :disabled="isSending">确认</el-button>
            </div>
        </el-dialog>
</template>
<script>
import {reserveAdd,reserveMod} from '../../../../api/workPlan'
export default {
  name: 'index',
  data() {
    return {
      appointment: '',
      dialogVisible: false,
      isSending: false,
      title: '',
      isView: '',
      dataForm: {
        id: '',
        fire: '',
        space: '',
        hoisting: '',
        soild: '',
        breaks: '',
        high: '',
        electricity: '',
        blindboard: '',
        appointment: ''
      },
      pickerOptions: {
        shortcuts: [
          {
            text: '明天',
            onClick(picker) {
              const date = new Date()
              date.setTime(date.getTime() + 3600 * 1000 * 24)
              picker.$emit('pick', date)
            }
          },
          {
            text: '后天',
            onClick(picker) {
              const date = new Date()
              date.setTime(date.getTime() + 2 * 3600 * 1000 * 24)
              picker.$emit('pick', date)
            }
          },
          {
            text: '大后天',
            onClick(picker) {
              const date = new Date()
              date.setTime(date.getTime() + 3 * 3600 * 1000 * 24)
              picker.$emit('pick', date)
            }
          }
        ]
      }
    }
  },
  methods: {
    showAddDialog(title) {
      this.title = title
      this.isView = false
      this.dialogVisible = true
    },
    showViewDialog(row, title) {
      this.title = title
      this.isView = true
      this.dataForm.fire = row.fire
      this.dataForm.space = row.space
      this.dataForm.hoisting = row.hoisting
      this.dataForm.soild = row.soild
      this.dataForm.breaks = row.breaks
      this.dataForm.high = row.high
      this.dataForm.electricity = row.electricity
      this.dataForm.blindboard = row.blindboard
      this.dataForm.appointment = row.appointment
      this.dialogVisible = true
    },
    showUpdateDialog(row, title) {
      this.title = title
      this.isView = false
      this.dataForm.id = row.id
      this.dataForm.fire = row.fire
      this.dataForm.space = row.space
      this.dataForm.hoisting = row.hoisting
      this.dataForm.soild = row.soild
      this.dataForm.breaks = row.breaks
      this.dataForm.high = row.high
      this.dataForm.electricity = row.electricity
      this.dataForm.blindboard = row.blindboard
      this.dataForm.appointment = row.appointment
      this.dialogVisible = true
    },
    submit(title) {
      if ('新增' === title)
        this.post(reserveAdd)
      if ('编辑' === title)
        this.post(reserveMod)
    },
    post(func) {
      this.isSending = true
      func(this.dataForm)
        .then(res => {
          if (res.data.code === '200') {
            this.dialogVisible = false
            this.$emit('refresh')
            this.$message({
              message: '操作成功',
              type: 'success'
            })
          } else {
            this.$message({
              message: res.data.message,
              type: 'warning'
            })
          }
        })
        .finally(res => {
            this.isSending = false
          }
        )
    },
    reset() {
      this.dataForm = {
        id: '',
        fire: '',
        space: '',
        hoisting: '',
        soild: '',
        breaks: '',
        high: '',
        electricity: '',
        blindboard: '',
        appointment: ''
      }
    }
  }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
</style>
src/views/specialWorkManage/workPlan/index.vue
对比新文件
@@ -0,0 +1,13 @@
<template>
    <router-view></router-view>
</template>
<script>
    export default {
        name: "index"
    }
</script>
<style scoped>
</style>
src/views/specialWorkManage/workPlan/reserve.vue
对比新文件
@@ -0,0 +1,238 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search" v-if="userDepartment !== 'null' && userDepartment != null && userDepartment !== ''">
                <span class="span-filter-label">部门</span>
                <el-input v-model="userDepartment" disabled style="width:200px">
                </el-input>
            </div>
            <div class="basic_search">
                <span class="span-filter-label">预约日期</span>
                <el-date-picker
                    v-model="appointment"
                    value-format="yyyy-MM-dd"
                    align="right"
                    type="date"
                    placeholder="选择日期"
                    :picker-options="pickerOptions">
                </el-date-picker>
            </div>
            <div class="basic_search">
                <el-button  style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
                <el-button  style="margin-left: 10px;" type="primary" icon="el-icon-plus" v-if="isDepartment === '1'" @click="openAddDialog('新增')">新增</el-button>
            </div>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="taskData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
            >
                <el-table-column style="width: 200px;" label="预约时间"  prop="appointment"  align="center">
                </el-table-column>
                <el-table-column label="动火" prop="fire" align="center">
                </el-table-column>
                <el-table-column label="受限空间" prop="space" align="center">
                </el-table-column>
                <el-table-column label="吊装作业" prop="hoisting" align="center">
                </el-table-column>
                <el-table-column label="动土作业" prop="soild" align="center">
                </el-table-column>
                <el-table-column label="断路作业" prop="breaks" align="center">
                </el-table-column>
                <el-table-column label="高处作业" prop="high" align="center">
                </el-table-column>
                <el-table-column label="临时用电" prop="electricity" align="center">
                </el-table-column>
                <el-table-column label="盲板作业" prop="blindboard" align="center">
                </el-table-column>
                <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button v-if="isDepartment === '1'" type="text" @click="openUpdateDialog(scope.row,'编辑')" >编辑</el-button>
                        <el-button type="text" @click='openViewDialog(scope.row,"查看")'>查看</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="filter.pageIndex"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="filter.pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
        <dialogs ref="dialogs"   @refresh="getPageList"></dialogs>
    </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { computePageCount } from '../../../utils'
import {reservePageList ,reserveAdd} from '../../../api/workPlan'
import {  getAllDepartment } from '@/api/departmentManage'
import Cookies from 'js-cookie'
import dialogs from './form/dialog'
export default {
  name: 'index',
  filters: {},
  computed: {
    ...mapGetters([
      'userType'
    ])
  },
  components: {
    dialogs
  },
  data() {
    return {
      tableKey: 0,
      taskData: [],
      department: [],
      isDepartment:'',
      userDepartment:'',
      appointment: '',
      listLoading: false,
      recordTotal: 0,
      isSending: false,
      filter: {
        pageIndex: 1,
        pageSize: 10,
        filter: {
          department: '',
          starttime: '',
          endtime: ''
        }
      },
      dataForm: {
        id: '',
        fire: '',
        space: '',
        hoisting: '',
        soild: '',
        breaks: '',
        high: '',
        electricity: '',
        blindboard: '',
        appointment: ''
      },
      pickerOptions: {
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            picker.$emit('pick', new Date())
          }
        }, {
          text: '昨天',
          onClick(picker) {
            const date = new Date()
            date.setTime(date.getTime() - 3600 * 1000 * 24)
            picker.$emit('pick', date)
          }
        }, {
          text: '明天',
          onClick(picker) {
            const date = new Date()
            date.setTime(date.getTime() + 3600 * 1000 * 24)
            picker.$emit('pick', date)
          }
        }]
      }
    }
  },
  created(){
    this.initDepartmentFlag()
  },
  mounted() {
    this.getPageList()
    this.getDepartmentList()
  },
  methods: {
    async getPageList() {
      this.listLoading = true
      this.filter.filter.starttime = ''
      this.filter.filter.endtime = ''
      if (this.appointment != null && this.appointment !== '') {
        this.filter.filter.starttime = this.appointment + ' 00:00:00'
        this.filter.filter.endtime = this.appointment + ' 23:59:59'
      }
      let res = await reservePageList(this.filter)
      if (res.data.code === '200') {
        this.recordTotal = res.data.result.total
        this.pageSize = res.data.result.pageSize
        this.currentPage = res.data.result.pageIndex
        this.taskData = res.data.result.records
      } else {
        this.$message({
          message: res.data.message,
          type: 'warning'
        })
      }
      this.listLoading = false
    },
    async getDepartmentList() {
      getAllDepartment()
        .then(res => {
          if (res.data.code === '200')
            this.department = res.data.result
          else
            this.$message({message: res.data.message,type: 'warning'})
        })
    },
    openAddDialog(title) {
      this.$refs.dialogs.showAddDialog(title)
    },
    openViewDialog(row, title) {
      this.$refs.dialogs.showViewDialog(row, title)
    },
    openUpdateDialog(row, title) {
      this.$refs.dialogs.showUpdateDialog(row, title)
    },
    refreshHandle() {
      this.getPageList()
    },
    handleSizeChange(val) {
      this.filter.pageSize = val
      this.getPageList()
    },
    handleCurrentChange(val) {
      this.filter.pageIndex = val
      this.getPageList()
    },
    initDepartmentFlag(){
      this.isDepartment = sessionStorage.getItem('isdepartment')
      this.userDepartment = Cookies.get('department')
    }
  }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
.span-filter-label {
    font-size: 15px;
    color: #606266;
    margin-right: 4px;
    margin-left: 7px;
}
</style>
src/views/specialWorkManage/workPlan/statistics.vue
对比新文件
@@ -0,0 +1,216 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search">
                <span class="span-filter-label">部门</span>
                <el-select v-model="filter.filter.department"  filterable placeholder="请选择" style="width:200px">
                    <el-option
                        v-for="item in department"
                        :key="item.department"
                        :label="item.department"
                        :value="item.department">
                    </el-option>
                </el-select>
            </div>
            <div class="basic_search">
                <span class="span-filter-label">预约日期</span>
                <el-date-picker
                    v-model="filter.filter.appointment"
                    value-format="yyyy-MM-dd"
                    align="right"
                    type="date"
                    placeholder="选择日期"
                    :picker-options="pickerOptions">
                </el-date-picker>
            </div>
            <el-button style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="tableData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
            >
                <el-table-column style="width: 200px;"  prop="appointment"  align="center">
                </el-table-column>
                <el-table-column style="width: 200px;" label="部门"  prop="department"  align="center">
                </el-table-column>
                <el-table-column label="动火" prop="fire" align="center">
                </el-table-column>
                <el-table-column label="受限空间" prop="space" align="center">
                </el-table-column>
                <el-table-column label="吊装作业" prop="hoisting" align="center">
                </el-table-column>
                <el-table-column label="动土作业" prop="soild" align="center">
                </el-table-column>
                <el-table-column label="断路作业" prop="breaks" align="center">
                </el-table-column>
                <el-table-column label="高处作业" prop="high" align="center">
                </el-table-column>
                <el-table-column label="临时用电" prop="electricity" align="center">
                </el-table-column>
                <el-table-column label="盲板作业" prop="blindboard" align="center">
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="filter.pageIndex"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="filter.pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
    </div>
</template>
<script>
import { mapGetters } from 'vuex'
import { computePageCount } from '../../../utils'
import {reserveStatistics} from '../../../api/workPlan'
import Cookies from 'js-cookie'
import {  getAllDepartment } from '@/api/departmentManage'
export default {
  name: 'index',
  filters: {},
  computed: {
    ...mapGetters([
      'userType'
    ]),
    tableData() {
      const tbody = this.statisticsData
      return tbody.length ? [...tbody, ...this.tableFoot] : []
    }
  },
  data() {
    return {
      tableKey: 0,
      statisticsData: [],
      department: [],
      appointment: '',
      listLoading: false,
      recordTotal: 0,
      isSending: false,
      filter: {
        pageIndex: 1,
        pageSize: 10,
        filter: {
          department: '',
          appointment: ''
        }
      },
      tableFoot: [],
      dataForm: {
        id: '',
        fire: '',
        space: '',
        hoisting: '',
        soild: '',
        breaks: '',
        high: '',
        electricity: '',
        blindboard: '',
        appointment: ''
      },
      pickerOptions: {
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            picker.$emit('pick', new Date())
          }
        }, {
          text: '昨天',
          onClick(picker) {
            const date = new Date()
            date.setTime(date.getTime() - 3600 * 1000 * 24)
            picker.$emit('pick', date)
          }
        }, {
          text: '明天',
          onClick(picker) {
            const date = new Date()
            date.setTime(date.getTime() + 3600 * 1000 * 24)
            picker.$emit('pick', date)
          }
        }]
      }
    }
  },
  mounted() {
    this.getDepartmentList()
    this.getPageList()
  },
  methods: {
    async getPageList() {
      this.listLoading = true
      let res = await reserveStatistics(this.filter)
      if (res.data.code === '200') {
        this.recordTotal = res.data.result.total
        this.pageSize = res.data.result.pageSize
        this.currentPage = res.data.result.pageIndex
        this.statisticsData = res.data.result.records
        res.data.result.extension.appointment = '总计'
        this.tableFoot = [res.data.result.extension]
      } else {
        this.$message({
          message: res.data.message,
          type: 'warning'
        })
      }
      this.listLoading = false
    },
    async getDepartmentList() {
      getAllDepartment()
        .then(res => {
          if (res.data.code === '200')
            this.department = res.data.result
          else
            this.$message({ message: res.data.message,type: 'warning'})
        })
    },
    refreshHandle() {
      this.getPageList()
    },
    handleSizeChange(val) {
      this.filter.pageSize = val
      this.getPageList()
    },
    handleCurrentChange(val) {
      this.filter.pageIndex = val
      this.getPageList()
    },
  }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
.span-filter-label {
    font-size: 15px;
    color: #606266;
    margin-right: 4px;
    margin-left: 7px;
}
</style>