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 |   66 ++++++++++++++++++++++++++++++--
 1 files changed, 61 insertions(+), 5 deletions(-)

diff --git a/src/views/fysp/task/TaskManage.vue b/src/views/fysp/task/TaskManage.vue
index 2e01f89..24129b6 100644
--- a/src/views/fysp/task/TaskManage.vue
+++ b/src/views/fysp/task/TaskManage.vue
@@ -51,8 +51,9 @@
                     create
                     v-model="curSubTaskList"
                     :loading="subTaskLoading"
+                    :create-loading="daytaskLoading"
                     height="56vh"
-                    @add="subTaskDrawer = true"
+                    @add="handleAddSubtask"
                     @submit="handleSubtaskSubmit"
                   ></CompSubTaskList>
                 </el-col>
@@ -115,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';
@@ -181,6 +185,8 @@
       subTaskDrawer: false,
       // 褰撳墠閫夋嫨鐨勬棩浠诲姟
       curDayTask: {},
+      curDay: undefined,
+      daytaskLoading: false,
       // 褰撳墠閫夋嫨鐨勬棩浠诲姟涓嬬殑瀛愪换鍔�
       curSubTaskList: undefined,
       subTaskLoading: false,
@@ -188,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 }
       ];
     }
   },
@@ -273,7 +290,8 @@
         }
       });
     },
-    onDateChange(dayTask) {
+    onDateChange(dayTask, day) {
+      this.curDay = day;
       if (dayTask) {
         this.subTaskLoading = true;
         // this.subTaskDrawer = true;
@@ -286,6 +304,7 @@
           .finally(() => (this.subTaskLoading = false));
       } else {
         this.curSubTaskList = [];
+        this.curDayTask = {};
       }
     },
     navToTaskCreate(value) {
@@ -302,6 +321,43 @@
       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