'use strict'; var app = angular.module('app', ["angularUtils.directives.dirPagination"]); app.controller("permissionCtrl", ["$scope", "$http", "$compile", "$timeout", function ($scope, $http, $compile, $timeout) { var self = this; var s4 = new SM4Util(); self.userId = $.cookie("GlWorkPlatform-userid"); self.userName = $.cookie("GlWorkPlatform-username"); self.userCName = $.cookie("GlWorkPlatform-chineseName"); self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken"); self.userTypeEng = $.cookie("GlWorkPlatform-userTypeEng"); var postCfg = { headers: { 'Content-Type': 'application/json', 'Authorization': "Bearer " + self.get_AccessToken } }; self.CrossPage = window.parent.CrossPage; self.loading = false; ///加载机构 self.unitList = []; ///数组 self.unit = ""; ///机构名称 self.getUnit = function () { self.loading = true; $http.post(apiurljs.login + "g2work/sect/querySectAdmin", { data: s4.encryptData_CBC("") }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); ///console.log(res); if (res.success) { if (sp.isval(res.data)) { self.unitList = res.data; self.unit = res.data[0].CODE; self.getRole();///根据当前第一个机构进行加载其下面的部门数据 self.getFuncData(self.unit, "0"); ///加载机构下方的人员 } else { self.unitList = []; self.loading = false; } } else { sp.dialog(res.message); self.unitList = []; self.loading = false; } self.journalRecord(self.CrossPage.ctime, sp.getLocalDate1(), "", "接入日志", window.location.pathname) }) .error(function (XMLHttpRequest, textStatus, errorThrown) { if (textStatus != 200) { self.loading = false; } }) }; self.getUnit(); ///根据机构加载角色 self.rows = []; self.users = []; self.getRole = function () { var time1 = sp.getLocalDate(); self.activeRbac = -1; self.edit = { roleID: "", roleName: "" } var postData = { unitid: self.unit } $http.post(apiurljs.login + "g2work/datazu/queryData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); ///console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.rows = res.data; } else { self.rows = []; } } else { sp.dialog(res.message); } }); } ////加载用户列表 self.getFunc = [];///声明用户列表数组 self.getFuncData = function (zid, levels) { var postData = { zid: zid,///角色id为空加载全部用户数据 levels: levels ///以几级的形式传 } $http.post(apiurljs.login + "g2work/func/queryDataFunc", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); self.loading = false; ///console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.isSelectedAll = true; self.getFunc = res.data; var x = self.getFunc.length; self.getFunc.forEach(function (itm) { var n = itm.funcs.length; itm.funcs.forEach(function (itm2) { if (itm2.auth == "1") { itm2.check = true; } else { itm2.check = false; n-- } }) itm.check = n == itm.funcs.length if (!itm.check) { x-- } }) self.isSelectedAll = x == self.getFunc.length } else { self.getFunc = []; } } else { sp.dialog(res.message); } }) .error(function (XMLHttpRequest, textStatus, errorThrown) { if (textStatus != 200) { self.loading = false; } }) }; // 选择角色管理事件 self.select = { ZID: "" } self.activeRbac = -1; self.chooseRbac = function (index, $item) { var time1 = sp.getLocalDate1(); self.journalRecord(time1, sp.getLocalDate1(), "查询", "查询日志", "/g2work/func/queryDataFunc") // console.log($item); self.activeRbac = index; self.select = { ZID: $item.ZID } self.getFuncData(self.select.ZID, "0"); } //判断单项选择时触发全选 self.isSelected = function () { self.isSelectedAll = true; self.getFunc.forEach(function (itm) { var n = itm.funcs.length; itm.funcs.forEach(function (it) { if (!it.check) { n--; return self.isSelectedAll = false; } }) itm.check = n == itm.funcs.length }) } //部分全选 self.itemSelected = function (item) { var x = 0; self.getFunc.forEach(function (itm) { var n = 0; itm.funcs.forEach(function (it) { if (itm == item) { it.check = itm.check; } if (it.check == true) { n++; } }) itm.check = n == itm.funcs.length if (itm.check == true) { x++ } }) self.isSelectedAll = x == self.getFunc.length } //全选 self.isSelectedAll = false; self.selectAll = function () { self.getFunc.forEach(function (itm) { itm.check = self.isSelectedAll itm.funcs.forEach(function (it) { it.check = self.isSelectedAll }) }) //if (self.isSelectedAll) { // self.getFunc.forEach(function (itm) { // itm.check = true // itm.funcs.forEach(function (it) { // it.check = true // }) // }) //} else { // self.getFunc.forEach(function (itm) { // itm.check = false // itm.funcs.forEach(function (it) { // it.check = false // }) // }) //} } //保存设置 self.saveRbac = function () { var time1 = sp.getLocalDate1(); self.journalRecord(time1, sp.getLocalDate1(), "保存", "修改日志", window.location.pathname) self.checkedAll = []; self.getFunc.forEach(function (itm) { itm.funcs.forEach(function (it) { if (it.check) { self.checkedAll.push({ "zid": self.select.ZID, "pkid": it.pkid }) } }) }) // console.log(self.checkedAll); // console.log(postData); if (sp.isval(self.checkedAll)) { var postData = { typeid: "zid", typevalue: self.select.ZID, data: JSON.stringify(self.checkedAll) } $http.post(apiurljs.login + "g2work/func/updateDataAuth", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { sp.dialog(res.message); $timeout(function () { self.getFuncData(self.select.ZID, "0"); sp.dialoghide(); }, 600); } else { sp.dialog(res.message); } }); } else { sp.dialog("功能不能为空!"); } } //取消设置 self.cancelRbac = function () { var time1 = sp.getLocalDate1(); self.journalRecord(time1, sp.getLocalDate1(), "取消", "接入日志", window.location.pathname) self.checkedAll = []; self.getFuncData(self.select.ZID, "0"); } //隐藏与展开列表 self.showList = function ($event) { var tag = $($event.target); var bor = tag.parent().next(); ////$(selector).toggle(speed,callback); bor.toggle(200, function () { if (bor.is(":hidden")) { tag.removeClass('fa-minus-square-o').addClass('fa-plus-square-o') } else { tag.removeClass('fa-plus-square-o').addClass('fa-minus-square-o') } }); } //记录日志 self.journalRecord = function (time1, time2, title, func, url) { if (!self.CrossPage.cname) { return; } var data = { tablename: "SYS_CLICKLOG", data: { CTIME: time1 == null ? sp.getLocalDate1() : time1, TITLE: (title != "" ? self.CrossPage.cname + "/" + title : self.CrossPage.cname), REQUESTURL: url, REQUESTHEADERURL: window.location.origin, LOGTYPE: func, USERTYPE: $.cookie("GlWorkPlatform-userType"), ADMIN: $.cookie("GlWorkPlatform-userTypeEng"), CLIENTIP: sp.myIP(), PCNAME: sp.detectOS(), BROWSERNAME: sp.browser(), RESPONSETIME: time2 == null ? sp.getLocalDate1() : time2, USERID: self.userId, USERNAME: self.userCName } } $http.post(apiurljs.login + "g2app/DangJian/insertFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg) .success(function (res) { }) } }])