From 0cc01c2e0ca79fe901151b83d14eae32463d8f0a Mon Sep 17 00:00:00 2001
From: 15179599649 <zhangyiyao89@qq.com>
Date: Thu, 04 Jan 2024 17:30:19 +0800
Subject: [PATCH] '完善考核模块'

---
 src/api/hfiveget/index.js                    |   22 
 src/router/page/index.js                     |   26 +
 src/views/toAppraising/index.vue             |  136 +++-----
 src/views/examine/index.vue                  |   57 +--
 vue.config.js                                |    5 
 src/store/index.js                           |    4 
 src/views/Appraising/index.vue               |   92 +++-
 src/views/login/index.vue                    |    6 
 public/images/jqqd.png                       |    0 
 src/views/message/index.vue                  |   28 +
 src/views/Checkandassess/index.vue           |   22 
 src/views/toAppraising/toAppraisingfirst.vue |  241 +++++++++++++++
 src/views/toAppraising/toAppraisingtwo.vue   |  202 ++++++++++++
 src/views/layout/index.vue                   |    5 
 src/views/toexamine/index.vue                |   45 +-
 src/App.vue                                  |    1 
 src/views/discrimination/index.vue           |   17 
 17 files changed, 694 insertions(+), 215 deletions(-)

diff --git a/public/images/jqqd.png b/public/images/jqqd.png
new file mode 100644
index 0000000..8be1217
--- /dev/null
+++ b/public/images/jqqd.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 5f0b08a..e253ca3 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -45,4 +45,5 @@
     color: #a8a8a8;
   }
 }
+
 </style>
diff --git a/src/api/hfiveget/index.js b/src/api/hfiveget/index.js
index 9562d04..d03a253 100644
--- a/src/api/hfiveget/index.js
+++ b/src/api/hfiveget/index.js
@@ -25,8 +25,8 @@
 //登录
 export const Loginto = (params) => {
     return request({
-        url: "/api/blade-auth/oauth/token",
-        // url: '/api/blade-auth/oauth/token?tenantId=000000&username=' + params + '&password=21232f297a57a5a743894a0e4a801fc3&grant_type=password&scope=all&type=account',
+        // url: "/api/blade-auth/oauth/token",
+        url: '/api/blade-auth/oauth/token?tenantId=000000&username=' + params + '&password=94e8cde4612b3fd390677d42e7b22002&grant_type=password&scope=all&type=account',
         method: "post",
         apiKey: true,
         params: {
@@ -38,7 +38,8 @@
 // 考核任务列表
 export const assessmentTask = (params) => {
     return request({
-        url: "/api/assessment/assessmentTask/list",
+        // url: "/api/assessment/assessmentTask/list",
+        url: '/api/assessment/assessmentSetAssessor/listByAssessor',
         method: "get",
         apiKey: true,
         params: {
@@ -82,24 +83,23 @@
 };
 
 
-//进行评分提交
-export const assessmentScore = (params) => {
+//考核进行评分提交
+export const assessmentScore = (data) => {
     return request({
         url: "/api/assessment/assessmentScore/submit",
         method: "post",
         apiKey: true,
-        data: {
-            ...params,
-        },
+        data
     });
 };
 // 评优任务列表
 export const evaluateTask = (params) => {
     return request({
-        url: "/api/evaluate/evaluateTask/taskList/" + params.dept_id + "/" + params.user_id,
+        // url: "/api/evaluate/evaluateTask/taskList/" + params.dept_id + "/" + params.user_id,
+        url: "/api/evaluate/evaluateCandidateAssessor/listByAssessor",
         method: "get",
         apiKey: true,
-        data: {
+        params: {
             ...params,
         },
     });
@@ -120,7 +120,7 @@
 // 提交评优结果
 export const evaluateResult = (params) => {
     return request({
-        url: "/api/evaluate/evaluateResult/submit ",
+        url: "/api/evaluate/evaluateResult/submit",
         method: "post",
         apiKey: true,
         data: {
diff --git a/src/router/page/index.js b/src/router/page/index.js
index 7d0db20..1f9852a 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -27,22 +27,46 @@
     path: "/login",
     component: () => import("../../views/login/index.vue"),
   },
-
+  //留言
+  {
+    path: "/message",
+    component: () => import("../../views/message/index.vue"),
+  },
   //添加留言
   {
     path: "/Addmessage",
     component: () => import("../../views/Addmessage/index.vue"),
+  },
+  //评分
+  {
+    path: "/examine",
+    component: () => import("../../views/examine/index.vue"),
   },
   //去评分
   {
     path: "/toexamine",
     component: () => import("../../views/toexamine/index.vue"),
   },
+  // 评优页面
+  {
+    path: "/Appraising",
+    component: () => import("../../views/Appraising/index.vue"),
+  },
   // 去评优
   {
     path: "/toAppraising",
     component: () => import("../../views/toAppraising/index.vue"),
   },
+  //员工评优
+  {
+    path: '/toAppraisingfirst',
+    component: () => import("../../views/toAppraising/toAppraisingfirst.vue"),
+  },
+  //部门评优
+  {
+    path: '/toAppraisingtwo',
+    component: () => import("../../views/toAppraising/toAppraisingtwo.vue"),
+  }
 ];
 
 const router = new VueRouter({
diff --git a/src/store/index.js b/src/store/index.js
index 12e64bb..b0a5461 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -13,6 +13,7 @@
     },
     state: {
         overlayshow: false,
+        logintopath: '',
         infoone: { index: 0, num: 0 },
     },
     mutations: {
@@ -22,6 +23,9 @@
         reoverlayshow(state) {
             state.overlayshow = false
         },
+        updatelogintopath(state, router) {
+            state.logintopath = router
+        }
     },
     getters
 })
diff --git a/src/views/Appraising/index.vue b/src/views/Appraising/index.vue
index d9a7b44..0c8251d 100644
--- a/src/views/Appraising/index.vue
+++ b/src/views/Appraising/index.vue
@@ -9,16 +9,8 @@
         >{{item.isEvaluateOk==false?'待完成 ':'已完成'}}</span>
       </p>
       <p class="Tasktime">
-        <span>评优对象:</span>
-        <span>{{item.type == 0 ? "个人" :item.type == 1 ? "部门" :item.type == 2 ? "个人" : ""}}</span>
-      </p>
-      <p class="Tasktime">
         <span>评优级别:</span>
         <span>{{item.type == 0 ? "部门级评优" :item.type == 1 ? "部门评优" :item.type == 2 ? "公司评优" : ""}}</span>
-      </p>
-      <p class="Tasktime">
-        <span>评优类别:</span>
-        <span>{{item.taskType}}</span>
       </p>
       <p class="Tasktime">
         <span>截止日期:</span>
@@ -31,11 +23,13 @@
       <img src="images/notdata.png" />
       <p>暂无数据</p>
     </div>
+    <img src="images/outlogin.png" class="Addmessage" @click="OutLogin()" />
   </div>
 </template>
           
 <script>
 import { evaluateTask, evaluateTasktop } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
 export default {
   data() {
     return {
@@ -45,6 +39,10 @@
 
   computed: {},
   created() {
+    if (localStorage.getItem("tokensave") == null) {
+      this.$router.push("/discrimination");
+    }
+    store.commit("updatelogintopath", "/Appraising");
     if (localStorage.getItem("tokensave") != "111") {
       this.evaluateTaskData();
     }
@@ -54,42 +52,74 @@
     // 评优任务列表
     evaluateTaskData() {
       let data = {
-        user_id: localStorage.getItem("tokensave"),
-        dept_id: localStorage.getItem("dept_id")
+        userId: localStorage.getItem("tokensave")
+        // dept_id: localStorage.getItem("dept_id")
       };
-      evaluateTask(data).then(res => {
-        this.ViewData = res.data.data.records;
-        evaluateTasktop(data).then(res_new => {
-          res_new.data.data.records.forEach(item => {
-            item.type = 2;
-            this.ViewData.push(item);
-          });
-          this.ViewData.sort((a, b) => {
-            if (a.isEvaluateOk && !b.isEvaluateOk) {
-              return 1; // a排在b之前
-            } else if (!a.isEvaluateOk && b.isEvaluateOk) {
-              return -1; // b排在a之前
-            } else {
-              return 0; // 顺序不变
+      if (
+        localStorage.getItem("tokensave") != null &&
+        localStorage.getItem("tokensave") != "111"
+      ) {
+        evaluateTask(data).then(res => {
+          console.log(res.data.data.records);
+          this.ViewData = res.data.data.records;
+          this.ViewData = [
+            {
+              dept_name: "技术部",
+              taskName: "2024年元旦评优",
+              type: 0,
+              candidateCutoffTime: "2024-01-09",
+              isEvaluateOk: false,
+              RecommendData: []
+            },
+            {
+              dept_name: "技术部",
+              taskName: "2024年元旦评优",
+              type: 1,
+              evaluateCutoffTime: "2024-01-09",
+              isEvaluateOk: false,
+              RecommendData: []
             }
-          });
+          ];
         });
-      });
+      }
+    },
+    OutLogin() {
+      localStorage.clear();
+      setTimeout(() => {
+        this.$router.push({
+          path: "/discrimination"
+        });
+      }, 1000);
+      this.$toast.success("请重新登录");
     },
     toAppraising(item) {
-      this.$router.push({
-        path: "/toAppraising",
-        query: { info: JSON.stringify(item) }
-      });
+      if (item.type == 1) {
+        this.$router.push({
+          path: "/toAppraisingtwo",
+          query: { info: JSON.stringify(item) }
+        });
+      } else {
+        this.$router.push({
+          path: "/toAppraisingfirst",
+          query: { info: JSON.stringify(item) }
+        });
+      }
     }
   }
 };
 </script>
           
 <style scoped lang="scss">
+.Addmessage {
+  position: absolute;
+  right: 10px;
+  bottom: 110px;
+  width: 70px;
+  height: 70px;
+}
 .Appraising {
   padding: 20px;
-  height: 100%;
+  height: 100vh;
   overflow: auto;
   background: #f5f5f5;
   .view {
diff --git a/src/views/Checkandassess/index.vue b/src/views/Checkandassess/index.vue
index 038c9e5..24fb1be 100644
--- a/src/views/Checkandassess/index.vue
+++ b/src/views/Checkandassess/index.vue
@@ -1,25 +1,25 @@
 <!--查考核-->
 <template>
   <div class="Checkandassess">
-    <div class="view" v-for="(item,index) in ViewData" :key="index">
+    <div class="view" v-for="(item, index) in ViewData" :key="index">
       <p class="TaskNumber">
-        <span>考核任务编号:{{item.assessmentTaskVO.assessmentNo}}</span>
+        <span>考核任务编号:{{ item.assessmentTaskVO.assessmentNo }}</span>
         <span
-          :class="item.isAssessmentOk==true?'number':'evaluation'"
-        >{{item.isAssessmentOk==true?item.scoreVal:'评估中'}}</span>
+          :class="item.scoreVal !=0 ? 'number' : 'evaluation'"
+        >{{ item.scoreVal!=0 ? item.scoreVal : "评估中" }}</span>
       </p>
       <p class="Tasktime">
         <span>发起日期:</span>
-        <span>{{item.assessmentTaskVO.createTime}}</span>
+        <span>{{ item.assessmentTaskVO.createTime }}</span>
       </p>
     </div>
-    <div class="not" v-show="ViewData.length==0">
+    <div class="not" v-show="ViewData.length == 0">
       <img src="images/notdata.png" />
       <p>暂无数据</p>
     </div>
   </div>
 </template>
-          
+
 <script>
 import { listGroupByTask } from "@/api/hfiveget/index.js";
 export default {
@@ -35,7 +35,10 @@
   },
   methods: {
     getTaskData() {
-      if (localStorage.getItem("tokensave") != "111") {
+      if (
+        localStorage.getItem("tokensave") != null &&
+        localStorage.getItem("tokensave") != "111"
+      ) {
         let toUserId = localStorage.getItem("tokensave");
         listGroupByTask(toUserId).then(res => {
           this.ViewData = res.data.data;
@@ -45,7 +48,7 @@
   }
 };
 </script>
-          
+
 <style scoped lang="scss">
 .Checkandassess {
   padding: 20px;
@@ -101,4 +104,3 @@
   }
 }
 </style>
-          
\ No newline at end of file
diff --git a/src/views/discrimination/index.vue b/src/views/discrimination/index.vue
index a0e9757..3a96407 100644
--- a/src/views/discrimination/index.vue
+++ b/src/views/discrimination/index.vue
@@ -23,19 +23,24 @@
 </template>
       
 <script>
+import store from "../../store/index";
 export default {
   data() {
     return {
-      checkinis: true
+      checkinis: true,
+      topath: ""
     };
   },
 
   computed: {},
-  created() {
-    if (localStorage.getItem("tokensave") != null) {
-      this.$router.push("/");
-    }
-  },
+  // created() {
+  //   if (localStorage.getItem("tokensave") != null) {
+  //     this.$router.push("/");
+  //   }
+  // },
+  // beforeRouteEnter(to, from, next) {
+  //   // store.commit("updatelogintopath", from.path);
+  // },
   methods: {
     // 身份切换选择
     checkin(key) {
diff --git a/src/views/examine/index.vue b/src/views/examine/index.vue
index d79075a..d03fe7a 100644
--- a/src/views/examine/index.vue
+++ b/src/views/examine/index.vue
@@ -17,8 +17,8 @@
           <p class="TaskNumber">
             <span>考核任务编号:{{item.assessmentTaskVO.assessmentNo}}</span>
             <span
-              :class="item.assessmentScoreVO==null?'evaluation':'evaluationget'"
-            >{{item.assessmentScoreVO==null?'待完成':'已完成'}}</span>
+              :class="item.isAssessmentOk==false?'evaluation':'evaluationget'"
+            >{{item.isAssessmentOk==false?'待完成':'已完成'}}</span>
           </p>
           <p class="Tasktime">
             <span>考核种类:</span>
@@ -26,7 +26,7 @@
           </p>
           <p class="Tasktime">
             <span>考核对象:</span>
-            <span>{{item.userId!=undefined?"个人":"部门"}}</span>
+            <span>{{item.assessmentTaskVO.type==0?"个人":"部门"}}</span>
           </p>
           <p class="Tasktime">
             <span>截止日期:</span>
@@ -34,10 +34,10 @@
           </p>
           <p class="Tasktime">
             <span>考核任务:</span>
-            <span>对({{item.assessmentTaskVO.type==0?item.userName:item.deptName}})进行评分</span>
+            <span>对({{item.assessmentTaskVO.type==0?item.assessmentSetVO.deptName+':'+item.assessmentSetVO.userName+'':item.assessmentSetVO.deptName}})进行评分</span>
           </p>
-          <van-button @click="toexamine(item)" v-show="item.assessmentScoreVO==null">去评分</van-button>
-          <p class="read" v-show="item.assessmentScoreVO!=null" @click="toexamine(item)">查看详情</p>
+          <van-button @click="toexamine(item)" v-show="item.isAssessmentOk==false">去评分</van-button>
+          <p class="read" v-show="item.isAssessmentOk==true" @click="toexamine(item)">查看详情</p>
         </div>
       </div>
       <div v-show="tabbarindex==1">
@@ -60,6 +60,7 @@
   assessmentSetDept
 } from "@/api/hfiveget/index.js";
 import Checkandassess from "../Checkandassess/index.vue";
+import store from "../../store/index";
 export default {
   components: {
     Checkandassess
@@ -73,6 +74,10 @@
   mounted() {},
   computed: {},
   created() {
+    store.commit("updatelogintopath", "/examine");
+    if (localStorage.getItem("tokensave") == null) {
+      this.$router.push("/discrimination");
+    }
     this.assessmentTaskData();
   },
   methods: {
@@ -90,36 +95,16 @@
     },
     // 考核任务列表
     assessmentTaskData() {
-      if (localStorage.getItem("tokensave") != "111") {
+      if (
+        localStorage.getItem("tokensave") != null &&
+        localStorage.getItem("tokensave") != "111"
+      ) {
         let toUserId = localStorage.getItem("tokensave");
-        assessmentSet({ toUserId: toUserId }).then(res_peo => {
-          if (res_peo.data.data.records != undefined) {
-            res_peo.data.data.records.forEach(items => {
-              if (items.assessmentTaskVO !== null) {
-                this.ViewData.push(items);
-              }
-              if (items.assessmentScoreVO !== null) {
-                items.condition = 1;
-              } else {
-                items.condition = 0;
-              }
-            });
-          }
-          assessmentSetDept({ toUserId: toUserId }).then(res_dept => {
-            if (res_dept.data.data.records != undefined) {
-              res_dept.data.data.records.forEach(items_dept => {
-                if (items_dept.assessmentTaskVO !== null) {
-                  this.ViewData.push(items_dept);
-                }
-                if (items_dept.assessmentScoreVO !== null) {
-                  items_dept.condition = 1;
-                } else {
-                  items_dept.condition = 0;
-                }
-              });
-            }
-            this.ViewData.sort((a, b) => a.condition - b.condition);
-          });
+        assessmentTask({ userId: toUserId }).then(res => {
+          this.ViewData = res.data.data.records||[];
+          this.ViewData = this.ViewData.sort(
+            (a, b) => a.isAssessmentOk - b.isAssessmentOk
+          );
         });
       }
     },
@@ -172,7 +157,7 @@
 .Checkandassess {
   overflow: auto;
   box-sizing: border-box;
-  height: calc(100% - 60px);
+  height: calc(100vh - 60px);
   background: #f5f5f5;
   .view {
     width: 90%;
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index 72ebf07..c54ce8c 100644
--- a/src/views/layout/index.vue
+++ b/src/views/layout/index.vue
@@ -129,7 +129,10 @@
     if (localStorage.getItem("Appraising") != null) {
       this.comName = localStorage.getItem("Appraising");
     }
-    if (localStorage.getItem("tokensave") != "111") {
+    if (
+      localStorage.getItem("tokensave") != null &&
+      localStorage.getItem("tokensave") != "111"
+    ) {
       let toUserId = localStorage.getItem("tokensave");
       assessmentSet({ toUserId: toUserId }).then(res_peo => {
         if (res_peo.data.data.records != undefined) {
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 0392353..59f54b2 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -53,7 +53,7 @@
       const usernameyeno = /^1[3-9]\d{9}$/.test(key);
       if (usernameyeno == false) {
         this.$toast.fail("用户名错误");
-        return false;
+        return true;
       } else {
         return true;
       }
@@ -98,14 +98,14 @@
           phone: this.username,
           code: this.Code
         };
-        Loginto(Data).then(res => {
+        Loginto(Data.phone).then(res => {
           if (res.data.code == 400) {
             this.$toast.fail(res.data.msg);
           } else if (res.data.code == 500) {
             this.$toast.fail("登录失败");
           } else {
             setTimeout(() => {
-              this.$router.push("/");
+              this.$router.push(this.$store.state.logintopath);
             }, 1000);
             localStorage.setItem("Appraising", "examine");
             localStorage.setItem("tokensave", res.data.user_id); //用户id
diff --git a/src/views/message/index.vue b/src/views/message/index.vue
index 3065062..1d3e505 100644
--- a/src/views/message/index.vue
+++ b/src/views/message/index.vue
@@ -66,14 +66,18 @@
       <img src="images/notdata.png" />
       <p>暂无数据</p>
     </div>
-    <img src="images/outlogin.png" class="Addmessage_out" @click="OutLogin()" v-show="!isshownotnm" />
+    <img src="images/outlogin.png" class="Addmessage_out" @click="OutLogin()" />
     <img src="images/Addmessage.png" class="Addmessage" @click="Addmessage()" />
+    <div class="Stay">
+      <img src="images/jqqd.png" v-show="messageData.length!=0" />
+    </div>
   </div>
 </template>
   
 <script>
 import { endpoint, leaveWordslist, leaveWords } from "@/api/hfiveget/index.js";
 import { ImagePreview } from "vant";
+import store from "../../store/index";
 export default {
   data() {
     return {
@@ -85,9 +89,15 @@
 
   computed: {},
   created() {
+    if (localStorage.getItem("tokensave") == null) {
+      this.$router.push("/discrimination");
+    }
+    store.commit("updatelogintopath", "/message");
     this.isshownotnm =
       localStorage.getItem("tokensave") == "111" ? false : true;
-    this.getmessagelist();
+    if (localStorage.getItem("tokensave") != null) {
+      this.getmessagelist();
+    }
   },
   mounted() {},
   methods: {
@@ -96,14 +106,17 @@
         event.target.scrollHeight -
         event.target.scrollTop -
         event.target.clientHeight;
-      if (scrollBottom < 1) {
+      if (scrollBottom < 200) {
         this.pageswitch.size += 10;
+        this.current.current += 1;
+        this.getmessagelist(this.pageswitch);
       }
     },
     // 获取数据
     getmessagelist() {
       leaveWordslist(this.pageswitch).then(res => {
-        this.messageData = res.data.data.records;
+        const mergedArray = this.messageData.concat(res.data.data.records);
+        this.messageData = mergedArray;
         this.messageData.forEach((item, indexto) => {
           if (item.imageUrls != "") {
             item.imageUrls = item.imageUrls.split(",");
@@ -215,7 +228,12 @@
 .boxliuyan {
   height: 100%;
   overflow: auto;
-  padding-bottom: 200px;
+  .Stay {
+    width: 100%;
+    img {
+      width: 100%;
+    }
+  }
 }
 .Addmessage {
   position: absolute;
diff --git a/src/views/toAppraising/index.vue b/src/views/toAppraising/index.vue
index 1ef3b1a..885fcc2 100644
--- a/src/views/toAppraising/index.vue
+++ b/src/views/toAppraising/index.vue
@@ -2,26 +2,34 @@
 <template>
   <div class="toAppraising">
     <div class="Beingevaluated">
-      <p class="title">{{this.poepleinfo.taskName}}</p>
+      <p class="title">{{ this.poepleinfo.taskName }}</p>
       <p class="info">
         <span>所在部门:</span>
-        <span>{{ this.poepleinfo.dept_name}}</span>
-      </p>
-      <p class="info">
-        <span>评优类别:</span>
-        <span>{{this.poepleinfo.taskType}}</span>
+        <span>{{ this.poepleinfo.dept_name }}</span>
       </p>
       <p class="info">
         <span>评优级别:</span>
-        <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
-      </p>
-      <p class="info">
-        <span>评优标准:</span>
-        <span>{{this.poepleinfo.remark}}</span>
+        <span>
+          {{
+          this.poepleinfo.type == 0
+          ? "部门级评优"
+          : this.poepleinfo.type == 1
+          ? "部门评优"
+          : this.poepleinfo.type == 2
+          ? "公司评优"
+          : ""
+          }}
+        </span>
       </p>
       <p class="info">
         <span>截止日期:</span>
-        <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+        <span>
+          {{
+          this.poepleinfo.type == 0
+          ? this.poepleinfo.candidateCutoffTime
+          : this.poepleinfo.evaluateCutoffTime
+          }}
+        </span>
       </p>
       <div v-if="poepleinfo.isEvaluateOk == false">
         <div class="toin">
@@ -29,7 +37,7 @@
             v-model="currentValue"
             is-link
             readonly
-            :label="this.poepleinfo.type==1?'推荐部门':'推荐人员'"
+            :label="this.poepleinfo.type == 1 ? '推荐部门' : '推荐人员'"
             placeholder="请选择"
             @click="showPicker = true"
             class="van-hairline"
@@ -37,22 +45,26 @@
           <p class="Reasons">推荐理由:</p>
           <van-field
             class="van-borderline"
-            v-model="toData.remark"
+            v-model="remark"
             rows="5"
             type="textarea"
             placeholder="请输入推荐理由..."
           />
         </div>
-        <van-button type="primary" block @click="SubmitTo()" :disabled="disabledsubmit">提交</van-button>
+        <van-button type="primary" block @click="SubmitTo()" :disabled="disabledsubmit">确定</van-button>
       </div>
       <div class="showdetails" v-else>
         <p>
-          <span class="title">评选{{this.poepleinfo.type==1?"部门":"人"}}:</span>
-          <span class="fraction">{{toshow.name}}</span>
+          <span class="title">评选{{ this.poepleinfo.type == 1 ? "部门" : "人" }}:</span>
+          <span class="fraction">{{ toshow.name }}</span>
         </p>
         <p>
           <span class="title">评选说明:</span>
-          <span class="instruct">{{toshow.remark==''?'无':toshow.remark}}</span>
+          <span class="instruct">
+            {{
+            toshow.remark == "" ? "无" : toshow.remark
+            }}
+          </span>
         </p>
       </div>
     </div>
@@ -68,7 +80,7 @@
     </van-popup>
   </div>
 </template>
-          
+
 <script>
 import { Picker } from "vant";
 import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
@@ -79,8 +91,9 @@
       showPicker: false,
       pickerkey: "",
       currentValue: "", // 用于绑定选择结果的变量
-      columns: [], // 选择器的选项列表
-      poepleinfo: { type: -1 },
+      remark: "", //推荐理由
+      columns: ["张三", "李四", "王五"], // 选择器的选项列表
+      poepleinfo: {},
       toData: {},
       toshow: {},
       disabledsubmit: false
@@ -92,84 +105,46 @@
   },
   created() {
     this.poepleinfo = JSON.parse(this.$route.query.info);
-    this.toData.scoreUserId = localStorage.getItem("tokensave");
-    this.toData.evaluateTaskId = this.poepleinfo.id; //任务id
-    this.toData.type = this.poepleinfo.type;
-    this.poepleinfo.dept_name = localStorage.getItem("dept_name");
-    // 部门候选人评定进行选择
-    if (this.poepleinfo.type == 0 || this.poepleinfo.type == 2) {
-      if (this.poepleinfo.type == 0) {
-        let index = this.poepleinfo.selfCandidate.findIndex(
-          item => item.id === localStorage.getItem("tokensave")
-        );
-        if (index !== -1) {
-          this.poepleinfo.selfCandidate.splice(index, 1);
-        }
-      }
-      this.pickerkey = "name";
-      this.columns = this.poepleinfo.selfCandidate;
-      if (this.poepleinfo.isEvaluateOk == true) {
-        this.columns.forEach(item => {
-          if (item.id == this.poepleinfo.evaluateResultVO.beId) {
-            this.toshow = {
-              name: item.name,
-              remark: this.poepleinfo.evaluateResultVO.remark
-            };
-          }
-        });
-      }
-    }
-    //对部门进行选择评优
-    else if (this.poepleinfo.type == 1) {
-      deptlistAll().then(res => {
-        this.pickerkey = "deptName";
-        this.columns = res.data.data;
-        if (this.poepleinfo.isEvaluateOk == true) {
-          this.columns.forEach(item => {
-            if (item.id == this.poepleinfo.evaluateResultVO.beId) {
-              this.toshow = {
-                name: item.deptName,
-                remark: this.poepleinfo.evaluateResultVO.remark
-              };
-            }
-          });
-        }
-      });
-    }
+    console.log(this.poepleinfo);
   },
   methods: {
     onConfirm(select) {
-      // 选择评选人或评选部门
-      if (this.pickerkey == "deptName") {
-        this.currentValue = select.deptName;
-      } else if (this.pickerkey == "name") {
-        this.currentValue = select.name;
-      }
-      this.toData.beId = select.id;
+      this.currentValue = select;
       this.showPicker = false;
+      this.poepleinfo.RecommendData.forEach(element => {
+        if (element.efereename == select) {
+          this.$toast.fail("该人员已推荐");
+          this.currentValue = "";
+        }
+      });
     },
     //提交
     SubmitTo() {
-      if (this.toData.beId == undefined) {
+      if (this.currentValue == "") {
         this.$toast.fail(
           this.poepleinfo.type == 1 ? "请选择推荐部门" : "请选择推荐人员"
         );
-      } else if (this.toData.remark == undefined || this.toData.remark == "") {
+      } else if (this.remark == "") {
         this.$toast.fail("请输入推荐理由");
       } else {
         this.disabledsubmit = true;
-        evaluateResult(this.toData).then(res => {
-          setTimeout(() => {
-            this.$router.push("/");
-          }, 1000);
-          this.$toast.success("评选完成");
+        this.poepleinfo.RecommendData.push({
+          remark: this.remark,
+          efereename: this.currentValue
         });
+        setTimeout(() => {
+          this.$router.push({
+            path: "/toAppraisingfirst",
+            query: { info: JSON.stringify(this.poepleinfo) }
+          });
+        }, 1000);
+        this.$toast.success("推荐成功");
       }
     }
   }
 };
 </script>
-          
+
 <style scoped lang="scss">
 .toAppraising {
   padding: 20px;
@@ -254,4 +229,3 @@
   }
 }
 </style>
-          
\ No newline at end of file
diff --git a/src/views/toAppraising/toAppraisingfirst.vue b/src/views/toAppraising/toAppraisingfirst.vue
new file mode 100644
index 0000000..af122d0
--- /dev/null
+++ b/src/views/toAppraising/toAppraisingfirst.vue
@@ -0,0 +1,241 @@
+<!--去评优-->
+<template>
+  <div class="toAppraising">
+    <div class="Beingevaluated">
+      <p class="title">{{this.poepleinfo.taskName}}</p>
+      <p class="info">
+        <span>所在部门:</span>
+        <span>{{ this.poepleinfo.dept_name}}</span>
+      </p>
+      <p class="info">
+        <span>评优级别:</span>
+        <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
+      </p>
+      <p class="info">
+        <span>截止日期:</span>
+        <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+      </p>
+      <p class="info">
+        <span>说明:</span>
+        <table  border="1" align="center" bordercolor="gray">
+            <thead>
+              <tr>
+                <th>类别</th>
+                <th>认定标准</th>
+                <th>名额</th>
+              </tr>
+            </thead>
+            <tbody>
+              <tr>
+                <td>优秀先锋</td>
+                <td>优秀技术人员</td>
+                <td>2</td>
+              </tr>
+              <tr>
+                <td>优秀经理</td>
+                <td>优秀部门领导</td>
+                <td>1</td>
+              </tr>
+            </tbody>
+        </table>
+      </p>
+      <p class="info">
+        <span class="tuijian">推荐人员:<van-button type="primary" block @click="Gotovote()" >添加推荐人员</van-button></span> 
+        <table  border="1" align="center" bordercolor="gray" class="tuijiaantable">
+            <thead>
+              <tr>
+                <th>姓名</th>
+                <th>评选理由</th>
+                <th>操作</th>
+              </tr>
+            </thead>
+            <tbody>
+              <tr v-for="(item,index) of this.poepleinfo.RecommendData" :key="index">
+                <td>{{item.efereename}}</td>
+                <td>{{item.remark}}</td>
+                <td><van-button type="danger" size="mini" @click="deleteRecommend(index)">删除</van-button></td>
+              </tr>
+              <tr v-show="this.poepleinfo.RecommendData.length==0">
+                <td colspan="3">暂无数据</td>
+              </tr>
+            </tbody>
+        </table>
+      </p>
+      <div>
+        <van-button type="primary" block @click="SubmitTo()">提交</van-button>
+      </div>
+    </div>
+  </div>
+</template>
+          
+<script>
+import { Picker } from "vant";
+import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
+export default {
+  data() {
+    return {
+      infoData:JSON.parse(this.$route.query.info)
+    };
+  },
+  computed:{
+    poepleinfo(){
+      return this.infoData
+    }
+  },
+  mounted() {
+    localStorage.setItem("Appraising", "Appraising");
+  },
+  created() {
+  },
+  methods: {
+    //添加推荐人员
+    Gotovote() {
+      this.$router.push({
+        path: "/toAppraising",
+        query: { info: JSON.stringify(this.poepleinfo) }
+      });
+    },
+    //删除推荐人员
+    deleteRecommend(index){
+      this.infoData.RecommendData.splice(index,1)
+    },
+    //提交
+    SubmitTo(){
+      console.log(this.infoData)
+      this.$router.push({
+        path: "/Appraising",
+      });
+    }
+  }
+};
+</script>
+          
+<style scoped lang="scss">
+.toAppraising {
+  padding: 20px;
+  height: 100vh;
+  overflow: auto;
+  background: #f5f5f5;
+  .Beingevaluated {
+    background: white;
+    padding: 20px;
+    height: 100%;
+    .title {
+      font-size: 18px;
+      font-weight: bold;
+      line-height: 35px;
+    }
+    .info {
+      font-size: 16px;
+      line-height: 30px;
+      span:nth-child(1) {
+        color: #8894a8;
+      }
+      span:nth-child(2) {
+        color: #313d51;
+      }
+      table{
+        width: 100%;
+        margin: 3px 0px 20px;
+        font-weight: none;
+        font-size: 16px;
+        color: #313d51;
+        border-collapse: collapse;
+        text-align: center;
+        tr{
+            height: 50px;
+        }
+      }
+      .tuijiaantable{
+        margin: 10px 0px 20px;
+        .van-button{
+            background: red;
+            height: 30px;
+            margin:0px;
+            width: 50px;
+            .van-button__text{
+                color: white; 
+                font-size: 14px;
+        }
+
+        }
+      }
+      .tuijian{
+        display: flex;
+        align-items: center;
+        .van-button{
+        display: inline;
+        margin: 0;
+        padding: 0;
+        width: 110px;
+        background: green;
+        height: 32px;
+        font-size: 14px;   
+        .van-button__text{
+        color: white; 
+        }
+      }
+
+      }
+
+    }
+    .toin {
+      margin-top: 20px;
+      [class*="van-hairline"]::after {
+        border: none;
+      }
+      .van-field {
+        font-size: 16px;
+        font-weight: bold;
+        padding: 10px 0px;
+      }
+      .Reasons {
+        font-size: 16px;
+        font-weight: bold;
+        color: #646566;
+        margin-bottom: 10px;
+      }
+      .van-borderline {
+        border: 1px solid #dee1e7;
+        font-weight: 100;
+        border-radius: 8px;
+        padding: 5px;
+      }
+    }
+    .van-button {
+      margin: 30px 0px 0px auto;
+      width: 120px;
+      color: white;
+      font-size: 20px;
+      align-items: center;
+      text-align: center;
+      justify-content: center;
+      background: linear-gradient(163deg, #01bdfc 0%, #017bfc 100%);
+      border-radius: 8px;
+    }
+    .showdetails {
+      margin-top: 20px;
+      p {
+        display: flex;
+        align-items: center;
+      }
+      .title {
+        font-size: 16px;
+        color: #8894a8;
+      }
+      .fraction {
+        font-size: 18px;
+        text-align: center;
+        line-height: 30px;
+      }
+      .instruct {
+        font-size: 18px;
+        text-align: center;
+        line-height: 30px;
+      }
+    }
+  }
+}
+</style>
+          
\ No newline at end of file
diff --git a/src/views/toAppraising/toAppraisingtwo.vue b/src/views/toAppraising/toAppraisingtwo.vue
new file mode 100644
index 0000000..8cfeaf8
--- /dev/null
+++ b/src/views/toAppraising/toAppraisingtwo.vue
@@ -0,0 +1,202 @@
+<!--去评优-->
+<template>
+  <div class="toAppraising">
+    <div class="Beingevaluated">
+      <p class="title">{{this.poepleinfo.taskName}}</p>
+      <p class="info">
+        <span>所在部门:</span>
+        <span>{{ this.poepleinfo.dept_name}}</span>
+      </p>
+      <p class="info">
+        <span>评优级别:</span>
+        <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
+      </p>
+      <p class="info">
+        <span>截止日期:</span>
+        <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+      </p>
+      <p class="info">
+        <span>推荐部门:</span>
+        <span>
+          <van-checkbox-group v-model="checked" shape="square" direction="horizontal">
+            <van-checkbox :name="item" v-for="item in deptData" :key="item" class="vantitle">
+              <span>{{item}}</span>
+            </van-checkbox>
+          </van-checkbox-group>
+        </span>
+      </p>
+      <div>
+        <van-button type="primary" block @click="SubmitTo()">提交</van-button>
+      </div>
+    </div>
+  </div>
+</template>
+            
+<script>
+import { Picker } from "vant";
+import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
+export default {
+  data() {
+    return {
+      checked: [],
+      deptData: ["技术部", "人事部", "财务部", "总经办"],
+      infoData: JSON.parse(this.$route.query.info)
+    };
+  },
+  computed: {
+    poepleinfo() {
+      return this.infoData;
+    }
+  },
+  mounted() {
+    localStorage.setItem("Appraising", "Appraising");
+  },
+  created() {},
+  methods: {
+    //提交
+    SubmitTo() {
+      this.$router.push({
+        path: "/Appraising"
+      });
+    }
+  }
+};
+</script>
+
+<style scoped lang="scss">
+.toAppraising {
+  padding: 20px;
+  height: 100vh;
+  overflow: auto;
+  background: #f5f5f5;
+  .Beingevaluated {
+    background: white;
+    padding: 20px;
+    height: 100%;
+    .title {
+      font-size: 18px;
+      font-weight: bold;
+      line-height: 35px;
+    }
+    .info {
+      font-size: 16px;
+      line-height: 30px;
+      span:nth-child(1) {
+        color: #8894a8;
+      }
+      span:nth-child(2) {
+        color: #313d51;
+      }
+      .van-checkbox-group {
+        .van-checkbox {
+          margin: 4px 10px 4px 0px;
+          span {
+            margin-left: -4px;
+          }
+        }
+      }
+      .van-checkbox__label {
+        margin-left: 0px;
+      }
+      table {
+        width: 100%;
+        margin: 3px 0px 20px;
+        font-weight: none;
+        font-size: 16px;
+        color: #313d51;
+        border-collapse: collapse;
+        text-align: center;
+        tr {
+          height: 50px;
+        }
+      }
+      .tuijiaantable {
+        margin: 10px 0px 20px;
+        .van-button {
+          background: red;
+          height: 30px;
+          margin: 0px;
+          width: 50px;
+          .van-button__text {
+            color: white;
+            font-size: 14px;
+          }
+        }
+      }
+      .tuijian {
+        display: flex;
+        align-items: center;
+        .van-button {
+          display: inline;
+          margin: 0;
+          padding: 0;
+          width: 110px;
+          background: green;
+          height: 32px;
+          font-size: 14px;
+          .van-button__text {
+            color: white;
+          }
+        }
+      }
+    }
+    .toin {
+      margin-top: 20px;
+      [class*="van-hairline"]::after {
+        border: none;
+      }
+      .van-field {
+        font-size: 16px;
+        font-weight: bold;
+        padding: 10px 0px;
+      }
+      .Reasons {
+        font-size: 16px;
+        font-weight: bold;
+        color: #646566;
+        margin-bottom: 10px;
+      }
+      .van-borderline {
+        border: 1px solid #dee1e7;
+        font-weight: 100;
+        border-radius: 8px;
+        padding: 5px;
+      }
+    }
+    .van-button {
+      margin: 30px 0px 0px auto;
+      width: 120px;
+      color: white;
+      font-size: 20px;
+      align-items: center;
+      text-align: center;
+      justify-content: center;
+      background: linear-gradient(163deg, #01bdfc 0%, #017bfc 100%);
+      border-radius: 8px;
+    }
+    .showdetails {
+      margin-top: 20px;
+      p {
+        display: flex;
+        align-items: center;
+      }
+      .title {
+        font-size: 16px;
+        color: #8894a8;
+      }
+      .fraction {
+        font-size: 18px;
+        text-align: center;
+        line-height: 30px;
+      }
+      .instruct {
+        font-size: 18px;
+        text-align: center;
+        line-height: 30px;
+      }
+    }
+  }
+}
+</style>
+            
\ No newline at end of file
diff --git a/src/views/toexamine/index.vue b/src/views/toexamine/index.vue
index ade2bc6..d80969e 100644
--- a/src/views/toexamine/index.vue
+++ b/src/views/toexamine/index.vue
@@ -7,33 +7,25 @@
       />
     </div>
     <div class="Info">
-      <p v-show="this.poepleinfo.userId!=undefined">
+      <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
         <span>被考核人:</span>
-        <span>{{this.poepleinfo.userName}}</span>
+        <span>{{this.poepleinfo.assessmentSetVO.userName}}</span>
       </p>
-      <p v-show="this.poepleinfo.userId==undefined">
+      <p v-show="this.poepleinfo.assessmentTaskVO.type==1">
         <span>被考核部门:</span>
-        <span>{{this.poepleinfo.deptName}}</span>
+        <span>{{this.poepleinfo.assessmentSetVO.deptName}}</span>
       </p>
-      <p v-show="this.poepleinfo.userId!=undefined">
+      <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
         <span>所在部门:</span>
-        <span>{{this.poepleinfo.deptName}}</span>
+        <span>{{this.poepleinfo.assessmentSetVO.deptName}}</span>
       </p>
-      <p v-show="this.poepleinfo.userId!=undefined">
+      <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
         <span>职务:</span>
-        <span>{{this.poepleinfo.postName}}</span>
+        <span>{{this.poepleinfo.assessmentSetVO.postName}}</span>
       </p>
-      <!-- <p v-show="this.poepleinfo.userId!=undefined">
-        <span>人员类型:</span>
-        <span>经营</span>
-      </p>
-      <p v-show="this.poepleinfo.userId!=undefined">
-        <span>合伙人级别:</span>
-        <span>重要合伙人</span>
-      </p>-->
     </div>
-    <p class="illustrate">说明:对当前评分,权重占{{this.poepleinfo.weight}}%,评分范围(100分制)±50</p>
-    <div v-if="this.poepleinfo.assessmentScoreVO==null" class="todetails">
+    <p class="illustrate">说明:对当前评分,权重占{{this.poepleinfo.weight}}%,评分范围(100分制)±50</p>
+    <div v-if="this.poepleinfo.isAssessmentOk==false" class="todetails">
       <p class="title">评分</p>
       <van-field
         v-model="score"
@@ -47,7 +39,7 @@
       <van-field v-model="instructions" rows="3" type="textarea" placeholder="请描述" />
       <van-button type="primary" block @click="submit()" :disabled="disabledsubmit">提交</van-button>
     </div>
-    <div v-if="this.poepleinfo.assessmentScoreVO!=null" class="showdetails">
+    <div v-if="this.poepleinfo.isAssessmentOk==true" class="showdetails">
       <p>
         <span class="title">评分值:</span>
         <span class="fraction">{{this.poepleinfo.assessmentScoreVO.scoreVal}}</span>
@@ -68,9 +60,7 @@
 export default {
   data() {
     return {
-      poepleinfo: {
-        name: this.$route.query.name
-      },
+      poepleinfo: {},
       score: null,
       show: false,
       instructions: "",
@@ -92,10 +82,10 @@
       } else if (parseFloat(this.score) < 50) {
         this.$toast.fail("低于评分范围");
       } else {
-        if (this.poepleinfo.userId != undefined) {
-          beId = this.poepleinfo.userId;
+        if (this.poepleinfo.assessmentTaskVO.type == 0) {
+          beId = this.poepleinfo.assessmentSetVO.userId;
         } else {
-          beId = this.poepleinfo.deptId;
+          beId = this.poepleinfo.assessmentSetVO.deptId;
         }
         let Data = {
           scoreUserId: localStorage.getItem("tokensave"),
@@ -104,8 +94,7 @@
           type: this.poepleinfo.assessmentTaskVO.type,
           assessmentTaskId: this.poepleinfo.assessmentTaskVO.id,
           beId: beId,
-          weight: this.poepleinfo.weight,
-          rangeVal: this.poepleinfo.rangeVal
+          weight: this.poepleinfo.weight
         };
         if (Data.scoreVal == "") {
           this.$toast.fail("请输入评分");
@@ -115,7 +104,7 @@
           this.disabledsubmit = true;
           assessmentScore(Data).then(res => {
             setTimeout(() => {
-              this.$router.push("/");
+              this.$router.push("/examine");
             }, 1000);
             this.$toast.success("评分成功");
           });
diff --git a/vue.config.js b/vue.config.js
index 5bc916c..cfff906 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -127,9 +127,10 @@
     proxy: {
       "/api": {
         // target用于配置你允许访问数据的计算机名称,即是你的api接口的服务器地址
-        // target: "http://127.0.0.1",
+        target: "http://127.0.0.1:8111",
         // target: "https://132v69t077.yicp.fun",
-        target: "http://139.196.94.172:8111",
+        // target: "http://139.196.94.172:8111",
+        // target: 'http://192.168.1.83:2888',
         changeOrigin: true,
         pathRewrite: {
           "^/api": "/"

--
Gitblit v1.9.3