马宇豪
2022-12-20 6ca4914a18d1b1561e537674292cf9374791de7c
Default Changelist
已修改12个文件
638 ■■■■ 文件已修改
src/api/specialWorkSystem/workApply/index.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/newHome/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/broken.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/fire.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/ground.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/height.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/plate.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/power.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/components/space.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/zysq/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialWorkSystem/workApply/index.ts
@@ -176,6 +176,15 @@
                method: 'post',
                data: data
            });
        },
        // 根据物资配置id和领取人获取领取情况
        getMaterialDetail: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/material/receive`,
                method: 'post',
                data: data
            });
        }
    };
}
src/views/newHome/index.vue
@@ -452,7 +452,7 @@
            transform: translateY(0);
        }
    }
@media screen and (min-width: 1400px) {
@media screen and (min-width: 1600px) {
    .gridCont {
        width: 100%;
        height: 100%;
@@ -520,7 +520,7 @@
            }
            .itemTit1 {
                font-size: 34px;
                font-size: 32px;
                line-height: 42px;
                height: 40%;
                letter-spacing: 1px;
@@ -528,7 +528,7 @@
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 20px;
                font-size: 18px;
                line-height: 24px;
                color: #072270;
            }
@@ -548,7 +548,7 @@
    }
}
@media screen and (min-width: 1200px) and (max-width: 1400px) {
@media screen and (min-width: 1200px) and (max-width: 1600px) {
    .gridCont {
        width: 100%;
        height: 100%;
@@ -570,14 +570,14 @@
            z-index: 99;
            .itemTit {
                font-size: 26px;
                font-size: 22px;
                line-height: 30px;
                height: 40%;
                color: #072270;
                margin-bottom: 2px;
            }
            .enTit {
                font-size: 14px;
                font-size: 12px;
                color: #072270;
            }
@@ -616,7 +616,7 @@
            }
            .itemTit1 {
                font-size: 28px;
                font-size: 24px;
                line-height: 36px;
                height: 40%;
                letter-spacing: 1px;
@@ -624,7 +624,7 @@
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 16px;
                font-size: 14px;
                color: #072270;
            }
        }
@@ -663,12 +663,12 @@
            z-index: 99;
            .itemTit {
                font-size: 18px;
                font-size: 14px;
                line-height: 22px;
                color: #072270;
            }
            .enTit {
                font-size: 12px;
                font-size: 10px;
                line-height: 14px;
                color: #072270;
            }
@@ -708,7 +708,7 @@
            }
            .itemTit1 {
                font-size: 24px;
                font-size: 16px;
                line-height: 36px;
                height: 40%;
                letter-spacing: 1px;
@@ -716,7 +716,7 @@
                margin-bottom: 12px;
            }
            .enTit1 {
                font-size: 14px;
                font-size: 12px;
                color: #072270;
            }
        }
@@ -822,7 +822,7 @@
        position: absolute;
        left: -100px;
        top: 0;
        width: 240px;
        width: 220px;
        height: 100%;
        z-index: 99;
        background: url('../../assets/newMenu/leftbg.png') no-repeat center;
@@ -901,12 +901,12 @@
        }
    }
    .menuGrid {
        width: calc(100vw - 240px);
        width: calc(100vw - 220px);
        height: calc(100vh - 320px);
        padding: 20px 20px 0;
        position: absolute;
        top: 260px;
        left: 240px;
        left: 220px;
        .gridCont {
            .grid-content {
                border-radius: 16px;
src/views/specialWorkSystem/workTicket/zysq/components/broken.vue
@@ -170,18 +170,18 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList','departList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
                form: {
                    operatorUids: [],
                    workType: 5,
                    workLevel: null,
                    workLevel: 0,
                    workContent: '',
                    workLocation: '',
                    hazardIdentification: '',
          maId: null,
          maBaseId: null,
                    workDetail:{
                        operationDepId: null,
                        bcReason: '',
@@ -189,7 +189,7 @@
                        bcPath: [],
                        involvedDepIds: []
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -230,7 +230,8 @@
                    emitPath: false,
                    value: 'depId',
                    label: 'depName',
                    multiple: true
                    multiple: true,
          expandTrigger: 'hover'
                },
                casProps2: {
                    emitPath: false,
@@ -264,22 +265,24 @@
            // }
      const openMaList = ()=>{
        material.value.equipmentDialog = true
        if(state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业人再获取相应物资配置'
          });
        }else{
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
        material.value.getMaList(state.form.workType,state.form.workLevel)
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
          material.value.workerList = props.workerList
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
@@ -313,8 +316,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/fire.vue
@@ -138,7 +138,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -149,13 +149,13 @@
                    workLevel: null,
                    workContent: '',
                    workLocation: '',
          maId: null,
          maBaseId: null,
                    hazardIdentification: '',
                    workDetail:{
                        hotMethod: '',
                        otherSpecialWork: []
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -232,28 +232,24 @@
            //     }
            // }
      const openMaList = ()=>{
        if(state.form.workLevel == null){
        if(state.form.workLevel == null || state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业等级再获取相应物资配置'
            message: '请先选择作业人和作业等级再获取相应物资配置'
          });
        }else{
          material.value.equipmentDialog = true
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
          }
        }
          // state.form.wmAddReqDTOList = addList
          state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
                if (!formEl) return
@@ -283,8 +279,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/ground.vue
@@ -151,7 +151,6 @@
    import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
    import axios from 'axios';
    interface stateType {
        equipmentDialog: boolean,
        form: Object,
@@ -182,11 +181,11 @@
                form: {
                    operatorUids: [],
                    workType: 4,
                    workLevel: null,
                    workLevel: 0,
                    workContent: '',
                    workLocation: '',
                    hazardIdentification: '',
          maId: null,
          maBaseId: null,
                    workDetail:{
                        operationDepId: null,
                        gbScope: '',
@@ -194,7 +193,7 @@
                        gbPath: [],
                        otherSpecialWork: []
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -295,21 +294,24 @@
            // }
      const openMaList = ()=>{
          material.value.equipmentDialog = true
        if(state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业人再获取相应物资配置'
          });
        }else{
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
          material.value.workerList = props.workerList
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
@@ -343,8 +345,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/height.vue
@@ -157,7 +157,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList','departList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -169,13 +169,13 @@
                    workContent: '',
                    workLocation: '',
                    hazardIdentification: '',
          maId: null,
          maBaseId: null,
                    workDetail:{
                        operationDepId: '',
                        operationHeight: null,
                        otherSpecialWork: []
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -297,28 +297,24 @@
            //     }
            // }
      const openMaList = ()=>{
        if(state.form.workLevel == null){
        if(state.form.workLevel == null || state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业等级再获取相应物资配置'
            message: '请先选择作业人和作业等级再获取相应物资配置'
          });
        }else{
          material.value.equipmentDialog = true
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
@@ -342,8 +338,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue
@@ -126,7 +126,6 @@
    import type { FormInstance, FormRules } from 'element-plus'
    import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
    interface stateType {
        equipmentDialog: boolean,
        form: Object,
@@ -138,7 +137,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -149,13 +148,13 @@
                    workLevel: null,
                    workContent: '',
                    workLocation: '',
          maId: null,
          maBaseId: null,
                    hazardIdentification: '',
                    workDetail:{
                        hoistingToolName: '',
                        weightMass: null
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -195,28 +194,24 @@
            //     }
            // }
      const openMaList = ()=>{
        if(state.form.workLevel == null){
        if(state.form.workLevel == null || state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业等级再获取相应物资配置'
            message: '请先选择作业人和作业等级再获取相应物资配置'
          });
        }else{
          material.value.equipmentDialog = true
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
                if (!formEl) return
@@ -239,8 +234,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue
@@ -5,35 +5,51 @@
        <el-button @click="openList(item)" type="success">选用</el-button>
      </div>
      <el-dialog v-model="equipDetailDialog" title="物资标准详情" width="40%" center @open="openDetail" >
      <el-dialog v-model="equipDetailDialog" title="物资标准详情" width="75%" center @open="openDetail">
        <div class="choose-receiver">
          <span>选择其他作业关联人员</span>
          <el-select v-model="receiveUids" multiple @change="changeReceiver">
            <el-option
                v-for="item in workerList"
                :key="item.uid"
                :label="item.username"
                :value="item.uid"
            />
          </el-select>
        </div>
          <table class="table">
            <tr>
              <th class="w-20">物资名称</th>
              <th class="w-20">出库部门(仓库)</th>
              <th class="w-15">对应库存</th>
            <th class="w-25">物资名称</th>
              <th class="w-15">标准值</th>
              <th class="w-15">级别</th>
            <th class="w-30">关联人员与个数</th>
              <th class="w-15">实际使用</th>
            </tr>
            <tr v-for="(item,index) in materialDetail">
              <td class="w-20">{{item.materialName}}</td>
              <td class="w-20">
                <el-select v-model="addList[index].depId" @change="changeDep($event,index)">
                  <el-option
                      v-for="i in item.msList"
                      :key="i.depId"
                      :label="i.depName"
                      :value="i.depId"
                  />
                </el-select>
              </td>
              <td class="w-15">
                  {{stockCount[index]}}
              </td>
            <td class="w-25">{{item.materialName}}</td>
<!--              <td class="w-1">-->
<!--                <el-select v-model="addList[index].depId" @change="changeDep($event,index)">-->
<!--                  <el-option-->
<!--                      v-for="i in item.msList"-->
<!--                      :key="i.depId"-->
<!--                      :label="i.depName"-->
<!--                      :value="i.depId"-->
<!--                  />-->
<!--                </el-select>-->
<!--              </td>-->
<!--              <td class="w-15">-->
<!--                  {{stockCount[index]}}-->
<!--              </td>-->
              <td class="w-15">{{item.standVal}}</td>
              <td class="w-15">{{item.configurationLevelName}}</td>
            <td class="w-30">
              {{item.receiveUnames}}
            </td>
<!--              <td class="w-15">-->
<!--                <el-input type="number" v-model.number="addList[index].useCount"/>-->
<!--              </td>-->
              <td class="w-15">
                <el-input type="number" v-model.number="addList[index].useCount"/>
              {{item.receiveCount}}
              </td>
            </tr>
          </table>
@@ -56,8 +72,8 @@
  equipDetailDialog: boolean
  materialDetail: Array<any>
  stockCount: Array<number>
  addList: Array<any>
  chosenId: number | null
  chosenId: number | null,
  receiveUids: Array<number>
}
@@ -66,9 +82,10 @@
import {ElMessage, ElMessageBox} from 'element-plus';
import {useUserInfo} from "/@/stores/userInfo";
import {storeToRefs} from "pinia";
export default {
    name: 'materialDialog',
    setup(props,context) {
    setup(props: any, context: any) {
        const userInfo = useUserInfo()
        const { userInfos } = storeToRefs(userInfo);
        const approveBasicFormRef = ref();
@@ -79,7 +96,7 @@
          equipDetailDialog: false,
          materialDetail: [],
          stockCount: [],
          addList: []
          receiveUids: []
        });
      // 确认物资标准
@@ -89,85 +106,112 @@
          if (res.data.code === '200') {
            if(res.data.data && res.data.data.length>0){
              state.materialList = JSON.parse(JSON.stringify(res.data.data))
              state.equipmentDialog = true
            }else{
              ElMessage({
                type: 'warning',
                message: '暂时查询不到物资标准信息'
              });
              state.equipmentDialog = false
            }
          } else {
            ElMessage({
              type: 'warning',
              message: res.data.msg
            });
            state.equipmentDialog = false
          }
      }
      const openList =(item:object)=>{
      const openList = async(item:object)=>{
        state.chosenId = item.id
        state.addList = []
        state.stockCount = []
        if(item.mcList && item.mcList.length>0){
          for(let j in item.mcList){
            if(item.mcList[j].msList == null || item.mcList[j].msList.length==0){
              item.mcList.splice(j,1)
            }
          }
          state.materialDetail = item.mcList
          for(let i in state.materialDetail){
              state.addList.push(
                  {
                    materialId: state.materialDetail[i].materialId,
                    depId: null,
                    depName: '',
                    useCount: null
                  }
              )
            for(let x in state.materialDetail[i].msList){
              if(state.materialDetail[i].msList[x].depId == userInfos.value.depId){
                state.addList[i].depId = userInfos.value.depId
                state.addList[i].depName = state.materialDetail[i].msList[x].depName
                state.stockCount[i] = state.materialDetail[i].msList.find((e) => e.depId == state.addList[i].depId).stockCount
              }
            }
          }
        }
        const data = {maBaseId: state.chosenId,receiveUids:state.receiveUids}
        const res = await workApplyApi().getMaterialDetail(data)
        if (res.data.code === '200') {
          if(res.data.data && res.data.data.length>0){
            state.materialDetail = res.data.data
        state.equipDetailDialog = true
          }else{
            ElMessage({
              type: 'warning',
              message: '暂时查询不到物资标准信息'
            });
      }
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg
          });
        }
        // state.stockCount = []
        // if(item.mcList && item.mcList.length>0){
        //   for(let j in item.mcList){
        //     if(item.mcList[j].msList == null || item.mcList[j].msList.length==0){
        //       item.mcList.splice(j,1)
        //     }
        //   }
        //   state.materialDetail = item.mcList
        //   for(let i in state.materialDetail){
        //       state.addList.push(
        //           {
        //             materialId: state.materialDetail[i].materialId,
        //             depId: null,
        //             depName: '',
        //             useCount: null
        //           }
        //       )
        //     for(let x in state.materialDetail[i].msList){
        //       if(state.materialDetail[i].msList[x].depId == userInfos.value.depId){
        //         state.addList[i].depId = userInfos.value.depId
        //         state.addList[i].depName = state.materialDetail[i].msList[x].depName
        //         state.stockCount[i] = state.materialDetail[i].msList.find((e) => e.depId == state.addList[i].depId).stockCount
        //       }
        //     }
        //   }
        // }
      }
      const changeReceiver = async ()=>{
        const data = {maBaseId: state.chosenId,receiveUids:state.receiveUids}
        const res = await workApplyApi().getMaterialDetail(data)
        if (res.data.code === '200') {
          if(res.data.data && res.data.data.length>0){
            state.materialDetail = res.data.data
          }else{
            ElMessage({
              type: 'warning',
              message: '暂时查询不到物资标准信息'
            });
          }
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg
          });
        }
      }
      const openDetail = ()=>{
        console.log(state.addList,'打开弹窗')
      }
      const changeDep = (val:number,index:number)=>{
        state.addList[index].depName = state.materialDetail[index].msList.find((i) => i.depId == val).depName
        state.stockCount[index] = state.materialDetail[index].msList.find((i) => i.depId == val).stockCount
      }
      const submitMaterials = ()=>{
        if(state.addList.length > 0 && (state.addList.some((e) => e.depId == null && e.useCount != null ) || state.addList.some((e) => e.useCount == null && e.depId != null))){
          ElMessage({
            type: 'warning',
            message: '出库部门或实际使用值不可为空'
          });
          return
        }
        for(let i in state.materialDetail){
          if(state.materialDetail[i].configurationLevelName == '必选' && state.addList[i].depId != null && state.addList[i].useCount <= 0){
            ElMessage({
              type: 'warning',
              message: '必选物资数量不能小于等于0'
            });
            return
          }
          if((state.stockCount[i] !=null && state.addList[i].useCount !=null) && (state.stockCount[i] < state.addList[i].useCount)){
            ElMessage({
              type: 'warning',
              message: '物资配置数量超出库存量,请重新配置'
            });
            return
          }
        }
        // if(state.addList.length > 0 && (state.addList.some((e) => e.depId == null && e.useCount != null ) || state.addList.some((e) => e.useCount == null && e.depId != null))){
        //   ElMessage({
        //     type: 'warning',
        //     message: '出库部门或实际使用值不可为空'
        //   });
        //   return
        // }
        // for(let i in state.materialDetail){
        //   if(state.materialDetail[i].configurationLevelName == '必选' && state.addList[i].depId != null && state.addList[i].useCount <= 0){
        //     ElMessage({
        //       type: 'warning',
        //       message: '必选物资数量不能小于等于0'
        //     });
        //     return
        //   }
        //   if((state.stockCount[i] !=null && state.addList[i].useCount !=null) && (state.stockCount[i] < state.addList[i].useCount)){
        //     ElMessage({
        //       type: 'warning',
        //       message: '物资配置数量超出库存量,请重新配置'
        //     });
        //     return
        //   }
        // }
        // if(state.addList.length > 0){
        //   for(let n in state.addList){
        //     if(state.addList[n].depId == null && state.addList[n].useCount == null){
@@ -175,8 +219,8 @@
        //     }
        //   }
        // }
        console.log(state.addList,state.chosenId,'666666666')
        context.emit('conFirmMaterials',state.addList,state.chosenId)
        console.log(state.receiveUids,state.chosenId,'666666666')
        context.emit('conFirmMaterials',state.receiveUids,state.chosenId)
        state.equipDetailDialog = false
        state.equipmentDialog = false
      }
@@ -186,13 +230,12 @@
      }
      const closeChoose = () =>{
        state.equipDetailDialog = false
        state.equipmentDialog = false
      }
        return {
            ...toRefs(state),
            changeDep,
            getMaList,
            openList,
            changeReceiver,
            openDetail,
            closeChoose,
            closeMaterial,
@@ -214,17 +257,18 @@
  .table{
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    tr{
      width: 100%;
      border: 1px solid #ccc;
      th,td{
        padding: 6px 0;
        border-left: 1px solid #ccc;
        &:first-of-type{
          border-left: none;
        }
      }
      th{
        padding: 10px 0;
      td{
        font-weight: bolder;
      }
@@ -236,6 +280,14 @@
        width: 20%;
        text-align: center;
      }
      .w-25{
        width: 25%;
        text-align: center;
      }
      .w-30{
        width: 30%;
        text-align: center;
      }
    }
  }
</style>
src/views/specialWorkSystem/workTicket/zysq/components/plate.vue
@@ -248,7 +248,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -259,7 +259,7 @@
                    workLevel: null,
                    workContent: '',
                    workLocation: '',
          maId: null,
          maBaseId: null,
                    hazardIdentification: '',
                    workDetail:{
                        bpCode: '',
@@ -275,7 +275,7 @@
                        uninstallBpTime: '',
                        otherSpecialWork: []
                    },
                    wmAddReqDTOList: [],
                    receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -384,28 +384,24 @@
            //     }
            // }
      const openMaList = ()=>{
        if(state.form.workLevel == null){
        if(state.form.workLevel == null || state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业等级再获取相应物资配置'
            message: '请先选择作业人和作业等级再获取相应物资配置'
          });
        }else{
          material.value.equipmentDialog = true
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
                if (!formEl) return
@@ -437,8 +433,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/power.vue
@@ -124,10 +124,8 @@
    import type { FormInstance, FormRules } from 'element-plus'
    import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
    interface stateType {
        form: Object,
        workLevelList: Array<any>,
        equipmentDialog: boolean
    }
    export default defineComponent({
@@ -136,7 +134,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -147,39 +145,24 @@
                    workLevel: 0,
                    workContent: '',
                    workLocation: '',
          maId: null,
          maBaseId: null,
                    hazardIdentification: '',
                    workDetail:{
                        powerAccessPoint: '',
                        workingVoltage: null,
                        equipmentAndPower: ''
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
                },
                workLevelList: [
                    {
                        label: "一级吊装作业",
                        value: 8
                    },
                    {
                        label: "二级吊装作业",
                        value: 9
                    },
                    {
                        label: "三级吊装作业",
                        value: 10
                    }
                ]
            });
      const material = ref()
            const ruleFormRef = ref<FormInstance>()
            const applyRules = reactive<FormRules>({
                operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -196,28 +179,24 @@
            // }
      const openMaList = ()=>{
        if(state.form.workLevel == null){
        if(state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业等级再获取相应物资配置'
            message: '请先选择作业人再获取相应物资配置'
          });
        }else{
          material.value.equipmentDialog = true
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
          material.value.getMaList(state.form.workType,state.form.workLevel)
          material.value.workerList = props.workerList
        }
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
@@ -241,8 +220,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/components/space.vue
@@ -135,7 +135,6 @@
    import type { FormInstance, FormRules } from 'element-plus'
    import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
    interface stateType {
        form: Object,
        csDepList: Array<any>,
@@ -149,7 +148,7 @@
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')),
    },
        props:['workerList','departList'],
        setup() {
        setup(props: any, context: any) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({
@@ -157,10 +156,10 @@
                form: {
                    operatorUids: [],
                    workType: 2,
                    workLevel: null,
                    workLevel: 0,
                    workContent: '',
                    workLocation: '',
          maId: null,
          maBaseId: null,
                    hazardIdentification: '',
                    workDetail:{
                        csDepId: null,
@@ -168,7 +167,7 @@
                        csOriginalName: '',
                        otherSpecialWork: []
                    },
                    wmAddReqDTOList: [],
          receiveUids: [],
                    workTimeLine: [],
                    expStartTime: '',
                    expEndTime: ''
@@ -263,21 +262,24 @@
            // }
      const openMaList = ()=>{
        material.value.equipmentDialog = true
        if(state.form.operatorUids == []){
          ElMessage({
            type: 'warning',
            message: '请先选择作业人再获取相应物资配置'
          });
        }else{
          if(material.value.receiveUids.length==0){
            material.value.receiveUids = state.form.operatorUids
          }
        material.value.getMaList(state.form.workType,state.form.workLevel)
      }
      const conFirmMaterials = (addList: Array<any>,chosenId: number) =>{
        state.form.maId = null
        state.form.wmAddReqDTOList = []
        if(addList.length > 0){
          for(let i in addList){
            if(addList[i].depId != null && addList[i].useCount != null){
              state.form.wmAddReqDTOList.push(addList[i])
          material.value.workerList = props.workerList
            }
          }
        }
        // state.form.wmAddReqDTOList = addList
        state.form.maId = chosenId
      const conFirmMaterials = (receiveUids: Array<number>,chosenId: number) =>{
        state.form.maBaseId = null
        state.form.receiveUids = []
        state.form.receiveUids = receiveUids
        state.form.maBaseId = chosenId
      }
            const submitForm = async (formEl: FormInstance | undefined) => {
@@ -302,8 +304,8 @@
                                message: res.data.msg
                            });
                        }
            state.form.maId = null
            state.form.wmAddReqDTOList = []
            material.value.maBaseId = null
            material.value.receiveUids = []
                    } else {
                        console.log('error submit!', fields)
                    }
src/views/specialWorkSystem/workTicket/zysq/index.vue
@@ -1,31 +1,32 @@
<template>
    <div class="home-container">
        <el-tabs type="border-card">
        <el-tabs type="border-card" @tab-change="switchTab">
            <el-tab-pane label="动火作业">
                <fire-form :workerList = allWorkers></fire-form>
                <fire-form ref="fire" :workerList = allWorkers></fire-form>
            </el-tab-pane>
            <el-tab-pane label="受限空间作业">
                <space-form :workerList = allWorkers :departList = departmentList></space-form>
                <space-form ref="space" :workerList = allWorkers :departList = departmentList></space-form>
            </el-tab-pane>
            <el-tab-pane label="吊装作业">
                <hoist-form :workerList = allWorkers></hoist-form>
                <hoist-form ref="hoist" :workerList = allWorkers></hoist-form>
            </el-tab-pane>
            <el-tab-pane label="动土作业">
                <ground-form :workerList = allWorkers :departList = departmentList></ground-form>
                <ground-form ref="ground" :workerList = allWorkers :departList = departmentList></ground-form>
            </el-tab-pane>
            <el-tab-pane label="断路作业">
                <broken-form :workerList = allWorkers :departList = departmentList></broken-form>
                <broken-form ref="broken" :workerList = allWorkers :departList = departmentList></broken-form>
            </el-tab-pane>
            <el-tab-pane label="高处作业">
                <height-form :workerList = allWorkers :departList = departmentList></height-form>
                <height-form ref="height" :workerList = allWorkers :departList = departmentList></height-form>
            </el-tab-pane>
            <el-tab-pane label="临时用电作业">
                <power-form :workerList = allWorkers></power-form>
                <power-form ref="power" :workerList = allWorkers></power-form>
            </el-tab-pane>
            <el-tab-pane label="盲板抽堵作业">
                <plate-form :workerList = allWorkers></plate-form>
                <plate-form ref="plate" :workerList = allWorkers></plate-form>
            </el-tab-pane>
        </el-tabs>
    <material-dialog ref="material"></material-dialog>
    </div>
</template>
@@ -55,7 +56,8 @@
            brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/broken.vue')),
            heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/height.vue')),
            powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/power.vue')),
            plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/plate.vue'))
            plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/plate.vue')),
      materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue'))
        },
        setup() {
            const userInfo = useUserInfo()
@@ -64,7 +66,15 @@
                allWorkers: [],
                departmentList: []
            });
      const fire = ref()
      const space = ref()
      const hoist = ref()
      const ground = ref()
      const broken = ref()
      const height = ref()
      const power = ref()
      const plate = ref()
      const material = ref()
            // 获取用户列表
            const getAll = async ()=>{
                const res = await workApplyApi().getAllUsers()
@@ -91,6 +101,14 @@
                }
            };
      const switchTab = (name)=>{
        console.log(name,'name')
        fire.value.form.resetFields()
        material.value.maBaseId = null
        material.value.receiveUids = []
      }
            // 页面载入时执行方法
            onMounted(() => {
                getAll();
@@ -99,6 +117,16 @@
            return {
                ...toRefs(state),
        fire,
        space,
        broken,
        ground,
        height,
        hoist,
        plate,
        power,
        material,
        switchTab
            };
        },
    });