马宇豪
2023-08-16 a8ef7c1a4b2ab6acd91a0520e6258bd753d17f20
src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
@@ -1,29 +1,29 @@
<template>
   <div class="home-container">
      <el-tabs type="border-card" @tab-change="switchTab">
         <el-tab-pane label="动火作业">
            <fire-form ref="fire" :workerList = allWorkers :deviceList = allDevices :departList = departmentList></fire-form>
      <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="动火作业" name="fire">
            <fire-form ref="fire" :workerList = allWorkers :deviceList = allDevices :departList=departmentList :departList2=departmentList2 :otherWorks="otherWorks" :spList="spList"></fire-form>
         </el-tab-pane>
         <el-tab-pane label="受限空间作业">
<!--            <space-form ref="space" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></space-form>-->
         <el-tab-pane label="受限空间作业" name="space">
            <space-form ref="space" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></space-form>
         </el-tab-pane>
         <el-tab-pane label="吊装作业">
<!--            <hoist-form ref="hoist" :workerList = allWorkers :deviceList = allDevices></hoist-form>-->
         <el-tab-pane label="吊装作业" name="hoist">
            <hoist-form ref="hoist" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></hoist-form>
         </el-tab-pane>
         <el-tab-pane label="动土作业">
<!--            <ground-form ref="ground" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></ground-form>-->
         <el-tab-pane label="动土作业" name="ground">
            <ground-form ref="ground" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></ground-form>
         </el-tab-pane>
         <el-tab-pane label="断路作业">
<!--            <broken-form ref="broken" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></broken-form>-->
         <el-tab-pane label="断路作业" name="broken">
            <broken-form ref="broken" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></broken-form>
         </el-tab-pane>
         <el-tab-pane label="高处作业">
<!--            <height-form ref="height" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></height-form>-->
         <el-tab-pane label="高处作业" name="height">
            <height-form ref="height" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></height-form>
         </el-tab-pane>
         <el-tab-pane label="临时用电作业">
<!--            <power-form ref="power" :workerList = allWorkers :deviceList = allDevices></power-form>-->
         <el-tab-pane label="临时用电作业" name="power">
            <power-form ref="power" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></power-form>
         </el-tab-pane>
         <el-tab-pane label="盲板抽堵作业">
<!--            <plate-form ref="plate" :workerList = allWorkers :deviceList = allDevices></plate-form>-->
         <el-tab-pane label="盲板抽堵作业" name="plate">
            <plate-form ref="plate" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></plate-form>
         </el-tab-pane>
      </el-tabs>
<!--    <material-dialog ref="material"></material-dialog>-->
@@ -38,34 +38,50 @@
   import { Session } from '/@/utils/storage';
   import { Search } from '@element-plus/icons-vue'
   import { ElMessage } from 'element-plus'
   import type { FormInstance, FormRules } from 'element-plus'
   import type { FormInstance, FormRules, TabsPaneContext } from 'element-plus'
   import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
   import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage";
   interface stateType {
    activeName: string
      allWorkers: Array<any>
      departmentList: Array<any>
    departmentList2: Array<any>
    otherWorks: Array<any>
    allDevices: Array<any>
    spList:{
      opList: Array<any>
      jhList: Array<any>
      sfList: Array<any>
    }
   }
   export default defineComponent({
      name: 'apply',
      components: {
         fireForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue')),
         // spaceForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue')),
         // hoistForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue')),
         // groundForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue')),
         // brokenForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue')),
         // heightForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue')),
         // powerForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue')),
         // plateForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue')),
         spaceForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue')),
         hoistForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue')),
         groundForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue')),
         brokenForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue')),
         heightForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue')),
         powerForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue')),
         plateForm: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue')),
      },
      setup() {
         const userInfo = useUserInfo()
         const { userInfos } = storeToRefs(userInfo);
         const state  = reactive<stateType>({
        activeName: 'fire',
            allWorkers: [],
            departmentList: [],
        allDevices: []
        departmentList2:[],
        otherWorks: [],
        allDevices: [],
        spList:{
          opList: [],
          jhList: [],
          sfList: []
        }
         });
      const fire = ref()
      const space = ref()
@@ -75,7 +91,27 @@
      const height = ref()
      const power = ref()
      const plate = ref()
      const material = ref()
      const handleClick = (tab: TabsPaneContext, event: Event) => {
        if(tab.index == 0){fire.value.getBasicData()}
        if(tab.index == 1){space.value.getBasicData()}
        if(tab.index == 2){hoist.value.getBasicData()}
        if(tab.index == 3){ground.value.getBasicData()}
        if(tab.index == 4){broken.value.getBasicData()}
        if(tab.index == 5){height.value.getBasicData()}
        if(tab.index == 6){power.value.getBasicData()}
        if(tab.index == 7){plate.value.getBasicData()}
      }
      // 页面载入时执行方法
      onMounted(() => {
        getAll();
        getAllDepartment();
        getAllDevice();
        getOtherWork();
        spWorker()
      });
         // 获取用户列表
         const getAll = async ()=>{
            const res = await workApplyApi().getAllUsers()
@@ -89,11 +125,48 @@
            }
         };
      const spWorker = async ()=>{
        for(let id of ['17','18','19']){
          const res = await workApplyApi().getSpList({roleId: id})
          if(id == '17'){
            if (res.data.code === '200') {
              state.spList.opList = res.data.data
            } else {
              ElMessage({
                type: 'warning',
                message: res.data.msg
              });
            }
          }
          if(id == '18'){
            if (res.data.code === '200') {
              state.spList.jhList = res.data.data
            } else {
              ElMessage({
                type: 'warning',
                message: res.data.msg
              });
            }
          }
          if(id == '19'){
            if (res.data.code === '200') {
              state.spList.sfList = res.data.data
            } else {
              ElMessage({
                type: 'warning',
                message: res.data.msg
              });
            }
          }
        }
      }
         // 获取部门列表
         const getAllDepartment = async () => {
            let res = await teamManageApi().getAllDepartment();
            if (res.data.code === '200') {
               state.departmentList = JSON.parse(JSON.stringify(res.data.data))
          state.departmentList2 = state.departmentList[0].children
            } else {
               ElMessage({
                  type: 'warning',
@@ -101,6 +174,19 @@
               });
            }
         };
      // 获取相关作业列表
      const getOtherWork = async () => {
        let res = await workApplyApi().getOtherWork({workPermitNo: '',workType: null});
        if (res.data.code === '200') {
          state.otherWorks = JSON.parse(JSON.stringify(res.data.data))
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg
          });
        }
      };
      // 获取设备列表
      const getAllDevice = async ()=>{
@@ -115,21 +201,6 @@
        }
      };
      const switchTab = (name)=>{
        console.log(name,'name')
        fire.value.form.resetFields()
        material.value.maBaseId = null
        material.value.receiveUids = []
      }
         // 页面载入时执行方法
         onMounted(() => {
            getAll();
            getAllDepartment();
        getAllDevice()
         });
         return {
            ...toRefs(state),
        fire,
@@ -140,8 +211,8 @@
        hoist,
        plate,
        power,
        material,
        switchTab
        handleClick,
        getOtherWork
         };
      },
   });