From d8d68a0aee93073b5ec3195368ca0ed1076f66a2 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期三, 25 六月 2025 17:58:08 +0800
Subject: [PATCH] 对接评定接口和中台待办事项

---
 laboratory/src/views/deliveryAssessment/restsTask/components/detail.vue |  101 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 75 insertions(+), 26 deletions(-)

diff --git a/laboratory/src/views/deliveryAssessment/restsTask/components/detail.vue b/laboratory/src/views/deliveryAssessment/restsTask/components/detail.vue
index 8ac3fcd..eb3621e 100644
--- a/laboratory/src/views/deliveryAssessment/restsTask/components/detail.vue
+++ b/laboratory/src/views/deliveryAssessment/restsTask/components/detail.vue
@@ -3,6 +3,7 @@
     :visible.sync="dialogVisible"
     :title="type === 'add' ? '新增其他任务' : '其他任务详情'"
     width="70%"
+    @open='open'
     @close="handleClose"
   >
     <div class="content-box">
@@ -11,10 +12,10 @@
         <div>所属项目组</div>
       </div>
       <Table :data="criteriaList" :height="null">
-        <el-table-column prop="name" label="项目组名称" />
-        <el-table-column prop="name" label="项目负责人" />
-        <el-table-column prop="name" label="项目组成员" />
-        <el-table-column prop="name" label="创建时间" />
+        <el-table-column prop="teamName" label="项目组名称" />
+        <el-table-column prop="personCharge" label="项目负责人" />
+        <el-table-column prop="staffName" label="项目组成员" />
+        <el-table-column prop="createTime" label="创建时间" />
       </Table>
 
       <el-row>
@@ -37,14 +38,15 @@
               >
                 <el-option
                   v-for="member in memberList"
-                  :key="member.id"
-                  :label="member.name"
-                  :value="member.id"
+                  :key="member.userId"
+                  :label="member.nickName"
+                  :value="member.userId"
                 />
               </el-select>
             </el-form-item>
             <el-form-item label="任务内容" prop="taskContent" required>
               <el-input
+              type="textarea"
                 v-model="form.taskContent"
                 placeholder="请输入"
                 :disabled="type === 'detail'"
@@ -61,6 +63,7 @@
             </el-form-item>
             <el-form-item label="评定积分" prop="score" required>
               <el-input
+              type="number"
                 v-model="form.score"
                 placeholder="请输入"
                 :disabled="type === 'detail'"
@@ -70,10 +73,15 @@
         </el-col>
       </el-row>
     </div>
+    <template v-slot:footer>
+      <el-button v-if="type === 'add'" type="primary" @click="handleSave">确认</el-button>
+    </template>
   </el-dialog>
 </template>
 
 <script>
+import {getDetailByUserId, add, update, getDetailById} from '../service.js'
+import moment from 'moment'
 export default {
   name: "Detail",
   props: {
@@ -81,9 +89,9 @@
       type: Boolean,
       default: false,
     },
-    reportData: {
-      type: Object,
-      default: () => ({}),
+    id: {
+      type: String,
+      default: () => (''),
     },
     type: {
       type: String,
@@ -94,10 +102,12 @@
     return {
       dialogVisible: false,
       form: {
-        assignee: "",
+        id: '',
+        teamId: '',
+        assignee: "", // 实际为 testerId
         taskContent: "",
         taskTime: "",
-        score: "",
+        score: "", // 实际为 evaluateScore
       },
       rules: {
         assignee: [
@@ -122,22 +132,61 @@
       },
       immediate: true,
     },
-    reportData: {
-      handler(val) {
-        if (val) {
-          this.form = {
-            assignee: val.assignee || "",
-            taskContent: val.taskContent || "",
-            taskTime: val.taskTime || "",
-            score: val.score || "",
-          };
-          this.memberList = val.memberList || [];
-        }
-      },
-      immediate: true,
-    },
   },
   methods: {
+    open(){
+      getDetailByUserId().then(res=>{
+        this.criteriaList=[{...res}]
+        this.memberList=res.staffs.filter(item => item.roleType == '5') || []
+        this.form.teamId = res.id || ''
+      })
+      // 如果是详情,获取详情数据
+      if(this.type === 'detail' && this.id){
+        getDetailById({id: this.id}).then(res => {
+          if(res && res){
+            this.form = {
+              id: res.id || '',
+              teamId: res.teamId || '',
+              assignee: res.testerId || '',
+              taskContent: res.taskContent || '',
+              taskTime: res.taskTime || '',
+              score: res.evaluateScore || '',
+            }
+          }
+        })
+      } else if(this.type === 'add') {
+        // 新增时清空表单
+        this.form = {
+          id: '',
+          teamId: this.form.teamId,
+          assignee: '',
+          taskContent: '',
+          taskTime: '',
+          score: '',
+        }
+      }
+    },
+    handleSave() {
+      this.$refs.formRef.validate(valid => {
+        if (!valid) return;
+        const params = {
+          id: this.form.id,
+          teamId: this.form.teamId,
+          taskContent: this.form.taskContent,
+          taskTime: this.form.taskTime ? moment(this.form.taskTime).format('YYYY-MM-DD HH:mm:ss') : '',
+          testerId: this.form.assignee,
+          evaluateScore: this.form.score,
+        };
+        const api = this.type === 'add' ? add : update;
+        api(params).then(res => {
+          if(res && res.code === 200){
+            this.$message.success('保存成功');
+            this.$emit('close');
+            this.$emit('update:modelValue', false);
+          }
+        })
+      })
+    },
     handleClose() {
       this.$emit("update:modelValue", false);
     },

--
Gitblit v1.7.1