GuLiMmo
2023-12-13 87adf4545bce4276da77f8df368dade670dfe07e
权限任务、考核权重、评优任务页面修改
6 files modified
152 ■■■■ changed files
src/api/assessment/assessmentSet.js 12 ●●●●● patch | view | raw | blame | history
src/views/assessment/assessmentTask.vue 22 ●●●●● patch | view | raw | blame | history
src/views/assessment/assessmentTaskSetting.vue 58 ●●●● patch | view | raw | blame | history
src/views/assessment/components/assessmentWeight.vue 1 ●●●● patch | view | raw | blame | history
src/views/assessment/components/taskResult.vue 22 ●●●●● patch | view | raw | blame | history
src/views/evaluate/evaluateTask.vue 37 ●●●●● patch | view | raw | blame | history
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',
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>
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);
        }
    }
}
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: {
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",
                    },
                    {
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
    }
  }
};