| | |
| | | import request from '@/axios'; |
| | | |
| | | export const getList = (current, size, params) => { |
| | | // export const getList = (current, size, params) => { |
| | | // return request({ |
| | | // url: '/assessment/assessmentScore/list', |
| | | // method: 'get', |
| | | // params: { |
| | | // ...params, |
| | | // current, |
| | | // size, |
| | | // } |
| | | // }) |
| | | // } |
| | | |
| | | export const getList = (current, size, params, type, assessmentTaskId) => { |
| | | return request({ |
| | | url: '/assessment/assessmentScore/list', |
| | | url: `/assessment/assessmentScore/listGroupByTask/${type}/${assessmentTaskId}`, |
| | | method: 'get', |
| | | params: { |
| | | ...params, |
| | |
| | | type: "select", |
| | | width: 100, |
| | | disabled: true, |
| | | display: false, |
| | | formatter: (res) => { |
| | | return res.type === 0? '个人考核' : '部门考核'; |
| | | }, |
| | |
| | | label: "任务状态", |
| | | prop: "isAssessmentOk", |
| | | type: "input", |
| | | display: false, |
| | | width: 100, |
| | | slot: true |
| | | }, |
| | |
| | | handleWeight(row) { |
| | | this.weightParams = { ...row } |
| | | this.defaultTaskType && (this.weightParams = { ...row, isDept: true }) |
| | | this.weightParams.type = this.defaultTaskType |
| | | this.isWeight = false |
| | | }, |
| | | changeIs(is) { |
| | |
| | | <el-page-header @back="back" class="header"> |
| | | <template #content> |
| | | <ul class="info"> |
| | | <li>考核权重</li> |
| | | <li>{{ !params.type ? '个人考核权重' : '部门考核权重' }}</li> |
| | | <li v-if="!params.isDept"> |
| | | <el-tag size="large">被考核人:{{ params.name }}</el-tag> |
| | | </li> |
| | |
| | | </ul> |
| | | </template> |
| | | </el-page-header> |
| | | <avue-crud :option="option" v-model:search="search" v-model:page="page" v-model="form" :table-loading="loading" |
| | | :data="data" :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 :option="option" v-model:defaults="defaults" v-model:search="search" v-model:page="page" v-model="form" |
| | | :table-loading="loading" :data="data" :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> |
| | |
| | | } |
| | | }, |
| | | data() { |
| | | // const validateWeight = |
| | | // const validateRange = |
| | | return { |
| | | defaults: {}, |
| | | form: {}, |
| | | query: {}, |
| | | search: {}, |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "被考核人", |
| | | // prop: "userName", |
| | | // type: "input", |
| | | // hide: true, |
| | | // value: this.params.name, |
| | | // disabled: true, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请填写被考核人职务', |
| | | // trigger: 'click', |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // { |
| | | // label: "被考核人职务", |
| | | // prop: "postName", |
| | | // hide: true, |
| | | // type: "input", |
| | | // value: this.params.postName, |
| | | // disabled: true, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请填写被考核人职务', |
| | | // trigger: 'click', |
| | | // }, |
| | | // ], |
| | | // }, |
| | | { |
| | | label: "权值", |
| | | prop: "weight", |
| | | type: "input", |
| | | rules: [ |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('请输入权值')) |
| | | } else { |
| | | if (value > this.weightRange) { |
| | | callback(new Error('输入的权值不可超过' + this.weightRange)) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | }, |
| | | required: true, |
| | | message: '请填写权值', |
| | | trigger: 'click', |
| | | }, |
| | | ], |
| | |
| | | placeholder: '评分范围(100分制)±N', |
| | | rules: [ |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('请填写评分范围')) |
| | | } else { |
| | | if (value > 100) { |
| | | callback(new Error('输入的请填写评分范围不可超过100')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | }, |
| | | required: true, |
| | | message: '请填写评分范围', |
| | | trigger: 'click', |
| | | }, |
| | | ], |
| | |
| | | currentPage: 1, |
| | | total: 1, |
| | | }, |
| | | selectList: [] |
| | | selectList: [], |
| | | weightRange: 100, |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | !this.params.isDept ? row.userId = this.params.id : row.deptId = this.params.id |
| | | const toUser = this.selectList.find(option => option.name === row.toUserName) |
| | | row.toUserId = toUser.id |
| | | console.log(row); |
| | | (this.params.isDept ? addDept(row) : add(row)).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | |
| | | 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; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.setDefaultWeightRange(data.records) |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | }, |
| | | setDefaultWeightRange(data) { |
| | | let weightrange = 100 |
| | | data.forEach(item => { |
| | | weightrange -= item.weight |
| | | }) |
| | | this.weightRange = weightrange |
| | | this.defaults.weight.placeholder = `请输入权重(当前权重最大不可超过${weightrange})` |
| | | }, |
| | | }, |
| | | mounted() { |
| | | } |
| | |
| | | <div class="container"> |
| | | <el-page-header @back="back" class="header"> |
| | | <template #content> |
| | | <span>考核结果</span> |
| | | <span>{{ !params.type ? '个人考核结果' : '部门考核结果' }}</span> |
| | | </template> |
| | | </el-page-header> |
| | | <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" |
| | | :data="data" :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"> |
| | |
| | | menu: false, |
| | | menuWidth: 200, |
| | | column: [ |
| | | // { |
| | | // label: "考核编号", |
| | | // type: 'select', |
| | | // hide: true, |
| | | // search: true |
| | | // }, |
| | | { |
| | | label: "被考核人", |
| | | prop: "userName", |
| | | type: "input", |
| | | // search: true |
| | | }, |
| | | { |
| | | label: "工号", |
| | |
| | | prop: "postName", |
| | | type: "input", |
| | | }, |
| | | // { |
| | | // label: "人员类型", |
| | | // prop: "personnelType", |
| | | // type: "input", |
| | | // }, |
| | | { |
| | | label: "考核分", |
| | | prop: "scoreVal", |
| | |
| | | 'params': { |
| | | handler(val) { |
| | | this.rowData = val |
| | | this.query.assessmentTaskId = val.id |
| | | this.query.type = val.type |
| | | // this.query.assessmentTaskId = val.id |
| | | // this.query.type = val.type |
| | | if (val.type) { |
| | | const column = [ |
| | | { |
| | | label: "被考核部门", |
| | | prop: "deptName", |
| | | type: "input", |
| | | }, |
| | | { |
| | | label: "考核分数", |
| | | prop: "scoreVal", |
| | | type: "input", |
| | | } |
| | | ] |
| | | this.option.column = column |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true, |
| | |
| | | ...params |
| | | }; |
| | | |
| | | getList(page.currentPage, page.pageSize, values).then(res => { |
| | | const { id, type } = this.params |
| | | getList(page.currentPage, page.pageSize, values, type, id).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |