From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 04 三月 2025 08:39:55 +0800 Subject: [PATCH] 修改作业等级名称 --- src/views/specialWorkSystem/specialIndex/index.vue | 596 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 335 insertions(+), 261 deletions(-) diff --git a/src/views/specialWorkSystem/specialIndex/index.vue b/src/views/specialWorkSystem/specialIndex/index.vue index fb47fb3..04cc888 100644 --- a/src/views/specialWorkSystem/specialIndex/index.vue +++ b/src/views/specialWorkSystem/specialIndex/index.vue @@ -18,7 +18,17 @@ <div class="chart-item"> <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> <div class="chart-tit"> - <span class="tit">八大作业各分类分布图</span> + <span class="tit">特殊作业数量趋势</span> + <div class="filter-part filter-part2"> + <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> + </div> + </div> + <div class="chart" :id="zyqs"></div> + </div> + <div class="chart-item"> + <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> + <div class="chart-tit"> + <span class="tit">作业分类分布图</span> <div class="filter-part filter-part2"> <el-cascader :teleported="false" v-model="chartSearch1.depId" @change="changeDep1()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> </div> @@ -31,82 +41,8 @@ <el-radio :label='365' border>近一年</el-radio> </el-radio-group> </div> - <div class="chart-item"> - <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> - <div class="chart-tit"> - <span class="tit">各事业部关联作业分析</span> - <div class="filter-part"> - <el-cascader :teleported="false" v-model="chartSearch2.depId" @change="changeDep2()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> - <el-select v-model="chartSearch2.type" size="small" :teleported="false" @change="changeType2()"> - <el-option - v-for="item in workType1" - :key="item.id" - :label="item.name" - :value="item.id" - /> - </el-select> - </div> - </div> - <div class="chart" :id="slfx"></div> - </div> </div> - <div class="topChart"> - <div class="chart-item"> - <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> - <div class="chart-tit"> - <span class="tit">关联作业趋势图</span> - <div class="filter-part filter-part2"> - <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> - </div> - </div> - <div class="chart" :id="zyqs"></div> - </div> - <div class="chart-item"> - <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> - <div class="chart-tit"> - <span class="tit">作业警报记录</span> - <div class="filter-part"> -<!-- <el-switch--> -<!-- v-model="chartSearch4.type"--> -<!-- inline-prompt--> -<!-- style="--el-switch-on-color: #13ce66; --el-switch-off-color: #13ce66"--> -<!-- active-text="作业人"--> -<!-- inactive-text="监护人"--> -<!-- />--> - <el-select :teleported="false" v-model="chartSearch4.days" size="small" @change="(value)=>changeTime4(value)"> - <el-option label="近7天" :value="7"/> - <el-option label="近30天" :value="30"/> - <el-option label="近90天" :value="90"/> - <el-option label="近1年" :value="365"/> - </el-select> - <el-select :teleported="false" v-model="chartSearch4.workType" size="small" @change="changeType4()"> - <el-option - v-for="item in workType1" - :key="item.id" - :label="item.name" - :value="item.id" - /> - </el-select> - </div> - </div> - <div class="chart"> - <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }"> - <el-table-column property="operatorUname" label="姓名" align="center"/> - <el-table-column property="deptName" label="所属部门" align="center"/> - <el-table-column property="warningCount" label="异常报警次数" align="center"/> -<!-- <el-table-column property="role" label="角色" align="center"/>--> -<!-- <el-table-column property="isCard" label="是否持证" align="center">--> -<!-- <template #default="scope">--> -<!-- <span>{{scope.row.isCard == 1?'是':'否'}}</span>--> -<!-- </template>--> -<!-- </el-table-column>--> - </el-table> -<!-- <el-button type="text" size="small" style="margin-top: 10px">所有记录>></el-button>--> - </div> - <!-- <div class="chart" :id="slfx"></div>--> - </div> - </div> - <div> + <div class="homeCard"> <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> <el-row> @@ -143,7 +79,7 @@ <!-- </div>--> <!-- </el-col>--> <el-col :span="6" style="display:flex;align-items: center;"> - <span style="white-space: nowrap;margin-left: 20px">申请时间:</span> + <span style="white-space: nowrap">申请时间:</span> <div class="grid-content topInfo"> <el-date-picker v-model="searchDate" @@ -158,14 +94,36 @@ /> </div> </el-col> + <el-col :span="6" style="display:flex;align-items: center;"> + <span style="white-space: nowrap">开始时间:</span> + <div class="grid-content topInfo"> + <el-date-picker + v-model="searchDate2" + size="small" + :teleported="false" + type="daterange" + unlink-panels + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" + /> + </div> + </el-col> <el-col :span="4" style="display:flex;align-items: center"> - <span style="white-space: nowrap;margin-left: 20px">作业票编号:</span> + <span style="white-space: nowrap">作业票编号:</span> <div class="grid-content topInfo"> <el-input - v-model="searchParams.workPermitNo" + v-model.trim="searchParams.workPermitNo" placeholder="请输入作业票编号" size="small" /> + </div> + </el-col> + <el-col :span="4" style="display:flex;align-items: center"> + <span style="white-space: nowrap">申请事业部:</span> + <div class="grid-content topInfo"> + <el-cascader :teleported="false" v-model="searchParams.seDepId" @change="changeDep4()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> </div> </el-col> <el-button type="primary" style="margin-left: 20px" @click="searchRecord" size="small">查询</el-button> @@ -205,16 +163,26 @@ <el-table-column property="applyUname" label="申请人" align="center"/> <el-table-column property="applyDepName" label="申请单位" align="center"/> <el-table-column property="applyTime" label="申请时间" align="center"/> - <el-table-column property="startUname" label="开始人" align="center"> + <el-table-column property="workLocation" label="作业地点" align="center"> <template #default="scope"> - <span>{{scope.row.startUname?scope.row.startUname:'--'}}</span> + <span>{{scope.row.workLocation?scope.row.workLocation:'--'}}</span> </template> </el-table-column> - <el-table-column property="finishUname" label="结束人" align="center"> + <el-table-column property="workContent" label="作业内容" align="center"> <template #default="scope"> - <span>{{scope.row.finishUname?scope.row.finishUname:'--'}}</span> + <span>{{scope.row.workContent?scope.row.workContent:'--'}}</span> </template> </el-table-column> +<!-- <el-table-column property="startUname" label="开始人" align="center">--> +<!-- <template #default="scope">--> +<!-- <span>{{scope.row.startUname?scope.row.startUname:'--'}}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column property="finishUname" label="结束人" align="center">--> +<!-- <template #default="scope">--> +<!-- <span>{{scope.row.finishUname?scope.row.finishUname:'--'}}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> <el-table-column property="workStartTime" label="作业开始时间" align="center"> <template #default="scope"> <span>{{scope.row.workStartTime?scope.row.workStartTime:'--'}}</span> @@ -242,11 +210,11 @@ </el-table-column> <el-table-column property="workTypeDesc" label="作业类型" align="center"/> <el-table-column property="workLevelDesc" label="作业等级" align="center"/> - <el-table-column property="abortReason" label="中止原因" align="center"> - <template #default="scope"> - <span>{{scope.row.abortReason?scope.row.abortReason:'--'}}</span> - </template> - </el-table-column> +<!-- <el-table-column property="abortReason" label="中止原因" align="center">--> +<!-- <template #default="scope">--> +<!-- <span>{{scope.row.abortReason?scope.row.abortReason:'--'}}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> <el-table-column property="workAllStatusDesc" label="作业状态" align="center"/> <el-table-column fixed="right" label="操作" align="center" width="250"> <template #default="scope"> @@ -254,6 +222,7 @@ v-if="scope.row.workAllStatus == -1|| scope.row.workAllStatus == 1 || scope.row.workAllStatus == 3 || scope.row.workAllStatus == 7" type="primary" size="small" :icon="VideoPlay" @click="openVideo(scope.row)">查看监控视频</el-button> <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row.workApplyId)">查看记录</el-button> + <el-button v-if="(scope.row.workAllStatus == 3 || scope.row.workAllStatus == 4 || scope.row.workAllStatus == 5)&&!scope.row.renewalWorkApplyId" link type="primary" size="small" :icon="Edit" @click="continueRecord(scope.row)">一键续票</el-button> <el-button link type="primary" size="small" :icon="View" @click="viewTicket(scope.row)">查看作业票</el-button> <el-button link type="primary" size="small" :icon="Download" @click="downLoadTicket(scope.row)">导出作业票</el-button> <!-- <el-button link type="primary" size="small" :icon="FolderChecked" @click="handleReview(scope.row)">验收</el-button>--> @@ -265,7 +234,6 @@ </div> </div> </div> - </div> <el-dialog v-model="dialogDetails" title="作业申请详情" center> <!-- <fire v-if="dialogType == 1" :details = details></fire>--> <!-- <space v-else-if="dialogType == 2" :details = details></space>--> @@ -303,11 +271,20 @@ <!-- </el-dialog>--> <video-detail ref="videoRef"></video-detail> <Work-record ref="recordRef"></Work-record> + <fire-dialog ref="fireRef" :lists="lists" @refresh="getMydepList"></fire-dialog> + <plate-dialog ref="plateRef" :lists="lists" @refresh="getMydepList"></plate-dialog> + <space-dialog ref="spaceRef" :lists="lists" @refresh="getMydepList"></space-dialog> + <hoist-dialog ref="hoistRef" :lists="lists" @refresh="getMydepList"></hoist-dialog> + <ground-dialog ref="groundRef" :lists="lists" @refresh="getMydepList"></ground-dialog> + <broken-dialog ref="brokenRef" :lists="lists" @refresh="getMydepList"></broken-dialog> + <height-dialog ref="heightRef" :lists="lists" @refresh="getMydepList"></height-dialog> + <power-dialog ref="powerRef" :lists="lists" @refresh="getMydepList"></power-dialog> + <open-dialog ref="openRef" :lists="lists" @refresh="getMydepList"></open-dialog> </div> </template> <script lang="ts"> -import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue'; +import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent, nextTick} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import { useUserInfo } from '/@/stores/userInfo'; @@ -327,6 +304,8 @@ import WorkRecord from "/@/views/specialWorkSystem/specialIndex/components/workRecord.vue"; import { BorderBox10 as DvBorderBox10 } from '@kjgl77/datav-vue3' import {productionDeviceApi} from "/@/api/doublePreventSystem/productionDevice"; +import {ElMessageBox} from "element-plus/es"; +import {judgeReportApi} from "/@/api/dataUpload/saftyBaseInfo/judgeReport"; // 定义接口来定义对象的类型 interface stateType { @@ -350,6 +329,7 @@ searchDep2: number | null; searchDep: number | null; searchDate: Array<any>, + searchDate2: Array<any>, totalSize: number; details: {}; workType1: Array<type>; @@ -364,6 +344,7 @@ endTime:string pieData: Array<status> squareData: Array<status> + lists: {} } interface type { id: number | null; @@ -387,14 +368,15 @@ components: { VideoDetail, WorkRecord, - // fire: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/fireLog.vue')), - // space: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceLog.vue')), - // hoist: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistLog.vue')), - // ground: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/groundLog.vue')), - // broken: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenLog.vue')), - // height: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/heightLog.vue')), - // power: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/powerLog.vue')), - // plate: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/plateLog.vue')) + fireDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue')), + plateDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue')), + spaceDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue')), + hoistDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue')), + groundDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue')), + brokenDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue')), + heightDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue')), + powerDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue')), + openDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue')) }, setup() { const userInfo = useUserInfo() @@ -417,7 +399,10 @@ workPermitNo: '', startTime: '', endTime: '', - workAllStatus: null + workStartTime: '', + workEndTime: '', + workAllStatus: null, + seDepId: null }, dialogReview: false, departmentList: [], @@ -445,6 +430,7 @@ searchDep2: null, searchDep: null, searchDate: [], + searchDate2: [], workData: [], isFull: false, themeColor: '#333', @@ -455,7 +441,6 @@ operators: [] }, casProps: { - expandTrigger: 'hover', emitPath: false, value: 'depId', label: 'depName', @@ -472,7 +457,8 @@ { id: 5, name: '断路作业' }, { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, - { id: 8, name: '盲板抽堵作业' } + { id: 8, name: '盲板抽堵作业' }, + { id: 9, name: '打开作业' } ], workTypeList: [ { id: 1, name: '动火作业' }, @@ -482,7 +468,8 @@ { id: 5, name: '断路作业' }, { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, - { id: 8, name: '盲板抽堵作业' } + { id: 8, name: '盲板抽堵作业' }, + { id: 9, name: '打开作业' } ], workStatusList: [ { @@ -490,12 +477,40 @@ value: -1 }, { - name: '开始', + name: '作业中(监护中)', value: 1 }, { - name: '结束', - value: 2 + name: '待验收', + value: 3 + }, + { + name: '验收不合格', + value: 4 + }, + { + name: '已验收', + value: 5 + }, + { + name: '作业前气体分析不合格', + value: 6 + }, + { + name: '审批未通过', + value: 7 + }, + { + name: '作业中止', + value: 8 + }, + { + name: '取消', + value: 15 + }, + { + name: '废止', + value: 16 } ], pieData: [], @@ -506,7 +521,16 @@ }, reviewRules:{ advice: [{ required: true, message: '请填写验收意见', trigger: 'blur' }] - } + }, + lists: { + workerList: [], + departList: [], + departList2: [], + deviceList: [], + otherWorks: [], + spList: [], + riskList: [] + }, }); // 页面载入时执行方法 onMounted(() => { @@ -514,10 +538,24 @@ getMydepList() getAllDepartment(); getTypePie() - getWorkDep() getDepMonth() getWarningList() + spWorker() + getOpList() + getAll() + getAllDevice() + getAllRisks() + getOtherWork() }); + const fireRef = ref() + const plateRef = ref() + const spaceRef = ref() + const hoistRef = ref() + const groundRef = ref() + const brokenRef = ref() + const heightRef = ref() + const powerRef = ref() + const openRef = ref() const initTime =()=>{ state.chartSearch1.startTime = getPeriod(30) state.chartSearch2.startTime = getPeriod(30) @@ -549,17 +587,11 @@ getTypePie() } - const changeDep2=()=>{ - getWorkDep() - } - const changeType2=()=>{ - getWorkDep() - } - const changeType4=()=>{ - getWarningList() - } const changeDep3=()=>{ getDepMonth() + } + const changeDep4=()=>{ + searchRecord() } const toFullscreen =()=>{ const element = document.getElementById('bigScreen') @@ -578,14 +610,45 @@ getMydepList() getAllDepartment(); getTypePie() - getWorkDep() getDepMonth() } + + const continueRecord = (row)=>{ + if(row.workType == 1){ + fireRef.value.openDialog(row,'continue') + } + if(row.workType == 2){ + spaceRef.value.openDialog(row,'continue') + } + if(row.workType == 3){ + hoistRef.value.openDialog(row,'continue') + } + if(row.workType == 4){ + groundRef.value.openDialog(row,'continue') + } + if(row.workType == 5){ + brokenRef.value.openDialog(row,'continue') + } + if(row.workType == 6){ + heightRef.value.openDialog(row,'continue') + } + if(row.workType == 7){ + powerRef.value.openDialog(row,'continue') + } + if(row.workType == 8){ + plateRef.value.openDialog(row,'continue') + } + if(row.workType == 9){ + openRef.value.openDialog(row,'continue') + } + } + const getTypePie = async ()=>{ const data = { startTime: state.chartSearch1.startTime, endTime:state.endTime, - depId:state.chartSearch1.depId + depId:state.chartSearch1.depId, + type: null } let res = await specialIndexApi().analyseType(data); if (res.data.code === '200') { @@ -599,26 +662,7 @@ }); } } - const getWorkDep = async ()=>{ - const data = { - // startTime: state.chartSearch2.startTime, - // endTime: state.endTime, - depId:state.chartSearch2.depId, - type: state.chartSearch2.type - } - let res = await specialIndexApi().analyseAllWork(data); - if (res.data.code === '200') { - state.squareData = JSON.parse(JSON.stringify(res.data.data)) - let names = state.squareData.map(i=>i.name) - let vals = state.squareData.map(i=>i.value) - initSlfx(names,vals) - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } + const getDepMonth = async ()=>{ let res = await specialIndexApi().analyseDepMonth(state.chartSearch3.depId); if (res.data.code === '200') { @@ -635,6 +679,7 @@ } const getMydepList = async()=>{ const dateRange = JSON.parse(JSON.stringify(state.searchDate)) + const dateRange2 = JSON.parse(JSON.stringify(state.searchDate2)) if(dateRange[1]){ dateRange[1] = dateRange[1].replace('00:00:00','23:59:59') state.searchParams.startTime = dateRange[0] @@ -642,6 +687,14 @@ }else{ state.searchParams.startTime = '' state.searchParams.endTime = '' + } + if(dateRange2[1]){ + dateRange2[1] = dateRange2[1].replace('00:00:00','23:59:59') + state.searchParams.workStartTime = dateRange2[0] + state.searchParams.workEndTime = dateRange2[1] + }else{ + state.searchParams.workStartTime = '' + state.searchParams.workEndTime = '' } let res = await specialIndexApi().getMydepList({pageIndex: state.pageIndex,pageSize: state.pageSize,searchParams: state.searchParams}) if (res.data.code === '200') { @@ -656,6 +709,7 @@ } const getWarningList = async()=>{ const data = { + startTime: state.chartSearch4.startTime, endTime: state.endTime, workType:state.chartSearch4.workType @@ -671,6 +725,7 @@ } } type EChartsOption = echarts.EChartsOption + const initZyfb =()=>{ let dom = document.getElementById(zyfb.value); let myChart = echarts.init(dom); @@ -725,7 +780,12 @@ shadowColor: 'rgba(0, 0, 0, 0.5)' }, }, - data: state.pieData + data: state.pieData.map(i=>{ + return { + name: i.workTypeDesc, + value: i.count + } + }).filter(i=>i.name !== '未知') } ] } @@ -735,55 +795,7 @@ myChart.resize(); }); } - const initSlfx =(names:Array<string>,vals:Array<any>)=>{ - let dom = document.getElementById(slfx.value); - let myChart = echarts.init(dom); - let option: EChartsOption; - option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - } - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - xAxis: [ - { - type: 'category', - data: names, - axisTick: { - alignWithLabel: true - }, - axisLabel: { - color: state.themeColor - } - } - ], - yAxis: [ - { - type: 'value' - } - ], - series: [ - { - name: 'Direct', - type: 'bar', - barWidth: '60%', - data: vals, - } - ] - } - option && myChart.setOption(option); - window.addEventListener("resize",function (){ - myChart.resize(); - }); - } const initZyqs =(names:Array<string>,vals:Array<any>)=>{ let dom = document.getElementById(zyqs.value); let myChart = echarts.init(dom); @@ -831,6 +843,7 @@ } // 刷新 const reLoadData = async () => { + state.pageIndex = 1 getMydepList() }; @@ -846,7 +859,9 @@ let res = await teamManageApi().getAllDepartment(); if (res.data.code === '200') { state.departmentList = JSON.parse(JSON.stringify(res.data.data)) - // recursion(state.departmentList); + // state.depList = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47) + recursion(state.departmentList); + state.lists.departList = state.departmentList } else { ElMessage({ type: 'warning', @@ -855,33 +870,20 @@ } }; - // 分页获取列表 - // const getListByPage = async () => { - // const dateRange = JSON.parse(JSON.stringify(state.searchDate)) - // if(dateRange[1]){dateRange[1] = dateRange[1].replace('00:00:00','23:59:59')} - // const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord, applyDepId: state.searchDep,applyStartTime: dateRange[0],applyEndTime: dateRange[1]} }; - // let res = await workApplyApi().getApplyList(data); - // if (res.data.code === '200') { - // state.workData = JSON.parse(JSON.stringify(res.data.data)); - // state.workData = state.workData.map((item) => { - // if (item.operators == null || item.operators == []) { - // item.operators = []; - // } else { - // item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname); - // } - // return item; - // }); - // state.totalSize1 = res.data.total; - // } else { - // ElMessage({ - // type: 'warning', - // message: res.data.msg - // }); - // } - // }; + const recursion = (value: any) => { + for (let i of value) { + if (i.children.length !== 0) { + state.departmentRecursionList.push(i); + recursion(i.children); + } else { + state.departmentRecursionList.push(i); + } + } + }; // 关键词查询记录 const searchRecord = async () => { + state.pageIndex = 1 getMydepList() }; // 重置搜索 @@ -892,9 +894,11 @@ workPermitNo: '', startTime: '', endTime: '', - workAllStatus: null + workAllStatus: null, + seDepId: null } state.searchDate = [] + state.searchDate2 = [] state.pageIndex = 1 getMydepList() }; @@ -908,49 +912,7 @@ getMydepList() }; - // 查看记录 - // const viewDetail = (row: any) => { - // state.dialogType = row.workType - // state.details = JSON.parse(JSON.stringify(row)); - // if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){ - // state.details.workDetail.otherSpecialWork=[] - // } - // else { - // const a = state.details.workDetail.otherSpecialWork - // state.details.workDetail.otherSpecialWork = a.split(',').map((item) => { - // return state.workTypeList.find((i: { id: number }) => i.id === Number(item))?.name; - // }); - // } - // if(state.details.workDetail.involvedDepIds == '' || !state.details.workDetail.involvedDepIds){ - // state.details.workDetail.involvedDepIds=[] - // } - // else { - // const a = state.details.workDetail.involvedDepIds - // state.details.workDetail.involvedDepIds = a.split(',').map((item) => { - // return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName; - // }); - // } - // if(state.details.workDetail.csDepId){ - // state.details.workDetail.csDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.csDepId))?.depName; - // } - // if(state.details.workDetail.operationDepId){ - // state.details.workDetail.operationDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.operationDepId))?.depName; - // } - // if(state.details.workDetail.gbPath){ - // state.details.workDetail.gbPath = state.details.workDetail.gbPath.split(',') - // } - // if(state.details.workDetail.bcPath){ - // state.details.workDetail.bcPath = state.details.workDetail.bcPath.split(',') - // } - // if(state.details.workDetail.bpLocationMapPath){ - // state.details.workDetail.bpLocationMapPath = state.details.workDetail.bpLocationMapPath.split(',') - // } - // state.dialogDetails = true; - // }; - // const handleReview = (row: object)=>{ - // state.dialogReview = true - // } const openVideo = (row:object)=>{ videoRef.value.openDialog(row) } @@ -966,6 +928,7 @@ } axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/down/load/pdf`,{id: row.workApplyId},{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{ if (res) { + console.log(res.data,888) const link = document.createElement('a') let blob = new Blob([res.data],{type: 'application/pdf'}) link.style.display = "none"; @@ -1002,6 +965,107 @@ } }) } + + const spWorker = async ()=>{ + for(let id of ['18','19']){ + const res = await workApplyApi().getSpList({roleId: id}) + if(id == '18'){ + if (res.data.code === '200') { + state.lists.spList.jhList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + if(id == '19'){ + if (res.data.code === '200') { + state.lists.spList.sfList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + } + } + + const getOpList = async()=>{ + const res = await workApplyApi().getOpList() + if(res.data.code == '200'){ + if(res.data.data && res.data.data.length>0){ + state.lists.spList.opList = JSON.parse(JSON.stringify(res.data.data)).map(i=>{ + if(i.certList && i.certList.length>0){ + i.certList = i.certList.map(item=>{ + item['realName'] = i.realName + '(' + item.certTypeName +':'+ item.certExpiredAt + ')' + item['uid'] = item.certNo + ',' + item.certExpiredAt + return item + }) + } + return i + }) + } + }else{ + ElMessage({ + type: 'warning', + message: res.data.msg + }) + } + } + + // 获取用户列表 + const getAll = async ()=>{ + const res = await workApplyApi().getAllUsers() + if (res.data.code === '200') { + state.lists.workerList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + + // 获取设备列表 + const getAllDevice = async ()=>{ + const res = await workApplyApi().getAllDevices() + if (res.data.code === '200') { + state.lists.deviceList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + + // 获取设备列表 + const getAllRisks = async ()=>{ + const res = await workApplyApi().getAllRiskIdentity() + if (res.data.code === '200') { + // state.allDevices = JSON.parse(JSON.stringify(res.data.data)) + state.lists.riskList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + + const getOtherWork = async () => { + let res = await workApplyApi().getOtherWork({pageSize: 999, pageIndex: 1, searchParams: {workPermitNo: '', workType: null}}) + if (res.data.code === '200') { + state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; // const submitReview = async (formEl: FormInstance | undefined) => { // if (!formEl) return @@ -1051,13 +1115,22 @@ zyfb, slfx, zyqs, + fireRef, + plateRef, + spaceRef, + hoistRef, + groundRef, + brokenRef, + heightRef, + powerRef, + openRef, + getMydepList, + continueRecord, changeTime1, changeTime4, changeDep1, - changeDep2, - changeType2, - changeType4, changeDep3, + changeDep4, toFullscreen, // handleReview, openVideo, @@ -1082,7 +1155,7 @@ <style scoped lang="scss"> $homeNavLengh: 8; .home-container { - height: calc(100vh - 144px); + height: calc(100vh - 144px) !important; position: relative; box-sizing: border-box; overflow: hidden; @@ -1120,7 +1193,7 @@ justify-content: space-between; align-items: flex-start; margin-bottom: 20px; - height: 40%; + height: 50%; &:last-of-type{ margin-bottom: 0; } @@ -1178,6 +1251,8 @@ width: 100%; height: 85%; overflow-y: scroll; + scrollbar-width: none; /* firefox */ + -ms-overflow-style: none; /* IE 10+ */ .el-table{ //:deep(.el-table__inner-wrapper){ // height: 100% !important; @@ -1262,7 +1337,6 @@ .main-card { width: 100%; - height: 100%; .cardTop { display: flex; align-items: center; -- Gitblit v1.9.2