From 4b898d43d04242e74157aedafa5e1c7d75d1abcd Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Fri, 15 Dec 2023 11:40:42 +0800
Subject: [PATCH] 评优任务页面、考核结果页面修改

---
 src/views/assessment/components/taskResult.vue |  202 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 172 insertions(+), 30 deletions(-)

diff --git a/src/views/assessment/components/taskResult.vue b/src/views/assessment/components/taskResult.vue
index 629faff..f88c77d 100644
--- a/src/views/assessment/components/taskResult.vue
+++ b/src/views/assessment/components/taskResult.vue
@@ -5,13 +5,17 @@
                 <span>考核结果</span>
             </template>
         </el-page-header>
-        <avue-crud ref="crud" v-model="form" v-model:search="search" :option="option" :data="data" v-model:page="page">
+        <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"
+            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+            @refresh-change="refreshChange" @on-load="onLoad">
         </avue-crud>
     </div>
 </template>
   
 <script>
-
+import { getList } from '@/api/assessment/assessmentScore'
 export default {
     props: {
         params: {
@@ -23,17 +27,12 @@
     },
     data() {
         return {
+            rowData: {},
             form: {},
+            query: {},
             search: {},
-            selectionList: [],
-            data: [
-                {
-                    assessor: '张三',
-                    position: '经理',
-                    weight: 50,
-                    ratingRange: 50,
-                }
-            ],
+            loading: true,
+            data: [],
             option: {
                 height: 'auto',
                 calcHeight: 32,
@@ -41,25 +40,25 @@
                 searchMenuSpan: 6,
                 border: true,
                 index: true,
-                addBtn: true,
+                addBtn: false,
                 viewBtn: true,
                 editBtn: false,
-                delBtn: true,
-                selection: true,
+                delBtn: false,
+                selection: false,
                 dialogClickModal: false,
                 menuWidth: 200,
                 column: [
-                    {
-                        label: "考核编号",
-                        type: 'select',
-                        hide: true,
-                        search: true
-                    },
+                    // {
+                    //     label: "考核编号",
+                    //     type: 'select',
+                    //     hide: true,
+                    //     search: true
+                    // },
                     {
                         label: "被考核人",
-                        prop: "name",
+                        prop: "userName",
                         type: "input",
-                        search: true,
+                        search: true
                     },
                     {
                         label: "工号",
@@ -75,14 +74,14 @@
                         prop: "postName",
                         type: "input",
                     },
-                    {
-                        label: "人员类型",
-                        prop: "personnelType",
-                        type: "input",
-                    },
+                    // {
+                    //     label: "人员类型",
+                    //     prop: "personnelType",
+                    //     type: "input",
+                    // },
                     {
                         label: "考核分",
-                        prop: "ratingRange",
+                        prop: "scoreVal",
                         type: "input",
                     }
                 ]
@@ -95,6 +94,15 @@
         }
     },
     watch: {
+        'params': {
+            handler(val) {
+                this.rowData = val
+                this.query.assessmentTaskId = val.id
+                this.query.type = val.type
+            },
+            deep: true,
+            immediate: true,
+        }
     },
     computed: {
         ids() {
@@ -109,9 +117,143 @@
         back() {
             this.$emit('changeIs', true)
         },
-        sizeChange() { },
-        refreshChange() { },
+        rowSave(row, done, loading) {
+            add(row).then(() => {
+                this.onLoad(this.page);
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                done();
+            }, error => {
+                loading();
+                window.console.log(error);
+            });
+        },
+        rowUpdate(row, index, done, loading) {
+            update(row).then(() => {
+                this.onLoad(this.page);
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                done();
+            }, error => {
+                loading();
+                console.log(error);
+            });
+        },
+        rowDel(row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(row.id);
+                })
+                .then(() => {
+                    this.onLoad(this.page);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                });
+        },
+        handleDelete() {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据");
+                return;
+            }
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(this.ids);
+                })
+                .then(() => {
+                    this.onLoad(this.page);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.$refs.crud.toggleSelection();
+                });
+        },
+        // handleExport() {
+        //     let downloadUrl = `/assessmentTask/assessmentTask/export-assessmentTask?${this.website.tokenHeader}=${getToken()}`;
+        //     const {
+        //     } = this.query;
+        //     let values = {
+        //         ...this.query
+        //     };
+        //     this.$confirm("是否导出数据?", "提示", {
+        //         confirmButtonText: "确定",
+        //         cancelButtonText: "取消",
+        //         type: "warning"
+        //     }).then(() => {
+        //         NProgress.start();
+        //         exportBlob(downloadUrl, values).then(res => {
+        //             downloadXls(res.data, `考核任务表${dateNow()}.xlsx`);
+        //             NProgress.done();
+        //         })
+        //     });
+        // },
+        beforeOpen(done, type) {
+            if (["edit", "view"].includes(type)) {
+                getDetail(this.form.id).then(res => {
+                    this.form = res.data.data;
+                });
+            }
+            done();
+        },
+        searchReset() {
+            this.query = {};
+            this.onLoad(this.page);
+        },
+        searchChange(params, done) {
+            params.type = this.defaultTaskType
+            this.query = params;
+            this.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            done();
+        },
+        selectionChange(list) {
+            this.selectionList = list;
+        },
+        selectionClear() {
+            this.selectionList = [];
+            this.$refs.crud.toggleSelection();
+        },
+        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 {
+            } = this.query;
+
+            let values = {
+                ...this.query,
+                ...params
+            };
+
+            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.selectionClear();
+            });
         }
     },
     mounted() {

--
Gitblit v1.9.3