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