From 6ca4914a18d1b1561e537674292cf9374791de7c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 20 十二月 2022 17:23:40 +0800 Subject: [PATCH] Default Changelist --- src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue | 246 ++++++++++++-------- src/views/specialWorkSystem/workTicket/zysq/components/broken.vue | 47 ++- src/views/specialWorkSystem/workTicket/zysq/components/height.vue | 38 +- src/views/specialWorkSystem/workTicket/zysq/components/plate.vue | 38 +- src/views/specialWorkSystem/workTicket/zysq/components/space.vue | 44 +- src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue | 39 +- src/views/specialWorkSystem/workTicket/zysq/components/power.vue | 57 +--- src/api/specialWorkSystem/workApply/index.ts | 9 src/views/newHome/index.vue | 30 +- src/views/specialWorkSystem/workTicket/zysq/components/ground.vue | 40 +- src/views/specialWorkSystem/workTicket/zysq/index.vue | 50 +++ src/views/specialWorkSystem/workTicket/zysq/components/fire.vue | 36 +- 12 files changed, 366 insertions(+), 308 deletions(-) diff --git a/src/api/specialWorkSystem/workApply/index.ts b/src/api/specialWorkSystem/workApply/index.ts index 1286cbe..6258f0e 100644 --- a/src/api/specialWorkSystem/workApply/index.ts +++ b/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 + }); } }; } diff --git a/src/views/newHome/index.vue b/src/views/newHome/index.vue index f93269a..8450675 100644 --- a/src/views/newHome/index.vue +++ b/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; diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue b/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue index 8378a7c..da141bb 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue @@ -138,7 +138,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -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 - 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]) - } + 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) + 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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue index b31069e..9af9738 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue +++ b/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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue b/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue index 9b16ea0..26a089b 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue +++ b/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 - 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]) - } + 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) + 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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/height.vue b/src/views/specialWorkSystem/workTicket/zysq/components/height.vue index eed8f97..0fcee6b 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/height.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/height.vue @@ -131,7 +131,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue b/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue index 188beab..f9ae96f 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue @@ -116,7 +116,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -125,7 +125,6 @@ import { ElMessage, ElMessageBox } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus' import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - interface stateType { equipmentDialog: boolean, @@ -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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue b/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue index 3dbb18e..384515a 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue @@ -5,38 +5,54 @@ <el-button @click="openList(item)" type="success">选用</el-button> </div> - <el-dialog v-model="equipDetailDialog" title="物资标准详情" width="40%" center @open="openDetail" > - <table class="table"> - <tr> - <th class="w-20">物资名称</th> - <th class="w-20">出库部门(仓库)</th> - <th class="w-15">对应库存</th> - <th class="w-15">标准值</th> - <th class="w-15">级别</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-15">{{item.standVal}}</td> - <td class="w-15">{{item.configurationLevelName}}</td> - <td class="w-15"> - <el-input type="number" v-model.number="addList[index].useCount"/> - </td> - </tr> - </table> + <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-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-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"> + {{item.receiveCount}} + </td> + </tr> + </table> <template #footer> <span class="dialog-footer"> <el-button @click="closeChoose()" size="default">取消</el-button> @@ -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) - } + 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: '暂时查询不到物资标准信息' + }); } - 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 - } - } - } - } - state.equipDetailDialog = true - } - - 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))){ + } else { ElMessage({ type: 'warning', - message: '出库部门或实际使用值不可为空' + message: res.data.msg }); - return } - for(let i in state.materialDetail){ - if(state.materialDetail[i].configurationLevelName == '必选' && state.addList[i].depId != null && state.addList[i].useCount <= 0){ + // 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: '必选物资数量不能小于等于0' + message: '暂时查询不到物资标准信息' }); - return } - if((state.stockCount[i] !=null && state.addList[i].useCount !=null) && (state.stockCount[i] < state.addList[i].useCount)){ - ElMessage({ - type: 'warning', - message: '物资配置数量超出库存量,请重新配置' - }); - return - } + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); } + } + const openDetail = ()=>{ + } + 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){ // 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> diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue b/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue index 46e0656..f0e9544 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue @@ -215,7 +215,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/power.vue b/src/views/specialWorkSystem/workTicket/zysq/components/power.vue index 8f4d84e..07d84b4 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/power.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/power.vue @@ -114,7 +114,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/space.vue b/src/views/specialWorkSystem/workTicket/zysq/components/space.vue index 73b9e4f..a474192 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/space.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/space.vue @@ -125,7 +125,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; +import {toRefs, reactive, defineComponent, ref, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -134,7 +134,6 @@ import { ElMessage, ElMessageBox } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus' import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - interface stateType { form: Object, @@ -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 - 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]) - } + 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) + 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) } diff --git a/src/views/specialWorkSystem/workTicket/zysq/index.vue b/src/views/specialWorkSystem/workTicket/zysq/index.vue index 6a6906b..fea4f09 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/index.vue +++ b/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 }; }, }); -- Gitblit v1.9.2