index.js 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941
  1. 'use strict';
  2. var app = angular.module('app', [
  3. 'angularUtils.directives.dirPagination'
  4. ]);
  5. app.controller("indexCtrl", ["$scope", "$http", "$timeout", function ($scope, $http, $timeout) {
  6. var self = this;
  7. var s4 = new SM4Util();
  8. self.userId = $.cookie("GlWorkPlatform-userid");
  9. self.userName = $.cookie("GlWorkPlatform-chineseName");
  10. self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
  11. self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno");
  12. self.get_type = sp.getUrlName("type");
  13. var postCfg = {
  14. headers: {
  15. 'Content-Type': 'application/json',
  16. 'Authorization': "Bearer " + self.get_AccessToken
  17. }
  18. }
  19. sp.fitHeight('#treeDivPart', 120);
  20. //获取人员
  21. self.userList = [];
  22. self.getUserList = function () {
  23. self.userList = [];
  24. var data = { code: "AA" }
  25. $http.post(apiurljs.login + "g2app/calendar/querySect", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  26. .success(function (obj) {
  27. var res = strToJson(s4.decryptData_CBC(obj.data));
  28. $.each(res.data[0].C_H_I_L_D, function (index, item) {
  29. item.isChecked = false;
  30. $.each(item.C_H_I_L_D_DATA, function (index2, item2) {
  31. item2.isChecked = false;
  32. })
  33. //item.C_H_I_L_D_DATA = item.C_H_I_L_D_DATA.filter(function (x) {
  34. // return x.ushowname != self.userId;
  35. //})
  36. $.each(item.C_H_I_L_D, function (index3, item3) {
  37. item3.isChecked = false;
  38. $.each(item3.C_H_I_L_D_DATA, function (index4, item4) {
  39. item4.isChecked = false;
  40. })
  41. //item3.C_H_I_L_D_DATA = item3.C_H_I_L_D_DATA.filter(function (x) {
  42. // return x.ushowname != self.userId;
  43. //})
  44. $.each(item3.C_H_I_L_D, function (index5, item5) {
  45. item5.isChecked = false;
  46. $.each(item5.C_H_I_L_D_DATA, function (index6, item6) {
  47. item6.isChecked = false;
  48. })
  49. })
  50. })
  51. })
  52. self.userList = res.data[0].C_H_I_L_D;
  53. });
  54. }
  55. self.getUserList()
  56. //一级部门的勾选
  57. self.firstDepartSelect = function (index) {
  58. var flag = self.userList[index].isChecked;
  59. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  60. item.isChecked = flag;
  61. })
  62. self.userList[index].C_H_I_L_D.forEach(function (item2) {
  63. item2.isChecked = flag;
  64. item2.C_H_I_L_D_DATA.forEach(function (item3) {
  65. item3.isChecked = flag;
  66. });
  67. item2.C_H_I_L_D.forEach(function (item4) {
  68. item4.isChecked = flag;
  69. item4.C_H_I_L_D_DATA.forEach(function (item5) {
  70. item5.isChecked = flag;
  71. });
  72. })
  73. })
  74. var itemTotal = self.userList.length;
  75. var itemSelect = 0;
  76. self.userList.forEach(function (item) {
  77. if (item.isChecked) {
  78. itemSelect++
  79. }
  80. })
  81. if (itemTotal == itemSelect) {
  82. self.isSelectedAll = true;
  83. } else {
  84. self.isSelectedAll = false;
  85. }
  86. }
  87. //二级部门的勾选
  88. self.secondDepartSelect = function (index, index2) {
  89. var flag = self.userList[index].C_H_I_L_D[index2].isChecked;
  90. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.forEach(function (item) {
  91. item.isChecked = flag;
  92. })
  93. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D.forEach(function (item2) {
  94. item2.isChecked = flag;
  95. item2.C_H_I_L_D_DATA.forEach(function (item3) {
  96. item3.isChecked = flag;
  97. });
  98. })
  99. var totalDepat = self.userList[index].C_H_I_L_D.length;
  100. var selectDepart = 0
  101. self.userList[index].C_H_I_L_D.forEach(function (item) {
  102. if (item.isChecked) {
  103. selectDepart++
  104. }
  105. })
  106. if (totalDepat == selectDepart) {
  107. var childTotal = self.userList[index].C_H_I_L_D_DATA.length;
  108. var childSelect = 0;
  109. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  110. if (item.isChecked) {
  111. childSelect++;
  112. }
  113. })
  114. if (childSelect == childTotal) {
  115. self.userList[index].isChecked = true;
  116. } else {
  117. self.userList[index].isChecked = false;
  118. }
  119. } else {
  120. self.userList[index].isChecked = false;
  121. }
  122. var itemTotal = self.userList.length;
  123. var itemSelect = 0;
  124. self.userList.forEach(function (item) {
  125. if (item.isChecked) {
  126. itemSelect++
  127. }
  128. })
  129. if (itemTotal == itemSelect) {
  130. self.isSelectedAll = true;
  131. } else {
  132. self.isSelectedAll = false;
  133. }
  134. }
  135. //三级部门点击
  136. self.thirdDepartSelect = function (index, index2, index3) {
  137. var flag = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].isChecked;
  138. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].C_H_I_L_D_DATA.forEach(function (item) {
  139. item.isChecked = flag;
  140. })
  141. var thirdDepat = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D.length;
  142. var thirdDepart = 0;
  143. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D.forEach(function (item) {
  144. if (item.isChecked) {
  145. thirdDepart++
  146. }
  147. })
  148. if (thirdDepat == thirdDepart) {
  149. var thirdTotal = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.length;
  150. var thirdSelect = 0;
  151. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.forEach(function (item) {
  152. if (item.isChecked) {
  153. thirdSelect++;
  154. }
  155. })
  156. if (thirdSelect == thirdTotal) {
  157. self.userList[index].C_H_I_L_D[index2].isChecked = true;
  158. } else {
  159. self.userList[index].C_H_I_L_D[index2].isChecked = false;
  160. }
  161. } else {
  162. self.userList[index].C_H_I_L_D[index2].isChecked = false;
  163. }
  164. var totalDepat = self.userList[index].C_H_I_L_D.length;
  165. var selectDepart = 0
  166. self.userList[index].C_H_I_L_D.forEach(function (item) {
  167. if (item.isChecked) {
  168. selectDepart++
  169. }
  170. })
  171. if (totalDepat == selectDepart) {
  172. var childTotal = self.userList[index].C_H_I_L_D_DATA.length;
  173. var childSelect = 0;
  174. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  175. if (item.isChecked) {
  176. childSelect++;
  177. }
  178. })
  179. if (childSelect == childTotal) {
  180. self.userList[index].isChecked = true;
  181. } else {
  182. self.userList[index].isChecked = false;
  183. }
  184. } else {
  185. self.userList[index].isChecked = false;
  186. }
  187. var itemTotal = self.userList.length;
  188. var itemSelect = 0;
  189. self.userList.forEach(function (item) {
  190. if (item.isChecked) {
  191. itemSelect++
  192. }
  193. })
  194. if (itemTotal == itemSelect) {
  195. self.isSelectedAll = true;
  196. } else {
  197. self.isSelectedAll = false;
  198. }
  199. }
  200. //三级部门人员点击
  201. self.thirdUserSelect = function (index, index2, index3) {
  202. var totalNum = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].C_H_I_L_D_DATA.length;
  203. var selectNum = 0;
  204. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].C_H_I_L_D_DATA.forEach(function (item) {
  205. if (item.isChecked) {
  206. selectNum++;
  207. }
  208. })
  209. if (totalNum == selectNum) {
  210. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].isChecked = true;
  211. } else {
  212. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D[index3].isChecked = false;
  213. }
  214. var thirdDepat = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D.length;
  215. var thirdDepart = 0;
  216. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D.forEach(function (item) {
  217. if (item.isChecked) {
  218. thirdDepart++
  219. }
  220. })
  221. if (thirdDepat == thirdDepart) {
  222. var thirdTotal = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.length;
  223. var thirdSelect = 0;
  224. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.forEach(function (item) {
  225. if (item.isChecked) {
  226. thirdSelect++;
  227. }
  228. })
  229. if (thirdSelect == thirdTotal) {
  230. self.userList[index].C_H_I_L_D[index2].isChecked = true;
  231. } else {
  232. self.userList[index].C_H_I_L_D[index2].isChecked = false;
  233. }
  234. } else {
  235. self.userList[index].C_H_I_L_D[index2].isChecked = false;
  236. }
  237. var totalDepat = self.userList[index].C_H_I_L_D.length;
  238. var selectDepart = 0
  239. self.userList[index].C_H_I_L_D.forEach(function (item) {
  240. if (item.isChecked) {
  241. selectDepart++
  242. }
  243. })
  244. if (totalDepat == selectDepart) {
  245. var childTotal = self.userList[index].C_H_I_L_D_DATA.length;
  246. var childSelect = 0;
  247. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  248. if (item.isChecked) {
  249. childSelect++;
  250. }
  251. })
  252. if (childSelect == childTotal) {
  253. self.userList[index].isChecked = true;
  254. } else {
  255. self.userList[index].isChecked = false;
  256. }
  257. } else {
  258. self.userList[index].isChecked = false;
  259. }
  260. var itemTotal = self.userList.length;
  261. var itemSelect = 0;
  262. self.userList.forEach(function (item) {
  263. if (item.isChecked) {
  264. itemSelect++
  265. }
  266. })
  267. if (itemTotal == itemSelect) {
  268. self.isSelectedAll = true;
  269. } else {
  270. self.isSelectedAll = false;
  271. }
  272. }
  273. //二级部门人员点击
  274. self.secondUserSelect = function (index, index2) {
  275. var totalNum = self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.length;
  276. var selectNum = 0;
  277. self.userList[index].C_H_I_L_D[index2].C_H_I_L_D_DATA.forEach(function (item) {
  278. if (item.isChecked) {
  279. selectNum++;
  280. }
  281. })
  282. if (totalNum == selectNum) {
  283. self.userList[index].C_H_I_L_D[index2].isChecked = true;
  284. } else {
  285. self.userList[index].C_H_I_L_D[index2].isChecked = false;
  286. }
  287. var totalDepat = self.userList[index].C_H_I_L_D.length;
  288. var selectDepart = 0
  289. self.userList[index].C_H_I_L_D.forEach(function (item) {
  290. if (item.isChecked) {
  291. selectDepart++
  292. }
  293. })
  294. if (totalDepat == selectDepart) {
  295. var childTotal = self.userList[index].C_H_I_L_D_DATA.length;
  296. var childSelect = 0;
  297. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  298. if (item.isChecked) {
  299. childSelect++;
  300. }
  301. })
  302. if (childSelect == childTotal) {
  303. self.userList[index].isChecked = true;
  304. } else {
  305. self.userList[index].isChecked = false;
  306. }
  307. } else {
  308. self.userList[index].isChecked = false;
  309. }
  310. var itemTotal = self.userList.length;
  311. var itemSelect = 0;
  312. self.userList.forEach(function (item) {
  313. if (item.isChecked) {
  314. itemSelect++
  315. }
  316. })
  317. if (itemTotal == itemSelect) {
  318. self.isSelectedAll = true;
  319. } else {
  320. self.isSelectedAll = false;
  321. }
  322. }
  323. //一级部门人员点击
  324. self.firstUserSelect = function (index) {
  325. var totalDepat = self.userList[index].C_H_I_L_D.length;
  326. var selectDepart = 0
  327. self.userList[index].C_H_I_L_D.forEach(function (item) {
  328. if (item.isChecked) {
  329. selectDepart++
  330. }
  331. })
  332. if (totalDepat == selectDepart) {
  333. var childTotal = self.userList[index].C_H_I_L_D_DATA.length;
  334. var childSelect = 0;
  335. self.userList[index].C_H_I_L_D_DATA.forEach(function (item) {
  336. if (item.isChecked) {
  337. childSelect++;
  338. }
  339. })
  340. if (childSelect == childTotal) {
  341. self.userList[index].isChecked = true;
  342. } else {
  343. self.userList[index].isChecked = false;
  344. }
  345. } else {
  346. self.userList[index].isChecked = false;
  347. }
  348. var itemTotal = self.userList.length;
  349. var itemSelect = 0;
  350. self.userList.forEach(function (item) {
  351. if (item.isChecked) {
  352. itemSelect++
  353. }
  354. })
  355. if (itemTotal == itemSelect) {
  356. self.isSelectedAll = true;
  357. } else {
  358. self.isSelectedAll = false;
  359. }
  360. }
  361. //全选函数
  362. self.isSelectedAll = false;
  363. self.selectAll = function () {
  364. var flag = self.isSelectedAll;
  365. self.userList.forEach(function (item) {
  366. item.isChecked = flag;
  367. item.C_H_I_L_D_DATA.forEach(function (item2) {
  368. item2.isChecked = flag;
  369. })
  370. item.C_H_I_L_D.forEach(function (item3) {
  371. item3.isChecked = flag;
  372. item3.C_H_I_L_D_DATA.forEach(function (item4) {
  373. item4.isChecked = flag;
  374. })
  375. })
  376. })
  377. }
  378. //获取树形结构
  379. self.treeData = [];
  380. self.getLeftTreeData = function () {
  381. var data = {
  382. tablename: "CODE_LM"
  383. }
  384. $http.post(apiurljs.login + "g2app/filepublishing/getTreeListByTablename", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  385. .success(function (obj) {
  386. var res = strToJson(s4.decryptData_CBC(obj.data));
  387. self.getMenuBtnList(res.data);
  388. self.treeData = res.data;
  389. $timeout(function () {
  390. self.nowNodeCode = self.treeData[0].CODE;
  391. self.nowNodeName = self.treeData[0].CNAME;
  392. self.nowNodeID = self.treeData[0].ID;
  393. self.treeData[0].checked = true;
  394. })
  395. })
  396. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  397. self.treeData = [];
  398. })
  399. }
  400. self.getCOLUMNTYPE = function () {
  401. var data = { tablename: "CODE_COLUMNTYPE" }
  402. $http.post(apiurljs.login + "g2app/DangAn/queryCodeData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  403. .success(function (obj) {
  404. var res = strToJson(s4.decryptData_CBC(obj.data));
  405. self.COLUMNTYPE = res.data;
  406. self.getLeftTreeData();
  407. })
  408. }
  409. self.getCOLUMNTYPE()
  410. self.getMenuBtnList = function (data) {
  411. data.forEach(function (item) {
  412. item.checked = false;
  413. item.C_H_I_L_D_DATA_L = data.length;
  414. if (sp.isval(item.C_H_I_L_D_DATA) && item.C_H_I_L_D_DATA.length > 0) {
  415. self.getMenuBtnList(item.C_H_I_L_D_DATA);
  416. } else {
  417. item.C_H_I_L_D_DATA = [];
  418. }
  419. })
  420. }
  421. self.nowNodeCode = "";
  422. self.nowNodeName = "";
  423. self.nowNodeID = "";
  424. self.itemCheck = function ($item) {
  425. self.treeData.forEach(function (item) {
  426. if (item.ID == $item.ID) {
  427. $item.checked = !$item.checked;
  428. } else {
  429. item.checked = false;
  430. }
  431. if (item.C_H_I_L_D_DATA != "" && item.C_H_I_L_D_DATA != null && item.C_H_I_L_D_DATA != null) {
  432. item.C_H_I_L_D_DATA.forEach(function (item2) {
  433. if (item2.ID == $item.ID) {
  434. $item.checked = !$item.checked;
  435. } else {
  436. item2.checked = false;
  437. }
  438. if (item2.C_H_I_L_D_DATA != "" && item2.C_H_I_L_D_DATA != null && item2.C_H_I_L_D_DATA != null) {
  439. item2.C_H_I_L_D_DATA.forEach(function (item3) {
  440. if (item3.ID == $item.ID) {
  441. $item.checked = !$item.checked;
  442. } else {
  443. item3.checked = false;
  444. }
  445. if (item3.C_H_I_L_D_DATA != "" && item3.C_H_I_L_D_DATA != null && item3.C_H_I_L_D_DATA != null) {
  446. item3.C_H_I_L_D_DATA.forEach(function (item4) {
  447. if (item4.ID == $item.ID) {
  448. $item.checked = !$item.checked;
  449. } else {
  450. item4.checked = false;
  451. }
  452. if (item4.C_H_I_L_D_DATA != "" && item4.C_H_I_L_D_DATA != null && item4.C_H_I_L_D_DATA != null) {
  453. item4.C_H_I_L_D_DATA.forEach(function (item5) {
  454. if (item5.ID == $item.ID) {
  455. $item.checked = !$item.checked;
  456. } else {
  457. item5.checked = false;
  458. }
  459. if (item5.C_H_I_L_D_DATA != "" && item5.C_H_I_L_D_DATA != null && item5.C_H_I_L_D_DATA != null) {
  460. item5.C_H_I_L_D_DATA.forEach(function (item6) {
  461. if (item6.ID == $item.ID) {
  462. $item.checked = !$item.checked;
  463. } else {
  464. item6.checked = false;
  465. }
  466. if (item6.C_H_I_L_D_DATA != "" && item6.C_H_I_L_D_DATA != null && item6.C_H_I_L_D_DATA != null) {
  467. item6.C_H_I_L_D_DATA.forEach(function (item7) {
  468. if (item7.ID == $item.ID) {
  469. $item.checked = !$item.checked;
  470. } else {
  471. item7.checked = false;
  472. }
  473. })
  474. }
  475. })
  476. }
  477. })
  478. }
  479. })
  480. }
  481. })
  482. }
  483. })
  484. }
  485. })
  486. if ($item.checked) {
  487. self.nowNodeCode = $item.CODE;
  488. self.nowNodeID = $item.ID;
  489. self.nowNodeName = $item.CNAME;
  490. } else {
  491. self.nowNodeCode = self.treeData[0].CODE;
  492. self.nowNodeName = self.treeData[0].CNAME;
  493. self.nowNodeID = self.treeData[0].ID;
  494. self.treeData[0].checked = true;
  495. }
  496. }
  497. //删除底稿
  498. self.itemDelete = function ($item) {
  499. var data = {
  500. tablename: "WJFB_CB",
  501. colums: "*",
  502. order: "ID",
  503. sqlwhere: { LX: $item.CODE },
  504. sqlinwhere: "",
  505. sqllikewhere: ""
  506. }
  507. $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  508. .success(function (res) {
  509. var res = strToJson(s4.decryptData_CBC(res.data));
  510. if (res.data.length > 0) {
  511. //sp.dialog("当前分类下存在数据,无法删除");
  512. } else {
  513. var getDelID = $item.CODE;
  514. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  515. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  516. 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>";
  517. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  518. sp.openCenter(".sp-dialog");
  519. ///取消按钮
  520. $('.sp-closeDialog').click(function (event) {
  521. sp.closeCenter(".sp-dialog");
  522. event.preventDefault();
  523. event.stopPropagation();
  524. });
  525. //post消息的id
  526. $("#delDataTrue").click(function () {
  527. var getid = $(this).attr("data-id");
  528. sp.dialoghide();
  529. var data = {
  530. "id": $item.ID,
  531. "tablename": "CODE_LM",
  532. "parentid": $item.PARENTID,
  533. "formtablename": ""
  534. }
  535. $http.post(apiurljs.login + "g2app/dataabase/delNode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  536. .success(function (obj) {
  537. var res = strToJson(s4.decryptData_CBC(obj.data));
  538. if (res.success) {
  539. sp.dialog("删除成功");
  540. self.getLeftTreeData();
  541. } else {
  542. sp.dialog(res.message);
  543. }
  544. })
  545. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  546. })
  547. });
  548. }
  549. }).error(function (err) {
  550. sp.dialog(JSON.stringify(err));
  551. });
  552. }
  553. self.itemNode = {
  554. level: "",
  555. id: "",
  556. layerTitle: "",
  557. add: false,
  558. name: "",
  559. code: "",
  560. child_title: ""
  561. }
  562. //添加目录树形非一级
  563. self.itemAdd = function ($item) {
  564. self.itemNode.layerTitle = "新增栏目";
  565. self.itemNode.level = $item.LEVELS;
  566. self.itemNode.id = 0;
  567. self.itemNode.name = $item.CNAME;
  568. self.itemNode.code = $item.CODE;
  569. self.itemNode.imgurl = null;
  570. self.itemNode.COLUMNTYPE = 2;
  571. self.itemNode.child_title = "";
  572. self.userList.forEach(function (item) {
  573. item.isChecked = false;
  574. $.each(item.C_H_I_L_D_DATA, function (index2, item2) {
  575. item2.isChecked = false;
  576. })
  577. $.each(item.C_H_I_L_D, function (index3, item3) {
  578. item3.isChecked = false;
  579. $.each(item3.C_H_I_L_D_DATA, function (index4, item4) {
  580. item4.isChecked = false;
  581. })
  582. $.each(item3.C_H_I_L_D, function (index5, item5) {
  583. item5.isChecked = false;
  584. $.each(item5.C_H_I_L_D_DATA, function (index6, item6) {
  585. item6.isChecked = false;
  586. })
  587. })
  588. })
  589. })
  590. sp.layer('#layer_box');
  591. };
  592. //修改目录
  593. self.itemEdit = function ($item) {
  594. self.itemNode.layerTitle = "编辑栏目";
  595. self.itemNode.level = $item.LEVELS;
  596. self.itemNode.id = $item.ID;
  597. self.itemNode.name = $item.CNAME;
  598. self.itemNode.code = $item.CODE;
  599. self.itemNode.imgurl = $item.IMGURL;
  600. self.itemNode.COLUMNTYPE = $item.COLUMNTYPE;
  601. self.itemNode.mkuserid = $item.MKUSERID;
  602. self.itemNode.child_title = $item.CNAME;
  603. console.log($item)
  604. if (self.itemNode.mkuserid != null) {
  605. self.userList.forEach(function (item) {
  606. item.isChecked = self.itemNode.mkuserid.indexOf(item.userid) > -1;
  607. $.each(item.C_H_I_L_D_DATA, function (index2, item2) {
  608. item2.isChecked = self.itemNode.mkuserid.indexOf(item2.userid) > -1;
  609. })
  610. $.each(item.C_H_I_L_D, function (index3, item3) {
  611. item3.isChecked = self.itemNode.mkuserid.indexOf(item3.userid) > -1;
  612. $.each(item3.C_H_I_L_D_DATA, function (index4, item4) {
  613. item4.isChecked = self.itemNode.mkuserid.indexOf(item4.userid) > -1;
  614. })
  615. $.each(item3.C_H_I_L_D, function (index5, item5) {
  616. item5.isChecked = self.itemNode.mkuserid.indexOf(item5.userid) > -1;
  617. $.each(item5.C_H_I_L_D_DATA, function (index6, item6) {
  618. item6.isChecked = self.itemNode.mkuserid.indexOf(item6.userid) > -1;
  619. })
  620. })
  621. })
  622. })
  623. } else {
  624. self.userList.forEach(function (item) {
  625. item.isChecked = false;
  626. $.each(item.C_H_I_L_D_DATA, function (index2, item2) {
  627. item2.isChecked = false;
  628. })
  629. $.each(item.C_H_I_L_D, function (index3, item3) {
  630. item3.isChecked = false;
  631. $.each(item3.C_H_I_L_D_DATA, function (index4, item4) {
  632. item4.isChecked = false;
  633. })
  634. $.each(item3.C_H_I_L_D, function (index5, item5) {
  635. item5.isChecked = false;
  636. $.each(item5.C_H_I_L_D_DATA, function (index6, item6) {
  637. item6.isChecked = false;
  638. })
  639. })
  640. })
  641. })
  642. }
  643. sp.layer('#layer_box');
  644. };
  645. self.beforeUpload = function () {
  646. var MKNAME = "", MKUSERID = "";
  647. self.userList.forEach(function (item) {
  648. item.C_H_I_L_D_DATA.forEach(function (item2) {
  649. if (item2.isChecked) {
  650. MKNAME += item2.ushowname + ",";
  651. MKUSERID += item2.userid + ",";
  652. }
  653. })
  654. item.C_H_I_L_D.forEach(function (item3) {
  655. item3.C_H_I_L_D_DATA.forEach(function (item4) {
  656. if (item4.isChecked) {
  657. MKNAME += item4.ushowname + ",";
  658. MKUSERID += item4.userid + ",";
  659. }
  660. })
  661. })
  662. })
  663. if (self.itemNode.id == 0) {
  664. if (spngvld.submit(".layer_box")) {
  665. let postData = {
  666. tablename: "CODE_LM",
  667. code: self.itemNode.code,
  668. levels: self.itemNode.level,
  669. cname: self.itemNode.level == 1 ? self.itemNode.name : self.itemNode.child_title,
  670. userid: self.userId,
  671. columntype: self.itemNode.COLUMNTYPE,
  672. mkname: MKNAME.substring(0, MKNAME.length - 1),
  673. mkuserid: MKUSERID.substring(0, MKUSERID.length - 1)
  674. }
  675. $http.post(apiurljs.login + "g2app/filepublishing/TreeAdd", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  676. .success(function (obj) {
  677. var res = strToJson(s4.decryptData_CBC(obj.data));
  678. if (res.success) {
  679. self.itemNode.id = res.data;
  680. self.itemNode.level++;
  681. self.upload()
  682. } else {
  683. sp.dialog(res.message);
  684. }
  685. })
  686. }
  687. } else {
  688. self.upload()
  689. }
  690. }
  691. self.upload = function () {
  692. $('#fileupload').fileupload({
  693. url: apiurljs.login + 'g2app/abase/uploadFileWithForm',
  694. dataType: 'json',
  695. beforeSend: function (xhr, data) {
  696. xhr.setRequestHeader("Authorization", "Bearer " + self.get_AccessToken);
  697. xhr.setRequestHeader("File-Argument", s4.encryptData_CBC("tablename=FILE_ATTACH,routeinfoid=" + self.itemNode.id + ",ATTACHTYPE=专栏图片"));
  698. },
  699. add: function (e, data) {
  700. var num = 0;
  701. //文件类型判断
  702. $.each(data.originalFiles, function (index, item) {
  703. if (item['type'] != null && item['type'] != undefined && !/(jpg|png)$/i.test(item['name'])) {
  704. sp.dialog("您好,请上传JPG、PNG格式的文件!");
  705. return;
  706. } else {
  707. num++
  708. }
  709. })
  710. if (num == data.originalFiles.length) {
  711. data.submit();
  712. }
  713. },
  714. // 上传完成后的执行逻辑
  715. done: function (e, data) {
  716. var arrayFile = strToJson(s4.decryptData_CBC(data.result.data).slice(0, s4.decryptData_CBC(data.result.data).lastIndexOf("}") + 1))
  717. self.itemNode.imgurl = apiurljs.login + "g2work" + arrayFile.data[arrayFile.data.length - 1].FILEURL;
  718. $scope.$apply();//绑定数据局部刷新
  719. }
  720. })
  721. $timeout(function () {
  722. $("#fileupload").trigger("click")
  723. }, 1)
  724. }
  725. //弹出层-提交按钮事件
  726. self.btnSetTitle = function () {
  727. var MKNAME = "", MKUSERID = "";
  728. self.userList.forEach(function (item) {
  729. item.C_H_I_L_D_DATA.forEach(function (item2) {
  730. if (item2.isChecked) {
  731. MKNAME += item2.ushowname + ",";
  732. MKUSERID += item2.userid + ",";
  733. }
  734. })
  735. item.C_H_I_L_D.forEach(function (item3) {
  736. item3.C_H_I_L_D_DATA.forEach(function (item4) {
  737. if (item4.isChecked) {
  738. MKNAME += item4.ushowname + ",";
  739. MKUSERID += item4.userid + ",";
  740. }
  741. })
  742. })
  743. })
  744. if (self.itemNode.id != 0) {
  745. if (spngvld.submit("#layer_box")) {
  746. let postData = {
  747. id: self.itemNode.id,
  748. tablename: "CODE_LM",
  749. data: {
  750. CNAME: self.itemNode.level == 2 ? self.itemNode.name : self.itemNode.child_title,
  751. IMGURL: self.itemNode.imgurl,
  752. COLUMNTYPE: self.itemNode.COLUMNTYPE,
  753. MKNAME: MKNAME.substring(0, MKNAME.length - 1),
  754. MKUSERID: MKUSERID.substring(0, MKUSERID.length - 1)
  755. }
  756. }
  757. $http.post(apiurljs.login + "g2app/dataabase/upFormData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  758. .success(function (obj) {
  759. sp.closeCenter('.sp-layer');
  760. var res = strToJson(s4.decryptData_CBC(obj.data));
  761. if (res.success) {
  762. self.getLeftTreeData();
  763. } else {
  764. sp.dialog(res.message);
  765. }
  766. })
  767. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  768. })
  769. }
  770. } else {
  771. if (spngvld.submit("#layer_box")) {
  772. let postData = {
  773. tablename: "CODE_LM",
  774. code: self.itemNode.code,
  775. levels: self.itemNode.level,
  776. cname: self.itemNode.level == 1 ? self.itemNode.name : self.itemNode.child_title,
  777. userid: self.userId,
  778. columntype: self.itemNode.COLUMNTYPE,
  779. mkname: MKNAME.substring(0, MKNAME.length - 1),
  780. mkuserid: MKUSERID.substring(0, MKUSERID.length - 1)
  781. }
  782. $http.post(apiurljs.login + "g2app/filepublishing/TreeAdd", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg)
  783. .success(function (obj) {
  784. sp.closeCenter('.sp-layer');
  785. var res = strToJson(s4.decryptData_CBC(obj.data));
  786. if (res.success) {
  787. self.getLeftTreeData();
  788. } else {
  789. sp.dialog(res.message);
  790. }
  791. })
  792. .error(function (XMLHttpRequest, textStatus, errorThrown) {
  793. })
  794. }
  795. }
  796. }
  797. self.itemUp = function ($item, $index) {
  798. self.getNode(self.treeData, $item)
  799. var data = {
  800. moveid: self.list[$index].ID,
  801. movedata: { SORTID: self.list[$index].SORTID },
  802. otherid: self.list[$index - 1].ID,
  803. otherdata: { SORTID: self.list[$index - 1].SORTID },
  804. tablename: "CODE_LM"
  805. }
  806. $http.post(apiurljs.login + "g2app/JiXiao/MoveSort", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  807. .success(function (obj) {
  808. var res = strToJson(s4.decryptData_CBC(obj.data));
  809. if (res.success) {
  810. self.getLeftTreeData();
  811. } else {
  812. sp.dialog(res.message);
  813. }
  814. });
  815. }
  816. self.itemDown = function ($item, $index) {
  817. self.getNode(self.treeData, $item)
  818. var data = {
  819. moveid: self.list[$index].ID,
  820. movedata: { SORTID: self.list[$index].SORTID },
  821. otherid: self.list[$index + 1].ID,
  822. otherdata: { SORTID: self.list[$index + 1].SORTID },
  823. tablename: "CODE_LM"
  824. }
  825. $http.post(apiurljs.login + "g2app/JiXiao/MoveSort", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  826. .success(function (obj) {
  827. var res = strToJson(s4.decryptData_CBC(obj.data));
  828. if (res.success) {
  829. self.getLeftTreeData();
  830. } else {
  831. sp.dialog(res.message);
  832. }
  833. });
  834. }
  835. //递归获取当前节点
  836. self.list = [];
  837. self.getNode = function (array, obj) {
  838. array.forEach(function (item) {
  839. if (item.ID == obj.ID) {
  840. self.list = array;
  841. } else {
  842. self.getNode(item.C_H_I_L_D_DATA, obj)
  843. }
  844. })
  845. }
  846. }])
  847. app.directive('treeView', [function () {
  848. return {
  849. restrict: 'EA',
  850. templateUrl: '/treeView.html',
  851. scope: {
  852. treeData: '=',///声明数据
  853. textField: '@',
  854. itemAdd: '&', ///声明新增变量
  855. itemEdit: '&',///声明修改变量
  856. itemCheck: '&',///声明修改变量
  857. itemDelete: '&',///声明修改变量
  858. itemUp: '&',
  859. itemDown: '&'
  860. },
  861. controller: ['$scope', function ($scope) {
  862. $scope.itemExpended = function (item, $event) {
  863. item.$$isExpend = !item.$$isExpend;
  864. $event.stopPropagation();
  865. };
  866. ///展开折叠图标设置
  867. $scope.getItemIcon = function (item) {
  868. var isEnd = $scope.isEnd(item);
  869. if (isEnd) {
  870. return 'fa fa-paper-plane-o';
  871. }
  872. return item.$$isExpend ? 'fa fa-plus-square-o' : 'fa fa-minus-square-o';
  873. };
  874. ///判断是否是最后一级菜单
  875. $scope.isEnd = function (item) {
  876. return !item.C_H_I_L_D_DATA || !item.C_H_I_L_D_DATA.length;
  877. };
  878. ///事件调用返回
  879. $scope.warpCallback = function (callback, item,$index, $event) {
  880. ($scope[callback] || angular.noop)({
  881. $item: item,
  882. $index:$index,
  883. $event: $event
  884. });
  885. };
  886. }]
  887. };
  888. }]);