Prechádzať zdrojové kódy

web端外包履职评价修改多次评价及多次评价之后的评价记录

coys 2 rokov pred
rodič
commit
74239236aa

+ 8 - 0
src/api/core/evalulateTask.js

@@ -24,4 +24,12 @@ export function editEvaluate(data) {
     data
   })
 }
+//评分详情
+export function getevaluateByid(id){
+  return request({
+    url: `/core/task/details/${id}`,
+    method: 'get',
+    
+  })
+}
 

+ 41 - 40
src/views/resumptionEvaluate/evaluate/editDialog.vue

@@ -87,10 +87,7 @@
             </el-col>
             <el-col :span="4">
               <el-form-item prop="buildTaskNow" label="立即生效:">
-                <el-checkbox
-                  
-                  v-model="formData.buildTaskNow"
-                  size="medium"
+                <el-checkbox v-model="formData.buildTaskNow" size="medium"
                   >勾选后当前周期开始生效</el-checkbox
                 >
               </el-form-item>
@@ -138,7 +135,11 @@ import * as api from "@/api/resumption/plan";
 
 import { findAllRole } from "@/api/system/role";
 import DialogSelect from "./addEvaluate.vue";
-import { addEvaluate, getEvaluateById ,editEvaluate} from "@/api/resumption/outsourcing.js";
+import {
+  addEvaluate,
+  getEvaluateById,
+  editEvaluate,
+} from "@/api/resumption/outsourcing.js";
 
 export default {
   dicts: ["evaluate_cycle", "sys_org_type"],
@@ -153,7 +154,13 @@ export default {
       orgType: null,
       roleNames: null,
 
-      tableData: [],
+      tableData: [
+        {
+          contentType: "1",
+          code: 0,
+          content: "被评价外包机构名称",
+        },
+      ],
       id: null,
       isShow: false,
       formData: {},
@@ -166,7 +173,6 @@ export default {
         evaluateCycle: [{ required: true, message: "请选择评价周期" }],
         planStatus: [{ required: true, message: "请选择计划状态" }],
       },
-     
     };
   },
   props: {
@@ -198,24 +204,9 @@ export default {
           break;
       }
     },
-    reset() {
-      return {
-        planName: null,
-        planType: null,
-        evaluateCycle: null,
-        planStatus: null,
-        orgType: null,
-        roleNames: null,
-
-        tableData: [],
-
-        buildTaskNow: false,
-      };
-    },
-
-    getRolesByOrg(falg='') {
-      if(falg){
 
+    getRolesByOrg(falg = "") {
+      if (falg) {
         this.formData.roleIds = [];
       }
       if (this.formData.orgType != null) {
@@ -229,40 +220,50 @@ export default {
       }
     },
 
-   
     onSelect(form) {
-      console.log(form);
       let isAdd = false;
+      let falg = false;
       this.tableData?.forEach((item) => {
         if (item.uid == form.uid) {
           Object.assign(item, form);
         } else {
           isAdd = true;
         }
+        if (item.code == form.code) {
+          falg = true;
+        }
       });
+      if (falg) {
+        return this.$message.error("编号重复请修改");
+      }
       if (isAdd || this.tableData.length == 0) {
         this.tableData.push(form);
       }
       console.log(this.tableData);
     },
     onOrgTypeChanged() {
-      
       this.getRolesByOrg(1);
     },
     async show(id = "", other = {}) {
       this.id = id;
-      this.tableData = [];
+      this.tableData = [
+        {
+          contentType: "1",
+          code: 0,
+          content: "被评价外包机构名称",
+        },
+      ];
 
       // await this.refresh(id, other);
 
       if (id) {
         await getEvaluateById(id).then((res) => {
-          let { code, msg ,data} = res;
+          let { code, msg, data } = res;
           if (code == 200) {
-            Object.assign(this.formData,data)
-            this.getRolesByOrg()
-            this.tableData=data.coreEvaluateContentList
-            delete this.formData.coreEvaluateContentList
+            Object.assign(this.formData, data);
+            this.getRolesByOrg();
+            this.tableData = data.coreEvaluateContentList;
+            delete this.formData.coreEvaluateContentList;
           } else {
             this.$message.error(msg);
           }
@@ -296,29 +297,29 @@ export default {
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
         if (isValidate) {
-          if(this.tableData.length==0){
-            return this.$message.error(
-              "评价内容项,不能为空"
-            );
+          if (this.tableData.length == 0) {
+            return this.$message.error("评价内容项,不能为空");
           }
           if (falg) {
             return this.$message.error(
               "评价内容所有项,至少有一项评价类型为打分"
             );
           }
+
           let obj = {
             ...this.formData,
             coreEvaluateContentList: this.tableData,
           };
+          
           let falg = true;
           this.tableData.forEach((item) => {
             if (item.contentType == "2") {
               falg = false;
             }
           });
-          if(this.formData.id){
+          if (this.formData.id) {
             //编辑
-            
+
             editEvaluate(obj).then((res) => {
               let { code, msg } = res;
               if (code == 200) {
@@ -329,7 +330,7 @@ export default {
                 this.$message.error(msg);
               }
             });
-          }else{
+          } else {
             //新增
             addEvaluate(obj).then((res) => {
               let { code, msg } = res;

+ 122 - 44
src/views/resumptionEvaluate/evaluatePlan/editPlanEvaluate.vue

@@ -2,7 +2,7 @@
   <div class="rule-type">
     <DialogCom
       @colse="onHide"
-      :title="`外包评价${isEvaluate ? '查看' : '评价'}`"
+      :title="`外包评价${isEvaluate == 1 ? '查看' : ''}`"
       :visible.sync="isShow"
       width="1500px"
     >
@@ -35,23 +35,11 @@
           </el-row>
           <el-row>
             <el-col :span="8">
-              <el-form-item label="评价人:">
-                {{ formData.evaluateBy }}
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="评价时间:">
-                {{ formData.completeTime }}
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
               <el-form-item label="状态:">
                 {{ formData.status | filterStatus }}
               </el-form-item>
             </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24">
+            <el-col :span="8">
               <el-form-item label="评价周期:">
                 {{ formData.evaluateCycle }}
               </el-form-item>
@@ -62,10 +50,12 @@
         <!-- tableData -->
         <div class="line_box">
           <div class="line"></div>
-          <div class="titleEvaluate">评价内容</div>
+          <div class="titleEvaluate">
+            {{ isEvaluate == 1 ? "评价记录" : "评价内容" }}
+          </div>
         </div>
 
-        <el-form >
+        <el-form v-if="isEvaluate == 0">
           <el-row v-for="(item, index) in tableData" :key="item.id">
             <el-col :span="24">
               <el-form-item
@@ -80,7 +70,7 @@
                 <el-input
                   type="textarea"
                   :rows="2"
-                  :disabled="isEvaluate=='1'"
+                  :disabled="isEvaluate == '1'"
                   placeholder="请输入内容"
                   v-model="item.score"
                 >
@@ -92,7 +82,6 @@
               <el-form-item label=" ">
                 <el-rate
                   :max="10"
-                  :disabled="isEvaluate=='1'"
                   v-model="item.score"
                   text-color="#ff9900"
                   show-score
@@ -102,11 +91,63 @@
             </el-col>
           </el-row>
         </el-form>
+        <div v-else>
+          <el-form v-for="(item, index) in tableDataContentVOS" :key="item.id">
+            <el-card class="box-card">
+              <el-row>
+                <el-col :span="12">
+                  <el-form-item label="评价时间"
+                    >{{ item.completeTime }}
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="评价人"
+                    >{{ item.evaluateBy }}
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row
+                v-for="sonItem in item.coreEvaluateTaskContentList"
+                :key="sonItem.code"
+              >
+                <el-col :span="24">
+                  <el-form-item
+                    class="formItemTitle"
+                    :label="`${sonItem.code}.${sonItem.content}`"
+                  >
+                  </el-form-item>
+                </el-col>
+                <!-- 文本 -->
+                <el-col :span="24" v-if="sonItem.contentType == 1">
+                  <el-form-item label=" ">
+                    <span class="scoreText">
+                      {{ sonItem.score }}
+                    </span>
+                  </el-form-item>
+                </el-col>
+                <!-- 评分 -->
+                <el-col :span="24" v-else>
+                  <el-form-item label=" ">
+                    <el-rate
+                      :max="10"
+                      v-model="sonItem.score"
+                      text-color="#ff9900"
+                      show-score
+                      score-template="{value}星"
+                    ></el-rate>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-card>
+          </el-form>
+        </div>
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">取消</el-button>
-        <el-button type="primary" @click="onSubmit" v-if="isEvaluate=='0'">确定</el-button>
+        <el-button @click="onHide">关闭</el-button>
+        <el-button type="primary" @click="onSubmit" v-if="isEvaluate == '0'"
+          >确定</el-button
+        >
       </div>
     </DialogCom>
   </div>
@@ -114,12 +155,17 @@
 
 <script>
 import { mapGetters } from "vuex";
-import { getEvaluateById,editEvaluate } from "@/api/core/evalulateTask.js";
+import {
+  getEvaluateById,
+  editEvaluate,
+  getevaluateByid,
+} from "@/api/core/evalulateTask.js";
 export default {
   data() {
     return {
       isEvaluate: "",
       tableData: [],
+      tableDataContentVOS: [],
       id: null,
       isShow: false,
       formData: {},
@@ -139,7 +185,7 @@ export default {
           return "已完成";
           break;
         case "3":
-          return "已期";
+          return "已期";
           break;
       }
     },
@@ -153,21 +199,41 @@ export default {
     async show(id = "", isEvaluate) {
       this.id = id;
       this.tableData = [];
-      this.isEvaluate = isEvaluate+'';
+      this.tableDataContentVOS = [];
+      this.isEvaluate = isEvaluate + "";
 
       // isEvaluate 1 查看 0 评价
-
-      await getEvaluateById(id).then((res) => {
-        let { code, msg, data } = res;
-        if (code == 200) {
-          Object.assign(this.formData, data);
-
-          this.tableData = data.coreEvaluateContentList;
-          delete this.formData.coreEvaluateContentList;
-        } else {
-          this.$message.error(msg);
-        }
-      });
+      if (isEvaluate == 1) {
+        await getevaluateByid(id).then((res) => {
+          let { code, msg, data } = res;
+          if (code == 200) {
+            Object.assign(this.formData, data);
+            this.tableDataContentVOS = data.coreEvaluateTaskUserContentVOS;
+            this.tableDataContentVOS.forEach((item) => {
+              item.coreEvaluateTaskContentList.forEach((i) => {
+                if (i.contentType == 2) {
+                  i.score = +i.score;
+                }
+              });
+            });
+            console.log(this.tableDataContentVOS);
+            delete this.formData.coreEvaluateTaskUserContentVOS;
+          } else {
+            this.$message.error(msg);
+          }
+        });
+      } else {
+        await getEvaluateById(id).then((res) => {
+          let { code, msg, data } = res;
+          if (code == 200) {
+            Object.assign(this.formData, data);
+            this.tableData = data.coreEvaluateContentList;
+            delete this.formData.coreEvaluateContentList;
+          } else {
+            this.$message.error(msg);
+          }
+        });
+      }
 
       this.isShow = true;
     },
@@ -189,21 +255,25 @@ export default {
           falg = true;
         }
       });
-      if(falg){
-        return this.$message.error('存在未评价的项,请检查!')
+      if (falg) {
+        return this.$message.error("存在未评价的项,请检查!");
       }
       let obj = {
         id: this.formData.id,
-        coreEvaluateTaskContentList: this.tableData,
+        coreEvaluateTaskContentList: JSON.parse(JSON.stringify(this.tableData)),
       };
-      editEvaluate(obj).then(res=>{
-        let {code}=res
-        if(code==200){
+      obj.coreEvaluateTaskContentList.forEach((item) => {
+        item.score = item.score + "";
+      });
 
-          this.$emit('success')
-          this.onHide()
+      editEvaluate(obj).then((res) => {
+        let { code } = res;
+        if (code == 200) {
+          this.$emit("success");
+          this.$message.success('评价成功')
+          this.onHide();
         }
-      })
+      });
     },
   },
 };
@@ -219,6 +289,7 @@ export default {
 .line_box {
   display: flex;
   height: 20px;
+  margin-bottom: 20px;
   .titleEvaluate {
     color: #008cd6;
     vertical-align: middle;
@@ -236,6 +307,13 @@ export default {
     color: black;
   }
 }
+.box-card {
+  margin-bottom: 20px;
+  .scoreText {
+    font-size: 20px !important;
+  }
+}
+
 .form-item-comment {
   font-size: 12px;
   color: #999;

+ 1 - 0
src/views/resumptionEvaluate/evaluatePlan/index.vue

@@ -215,6 +215,7 @@ export default {
     },
     //判断是否能评价
     isEvaluateHandler(row){
+     
       let falg=false
       row.roleName?.split(',').forEach(item => {
         this.roleList.forEach(i=>{