From 4fbdf4c6b13d19b9be54900b5dcff29e2ca7ef01 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 24 六月 2025 17:31:45 +0800 Subject: [PATCH] 巡查单据自动下载功能(待完成) --- src/views/fysp/task/TaskManage.vue | 83 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 74 insertions(+), 9 deletions(-) diff --git a/src/views/fysp/task/TaskManage.vue b/src/views/fysp/task/TaskManage.vue index a3e4f21..24129b6 100644 --- a/src/views/fysp/task/TaskManage.vue +++ b/src/views/fysp/task/TaskManage.vue @@ -41,6 +41,7 @@ <el-row> <el-col :span="curSubTaskList ? 16 : 24"> <CompMonitorPlan + ref="planRef" :task="curTask.data" @date-change="onDateChange" ></CompMonitorPlan> @@ -48,10 +49,12 @@ <el-col v-if="curSubTaskList" :span="8"> <CompSubTaskList create - :data="curSubTaskList" + v-model="curSubTaskList" :loading="subTaskLoading" + :create-loading="daytaskLoading" height="56vh" - @add="subTaskDrawer = true" + @add="handleAddSubtask" + @submit="handleSubtaskSubmit" ></CompSubTaskList> </el-col> </el-row> @@ -93,6 +96,7 @@ <CompDayTask :day-task="curDayTask" :mObjList="curMonitorObjList" + @submit="handleSubtaskSubmit" ></CompDayTask> </el-drawer> <el-dialog @@ -112,6 +116,9 @@ </template> <script> +import { unref } from 'vue'; +import { useCloned } from '@vueuse/core'; +import dayjs from 'dayjs'; import taskApi from '@/api/fysp/taskApi'; import CompMonitorObj from './components/CompMonitorObj.vue'; import CompMonitorPlan from './components/CompMonitorPlan.vue'; @@ -178,6 +185,8 @@ subTaskDrawer: false, // 褰撳墠閫夋嫨鐨勬棩浠诲姟 curDayTask: {}, + curDay: undefined, + daytaskLoading: false, // 褰撳墠閫夋嫨鐨勬棩浠诲姟涓嬬殑瀛愪换鍔� curSubTaskList: undefined, subTaskLoading: false, @@ -185,13 +194,24 @@ topTaskAddVisible: false }; }, + provide() { + return { + topTask: this.curTask + }; + }, computed: { // 鎬讳换鍔$姸鎬佺粺璁� taskStatus() { + let total = 0, + inspected = 0; + this.curMonitorObjList.forEach((obj) => { + total += parseInt(obj.monitornum); + inspected += obj.extension1 ? parseInt(obj.extension1) : 0; + }); return [ - { name: '鍦烘櫙鏁�', value: 100 }, - { name: '鏈贰鏌�', value: 0 }, - { name: '宸插贰鏌�', value: 0 } + { name: '鍦烘櫙鏁�', value: total }, + { name: '鏈贰鏌�', value: total - inspected }, + { name: '宸插贰鏌�', value: inspected } ]; } }, @@ -226,10 +246,10 @@ type = 0; break; case '姝e湪鎵ц': - type = 1; + type = 5; break; case '宸茬粨鏉�': - type = 2; + type = 6; break; default: type = 0; @@ -242,11 +262,11 @@ this.sideLoading = false; this.mainLoading = true; this.curSubTaskList = undefined; + this.curTask = task; taskApi .fetchMonitorObjectVersion(task.data.tguid) .then((res) => { this.curMonitorObjList = res; - this.curTask = task; }) .finally(() => { this.mainLoading = false; @@ -270,7 +290,8 @@ } }); }, - onDateChange(dayTask) { + onDateChange(dayTask, day) { + this.curDay = day; if (dayTask) { this.subTaskLoading = true; // this.subTaskDrawer = true; @@ -283,6 +304,7 @@ .finally(() => (this.subTaskLoading = false)); } else { this.curSubTaskList = []; + this.curDayTask = {}; } }, navToTaskCreate(value) { @@ -293,6 +315,49 @@ task: encodeURIComponent(JSON.stringify(value)) } }); + }, + handleSubtaskSubmit() { + this.subTaskLoading = true; + this.$refs.planRef + .fetchDayTasks() + .finally(() => (this.subTaskLoading = false)); + }, + handleAddSubtask() { + // 鍒ゆ柇褰撴棩鏄惁鏈夋棩浠诲姟锛岃嫢娌℃湁锛屽厛鍒涘缓鍦ㄨ烦杞瓙浠诲姟鍒涘缓鐣岄潰 + if (this.curDayTask.guid) { + this.subTaskDrawer = true; + } else { + const _dayTask = useCloned(this.curTask.data).cloned.value; + const taskDate = dayjs(this.curDay); + _dayTask.tsguid = _dayTask.tguid; + _dayTask.tguid = null; + _dayTask.levelnum = null; + _dayTask.name = `${taskDate.format('YYYY骞碝M鏈圖D鏃�')}${ + _dayTask.cityname + }${_dayTask.districtname}${_dayTask.typename}浠诲姟`; + _dayTask.starttime = taskDate.startOf('day').toDate(); + _dayTask.endtime = taskDate.endOf('day').millisecond(0).toDate(); + _dayTask.settime = dayjs().toDate(); + _dayTask.t1stverifytime = dayjs().toDate(); + _dayTask.runingstatus = '鏈墽琛�'; + this.daytaskLoading = true; + taskApi + .putTask(_dayTask) + .then((res) => { + this.curDayTask = { + guid: res.data.tguid, + tsGuid: res.data.tsguid, + changedTaskNum: 0, + check: true, + completeTaskNum: 0, + date: res.data.starttime, + totalTaskNum: 0 + }; + this.subTaskDrawer = true; + this.handleSubtaskSubmit(); + }) + .finally(() => (this.daytaskLoading = false)); + } } }, mounted() { -- Gitblit v1.9.3