You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
863 lines
24 KiB
863 lines
24 KiB
<template> |
|
<basic-container> |
|
<avue-crud |
|
:option="option" |
|
:table-loading="loading" |
|
:data="data" |
|
v-model:page="page" |
|
v-model="form" |
|
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" |
|
:before-open="beforeOpen" |
|
@on-load="onLoad" |
|
> |
|
<template #menu-left> |
|
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" |
|
>删 除 |
|
</el-button> |
|
<el-button type="success" icon="el-icon-upload" @click="handleImport" |
|
>导入 |
|
</el-button> |
|
</template> |
|
<template #menu="scope"> |
|
<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, 1)" |
|
>特殊日分派时间</el-button |
|
> |
|
<el-button type="text" @click="changeTime(scope.row, 2)">轮换时间</el-button> |
|
</template> |
|
<template #teamLeader="{ row }"> |
|
{{ row.teamLeaderRealName }} |
|
</template> |
|
<template #planner="{ row }"> |
|
{{ row.plannerRealName }} |
|
</template> |
|
<template #dispatcher="{ row }"> |
|
{{ row.dispatcherRealName }} |
|
</template> |
|
<!-- <template #csId="{ row }"> |
|
{{ row.bsClassesSet.csName }} |
|
</template> --> |
|
<!-- <template #csId-form="{ type }"> |
|
<span v-show="type == 'edit' || type == 'add'"> |
|
<el-select v-model="form.bsClassesSet.csId" placeholder="请选择班次"> |
|
<el-option |
|
v-for="item in csData" |
|
:key="item.csId" |
|
:value="item.csId" |
|
:label="item.csName" |
|
></el-option> |
|
</el-select> |
|
</span> |
|
</template> --> |
|
<template #teamLeader-form="{ type }"> |
|
<span v-show="type == 'edit' || type == 'add'"> |
|
<el-select v-model="form.teamLeader" placeholder="请选择班组长" |
|
filterable remote :remote-method="getTeamUser"> |
|
<el-option |
|
v-for="item in userData" |
|
:key="item.id" |
|
:value="item.id" |
|
:label="item.realName" |
|
></el-option> |
|
</el-select> |
|
</span> |
|
</template> |
|
<template #planner-form="{ type }"> |
|
<span v-show="type == 'edit' || type == 'add'"> |
|
<el-select v-model="form.planner" placeholder="请选择计划员" |
|
filterable remote :remote-method="getPlanner"> |
|
<el-option |
|
v-for="item in plannerData" |
|
:key="item.id" |
|
:value="item.id" |
|
:label="item.realName" |
|
></el-option> |
|
</el-select> |
|
</span> |
|
</template> |
|
<template #dispatcher-form="{ type }"> |
|
<span v-show="type == 'edit' || type == 'add'"> |
|
<el-select v-model="form.dispatcher" placeholder="请选择调度员" |
|
filterable remote :remote-method="getDispatcher"> |
|
<el-option |
|
v-for="item in dispatcherData" |
|
:key="item.id" |
|
:value="item.id" |
|
:label="item.realName" |
|
></el-option> |
|
</el-select> |
|
</span> |
|
</template> |
|
</avue-crud> |
|
<el-dialog class="setCrewBox" title="设置人员" append-to-body v-model="crewDialog" width="60%"> |
|
<tree-transfer |
|
class="trans_ware" |
|
style="margin-top: 10px;" |
|
ref="transferRef" |
|
:titleList="['未选择', '已选择']" |
|
v-model:fromData="noChooseUser" |
|
v-model:toData="chooseUser" |
|
:defaultProps="{ |
|
id: 'id', // 节点id |
|
parentId: 'parentId', // 父节点id |
|
label: 'label', |
|
children: 'children', |
|
disabled: 'disabled', |
|
}" |
|
rootPid="0" |
|
/> |
|
<template #footer> |
|
<span class="dialog-footer"> |
|
<el-button @click="crewDialog = false">取 消</el-button> |
|
<el-button type="primary" @click="submitPeople">确 定</el-button> |
|
</span> |
|
</template> |
|
</el-dialog> |
|
<el-dialog title="时间" append-to-body v-model="timeDialog" width="60%"> |
|
<div> |
|
<el-button type="primary" icon="el-icon-plus" @click="insertEvent()" |
|
>插入一行</el-button |
|
> |
|
<el-button plain type="danger" @click="remove">删除选择行</el-button> |
|
<!-- <el-button type="primary" @click="handleSave">保存</el-button> --> |
|
</div> |
|
<div style="margin-top: 20px"> |
|
<el-table |
|
:data="timeList" |
|
@select="selectChange" |
|
> |
|
<el-table-column type="selection" width="55px"></el-table-column> |
|
<el-table-column align="center" label="开始时间"> |
|
<template #default="scope"> |
|
<el-time-select |
|
v-model="scope.row.startTime" |
|
start="00:00" |
|
step="00:15" |
|
end="24:00" |
|
placeholder="选择时间" |
|
> |
|
</el-time-select> |
|
</template> |
|
</el-table-column> |
|
<el-table-column align="center" label="结束时间"> |
|
<template #default="scope"> |
|
<el-time-select |
|
v-model="scope.row.endTime" |
|
start="00:00" |
|
step="00:15" |
|
end="24:00" |
|
placeholder="选择时间" |
|
> |
|
</el-time-select> |
|
</template> |
|
</el-table-column> |
|
</el-table> |
|
</div> |
|
<template #footer> |
|
<span class="dialog-footer"> |
|
<el-button @click="timeDialog = false">取 消</el-button> |
|
<el-button type="primary" @click="submitTime">确 定</el-button> |
|
</span> |
|
</template> |
|
</el-dialog> |
|
|
|
<!-- 导入 --> |
|
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" |
|
templateUrl="/blade-desk/BA/TeamSet/downloadExcelTemplate" |
|
templateName="班组模板.xls" |
|
importUrl="/blade-desk/BA/TeamSet/importExcel" |
|
@closeDialog="closeDialog"></basic-import> |
|
|
|
</basic-container> |
|
</template> |
|
|
|
<script> |
|
import {getList,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 { |
|
components: { |
|
basicImport, |
|
treeTransfer |
|
}, |
|
data() { |
|
return { |
|
isShowImport:false, |
|
data: [], |
|
page: { |
|
pageSize: 10, |
|
currentPage: 1, |
|
total: 0, |
|
}, |
|
peopleValue:[], |
|
peopleData:[], |
|
timeList: [], |
|
deleteTidArr: [], //删除数据 |
|
form: {}, |
|
crewDialog: false, |
|
timeDialog: false, |
|
noChooseUser:[], //未选人员 |
|
chooseUser:[], //已选人员 |
|
csData: [ |
|
{ |
|
csId: 18, |
|
csName: "白班", |
|
keyValue: 18, |
|
}, |
|
{ |
|
csId: 19, |
|
csName: "晚班", |
|
keyValue: 19, |
|
}, |
|
], |
|
crewData: [], //班组人员数据 |
|
userData: [], |
|
plannerData:[], |
|
dispatcherData:[], |
|
query: {}, |
|
loading: true, |
|
excelBox: false, |
|
option: { |
|
tip: false, |
|
height: "auto", |
|
calcHeight: 32, |
|
simplePage: false, |
|
searchShow: true, |
|
searchMenuSpan: 6, |
|
searchIcon: true, |
|
searchIndex: 3, |
|
tree: false, |
|
border: true, |
|
index: true, |
|
selection: true, |
|
viewBtn: false, |
|
delBtn: false, |
|
editBtnText: "修改", |
|
viewBtnText: "详情", |
|
labelWidth: 120, |
|
menuWidth: 440, |
|
dialogWidth: 600, |
|
dialogClickModal: false, |
|
searchEnter: true, |
|
filterBtn: true, |
|
searchShowBtn: false, |
|
excelBtn: true, |
|
showOverflowTooltip: true, |
|
searchLabelPosition: "left", |
|
searchGutter: 24, |
|
searchSpan: 6, |
|
menuAlign: "center", |
|
gridBtn: false, |
|
searchMenuPosition: "right", |
|
addBtnIcon: " ", |
|
viewBtnIcon: " ", |
|
delBtnIcon: " ", |
|
editBtnIcon: " ", |
|
align: "center", |
|
column: [ |
|
{ |
|
label: "编码", |
|
prop: "tsCode", |
|
search: true, |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请输入编码", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "名称", |
|
prop: "tsName", |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
search: true, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请输入名称", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "班组长", |
|
prop: "teamLeader", |
|
search: false, |
|
type: "select", |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请选择班组长", |
|
trigger: "blur", |
|
}, |
|
], |
|
dicUrl:"/api/blade-system/user/page?current=1&size=9999", |
|
props: { |
|
label: "realName", |
|
value: "id", |
|
res:"data.records" |
|
}, |
|
}, |
|
{ |
|
label: "计划员", |
|
prop: "planner", |
|
search: false, |
|
sortable: true, |
|
filter: true, |
|
type: "select", |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请选择计划员", |
|
trigger: "blur", |
|
}, |
|
], |
|
dicUrl:"/api/blade-system/user/page?current=1&size=9999", |
|
props: { |
|
label: "realName", |
|
value: "id", |
|
res:"data.records" |
|
}, |
|
}, |
|
{ |
|
label: "调度员", |
|
prop: "dispatcher", |
|
search: true, |
|
sortable: true, |
|
filter: true, |
|
remote: true, |
|
type: "select", |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请选择调度员", |
|
trigger: "blur", |
|
}, |
|
], |
|
dicUrl:"/api/blade-system/user/page?current=1&size=9999&realName={{key}}", |
|
props: { |
|
label: "realName", |
|
value: "id", |
|
res:"data.records" |
|
}, |
|
}, |
|
{ |
|
label: "班组人员", |
|
prop: "teamMember", |
|
search: false, |
|
sortable: true, |
|
filter: true, |
|
editDisplay: false, |
|
addDisplay: false, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请选择班组人员", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "班次", |
|
prop: "csId", |
|
search: false, |
|
type: "select", |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
props: { |
|
label: "name", |
|
value: "id", |
|
}, |
|
dicUrl:"/api/blade-desk/BA/Shifts/listForSelect" |
|
}, |
|
{ |
|
label: "类型分类", |
|
prop: "tsType", |
|
search: false, |
|
type: "select", |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
dicData: [ |
|
{ value: 1,label: "针孔",}, |
|
{ value: 2,label: "壳体",}, |
|
{ value: 3,label: "烧结",}, |
|
{ value: 4,label: "园区",}, |
|
// { value: 5,label: "外协",}, |
|
], |
|
}, |
|
{ |
|
label: "日分派时间", |
|
prop: "dayPutDueTime", |
|
search: false, |
|
sortable: true, |
|
editDisplay: false, |
|
filter: true, |
|
addDisplay: false, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请输入日分派时间", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "特殊日分派时间", |
|
prop: "specDayPutDueTime", |
|
search: false, |
|
sortable: true, |
|
editDisplay: false, |
|
filter: true, |
|
addDisplay: false, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请输入特殊日分派时间", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "轮换时间", |
|
prop: "exChangeTime", |
|
search: false, |
|
sortable: true, |
|
editDisplay: false, |
|
filter: true, |
|
addDisplay: false, |
|
span: 24, |
|
width: 150, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: "请输入轮换时间", |
|
trigger: "blur", |
|
}, |
|
], |
|
}, |
|
{ |
|
label: "特殊", |
|
prop: "special", |
|
search: false, |
|
type: "select", |
|
sortable: true, |
|
filter: true, |
|
span: 24, |
|
width: 150, |
|
dicData: [ |
|
{ |
|
value: '1', |
|
label: "是", |
|
}, |
|
{ |
|
value: '0', |
|
label: "否", |
|
}, |
|
], |
|
}, |
|
], |
|
}, |
|
selectionList: [], |
|
checkId:'', |
|
checkTimeType:0 |
|
}; |
|
}, |
|
mounted() {}, |
|
methods: { |
|
// 点击导入按钮 |
|
handleImport() { |
|
this.isShowImport = true |
|
}, |
|
handleDelete(){ |
|
if(this.selectionList.length == 0){ |
|
this.$message.error('请至少选择一条数据') |
|
return |
|
} |
|
deleteTeam({ |
|
ids: this.selectionList.map(item => item.id).join(',') |
|
}).then(res =>{ |
|
if(res.data.code == 200){ |
|
this.$message.success('删除成功') |
|
this.onLoad() |
|
} |
|
}) |
|
}, |
|
// 多选 |
|
selectionChange(list) { |
|
this.selectionList = list; |
|
}, |
|
selectionClear() { |
|
this.selectionList = []; |
|
this.$refs.crud.toggleSelection(); |
|
}, |
|
getTeamUser(query){ |
|
if(query == ''){ |
|
getAllUser({ |
|
current:1, |
|
size:9999 |
|
}).then(res =>{ |
|
this.userData = res.data.data.records |
|
}) |
|
}else{ |
|
getAllUser({ |
|
current:1, |
|
size:9999, |
|
realName:query |
|
}).then(res =>{ |
|
this.userData = res.data.data.records |
|
}) |
|
} |
|
}, |
|
getPlanner(query){ |
|
if(query == ''){ |
|
getAllUser({ |
|
current:1, |
|
size:9999 |
|
}).then(res =>{ |
|
this.plannerData = res.data.data.records |
|
}) |
|
}else{ |
|
getAllUser({ |
|
current:1, |
|
size:9999, |
|
realName:query |
|
}).then(res =>{ |
|
this.plannerData = res.data.data.records |
|
}) |
|
} |
|
}, |
|
getDispatcher(query){ |
|
if(query == ''){ |
|
getAllUser({ |
|
current:1, |
|
size:9999 |
|
}).then(res =>{ |
|
this.dispatcherData = res.data.data.records |
|
}) |
|
}else{ |
|
getAllUser({ |
|
current:1, |
|
size:9999, |
|
realName:query |
|
}).then(res =>{ |
|
this.dispatcherData = res.data.data.records |
|
}) |
|
} |
|
}, |
|
rowUpdate(row, index, done, loading) { |
|
updateTeam(row).then(res =>{ |
|
if(res.data.code == 200){ |
|
this.$message.success('修改成功') |
|
this.onLoad() |
|
done() |
|
} |
|
}) |
|
}, |
|
rowSave(row, done, loading) { |
|
console.log('row-----------',row) |
|
addTeam(row).then(res =>{ |
|
if(res.data.code == 200){ |
|
this.$message.success('添加成功') |
|
this.onLoad() |
|
done() |
|
} |
|
}) |
|
}, |
|
searchReset() { |
|
this.query = {}; |
|
this.onLoad(this.page); |
|
}, |
|
searchChange(params, done) { |
|
this.query = params; |
|
this.page.currentPage = 1; |
|
this.onLoad(this.page, params); |
|
done(); |
|
}, |
|
rowDel(row, index, done) { |
|
this.$confirm("确定将选择数据删除?", { |
|
confirmButtonText: "确定", |
|
cancelButtonText: "取消", |
|
type: "warning", |
|
}).then(() => {}); |
|
}, |
|
// 设置时间 |
|
changeTime(row, val) { |
|
this.checkId = row.id; |
|
this.checkTimeType = val; |
|
getDispatchTime({ |
|
id:row.id, |
|
special:val |
|
}).then(res =>{ |
|
console.log('res-----------',res) |
|
res.data.data.map(item =>{ |
|
item._select = false |
|
}) |
|
this.timeList = res.data.data; |
|
this.timeDialog = true; |
|
}) |
|
// this.timeList = []; |
|
// // if(val == 1){ |
|
// this.timeList = [ |
|
// { startTime: "00:00", endTime: "00:15", _select: false }, |
|
// { startTime: "00:15", endTime: "00:20", _select: false }, |
|
// { startTime: "00:45", endTime: "01:00", _select: false }, |
|
// ]; |
|
// this.timeDialog = true; |
|
// // } |
|
}, |
|
submitTime(){ |
|
if(this.timeList.length == 0){ |
|
this.$message.error("请添加一条数据!"); |
|
return; |
|
} |
|
const timeData = [] |
|
this.timeList.map(item =>{ |
|
timeData.push({ |
|
startTime:item.startTime, |
|
endTime:item.endTime, |
|
special:this.checkTimeType |
|
}) |
|
}) |
|
let params = { |
|
id:this.checkId, |
|
special:this.checkTimeType, |
|
teamTimes:timeData |
|
} |
|
saveDispatchTime(params).then(res =>{ |
|
if(res.data.code === 200){ |
|
this.$message.success('设置成功'); |
|
this.timeDialog = false |
|
this.onLoad() |
|
} |
|
}) |
|
}, |
|
selectChange(list, row){ |
|
row._select = !row._select; |
|
}, |
|
// 插入一行 |
|
insertEvent() { |
|
const record = { _select: false }; |
|
this.timeList.push(record); |
|
}, |
|
//删除所选行 |
|
remove() { |
|
let arr = this.timeList.filter((item) => item._select); |
|
if (arr.length != 0) { |
|
this.$confirm("确定将选择数据删除?", { |
|
confirmButtonText: "确定", |
|
cancelButtonText: "取消", |
|
type: "warning", |
|
}).then(() => { |
|
if (this.rowId) { |
|
let deleteData = this.timeList.filter((item) => item._select); |
|
this.deleteTidArr = deleteData.filter((item) => item.tidId); |
|
} |
|
let deleteArr = this.timeList.filter((item) => !item._select); |
|
this.timeList = deleteArr; |
|
}); |
|
} else { |
|
this.$message.error("请至少选择一条数据进行操作!"); |
|
} |
|
}, |
|
// 点击保存按钮 |
|
handleSave() { |
|
if (this.timeList.length == 0) { |
|
this.$message.error("请至少填写一条数据"); |
|
} else { |
|
let tmp = this.timeList.find((item) => item.startTime && item.endTime); |
|
if (!tmp) { |
|
this.$message.error("数据请填写完整!"); |
|
} |
|
} |
|
}, |
|
processTree(nodes, isRootLevel = true) { |
|
return nodes.map(item => { |
|
// 第一层:parentId = 0;其他层:parentId = item.pid |
|
const parentId = isRootLevel ? 0 : item.pid; |
|
|
|
const newItem = { |
|
...item, |
|
parentId // 添加 parentId 字段 |
|
// 注意:保留原有的 pid 字段,除非你不需要 |
|
}; |
|
|
|
// 递归处理 children,下一层不再是根层 |
|
if (Array.isArray(item.children)) { |
|
newItem.children = this.processTree(item.children, false); |
|
} |
|
|
|
return newItem; |
|
}); |
|
}, |
|
// 设置班组人员 |
|
async setCrew(row) { |
|
this.checkId = row.id; |
|
const users = await getDeptUser({teamSetId: row.id}); |
|
this.chooseUser = this.processTree(users.data.data.teamSelects) |
|
this.noChooseUser = this.processTree(users.data.data.teamUnSelects) |
|
this.crewDialog = true; |
|
|
|
// const notUser = await getNotSelectUser({id: row.id}); |
|
// const user = await getSelectUser({id: row.id}); |
|
// console.log('notUser============', notUser); |
|
// console.log('user============', user); |
|
// this.peopleData = [...notUser.data.data,...user.data.data] |
|
// this.peopleValue = user.data.data.map(item => item.id) |
|
// this.crewDialog = true; |
|
}, |
|
|
|
getLeafIds(nodes) { |
|
const leafIds = []; |
|
|
|
function traverse(items) { |
|
if (!Array.isArray(items)) return; |
|
|
|
items.forEach(item => { |
|
// 判断是否为叶子节点 |
|
const hasChildren = Array.isArray(item.children) && item.children.length > 0; |
|
|
|
if (!hasChildren) { |
|
// 是叶子节点,收集 id |
|
leafIds.push(item.id); |
|
} else { |
|
// 有子节点,继续递归 |
|
traverse(item.children); |
|
} |
|
}); |
|
} |
|
|
|
traverse(nodes); |
|
return leafIds; |
|
}, |
|
|
|
submitPeople(){ |
|
let userArr = this.getLeafIds(this.chooseUser).map(item => item.replace('user-',"")) |
|
let params = { |
|
id:this.checkId, |
|
userIds:userArr |
|
} |
|
|
|
saveUser(params).then(res =>{ |
|
if(res.data.code === 200){ |
|
this.$message.success('人员设置成功') |
|
this.crewDialog = false |
|
this.onLoad() |
|
} |
|
}) |
|
}, |
|
// 打开前回调 |
|
async beforeOpen(done, type, loading) { |
|
if(type == 'edit'){ |
|
this.form.csId = this.form.csId + '' |
|
this.form.teamLeader = this.form.teamLeader + '' |
|
this.form.planner = this.form.planner + '' |
|
this.form.dispatcher = this.form.dispatcher + '' |
|
const res = await getAllUser({current:1,size:9999 }) |
|
|
|
this.dispatcherData = res.data.data.records |
|
this.userData = res.data.data.records |
|
this.plannerData = res.data.data.records |
|
|
|
const dispatcherRes = await getAllUser({realName:this.form.dispatcherRealName}) |
|
// 合并数据并根据 id 去重 |
|
const mergedData = [...this.dispatcherData, ...dispatcherRes.data.data.records]; |
|
const uniqueData = Array.from( |
|
new Map(mergedData.map(item => [item.id, item])).values() |
|
); |
|
this.dispatcherData = uniqueData |
|
|
|
const plannerRes = await getAllUser({realName:this.form.plannerRealName}) |
|
// 合并数据并根据 id 去重 |
|
const mergedPlannerData = [...this.plannerData, ...plannerRes.data.data.records]; |
|
const uniquePlannerData = Array.from( |
|
new Map(mergedPlannerData.map(item => [item.id, item])).values() |
|
); |
|
this.plannerData = uniquePlannerData |
|
|
|
const teamRes = await getAllUser({realName:this.form.teamLeaderRealName}) |
|
// 合并数据并根据 id 去重 |
|
const mergedTeamData = [...this.userData, ...teamRes.data.data.records]; |
|
const uniqueTeeanData = Array.from( |
|
new Map(mergedTeamData.map(item => [item.id, item])).values() |
|
); |
|
this.userData = uniqueTeeanData |
|
done() |
|
}else { |
|
done() |
|
} |
|
|
|
}, |
|
currentChange(currentPage) { |
|
this.page.currentPage = currentPage; |
|
}, |
|
sizeChange(pageSize) { |
|
this.page.pageSize = pageSize; |
|
}, |
|
refreshChange() { |
|
this.onLoad(this.page, this.query); |
|
}, |
|
onLoad() { |
|
this.loading = true; |
|
getList({ |
|
current:this.page.currentPage, |
|
size:this.page.pageSize, |
|
...this.query |
|
}).then(res =>{ |
|
this.data = res.data.data.records |
|
this.page.total = res.data.data.total |
|
this.loading = false |
|
}) |
|
}, |
|
}, |
|
}; |
|
</script> |
|
|
|
<style></style> |
|
|
|
<style lang="scss"> |
|
.setCrewBox{ |
|
.tree-transfer-vue3{ |
|
height: 450px !important; |
|
|
|
.el-tree{ |
|
height: 335px !important; |
|
} |
|
} |
|
} |
|
</style>
|
|
|