From 3d6addd2c0817b30bd328605cb048ca9698742a6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 28 二月 2025 16:50:17 +0800
Subject: [PATCH] 修复新建子任务时,未提前建立日任务的bug
---
src/views/fysp/check/ProCheck.vue | 157 +++++++++++++++++++++------------------------------
1 files changed, 65 insertions(+), 92 deletions(-)
diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue
index 7dc97a6..411065c 100644
--- a/src/views/fysp/check/ProCheck.vue
+++ b/src/views/fysp/check/ProCheck.vue
@@ -9,6 +9,7 @@
</template>
<template #aside>
<SideList
+ legend
:items="subtasks"
:loading="sideLoading"
@item-click="chooseSubtask"
@@ -26,36 +27,30 @@
class="el-scrollbar"
v-loading="mainLoading"
>
- <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>
+ <CompProblemCard
+ :key="i"
+ v-for="(p, i) in curProList"
+ :index="i + 1"
+ :problem="p"
+ :subtask="curSubtask.data"
+ :topTask="topTask"
+ @submit="updateSubtask"
+ @check="handleProblemCheck"
+ ></CompProblemCard>
</el-scrollbar>
- <el-empty v-else description="鏆傛棤璁板綍" v-loading="mainLoading" />
+ <el-empty v-else description="鏆傛棤闂" v-loading="mainLoading" />
</template>
</BaseContentLayout>
- <el-dialog
- v-model="proAddOrUpdDialogVisible"
- :before-close="proAddOrUpdDialogClose"
- width="50%"
+ <CompProblemAddOrUpd
title="鏂板闂"
- >
- <CompProblemAddOrUpd
- v-if="proAddOrUpdDialogVisible"
- :subtask="curSubtask.data"
- :topTask="topTask"
- ref="compProblemAddOrUpdRef"
- @submited="newProSubmit"
- />
- </el-dialog>
+ 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"
@@ -63,16 +58,13 @@
:subtask="curSubtask.data"
ref="arbitraryPhotoRef"
></ArbitraryPhoto>
- <el-drawer
- direction="ltr"
- v-model="deviceShowDialog"
- :before-close="beforeDeviceShowDialogclose"
+ <CompDeviceShowTest
title="璁炬柦璁惧"
- size="45%"
+ v-model:visible="deviceShowDialog"
+ v-if="deviceShowDialog"
+ ref="deviceShowRef"
>
- <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef">
- </CompDeviceShowTest>
- </el-drawer>
+ </CompDeviceShowTest>
</template>
<script>
@@ -93,7 +85,6 @@
},
data() {
return {
- compProblemCardVisible: true,
// 璁惧鍥�
deviceShowDialog: false,
// 浠绘剰鍥�
@@ -116,21 +107,23 @@
buttons: [
{
name: '鏂板闂',
- color: 'success',
+ // color: 'success',
+ color: 'primary',
click: () => {
this.proAddOrUpdDialogVisible = true;
}
},
{
name: '鍦烘櫙鍥剧墖',
- color: 'warning',
+ // color: 'warning',
+ color: 'primary',
click: () => {
this.anyPhotoDialog = true;
}
},
{
name: '璁炬柦璁惧',
- color: 'info',
+ color: 'primary',
click: () => {
this.openDeviceShowDialog();
}
@@ -232,21 +225,6 @@
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;
@@ -261,8 +239,9 @@
taskApi.getSubtaskSummary(param).then((res) => {
const list = [];
res.forEach((s) => {
- const t = this.getSubtaskType(s);
+ const t = ProCheckProxy.getSubtaskType(s);
list.push({
+ status: s.subtask.status,
type: t,
title: s.stName,
categoly: s.stPlanTime.split('T')[0],
@@ -275,20 +254,6 @@
this.mainLoading = false;
}
});
- },
- //鑾峰彇浠诲姟闂鐨勫鏍告儏鍐�
- getSubtaskType(s) {
- let type = 0;
- if (s.proNum == 0) {
- type = 2;
- } else if (s.proCheckedNum == 0) {
- type = 0;
- } else if (s.proCheckedNum < s.proNum) {
- type = 1;
- } else {
- type = 2;
- }
- return type;
},
//鐐瑰嚮宸︿晶鑿滃崟浠诲姟浜嬩欢
chooseSubtask(s) {
@@ -306,45 +271,53 @@
this.mainLoading = false;
});
},
+ onAddProCanceled() {},
// 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹�
- updateSubtask(refresh = true) {
+ updateSubtask(refresh = false) {
this.curSubtask.data.proCheckedNum++;
- this.curSubtask.type = this.getSubtaskType(this.curSubtask.data);
- if (refresh) {
- this.refreshCurrSubtask();
+ this.curSubtask.type = ProCheckProxy.getSubtaskType(this.curSubtask.data);
+ if (this.proAddOrUpdDialogVisible) {
+ this.proAddOrUpdDialogVisible = false;
}
- },
- onProSubmited(isOk) {
- this.proAddOrUpdDialogClose();
- if (!isOk) {
- return;
- }
- this.updateSubtask();
- },
- 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(() => {
+ this.mainLoading = true;
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);
+ }, 500);
+ },
+ // 闂瀹℃牳瀹屾垚鍚庯紝鏇存柊宸︿晶鍒楄〃瀵瑰簲瀛愪换鍔$姸鎬�
+ handleProblemCheck() {
+ const status = ProCheckProxy.calProStatus(this.curProList);
+ this.curSubtask.data.proNum = status.proNum;
+ this.curSubtask.data.proCheckedNum = status.proCheckedNum;
+ this.curSubtask.data.changeNum = status.changeNum;
+ this.curSubtask.data.changeCheckedNum = status.changeCheckedNum;
+ this.curSubtask.type = ProCheckProxy.getSubtaskType(this.curSubtask.data);
}
},
mounted() {}
--
Gitblit v1.9.3