...
|
...
|
@@ -2,20 +2,229 @@ export default { |
|
|
name: 'resourceTypePer',
|
|
|
template: '',
|
|
|
components: {
|
|
|
|
|
|
'ChangeUsersList': Vue.defineAsyncComponent(
|
|
|
() => myImport('views/batchChangeLeaders/changeUsersList/index')
|
|
|
),
|
|
|
},
|
|
|
data() {
|
|
|
},
|
|
|
props: {
|
|
|
},
|
|
|
props: {},
|
|
|
setup: function (props, {attrs, slots, emit}) {
|
|
|
const {proxy} = Vue.getCurrentInstance();
|
|
|
//列表高度
|
|
|
let height = Vue.ref(window.innerHeight);
|
|
|
let data = Vue.ref({
|
|
|
searchParams: {
|
|
|
"page": 1,
|
|
|
"limit": 50,
|
|
|
"keywords": "",
|
|
|
"userName": proxy.$route.query.username,
|
|
|
"busId": ""
|
|
|
},
|
|
|
userDialogFlag : false,
|
|
|
count: 0,
|
|
|
columns: [{
|
|
|
prop: "busTypeName",
|
|
|
label: "名称",
|
|
|
width: "250",
|
|
|
sortable: true,
|
|
|
align: 'center'
|
|
|
}, {
|
|
|
prop: "nickname",
|
|
|
label: "负责人",
|
|
|
width: "120",
|
|
|
sortable: true,
|
|
|
align: 'center'
|
|
|
}, {
|
|
|
prop: "busTypeDesc",
|
|
|
label: "业务描述",
|
|
|
width: "200",
|
|
|
sortable: true,
|
|
|
align: 'center'
|
|
|
}, {
|
|
|
prop: "isUse",
|
|
|
label: "是否使用",
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
render: (row) => {
|
|
|
switch (row.isUse) {
|
|
|
case 0:
|
|
|
return '否';
|
|
|
case 1:
|
|
|
return '是';
|
|
|
default:
|
|
|
return '';
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
prop: "important",
|
|
|
label: "重要程度",
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
render: (row) => {
|
|
|
switch (row.important) {
|
|
|
case 1:
|
|
|
return '核心';
|
|
|
case 2:
|
|
|
return '重要';
|
|
|
case 3:
|
|
|
return '一般';
|
|
|
case 9:
|
|
|
return '虚拟业务';
|
|
|
default:
|
|
|
return '';
|
|
|
}
|
|
|
}
|
|
|
}, {
|
|
|
prop: "sort",
|
|
|
label: "排序",
|
|
|
sortable: true,
|
|
|
align: 'center'
|
|
|
}],
|
|
|
tableData: [],
|
|
|
// 表格选中
|
|
|
checkArr:[]
|
|
|
})
|
|
|
|
|
|
|
|
|
const getList = () => {
|
|
|
proxy.$http.post(`/api-web/personnelChange/getList/topoPer`, data.value.searchParams, function (res) {
|
|
|
if (res && res.data) {
|
|
|
let dataVal = data.value;
|
|
|
let list = res.data;
|
|
|
let count = res.count;
|
|
|
|
|
|
let tableData = list.filter(function (v) {
|
|
|
if (v.parentId == '0') {
|
|
|
// 获取子节点
|
|
|
let childs = list.filter(function (v1) {
|
|
|
if (v1.parentId != '0' && v1.parentId == v.busId) {
|
|
|
// 获取子节点
|
|
|
return v1;
|
|
|
}
|
|
|
}).sort(function (a, b) {
|
|
|
return a.sort - b.sort
|
|
|
})
|
|
|
v.children = childs;
|
|
|
return v;
|
|
|
}
|
|
|
}).sort(function (a, b) {
|
|
|
return a.sort - b.sort
|
|
|
})
|
|
|
|
|
|
dataVal.tableData = tableData;
|
|
|
dataVal.count = count;
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 展示用户选择
|
|
|
let showUserDialog = (flg) =>{
|
|
|
data.value.userDialogFlag = flg;
|
|
|
}
|
|
|
|
|
|
let saveRel = (obj) =>{
|
|
|
// 获取选中
|
|
|
let arr = data.value.checkArr;
|
|
|
if(arr.length == 0){
|
|
|
proxy.$global.showMsg('请至少选择一项','warning');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
let params = {
|
|
|
targetUserName: obj.selectModel.join(''),
|
|
|
"userName": proxy.$route.query.username,
|
|
|
"busId": arr.join(',')
|
|
|
}
|
|
|
if(params.targetUserName == params.userName){
|
|
|
proxy.$global.showMsg('变更用户不能与变更前用户一致,请修改!','warning');
|
|
|
return;
|
|
|
}
|
|
|
proxy.$http.post(`/api-web/personnelChange/update/topoPer`,params, function (res) {
|
|
|
if (res && res.success) {
|
|
|
proxy.$global.showMsg('变更成功!');
|
|
|
showUserDialog(false);
|
|
|
// 刷新表格
|
|
|
getList();
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 变更
|
|
|
let changeUser = () =>{
|
|
|
// 获取选中
|
|
|
let arr = data.value.checkArr;
|
|
|
if(arr.length == 0){
|
|
|
proxy.$global.showMsg('请至少选择一项','warning');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
showUserDialog(true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 取消
|
|
|
*/
|
|
|
let removeRel = () =>{
|
|
|
let arr = data.value.checkArr;
|
|
|
if(arr.length == 0){
|
|
|
proxy.$global.showMsg('请至少选择一项','warning');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
data.value.searchParams.busId = arr.join(',')
|
|
|
proxy.$global.confirm("确定取消相关资源?", function () {
|
|
|
proxy.$global.showMsg('取消成功!');
|
|
|
proxy.$http.post(`/api-web/personnelChange/remove/topoPer`, data.value.searchParams , function (res) {
|
|
|
if (res && res.success) {
|
|
|
proxy.$global.showMsg('取消成功!');
|
|
|
getList()
|
|
|
}
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//重新加载表格数据
|
|
|
let loadTableDataList = ({page, limit}) => {
|
|
|
let dataVal = data.value;
|
|
|
dataVal.page = page;
|
|
|
dataVal.limit = limit;
|
|
|
getList();
|
|
|
}
|
|
|
|
|
|
// 表格全选事件
|
|
|
let selectionChange = (val) => {
|
|
|
let checkArr = [];
|
|
|
val.map(item => {
|
|
|
checkArr.push(item.busId)
|
|
|
})
|
|
|
data.value.checkArr = checkArr;
|
|
|
let isCheck = (list, checkArr) => {
|
|
|
list.forEach((v, i) => {
|
|
|
v.checked = checkArr.includes(v.busId);
|
|
|
if (v.children) {
|
|
|
isCheck(v.children, checkArr);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
isCheck(data.value.tableData, checkArr);
|
|
|
}
|
|
|
|
|
|
// 挂载完
|
|
|
Vue.onMounted(() => {
|
|
|
getList();
|
|
|
})
|
|
|
return {
|
|
|
|
|
|
return {
|
|
|
height,
|
|
|
data,
|
|
|
getList,
|
|
|
changeUser,
|
|
|
showUserDialog,
|
|
|
removeRel,
|
|
|
loadTableDataList,
|
|
|
selectionChange,
|
|
|
saveRel
|
|
|
}
|
|
|
}
|
|
|
} |
|
|
\ No newline at end of file |
|
|
} |
...
|
...
|
|