工艺管理-班组管理-班组长/计划员/调度员-数据回显

dev-scheduling
ysn 4 days ago
parent c988cdf59a
commit 2f8620b454
  1. 542
      src/views/basicData/teamManagement.vue

@ -20,22 +20,18 @@
@on-load="onLoad" @on-load="onLoad"
> >
<template #menu-left> <template #menu-left>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" <el-button type="danger" @click="handleDelete"> </el-button>
>
</el-button>
<!-- <el-button type="success" icon="el-icon-upload" @click="handleImport" <!-- <el-button type="success" icon="el-icon-upload" @click="handleImport"
>导入 >导入
</el-button> --> </el-button> -->
</template> </template>
<template #menu-right> <template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button> <el-button type="primary" @click="handleImport">导入</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="setCrew(scope.row)">设置班组人员</el-button> <el-button type="text" @click="setCrew(scope.row)">设置班组人员</el-button>
<el-button type="text" @click="changeTime(scope.row, 0)">日分派时间</el-button> <el-button type="text" @click="changeTime(scope.row, 0)">日分派时间</el-button>
<el-button type="text" @click="changeTime(scope.row, 1)" <el-button type="text" @click="changeTime(scope.row, 1)">特殊日分派时间</el-button>
>特殊日分派时间</el-button
>
<el-button type="text" @click="changeTime(scope.row, 2)">轮换时间</el-button> <el-button type="text" @click="changeTime(scope.row, 2)">轮换时间</el-button>
</template> </template>
<template #teamLeader="{ row }"> <template #teamLeader="{ row }">
@ -64,40 +60,52 @@
</template> --> </template> -->
<template #teamLeader-form="{ type }"> <template #teamLeader-form="{ type }">
<span v-show="type == 'edit' || type == 'add'"> <span v-show="type == 'edit' || type == 'add'">
<el-select v-model="form.teamLeader" placeholder="请选择班组长" <el-select
filterable clearable> v-model="form.teamLeader"
placeholder="请选择班组长"
filterable
clearable
>
<el-option <el-option
v-for="item in userData" v-for="item in userData"
:key="item.id" :key="item.id"
:value="item.id" :value="item.id"
:label="item.realName" :label="item.realName"
></el-option> />
</el-select> </el-select>
</span> </span>
</template> </template>
<template #planner-form="{ type }"> <template #planner-form="{ type }">
<span v-show="type == 'edit' || type == 'add'"> <span v-show="type == 'edit' || type == 'add'">
<el-select v-model="form.planner" placeholder="请选择计划员" <el-select
filterable clearable> v-model="form.planner"
placeholder="请选择计划员"
filterable
clearable
>
<el-option <el-option
v-for="item in plannerData" v-for="item in plannerData"
:key="item.id" :key="item.id"
:value="item.id" :value="item.id"
:label="item.realName" :label="item.realName"
></el-option> />
</el-select> </el-select>
</span> </span>
</template> </template>
<template #dispatcher-form="{ type }"> <template #dispatcher-form="{ type }">
<span v-show="type == 'edit' || type == 'add'"> <span v-show="type == 'edit' || type == 'add'">
<el-select v-model="form.dispatcher" placeholder="请选择调度员" <el-select
filterable clearable> v-model="form.dispatcher"
placeholder="请选择调度员"
filterable
clearable
>
<el-option <el-option
v-for="item in dispatcherData" v-for="item in dispatcherData"
:key="item.id" :key="item.id"
:value="item.id" :value="item.id"
:label="item.realName" :label="item.realName"
></el-option> />
</el-select> </el-select>
</span> </span>
</template> </template>
@ -105,7 +113,7 @@
<el-dialog class="setCrewBox" title="设置人员" append-to-body v-model="crewDialog" width="60%"> <el-dialog class="setCrewBox" title="设置人员" append-to-body v-model="crewDialog" width="60%">
<tree-transfer <tree-transfer
class="trans_ware" class="trans_ware"
style="margin-top: 10px;" style="margin-top: 10px"
ref="transferRef" ref="transferRef"
:titleList="['未选择', '已选择']" :titleList="['未选择', '已选择']"
v-model:fromData="noChooseUser" v-model:fromData="noChooseUser"
@ -120,25 +128,20 @@
rootPid="0" rootPid="0"
/> />
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="crewDialog = false"> </el-button> <el-button @click="crewDialog = false"> </el-button>
<el-button type="primary" @click="submitPeople"> </el-button> <el-button type="primary" @click="submitPeople"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
<el-dialog title="时间" append-to-body v-model="timeDialog" width="60%"> <el-dialog title="时间" append-to-body v-model="timeDialog" width="60%">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="insertEvent()" <el-button type="primary" icon="el-icon-plus" @click="insertEvent()">插入一行</el-button>
>插入一行</el-button
>
<el-button plain type="danger" @click="remove">删除选择行</el-button> <el-button plain type="danger" @click="remove">删除选择行</el-button>
<!-- <el-button type="primary" @click="handleSave">保存</el-button> --> <!-- <el-button type="primary" @click="handleSave">保存</el-button> -->
</div> </div>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<el-table <el-table :data="timeList" @select="selectChange">
:data="timeList"
@select="selectChange"
>
<el-table-column type="selection" width="55px"></el-table-column> <el-table-column type="selection" width="55px"></el-table-column>
<el-table-column align="center" label="开始时间"> <el-table-column align="center" label="开始时间">
<template #default="scope"> <template #default="scope">
@ -167,72 +170,87 @@
</el-table> </el-table>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="timeDialog = false"> </el-button> <el-button @click="timeDialog = false"> </el-button>
<el-button type="primary" @click="submitTime"> </el-button> <el-button type="primary" @click="submitTime"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import
v-if="isShowImport"
title="导入"
:isShow="isShowImport"
templateUrl="/blade-desk/BA/TeamSet/downloadExcelTemplate" templateUrl="/blade-desk/BA/TeamSet/downloadExcelTemplate"
templateName="班组模板.xls" templateName="班组模板.xls"
importUrl="/blade-desk/BA/TeamSet/importExcel" importUrl="/blade-desk/BA/TeamSet/importExcel"
@closeDialog="closeDialog"></basic-import> @closeDialog="closeDialog"
></basic-import>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import {getList,addTeam,updateTeam,getAllUser,deleteTeam,getNotSelectUser,getSelectUser,getDeptUser,saveUser,getDispatchTime,saveDispatchTime} from "@/api/basicData/teamManagement.js" import {
import basicImport from '@/components/basic-import/main.vue' getList,
import treeTransfer from 'tree-transfer-vue3' // addTeam,
updateTeam,
getAllUser,
deleteTeam,
getNotSelectUser,
getSelectUser,
getDeptUser,
saveUser,
getDispatchTime,
saveDispatchTime,
} from '@/api/basicData/teamManagement.js';
import basicImport from '@/components/basic-import/main.vue';
import treeTransfer from 'tree-transfer-vue3'; //
export default { export default {
components: { components: {
basicImport, basicImport,
treeTransfer treeTransfer,
}, },
data() { data() {
return { return {
isShowImport:false, isShowImport: false,
data: [], data: [],
page: { page: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
peopleValue:[], peopleValue: [],
peopleData:[], peopleData: [],
timeList: [], timeList: [],
deleteTidArr: [], // deleteTidArr: [], //
form: {}, form: {},
crewDialog: false, crewDialog: false,
timeDialog: false, timeDialog: false,
noChooseUser:[], // noChooseUser: [], //
chooseUser:[], // chooseUser: [], //
csData: [ csData: [
{ {
csId: 18, csId: 18,
csName: "白班", csName: '白班',
keyValue: 18, keyValue: 18,
}, },
{ {
csId: 19, csId: 19,
csName: "晚班", csName: '晚班',
keyValue: 19, keyValue: 19,
}, },
], ],
crewData: [], // crewData: [], //
userData: [], userData: [],
plannerData:[], plannerData: [],
dispatcherData:[], dispatcherData: [],
query: {}, query: {},
loading: true, loading: true,
excelBox: false, excelBox: false,
option: { option: {
tip: false, tip: false,
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
simplePage: false, simplePage: false,
searchShow: true, searchShow: true,
@ -245,8 +263,8 @@ export default {
selection: true, selection: true,
viewBtn: false, viewBtn: false,
delBtn: false, delBtn: false,
editBtnText: "修改", editBtnText: '修改',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
menuWidth: 440, menuWidth: 440,
dialogWidth: 600, dialogWidth: 600,
@ -256,21 +274,21 @@ export default {
searchShowBtn: false, searchShowBtn: false,
excelBtn: true, excelBtn: true,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "center", menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [ column: [
{ {
label: "编码", label: '编码',
prop: "tsCode", prop: 'tsCode',
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
@ -279,14 +297,14 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入编码", message: '请输入编码',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "名称", label: '名称',
prop: "tsName", prop: 'tsName',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
@ -295,16 +313,16 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入名称", message: '请输入名称',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "班组长", label: '班组长',
prop: "teamLeader", prop: 'teamLeader',
search: false, search: false,
type: "select", type: 'select',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
@ -312,67 +330,67 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择班组长", message: '请选择班组长',
trigger: "blur", trigger: 'blur',
}, },
], ],
dicUrl:"/api/blade-system/user/page?current=1&size=9999", dicUrl: '/api/blade-system/user/page?current=1&size=9999',
props: { props: {
label: "realName", label: 'realName',
value: "id", value: 'id',
res:"data.records" res: 'data.records',
}, },
}, },
{ {
label: "计划员", label: '计划员',
prop: "planner", prop: 'planner',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
type: "select", type: 'select',
span: 24, span: 24,
width: 150, width: 150,
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择计划员", message: '请选择计划员',
trigger: "blur", trigger: 'blur',
}, },
], ],
dicUrl:"/api/blade-system/user/page?current=1&size=9999", dicUrl: '/api/blade-system/user/page?current=1&size=9999',
props: { props: {
label: "realName", label: 'realName',
value: "id", value: 'id',
res:"data.records" res: 'data.records',
}, },
}, },
{ {
label: "调度员", label: '调度员',
prop: "dispatcher", prop: 'dispatcher',
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
remote: true, remote: true,
type: "select", type: 'select',
span: 24, span: 24,
width: 150, width: 150,
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择调度员", message: '请选择调度员',
trigger: "blur", trigger: 'blur',
}, },
], ],
dicUrl:"/api/blade-system/user/page?current=1&size=9999&realName={{key}}", dicUrl: '/api/blade-system/user/page?current=1&size=9999&realName={{key}}',
props: { props: {
label: "realName", label: 'realName',
value: "id", value: 'id',
res:"data.records" res: 'data.records',
}, },
}, },
{ {
label: "班组人员", label: '班组人员',
prop: "teamMember", prop: 'teamMember',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -383,46 +401,46 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择班组人员", message: '请选择班组人员',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "班次", label: '班次',
prop: "csId", prop: 'csId',
search: false, search: false,
type: "select", type: 'select',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
width: 150, width: 150,
props: { props: {
label: "name", label: 'name',
value: "id", value: 'id',
}, },
dicUrl:"/api/blade-desk/BA/Shifts/listForSelect" dicUrl: '/api/blade-desk/BA/Shifts/listForSelect',
}, },
{ {
label: "类型分类", label: '类型分类',
prop: "tsType", prop: 'tsType',
search: false, search: false,
type: "select", type: 'select',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
width: 150, width: 150,
dicData: [ dicData: [
{ value: '1',label: "针孔",}, { value: '1', label: '针孔' },
{ value: '2',label: "壳体",}, { value: '2', label: '壳体' },
{ value: '3',label: "烧结",}, { value: '3', label: '烧结' },
{ value: '4',label: "园区",}, { value: '4', label: '园区' },
// { value: 5,label: "",}, // { value: 5,label: "",},
], ],
}, },
{ {
label: "日分派时间", label: '日分派时间',
prop: "dayPutDueTime", prop: 'dayPutDueTime',
search: false, search: false,
sortable: true, sortable: true,
editDisplay: false, editDisplay: false,
@ -433,14 +451,14 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入日分派时间", message: '请输入日分派时间',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "特殊日分派时间", label: '特殊日分派时间',
prop: "specDayPutDueTime", prop: 'specDayPutDueTime',
search: false, search: false,
sortable: true, sortable: true,
editDisplay: false, editDisplay: false,
@ -451,14 +469,14 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入特殊日分派时间", message: '请输入特殊日分派时间',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "轮换时间", label: '轮换时间',
prop: "exChangeTime", prop: 'exChangeTime',
search: false, search: false,
sortable: true, sortable: true,
editDisplay: false, editDisplay: false,
@ -469,16 +487,16 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入轮换时间", message: '请输入轮换时间',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "特殊", label: '特殊',
prop: "special", prop: 'special',
search: false, search: false,
type: "select", type: 'select',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
@ -486,38 +504,38 @@ export default {
dicData: [ dicData: [
{ {
value: '1', value: '1',
label: "是", label: '是',
}, },
{ {
value: '0', value: '0',
label: "否", label: '否',
}, },
], ],
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择特殊", message: '请选择特殊',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
], ],
}, },
selectionList: [], selectionList: [],
checkId:'', checkId: '',
checkTimeType:0 checkTimeType: 0,
}; };
}, },
mounted() {}, mounted() {},
methods: { methods: {
// //
handleImport() { handleImport() {
this.isShowImport = true this.isShowImport = true;
}, },
handleDelete(){ handleDelete() {
if(this.selectionList.length == 0){ if (this.selectionList.length == 0) {
this.$message.error('请至少选择一条数据') this.$message.error('请至少选择一条数据');
return return;
} }
const count = this.selectionList.length; const count = this.selectionList.length;
this.$confirm(`确定要删除选中的 ${count} 条班组数据吗?此操作不可恢复!`, '删除确认', { this.$confirm(`确定要删除选中的 ${count} 条班组数据吗?此操作不可恢复!`, '删除确认', {
@ -525,19 +543,21 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
confirmButtonClass: 'el-button--danger', confirmButtonClass: 'el-button--danger',
}).then(() => { })
deleteTeam({ .then(() => {
ids: this.selectionList.map(item => item.id).join(',') deleteTeam({
}).then(res =>{ ids: this.selectionList.map(item => item.id).join(','),
if(res.data.code == 200){ }).then(res => {
this.$message.success('删除成功') if (res.data.code == 200) {
this.selectionList = []; this.$message.success('删除成功');
this.onLoad() this.selectionList = [];
} this.onLoad();
}
});
}) })
}).catch(() => { .catch(() => {
// //
}); });
}, },
// //
selectionChange(list) { selectionChange(list) {
@ -548,26 +568,26 @@ export default {
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
}, },
rowUpdate(row, index, done, loading) { rowUpdate(row, index, done, loading) {
row.csId = row.csId ? row.csId : null row.csId = row.csId ? row.csId : null;
row.tsType = row.tsType ? row.tsType : null row.tsType = row.tsType ? row.tsType : null;
row.special = row.special ? row.special : '' row.special = row.special ? row.special : '';
updateTeam(row).then(res =>{ updateTeam(row).then(res => {
if(res.data.code == 200){ if (res.data.code == 200) {
this.$message.success('修改成功') this.$message.success('修改成功');
this.onLoad() this.onLoad();
done() done();
} }
}) });
}, },
rowSave(row, done, loading) { rowSave(row, done, loading) {
console.log('row-----------',row) console.log('row-----------', row);
addTeam(row).then(res =>{ addTeam(row).then(res => {
if(res.data.code == 200){ if (res.data.code == 200) {
this.$message.success('添加成功') this.$message.success('添加成功');
this.onLoad() this.onLoad();
done() done();
} }
}) });
}, },
searchReset() { searchReset() {
this.query = {}; this.query = {};
@ -580,10 +600,10 @@ export default {
done(); done();
}, },
rowDel(row, index, done) { rowDel(row, index, done) {
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => {}); }).then(() => {});
}, },
// //
@ -591,16 +611,16 @@ export default {
this.checkId = row.id; this.checkId = row.id;
this.checkTimeType = val; this.checkTimeType = val;
getDispatchTime({ getDispatchTime({
id:row.id, id: row.id,
special:val special: val,
}).then(res =>{ }).then(res => {
console.log('res-----------',res) console.log('res-----------', res);
res.data.data.map(item =>{ res.data.data.map(item => {
item._select = false item._select = false;
}) });
this.timeList = res.data.data; this.timeList = res.data.data;
this.timeDialog = true; this.timeDialog = true;
}) });
// this.timeList = []; // this.timeList = [];
// // if(val == 1){ // // if(val == 1){
// this.timeList = [ // this.timeList = [
@ -611,33 +631,33 @@ export default {
// this.timeDialog = true; // this.timeDialog = true;
// // } // // }
}, },
submitTime(){ submitTime() {
if(this.timeList.length == 0){ if (this.timeList.length == 0) {
this.$message.error("请添加一条数据!"); this.$message.error('请添加一条数据!');
return; return;
} }
const timeData = [] const timeData = [];
this.timeList.map(item =>{ this.timeList.map(item => {
timeData.push({ timeData.push({
startTime:item.startTime, startTime: item.startTime,
endTime:item.endTime, endTime: item.endTime,
special:this.checkTimeType special: this.checkTimeType,
}) });
}) });
let params = { let params = {
id:this.checkId, id: this.checkId,
special:this.checkTimeType, special: this.checkTimeType,
teamTimes:timeData teamTimes: timeData,
} };
saveDispatchTime(params).then(res =>{ saveDispatchTime(params).then(res => {
if(res.data.code === 200){ if (res.data.code === 200) {
this.$message.success('设置成功'); this.$message.success('设置成功');
this.timeDialog = false this.timeDialog = false;
this.onLoad() this.onLoad();
} }
}) });
}, },
selectChange(list, row){ selectChange(list, row) {
row._select = !row._select; row._select = !row._select;
}, },
// //
@ -647,32 +667,32 @@ export default {
}, },
// //
remove() { remove() {
let arr = this.timeList.filter((item) => item._select); let arr = this.timeList.filter(item => item._select);
if (arr.length != 0) { if (arr.length != 0) {
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => { }).then(() => {
if (this.rowId) { if (this.rowId) {
let deleteData = this.timeList.filter((item) => item._select); let deleteData = this.timeList.filter(item => item._select);
this.deleteTidArr = deleteData.filter((item) => item.tidId); this.deleteTidArr = deleteData.filter(item => item.tidId);
} }
let deleteArr = this.timeList.filter((item) => !item._select); let deleteArr = this.timeList.filter(item => !item._select);
this.timeList = deleteArr; this.timeList = deleteArr;
}); });
} else { } else {
this.$message.error("请至少选择一条数据进行操作!"); this.$message.error('请至少选择一条数据进行操作!');
} }
}, },
// //
handleSave() { handleSave() {
if (this.timeList.length == 0) { if (this.timeList.length == 0) {
this.$message.error("请至少填写一条数据"); this.$message.error('请至少填写一条数据');
} else { } else {
let tmp = this.timeList.find((item) => item.startTime && item.endTime); let tmp = this.timeList.find(item => item.startTime && item.endTime);
if (!tmp) { if (!tmp) {
this.$message.error("数据请填写完整!"); this.$message.error('数据请填写完整!');
} }
} }
}, },
@ -683,7 +703,7 @@ export default {
const newItem = { const newItem = {
...item, ...item,
parentId // parentId parentId, // parentId
// pid // pid
}; };
@ -698,9 +718,9 @@ export default {
// //
async setCrew(row) { async setCrew(row) {
this.checkId = row.id; this.checkId = row.id;
const users = await getDeptUser({teamSetId: row.id}); const users = await getDeptUser({ teamSetId: row.id });
this.chooseUser = this.processTree(users.data.data.teamSelects) this.chooseUser = this.processTree(users.data.data.teamSelects);
this.noChooseUser = this.processTree(users.data.data.teamUnSelects) this.noChooseUser = this.processTree(users.data.data.teamUnSelects);
this.crewDialog = true; this.crewDialog = true;
// const notUser = await getNotSelectUser({id: row.id}); // const notUser = await getNotSelectUser({id: row.id});
@ -721,7 +741,7 @@ export default {
items.forEach(item => { items.forEach(item => {
// //
const hasChildren = Array.isArray(item.children) && item.children.length > 0; const hasChildren = Array.isArray(item.children) && item.children.length > 0;
if (!hasChildren) { if (!hasChildren) {
// id // id
leafIds.push(item.id); leafIds.push(item.id);
@ -736,37 +756,57 @@ export default {
return leafIds; return leafIds;
}, },
submitPeople(){ submitPeople() {
let userArr = this.getLeafIds(this.chooseUser).map(item => item.replace('user-',"")) let userArr = this.getLeafIds(this.chooseUser).map(item => item.replace('user-', ''));
let params = { let params = {
id:this.checkId, id: this.checkId,
userIds:userArr userIds: userArr,
} };
saveUser(params).then(res =>{ saveUser(params).then(res => {
if(res.data.code === 200){ if (res.data.code === 200) {
this.$message.success('人员设置成功') this.$message.success('人员设置成功');
this.crewDialog = false this.crewDialog = false;
this.onLoad() this.onLoad();
} }
}) });
}, },
//
async beforeOpen(done, type, loading) { async beforeOpen(done, type, loading) {
// try {
const res = await getAllUser({current:1, size:9999}) const res = await getAllUser({ current: 1, size: 9999 });
const allUsers = res.data.data.records || [] const allUsers = res.data.data.records || [];
this.userData = allUsers //
this.plannerData = allUsers this.userData = [...allUsers];
this.dispatcherData = allUsers this.plannerData = [...allUsers];
this.dispatcherData = [...allUsers];
if(type == 'edit'){
this.form.csId = this.form.csId + '' if (type === 'edit') {
this.form.teamLeader = this.form.teamLeader + '' //
this.form.planner = this.form.planner + '' const userFields = [
this.form.dispatcher = this.form.dispatcher + '' { id: this.form.teamLeader, name: this.form.teamLeaderRealName, arr: this.userData },
{ id: this.form.planner, name: this.form.plannerRealName, arr: this.plannerData },
{
id: this.form.dispatcher,
name: this.form.dispatcherRealName,
arr: this.dispatcherData,
},
];
userFields.forEach(({ id, name, arr }) => {
const uid = (id || '') + '';
if (!uid || !name) return;
const exist = arr.some(u => u.id == uid);
if (!exist) arr.unshift({ id: uid, realName: name });
});
//
this.form.csId = (this.form.csId || '') + '';
this.form.teamLeader = (this.form.teamLeader || '') + '';
this.form.planner = (this.form.planner || '') + '';
this.form.dispatcher = (this.form.dispatcher || '') + '';
}
} catch (err) {
console.error('加载用户失败', err);
} }
done() done();
}, },
currentChange(currentPage) { currentChange(currentPage) {
this.page.currentPage = currentPage; this.page.currentPage = currentPage;
@ -780,15 +820,15 @@ export default {
onLoad() { onLoad() {
this.loading = true; this.loading = true;
getList({ getList({
descs:'TS_CODE', descs: 'TS_CODE',
current:this.page.currentPage, current: this.page.currentPage,
size:this.page.pageSize, size: this.page.pageSize,
...this.query ...this.query,
}).then(res =>{ }).then(res => {
this.data = res.data.data.records this.data = res.data.data.records;
this.page.total = res.data.data.total this.page.total = res.data.data.total;
this.loading = false this.loading = false;
}) });
}, },
}, },
}; };
@ -797,11 +837,11 @@ export default {
<style></style> <style></style>
<style lang="scss"> <style lang="scss">
.setCrewBox{ .setCrewBox {
.tree-transfer-vue3{ .tree-transfer-vue3 {
height: 450px !important; height: 450px !important;
.el-tree{ .el-tree {
height: 335px !important; height: 335px !important;
} }
} }

Loading…
Cancel
Save