From 55d42cc7a2e6e21e1f8e06ca80089fe911914ac9 Mon Sep 17 00:00:00 2001 From: hcong <1050828145@qq.com> Date: 星期四, 21 十一月 2024 11:20:16 +0800 Subject: [PATCH] 弹窗,抽屉关闭的操作放在统一包裹组件中 --- src/views/fysp/check/ProCheck.vue | 156 +++++++++++++++++++++------------------------------ 1 files changed, 65 insertions(+), 91 deletions(-) diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue index 4be5761..7e96121 100644 --- a/src/views/fysp/check/ProCheck.vue +++ b/src/views/fysp/check/ProCheck.vue @@ -8,7 +8,11 @@ </SearchBar> </template> <template #aside> - <SideList :items="subtasks" :loading="sideLoading" @item-click="chooseSubtask"></SideList> + <SideList + :items="subtasks" + :loading="sideLoading" + @item-click="chooseSubtask" + ></SideList> </template> <template #main> <ToolBar @@ -17,74 +21,57 @@ :buttons="buttons" :loading="mainLoading" ></ToolBar> - <el-scrollbar v-if="curProList.length > 0" class="el-scrollbar" v-loading="mainLoading"> + <el-scrollbar + v-if="curProList.length > 0" + class="el-scrollbar" + v-loading="mainLoading" + > <CompProblemCard - v-if="compProblemCardVisible" :key="i" v-for="(p, i) in curProList" :index="i + 1" :problem="p" :subtask="curSubtask.data" :topTask="topTask" - @updated="onProSubmited" @submit="updateSubtask" ></CompProblemCard> </el-scrollbar> <el-empty v-else description="鏆傛棤璁板綍" v-loading="mainLoading" /> </template> </BaseContentLayout> - <el-dialog - v-model="proAddOrUpdDialogVisible" - :before-close="proAddOrUpdDialogClose" - width="80%" + <CompProblemAddOrUpd title="鏂板闂" - > - <CompProblemAddOrUpd - v-if="proAddOrUpdDialogVisible" - :subtask="curSubtask.data" - :topTask="topTask" - ref="compProblemAddOrUpdRef" - @submited="newProSubmit" - /> - </el-dialog> - <el-dialog - v-model="anyPhotoDialog" - :before-close="beforeAnyPhotoDialogclose" - width="80%" - title="浠绘剰鍥剧墖" - > - <ArbitraryPhoto - v-if="anyPhotoDialog" - :readonly="true" - :subtask="curSubtask.data" - ref="arbitraryPhotoRef" - @selectByAnyPhonoEvent="handleCloseCheckAnyPhono" - > - </ArbitraryPhoto> - </el-dialog> - <el-drawer - :direction="rtl" - v-model="deviceShowDialog" - :before-close="beforeDeviceShowDialogclose" + v-if="proAddOrUpdDialogVisible" + v-model:visible="proAddOrUpdDialogVisible" + :subtask="curSubtask.data" + :topTask="topTask" + ref="compProblemAddOrUpdRef" + @cancel="onAddProCanceled" + @submit="updateSubtask" + /> + <ArbitraryPhoto + v-if="anyPhotoDialog" + v-model:dialog-visible="anyPhotoDialog" + :readonly="true" + :subtask="curSubtask.data" + ref="arbitraryPhotoRef" + ></ArbitraryPhoto> + <CompDeviceShowTest title="璁炬柦璁惧" - size="65%" + v-model:visible="deviceShowDialog" + v-if="deviceShowDialog" + ref="deviceShowRef" > - <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef"> </CompDeviceShowTest> - </el-drawer> + </CompDeviceShowTest> </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 CompDeviceShow from './components/CompDeviceShow.vue'; - import CompProblemCard from './components/CompProblemCard.vue'; import CompSubTaskStatistic from './components/CompSubTaskStatistic.vue'; -import CompProRecent from './components/CompProRecent.vue'; import CompDeviceShowTest from './components/CompDeviceShowTest.vue'; export default { components: { @@ -92,12 +79,10 @@ CompSubTaskStatistic, CompProblemAddOrUpd, ArbitraryPhoto, - CompDeviceShowTest, - CompProRecent + CompDeviceShowTest }, data() { return { - compProblemCardVisible: true, // 璁惧鍥� deviceShowDialog: false, // 浠绘剰鍥� @@ -126,7 +111,7 @@ } }, { - name: '浠绘剰鍥剧墖', + name: '鍦烘櫙鍥剧墖', color: 'warning', click: () => { this.anyPhotoDialog = true; @@ -138,12 +123,12 @@ click: () => { this.openDeviceShowDialog(); } - }, - { - name: '鎵归噺瀹℃牳', - color: 'primary', - click: () => {} } + // { + // name: '鎵归噺瀹℃牳', + // color: 'primary', + // click: () => {} + // } ] }; }, @@ -236,28 +221,18 @@ this.$refs.deviceShowRef.init(this.curSubtask.data.scene); }); }, - // 鍏抽棴璁惧鍥惧脊绐� - beforeDeviceShowDialogclose() { - this.deviceShowDialog = false; - }, - // 鍏抽棴浠绘剰鍥剧墖寮圭獥 - beforeAnyPhotoDialogclose() { - this.anyPhotoDialog = false; - }, - handleCloseCheckAnyPhono() { - this.beforeAnyPhotoDialogclose(); - }, - proAddOrUpdDialogClose() { - this.proAddOrUpdDialogVisible = false; - }, //鏌ヨ瀛愪换鍔$粺璁′俊鎭� search(formSearch) { - this.topTask = formSearch.obj; + 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); @@ -305,44 +280,43 @@ this.mainLoading = false; }); }, + onAddProCanceled() { + }, // 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹� - updateSubtask(isOk) { + updateSubtask(refresh = false) { this.curSubtask.data.proCheckedNum++; this.curSubtask.type = this.getSubtaskType(this.curSubtask.data); - if (!isOk) { - return; + if (this.proAddOrUpdDialogVisible) { + this.proAddOrUpdDialogVisible = false; } - this.refreshCurrSubtask(); - }, - onProSubmited(isOk) { - this.proAddOrUpdDialogClose(); - if (!isOk) { - return; - } - this.updateSubtask(isOk); - }, - newProSubmit(isOk) { - this.proAddOrUpdDialogVisible = false; - if (!isOk) { - return; - } - this.refreshCurrSubtask(); + this.refreshCurrSubtask(refresh); }, // 鍒锋柊褰撳墠閫変腑瀛愪换鍔� - refreshCurrSubtask() { - this.compProblemCardVisible = false; + refreshCurrSubtask(refresh) { this.sideLoading = false; this.mainLoading = true; setTimeout(() => { taskApi .getProBySubtask(this.curSubtask.data.stGuid) .then((res) => { - this.curProList = res; + if (refresh) { + this.curProList = res; + return; + } + const currProLen = this.curProList.length; + // 涓嶆敼鍙樻暟缁勫鍍忓紩鐢ㄧ殑鍓嶆彁涓嬮噸鏂拌祴鍊� + for (let index = 0; index < res.length; index++) { + const element = res[index]; + if (currProLen < index + 1) { + this.curProList.push(element); + } else { + this.curProList[index] = element; + } + } // this.curSubtask = s; }) .finally(() => { this.mainLoading = false; - this.compProblemCardVisible = true; }); }, 150); } -- Gitblit v1.9.3