From 44567ade6fc16bda1f1d22fef8019661375e9615 Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Tue, 02 Jan 2024 17:43:21 +0800
Subject: [PATCH] 考核任务完善

---
 src/views/assessment/components/assessmentTaskSetting.vue |  128 ++++++++++++++++--------------------------
 1 files changed, 48 insertions(+), 80 deletions(-)

diff --git a/src/views/assessment/assessmentTaskSetting.vue b/src/views/assessment/components/assessmentTaskSetting.vue
similarity index 71%
rename from src/views/assessment/assessmentTaskSetting.vue
rename to src/views/assessment/components/assessmentTaskSetting.vue
index 86a8300..5abdac9 100644
--- a/src/views/assessment/assessmentTaskSetting.vue
+++ b/src/views/assessment/components/assessmentTaskSetting.vue
@@ -1,27 +1,34 @@
 <template>
     <basic-container>
         <template v-if="isWeight">
-            <avue-tabs ref="tabs" :option="taskTypeList" @change="tabChange"></avue-tabs>
-            <avue-crud ref="crud" v-model="form" v-model:search="search" :option="!defaultTaskType ? option : deptOption"
+            <el-page-header @back="back" class="header">
+                <template #content>
+                    <span>{{ !params.type ? '个人考核设置' : '部门考核设置' }}</span>
+                </template>
+            </el-page-header>
+            <avue-crud ref="crud" v-model="form" v-model:search="search" :option="!params.type ? option : deptOption"
                 :data="data" v-model:page="page" @search-change="searchChange" @search-reset="searchReset"
                 @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
                 @tree-load="treeLoad" @on-load="onLoad">
+               <template #menu-left>
+                    <el-button type="primary" icon="el-icon-plus" @click="rowSave">
+                        {{ !params.type? '添加被考核人' : '添加被考核部门' }}
+                    </el-button>
+               </template>
                 <template #menu="{ size, row, index }">
                     <el-button type="primary" size="small" @click="handleWeight(row)">
                         添加考核人
                     </el-button>
                 </template>
                 <template #assessmentPerson="{ row }">
-                    <popoverTable :params="{...row, type: defaultTaskType}">
+                    <popoverTable :params="{ ...row, type: params.type }">
                         <template #content>
                             <el-button type="success" text icon="el-icon-pointer">考核人预览</el-button>
                         </template>
                     </popoverTable>
                 </template>
-                <template #deptCategory="{ row }">
-                    <el-tag>{{ row.deptCategoryName }}</el-tag>
-                </template>
             </avue-crud>
+            <addAssessor :dialogParams="dialogParams" @refresh="onLoad" />
         </template>
         <template v-else>
             <assessmentWeight v-model:params="weightParams" @changeIs="changeIs" />
@@ -30,9 +37,10 @@
 </template>
 
 <script>
-import assessmentWeight from './components/assessmentWeight.vue'
+import assessmentWeight from './assessmentWeight.vue'
+import addAssessor from './addAssessor.vue';
 import popoverTable from '@/views/assessment/components/popoverTable.vue'
-import { getList } from '@/api/system/user.js'
+import { getList } from '@/api/assessment/assessmentSet.js'
 import { getLazyList } from '@/api/system/dept';
 import _ from 'lodash'
 
@@ -40,6 +48,15 @@
     components: {
         assessmentWeight,
         popoverTable,
+        addAssessor
+    },
+    props: {
+        params: {
+            type: Object,
+            default() {
+                return {}
+            }
+        }
     },
     data() {
         return {
@@ -75,16 +92,10 @@
                     },
                     {
                         label: "被考核人",
-                        prop: "name",
-                        // prop: "userName",
+                        // prop: "name",
+                        prop: "userName",
                         type: "input",
                         search: true,
-                        minWidth: 70
-                    },
-                    {
-                        label: "工号",
-                        prop: 'code',
-                        type: "input",
                         minWidth: 70
                     },
                     {
@@ -132,12 +143,6 @@
                     //     minWidth: 70
                     // },
                     {
-                        label: "联系方式",
-                        prop: "phone",
-                        type: "input",
-                        minWidth: 150,
-                    },
-                    {
                         label: "考核人",
                         minWidth: 120,
                         prop: "assessmentPerson",
@@ -166,24 +171,6 @@
                         search: true,
                     },
                     {
-                        label: '部门全称',
-                        prop: 'fullName',
-                        // search: true,
-                    },
-                    {
-                        label: '机构类型',
-                        type: 'select',
-                        dicUrl: '/blade-system/dict/dictionary?code=org_category',
-                        props: {
-                            label: 'dictValue',
-                            value: 'dictKey',
-                        },
-                        dataType: 'number',
-                        width: 120,
-                        prop: 'deptCategory',
-                        slot: true,
-                    },
-                    {
                         label: '考核人',
                         prop: 'assessmentPerson',
                         slot: true
@@ -199,47 +186,27 @@
                 depts: [],
                 posts: []
             },
-            // 考核结果参数
-            defaultTaskType: 0,
-            taskTypeList: {
-                column: [
-                    {
-                        label: '个人考核权重设置',
-                        prop: 0
-                    },
-                    {
-                        label: '部门考核权重设置',
-                        prop: 1
-                    }
-                ]
-            },
-        }
-    },
-    watch: {
-        defaultTaskType: {
-            handler(n) {
-                this.form = {}
-                this.query = {}
-                this.search = {}
-                this.weightParams = {}
-                this.page.currentPage = 1
-                this.onLoad(this.page, this.query);
-            },
-            immediate: true,
+            dialogParams: {}
         }
     },
     methods: {
+        back() {
+            this.$emit('changeIs', 0)
+        },
+        changeIs(value) {
+            this.isWeight = value
+        },
         handleWeight(row) {
             this.weightParams = { ...row }
-            this.defaultTaskType && (this.weightParams = { ...row, isDept: true })
-            this.weightParams.type = this.defaultTaskType
+            this.params.type && (this.weightParams = { ...row, isDept: true })
+            this.weightParams.type = this.params.type
             this.isWeight = false
         },
-        changeIs(is) {
-            this.isWeight = is
-            this.$nextTick(() => {
-                this.$refs.tabs.active = this.defaultTaskType.toString()
-            })
+        rowSave() {
+            this.dialogParams = {
+                visible: true,
+                taskParams: this.params
+            }
         },
         searchChange(params, done) {
             if (!this.defaultTaskType) {
@@ -278,14 +245,11 @@
                 userType: 2
             };
             this.data = []
-            !this.defaultTaskType && getList(page.currentPage, page.pageSize, values, values.deptId).then(res => {
+            const { id } = this.params
+            getList(page.currentPage, page.pageSize, { assessmentTaskId: id }).then(res => {
                 const data = res.data.data;
                 this.page.total = data.total;
                 this.data = data.records;
-                this.loading = false;
-            });
-            this.defaultTaskType && getLazyList(this.parentId, values).then(res => {
-                this.data = res.data.data;
                 this.loading = false;
             });
         },
@@ -302,4 +266,8 @@
 }
 </script>
 
-<style></style>
+<style lang="scss" scoped>
+.header {
+    margin-bottom: 20px;
+}
+</style>

--
Gitblit v1.9.3