Compare commits

..

2 Commits

@ -108,17 +108,39 @@
v-hasPermi="['system:user:list']"
>多任务评分账号查看</el-button>
</el-col>
<!-- <el-col :span="2.5">
<el-button
type="primary"
plain
icon="el-icon-circle-plus-outline"
size="mini"
:disabled="single"
@click="bkhdxAddFun"
v-hasPermi="['kaohe:pingce:edit']"
>被考核对象添加</el-button>
</el-col>
<el-col :span="2.5">
<el-button
type="danger"
plain
icon="el-icon-remove-outline"
size="mini"
:disabled="single"
@click="bkhdxDelFun"
v-hasPermi="['kaohe:pingce:edit']"
>被考核对象删除</el-button>
</el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pingceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" fixed/>
<el-table border v-loading="loading" :data="pingceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<!-- <el-table-column label="主键" align="center" prop="id" />-->
<el-table-column label="考核任务名称" align="center" prop="pcTitle" />
<el-table-column label="考核任务描述" align="center" prop="pcDescription" />
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="创建时间" align="center" prop="createTime" min-width="110"/>
<el-table-column label="考核任务状态" align="center" prop="state">
<el-table-column label="创建时间" align="center" prop="createTime" width="160"/>
<el-table-column label="考核任务状态" align="center" prop="state" width="110">
<template slot-scope="scope">
<dict-tag :options="dict.type.kh_state" :value="scope.row.state"/>
</template>
@ -172,6 +194,15 @@
@click="viewUser(scope.row)"
>查看评分账号
</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['kaohe:pingce:edit']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="bkhdxAddFun" icon="el-icon-plus" v-hasPermi="['kaohe:pingce:edit']"></el-dropdown-item>
<el-dropdown-item command="bkhdxDelFun" icon="el-icon-delete" v-hasPermi="['kaohe:pingce:edit']"></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@ -302,10 +333,10 @@
<el-table :data="emp.selectList" style="width: 100%" border max-height="500">
<el-table-column label="操作" width="50" fixed align="center">
<template slot-scope="scope">
<i class="el-icon-remove-outline" style="font-size: 20px;color:#F56C6C;" @click="selectListDel(scope.row,scope.$index)"></i>
<i v-if="!scope.row.disabled" class="el-icon-remove-outline" style="font-size: 20px;color:#F56C6C;"
@click="selectListDel(scope.row,scope.$index)"></i>
</template>
</el-table-column>
<!-- <el-table-column label="主键" align="center" prop="id" />-->
<el-table-column label="工号" align="center" prop="wordId"/>
<el-table-column label="部门名称" align="center" prop="deptName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="职工姓名" align="center" prop="empName" :show-overflow-tooltip="true" min-width="100"/>
@ -323,10 +354,10 @@
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
style="margin-bottom: 10px"
/>
</div>
<div class="head-container">
<div class="head-container" style="max-height: 490px;overflow: auto;border: 1px solid #eee;">
<el-tree
:data="deptOptions"
:props="defaultProps"
@ -355,7 +386,7 @@
</el-form-item>
</el-form>
<el-table border ref="empTable" v-loading="emp.loading" :data="emp.list" @select="empSelect" @select-all="empSelectAll">
<el-table-column type="selection" width="50" align="center" />
<el-table-column type="selection" width="50" align="center" :selectable="empSelectable"/>
<el-table-column label="工号" align="center" prop="wordId"/>
<el-table-column label="部门名称" align="center" prop="deptName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="职工姓名" align="center" prop="empName" :show-overflow-tooltip="true" min-width="100"/>
@ -688,11 +719,88 @@
</div>
</el-dialog>
<!-- 被考核对象添加对话框 -->
<el-dialog title="被考核对象添加" :visible.sync="bkhdxAdd.open" width="800px" append-to-body :close-on-click-modal="false">
<el-form ref="bkhdxForm" :model="bkhdxAdd.form" label-width="110px">
<el-form-item label="考核任务名称" prop="pcTitle">
<el-input v-model="bkhdxAdd.form.pcTitle" placeholder="请输入考核任务名称" :disabled="true"/>
</el-form-item>
<el-form-item label="被考核对象" v-if="bkhdxAdd.form.bkhdxType==='1'">
<el-button type="primary" @click="selectEmp" size="mini">选择职工</el-button>
<el-table :data="bkhdxAdd.form_bkh_zg" style="width: 100%; margin-top: 10px" border max-height="500">
<el-table-column label="操作" width="100" fixed align="center">
<template slot-scope="scope">
<i v-if="!scope.row.disabled" class="el-icon-remove-outline" style="font-size: 20px;color:#F56C6C;" @click="delEmpList(scope.row,scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="工号" align="center" prop="wordId"/>
<el-table-column label="部门名称" align="center" prop="deptName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="职工姓名" align="center" prop="empName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="身份" align="center" prop="position" />
</el-table>
</el-form-item>
<el-form-item label="被考核对象" v-if="bkhdxAdd.form.bkhdxType==='0'">
<el-checkbox v-model="bkhdxAdd.deptExpand" :disabled="bkhdxAdd.form.state!=='0'" @change="handleCheckedTreeExpand($event, 'bkhdxDept')">/</el-checkbox>
<el-checkbox v-model="bkhdxAdd.form.deptCheckStrictly" :disabled="bkhdxAdd.form.state!=='0'" @change="handleCheckedTreeConnect($event, 'bkhdxDept')"></el-checkbox>
<el-tree
:disabled="bkhdxAdd.form.state!=='0'"
class="tree-border"
:data="deptOptions"
show-checkbox
default-expand-all
ref="bkhdxDept"
node-key="id"
:check-strictly="!bkhdxAdd.form.deptCheckStrictly"
empty-text="加载中,请稍候"
:props="defaultProps"
></el-tree>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="bkhdxAddSubmitForm"> </el-button>
<el-button @click="bkhdxAddCancel"> </el-button>
</div>
</el-dialog>
<!-- 被考核对象删除对话框 -->
<el-dialog title="被考核对象删除" :visible.sync="bkhdxDel.open" width="800px" append-to-body :close-on-click-modal="false">
<el-row :gutter="10">
<el-col :span="20">
<span>考核任务名称{{ bkhdxDel.form.pcTitle }}</span>
<el-button
style="margin-left: 15px;"
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="bkhdxDel.multiple"
@click="bkhdxDelRemove"
>删除</el-button>
</el-col>
<el-col :span="24" v-if="bkhdxDel.form.bkhdxType==='1'">
<el-table :data="bkhdxDel.list" border max-height="500" @selection-change="bkhdxDelSelectionChange" style="width: 100%; margin-top: 10px">
<el-table-column type="selection" width="55" align="center" fixed/>
<el-table-column label="工号" align="center" prop="wordId"/>
<el-table-column label="部门名称" align="center" prop="deptName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="职工姓名" align="center" prop="bkhdxName" :show-overflow-tooltip="true" min-width="100"/>
<el-table-column label="身份" align="center" prop="position" />
</el-table>
</el-col>
<el-col :span="24" v-if="bkhdxDel.form.bkhdxType==='0'">
<el-table :data="bkhdxDel.list" border max-height="500" @selection-change="bkhdxDelSelectionChange" style="width: 100%; margin-top: 10px">
<el-table-column type="selection" width="55" align="center" fixed/>
<el-table-column label="部门ID" align="center" prop="deptId"/>
<el-table-column label="部门名称" align="center" prop="deptName" :show-overflow-tooltip="true" min-width="100"/>
</el-table>
</el-col>
</el-row>
</el-dialog>
</div>
</template>
<script>
import { listPingce, getPingce, delPingce, addPingce, updatePingce, getItemVote, addsUser, generateResult, pcItemVotes } from "@/api/kaohe/pingce";
import { listPingce, getPingce, delPingce, addPingce, updatePingce, getItemVote, addsUser, generateResult, pcItemVotes, modifyBkhdx } from "@/api/kaohe/pingce";
import { listKh_result } from "@/api/kaohe/kh_result";
import { deptTreeSelect, ldUserlist, delUser, delUserPingfen } from "@/api/system/user";
import { listTemplate } from "@/api/kaohe/template";
@ -710,6 +818,32 @@ export default {
components: { Treeselect, TableColumn },
data() {
return {
//
bkhdxAdd:{
open: false,
//
form: {},
//
form_bkh_zg: [],
// /
deptExpand: true,
//
xzKeys: []
},
//
bkhdxDel:{
open: false,
//
form: {},
//
list:[],
//
selectedRows: [],
//
ids: [],
//
multiple: true,
},
//
khdf:{
title:'',
@ -791,6 +925,7 @@ export default {
deptName: undefined,
/** 选择职工*/
emp: {
type: 1, // 1 2
//
open: false,
//
@ -808,6 +943,8 @@ export default {
selectList: [],
//
total: 0,
// Ids
yIds: []
},
//
pcSetUp: {
@ -905,6 +1042,19 @@ export default {
this.getVoteItemsList();
},
methods: {
//
handleCommand(command, row) {
switch (command) {
case "bkhdxAddFun":
this.bkhdxAddFun(row)
break
case "bkhdxDelFun":
this.bkhdxDelFun(row)
break
default:
break
}
},
samePercentChange(row){
let voteEmps = [];
if(row.vote.samePercent==='1'){
@ -956,7 +1106,8 @@ export default {
};
this.$nextTick(() => {
this.$refs.dept.setCheckedKeys([])
})
});
this.clearDisabledByKeys()
this.resetForm("form")
},
/** 搜索按钮操作 */
@ -991,6 +1142,8 @@ export default {
if(response.data.state==='0'){
this.form = response.data;
if(this.form.bkhdxType==='1'){
this.emp.type = 1;
this.emp.yIds = [];
this.form.pcBkhdxs.forEach(item=>{
this.form_bkh_zg.push({
id: item.bkhdxId,
@ -1131,7 +1284,12 @@ export default {
//
selectEmp(){
this.emp.open = true;
this.emp.selectList = [...this.form_bkh_zg]
if(this.emp.type === 1){
this.emp.selectList = [...this.form_bkh_zg]
}
if(this.emp.type === 2){
this.emp.selectList = [...this.bkhdxAdd.form_bkh_zg]
}
this.emp.queryParams.pageNum = 1;
this.empQuery();
},
@ -1153,9 +1311,22 @@ export default {
})
});
},
//
empSelectable(row) {
if(this.emp.yIds.indexOf(row.id)===-1) {
return true; //
} else {
return false; //
}
},
/** 职工选择弹出框 确认*/
empConfirm() {
this.form_bkh_zg = this.emp.selectList;
if(this.emp.type === 1){
this.form_bkh_zg = this.emp.selectList;
}
if(this.emp.type === 2){
this.bkhdxAdd.form_bkh_zg = this.emp.selectList;
}
this.emp.open = false
},
// Checkbox selection, row
@ -1175,7 +1346,7 @@ export default {
// Checkbox selection
empSelectAll(val){
this.$nextTick(()=> {
if(val.length > 0){
if(this.$refs['empTable'].store.states.isAllSelected){
val.forEach(item=>{
if(this.emp.selectList.filter(item1=>{ return item1.id===item.id}).length<1){
this.emp.selectList.push(item)
@ -1184,7 +1355,7 @@ export default {
}else {
this.emp.list.forEach(item=>{
this.emp.selectList.forEach((item1,index)=>{
if(item1.id===item.id){
if(item1.id===item.id && this.emp.yIds.indexOf(item.id)===-1){
this.emp.selectList.splice(index,1)
}
})
@ -1202,7 +1373,12 @@ export default {
})
},
delEmpList(row,index){
this.form_bkh_zg.splice(index,1)
if(this.emp.type === 1){
this.form_bkh_zg.splice(index,1)
}
if(this.emp.type === 2){
this.bkhdxAdd.form_bkh_zg.splice(index,1)
}
},
//
handleSetUp(row){
@ -1251,7 +1427,6 @@ export default {
pageSize: 1000000000,
voteId: row.vote.id,
}).then(response1 => {
console.log(response1.rows);
let voteEmps = [];
response1.rows.forEach(item => {
voteEmps.push({
@ -1442,6 +1617,14 @@ export default {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value
}
}
if (type == 'bkhdxDept') {
let treeList = this.deptOptions
for (let i = 0; i < treeList.length; i++) {
if(!treeList[i].disabled){
this.$refs.bkhdxDept.store.nodesMap[treeList[i].id].expanded = value
}
}
}
},
// /
handleCheckedTreeNodeAll(value, type) {
@ -1454,6 +1637,9 @@ export default {
if (type == 'dept') {
this.form.deptCheckStrictly = value ? true: false
}
if (type == 'bkhdxDept') {
this.bkhdxAdd.form.deptCheckStrictly = value ? true: false
}
},
/** 查询部门下拉树结构 */
getDeptTree() {
@ -1773,7 +1959,184 @@ export default {
this.download('system/user/taskExport', {
...this.drwScpfzhInfo.queryParams
}, `多任务评分账号_${new Date().getTime()}.xlsx`)
}
},
//
bkhdxAddReset() {
this.bkhdxAdd.deptExpand = true;
this.bkhdxAdd.deptNodeAll = false;
this.bkhdxAdd.form_bkh_zg = [];
this.bkhdxAdd.form = {};
this.$nextTick(() => {
this.$refs.bkhdxDept.setCheckedKeys([]);
})
this.resetForm("bkhdxForm");
},
//
bkhdxAddFun(row){
this.bkhdxAddReset();
getPingce(row.id).then(response => {
this.bkhdxAdd.form = response.data;
if(this.bkhdxAdd.form.bkhdxType==='1'){
this.emp.type = 2;
let arr = [];
this.bkhdxAdd.form.pcBkhdxs.forEach(item=>{
arr.push(item.bkhdxId)
this.bkhdxAdd.form_bkh_zg.push({
id: item.bkhdxId,
empName: item.bkhdxName,
deptId: item.deptId,
deptName: item.deptName,
position: item.position,
wordId: item.wordId,
disabled: true
})
})
this.emp.yIds = arr;
}
if(this.bkhdxAdd.form.bkhdxType==='0'){
let Keys = [];
this.bkhdxAdd.form.pcBkhdxs.forEach(item=>{
Keys.push(item.bkhdxId);
})
this.setDisabledByKeys(Keys, true);
this.bkhdxAdd.xzKeys = Keys;
this.$nextTick(() => {
this.$refs.bkhdxDept.setCheckedKeys(Keys)
})
}
this.bkhdxAdd.form.pcBkhdxs = [];
this.bkhdxAdd.open = true;
})
},
// keys
setDisabledByKeys(keys, disabled) {
const setDisabled = (data) => {
data.forEach(item => {
if (keys.includes(item.id)) {
item.disabled = disabled
}
if (item.children && item.children.length > 0) {
setDisabled(item.children)
}
})
}
setDisabled(this.deptOptions);
},
// keys
clearDisabledByKeys() {
const setDisabled = (data) => {
data.forEach(item => {
item.disabled = false
if (item.children && item.children.length > 0) {
setDisabled(item.children)
}
})
}
setDisabled(this.deptOptions);
},
//
bkhdxAddCancel() {
this.bkhdxAdd.open = false
this.bkhdxAddReset()
},
/** 被考核对象提交按钮 */
bkhdxAddSubmitForm() {
this.$refs["bkhdxForm"].validate(valid => {
if (valid) {
let flag = true;
// -
if(this.bkhdxAdd.form.bkhdxType==='1'){
if( this.bkhdxAdd.form_bkh_zg && this.bkhdxAdd.form_bkh_zg.length <1 ){
flag = false;
this.$alert(`还没有选择被考核对象,请选择被考核对象!`, `提示`, {
type: 'warning'
})
}else {
this.bkhdxAdd.form_bkh_zg.forEach(item=>{
if(!item.disabled){
this.bkhdxAdd.form.pcBkhdxs.push({
bkhdxId: item.id,
bkhdxName: item.empName,
deptId: item.deptId,
deptName: item.deptName,
position: item.position,
wordId: item.wordId,
})
}
})
}
}
// -
if(this.bkhdxAdd.form.bkhdxType==='0'){
//
let xzNodes = this.$refs.bkhdxDept.getCheckedNodes();
if(xzNodes && xzNodes.length<1){
flag = false;
this.$alert(`还没有选择需要添加的被考核对象,请选择需要添加的被考核对象!`, `提示`, {
type: 'warning'
})
}else {
xzNodes.forEach(item=>{
if(!item.disabled){
this.bkhdxAdd.form.pcBkhdxs.push({
bkhdxId: item.id,
bkhdxName: item.label,
deptId: item.id,
deptName: item.label,
})
}
})
}
}
if(flag){
modifyBkhdx({...this.bkhdxAdd.form, addOrDel:0 }).then(response => {
this.$modal.msgSuccess("修改成功")
this.bkhdxAdd.open = false
this.getList()
})
}
}
})
},
//
bkhdxDelSelectionChange(selection){
this.bkhdxDel.selectedRows = selection.map(item => item)
this.bkhdxDel.ids = selection.map(item => item.id)
this.bkhdxDel.multiple = !selection.length
},
//
bkhdxDelReset() {
this.bkhdxDel.form = {};
this.bkhdxDel.list = [];
},
//
bkhdxDelFun(row){
this.bkhdxDelReset();
getPingce(row.id).then(response => {
this.bkhdxDel.form = response.data;
this.bkhdxDel.list = response.data.pcBkhdxs
this.bkhdxDel.open = true;
})
},
/** 删除按钮操作 */
bkhdxDelRemove() {
this.$modal.confirm('是否确认删除该数据项?').then(()=> {
const DataForm={...this.bkhdxDel.form}
DataForm.pcBkhdxs = this.bkhdxDel.selectedRows;
modifyBkhdx({...DataForm, addOrDel: 1 }).then(response => {
this.$modal.msgSuccess("删除成功")
this.bkhdxDel.open = false
this.getList()
})
}).catch(() => {})
},
}
}
</script>
<style lang="scss" scoped>
.tree-border{
max-height: 500px;
overflow: auto;
}
</style>

Loading…
Cancel
Save