|
@@ -0,0 +1,308 @@
|
|
|
+var grid_selector = "#grid-table";
|
|
|
+var pager_selector = "#grid-pager";
|
|
|
+var menuTree;
|
|
|
+//zTree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等
|
|
|
+var setting = {
|
|
|
+ // 复选框
|
|
|
+ check : {
|
|
|
+ enable : true
|
|
|
+ },
|
|
|
+ async : {
|
|
|
+ enable : true,
|
|
|
+ type : 'post',
|
|
|
+ url : basePath + "/menu/list"
|
|
|
+ },
|
|
|
+ data : {
|
|
|
+ // 简单的数据源
|
|
|
+ simpleData : {
|
|
|
+ enable : true,
|
|
|
+ idKey : "id",
|
|
|
+ pIdKey : "pid",
|
|
|
+ rootPId : 0
|
|
|
+ // 根节点
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+$(document).ready(function() {
|
|
|
+ orgSelect();
|
|
|
+ roleSelect();
|
|
|
+ initGrid();
|
|
|
+ // 初始化zTree对象
|
|
|
+ menuTree = $.fn.zTree.init($("#menuTree"), setting);
|
|
|
+});
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化Grid
|
|
|
+ */
|
|
|
+function initGrid() {
|
|
|
+ resizePageGrid(grid_selector);
|
|
|
+ // 数据表格初始化
|
|
|
+ $(grid_selector).jqGrid({
|
|
|
+ url : basePath + '/group/list',
|
|
|
+ mtype : "POST", // 提交方式
|
|
|
+ datatype : "json",
|
|
|
+ height : "auto",
|
|
|
+ colNames : [
|
|
|
+ '唯一标识', '分组名称', '组织编码', '组织名称', '角色编码', '角色名称'
|
|
|
+ ],
|
|
|
+ colModel : [
|
|
|
+ {
|
|
|
+ name : 'id',
|
|
|
+ index : 'id',
|
|
|
+ key : true,
|
|
|
+ hidden : true,
|
|
|
+ sortable : false
|
|
|
+ }, {
|
|
|
+ name : 'remark',
|
|
|
+ index : 'remark',
|
|
|
+ sortable : false
|
|
|
+ }, {
|
|
|
+ name : 'orgCode',
|
|
|
+ index : 'orgCode',
|
|
|
+ sortable : false
|
|
|
+ }, {
|
|
|
+ name : 'orgName',
|
|
|
+ index : 'orgName',
|
|
|
+ sortable : false
|
|
|
+ }, {
|
|
|
+ name : 'roleCode',
|
|
|
+ index : 'roleCode',
|
|
|
+ sortable : false
|
|
|
+ }, {
|
|
|
+ name : 'roleName',
|
|
|
+ index : 'roleName',
|
|
|
+ sortable : false
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ rowNum : _rowNum, // 每页显示记录数
|
|
|
+ rowList : _rowList, // 用于改变显示行数的下拉列表框的元素数组。
|
|
|
+ pager : pager_selector, // 定义翻页用的导航栏
|
|
|
+ rownumbers : true,
|
|
|
+ altRows : true, // 设置为交替行表格,默认为false
|
|
|
+ multiselect : true, // 可以多选
|
|
|
+ loadComplete : function() {
|
|
|
+ var table = this;
|
|
|
+ setTimeout(function() {
|
|
|
+ updatePagerIcons(table);
|
|
|
+ enableTooltips(table);
|
|
|
+ }, 0);
|
|
|
+ },
|
|
|
+ prmNames : {
|
|
|
+ oper : "oper",
|
|
|
+ page : "page",
|
|
|
+ rows : "rows",
|
|
|
+ sort : "sidx",
|
|
|
+ order : "sord"
|
|
|
+ },
|
|
|
+ jsonReader : {
|
|
|
+ root : "list", // json中代表实际模型数据的入口
|
|
|
+ page : "page", // json中代表当前页码的数据
|
|
|
+ total : "pages", // json中代表页码总数的数据
|
|
|
+ records : "total", // json中代表数据行总数的数据
|
|
|
+ repeatitems : false // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素
|
|
|
+ },
|
|
|
+ gridComplete : function() {
|
|
|
+ comGridComplete("grid-table", "editRecord");
|
|
|
+ },
|
|
|
+ onPaging : function() {
|
|
|
+ comGridPage("grid-table");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 调整jqgrid
|
|
|
+ ajustJqGrid(grid_selector, pager_selector);
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 新增
|
|
|
+ */
|
|
|
+function addInfo() {
|
|
|
+ // 清空表单信息
|
|
|
+ comClearFormData("#editForm");
|
|
|
+ $('#org').selectpicker('refresh');
|
|
|
+ $('#role').selectpicker('refresh');
|
|
|
+ menuTree.checkAllNodes(false);
|
|
|
+ menuTree.expandAll(false);
|
|
|
+ // 弹出模态框
|
|
|
+ showModelDialog("editWin", "新增");
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 编辑
|
|
|
+ */
|
|
|
+function editInfo() {
|
|
|
+ // 获取选择行
|
|
|
+ var ids = getMultiData(grid_selector);
|
|
|
+ if (isNull(ids) || ids.indexOf(",") != -1) {
|
|
|
+ layer.alert("请选择且只选择一条记录");
|
|
|
+ } else {
|
|
|
+ $.ajax({
|
|
|
+ type : 'POST',
|
|
|
+ dataType : "json",
|
|
|
+ data : {
|
|
|
+ "id" : ids
|
|
|
+ },
|
|
|
+ url : basePath + '/group/getRecord',
|
|
|
+ success : function(data) {
|
|
|
+ var selData = $(grid_selector).jqGrid('getRowData', ids);
|
|
|
+ $("#id").val(data.id);
|
|
|
+ $("#org").selectpicker('val', data.org);
|
|
|
+ $("#role").selectpicker('val', data.role);
|
|
|
+ $("#remark").val(data.remark);
|
|
|
+ $("#menuBtnRef").val(data.menuBtnRef);
|
|
|
+ menuTree.checkAllNodes(false);
|
|
|
+ menuTree.expandAll(false);
|
|
|
+ if (!isNull(data.menuBtnRef)) {
|
|
|
+ var menuBtnRefs = data.menuBtnRef.split(";");
|
|
|
+ var menuIds = menuBtnRefs[0].split(",");
|
|
|
+ for (var i = 0; i < menuIds.length; i++) {
|
|
|
+ var node = menuTree.getNodeByParam("id", menuIds[i], null);
|
|
|
+ if (!isNull(node)) {
|
|
|
+ node.checked = "true";
|
|
|
+ menuTree.checkNode(node, true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (menuBtnRefs.length > 1) {
|
|
|
+ var btnIds = menuBtnRefs[1].split(",");
|
|
|
+ for (var i = 0; i < btnIds.length; i++) {
|
|
|
+ var node = menuTree.getNodeByParam("id", btnIds[i], null);
|
|
|
+ if (!isNull(node)) {
|
|
|
+ node.checked = "true";
|
|
|
+ menuTree.checkNode(node, true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ showModelDialog("editWin", "编辑");
|
|
|
+ },
|
|
|
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
|
+ layer.alert("error:" + errorThrown);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 删除
|
|
|
+ */
|
|
|
+function delInfo() {
|
|
|
+ // 获取选择行
|
|
|
+ var ids = getMultiData(grid_selector);
|
|
|
+ if (!isNull(ids)) {
|
|
|
+ layer.confirm('确定删除所选记录及其下级记录吗?', {
|
|
|
+ icon : 3,
|
|
|
+ title : '提示'
|
|
|
+ }, function(index) {
|
|
|
+ $.ajax({
|
|
|
+ type : 'POST',
|
|
|
+ dataType : "json",
|
|
|
+ data : {
|
|
|
+ "ids" : ids
|
|
|
+ },
|
|
|
+ url : basePath + '/group/delRecodes',
|
|
|
+ success : function(data) {
|
|
|
+ layer.close(index);
|
|
|
+ searchRecord();
|
|
|
+ },
|
|
|
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
|
+ layer.close(index);
|
|
|
+ layer.alert("error:" + errorThrown);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ layer.alert("请选择记录");
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 查询
|
|
|
+ */
|
|
|
+function searchRecord() {
|
|
|
+ var srh_org = $("#srh_org").val();
|
|
|
+ var srh_role = $("#srh_role").val();
|
|
|
+ $(grid_selector).jqGrid('setGridParam', {
|
|
|
+ url : basePath + "/group/list?org=" + srh_org + "&role=" + srh_role,
|
|
|
+ page : 1
|
|
|
+ }).trigger("reloadGrid");
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * 保存数据
|
|
|
+ */
|
|
|
+function save() {
|
|
|
+ var nodes = menuTree.getCheckedNodes(true);
|
|
|
+ if (nodes.length > 0) {
|
|
|
+ var chkMenuIds = "";
|
|
|
+ var chkBtnIds = "";
|
|
|
+ for (var i = 0; i < nodes.length; i++) {
|
|
|
+ if (nodes[i].leaf == 'B') { // 按钮节点
|
|
|
+ if (chkBtnIds != "") {
|
|
|
+ chkBtnIds += ",";
|
|
|
+ }
|
|
|
+ chkBtnIds += nodes[i].id;
|
|
|
+ } else { // 菜单节点
|
|
|
+ if (chkMenuIds != "") {
|
|
|
+ chkMenuIds += ",";
|
|
|
+ }
|
|
|
+ chkMenuIds += nodes[i].id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $("#menuBtnRef").val(chkMenuIds + ";" + chkBtnIds);
|
|
|
+ }
|
|
|
+ $.ajax({
|
|
|
+ type : "post",
|
|
|
+ url : basePath + '/group/save',
|
|
|
+ dataType : 'json',
|
|
|
+ data : $('#editForm').serialize(), // 表单序列化,获取数据
|
|
|
+ success : function(data) {
|
|
|
+ // 成功删除后刷新页面
|
|
|
+ if (data && data.success == true) {
|
|
|
+ layer.alert("数据已成功保存!");
|
|
|
+ closeWin();
|
|
|
+ searchRecord();
|
|
|
+ } else {
|
|
|
+ layer.alert("数据保存失败!");
|
|
|
+ }
|
|
|
+ }, // 操作成功后的操作!data是后台传过来的值
|
|
|
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
|
|
|
+ layer.alert("error:" + errorThrown);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 关闭窗口
|
|
|
+ */
|
|
|
+function closeWin() {
|
|
|
+ hideModelDialog("editWin");
|
|
|
+}
|
|
|
+
|
|
|
+//加载组织下拉框选项
|
|
|
+function orgSelect() {
|
|
|
+$.ajax({
|
|
|
+ type : "post",
|
|
|
+ url : basePath + '/org/getOrgList',
|
|
|
+ success : function(data) {
|
|
|
+ loadComboBox(data, "#srh_org");
|
|
|
+ $('#srh_org').selectpicker('refresh');
|
|
|
+ loadComboBox(data, "#org");
|
|
|
+ $('#org').selectpicker('refresh');
|
|
|
+ }
|
|
|
+});
|
|
|
+}
|
|
|
+
|
|
|
+//加载角色下拉框选项
|
|
|
+function roleSelect() {
|
|
|
+$.ajax({
|
|
|
+ type : "post",
|
|
|
+ url : basePath + '/role/getRoleList',
|
|
|
+ success : function(data) {
|
|
|
+ loadComboBox(data, "#srh_role");
|
|
|
+ $('#srh_role').selectpicker('refresh');
|
|
|
+ loadComboBox(data, "#role");
|
|
|
+ $('#role').selectpicker('refresh');
|
|
|
+ }
|
|
|
+});
|
|
|
+}
|