diff --git a/common/src/main/resources/template/js/teamTemplate/teamTemplateAdd.js b/common/src/main/resources/template/js/teamTemplate/teamTemplateAdd.js index 964327d445fd1030566ce4e1d2f44efd83c687f6..0be5f1dac7ffcf30c8186827093a3ddbf57dd780 100644 --- a/common/src/main/resources/template/js/teamTemplate/teamTemplateAdd.js +++ b/common/src/main/resources/template/js/teamTemplate/teamTemplateAdd.js @@ -22,13 +22,14 @@ layui.config({ tableTree.render({ id: 'messageTable', elem: '#messageTable', - data: [{"id": "123qwe", "name": "阿萨斯多", "pId": "0", "lay_is_open": true}, - {"id": "123qwe1", "name": "阿萨斯多qqq", "pId": "123qwe", "lay_is_open": true}], + data: [], + // 该参数不能删除,分页参数无效,目前只能通过设置10000来保证当前页最大的数据量 + limit: 10000, cols: [[ - { field: 'name', title: '名称', width: 120 }, - { field: 'menuNameEn', title: '部门', width: 150 }, - { field: 'orderNum', title: '邮箱', width: 150 }, - { field: 'desktopName', title: '联系方式', width: 120 }, + { field: 'name', title: '名称', width: 160 }, + { field: 'departmentName', title: '部门', width: 120 }, + { field: 'phone', title: '联系方式', width: 140 }, + { field: 'email', title: '邮箱', width: 200 }, { title: systemLanguage["com.skyeye.operation"][languageType], fixed: 'right', align: 'center', width: 150, toolbar: '#tableBar' } ]], done: function(json) { @@ -44,26 +45,52 @@ layui.config({ tableTree.getTable().on('tool(messageTable)', function (obj) { var data = obj.data; var layEvent = obj.event; - if (layEvent === 'removeRole') { // 移除角色 + if (layEvent === 'removeRole') { + // 移除角色和该角色下的用户 $.each(treeTableData, function(index, item) { - if (item.id == data.id) { + if (item.id == data.id || item.pId == data.id) { treeTableData.splice(index, 1); } }); + reloadTreeTable(); } else if (layEvent === 'addUser') { // 添加成员 + var roleId = data.id; systemCommonUtil.userReturnList = []; systemCommonUtil.chooseOrNotMy = "1"; // 人员列表中是否包含自己--1.包含;其他参数不包含 systemCommonUtil.chooseOrNotEmail = "2"; // 人员列表中是否必须绑定邮箱--1.必须;其他参数没必要 systemCommonUtil.checkType = "1"; // 人员选择类型,1.多选;其他。单选 systemCommonUtil.openSysUserStaffChoosePage(function (userReturnList) { - console.log(userReturnList) + var userList = [].concat(userReturnList); + $.each(userList, function (i, item) { + // 一个用户在一个团队中只能属于一个角色 + var checkParams = getInPoingArr(treeTableData, "id", item.id); + if (checkParams == null) { + item['pId'] = roleId; + treeTableData.push(item); + } + }); + reloadTreeTable(); }); } else if (layEvent === 'removeUser') { // 移除成员 - + var roleId = data.pId; + var userId = data.id; + $.each(treeTableData, function(index, item) { + if (!isNull(item) && item.pId == roleId && item.id == userId) { + treeTableData.splice(index, 1); + } + }); + reloadTreeTable(); } }); } + // 刷新成员树表格 + function reloadTreeTable() { + var data = $.extend(true, [], treeTableData); + tableTree.reload("messageTable", {data: data}); + loadAuthList(); + } + loadAuthList(); form.on('select(objectType)', function(data) { loadAuthList(); @@ -72,6 +99,7 @@ layui.config({ matchingLanguage(); form.render(); form.on('submit(formAddBean)', function (data) { + console.log(treeTableData) if (winui.verifyForm(data.elem)) { var params = { dictName: $("#dictName").val(), @@ -88,8 +116,65 @@ layui.config({ }); function loadAuthList() { + var data = $.extend(true, [], treeTableData); var objectType = $('#objectType').val(); - teamObjectPermissionUtil.insertPageShow(objectType, 'authList', form); + // 加载该受用类型的团队可以设置哪些权限 + var colsList = teamObjectPermissionUtil.getAuthCols(objectType); + $('#authList').html(getDataUseHandlebars($('#authTableTemplate').html(), {list: colsList})); + $.each(colsList, function (i, item) { + // 给数据设置权限组的key, + $.each(data, function (j, bean) { + bean.authGroupKey = item.id; + }); + loadAuthTreeTable(item.id, item.cols, data); + }); + + form.on('checkbox(checkClick)', function(obj) { + // var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked"); + var id = $(this).attr('id'); + var str = id.split('_'); + var authGroupKey = str[0]; + var authKey = str[1]; + var roleId = str[2]; + var userId = str[3]; + var checkBoxId = authGroupKey + '_' + authKey + '_' + roleId + '_' + userId; + var name = authGroupKey + '_' + authKey + '_' + roleId; + var _table = $(`div[lay-id='${authGroupKey}']`); + if (isNull(userId)) { + // 如果用户id为空,代表点击的是角色的选择box,需要把name是这个的都选中 + if (obj.elem.checked) { + _table.find(`input[name='${name}']`).prop("checked", true); + } else { + _table.find(`input[name='${name}']`).prop("checked", false); + } + } else { + if (obj.elem.checked) { + if (_table.find(`input[name='${name}']:checked`).length + == _table.find(`input[name='${name}']`).length - 1) { + $(`input[id='${name}_']`).prop("checked", true); + } + } else { + $(`input[id='${name}_']`).prop("checked", false); + } + } + form.render('checkbox'); + }); + } + + function loadAuthTreeTable(id, cols, data) { + tableTree.render({ + id: id, + elem: '#' + id, + data: data, + // 该参数不能删除,分页参数无效,目前只能通过设置10000来保证当前页最大的数据量 + limit: 10000, + cols: [cols], + }, { + keyId: 'id', + keyPid: 'pId', + title: 'name', + defaultShow: true, + }); } $("body").on("click", "#addRole", function() { @@ -104,7 +189,7 @@ layui.config({ turnData["pId"] = '0'; turnData["lay_is_open"] = true; treeTableData.push(turnData); - tableTree.reload("messageTable", {data: treeTableData}); + reloadTreeTable(); } else { winui.window.msg("角色重复", {icon: 2, time: 2000}); } diff --git a/common/src/main/resources/template/tpl/teamTemplate/teamTemplateAdd.html b/common/src/main/resources/template/tpl/teamTemplate/teamTemplateAdd.html index 275ec205809d5df07b7e6bc7a7c555ca2afe3bd0..46c381215a6dcb17d636b55d35a60197bea3df05 100644 --- a/common/src/main/resources/template/tpl/teamTemplate/teamTemplateAdd.html +++ b/common/src/main/resources/template/tpl/teamTemplate/teamTemplateAdd.html @@ -44,6 +44,7 @@