GuLiMmo
2023-12-13 f7f0c6272b4c329fb0895998603e4174885ff322
考核权重页面修改

部门权重设置及部门权重新增考核人暂未完善
3 files modified
105 ■■■■ changed files
src/api/assessment/assessmentSet.js 5 ●●●●● patch | view | raw | blame | history
src/views/assessment/assessmentTaskSetting.vue 77 ●●●● patch | view | raw | blame | history
src/views/assessment/components/assessmentWeight.vue 23 ●●●●● patch | view | raw | blame | history
src/api/assessment/assessmentSet.js
@@ -12,9 +12,9 @@
  })
}
export const getdeptList = (current, size, params) => {
export const getDeptList = (current, size, params) => {
  return request({
    url: '/assessment/assessmentSetDept//list',
    url: '/assessment/assessmentSetDept/list',
    method: 'get',
    params: {
      ...params,
@@ -24,6 +24,7 @@
  })
}
export const getDetail = (id) => {
  return request({
    url: '/assessment/assessmentSet/detail',
src/views/assessment/assessmentTaskSetting.vue
@@ -2,9 +2,9 @@
    <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">
            <avue-crud ref="crud" v-model="form" v-model:search="search" :option="!defaultTaskType ? option : deptOption"
                :data="data" v-model:page="page" @search-change="searchChange" @search-reset="searchReset"
                @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
                <template #menu="{ size, row, index }">
                    <el-button type="primary" size="small" @click="handleWeight(row)">
                        考核权重
@@ -21,7 +21,7 @@
<script>
import assessmentWeight from './components/assessmentWeight.vue'
import { getList } from '@/api/system/user.js'
import { getdeptList } from '@/api/assessment/assessmentSet.js'
import { getLazyList } from '@/api/system/dept';
export default {
    components: {
@@ -116,6 +116,36 @@
                    },
                ]
            },
            deptOption: {
                height: 'auto',
                calcHeight: 32,
                tip: true,
                searchMenuSpan: 6,
                border: true,
                index: true,
                addBtn: false,
                viewBtn: false,
                editBtn: false,
                delBtn: false,
                menuWidth: 200,
                column: [
                    {
                        label: '部门名称',
                        prop: 'deptName',
                        search: true,
                    },
                    {
                        label: '部门全称',
                        prop: 'fullName',
                        // search: true,
                    },
                    {
                        label: '机构类型',
                        prop: 'deptCategory',
                        type: 'input'
                    }
                ],
            },
            page: {
                pageSize: 10,
                currentPage: 1,
@@ -139,12 +169,16 @@
                    }
                ]
            },
            isDeptRequest: true
        }
    },
    watch: {
        defaultTaskType: {
            handler(n) {
                this.form = {}
                this.query = {}
                this.search = {}
                this.weightParams = {}
                this.page.currentPage = 1
                this.onLoad(this.page, this.query);
            },
            immediate: true,
@@ -153,16 +187,19 @@
    methods: {
        handleWeight(row) {
            this.weightParams = { ...row }
            this.defaultTaskType && (this.weightParams = { ...row, isDept: true })
            this.isWeight = false
        },
        changeIs(is) {
            this.isWeight = is
        },
        searchChange(params, done) {
            params.deptId = params.deptName || ''
            params.postId = params.postName || ''
            delete params.deptName
            delete params.postName
            if (!this.defaultTaskType) {
                params.deptId = params.deptName || ''
                params.postId = params.postName || ''
                delete params.deptName
                delete params.postName
            }
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
@@ -189,22 +226,30 @@
                ...this.query,
                ...params
            };
            !this.defaultTaskType && getList(page.currentPage, page.pageSize, values).then(res => {
            this.data = []
            !this.defaultTaskType && getList(page.currentPage, page.pageSize, values, values.deptId).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.defaultTaskType && getLazyList(this.parentId, values).then(res => {
                let deptRes = res.data.data
                // 扁平化
                res.data.data.forEach(item => {
                    if (item.children) {
                        deptRes = deptRes.concat(item.children)
                        delete item.children
                    } else {
                        deptRes.push(item)
                    }
                })
                this.data = deptRes;
                this.loading = false;
            })
            });
        },
        tabChange(value) {
            this.defaultTaskType = value.prop
            console.log(!!this.defaultTaskType);
        }
    }
}
src/views/assessment/components/assessmentWeight.vue
@@ -4,13 +4,13 @@
            <template #content>
                <ul class="info">
                    <li>考核权重</li>
                    <li>
                        <el-tag size="large">被考核人:{{ params.name }}</el-tag>
                    <li v-if="!params.isDept">
                        <el-tag size="large">被考核人:{{ params.name}}</el-tag>
                    </li>
                    <li>
                        <el-tag size="large">部门:{{ params.deptName }}</el-tag>
                    </li>
                    <li>
                    <li v-if="!params.isDept">
                        <el-tag size="large">职务:{{ params.postName }}</el-tag>
                    </li>
                </ul>
@@ -26,8 +26,7 @@
  
<script>
import { getList, getDetail, remove, add, update } from '@/api/assessment/assessmentSet'
import { getList as getUserSelectList } from "@/api/system/user.js";
import _ from 'lodash'
import { getDeptList } from "@/api/assessment/assessmentSet.js";
export default {
    props: {
@@ -183,7 +182,7 @@
            this.$emit('changeIs', true)
        },
        rowSave(row, done, loading) {
            row.userId = this.params.id
            !this.params.isDept ? row.userId = this.params.id : row.deptId = this.params.id
            const toUser = this.selectList.find(option => row.toUserName === option.name)
            row.toUserId = toUser.id
            add(row).then(() => {
@@ -307,11 +306,18 @@
            const {
            } = this.query;
            let values = {
                // toUserId: this.params.id
                userId: this.params.id
                // userId: this.params.id
            };
            getList(page.currentPage, page.pageSize, values).then(res => {
            this.params.isDept && Object.assign(values, {
                deptId: this.params.id
            });
            !this.params.isDept && Object.assign(values, {
                userId: this.params.id
            });
            (this.params.isDept ? getDeptList(page.currentPage, page.pageSize, values) : getList(page.currentPage, page.pageSize, values)).then(res => {
                console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
@@ -322,7 +328,6 @@
        }
    },
    mounted() {
    }
}
</script>