Authored by 鲁尚清

Merge branch 'master' of http://192.168.1.136:82/monitor_v3/hg-monitor-web into …

…master-v32-lushangqing
... ... @@ -880,21 +880,30 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
}
//获取选中的数据
function getCheckData() {
debugger
if(mode){
//获取改变的值
var str='';
var $tr=$('#bustype-table').next().find('tbody tr');
$.each($tr,function (i,v) {
var $btn=$(this).find('.btn-bustype-unbind');
var showType=$(this).find('.resourceType_showType') && $(this).find('.resourceType_showType').eq(0) && $(this).find('.resourceType_showType').eq(0).val() ? $(this).find('.resourceType_showType').eq(0).val():'<';
if(!$btn.hasClass('hide')){
str += $btn.attr("data-id")+'_'+showType+',';
let arr = [];
$.each($('[data-type="checkbox"] input'),function (i,v) {
var that = $(this);
if(that.is(':checked')){
arr.push(that.val());
}
});
if(str!=''){
str=str.substring(0,str.length-1);
}
return str;
})
return arr.join(',');
// //获取改变的值
// var str='';
// var $tr=$('#bustype-table').next().find('tbody tr');
// $.each($tr,function (i,v) {
// var $btn=$(this).find('.btn-bustype-unbind');
// var showType=$(this).find('.resourceType_showType') && $(this).find('.resourceType_showType').eq(0) && $(this).find('.resourceType_showType').eq(0).val() ? $(this).find('.resourceType_showType').eq(0).val():'<';
// if(!$btn.hasClass('hide')){
// str += $btn.attr("data-id")+'_'+showType+',';
// }
// });
// if(str!=''){
// str=str.substring(0,str.length-1);
// }
// return str;
}else{
return busTypeTable.checkStatus(false);
}
... ... @@ -903,4 +912,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
return {getData: getCheckData};
});
});
\ No newline at end of file
});
... ...
... ... @@ -1056,6 +1056,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions',
btn: ['完成'],
content: laytpl(res.body).render(JSON.stringify({username:usernames})),
yes: function (index, layero) {//保存业务授权
debugger
var busType = layui.bustype({username:usernames[0], mode: 'bind'});
var busTypeData = busType.getData();
var loding = layer.load(2);
... ... @@ -1319,4 +1320,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions',
});
}
})
})
\ No newline at end of file
})
... ...
... ... @@ -16,8 +16,9 @@
<div id="LAY_app"></div>
<script src="/start/layui/layui.js"></script>
<script>
layui.use(['jquery'], function () {
layui.use(['jquery','pageTips'], function () {
var $ = layui.jquery;
let pageTips = layui.pageTips;
// 读取配置文件
$.when(
$.ajax({
... ...
<el-row>
<el-col :span="24" class="search">
<div class="condition" style="display: flex;">
<el-form-item style="margin-right: 6px;margin-bottom: 10px;width: 300px">
<el-input v-model="data.searchParams.keywords" placeholder="关键字支持:名称、负责人、业务描述"></el-input>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="removeRel">取消</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="changeUser">变更</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row class="margin-bottom-50" style="margin-top: 3px">
<el-col :span="24" class="table-height">
<cm-table-page :columns="data.columns"
:dataList="data.tableData"
:treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
:total="data.count"
:pageSize="pageSize"
@loaddata="loadTableDataList"
@selectionChange="selectionChange"
:showIndex="true"
:showSelection="true"
:showBorder="true"
:loading="loading"
:showPage="true"
:showTools="false"
:height="(height - 200)">
<template #default="{row,prop,column}">
</template>
</cm-table-page>
</el-col>
</el-row>
<ChangeUsersList :show="data.userDialogFlag" @hideDialog="showUserDialog" @savebtn="saveRel"></ChangeUsersList>
... ...
... ... @@ -2,20 +2,254 @@ 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,
"subId": ""
},
userDialogFlag : false,
count: 0,
columns: [{
prop: "subName",
label: "订阅名称",
width: "250",
sortable: true,
align: 'center'
}, {
prop: "subType",
label: "订阅类型",
width: "120",
sortable: true,
align: 'center',
render: function (row) {
switch (row.subType) {
case '1':
return '告警订阅'
break;
case '2':
return '报表订阅'
break;
case '3':
return '系统通知订阅'
break;
case '4':
return '采集器异常订阅'
break;
}
}
}, {
prop: "subWay",
label: "通知类型",
width: "200",
sortable: true,
align: 'center',
render: function (row) {
switch (row.subWay){
case 'wechat':
return '<div class="small-icon small-icon-wechat"></div>'
break;
case 'email':
return '<div class="small-icon small-icon-email"></div>'
break;
case 'message':
return '<div class="small-icon small-icon-msg"></div>'
break;
}
}
}, {
prop: "alarmTempTotal",
label: "订阅对象",
sortable: true,
align: 'center',
// render: (row) => {
// switch (row.alarmTempTotal) {
// case 0:
// return '否';
// case 1:
// return '是';
// default:
// return '';
// }
// }
}, {
prop: "tempType",
label: "通知说明",
sortable: true,
align: 'center',
render: (row) => {
switch (row.tempType) {
case 'wechat':
return '微信'
case 'email':
return '邮箱';
case 'msg':
return '短信';
}
}
}, {
prop: "userTotal",
label: "订阅人数",
sortable: true,
align: 'center'
}, {
prop: "times",
label: "允许通知时间段",
sortable: true,
align: 'center'
}, {
prop: "syncFlag",
label: "同步状态",
sortable: true,
align: 'center',
render: (row) => {
switch (row.syncFlag) {
case '0':
return '未同步'
case '1':
return '已同步';
}
}
}],
tableData: [],
// 表格选中
checkArr:[]
})
const getList = () => {
proxy.$http.post(`/api-web/personnelChange/getList/alarmSubPer`, data.value.searchParams, function (res) {
if (res && res.success) {
let dataVal = data.value;
let list = res.data;
let count = res.count;
dataVal.tableData = list;
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/alarmSubPer`,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.subId = arr.join(',')
proxy.$global.confirm("确定取消相关资源?", function () {
proxy.$global.showMsg('取消成功!');
proxy.$http.post(`/api-web/personnelChange/remove/alarmSubPer`, 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.subId)
})
data.value.checkArr = checkArr;
let isCheck = (list, checkArr) => {
list.forEach((v, i) => {
v.checked = checkArr.includes(v.subId);
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
}
... ...
<el-row>
<el-col :span="24" class="search">
<div class="condition" style="display: flex;">
<el-form-item style="margin-right: 6px;margin-bottom: 10px;width: 300px">
<el-input v-model="data.searchParams.keywords" placeholder="关键字支持:名称、负责人、业务描述"></el-input>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="removeRel">取消</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="changeUser">变更</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row class="margin-bottom-50" style="margin-top: 3px">
<el-col :span="24" class="table-height">
<cm-table-page :columns="data.columns"
:dataList="data.tableData"
:treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
:total="data.count"
:pageSize="pageSize"
@loaddata="loadTableDataList"
@selectionChange="selectionChange"
:showIndex="true"
:showSelection="true"
:showBorder="true"
:loading="loading"
:showPage="true"
:showTools="false"
:height="(height - 200)">
<template #default="{row,prop,column}">
</template>
</cm-table-page>
</el-col>
</el-row>
<ChangeUsersList :show="data.userDialogFlag" @hideDialog="showUserDialog" @savebtn="saveRel"></ChangeUsersList>
... ...
export default {
name: 'resourceTypePer',
name: 'autoPatrolPortPer',
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,
"reportId": ""
},
userDialogFlag: false,
count: 0,
columns: [{
prop: "docName",
label: "文档名称",
width: "350",
sortable: true,
align: 'center'
}, {
prop: "frequency",
label: "CRON表达式",
width: "170",
sortable: true,
align: 'center'
},{
prop: "handleHour",
label: "处理时常(时)",
width: "150",
sortable: true,
align: 'center'
}, {
prop: "inspectionType",
label: "巡检类型",
width: "100",
sortable: true,
align: 'center',
render: (row) => {
switch (row.important) {
case '0':
return '自动巡检';
case '1':
return '人工巡检';
default:
return '';
}
}
}, {
prop: "templatePath",
label: "文档地址",
sortable: true,
align: 'left'
}],
tableData: [],
// 表格选中
checkArr: []
})
const getList = () => {
proxy.$http.post(`/api-web/personnelChange/getList/autoPatrolPortPer`, data.value.searchParams, function (res) {
if (res && res.data) {
let dataVal = data.value;
let list = res.data;
let count = res.count;
dataVal.tableData = list;
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,
"reportId": arr.join(',')
}
if (params.targetUserName == params.userName) {
proxy.$global.showMsg('变更用户不能与变更前用户一致,请修改!', 'warning');
return;
}
proxy.$http.post(`/api-web/personnelChange/update/autoPatrolPortPer`, 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.reportId = arr.join(',')
proxy.$global.confirm("确定取消相关资源?", function () {
proxy.$global.showMsg('取消成功!');
proxy.$http.post(`/api-web/personnelChange/remove/autoPatrolPortPer`, 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.id)
})
data.value.checkArr = checkArr;
let isCheck = (list, checkArr) => {
list.forEach((v, i) => {
v.checked = checkArr.includes(v.id);
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
}
... ...
<el-row>
<el-col :span="24" class="search">
<div class="condition" style="display: flex;">
<el-form-item style="margin-right: 6px;margin-bottom: 10px;width: 300px">
<el-input v-model="data.searchParams.keywords" placeholder="关键字支持:名称、负责人、业务描述"></el-input>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="removeRel">取消</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="changeUser">变更</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row class="margin-bottom-50" style="margin-top: 3px">
<el-col :span="24" class="table-height">
<cm-table-page :columns="data.columns"
:dataList="data.tableData"
:treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
:total="data.count"
:pageSize="pageSize"
@loaddata="loadTableDataList"
@selectionChange="selectionChange"
:showIndex="true"
:showSelection="true"
:showBorder="true"
:loading="loading"
:showPage="true"
:showTools="false"
:height="(height - 200)">
<template #default="{row,prop,column}">
</template>
</cm-table-page>
</el-col>
</el-row>
<ChangeUsersList :show="data.userDialogFlag" @hideDialog="showUserDialog" @savebtn="saveRel"></ChangeUsersList>
... ...
... ... @@ -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/bizPer`, 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/bizPer`,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/bizPer`, 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
}
... ...
<el-row>
<el-col :span="24" class="search">
<div class="condition" style="display: flex;">
<el-form-item style="margin-right: 6px;margin-bottom: 10px;width: 300px">
<el-input v-model="data.searchParams.keywords" placeholder="关键字支持:名称、负责人、业务描述"></el-input>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="removeRel">取消</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="changeUser">变更</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row class="margin-bottom-50" style="margin-top: 3px">
<el-col :span="24" class="table-height">
<cm-table-page :columns="data.columns"
:dataList="data.tableData"
:treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
:total="data.count"
:pageSize="pageSize"
@loaddata="loadTableDataList"
@selectionChange="selectionChange"
:showIndex="true"
:showSelection="true"
:showBorder="true"
:loading="loading"
:showPage="true"
:showTools="false"
:height="(height - 200)">
<template #default="{row,prop,column}">
</template>
</cm-table-page>
</el-col>
</el-row>
<ChangeUsersList :show="data.userDialogFlag" @hideDialog="showUserDialog" @savebtn="saveRel"></ChangeUsersList>
... ...
export default {
name: 'resourceTypePer',
name: 'fileManagePer',
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,
"docId": ""
},
userDialogFlag: false,
count: 0,
columns: [{
prop: "name",
label: "名称",
width: "350",
sortable: true,
align: 'center'
}, {
prop: "docNo",
label: "文档编号",
width: "100",
sortable: true,
align: 'center'
}, {
prop: "createUserName",
label: "创建用户",
width: "100",
sortable: true,
align: 'center'
}, {
prop: "localPath",
label: "文档地址",
sortable: true,
align: 'left'
}],
tableData: [],
// 表格选中
checkArr: []
})
const getList = () => {
proxy.$http.post(`/api-web/personnelChange/getList/fileManagePer`, data.value.searchParams, function (res) {
if (res && res.data) {
let dataVal = data.value;
let list = res.data;
let count = res.count;
dataVal.tableData = list;
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,
"docId": arr.join(',')
}
if (params.targetUserName == params.userName) {
proxy.$global.showMsg('变更用户不能与变更前用户一致,请修改!', 'warning');
return;
}
proxy.$http.post(`/api-web/personnelChange/update/fileManagePer`, 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.docId = arr.join(',')
proxy.$global.confirm("确定取消相关资源?", function () {
proxy.$global.showMsg('取消成功!');
proxy.$http.post(`/api-web/personnelChange/remove/fileManagePer`, 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.id)
})
data.value.checkArr = checkArr;
let isCheck = (list, checkArr) => {
list.forEach((v, i) => {
v.checked = checkArr.includes(v.id);
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
}
... ...
<el-row>
<el-col :span="24" class="search">
<div class="condition" style="display: flex;">
<el-form-item style="margin-right: 6px;margin-bottom: 10px;width: 300px">
<el-input v-model="data.searchParams.keywords" placeholder="关键字支持:名称、负责人、业务描述"></el-input>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="removeRel">取消</el-button>
</el-form-item>
<el-form-item style="margin-right: 6px;margin-bottom: 10px;">
<el-button type="primary" @click="changeUser">变更</el-button>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row class="margin-bottom-50" style="margin-top: 3px">
<el-col :span="24" class="table-height">
<cm-table-page :columns="data.columns"
:dataList="data.tableData"
:treeProps="{ children: 'children', hasChildren: 'hasChildren' }"
:total="data.count"
:pageSize="pageSize"
@loaddata="loadTableDataList"
@selectionChange="selectionChange"
:showIndex="true"
:showSelection="true"
:showBorder="true"
:loading="loading"
:showPage="true"
:showTools="false"
:height="(height - 200)">
<template #default="{row,prop,column}">
</template>
</cm-table-page>
</el-col>
</el-row>
<ChangeUsersList :show="data.userDialogFlag" @hideDialog="showUserDialog" @savebtn="saveRel"></ChangeUsersList>
... ...
... ... @@ -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
}
... ...