index.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. 'use strict';
  2. var app = angular.module('app', ["angularUtils.directives.dirPagination"]);
  3. app.controller("permissionCtrl", ["$scope", "$http", "$compile", "$timeout", function ($scope, $http, $compile, $timeout) {
  4. var self = this;
  5. var s4 = new SM4Util();
  6. self.userId = $.cookie("GlWorkPlatform-userid");
  7. self.userName = $.cookie("GlWorkPlatform-username");
  8. self.userCName = $.cookie("GlWorkPlatform-chineseName");
  9. self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
  10. self.userTypeEng = $.cookie("GlWorkPlatform-userTypeEng");
  11. var postCfg = {
  12. headers: {
  13. 'Content-Type': 'application/json',
  14. 'Authorization': "Bearer " + self.get_AccessToken
  15. }
  16. };
  17. self.CrossPage = window.parent.CrossPage;
  18. self.loading = false;
  19. ///加载机构
  20. self.unitList = []; ///数组
  21. self.unit = ""; ///机构名称
  22. self.getUnit = function () {
  23. self.loading = true;
  24. $http.post(apiurljs.login + "g2work/sect/querySectAdmin", { data: s4.encryptData_CBC("") }, postCfg)
  25. .success(function (obj) {
  26. var res = strToJson(s4.decryptData_CBC(obj.data));
  27. ///console.log(res);
  28. if (res.success) {
  29. if (sp.isval(res.data)) {
  30. self.unitList = res.data;
  31. self.unit = res.data[0].CODE;
  32. self.getRole();///根据当前第一个机构进行加载其下面的部门数据
  33. self.getFuncData(self.unit, "0"); ///加载机构下方的人员
  34. } else {
  35. self.unitList = [];
  36. self.loading = false;
  37. }
  38. } else {
  39. sp.dialog(res.message);
  40. self.unitList = [];
  41. self.loading = false;
  42. }
  43. self.journalRecord(self.CrossPage.ctime, sp.getLocalDate1(), "", "接入日志", window.location.pathname)
  44. })
  45. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  46. if (textStatus != 200) {
  47. self.loading = false;
  48. }
  49. })
  50. };
  51. self.getUnit();
  52. ///根据机构加载角色
  53. self.rows = [];
  54. self.users = [];
  55. self.getRole = function () {
  56. var time1 = sp.getLocalDate();
  57. self.activeRbac = -1;
  58. self.edit = {
  59. roleID: "",
  60. roleName: ""
  61. }
  62. var postData = {
  63. unitid: self.unit
  64. }
  65. $http.post(apiurljs.login + "g2work/datazu/queryData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  66. .success(function (obj) {
  67. var res = strToJson(s4.decryptData_CBC(obj.data));
  68. ///console.log(JSON.stringify(res));
  69. if (res.success) {
  70. if (sp.isval(res.data)) {
  71. self.rows = res.data;
  72. } else {
  73. self.rows = [];
  74. }
  75. } else {
  76. sp.dialog(res.message);
  77. }
  78. });
  79. }
  80. ////加载用户列表
  81. self.getFunc = [];///声明用户列表数组
  82. self.getFuncData = function (zid, levels) {
  83. var postData = {
  84. zid: zid,///角色id为空加载全部用户数据
  85. levels: levels ///以几级的形式传
  86. }
  87. $http.post(apiurljs.login + "g2work/func/queryDataFunc", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  88. .success(function (obj) {
  89. var res = strToJson(s4.decryptData_CBC(obj.data));
  90. self.loading = false;
  91. ///console.log(JSON.stringify(res));
  92. if (res.success) {
  93. if (sp.isval(res.data)) {
  94. self.isSelectedAll = true;
  95. self.getFunc = res.data;
  96. var x = self.getFunc.length;
  97. self.getFunc.forEach(function (itm) {
  98. var n = itm.funcs.length;
  99. itm.funcs.forEach(function (itm2) {
  100. if (itm2.auth == "1") {
  101. itm2.check = true;
  102. } else {
  103. itm2.check = false;
  104. n--
  105. }
  106. })
  107. itm.check = n == itm.funcs.length
  108. if (!itm.check) {
  109. x--
  110. }
  111. })
  112. self.isSelectedAll = x == self.getFunc.length
  113. } else {
  114. self.getFunc = [];
  115. }
  116. } else {
  117. sp.dialog(res.message);
  118. }
  119. })
  120. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  121. if (textStatus != 200) {
  122. self.loading = false;
  123. }
  124. })
  125. };
  126. // 选择角色管理事件
  127. self.select = {
  128. ZID: ""
  129. }
  130. self.activeRbac = -1;
  131. self.chooseRbac = function (index, $item) {
  132. var time1 = sp.getLocalDate1();
  133. self.journalRecord(time1, sp.getLocalDate1(), "查询", "查询日志", "/g2work/func/queryDataFunc")
  134. // console.log($item);
  135. self.activeRbac = index;
  136. self.select = {
  137. ZID: $item.ZID
  138. }
  139. self.getFuncData(self.select.ZID, "0");
  140. }
  141. //判断单项选择时触发全选
  142. self.isSelected = function () {
  143. self.isSelectedAll = true;
  144. self.getFunc.forEach(function (itm) {
  145. var n = itm.funcs.length;
  146. itm.funcs.forEach(function (it) {
  147. if (!it.check) {
  148. n--;
  149. return self.isSelectedAll = false;
  150. }
  151. })
  152. itm.check = n == itm.funcs.length
  153. })
  154. }
  155. //部分全选
  156. self.itemSelected = function (item) {
  157. var x = 0;
  158. self.getFunc.forEach(function (itm) {
  159. var n = 0;
  160. itm.funcs.forEach(function (it) {
  161. if (itm == item) {
  162. it.check = itm.check;
  163. }
  164. if (it.check == true) {
  165. n++;
  166. }
  167. })
  168. itm.check = n == itm.funcs.length
  169. if (itm.check == true) {
  170. x++
  171. }
  172. })
  173. self.isSelectedAll = x == self.getFunc.length
  174. }
  175. //全选
  176. self.isSelectedAll = false;
  177. self.selectAll = function () {
  178. self.getFunc.forEach(function (itm) {
  179. itm.check = self.isSelectedAll
  180. itm.funcs.forEach(function (it) {
  181. it.check = self.isSelectedAll
  182. })
  183. })
  184. //if (self.isSelectedAll) {
  185. // self.getFunc.forEach(function (itm) {
  186. // itm.check = true
  187. // itm.funcs.forEach(function (it) {
  188. // it.check = true
  189. // })
  190. // })
  191. //} else {
  192. // self.getFunc.forEach(function (itm) {
  193. // itm.check = false
  194. // itm.funcs.forEach(function (it) {
  195. // it.check = false
  196. // })
  197. // })
  198. //}
  199. }
  200. //保存设置
  201. self.saveRbac = function () {
  202. var time1 = sp.getLocalDate1();
  203. self.journalRecord(time1, sp.getLocalDate1(), "保存", "修改日志", window.location.pathname)
  204. self.checkedAll = [];
  205. self.getFunc.forEach(function (itm) {
  206. itm.funcs.forEach(function (it) {
  207. if (it.check) {
  208. self.checkedAll.push({
  209. "zid": self.select.ZID,
  210. "pkid": it.pkid
  211. })
  212. }
  213. })
  214. })
  215. // console.log(self.checkedAll);
  216. // console.log(postData);
  217. if (sp.isval(self.checkedAll)) {
  218. var postData = {
  219. typeid: "zid",
  220. typevalue: self.select.ZID,
  221. data: JSON.stringify(self.checkedAll)
  222. }
  223. $http.post(apiurljs.login + "g2work/func/updateDataAuth", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  224. .success(function (obj) {
  225. var res = strToJson(s4.decryptData_CBC(obj.data));
  226. if (res.success) {
  227. sp.dialog(res.message);
  228. $timeout(function () {
  229. self.getFuncData(self.select.ZID, "0");
  230. sp.dialoghide();
  231. }, 600);
  232. } else {
  233. sp.dialog(res.message);
  234. }
  235. });
  236. } else {
  237. sp.dialog("功能不能为空!");
  238. }
  239. }
  240. //取消设置
  241. self.cancelRbac = function () {
  242. var time1 = sp.getLocalDate1();
  243. self.journalRecord(time1, sp.getLocalDate1(), "取消", "接入日志", window.location.pathname)
  244. self.checkedAll = [];
  245. self.getFuncData(self.select.ZID, "0");
  246. }
  247. //隐藏与展开列表
  248. self.showList = function ($event) {
  249. var tag = $($event.target);
  250. var bor = tag.parent().next();
  251. ////$(selector).toggle(speed,callback);
  252. bor.toggle(200, function () {
  253. if (bor.is(":hidden")) {
  254. tag.removeClass('fa-minus-square-o').addClass('fa-plus-square-o')
  255. } else {
  256. tag.removeClass('fa-plus-square-o').addClass('fa-minus-square-o')
  257. }
  258. });
  259. }
  260. //记录日志
  261. self.journalRecord = function (time1, time2, title, func, url) {
  262. if (!self.CrossPage.cname) { return; }
  263. var data = {
  264. tablename: "SYS_CLICKLOG",
  265. data: {
  266. CTIME: time1 == null ? sp.getLocalDate1() : time1,
  267. TITLE: (title != "" ? self.CrossPage.cname + "/" + title : self.CrossPage.cname),
  268. REQUESTURL: url,
  269. REQUESTHEADERURL: window.location.origin,
  270. LOGTYPE: func,
  271. USERTYPE: $.cookie("GlWorkPlatform-userType"),
  272. ADMIN: $.cookie("GlWorkPlatform-userTypeEng"),
  273. CLIENTIP: sp.myIP(),
  274. PCNAME: sp.detectOS(),
  275. BROWSERNAME: sp.browser(),
  276. RESPONSETIME: time2 == null ? sp.getLocalDate1() : time2,
  277. USERID: self.userId,
  278. USERNAME: self.userCName
  279. }
  280. }
  281. $http.post(apiurljs.login + "g2app/DangJian/insertFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  282. .success(function (res) {
  283. })
  284. }
  285. }])