From 0bd8b4947527f0d1a3fe445d84fb776ce021507e Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 21 十一月 2024 10:59:56 +0800 Subject: [PATCH] 1. 修改问题整改界面中左侧列表的状态图标 --- src/views/fysp/check/ProCheck.vue | 219 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 183 insertions(+), 36 deletions(-) diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue index f0c4e53..68d5b0c 100644 --- a/src/views/fysp/check/ProCheck.vue +++ b/src/views/fysp/check/ProCheck.vue @@ -3,7 +3,7 @@ <template #header> <SearchBar @on-submit="search"> <template #summary> - <CompSubTaskStatistic :subtasks="subtasks"/> + <CompSubTaskStatistic :subtasks="subtasks" /> </template> </SearchBar> </template> @@ -26,36 +26,86 @@ class="el-scrollbar" v-loading="mainLoading" > - <CompProblemCard - v-for="(p, i) in curProList" - :key="i" - :index="i+1" - :problem="p" - @submit="updateSubtask" - ></CompProblemCard> + <template v-if="compProblemCardVisible"> + <CompProblemCard + :key="i" + v-for="(p, i) in curProList" + :index="i + 1" + :problem="p" + :subtask="curSubtask.data" + :topTask="topTask" + @updated="onProSubmited" + @submit="updateSubtask" + ></CompProblemCard> + </template> </el-scrollbar> <el-empty v-else description="鏆傛棤璁板綍" v-loading="mainLoading" /> </template> </BaseContentLayout> + <el-dialog + v-model="proAddOrUpdDialogVisible" + :before-close="proAddOrUpdDialogClose" + width="50%" + title="鏂板闂" + > + <CompProblemAddOrUpd + v-if="proAddOrUpdDialogVisible" + :subtask="curSubtask.data" + :topTask="topTask" + ref="compProblemAddOrUpdRef" + @submited="newProSubmit" + /> + </el-dialog> + <ArbitraryPhoto + v-if="anyPhotoDialog" + v-model:dialog-visible="anyPhotoDialog" + :readonly="true" + :subtask="curSubtask.data" + ref="arbitraryPhotoRef" + ></ArbitraryPhoto> + <el-drawer + direction="ltr" + v-model="deviceShowDialog" + :before-close="beforeDeviceShowDialogclose" + title="璁炬柦璁惧" + size="45%" + > + <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef"> + </CompDeviceShowTest> + </el-drawer> </template> <script> +import ArbitraryPhoto from './components/ArbitraryPhoto.vue'; import taskApi from '@/api/fysp/taskApi'; import ProCheckProxy from './ProCheckProxy'; - -import { ElMessageBox, ElNotification, ElMessage } from 'element-plus'; - +import CompProblemAddOrUpd from './components/CompProblemAddOrUpd.vue'; import CompProblemCard from './components/CompProblemCard.vue'; import CompSubTaskStatistic from './components/CompSubTaskStatistic.vue'; - +import CompDeviceShowTest from './components/CompDeviceShowTest.vue'; export default { - components: { CompProblemCard, CompSubTaskStatistic }, + components: { + CompProblemCard, + CompSubTaskStatistic, + CompProblemAddOrUpd, + ArbitraryPhoto, + CompDeviceShowTest + }, data() { return { + compProblemCardVisible: true, + // 璁惧鍥� + deviceShowDialog: false, + // 浠绘剰鍥� + anyPhotoDialog: false, + // 鏂板闂 + proAddOrUpdDialogVisible: false, //宸︿晶鑿滃崟鏍忓姞杞界姸鎬� sideLoading: false, //鍙充晶鍐呭鏍忓姞杞界姸鎬� mainLoading: false, + // 鎬讳换鍔� + topTask: {}, //瀛愪换鍔″垪琛� subtasks: [], //褰撳墠閫変腑鐨勪换鍔� @@ -67,16 +117,30 @@ { name: '鏂板闂', color: 'success', + click: () => { + this.proAddOrUpdDialogVisible = true; + } }, { - name: '浠绘剰鍥剧墖', + name: '鍦烘櫙鍥剧墖', color: 'warning', + click: () => { + this.anyPhotoDialog = true; + } }, { - name: '鎵归噺瀹℃牳', - color: 'primary', - }, - ], + name: '璁炬柦璁惧', + color: 'info', + click: () => { + this.openDeviceShowDialog(); + } + } + // { + // name: '鎵归噺瀹℃牳', + // color: 'primary', + // click: () => {} + // } + ] }; }, computed: { @@ -90,50 +154,50 @@ { name: '浠诲姟鎬昏', value: 0, - type: 'info', + type: 'info' }, { name: '闂鏈鏍�', value: 0, type: 'success', - icon: 'SuccessFilled', + icon: 'SuccessFilled' }, { name: '闂閮ㄥ垎瀹℃牳', value: 0, type: 'success', - icon: 'SuccessFilled', + icon: 'SuccessFilled' }, { name: '闂鍏ㄩ儴瀹℃牳', value: 0, type: 'success', - icon: 'SuccessFilled', + icon: 'SuccessFilled' }, { name: '鏈暣鏀�', value: 0, type: 'info', - icon: 'WarningFilled', + icon: 'WarningFilled' }, { name: '鏁存敼鏈鏍�', value: 0, type: 'info', - icon: 'WarningFilled', + icon: 'WarningFilled' }, { name: '鏁存敼閮ㄥ垎瀹℃牳', value: 0, type: 'warning', - icon: 'WarningFilled', + icon: 'WarningFilled' }, { name: '鏁存敼鍏ㄩ儴瀹℃牳', value: 0, type: 'warning', - icon: 'WarningFilled', - }, + icon: 'WarningFilled' + } ]; this.subtasks.forEach((s) => { @@ -158,16 +222,43 @@ }); return _summary; - }, + } }, methods: { + // 鎵撳紑璁惧鍥� + openDeviceShowDialog() { + this.deviceShowDialog = true; + this.$nextTick(() => { + this.$refs.deviceShowRef.init(this.curSubtask.data.scene); + }); + }, + // 鍏抽棴璁惧鍥惧脊绐� + beforeDeviceShowDialogclose(done) { + // this.deviceShowDialog = false; + done(); + }, + // 鍏抽棴浠绘剰鍥剧墖寮圭獥 + beforeAnyPhotoDialogclose() { + this.anyPhotoDialog = false; + }, + handleCloseCheckAnyPhono() { + this.beforeAnyPhotoDialogclose(); + }, + proAddOrUpdDialogClose() { + this.proAddOrUpdDialogVisible = false; + }, //鏌ヨ瀛愪换鍔$粺璁′俊鎭� search(formSearch) { + this.topTask = formSearch.topTask; this.sideLoading = true; this.mainLoading = true; this.curProList = []; this.curSubtask = {}; - taskApi.getSubtaskSummary(formSearch).then((res) => { + const param = { + topTaskId: formSearch.topTask.tguid, + sceneTypeId: formSearch.sceneTypeId + }; + taskApi.getSubtaskSummary(param).then((res) => { const list = []; res.forEach((s) => { const t = this.getSubtaskType(s); @@ -175,7 +266,7 @@ type: t, title: s.stName, categoly: s.stPlanTime.split('T')[0], - data: s, + data: s }); }); this.subtasks = list; @@ -188,19 +279,39 @@ //鑾峰彇浠诲姟闂鐨勫鏍告儏鍐� getSubtaskType(s) { let type = 0; + // 鏃犻棶棰� if (s.proNum == 0) { - type = 2; - } else if (s.proCheckedNum == 0) { type = 0; - } else if (s.proCheckedNum < s.proNum) { + } + // 闂鏈鏍� + else if (s.proCheckedNum == 0) { type = 1; - } else { + } + // 闂閮ㄥ垎瀹℃牳 + else if (s.proCheckedNum < s.proNum) { type = 2; + } + // 鏈暣鏀� + else if (s.changeNum < s.proNum) { + type = 3; + } + // 鏁存敼鏈鏍� + else if (s.changeCheckedNum == 0) { + type = 4; + } + // 鏁存敼閮ㄥ垎瀹℃牳 + else if (s.changeCheckedNum < s.changeNum) { + type = 5; + } + // 瀹屽叏瀹℃牳 + else { + type = 6; } return type; }, //鐐瑰嚮宸︿晶鑿滃崟浠诲姟浜嬩欢 chooseSubtask(s) { + // this.currInsGuid = s.data.insGuid this.sideLoading = false; this.mainLoading = true; // const controller = new AbortController(); @@ -214,12 +325,48 @@ this.mainLoading = false; }); }, - updateSubtask() { + // 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹� + updateSubtask(refresh = true) { this.curSubtask.data.proCheckedNum++; this.curSubtask.type = this.getSubtaskType(this.curSubtask.data); + if (refresh) { + this.refreshCurrSubtask(); + } + }, + onProSubmited(isOk) { + this.proAddOrUpdDialogClose(); + if (!isOk) { + return; + } + this.updateSubtask(); + }, + newProSubmit(isOk) { + this.proAddOrUpdDialogVisible = false; + if (!isOk) { + return; + } + this.refreshCurrSubtask(); + }, + // 鍒锋柊褰撳墠閫変腑瀛愪换鍔� + refreshCurrSubtask() { + this.compProblemCardVisible = false; + this.sideLoading = false; + this.mainLoading = true; + setTimeout(() => { + taskApi + .getProBySubtask(this.curSubtask.data.stGuid) + .then((res) => { + this.curProList = res; + // this.curSubtask = s; + }) + .finally(() => { + this.mainLoading = false; + this.compProblemCardVisible = true; + }); + }, 150); } }, - mounted() {}, + mounted() {} }; </script> -- Gitblit v1.9.3