teamTemplateAdd.js 6.4 KB
Newer Older
doc_wei's avatar
doc_wei 已提交
1 2

layui.config({
doc_wei's avatar
doc_wei 已提交
3
	base: basePath,
doc_wei's avatar
doc_wei 已提交
4 5 6
	version: skyeyeVersion
}).extend({
    window: 'js/winui.window'
doc_wei's avatar
doc_wei 已提交
7
}).define(['window', 'jquery', 'winui', 'textool', 'tableTreeDj', 'form'], function (exports) {
doc_wei's avatar
doc_wei 已提交
8
	winui.renderColor();
doc_wei's avatar
doc_wei 已提交
9 10 11 12 13 14 15
	var index = parent.layer.getFrameIndex(window.name);
	var $ = layui.$,
		textool = layui.textool,
		tableTree = layui.tableTreeDj,
		form = layui.form;
	textool.init({eleId: 'remark', maxlength: 200});
	var treeTableData = [];
doc_wei's avatar
doc_wei 已提交
16

doc_wei's avatar
doc_wei 已提交
17 18
	skyeyeClassEnumUtil.showEnumDataListByClassName("teamObjectType", 'select', "objectType", '', form);
	skyeyeClassEnumUtil.showEnumDataListByClassName("commonEnable", 'radio', "enabled", '', form);
doc_wei's avatar
doc_wei 已提交
19

doc_wei's avatar
doc_wei 已提交
20 21 22 23 24
	loadTreeTable();
	function loadTreeTable() {
		tableTree.render({
			id: 'messageTable',
			elem: '#messageTable',
doc_wei's avatar
doc_wei 已提交
25 26 27
			data: [],
			// 该参数不能删除,分页参数无效,目前只能通过设置10000来保证当前页最大的数据量
			limit: 10000,
doc_wei's avatar
doc_wei 已提交
28
			cols: [[
doc_wei's avatar
doc_wei 已提交
29 30 31 32
				{ field: 'name', title: '名称', width: 160 },
				{ field: 'departmentName', title: '部门', width: 120 },
				{ field: 'phone', title: '联系方式', width: 140 },
				{ field: 'email', title: '邮箱', width: 200 },
doc_wei's avatar
doc_wei 已提交
33
				{ title: systemLanguage["com.skyeye.operation"][languageType], fixed: 'right', align: 'center', width: 150, toolbar: '#tableBar' }
doc_wei's avatar
doc_wei 已提交
34 35 36 37 38 39 40 41 42 43
			]],
			done: function(json) {
				matchingLanguage();
			}
		}, {
			keyId: 'id',
			keyPid: 'pId',
			title: 'name',
			defaultShow: true,
		});
44

doc_wei's avatar
doc_wei 已提交
45 46 47
		tableTree.getTable().on('tool(messageTable)', function (obj) {
			var data = obj.data;
			var layEvent = obj.event;
doc_wei's avatar
doc_wei 已提交
48 49
			if (layEvent === 'removeRole') {
				// 移除角色和该角色下的用户
doc_wei's avatar
doc_wei 已提交
50
				$.each(treeTableData, function(index, item) {
doc_wei's avatar
doc_wei 已提交
51
					if (item.id == data.id || item.pId == data.id) {
doc_wei's avatar
doc_wei 已提交
52 53 54
						treeTableData.splice(index, 1);
					}
				});
doc_wei's avatar
doc_wei 已提交
55
				reloadTreeTable();
doc_wei's avatar
doc_wei 已提交
56
			} else if (layEvent === 'addUser') { // 添加成员
doc_wei's avatar
doc_wei 已提交
57
				var roleId = data.id;
doc_wei's avatar
doc_wei 已提交
58 59 60 61 62
				systemCommonUtil.userReturnList = [];
				systemCommonUtil.chooseOrNotMy = "1"; // 人员列表中是否包含自己--1.包含;其他参数不包含
				systemCommonUtil.chooseOrNotEmail = "2"; // 人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
				systemCommonUtil.checkType = "1"; // 人员选择类型,1.多选;其他。单选
				systemCommonUtil.openSysUserStaffChoosePage(function (userReturnList) {
doc_wei's avatar
doc_wei 已提交
63 64 65 66 67 68 69 70 71 72
					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();
doc_wei's avatar
doc_wei 已提交
73 74
				});
			} else if (layEvent === 'removeUser') { // 移除成员
doc_wei's avatar
doc_wei 已提交
75 76 77 78 79 80 81 82
				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();
doc_wei's avatar
doc_wei 已提交
83
			}
doc_wei's avatar
doc_wei 已提交
84
		});
doc_wei's avatar
doc_wei 已提交
85 86
	}

doc_wei's avatar
doc_wei 已提交
87 88 89 90 91 92 93
	// 刷新成员树表格
	function reloadTreeTable() {
		var data = $.extend(true, [], treeTableData);
		tableTree.reload("messageTable", {data: data});
		loadAuthList();
	}

doc_wei's avatar
doc_wei 已提交
94 95 96 97
	loadAuthList();
	form.on('select(objectType)', function(data) {
		loadAuthList();
	});
doc_wei's avatar
doc_wei 已提交
98

doc_wei's avatar
doc_wei 已提交
99 100 101
	matchingLanguage();
	form.render();
	form.on('submit(formAddBean)', function (data) {
doc_wei's avatar
doc_wei 已提交
102
		console.log(treeTableData)
doc_wei's avatar
doc_wei 已提交
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
		if (winui.verifyForm(data.elem)) {
			var params = {
				dictName: $("#dictName").val(),
				dictCode: $("#dictCode").val(),
				enabled: $("#enabled input:radio:checked").val(),
				remark: $("#remark").val(),
			};
			AjaxPostUtil.request({url: reqBasePath + "writeDictTypeMation", params: params, type: 'json', method: "POST", callback: function (json) {
				parent.layer.close(index);
				parent.refreshCode = '0';
			}});
		}
		return false;
	});

	function loadAuthList() {
doc_wei's avatar
doc_wei 已提交
119
		var data = $.extend(true, [], treeTableData);
doc_wei's avatar
doc_wei 已提交
120
		var objectType = $('#objectType').val();
doc_wei's avatar
doc_wei 已提交
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
		// 加载该受用类型的团队可以设置哪些权限
		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,
		});
doc_wei's avatar
doc_wei 已提交
178 179 180 181 182 183 184 185 186 187 188 189 190 191
	}

	$("body").on("click", "#addRole", function() {
		_openNewWindows({
			url: "../../tpl/sysDictData/sysDictDataSelectChoose.html?sysDictType=teamRole",
			title: '选择角色',
			pageId: "sysDictDataSelectChoose",
			area: ['50vw', '50vh'],
			callBack: function (refreshCode, turnData) {
				var checkParams = getInPoingArr(treeTableData, "id", turnData.id);
				if (checkParams == null) {
					turnData["pId"] = '0';
					turnData["lay_is_open"] = true;
					treeTableData.push(turnData);
doc_wei's avatar
doc_wei 已提交
192
					reloadTreeTable();
doc_wei's avatar
doc_wei 已提交
193 194 195 196 197
				} else {
					winui.window.msg("角色重复", {icon: 2, time: 2000});
				}
			}});
	});
doc_wei's avatar
doc_wei 已提交
198

doc_wei's avatar
doc_wei 已提交
199 200
	$("body").on("click", "#cancle", function() {
		parent.layer.close(index);
doc_wei's avatar
doc_wei 已提交
201 202
	});
});