index.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. 'use strict';
  2. var app = angular.module('app', ["angularUtils.directives.dirPagination"]);
  3. app.controller("appCtrl", ["$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.getData(0);///根据当前第一个机构进行加载其下面的部门数据
  33. } else {
  34. self.unitList = [];
  35. self.loading = false;
  36. // sp.dialog("暂无数据,请先进行机构设置操作");
  37. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  38. var dialogBody = "<div class=\"sp-dialog-body\">暂无数据,请先进行机构设置操作</div>";
  39. var dialogFoot = "<div class=\"sp-dialog-foot\"><input id='delDataTrue' type='button' value='确 认' class='sp-dialog-btnTrue' /><input type='button' value='取 消' class='sp-dialog-btnCancle sp-closeDialog' /></div>";
  40. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  41. sp.openCenter(".sp-dialog");
  42. ///取消按钮
  43. $('.sp-closeDialog').click(function (event) {
  44. sp.closeCenter(".sp-dialog");
  45. event.preventDefault(); event.stopPropagation();
  46. });
  47. //post消息的id
  48. $("#delDataTrue").click(function () {
  49. sp.dialoghide();
  50. window.location.href = "sect.html";
  51. });
  52. }
  53. } else {
  54. sp.dialog(res.message);
  55. self.unitList = [];
  56. self.loading = false;
  57. }
  58. self.journalRecord(self.CrossPage.ctime, sp.getLocalDate1(), "", "接入日志", window.location.pathname)
  59. })
  60. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  61. if (textStatus != 200) {
  62. self.loading = false;
  63. }
  64. })
  65. };
  66. self.getUnit();
  67. ///加载部门数据
  68. self.rows = {};
  69. self.temporary = {};
  70. self.getData = function (n) {
  71. var postData = {
  72. code: self.unit
  73. }
  74. $http.post(apiurljs.login + "g2work/sect/querySect", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  75. .success(function (obj) {
  76. var res = strToJson(s4.decryptData_CBC(obj.data));
  77. self.loading = false;
  78. ///console.log(JSON.stringify(res));
  79. if (res.success) {
  80. if (sp.isval(res.data)) {
  81. self.rows = res.data[0];
  82. if (Object.keys(self.temporary).length == 0) {
  83. self.rows.C_H_I_L_D[0].show = true;
  84. } else {
  85. self.initShow(self.rows, self.temporary)
  86. }
  87. } else {
  88. self.rows = [];
  89. }
  90. } else {
  91. sp.dialog(res.message);
  92. }
  93. })
  94. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  95. if (textStatus != 200) {
  96. self.loading = false;
  97. }
  98. })
  99. }
  100. self.selectedItem = {
  101. "add": false,
  102. "child_title": '',
  103. "FID": "",
  104. "title": "",
  105. "level": "",
  106. "parent": ""
  107. }
  108. self.thisItem = {};
  109. self.itemClicked = function ($item) {
  110. var time1 = sp.getLocalDate1();
  111. self.selectedItem = {
  112. add: true,
  113. title: $item.SECTION,
  114. parent: $item.CODE
  115. }
  116. sp.layer('#layer_box');
  117. self.journalRecord(time1, sp.getLocalDate1(), "查询", "查询日志", "/g2work/user/queryData")
  118. };
  119. ///编辑部门
  120. self.itemEdit = function ($item) {
  121. var time1 = sp.getLocalDate1();
  122. self.selectedItem.add = false;
  123. var postData = {
  124. code: $item.CODE,///部门编码
  125. includechildren: false///只返回一条数据是false
  126. };
  127. $http.post(apiurljs.login + "g2work/department/queryData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  128. .success(function (obj) {
  129. var res = strToJson(s4.decryptData_CBC(obj.data));
  130. //console.log(JSON.stringify(res));
  131. if (res.success) {
  132. self.selectedItem = {
  133. FID: res.data[0].CODE,
  134. title: res.data[0].SECTION
  135. }
  136. } else {
  137. sp.dialog(res.message);
  138. }
  139. });
  140. sp.layer('#layer_box');
  141. self.journalRecord(time1, sp.getLocalDate1(), "编辑", "修改日志", window.location.pathname)
  142. };
  143. ///删除部门按钮事件
  144. self.itemDelete = function ($item) {
  145. var getDelID = $item.CODE;
  146. var time1 = sp.getLocalDate1();
  147. self.journalRecord(time1, sp.getLocalDate1(), "删除", "修改日志", window.location.pathname)
  148. var data = {
  149. tablename: "sys_datauser_sect",
  150. colums: "*",
  151. order: "USERID",
  152. sqlwhere: { CODE: getDelID },
  153. sqlorwhere: "",
  154. sqlinwhere: "",
  155. sqllikewhere: ""
  156. }
  157. $http.post(apiurljs.login + "g2app/DangJian/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  158. .success(function (obj) {
  159. var res = strToJson(s4.decryptData_CBC(obj.data));
  160. if (res.data.length > 0) {
  161. sp.dialog("此部门已配置用户,请先删除用户再删除部门!")
  162. } else {
  163. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  164. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  165. var dialogFoot = "<div class=\"sp-dialog-foot\"><input data-id=" + getDelID + " id='delDataTrue' type='button' value='确 认' class='sp-dialog-btnTrue' /><input type='button' value='取 消' class='sp-dialog-btnCancle sp-closeDialog' /></div>";
  166. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  167. sp.openCenter(".sp-dialog");
  168. ///取消按钮
  169. $('.sp-closeDialog').click(function (event) {
  170. sp.closeCenter(".sp-dialog");
  171. event.preventDefault(); event.stopPropagation();
  172. });
  173. //post消息的id
  174. $("#delDataTrue").click(function () {
  175. var getid = $(this).attr("data-id");
  176. sp.dialoghide();
  177. var data = {
  178. code: getDelID///角色编码
  179. };
  180. $http.post(apiurljs.login + "g2work/department/deleteByCode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  181. .success(function (obj) {
  182. var res = strToJson(s4.decryptData_CBC(obj.data));
  183. if (res.success) {
  184. self.temporary = self.rows;
  185. self.getData();
  186. sp.dialoghide();
  187. } else {
  188. sp.dialog(res.message);
  189. }
  190. });
  191. });
  192. }
  193. })
  194. };
  195. self.btnAddFirstDepartment = function ($item) {
  196. var time1 = sp.getLocalDate1();
  197. self.journalRecord(time1, sp.getLocalDate1(), "新建", "修改日志", window.location.pathname)
  198. self.selectedItem = {
  199. add: true,
  200. title: $item.SECTION,
  201. parent: $item.CODE
  202. }
  203. sp.layer('#layer_addFirstDepartment');
  204. };
  205. ///设置部门提交按钮事件
  206. self.btnSetTitle = function () {
  207. // console.log(self.thisItem);
  208. if (self.selectedItem.add) {
  209. ////新增部门
  210. var insertData = {
  211. parentid: self.selectedItem.parent,///上级节点id
  212. section: self.selectedItem.child_title//部门名称
  213. };
  214. $http.post(apiurljs.login + "g2work/department/insertData", { data: s4.encryptData_CBC(JSON.stringify(insertData)) }, postCfg)
  215. .success(function (obj) {
  216. var res = strToJson(s4.decryptData_CBC(obj.data));
  217. ///console.log(JSON.stringify(res));
  218. if (res.success) {
  219. self.temporary = self.rows;
  220. self.getData();///添加成功之后,再次调用部门接口
  221. sp.layerhide();
  222. } else {
  223. sp.layerhide();
  224. sp.dialog(res.message);
  225. }
  226. });
  227. } else {
  228. ////编辑部门
  229. var insertData = {
  230. code: self.selectedItem.FID,///当前部门编码
  231. section: self.selectedItem.title//当前部门名称
  232. };
  233. $http.post(apiurljs.login + "g2work/department/updateDataByCode", { data: s4.encryptData_CBC(JSON.stringify(insertData)) }, postCfg)
  234. .success(function (obj) {
  235. var res = strToJson(s4.decryptData_CBC(obj.data));
  236. ///console.log(JSON.stringify(res));
  237. if (res.success) {
  238. self.temporary = self.rows;
  239. self.getData(); ///编辑成功之后,再次调用部门接口
  240. sp.layerhide();
  241. } else {
  242. sp.layerhide();
  243. sp.dialog(res.message);
  244. }
  245. });
  246. }
  247. }
  248. ///上移
  249. self.itemSortup = function ($item) {
  250. var time1 = sp.getLocalDate1();
  251. self.journalRecord(time1, sp.getLocalDate1(), "上移", "修改日志", window.location.pathname)
  252. //console.log($item);
  253. var get_code = $item.CODE;
  254. var get_levels = $item.LEVELS;
  255. if (get_levels == 1) {
  256. self.rows.C_H_I_L_D.forEach(function (item, index) {
  257. if (item.CODE == get_code) {
  258. if (index == 0) {
  259. sp.dialog("已是最前排序,无法上移!");
  260. } else {
  261. var set_index = parseInt(index - 1);
  262. var set_code1 = self.rows.C_H_I_L_D[set_index].CODE;
  263. self.submitSortData(set_code1, get_code); ///调用排序方法
  264. }
  265. }
  266. });
  267. } else {
  268. self.rows.C_H_I_L_D.forEach(function (item, index) {
  269. diGui_sortUp(item, get_code);
  270. });
  271. }
  272. };
  273. ///下移
  274. self.itemSortdown = function ($item) {
  275. var time1 = sp.getLocalDate1();
  276. self.journalRecord(time1, sp.getLocalDate1(), "下移", "修改日志", window.location.pathname)
  277. //console.log($item);
  278. var get_code = $item.CODE;
  279. var get_levels = $item.LEVELS;
  280. if (get_levels == 1) {
  281. self.rows.C_H_I_L_D.forEach(function (item, index) {
  282. if (item.CODE == get_code) {
  283. if (index == self.rows.C_H_I_L_D.length - 1) {
  284. sp.dialog("已处于最后排序,无法下移!");
  285. } else {
  286. var set_index = parseInt(index + 1);
  287. var set_code1 = self.rows.C_H_I_L_D[set_index].CODE;
  288. self.submitSortData(set_code1, get_code); ///调用排序方法
  289. }
  290. }
  291. });
  292. } else {
  293. self.rows.C_H_I_L_D.forEach(function (item, index) {
  294. diGui_sortDown(item, get_code);
  295. });
  296. }
  297. };
  298. ///上移递归循环遍历方法
  299. function diGui_sortUp($item, get_code) {
  300. if (get_code.indexOf($item.CODE) != -1) {
  301. $item.C_H_I_L_D.forEach(function (item2, index2) {
  302. if (item2.CODE == get_code) {
  303. if (index2 == 0) {
  304. sp.dialog("已处于最前排序,无法上移!");
  305. } else {
  306. var set_index = parseInt(index2 - 1);
  307. var set_code1 = $item.C_H_I_L_D[set_index].CODE;
  308. self.submitSortData(set_code1, get_code); ///调用排序方法
  309. }
  310. } else {
  311. return diGui_sortUp(item2, get_code);
  312. }
  313. });
  314. }
  315. };
  316. ///上移递归循环遍历方法
  317. function diGui_sortDown($item, get_code) {
  318. if (get_code.indexOf($item.CODE) != -1) {
  319. $item.C_H_I_L_D.forEach(function (item2, index2) {
  320. if (item2.CODE == get_code) {
  321. if (index2 == $item.C_H_I_L_D.length - 1) {
  322. sp.dialog("已处于最后排序,无法下移!");
  323. } else {
  324. var set_index = parseInt(index2 + 1);
  325. var set_code1 = $item.C_H_I_L_D[set_index].CODE;
  326. self.submitSortData(set_code1, get_code); ///调用排序方法
  327. }
  328. } else {
  329. return diGui_sortDown(item2, get_code);
  330. }
  331. });
  332. }
  333. };
  334. //////排序post提交服务器数据方法
  335. self.submitSortData = function (code1, code2) {
  336. var postData = {
  337. code1: code1,
  338. code2: code2
  339. }
  340. $http.post(apiurljs.login + "g2work/department/swapSortidByCode", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  341. .success(function (obj) {
  342. var res = strToJson(s4.decryptData_CBC(obj.data));
  343. if (res.success) {
  344. self.temporary = self.rows;
  345. self.getData();
  346. } else {
  347. sp.dialog(res.message);
  348. }
  349. });
  350. };
  351. self.zhankai = function (arr) {
  352. arr.C_H_I_L_D.forEach(function (item) {
  353. item.show = true
  354. if (item.C_H_I_L_D.length != 0) {
  355. self.zhankai(item)
  356. }
  357. })
  358. }
  359. //重新加载后展开之前的项目
  360. self.initShow = function (arr1, arr2) {
  361. arr1.C_H_I_L_D.forEach(function (item1) {
  362. arr2.C_H_I_L_D.forEach(function(item2){
  363. if (item1.CODE == item2.CODE) {
  364. item1.show = item2.show;
  365. if (item1.C_H_I_L_D.length != 0) {
  366. self.initShow(item1, item2)
  367. }
  368. }
  369. })
  370. })
  371. }
  372. //记录日志
  373. self.journalRecord = function (time1, time2, title, func, url) {
  374. if (!self.CrossPage.cname) { return; }
  375. var data = {
  376. tablename: "SYS_CLICKLOG",
  377. data: {
  378. CTIME: time1 == null ? sp.getLocalDate1() : time1,
  379. TITLE: (title != "" ? self.CrossPage.cname + "/" + title : self.CrossPage.cname),
  380. REQUESTURL: url,
  381. REQUESTHEADERURL: window.location.origin,
  382. LOGTYPE: func,
  383. USERTYPE: $.cookie("GlWorkPlatform-userType"),
  384. ADMIN: $.cookie("GlWorkPlatform-userTypeEng"),
  385. CLIENTIP: sp.myIP(),
  386. PCNAME: sp.detectOS(),
  387. BROWSERNAME: sp.browser(),
  388. RESPONSETIME: time2 == null ? sp.getLocalDate1() : time2,
  389. USERID: self.userId,
  390. USERNAME: self.userCname
  391. }
  392. }
  393. $http.post(apiurljs.login + "g2app/DangJian/insertFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  394. .success(function (res) {
  395. })
  396. }
  397. self.recordCtime = function () {
  398. $.cookie("CrossPage-ctime", sp.getLocalDate1(), { path: '/', expires: 1 });
  399. $.cookie("CrossPage-title", self.CrossPage.cname, { path: '/', expires: 1 });
  400. window.location.href = "sect.html"
  401. }
  402. }])
  403. app.directive('treeView', [function () {
  404. return {
  405. restrict: 'EA',
  406. templateUrl: '/treeView.html',
  407. scope: {
  408. treeData: '=',
  409. userTypeEng: '=',
  410. textField: '@',
  411. itemClicked: '&',
  412. itemEdit: '&',
  413. itemDelete: '&',
  414. itemSortup: '&',
  415. itemSortdown: '&'
  416. },
  417. controller: ['$scope', function ($scope) {
  418. $scope.itemExpended = function (item, $event) {
  419. item.show = !item.show;
  420. //item.$$isExpend = !item.$$isExpend;
  421. $event.stopPropagation();
  422. };
  423. $scope.getItemIcon = function (item) {
  424. var isEnd = $scope.isEnd(item);
  425. if (isEnd) {
  426. // return 'fa fa-square sp-color-gray';
  427. return ''
  428. }
  429. // return item.$$isExpend ? 'fa fa-minus-square-o' : 'fa fa-plus-square-o';
  430. return item.show ? 'fa fa-minus-square' : 'fa fa-plus-square';
  431. };
  432. $scope.isEnd = function (item) {
  433. return !item.C_H_I_L_D || !item.C_H_I_L_D.length;
  434. };
  435. $scope.warpCallback = function (callback, item, $event) {
  436. ($scope[callback] || angular.noop)({
  437. $item: item,
  438. $event: $event
  439. });
  440. };
  441. }]
  442. };
  443. }]);