From 87adf4545bce4276da77f8df368dade670dfe07e Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Wed, 13 Dec 2023 16:42:51 +0800
Subject: [PATCH] 权限任务、考核权重、评优任务页面修改

---
 src/views/assessment/components/assessmentWeight.vue |    1 
 src/api/assessment/assessmentSet.js                  |   12 ++++
 src/views/evaluate/evaluateTask.vue                  |   37 ++++++++++++
 src/views/assessment/assessmentTaskSetting.vue       |   58 +++++++++++++++++--
 src/views/assessment/assessmentTask.vue              |   22 ++++---
 src/views/assessment/components/taskResult.vue       |   22 +++++--
 6 files changed, 128 insertions(+), 24 deletions(-)

diff --git a/src/api/assessment/assessmentSet.js b/src/api/assessment/assessmentSet.js
index 2f51814..ecb5b24 100644
--- a/src/api/assessment/assessmentSet.js
+++ b/src/api/assessment/assessmentSet.js
@@ -12,6 +12,18 @@
   })
 }
 
+export const getdeptList = (current, size, params) => {
+  return request({
+    url: '/assessment/assessmentSetDept//list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
 export const getDetail = (id) => {
   return request({
     url: '/assessment/assessmentSet/detail',
diff --git a/src/views/assessment/assessmentTask.vue b/src/views/assessment/assessmentTask.vue
index ed0542d..60ca3c3 100644
--- a/src/views/assessment/assessmentTask.vue
+++ b/src/views/assessment/assessmentTask.vue
@@ -78,13 +78,17 @@
     };
   },
   watch: {
-    defaultTaskType(n) {
-      this.query['type'] = n
-      let params = {
-          type: n        
-      }
-      this.page.currentPage = 1;
-      this.onLoad(this.page, params);
+    defaultTaskType: {
+      handler(n) {
+        this.query = {}
+        this.query['type'] = n
+        let params = {
+          type: n
+        }
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+      },
+      immediate: true,
     }
   },
   computed: {
@@ -210,6 +214,7 @@
       this.onLoad(this.page);
     },
     searchChange(params, done) {
+      params.type = this.defaultTaskType
       this.query = params;
       this.page.currentPage = 1;
       this.onLoad(this.page, params);
@@ -257,5 +262,4 @@
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>
diff --git a/src/views/assessment/assessmentTaskSetting.vue b/src/views/assessment/assessmentTaskSetting.vue
index f6a568b..057a7b3 100644
--- a/src/views/assessment/assessmentTaskSetting.vue
+++ b/src/views/assessment/assessmentTaskSetting.vue
@@ -1,6 +1,7 @@
 <template>
     <basic-container>
         <template v-if="isWeight">
+            <avue-tabs :option="taskTypeList" @change="tabChange"></avue-tabs>
             <avue-crud ref="crud" v-model="form" v-model:search="search" :option="option" :data="data" v-model:page="page"
                 @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
                 @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@@ -20,6 +21,7 @@
 <script>
 import assessmentWeight from './components/assessmentWeight.vue'
 import { getList } from '@/api/system/user.js'
+import { getdeptList } from '@/api/assessment/assessmentSet.js'
 
 export default {
     components: {
@@ -58,6 +60,7 @@
                     {
                         label: "被考核人",
                         prop: "name",
+                        // prop: "userName",
                         type: "input",
                         search: true,
                     },
@@ -121,7 +124,30 @@
             selectGroup: {
                 depts: [],
                 posts: []
-            }
+            },
+            // 考核结果参数
+            defaultTaskType: 0,
+            taskTypeList: {
+                column: [
+                    {
+                        label: '个人考核权重设置',
+                        prop: 0
+                    },
+                    {
+                        label: '部门考核权重设置',
+                        prop: 1
+                    }
+                ]
+            },
+            isDeptRequest: true
+        }
+    },
+    watch: {
+        defaultTaskType: {
+            handler(n) {
+                this.onLoad(this.page, this.query);
+            },
+            immediate: true,
         }
     },
     methods: {
@@ -142,10 +168,19 @@
             this.onLoad(this.page, params);
             done();
         },
-        searchReset() { },
-        currentChange() { },
-        sizeChange() { },
-        refreshChange() { },
+        searchReset() {
+            this.query = {};
+            this.onLoad(this.page);
+        },
+        currentChange(currentPage) {
+            this.page.currentPage = currentPage;
+        },
+        sizeChange(pageSize) {
+            this.page.pageSize = pageSize;
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.query);
+        },
         onLoad(page, params = {}) {
             this.loading = true;
             const {
@@ -154,13 +189,22 @@
                 ...this.query,
                 ...params
             };
-
-            getList(page.currentPage, page.pageSize, values).then(res => {
+            !this.defaultTaskType && getList(page.currentPage, page.pageSize, values).then(res => {
                 const data = res.data.data;
                 this.page.total = data.total;
                 this.data = data.records;
                 this.loading = false;
             });
+            this.defaultTaskType && getdeptList(page.currentPage, page.pageSize, values).then(res => {
+                const data = res.data.data;
+                this.page.total = data.total;
+                this.data = data.records;
+                this.loading = false;
+            })
+        },
+        tabChange(value) {
+            this.defaultTaskType = value.prop
+            console.log(!!this.defaultTaskType);
         }
     }
 }
diff --git a/src/views/assessment/components/assessmentWeight.vue b/src/views/assessment/components/assessmentWeight.vue
index b2f67c7..7760cb9 100644
--- a/src/views/assessment/components/assessmentWeight.vue
+++ b/src/views/assessment/components/assessmentWeight.vue
@@ -27,6 +27,7 @@
 <script>
 import { getList, getDetail, remove, add, update } from '@/api/assessment/assessmentSet'
 import { getList as getUserSelectList } from "@/api/system/user.js";
+import _ from 'lodash'
 
 export default {
     props: {
diff --git a/src/views/assessment/components/taskResult.vue b/src/views/assessment/components/taskResult.vue
index f47bc01..629faff 100644
--- a/src/views/assessment/components/taskResult.vue
+++ b/src/views/assessment/components/taskResult.vue
@@ -11,7 +11,6 @@
 </template>
   
 <script>
-import { ElMessageBox, ElMessage } from 'element-plus'
 
 export default {
     props: {
@@ -57,19 +56,28 @@
                         search: true
                     },
                     {
-                        label: "考核人",
-                        prop: "assessor",
+                        label: "被考核人",
+                        prop: "name",
                         type: "input",
                         search: true,
                     },
                     {
-                        label: "职务",
-                        prop: "position",
+                        label: "工号",
+                        prop: 'code',
                         type: "input",
                     },
                     {
-                        label: "权值",
-                        prop: "weight",
+                        label: "部门",
+                        prop: "deptName",
+                    },
+                    {
+                        label: "职务",
+                        prop: "postName",
+                        type: "input",
+                    },
+                    {
+                        label: "人员类型",
+                        prop: "personnelType",
                         type: "input",
                     },
                     {
diff --git a/src/views/evaluate/evaluateTask.vue b/src/views/evaluate/evaluateTask.vue
index d113676..e0f7ad6 100644
--- a/src/views/evaluate/evaluateTask.vue
+++ b/src/views/evaluate/evaluateTask.vue
@@ -1,5 +1,6 @@
 <template>
   <basic-container>
+    <avue-tabs :option="taskTypeList" @change="tabChange"></avue-tabs>
     <avue-crud :option="option" v-model:search="search" v-model:page="page" v-model="form" :table-loading="loading"
       :data="data" :permission="permissionList" :before-open="beforeOpen" ref="crud" @row-update="rowUpdate"
       @row-save="rowSave" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@@ -88,8 +89,36 @@
       isAddDialogVisible: false,
       addParams: {},
       viewParams: {},
-      depts: []
+      depts: [],
+      // 考核结果参数
+      defaultTaskType: 0,
+      taskTypeList: {
+        column: [
+          {
+            label: '个人评优',
+            prop: 0
+          },
+          {
+            label: '部门评优',
+            prop: 1
+          }
+        ]
+      }
     };
+  },
+  watch: {
+    // defaultTaskType: {
+    //   handler(n) {
+    //     this.query = {}
+    //     this.query['type'] = n
+    //     let params = {
+    //       type: n
+    //     }
+    //     this.page.currentPage = 1;
+    //     this.onLoad(this.page, params);
+    //   },
+    //   immediate: true,
+    // }
   },
   computed: {
     ...mapGetters(["permission"]),
@@ -266,8 +295,11 @@
       } = this.query;
 
       let values = {
+        ...this.query,
+        ...params,
         taskName_like: taskName,
       };
+      console.log(values);
 
       getList(page.currentPage, page.pageSize, values).then(res => {
         const data = res.data.data;
@@ -315,6 +347,9 @@
         });
       })
       this.dialogVisible = false
+    },
+    tabChange(value) {
+      this.defaultTaskType = value.prop
     }
   }
 };

--
Gitblit v1.9.3