From 7e1d38f401555ac635c9ce10f63902d9a4c402e0 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 14 十月 2024 17:15:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'supervisionVue/hc-procheck-1014'

---
 src/views/fysp/check/components/CompProblemCard.vue |  181 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 153 insertions(+), 28 deletions(-)

diff --git a/src/views/fysp/check/components/CompProblemCard.vue b/src/views/fysp/check/components/CompProblemCard.vue
index 7423ba5..04947c6 100644
--- a/src/views/fysp/check/components/CompProblemCard.vue
+++ b/src/views/fysp/check/components/CompProblemCard.vue
@@ -59,15 +59,16 @@
     <el-row v-if="true" style="margin-top: 16px">
       <el-col :span="12">
         <el-row justify="start" class="btn-group">
-          <el-button type="success" size="small" @click="updatePro" plain>淇敼闂</el-button>
+          <el-button type="success" size="small" @click="updatePro" plain>闂鏇存</el-button>
           <el-button
             type="primary"
             size="small"
             @click="updateChange"
             plain
             :disabled="!proStatus.changeable"
-            >淇敼鏁存敼</el-button
+            >鏁存敼妫�楠�</el-button
           >
+          <el-button type="info" size="small" @click="currProRecent" plain>闂澶嶇幇</el-button>
         </el-row>
       </el-col>
       <el-col :span="12">
@@ -85,19 +86,84 @@
       </el-col>
     </el-row>
   </el-card>
+  <el-dialog v-model="proAddOrUpdDialogVisible" :before-close="proAddOrUpdDialogClose" width="80%">
+    <CompProblemAddOrUpd
+      v-if="proAddOrUpdDialogVisible"
+      :problem="deepCopyPro"
+      :subtask="deepCopySubtask"
+      :topTask="deepCopyTopTask"
+      ref="compProblemAddOrUpdRef"
+      @submited="onProSubmited"
+    />
+  </el-dialog>
+  <el-dialog
+    width="80%"
+    title="鏁存敼妫�楠�"
+    v-model="changeEditDialogVisible"
+    :before-close="changeEditDialogClose"
+  >
+    <ComChangeEdit
+      v-if="changeEditDialogVisible"
+      :problemId="problem.guid"
+      :oldChangeFileList="problem.mediafileList"
+      :subtask="subtask"
+      :month="month"
+      @submited="onChangeSubmited"
+    />
+  </el-dialog>
+  <!-- 闂澶嶇幇 -->
+  <el-dialog
+    width="80%"
+    title="闂澶嶇幇"
+    v-model="proRecentDialogVisible"
+    :before-close="proRecentDialogClose"
+  >
+    <CompProRecent 
+      v-if="proRecentDialogVisible" 
+      :subtask="subtask"
+      :topTask="topTask"
+      :problem="problem"/>
+  </el-dialog>
 </template>
 
 <script>
-import ProCheckProxy from '../ProCheckProxy'
-import problemApi from '@/api/fysp/problemApi'
-import { useMessageBoxTip } from '@/composables/messageBox'
-
+import ProCheckProxy from '../ProCheckProxy';
+import problemApi from '@/api/fysp/problemApi';
+import { useMessageBoxTip } from '@/composables/messageBox';
+import CompProblemAddOrUpd from './CompProblemAddOrUpd.vue';
+import ComChangeEdit from './ComChangeEdit.vue';
+import CompProRecent from './CompProRecent.vue';
+import { useCloned } from '@vueuse/core';
 export default {
+  components: {
+    CompProblemAddOrUpd,
+    ComChangeEdit,
+    CompProRecent
+  },
   props: {
+    // 鍙閫夐」
+    readonly: {
+      type: Boolean,
+      default: () => {
+        return false;
+      }
+    },
+    topTask: {
+      type: Object,
+      default: () => {}
+    },
+    subtask: {
+      type: Object,
+      default: () => {}
+    },
+    insGuid: {
+      type: String,
+      default: () => ''
+    },
     problem: {
       type: Object,
       default: () => {
-        return {}
+        return {};
       }
     },
     index: {
@@ -105,9 +171,17 @@
       default: 1
     }
   },
-  emits:['submit'],
+  emits: ['submit'],
   data() {
     return {
+      // 杩戞湡鎯呭喌
+      proRecentDialogVisible: false,
+      month: -1,
+      deepCopyPro: {},
+      deepCopySubtask: {},
+      deepCopyTopTask: {},
+      proAddOrUpdDialogVisible: false,
+      changeEditDialogVisible: false,
       // 瀹℃牳姝ラ
       steps: [
         {
@@ -123,12 +197,16 @@
           aft: '鏁存敼宸插鏍�'
         }
       ]
-    }
+    };
+  },
+  mounted() {
+    console.log(this.topTask);
+    
   },
   computed: {
     // 闂鍚嶇О
     title() {
-      return this.problem.problemname
+      return this.problem.problemname;
     },
     // 闂鎻忚堪
     descriptions() {
@@ -141,11 +219,11 @@
           name: '鎻愪氦鏃堕棿',
           value: this.problem.time.replace('T', ' ').split('.')[0]
         }
-      ]
+      ];
     },
     // 闂鍥剧墖
     pics() {
-      return ProCheckProxy.proPics(this.problem)
+      return ProCheckProxy.proPics(this.problem);
     },
     /**
      * 鑾峰彇褰撳墠闂瀹℃牳姝ラ
@@ -153,46 +231,93 @@
     getSteps() {
       return this.steps.map((v, i) => {
         if (i >= this.proStatus.index) {
-          return v.bef
+          return v.bef;
         } else {
-          return v.aft
+          return v.aft;
         }
-      })
+      });
     },
     // 闂鐘舵��
     proStatus() {
-      return ProCheckProxy.proStatusMap(this.problem.extension3)
+      return ProCheckProxy.proStatusMap(this.problem.extension3);
     }
   },
   methods: {
+    // 杩戞湡鎯呭喌寮圭獥鍏抽棴
+    proRecentDialogClose() {
+      this.proRecentDialogVisible = false;
+    },
+    newProblem() {
+      this.proAddOrUpdDialogVisible = true;
+    },
+    onProSubmited(isOk) {
+      this.$emit('updated', isOk);
+      this.proAddOrUpdDialogVisible = false;
+    },
+    onChangeSubmited(isOk) {
+      console.log("zhenggaisubmit");
+      
+      this.$emit('updated', isOk);
+      this.changeEditDialogVisible = false;
+    },
+    proAddOrUpdDialogClose() {
+      this.proAddOrUpdDialogVisible = false;
+    },
+    changeEditDialogClose() {
+      this.changeEditDialogVisible = false;
+    },
     deletePro() {},
     rejectPro() {
-      this.checkPro(false)
+      this.checkPro(false);
     },
     passPro() {
-      this.checkPro(true)
+      this.checkPro(true);
     },
     checkPro(pass) {
-      const pro = this.problem
-      let doneMsg = pass ? '閫氳繃' : '椹冲洖'
+      const pro = this.problem;
+      let doneMsg = pass ? '閫氳繃' : '椹冲洖';
       useMessageBoxTip({
         confirmMsg: `纭鏄惁${doneMsg}璇ラ棶棰橈紵`,
         confirmTitle: '闂瀹℃牳',
         onConfirm: () => {
-          const { status, action } = ProCheckProxy.proNextStatus(pro.extension3, pass)
+          const { status, action } = ProCheckProxy.proNextStatus(pro.extension3, pass);
           return problemApi.checkProblem({ pId: pro.guid, action: action }).then((res) => {
             if (res.success) {
-              pro.extension3 = status
-              this.$emit('submit')
+              pro.extension3 = status;
+              this.$emit('submit');
             }
-          })
+          });
         }
-      })
+      });
     },
-    updatePro() {},
-    updateChange() {}
+    updatePro() {
+      console.log("clone", this.topTask);
+      
+      this.deepCopyPro = useCloned(this.problem).cloned.value;
+      this.deepCopySubtask = useCloned(this.subtask).cloned.value;
+      this.deepCopyTopTask = useCloned(this.topTask).cloned.value;
+      this.$nextTick(() => {
+        this.proAddOrUpdDialogVisible = true;
+      });
+    },
+    updateChange() {
+      // 浣跨敤Date瀵硅薄瑙f瀽鏃ユ湡瀛楃涓�
+      var date = new Date(this.subtask.subtask.planstarttime);
+      // 鑾峰彇鏈堜唤淇℃伅锛屾湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠ラ渶瑕佸姞1
+      this.month = date.getMonth() + 1;
+      if (String(this.month).length == 1) {
+        this.month = `0${this.month}`;
+      }
+      // 鑾峰彇骞翠唤
+      var year = date.getFullYear();
+      this.month = `${year}-${this.month}`;
+      this.changeEditDialogVisible = true;
+    },
+    currProRecent() {
+      this.proRecentDialogVisible = true;
+    }
   }
-}
+};
 </script>
 <style scoped>
 .layout {

--
Gitblit v1.9.3