| | |
| | | </el-button> |
| | | </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">--> |
| | | <!-- <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 class="chart-item"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <div class="chart-tit"> |
| | |
| | | </el-radio-group> |
| | | </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-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>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div> |
| | | |
| | | <div class="homeCard"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <el-row> |
| | |
| | | <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> |
| | | <span style="white-space: nowrap">申请事业部:</span> |
| | | <div class="grid-content topInfo"> |
| | | <el-cascader :teleported="false" v-model="searchParams.applyDepId" @change="changeDep4()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> |
| | | <el-cascader :teleported="false" v-model="searchParams.seDepId" @change="changeDep4()" :options="depList" :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> |
| | |
| | | </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"> |
| | |
| | | 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>--> |
| | |
| | | </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>--> |
| | |
| | | <!-- </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'; |
| | |
| | | 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 { |
| | |
| | | workType1: Array<type>; |
| | | dialogType: number | null; |
| | | departmentList: Array<any>; |
| | | depList: Array<any>; |
| | | departmentRecursionList: Array<DepartmentState>; |
| | | reviewForm: object; |
| | | reviewRules: object; |
| | |
| | | endTime:string |
| | | pieData: Array<status> |
| | | squareData: Array<status> |
| | | lists: {} |
| | | } |
| | | interface type { |
| | | id: number | null; |
| | |
| | | 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() |
| | |
| | | startTime: '', |
| | | endTime: '', |
| | | workAllStatus: null, |
| | | applyDepId: null |
| | | seDepId: null |
| | | }, |
| | | dialogReview: false, |
| | | departmentList: [], |
| | | depList: [], |
| | | departmentRecursionList: [], |
| | | searchStatus: null, |
| | | endTime: '', |
| | |
| | | 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: [], |
| | |
| | | }, |
| | | reviewRules:{ |
| | | advice: [{ required: true, message: '请填写验收意见', trigger: 'blur' }] |
| | | } |
| | | }, |
| | | lists: { |
| | | workerList: [], |
| | | departList: [], |
| | | departList2: [], |
| | | deviceList: [], |
| | | otherWorks: [], |
| | | spList: [], |
| | | riskList: [] |
| | | }, |
| | | }); |
| | | // 页面载入时执行方法 |
| | | onMounted(() => { |
| | |
| | | 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) |
| | |
| | | getTypePie() |
| | | } |
| | | |
| | | const changeDep2=()=>{ |
| | | getWorkDep() |
| | | } |
| | | const changeType2=()=>{ |
| | | getWorkDep() |
| | | } |
| | | const changeType4=()=>{ |
| | | getWarningList() |
| | | } |
| | | const changeDep3=()=>{ |
| | | getDepMonth() |
| | | } |
| | |
| | | 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') { |
| | |
| | | }); |
| | | } |
| | | } |
| | | 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') { |
| | |
| | | } |
| | | const getWarningList = async()=>{ |
| | | const data = { |
| | | |
| | | startTime: state.chartSearch4.startTime, |
| | | endTime: state.endTime, |
| | | workType:state.chartSearch4.workType |
| | |
| | | } |
| | | } |
| | | type EChartsOption = echarts.EChartsOption |
| | | |
| | | const initZyfb =()=>{ |
| | | let dom = document.getElementById(zyfb.value); |
| | | let myChart = echarts.init(dom); |
| | |
| | | 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 !== '未知') |
| | | } |
| | | ] |
| | | } |
| | |
| | | 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); |
| | |
| | | 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 |
| | | state.lists.departList2 = state.depList |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | } |
| | | }; |
| | | |
| | | // 分页获取列表 |
| | | // 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 () => { |
| | |
| | | startTime: '', |
| | | endTime: '', |
| | | workAllStatus: null, |
| | | applyDepId: null |
| | | seDepId: null |
| | | } |
| | | state.searchDate = [] |
| | | state.pageIndex = 1 |
| | |
| | | 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) |
| | | } |
| | |
| | | } |
| | | 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"; |
| | |
| | | } |
| | | }) |
| | | } |
| | | |
| | | 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 |
| | |
| | | zyfb, |
| | | slfx, |
| | | zyqs, |
| | | fireRef, |
| | | plateRef, |
| | | spaceRef, |
| | | hoistRef, |
| | | groundRef, |
| | | brokenRef, |
| | | heightRef, |
| | | powerRef, |
| | | openRef, |
| | | getMydepList, |
| | | continueRecord, |
| | | changeTime1, |
| | | changeTime4, |
| | | changeDep1, |
| | | changeDep2, |
| | | changeType2, |
| | | changeType4, |
| | | changeDep3, |
| | | changeDep4, |
| | | toFullscreen, |
| | |
| | | <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; |
| | |
| | | |
| | | .main-card { |
| | | width: 100%; |
| | | height: 100%; |
| | | .cardTop { |
| | | display: flex; |
| | | align-items: center; |