group.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. 'use strict';
  2. var app = angular.module('app', ["angularUtils.directives.dirPagination"]);
  3. app.controller("groupCtrl", ["$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.getGroup();///根据当前第一个机构进行加载其下面的部门数据
  33. self.getPersonData(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. self.rows = [];
  53. self.users = [];
  54. self.getGroup = function () {
  55. self.edit = {
  56. groupID: "",
  57. groupName: ""
  58. }
  59. var postData = {
  60. unitid: self.unit
  61. }
  62. $http.post(apiurljs.login + "g2work/datagroup/queryData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  63. .success(function (obj) {
  64. var res = strToJson(s4.decryptData_CBC(obj.data));
  65. ///console.log(JSON.stringify(res));
  66. if (res.success) {
  67. if (sp.isval(res.data)) {
  68. self.rows = res.data;
  69. } else {
  70. self.rows = [];
  71. }
  72. } else {
  73. sp.dialog(res.message);
  74. }
  75. });
  76. }
  77. ///self.getGroup()
  78. //
  79. self.changeUnit = function () {
  80. console.log(self.unit);
  81. }
  82. ////加载用户
  83. self.getPerson = [];///声明用户列表数组
  84. self.user_checked = "";
  85. self.user_checked_num = 0;
  86. self.user_checked_array = [];
  87. self.getPersonData = function (gid, levels) {
  88. self.user_checked_array = [];
  89. var postData = {
  90. "gid": gid,
  91. "levels": levels
  92. }
  93. $http.post(apiurljs.login + "g2work/datagroup/queryDataUser", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  94. .success(function (obj) {
  95. var res = strToJson(s4.decryptData_CBC(obj.data));
  96. self.loading = false;
  97. ///console.log(JSON.stringify(res));
  98. if (res.success) {
  99. if (sp.isval(res.data)) {
  100. self.isSelectedAll = true;
  101. self.getPerson = res.data;
  102. self.getPerson.forEach(function (itm,index) {
  103. var set_json_col = { "section": "" + itm.section + "", "users": [] };
  104. self.user_checked_array.push(set_json_col);
  105. var user_array = [];
  106. itm.users.forEach(function (itm2) {
  107. if (itm2.auth == "1") {
  108. itm2.check = true;
  109. var set_user = { "userid": "" + itm2.userid + "", "ushowname": "" + itm2.ushowname + "" };
  110. self.user_checked_array[index].users.push(set_user);
  111. } else {
  112. itm2.check = false;
  113. self.isSelectedAll = false; //有一个未选中就是未全选
  114. }
  115. });
  116. });
  117. //console.log(JSON.stringify(self.user_checked_array));
  118. ///根据拼成的json再次拼接数据--start
  119. self.set_viewCheckedUsers();
  120. ///根据拼成的json再次拼接数据--start
  121. } else {
  122. self.getPerson = [];
  123. }
  124. } else {
  125. sp.dialog(res.message);
  126. }
  127. })
  128. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  129. if (textStatus != 200) {
  130. self.loading = false;
  131. }
  132. })
  133. };
  134. ////设置显示已选择的数据
  135. self.set_viewCheckedUsers=function(){
  136. ///根据拼成的json再次拼接数据--start
  137. self.user_checked_num=0;
  138. self.user_checked="";
  139. angular.forEach(self.user_checked_array, function (itm) {
  140. var get_user_checked = "";
  141. angular.forEach(itm.users, function (itm2) {
  142. get_user_checked += itm2.ushowname + ",";
  143. self.user_checked_num++;
  144. });
  145. if (sp.isval(get_user_checked)) {
  146. var set_section_users = "【" + itm.section + ":" + sp.cutlast(get_user_checked) + "】";
  147. self.user_checked += set_section_users + ",";
  148. }
  149. });
  150. self.user_checked = sp.cutlast(self.user_checked);
  151. //console.log(JSON.stringify(self.user_checked_array));
  152. ///根据拼成的json再次拼接数据--start
  153. };
  154. // 点击选中群组管理事件
  155. self.activeGroup = -1;
  156. self.chooseGroup = function (index, $item) {
  157. var time1 = sp.getLocalDate1();
  158. //console.log($item);
  159. self.activeGroup = index;
  160. self.edit = {
  161. groupID: $item.GID,
  162. groupName: $item.GUM
  163. };
  164. self.getPersonData(self.edit.groupID, "0");
  165. self.journalRecord(time1, sp.getLocalDate1(), "查询", "查询日志", "/g2work/datazu/queryDataUser")
  166. }
  167. //增加群组
  168. self.addGroupName = '';
  169. self.addGroup = function () {
  170. var time1 = sp.getLocalDate1();
  171. self.journalRecord(time1, sp.getLocalDate1(), "新建", "修改日志", window.location.pathname)
  172. ///增加群组
  173. var postData = {
  174. unitid: self.unit,//机构编码
  175. gum: self.addGroupName//群组名称
  176. }
  177. $http.post(apiurljs.login + "g2work/datagroup/insertData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  178. .success(function (obj) {
  179. var res = strToJson(s4.decryptData_CBC(obj.data));
  180. if (res.success) {
  181. self.getGroup();
  182. self.activeGroup = -1;
  183. self.addGroupName = '';
  184. sp.dialoghide();
  185. } else {
  186. sp.dialog(res.message);
  187. }
  188. });
  189. }
  190. //修改群组
  191. self.edit = {
  192. groupID: "",
  193. groupName: ""
  194. }
  195. self.editGroup = function () {
  196. var time1 = sp.getLocalDate1();
  197. self.journalRecord(time1, sp.getLocalDate1(), "编辑", "修改日志", window.location.pathname)
  198. var postData = {
  199. gid: self.edit.groupID,//群组编码
  200. gum: self.edit.groupName//群组名称
  201. }
  202. $http.post(apiurljs.login + "g2work/datagroup/updateDataByGid", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  203. .success(function (obj) {
  204. var res = strToJson(s4.decryptData_CBC(obj.data));
  205. if (res.success) {
  206. self.getGroup();
  207. sp.dialoghide();
  208. } else {
  209. sp.dialog(res.message);
  210. }
  211. });
  212. }
  213. //删除群组
  214. self.removeGroup = function ($item) {
  215. var time1 = sp.getLocalDate1();
  216. self.journalRecord(time1, sp.getLocalDate1(), "删除", "修改日志", window.location.pathname)
  217. var getDelID = $item.GID;
  218. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  219. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  220. 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>";
  221. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  222. sp.openCenter(".sp-dialog");
  223. ///取消按钮
  224. $('.sp-closeDialog').click(function (event) {
  225. sp.closeCenter(".sp-dialog");
  226. event.preventDefault(); event.stopPropagation();
  227. });
  228. //post消息的id
  229. $("#delDataTrue").click(function () {
  230. var getid = $(this).attr("data-id");
  231. sp.dialoghide();
  232. var data = {
  233. gid: getid///群组编码
  234. };
  235. $http.post(apiurljs.login + "g2work/datagroup/deleteByGid", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  236. .success(function (obj) {
  237. var res = strToJson(s4.decryptData_CBC(obj.data));
  238. if (res.success) {
  239. self.getGroup();
  240. sp.dialoghide();
  241. } else {
  242. sp.dialog(res.message);
  243. }
  244. });
  245. });
  246. // if (confirm('确定要删除么')) {
  247. // self.unit.ROLELIST.splice(index, 1);
  248. // self.activeGroup = 0;
  249. // }
  250. }
  251. //上移一位
  252. self.moveUp = function () {
  253. var time1 = sp.getLocalDate1();
  254. self.journalRecord(time1, sp.getLocalDate1(), "上移", "修改日志", window.location.pathname)
  255. if (sp.isval(self.edit.groupID)) {
  256. if (self.activeGroup == 0) {
  257. sp.dialog("已处于最顶部,无法上移!");
  258. } else {
  259. var set_index = parseInt(self.activeGroup - 1);
  260. var postData = {
  261. "gid1": self.rows[set_index].GID,
  262. "gid2": self.edit.groupID
  263. };
  264. $http.post(apiurljs.login + "g2work/datagroup/swapSortidByGid", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  265. .success(function (obj) {
  266. var res = strToJson(s4.decryptData_CBC(obj.data));
  267. if (res.success) {
  268. self.getGroup();
  269. self.activeGroup = -1;
  270. self.addGroupName = '';
  271. self.getPersonData(self.unit, "0"); ///加载机构下方的人员
  272. } else {
  273. sp.dialog(res.message);
  274. }
  275. });
  276. }
  277. } else {
  278. sp.dialog("请先点击选择群组!");
  279. }
  280. }
  281. //下移一位
  282. self.moveDown = function () {
  283. var time1 = sp.getLocalDate1();
  284. self.journalRecord(time1, sp.getLocalDate1(), "下移", "修改日志", window.location.pathname)
  285. if (sp.isval(self.edit.groupID)) {
  286. if (self.activeGroup == self.rows.length - 1) {
  287. sp.dialog("已处于最底部,无法下移!");
  288. } else {
  289. var set_index = parseInt(self.activeGroup + 1);
  290. var postData = {
  291. "gid1": self.rows[set_index].GID,
  292. "gid2": self.edit.groupID
  293. };
  294. $http.post(apiurljs.login + "g2work/datagroup/swapSortidByGid", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  295. .success(function (obj) {
  296. var res = strToJson(s4.decryptData_CBC(obj.data));
  297. if (res.success) {
  298. self.getGroup();
  299. self.activeGroup = -1;
  300. self.addGroupName = '';
  301. self.getPersonData(self.unit, "0"); ///加载机构下方的人员
  302. } else {
  303. sp.dialog(res.message);
  304. }
  305. });
  306. }
  307. } else {
  308. sp.dialog("请先点击选择群组!");
  309. }
  310. }
  311. ///点击用户checkbox选中事件
  312. self.isSelected = function (section, itemdata, ischecked) {
  313. if (self.activeGroup == -1) {
  314. sp.dialog("请先选择群组");
  315. self.getPerson.forEach(function (itm) {
  316. itm.users.forEach(function (itm2) {
  317. if (itm2.auth == "1") {
  318. itm2.check = true;
  319. } else {
  320. itm2.check = false;
  321. self.isSelectedAll = false; //有一个未选中就是未全选
  322. }
  323. });
  324. });
  325. return;
  326. } else {
  327. if (ischecked) {
  328. //console.log(ischecked);
  329. if(JSON.stringify(self.user_checked_array).indexOf(section)!=-1){
  330. angular.forEach(self.user_checked_array, function (itm) {
  331. if (section == itm.section) {
  332. var set_user = { "userid": "" + itemdata.userid + "", "ushowname": "" + itemdata.ushowname + "" };
  333. itm.users.push(set_user);
  334. }
  335. });
  336. }else{
  337. var user_array = [];
  338. var set_user = { "userid": "" + itemdata.userid + "", "ushowname": "" + itemdata.ushowname + "" };
  339. user_array.push(set_user);
  340. var set_json_col = { "section": "" + section + "", "users": user_array };
  341. self.user_checked_array.push(set_json_col)
  342. }
  343. //console.log(JSON.stringify(self.user_checked_array));
  344. ///根据拼成的json再次拼接数据--start
  345. self.set_viewCheckedUsers();
  346. ///根据拼成的json再次拼接数据--start
  347. } else {
  348. angular.forEach(self.user_checked_array, function (itm) {
  349. if (section == itm.section) {
  350. itm.users = itm.users.filter(itm2 => itm2.userid !== itemdata.userid);
  351. }
  352. });
  353. //console.log(JSON.stringify(self.user_checked_array));
  354. ///根据拼成的json再次拼接数据--start
  355. self.set_viewCheckedUsers();
  356. ///根据拼成的json再次拼接数据--start
  357. }
  358. self.isSelectedAll = true;
  359. self.getPerson.forEach(function (itm) {
  360. itm.users.forEach(function (item2) {
  361. if (!item2.check) {
  362. return self.isSelectedAll = false;
  363. }
  364. })
  365. })
  366. }
  367. }
  368. //全选
  369. self.isSelectedAll = false;
  370. self.selectAll = function () {
  371. if (self.activeGroup == -1) {
  372. sp.dialog("请先选择群组");
  373. self.isSelectedAll=!self.isSelectedAll;
  374. return;
  375. }else{
  376. if (self.isSelectedAll) {
  377. self.getPerson.forEach(function (itm,index) {
  378. itm.users.forEach(function (itm2) {
  379. itm2.check = true;
  380. ///设置已选的人员数组
  381. if(JSON.stringify(self.user_checked_array[index].users).indexOf(itm2.userid)==-1){
  382. //增加一层判断,若没有当前用户再往里面赋值;
  383. var set_user = { "userid": "" + itm2.userid + "", "ushowname": "" + itm2.ushowname + "" };
  384. self.user_checked_array[index].users.push(set_user);
  385. }
  386. })
  387. });
  388. //console.log(JSON.stringify(self.user_checked_array));
  389. ///根据拼成的json再次拼接数据--start
  390. self.set_viewCheckedUsers();
  391. ///根据拼成的json再次拼接数据--start
  392. } else {
  393. self.getPerson.forEach(function (itm,index) {
  394. itm.users.forEach(function (itm2) {
  395. itm2.check = false;
  396. ///设置已选的人员数组
  397. self.user_checked_array[index].users=[];
  398. })
  399. });
  400. ///根据拼成的json再次拼接数据--start
  401. self.set_viewCheckedUsers();
  402. ///根据拼成的json再次拼接数据--start
  403. }
  404. }
  405. }
  406. //保存人员设置
  407. self.saveGroup = function () {
  408. var time1 = sp.getLocalDate1();
  409. self.journalRecord(time1, sp.getLocalDate1(), "保存", "修改日志", window.location.pathname)
  410. var get_checkedUser = [];
  411. self.getPerson.forEach(function (itm) {
  412. itm.users.forEach(function (item2) {
  413. if (item2.check) {
  414. get_checkedUser.push({
  415. "gid": self.edit.groupID,
  416. "userid": item2.userid
  417. })
  418. }
  419. });
  420. })
  421. // console.log(get_checkedUser);
  422. if (sp.isval(get_checkedUser)) {
  423. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  424. var dialogBody = "<div class=\"sp-dialog-body\">确认要保存人员设置吗?</div>";
  425. 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>";
  426. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  427. sp.openCenter(".sp-dialog");
  428. ///取消按钮
  429. $('.sp-closeDialog').click(function (event) {
  430. sp.closeCenter(".sp-dialog");
  431. event.preventDefault(); event.stopPropagation();
  432. });
  433. //post消息的id
  434. $("#delDataTrue").click(function () {
  435. var postData = {
  436. "typeid": "gid",
  437. typevalue: self.edit.groupID,
  438. data: JSON.stringify(get_checkedUser)
  439. }
  440. // console.log(postData);
  441. $http.post(apiurljs.login + "g2work/datagroup/updateDataUser", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  442. .success(function (obj) {
  443. var res = strToJson(s4.decryptData_CBC(obj.data));
  444. if (res.success) {
  445. sp.dialog(res.message);
  446. $timeout(function () {
  447. self.getPersonData(self.edit.groupID, "0");
  448. sp.dialoghide();
  449. }, 600);
  450. } else {
  451. sp.dialog(res.message);
  452. }
  453. });
  454. });
  455. } else {
  456. sp.dialog("人员不能为空!");
  457. }
  458. }
  459. //记录日志
  460. self.journalRecord = function (time1, time2, title, func, url) {
  461. if (!self.CrossPage.cname) { return; }
  462. var data = {
  463. tablename: "SYS_CLICKLOG",
  464. data: {
  465. CTIME: time1 == null ? sp.getLocalDate1() : time1,
  466. TITLE: (title != "" ? self.CrossPage.cname + "/" + title : self.CrossPage.cname),
  467. REQUESTURL: url,
  468. REQUESTHEADERURL: window.location.origin,
  469. LOGTYPE: func,
  470. USERTYPE: $.cookie("GlWorkPlatform-userType"),
  471. ADMIN: $.cookie("GlWorkPlatform-userTypeEng"),
  472. CLIENTIP: sp.myIP(),
  473. PCNAME: sp.detectOS(),
  474. BROWSERNAME: sp.browser(),
  475. RESPONSETIME: time2 == null ? sp.getLocalDate1() : time2,
  476. USERID: self.userId,
  477. USERNAME: self.userCName
  478. }
  479. }
  480. $http.post(apiurljs.login + "g2app/DangJian/insertFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  481. .success(function (res) {
  482. })
  483. }
  484. }])
  485. app.directive('repeatFinish', function () {
  486. return {
  487. link: function (scope) {
  488. if (scope.$last == true) {
  489. $(".tab").eq(0).addClass("active");
  490. }
  491. }
  492. }
  493. })