formedit.js 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570
  1. 'use strict';
  2. var app = angular.module('app', [
  3. ]);
  4. app.controller("formeditCtrl", ["$scope", "$http", "$timeout", '$sce', function ($scope, $http, $timeout, $sce) {
  5. var self = this;
  6. var s4 = new SM4Util();
  7. self.userId = $.cookie("GlWorkPlatform-userid");
  8. self.userName = $.cookie("GlWorkPlatform-chineseName");
  9. self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
  10. self.routeid = sp.getUrlName("routeid");
  11. self.routeinfoid = sp.getUrlName("routeinfoid");
  12. self.copyrightid = sp.getUrlName("copyrightid");
  13. self.directionid = sp.getUrlName("directionid");
  14. self.formeditid = sp.getUrlName("formeditid");
  15. self.mbid = sp.getUrlName("mbid");
  16. self.fjid = sp.getUrlName("fjid");
  17. self.docmode = sp.getUrlName("docmode");
  18. self.dotype = sp.getUrlName("dotype");
  19. self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno");
  20. self.get_lastReturnPage = sp.getUrlName("lastReturnPage");
  21. self.get_type = sp.getUrlName("type");
  22. self.return = "../list.html?lastReturnPageno=" + self.get_lastReturnPageno + "&type=" + self.get_type
  23. self.deviceType = localStorage.getItem("tjJxtGoldenlinkWork-deviceType");
  24. var postCfg = {
  25. headers: {
  26. 'Content-Type': 'application/json',
  27. 'Authorization': "Bearer " + self.get_AccessToken
  28. }
  29. };
  30. self.FormTitle = $.cookie("GlWorkPlatform-SYSNAME");
  31. //上层附件、业务参考、共享沟通组件
  32. self.uploading = false;
  33. self.upload = function () {
  34. var uploadformat = strToJson(s4.decryptData_CBC(apiurljs.uploadformat)).data.map(function (item) {
  35. return item.CNAME
  36. })
  37. $('#fileupload').fileupload({
  38. url: apiurljs.login + 'g2app/abase/uploadFileWithForm',
  39. dataType: 'json',
  40. beforeSend: function (xhr, data) {
  41. xhr.setRequestHeader("Authorization", "Bearer " + self.get_AccessToken);
  42. xhr.setRequestHeader("File-Argument", s4.encryptData_CBC("tablename=FILE_ATTACH,routeinfoid=" + self.routeinfoid + ",ATTACHTYPE=委机关值班表"));
  43. },
  44. add: function (e, data) {
  45. var num = 0;
  46. var acceptFileTypes = eval('/(' + uploadformat.join("|") + ')$/i')
  47. //文件类型判断
  48. $.each(data.originalFiles, function (index, item) {
  49. if (item['type'].length > 0 && !acceptFileTypes.test(item['name'])) {
  50. sp.dialog("您好,请上传" + uploadformat.join("/") + "格式的文件!");
  51. return;
  52. } else {
  53. num++
  54. }
  55. })
  56. if (num == data.originalFiles.length) {
  57. self.uploading = true;
  58. data.submit();
  59. $scope.$apply();
  60. }
  61. },
  62. // 上传完成后的执行逻辑
  63. done: function (e, data) {
  64. self.uploading = false;
  65. self.getOther()
  66. }
  67. })
  68. }
  69. self.downLoad = function (item) {
  70. window.open(apiurljs.login + "g2work/files/" + item.FILEURL.slice(7))
  71. }
  72. //意见(下表)
  73. self.openOptionList = function () {
  74. if (self.routeinfoid == 0 && self.routeid == 0) {
  75. sp.dialog("请先保存!")
  76. return;
  77. }
  78. if (self.opinion.nulla == true) {
  79. return;
  80. }
  81. self.nulla = "";
  82. $(".optionList").css("height", 149)
  83. self.opinion.nulla = true;
  84. }
  85. self.closeOptionList = function () {
  86. $(".optionList").css("height", 389)
  87. self.opinion.nulla = false;
  88. }
  89. self.submitOptionList = function () {
  90. var data = {
  91. cmanid: self.userId,
  92. routeinfoid: self.routeinfoid,
  93. routeid: self.routeid,
  94. tableid: "FW_ZB",
  95. colid: "",
  96. opiniontype: 99,
  97. cresult: "",
  98. opinion: self.nulla,
  99. opinionimage: ""
  100. }
  101. $http.post(apiurljs.login + "g2app/abase/saveDataOpinion", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  102. .success(function (obj) {
  103. var res = strToJson(s4.decryptData_CBC(obj.data));
  104. if (res.success == true) {
  105. self.getOpinion1();
  106. self.opinion.nulla = false;
  107. $(".optionList").css("height", 389)
  108. } else {
  109. sp.dialog(res.message)
  110. }
  111. })
  112. }
  113. self.changeOptionList = function (item) {
  114. self.nulla = item.OPINION;
  115. self.opinion.nulla = true;
  116. }
  117. self.deleteFile = function (file) {
  118. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  119. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  120. 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>";
  121. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  122. sp.openCenter(".sp-dialog");
  123. ///取消按钮
  124. $('.sp-closeDialog').click(function (event) {
  125. sp.closeCenter(".sp-dialog");
  126. event.preventDefault();
  127. event.stopPropagation();
  128. });
  129. //post消息的id
  130. $("#delDataTrue").click(function () {
  131. var data = {
  132. tablename: "FILE_ATTACH",
  133. id: file.ID
  134. };
  135. $http.post(apiurljs.login + "g2app/dataabase/delDataById", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  136. .success(function (obj) {
  137. var res = strToJson(s4.decryptData_CBC(obj.data));
  138. sp.dialoghide();
  139. if (res.success) {
  140. self.getOther();
  141. } else {
  142. sp.dialog("删除失败,请联系管理员!");
  143. }
  144. });
  145. });
  146. }
  147. self.goAttach = function (obj) {
  148. if (obj) {
  149. if (apiurljs.zhType.indexOf(obj.FILEEXT) == -1) {
  150. sp.dialog("文件暂不支持在线预览,请点击下载查看!")
  151. return
  152. }
  153. $("#attachlist")[0].contentWindow.openFile(obj)
  154. if ($(".fa-chevron-down").is(":hidden") == true) {
  155. showToggle(document.getElementById("toggleButton"))
  156. }
  157. } else {
  158. if ($("#attachlist").attr("src") == '') {
  159. $("#attachlist").attr("src", "attachlist.html?page=formedit&routeinfoid=" + self.routeinfoid)
  160. }
  161. }
  162. }
  163. self.readonly = {
  164. NF: false,
  165. YF: false,
  166. SQDW: false,
  167. TWODAY: false,
  168. LSH: false,
  169. ZB: false,
  170. ZBREMARK: false,
  171. SPYJ: false
  172. }
  173. self.show = {
  174. ZBREMARK: false,
  175. SPYJ: false
  176. }
  177. //初始化右上角按钮
  178. self.buttonList = []
  179. self.yearList = [];
  180. for (var i = 0; i < 11; i++) {
  181. if (i < 5) {
  182. self.yearList.push(sp.currentYear() * 1 - 5 + i)
  183. } else if (i == 5) {
  184. self.yearList.push(sp.currentYear())
  185. } else if (i > 5) {
  186. self.yearList.push(sp.currentYear() * 1 + i - 5)
  187. }
  188. }
  189. self.times = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
  190. "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"]
  191. self.getFLOW = function () {
  192. var data = {
  193. copyrightid: self.copyrightid
  194. }
  195. $http.post(apiurljs.login + "g2work/flow/queryDataByCopyrightid", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  196. .success(function (obj) {
  197. var res = strToJson(s4.decryptData_CBC(obj.data));
  198. self.flowTitle = res.data.CNAME;
  199. })
  200. }
  201. self.getSwenList = function (n) {
  202. self.SwenList = [];
  203. var data = {
  204. directionid: self.directionid,
  205. userid: self.userId,
  206. routeinfoid: self.routeinfoid,
  207. routeid: self.routeid,
  208. formeditid: ""
  209. }
  210. $http.post(apiurljs.login + "g2app/abase/queryDataLink", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  211. .success(function (obj) {
  212. var res = strToJson(s4.decryptData_CBC(obj.data));
  213. if (self.copyrightid == "") {
  214. self.copyrightid = res.data.LINKS[0].COPYRIGHTID
  215. }
  216. $.each(res.data.LINKS, function (index, item) {
  217. if (item.TEMPFORM.indexOf("formedit.html") > -1) {
  218. self.Title = item.VNAME;
  219. }
  220. if (item.TEMPFORM.indexOf("?docmode") > 0) {
  221. if (item.TEMPFORM.indexOf("attachlist") > -1) {
  222. item.TEMPFORM = item.TEMPFORM + "&dotype=" + self.dotype + "&type=" + self.get_type + "&lastReturnPageno=" + self.get_lastReturnPageno + "&lastReturnPage=" + self.get_lastReturnPage;
  223. } else {
  224. item.TEMPFORM = "../" + item.TEMPFORM + "&dotype=" + self.dotype + "&type=" + self.get_type + "&lastReturnPageno=" + self.get_lastReturnPageno + "&lastReturnPage=" + self.get_lastReturnPage;
  225. }
  226. } else {
  227. item.TEMPFORM = "#";
  228. }
  229. self.SwenList.push(item)
  230. })
  231. self.SwenList.push({
  232. VNAME: "流程图",
  233. DIRECTIONID: self.SwenList[0].DIRECTIONID,
  234. TEMPFORM: "modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1]
  235. })
  236. if (n == 0) {
  237. self.getDP()
  238. self.getFLOW()
  239. self.getOther()
  240. } else {
  241. self.getData()
  242. }
  243. })
  244. }
  245. self.getSwenList(0)
  246. self.getDP = function () {
  247. var data = {
  248. userid: self.userId
  249. }
  250. $http.post(apiurljs.login + "g2app/richang/queryDpInfo", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  251. .success(function (obj) {
  252. var res = strToJson(s4.decryptData_CBC(obj.data));
  253. self.userDpName = res.data.length == 0 ? "" : res.data[0].SECTION;
  254. self.userDpCode = res.data.length == 0 ? "" : res.data[0].CODE;
  255. self.getYF();
  256. })
  257. }
  258. self.getYF = function () {
  259. var data = {
  260. ckey: "CODE_ZBYF",
  261. routeinfoid: self.routeinfoid
  262. }
  263. $http.post(apiurljs.login + "g2app/abase/queryDataCode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  264. .success(function (obj) {
  265. var res = strToJson(s4.decryptData_CBC(obj.data));
  266. self.YF = res.data.CODE_ZBYF;
  267. self.getXQ()
  268. })
  269. }
  270. self.getXQ = function () {
  271. var data = {
  272. ckey: "CODE_ZBXQ",
  273. routeinfoid: self.routeinfoid
  274. }
  275. $http.post(apiurljs.login + "g2app/abase/queryDataCode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  276. .success(function (obj) {
  277. var res = strToJson(s4.decryptData_CBC(obj.data));
  278. self.XQ = res.data.CODE_ZBXQ;
  279. self.getZBSJ()
  280. })
  281. }
  282. self.getZBSJ = function () {
  283. var data = {
  284. ckey: "CODE_ZHIBANTIME",
  285. routeinfoid: self.routeinfoid
  286. }
  287. $http.post(apiurljs.login + "g2app/abase/queryDataCode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  288. .success(function (obj) {
  289. var res = strToJson(s4.decryptData_CBC(obj.data));
  290. self.ZBSJ = res.data.CODE_ZHIBANTIME;
  291. self.getDBLD()
  292. })
  293. }
  294. self.getDBLD = function () {
  295. var data = {
  296. tablename: "SX_ZHIBANRYGL",
  297. colums: "*",
  298. order: "ID",
  299. sqlwhere: "",
  300. sqlorwhere: "",
  301. sqlinwhere: { "MANMARK": "'C01','C02'" },
  302. sqllikewhere: ""
  303. }
  304. $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  305. .success(function (obj) {
  306. var res = strToJson(s4.decryptData_CBC(obj.data));
  307. self.DBLD = res.data;
  308. self.getUserList()
  309. })
  310. }
  311. self.getUserList = function () {
  312. $http.post(apiurljs.login + "g2work/datazu/queryDataUserList", { data: s4.encryptData_CBC(JSON.stringify({ "zid": "AA", "levels": "0" })) }, postCfg)
  313. .success(function (obj) {
  314. var res = strToJson(s4.decryptData_CBC(obj.data));
  315. self.userList = res.data;
  316. self.userList.forEach(function (item) {
  317. item.users.forEach(function (item1) {
  318. item1.checked = false;
  319. item1.ushowname1 = item1.ushowname.length > 3 ? item1.ushowname.slice(0, 3) + "..." : item1.ushowname;
  320. item1.ushowname2 = item1.ushowname.length > 10 ? item1.ushowname.slice(0, 10) + "..." : item1.ushowname
  321. })
  322. })
  323. self.getZBXZ()
  324. })
  325. }
  326. self.getZBXZ = function () {
  327. $http.get("../js/zbxz1.txt")
  328. .success(function (res) {
  329. self.zbxzMR = res.NR;
  330. self.getData()
  331. })
  332. }
  333. //获取数据
  334. self.getData = function () {
  335. var data = {
  336. ckey: "SX_PRZBB",
  337. id: 0,
  338. directionid: self.directionid,
  339. formeditid: self.formeditid,
  340. routeid: self.routeid,
  341. routeinfoid: self.routeinfoid
  342. }
  343. $http.post(apiurljs.login + "g2app/abase/queryData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  344. .success(function (obj) {
  345. var res = strToJson(s4.decryptData_CBC(obj.data));
  346. self.data = {
  347. ID: res.data.SX_PRZBB.ID,
  348. NF: res.data.SX_PRZBB.NF == "" ? parseInt(sp.currentYear()) : res.data.SX_PRZBB.NF,
  349. YF: res.data.SX_PRZBB.YF == "" ? self.YF[0].CODE : res.data.SX_PRZBB.YF,
  350. SQDW: res.data.SX_PRZBB.SQDW == "" ? self.userDpName : res.data.SX_PRZBB.SQDW,
  351. TWODAY: res.data.SX_PRZBB.TWODAY == "true",
  352. LSH: res.data.SX_PRZBB.LSH == "" ? "" : res.data.SX_PRZBB.LSH,
  353. ZBREMARK: res.data.SX_PRZBB.ZBREMARK == "" ? self.zbxzMR : res.data.SX_PRZBB.ZBREMARK,
  354. SQRUSERID: res.data.SX_PRZBB.SQRUSERID == "" ? self.userId : res.data.SX_PRZBB.SQRUSERID
  355. };
  356. self.YF.forEach(function (item) {
  357. if (self.data.YF == item.CODE) {
  358. self.data.YF1 = item.CNAME;
  359. }
  360. })
  361. self.readonly = {
  362. NF: res.data.SX_PRZBB["NF.EREADONLY"] == "true",
  363. YF: res.data.SX_PRZBB["YF.EREADONLY"] == "true",
  364. SQDW: res.data.SX_PRZBB["SQDW.EREADONLY"] == "true",
  365. TWODAY: res.data.SX_PRZBB["TWODAY.EREADONLY"] == "true",
  366. LSH: res.data.SX_PRZBB["LSH.EREADONLY"] == "true",
  367. ZB: res.data.SX_PRZBB["ZB.EREADONLY"] == "true",
  368. ZBREMARK: res.data.SX_PRZBB["ZBREMARK.EREADONLY"] == "true",
  369. SPYJ: res.data.SX_PRZBB["SPYJ.EREADONLY"] == "true"
  370. }
  371. self.show = {
  372. ZBREMARK: res.data.SX_PRZBB["ZBREMARK.ESHOW"] == "true",
  373. SPYJ: res.data.SX_PRZBB["SPYJ.ESHOW"] == "true"
  374. }
  375. if (self.data.ID == 0) {
  376. self.filedChange = true;
  377. } else {
  378. self.filedChange = false;
  379. }
  380. self.buttonList = res.data["SX_PRZBB.FUNCLIST"];
  381. self.getChildList()
  382. self.getLSH()
  383. self.getOpinion('SPYJ')
  384. })
  385. }
  386. self.getLSH = function () {
  387. var data = {
  388. length: 3,
  389. cyear: sp.currentYear(),
  390. cmonth: self.data.YF1
  391. }
  392. $http.post(apiurljs.login + "g2app/ZhiBan/queryZhiBanLSH", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  393. .success(function (obj) {
  394. var res = strToJson(s4.decryptData_CBC(obj.data));
  395. self.LSH = res.data;
  396. self.data.LSH = self.LSH.YEAR + self.LSH.MONTH + self.LSH.NUMBER
  397. })
  398. }
  399. //获取附件和插件
  400. self.getOther = function () {
  401. var data = {
  402. tablename: "FILE_ATTACH",
  403. colums: "*",
  404. order: "ID desc",
  405. sqlwhere: { ROUTEINFOID: self.routeinfoid },
  406. sqlinwhere: "",
  407. sqllikewhere: ""
  408. }
  409. $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  410. .success(function (obj) {
  411. var res = strToJson(s4.decryptData_CBC(obj.data));
  412. self.arrayFile1 = [];
  413. if (res.data.length > 0) {
  414. res.data.forEach(function (item) {
  415. if (item.ATTACHTYPE.indexOf("-正文") > -1) {
  416. self.arrayFile = item;
  417. } else {
  418. self.arrayFile1.push(item)
  419. }
  420. })
  421. }
  422. })
  423. }
  424. self.getChildList = function () {
  425. self.list1 = [];
  426. self.list2 = [];
  427. var data = {
  428. tablename: "SX_PRZBB_01",
  429. colums: "*",
  430. order: "ID",
  431. sqlwhere: { PID: self.data.ID },
  432. sqlinwhere: "",
  433. sqllikewhere: ""
  434. }
  435. $http.post(apiurljs.login + "/g2app/ZhiBan/queryPRZBList", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  436. .success(function (obj) {
  437. var res = strToJson(s4.decryptData_CBC(obj.data));
  438. self.canExportExcel = true;
  439. //self.list = res.data;
  440. self.AddFlag = false;
  441. self.EditFlag = false;
  442. if (res.data.indexmark.start_index == 0) {
  443. self.table1 = 4; self.table2 = 1
  444. }
  445. if (res.data.indexmark.start_index2 == 0) {
  446. self.table1 = 1; self.table2 = 4
  447. }
  448. if (res.data.indexmark.start_index2 == -1 && res.data.indexmark.end_index2 == -1) {
  449. // self.table1 = 4; self.table2 = 0
  450. self.table1 = 1; self.table2 = 0
  451. }
  452. $.each(res.data.data, function (index, item) {
  453. item.editFlag = false;
  454. item.RIQI = formate(item.RIQI);
  455. self.ZBSJ.forEach(function (item1) {
  456. if (item.ZBSJ == item1.CODE) {
  457. item.ZBSJ2 = item1.CNAME
  458. }
  459. })
  460. if (res.data.indexmark.start_index == 0 && res.data.indexmark.start_index2 > 0) {
  461. if (index < res.data.indexmark.start_index2) {
  462. self.list1.push(item)
  463. } else {
  464. self.list2.push(item)
  465. }
  466. }
  467. if (res.data.indexmark.start_index2 == 0 && res.data.indexmark.start_index > 0) {
  468. if (index < res.data.indexmark.start_index) {
  469. self.list1.push(item)
  470. } else {
  471. self.list2.push(item)
  472. }
  473. }
  474. if (res.data.indexmark.start_index2 == -1 && res.data.indexmark.end_index2 == -1) {
  475. self.list1.push(item)
  476. }
  477. })
  478. self.getRiQiList()
  479. })
  480. }
  481. //初始化子表
  482. self.childInit = function () {
  483. var data = {
  484. sqlwhere: "",
  485. columns: "",
  486. id: self.data.ID,
  487. cyear: self.data.NF,
  488. cmonth: self.data.YF1
  489. }
  490. $http.post(apiurljs.login + "g2app/zhiban/queryInitPRZBZhibanMan", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  491. .success(function (obj) {
  492. var res = strToJson(s4.decryptData_CBC(obj.data));
  493. var object = {}
  494. res.data.MANLIST.forEach(function (item) {
  495. for (var i in item) {
  496. object[i] = item[i];
  497. }
  498. })
  499. self.Init = {
  500. lastDBLDXM: res.data.ITEM.DBLDXM,
  501. lastZBGBXM1: res.data.ITEM.ZBGBXM1,
  502. lastZBGBXM2: res.data.ITEM.ZBGBXM2,
  503. DBLDXM: "",
  504. ZBGBXM1: "",
  505. ZBGBXM2: "",
  506. DBLDXMlist: object.C01,
  507. ZBGBXM1list: object.C02,
  508. ZBGBXM2list: object.C03
  509. }
  510. self.Init.DBLDXM = self.Init.DBLDXMlist[(getNum(self.Init.DBLDXMlist, self.Init.lastDBLDXM) + 1)].CNAME
  511. self.Init.ZBGBXM1 = self.Init.ZBGBXM1list[(getNum(self.Init.ZBGBXM1list, self.Init.lastZBGBXM1) + 1)].CNAME
  512. self.Init.ZBGBXM2 = self.Init.ZBGBXM2list[(getNum(self.Init.ZBGBXM2list, self.Init.lastZBGBXM2) + 1)].CNAME
  513. sp.layer("#Init")
  514. })
  515. }
  516. self.btnInit = function () {
  517. var data = {
  518. id: self.data.ID,
  519. cyear: self.data.NF,
  520. cmonth: self.data.YF1,
  521. dbldxm: self.Init.DBLDXM,
  522. zbgbxm1: self.Init.ZBGBXM1,
  523. zbgbxm2: self.Init.ZBGBXM2,
  524. sqlwhere: ""
  525. }
  526. $http.post(apiurljs.login + "g2app/zhiban/InitPRZBZhibanMan",{ data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  527. .success(function (obj) {
  528. var res = strToJson(s4.decryptData_CBC(obj.data));
  529. sp.layerhide()
  530. if (res.data != -1) {
  531. self.getChildList()
  532. } else {
  533. sp.dialog(res.message)
  534. }
  535. })
  536. }
  537. self.childInit1 = function () {
  538. self.cyearList = [];
  539. for (var i = 0; i < 6; i++) {
  540. if (i < 5) {
  541. self.cyearList.push(sp.currentYear() * 1 - 5 + i)
  542. } else if (i == 5) {
  543. self.cyearList.push(sp.currentYear())
  544. }
  545. }
  546. self.target = {
  547. cyear: sp.currentMonth() == 1 ? sp.currentYear() * 1 - 1 : sp.currentYear() * 1,
  548. cmonth: sp.currentMonth() == 1 ? 12 : sp.currentMonth() * 1
  549. }
  550. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  551. var dialogBody = "<div class=\"sp-dialog-body\">您确认要初始化" + self.data.NF + "年" + self.data.YF1 + "月值班信息吗?</div>";
  552. var dialogFoot = "<div class=\"sp-dialog-foot\"><input id='DataTrue' type='button' value='确 认' class='sp-dialog-btnTrue' /><input type='button' value='取 消' class='sp-dialog-btnCancle sp-closeDialog' /></div>";
  553. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  554. sp.openCenter(".sp-dialog");
  555. ///取消按钮
  556. $('.sp-closeDialog').click(function (event) {
  557. sp.closeCenter(".sp-dialog");
  558. event.preventDefault();
  559. event.stopPropagation();
  560. });
  561. //post消息的id
  562. $("#DataTrue").click(function () {
  563. sp.dialoghide()
  564. self.btnSave(4)
  565. });
  566. }
  567. self.btnInit1 = function () {
  568. var data = {
  569. tablename: "SX_PRZBB_01",
  570. columns: "NYBIAOSHI",
  571. sqlwhere: { NYBIAOSHI: self.data.NF + "-" + formate(self.data.YF1), PID: self.data.ID },
  572. sqlinwhere: {},
  573. sqllikewhere: {}
  574. }
  575. $http.post(apiurljs.login + "g2app/Data/QueryCountByTablenameWithCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  576. .success(function (obj1) {
  577. var res1 = strToJson(s4.decryptData_CBC(obj1.data));
  578. if (res1.data > 0) {
  579. sp.dialog("当月已有数据!")
  580. } else {
  581. var data = {
  582. cyear: self.data.NF,
  583. cmonth: self.data.YF1,
  584. cyear_target: "",
  585. cmonth_target: "",
  586. tablename: "SX_PRZBB_01",
  587. id: self.data.ID
  588. }
  589. $http.post(apiurljs.login + "g2app/zhiban/initZhibanChild", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  590. .success(function (obj2) {
  591. var res2 = strToJson(s4.decryptData_CBC(obj2.data));
  592. self.getChildList()
  593. })
  594. }
  595. })
  596. }
  597. //导入
  598. self.upload3 = function () {
  599. $('#fileupload3').fileupload({
  600. url: apiurljs.login + 'g2app/ZhiBan/impExecl_JieRiPRZB',
  601. dataType: 'json',
  602. beforeSend: function (xhr, data) {
  603. xhr.setRequestHeader("Authorization", "Bearer " + self.get_AccessToken);
  604. xhr.setRequestHeader("File-Argument", s4.encryptData_CBC("tablename=SX_PRZBB,id=" + self.data.ID + ",cyear=" + self.data.NF + ",cmonth=" + formate(self.data.YF1)));
  605. },
  606. add: function (e, data) {
  607. self.uploading = true;
  608. data.submit();
  609. },
  610. // 上传完成后的执行逻辑
  611. done: function (e, data) {
  612. self.uploading = false;
  613. self.getSwenList(1)
  614. sp.layerhide()
  615. }
  616. })
  617. }
  618. //下载当月模板
  619. self.downloadMonth = function () {
  620. var eleLink = document.createElement('a');
  621. eleLink.download = "";
  622. eleLink.style.display = 'none';
  623. console.log(s4.encryptData_CBC("mobanname=moban.xlsx&code_table=CODE_ZHIBANTIME&title=市住房城乡建设委机关" + self.data.NF + "年" + self.data.YF1 + "月份值班表&id=" + self.data.ID + "&cyear=" + self.data.NF + "&cmonth=" + formate(self.data.YF1)))
  624. eleLink.href = apiurljs.login + "g2app/zhiban/ExpZhiBanJieRiMoBan?data=" + encodeURIComponent(s4.encryptData_CBC("mobanname=mobanjr.xlsx&code_table=CODE_ZHIBANTIME&title=市住房城乡建设委机关" + self.data.NF + "年" + self.data.YF1 + "月份值班表&id=" + self.data.ID + "&cyear=" + self.data.NF + "&cmonth=" + formate(self.data.YF1)));
  625. // 触发点击
  626. document.body.appendChild(eleLink);
  627. eleLink.click();
  628. // 然后移除
  629. document.body.removeChild(eleLink);
  630. }
  631. //获取意见(上表)
  632. self.getOpinion = function (str) {
  633. var data = {
  634. cmanid: self.userId,
  635. routeinfoid: self.routeinfoid,
  636. routeid: "",//self.routeid,
  637. tableid: "SX_PRZBB",
  638. colid: str,
  639. opiniontype: 0,
  640. orderbycol: "CDATE desc"
  641. }
  642. $http.post(apiurljs.login + "g2app/abase/queryDataOpinionWithRouteAttach", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  643. .success(function (obj) {
  644. var res = strToJson(s4.decryptData_CBC(obj.data));
  645. if (res.success == true) {
  646. self.YJ[str] = res.data;
  647. self.YJ[str + "STATUS"] = false;
  648. self.YJ[str].forEach(function (item) {
  649. item.CDATE = sp.datefmt("yyyy-MM-dd HH:mm", item.CDATE);
  650. if (item.ROUTEID == self.routeid) {
  651. self.YJ[str + "STATUS"] = true;
  652. }
  653. })
  654. } else {
  655. sp.dialog(res.message)
  656. }
  657. })
  658. }
  659. //判断页面字段是否只读readonly、是否隐藏show
  660. self.hide = function (type, field) {
  661. if (self.dotype == 0 && type == "readonly") {
  662. return true;
  663. } else {
  664. if (self[type][field] == true) {
  665. return true;
  666. } else {
  667. return false;
  668. }
  669. }
  670. }
  671. //右上角按钮调用方法
  672. self.btnEvent = function (item) {
  673. switch (item.CODE) {
  674. case "SAVEITEM": self.btnSave(0); break;
  675. case "PRINTITEM": self.btnPrint(); break;
  676. case "MEETITEM": self.Meet(); break;
  677. case "SENDLOG": self.RouteList(); break;
  678. default: self.forward(item); break;
  679. }
  680. }
  681. //保存提交
  682. self.btnSave = function (n) {
  683. var dataArray = [];
  684. dataArray.push(self.data);
  685. var data = {
  686. ckey: "SX_PRZBB",
  687. id: self.data.ID,
  688. routeid: self.routeid,
  689. routeinfoid: self.routeinfoid,
  690. routeinfotitle: self.data.NF + "年" + self.data.YF1 + "月平日值班",//self.data.TITLE,
  691. directionid: self.directionid,
  692. formeditid: self.formeditid,
  693. data: JSON.stringify(dataArray)
  694. }
  695. $http.post(apiurljs.login + "g2app/abase/saveData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  696. .success(function (obj) {
  697. var res = strToJson(s4.decryptData_CBC(obj.data));
  698. if (res.code == 0) {
  699. self.data.ID = res.data.ID;
  700. self.routeid = res.data.ROUTEID;
  701. self.routeinfoid = res.data.ROUTEINFOID;
  702. self.filedChange = false;
  703. if (n == 0) {
  704. sp.dialog("保存成功!");
  705. $timeout(function () {
  706. sp.dialoghide()
  707. }, 1500)
  708. self.getSwenList(1)
  709. } else if (n == 1) {
  710. self.forward(self.btnItem);
  711. } else if (n == 2) {
  712. self.sendAll();
  713. } else if (n == 3) {
  714. self.RYADD()
  715. } else if (n == 4) {
  716. self.btnInit()
  717. }
  718. } else {
  719. sp.dialog(res.message)
  720. }
  721. })
  722. }
  723. //获取所选年月所有日期
  724. self.getRiQiList = function () {
  725. self.RiQiList = [];
  726. self.YF.forEach(function (item) {
  727. if (self.data.YF == item.CODE) {
  728. self.data.YF1 = item.CNAME;
  729. }
  730. })
  731. var lastDay = sp.getLastDayOfMonth(self.data.NF, self.data.YF1);
  732. var n = lastDay.slice(lastDay.length - 2, lastDay.length)
  733. for (var i = 1; i <= n; i++) {
  734. self.RiQiList.push({ date: formate(i) })
  735. }
  736. self.getLSH()
  737. }
  738. //值班人员添加
  739. self.RYADD = function () {
  740. self.AddFlag = true;
  741. self.editFlag = true;
  742. self.edit = {
  743. ID: 0,
  744. RIQI: formate(new Date().getDate()),
  745. DBLDXM: "",
  746. ZW: "",
  747. BGGH: "",
  748. SJHM: "",
  749. ZBGBXM1: "",
  750. ZBGBXM2: "",
  751. ZBSJ: self.ZBSJ[0].CODE,
  752. ZBSJ1: "",
  753. SJDH: "",
  754. XINGQI: ""
  755. };
  756. self.checkDate()
  757. if (self.data.ID == 0) {
  758. self.btnSave(3)
  759. }
  760. }
  761. //值班人员编辑
  762. self.RYEDIT = function (item) {
  763. self.EditFlag = true;
  764. item.editFlag = true;
  765. self.edit = {
  766. ID: item.ID,
  767. RIQI: item.RIQI,
  768. DBLDXM: item.DBLDXM,
  769. ZW: item.ZW,
  770. BGGH: item.BGGH,
  771. SJHM: item.SJHM,
  772. DHDBLDXM: item.DHDBLDXM,
  773. DHZW: item.DHZW,
  774. DHSJHM: item.DHSJHM,
  775. ZBGBXM1: item.ZBGBXM1,
  776. ZBGBXM2: item.ZBGBXM2,
  777. ZBSJ: item.ZBSJ,
  778. ZBSJ1: item.ZBSJ1,
  779. SJDH: item.SJDH,
  780. XINGQI: item.XINGQI
  781. };
  782. //self.XQ.forEach(function (item1) {
  783. // if (item1.CNAME == self.edit.XINGQI) {
  784. // self.edit.XINGQI = item1.CODE
  785. // }
  786. //})
  787. }
  788. self.RYSAVE = function () {
  789. var ushowname = [self.edit.DBLDXM, self.edit.ZBGBXM1, self.edit.ZBGBXM2].filter(function (item) {
  790. return item != ""
  791. })
  792. var data = {
  793. ushowname: ushowname.join("|")
  794. }
  795. $http.post(apiurljs.login+"g2app/ZhiBan/queryManUserid",{ data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  796. .success(function (obj) {
  797. var res = strToJson(s4.decryptData_CBC(obj.data));
  798. for (var i in res.data) {
  799. if (i == self.edit.DBLDXM) {
  800. self.edit.DBLDXMUSERID = res.data[i];
  801. } else if (i == self.edit.ZBGBXM1) {
  802. self.edit.ZBGBXMUSERID1 = res.data[i];
  803. } else if (i == self.edit.ZBGBXM2) {
  804. self.edit.ZBGBXMUSERID2 = res.data[i];
  805. }
  806. }
  807. if (self.edit.ID == 0) {
  808. var text = JSON.stringify({
  809. PID: self.data.ID,
  810. RIQI: self.edit.RIQI,
  811. DBLDXM: self.edit.DBLDXM,
  812. DBLDXMUSERID: self.edit.DBLDXMUSERID,
  813. ZW: self.edit.ZW,
  814. BGGH: self.edit.BGGH,
  815. SJHM: self.edit.SJHM,
  816. ZBGBXM1: self.edit.ZBGBXM1,
  817. ZBGBXMUSERID1: self.edit.ZBGBXMUSERID1,
  818. ZBGBXM2: self.edit.ZBGBXM2,
  819. ZBGBXMUSERID2: self.edit.ZBGBXMUSERID2,
  820. ZBSJ: self.edit.ZBSJ,
  821. ZBSJ1: self.edit.ZBSJ1,
  822. SJDH: self.edit.SJDH,
  823. XINGQI: self.edit.XINGQI
  824. })
  825. var data = {
  826. tablename: "SX_PRZBB_01",
  827. id: 0,
  828. data: text
  829. }
  830. $http.post(apiurljs.login + "g2app/dataabase/saveChildData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  831. .success(function (obj) {
  832. var res = strToJson(s4.decryptData_CBC(obj.data));
  833. if (res.success) {
  834. self.getChildList();
  835. sp.dialog("添加成功!")
  836. $timeout(function () {
  837. sp.dialoghide()
  838. }, 2000)
  839. } else {
  840. sp.dialog(res.message)
  841. }
  842. })
  843. } else {
  844. var text = JSON.stringify({
  845. RIQI: self.edit.RIQI,
  846. DBLDXM: self.edit.DBLDXM,
  847. DBLDXMUSERID: self.edit.DBLDXMUSERID,
  848. ZW: self.edit.ZW,
  849. BGGH: self.edit.BGGH,
  850. SJHM: self.edit.SJHM,
  851. DHDBLDXM: self.edit.DHDBLDXM,
  852. DHZW: self.edit.DHZW,
  853. DHSJHM: self.edit.DHSJHM,
  854. ZBGBXM1: self.edit.ZBGBXM1,
  855. ZBGBXMUSERID1: self.edit.ZBGBXMUSERID1,
  856. ZBGBXM2: self.edit.ZBGBXM2,
  857. ZBGBXMUSERID2: self.edit.ZBGBXMUSERID2,
  858. ZBSJ: self.edit.ZBSJ,
  859. ZBSJ1: self.edit.ZBSJ1,
  860. SJDH: self.edit.SJDH,
  861. XINGQI: self.edit.XINGQI
  862. })
  863. var data = {
  864. tablename: "SX_PRZBB_01",
  865. id: self.edit.ID,
  866. data: text
  867. }
  868. $http.post(apiurljs.login + "g2app/dataabase/saveChildData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  869. .success(function (obj) {
  870. var res = strToJson(s4.decryptData_CBC(obj.data));
  871. if (res.success) {
  872. var data1 = {
  873. tablename: "SX_PRZBB",
  874. id: self.data.ID,
  875. data: {
  876. LSH: (parseInt(self.data.LSH) + 1).toString()
  877. }
  878. }
  879. $http.post(apiurljs.login + "g2app/dataabase/upFormData", { data: s4.encryptData_CBC(JSON.stringify(data1)) }, postCfg)
  880. .success(function (obj1) {
  881. var res1 = strToJson(s4.decryptData_CBC(obj1.data));
  882. if (res1.success == true) {
  883. self.getData();
  884. sp.dialog("编辑成功!")
  885. $timeout(function () {
  886. sp.dialoghide()
  887. }, 2000)
  888. } else {
  889. sp.dialog(res.message)
  890. }
  891. })
  892. } else {
  893. sp.dialog(res.message)
  894. }
  895. })
  896. }
  897. })
  898. }
  899. self.btnDel = function (item) {
  900. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  901. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  902. 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>";
  903. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  904. sp.openCenter(".sp-dialog");
  905. ///取消按钮
  906. $('.sp-closeDialog').click(function (event) {
  907. sp.closeCenter(".sp-dialog");
  908. event.preventDefault();
  909. event.stopPropagation();
  910. });
  911. //post消息的id
  912. $("#delDataTrue").click(function () {
  913. var data = {
  914. tablename: "SX_PRZBB_01",
  915. id: item.ID
  916. };
  917. $http.post(apiurljs.login + "g2app/dataabase/delDataById", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  918. .success(function (obj) {
  919. var res = strToJson(s4.decryptData_CBC(obj.data));
  920. sp.dialoghide();
  921. if (res.success) {
  922. self.getChildList();
  923. } else {
  924. sp.dialog("删除失败,请联系管理员!");
  925. }
  926. });
  927. });
  928. }
  929. self.openUserList = function (str) {
  930. self.filed = str;
  931. self.userList.forEach(function (item) {
  932. item.users.forEach(function (item1) {
  933. item1.checked = false;
  934. if (item1.ushowname == self.edit[self.filed]) {
  935. item1.checked = true;
  936. }
  937. })
  938. })
  939. sp.layer("#userList")
  940. $("#userList .sp-page").eq(0).scrollTop(0);
  941. }
  942. self.checkUser = function (item) {
  943. $.each(self.userList, function (x, y) {
  944. $.each(y.users, function (x1, y1) {
  945. y1.checked = y1.userid == item.userid;
  946. if (y1.checked == true) {
  947. self.edit[self.filed] = y1.ushowname;
  948. if (self.filed == "DBLDXM") {
  949. self.edit.ZW = y.section
  950. self.edit.DBLDXMUSERID = y1.userid;
  951. } else if (self.filed == "ZBGBXM1") {
  952. self.edit.ZBGBXMUSERID1 = y1.userid;
  953. } else if (self.filed == "ZBGBXM2") {
  954. self.edit.ZBGBXMUSERID2 = y1.userid;
  955. }
  956. }
  957. })
  958. })
  959. }
  960. self.openDateList = function () {
  961. self.RiQiList.forEach(function (item) {
  962. item.checked = false;
  963. if (item.date == self.edit.RIQI) {
  964. item.checked = true;
  965. }
  966. })
  967. sp.layer("#dateList")
  968. }
  969. self.checkDate = function () {
  970. var weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
  971. //self.XQ.forEach(function (item) {
  972. // if (item.CNAME == weeks[new Date(self.data.NF + "-" + self.data.YF1 + "-" + self.edit.RIQI).getDay()]) {
  973. // self.edit.XINGQI = item.CODE;
  974. // }
  975. //})
  976. }
  977. self.changeLD = function () {
  978. self.DBLD.forEach(function (item) {
  979. if (item.CNAME == self.edit.DBLDXM) {
  980. self.edit.DBLDXMUSERID = item.USERID;
  981. self.edit.ZW = item.ZHIWU;
  982. self.edit.BGGH = item.TEL;
  983. self.edit.SJHM = item.MOBILEPHONE;
  984. }
  985. if (item.CNAME == self.edit.DHDBLDXM) {
  986. self.edit.DHZW = item.ZHIWU;
  987. self.edit.DHSJHM = item.MOBILEPHONE;
  988. }
  989. })
  990. }
  991. //前端导出
  992. self.printOut = function () {
  993. if (self.canExportExcel) {
  994. $('#printOut td').attr('t', 's')
  995. var defaultCellStyle = {
  996. font: {
  997. name: 'Times New Roman',
  998. sz: 12,
  999. color: {
  1000. rgb: "000000"
  1001. },
  1002. bold: false, italic: false,
  1003. underline: false
  1004. },
  1005. alignment: {
  1006. vertical: "center",
  1007. horizontal: "center", indent: 0, wrapText: true
  1008. },
  1009. border: {
  1010. top: {
  1011. style: "thin",
  1012. color: {
  1013. rgb: "000000"
  1014. }
  1015. },
  1016. right: {
  1017. style: "thin",
  1018. color: {
  1019. rgb: "000000"
  1020. }
  1021. },
  1022. bottom: {
  1023. style: "thin",
  1024. color: {
  1025. rgb: "000000"
  1026. }
  1027. },
  1028. left: {
  1029. style: "thin",
  1030. color: {
  1031. rgb: "000000"
  1032. }
  1033. }
  1034. }
  1035. };
  1036. var cell = { defaultCellStyle: defaultCellStyle };
  1037. var wb = XLSX.utils.table_to_book_addtitle(document.querySelector('#printOut'), cell, "市住房城乡建设委机关" + self.data.NF + "年" + self.data.YF1 + "月份值班表")
  1038. //设置表格的样式
  1039. var wbout = XLSX.write(wb, {
  1040. bookType: 'xlsx',
  1041. bookSST: false,
  1042. type: 'binary',
  1043. cellStyles: true,
  1044. defaultCellStyle: defaultCellStyle,
  1045. showGridLines: false
  1046. });
  1047. var s2ab = function (s) {
  1048. var buf = new ArrayBuffer(s.length);
  1049. var view = new Uint8Array(buf);
  1050. for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
  1051. return buf;
  1052. };
  1053. try {
  1054. saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), '市住房城乡建设委机关' + self.data.NF + '年' + self.data.YF1 + '月份值班表.et')
  1055. } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
  1056. return wbout
  1057. } else {
  1058. sp.dialog('数据还未加载完成,请稍等...')
  1059. }
  1060. }
  1061. //签写意见编辑状态
  1062. self.opinion = {
  1063. SPYJ: false,
  1064. SPYJImg: false
  1065. }
  1066. self.YJ = {
  1067. SPYJ: [],
  1068. SPYJSTATUS: false
  1069. }
  1070. //下载意见表附件
  1071. self.downLoadOption = function (item) {
  1072. window.open(apiurljs.login + "g2work/files/" + item.FILEPATH.slice(7))
  1073. }
  1074. //删除意见表附件
  1075. self.deleteOptionFile = function (file, str) {
  1076. var data = {
  1077. routeid: file.ROUTEID,
  1078. tableid: "SX_PRZBB",
  1079. colid: str,
  1080. fileid: file.FILEID
  1081. };
  1082. $http.post(apiurljs.login + "g2app/abase/deleteDataOpinionWithRouteAttach", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1083. .success(function (obj) {
  1084. var res = strToJson(s4.decryptData_CBC(obj.data));
  1085. sp.dialoghide();
  1086. if (res.success) {
  1087. if (str != "") {
  1088. self.getOpinion(str);
  1089. } else {
  1090. self.getOpinion1();
  1091. }
  1092. } else {
  1093. sp.dialog("删除失败,请联系管理员!");
  1094. }
  1095. });
  1096. }
  1097. //意见附件(上表)
  1098. self.upload2 = function (str) {
  1099. $('#fileupload-' + str).fileupload({
  1100. url: apiurljs.login + 'g2app/abase/UploadWholeFileWithRouteAttach',
  1101. dataType: 'json',
  1102. beforeSend: function (xhr, data) {
  1103. xhr.setRequestHeader("Authorization", "Bearer " + self.get_AccessToken);
  1104. xhr.setRequestHeader("File-Argument", s4.encryptData_CBC("tablename=SYS_ROUTE_ATTACHLIST,userid=" + self.userId + ",routeinfoid=" + self.routeinfoid
  1105. + ",routeid=" + self.routeid + ",tableid=SX_PRZBB,colid=" + str));
  1106. },
  1107. // 上传完成后的执行逻辑
  1108. done: function (e, data) {
  1109. self.uploading1 = false;
  1110. self.getOpinion(str)
  1111. }
  1112. })
  1113. }
  1114. //签写意见
  1115. self.openOpinion = function (str) {
  1116. if (self.routeinfoid == 0 && self.routeid == 0) {
  1117. sp.dialog("请先保存!")
  1118. return;
  1119. }
  1120. self.opinion[str] = true;
  1121. }
  1122. //修改意见
  1123. self.changeOpinion = function (str) {
  1124. self.data[str] = self.YJ[str][0].OPINION;
  1125. self.opinion[str] = true;
  1126. }
  1127. self.changeOpinionItem = function (str, item) {
  1128. if (item.OPINIONIMAGE != "") {
  1129. self.QianZi(str);
  1130. self.opinion[str + "Img"] = true;
  1131. }
  1132. self.data[str] = item.OPINION;
  1133. self.opinion[str] = true;
  1134. }
  1135. //提交意见
  1136. self.Sopinion = function (str) {
  1137. if (self.opinion[str + "Img"] == true) {
  1138. self.data[str] = $("#" + str + "QZ").find("canvas")[0].toDataURL();
  1139. } else {
  1140. self.data[str] = $("#" + str).val();
  1141. }
  1142. //opiniontype:0上表,99不上表
  1143. var data = {
  1144. cmanid: self.userId,
  1145. routeinfoid: self.routeinfoid,
  1146. routeid: self.routeid,
  1147. tableid: "SX_PRZBB",
  1148. colid: str,
  1149. opiniontype: 0,
  1150. cresult: "",
  1151. opinion: self.opinion[str + "Img"] == false ? self.data[str] : "",
  1152. opinionimage: self.opinion[str + "Img"] == true ? self.data[str] : ""
  1153. }
  1154. $http.post(apiurljs.login + "g2app/abase/saveDataOpinion", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1155. .success(function (obj) {
  1156. var res = strToJson(s4.decryptData_CBC(obj.data));
  1157. if (res.success == true) {
  1158. self.getOpinion(str);
  1159. self.opinion[str] = false;
  1160. self.opinion[str + "Img"] = false;
  1161. self.data[str] = "";
  1162. self.changeFiled(str)
  1163. } else {
  1164. sp.dialog(res.message)
  1165. }
  1166. })
  1167. }
  1168. //删除意见
  1169. self.Dopinion = function (str, item) {
  1170. var data = {
  1171. cmanid: self.userId,
  1172. routeid: self.routeid,
  1173. tableid: "SX_PRZBB",
  1174. colid: str,
  1175. }
  1176. $http.post(apiurljs.login + "g2app/abase/deleteDataOpinion", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1177. .success(function (obj) {
  1178. var res = strToJson(s4.decryptData_CBC(obj.data));
  1179. if (res.success == true) {
  1180. if (str != "") {
  1181. self.getOpinion(str);
  1182. } else {
  1183. self.getOpinion1();
  1184. }
  1185. self.changeFiled(str)
  1186. } else {
  1187. sp.dialog(res.message)
  1188. }
  1189. })
  1190. }
  1191. self.phraseText = "";//添加常用语
  1192. self.phraseList = []//常用语列表
  1193. //获取常用语库
  1194. self.phrase = function (colid) {
  1195. sp.layer("#phrase");
  1196. self.colid = colid;
  1197. self.getPhrase();
  1198. }
  1199. //添加常用语到常用语库
  1200. self.Aphrase = function () {
  1201. if (self.phraseText == "") {
  1202. return;
  1203. }
  1204. var data = {
  1205. cmanid: self.userId,
  1206. tableid: "SX_PRZBB",
  1207. colid: self.colid,
  1208. contents: self.phraseText
  1209. }
  1210. $http.post(apiurljs.login + "g2app/abase/insertDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1211. .success(function (obj) {
  1212. var res = strToJson(s4.decryptData_CBC(obj.data));
  1213. if (res.success == true) {
  1214. self.phraseText = "";
  1215. self.getPhrase();
  1216. } else {
  1217. sp.dialog(res.message)
  1218. }
  1219. })
  1220. }
  1221. //获取常用语库
  1222. self.getPhrase = function () {
  1223. var data = {
  1224. cmanid: self.userId,
  1225. tableid: "SX_PRZBB",
  1226. colid: self.colid
  1227. }
  1228. $http.post(apiurljs.login + "g2app/abase/queryDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1229. .success(function (obj) {
  1230. var res = strToJson(s4.decryptData_CBC(obj.data));
  1231. self.phraseList = res.data;
  1232. self.phraseSelect = self.phraseList[0].CONTENTS;
  1233. })
  1234. }
  1235. //从常用语库删除
  1236. self.Dphrase = function () {
  1237. var id = null;
  1238. $.each(self.phraseList, function (index, item) {
  1239. if (item.CONTENTS == self.phraseSelect) {
  1240. id = item.ID;
  1241. }
  1242. })
  1243. var data = {
  1244. id: id
  1245. }
  1246. $http.post(apiurljs.login + "g2app/abase/deleteDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1247. .success(function (obj) {
  1248. var res = strToJson(s4.decryptData_CBC(obj.data));
  1249. self.getPhrase();
  1250. })
  1251. }
  1252. //常用语确认为意见
  1253. self.btnPhrase = function () {
  1254. if (!self.colid) {
  1255. self.nulla = self.phraseSelect;
  1256. } else {
  1257. self.data[self.colid] = self.phraseSelect;
  1258. }
  1259. sp.layerhide();
  1260. }
  1261. //签字—手写
  1262. self.QianZi = function (str) {
  1263. self.opinion[str + "Img"] = true;
  1264. setTimeout(function () {
  1265. new lineCanvas(str + "QZ")
  1266. }, 1)
  1267. }
  1268. //清除手写
  1269. self.canvasClear = function (str) {
  1270. var cxt = $("#" + str + "QZ").find("canvas")[0].getContext("2d");
  1271. cxt.clearRect(0, 0, $("#" + str + "QZ").find("canvas")[0].width, $("#" + str + "QZ").find("canvas")[0].height)
  1272. }
  1273. //发生修改
  1274. self.changeFiled = function (str) {
  1275. self.filedChange = true;
  1276. }
  1277. //转发
  1278. self.forward = function (obj) {
  1279. self.btnItem = obj;
  1280. if (self.filedChange == true) {
  1281. self.btnSave(1)
  1282. } else {
  1283. $("#forwardWin").attr("src", "../../forward/forward.html?routeid=" + self.routeid + "&routeinfoid=" + self.routeinfoid + "&copyrightid=" + self.copyrightid + "&directionid=" + self.directionid + "&formeditid=" + self.formeditid + "&codefuncbutton=" + obj.CODE + "&directionidtarget=" + obj.DIRECTIONIDTARGET + "&cookie=zhibanmgr")
  1284. sp.layer("#forward")
  1285. }
  1286. }
  1287. //查看流转记录
  1288. self.RouteList = function () {
  1289. if (self.deviceType == "pad") {
  1290. window.location.href = "../../forward/modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1]
  1291. } else {
  1292. sp.openNewWindow("../../forward/modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1], "流程图")
  1293. }
  1294. //var data = {
  1295. // directionid: self.directionid,
  1296. // userid: self.userId,
  1297. // routeid: self.routeid,
  1298. // routeinfoid: self.routeinfoid,
  1299. //}
  1300. //$http.post(apiurljs.login + "g2app/abase/queryDataRouteList", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1301. //.success(function (obj) {
  1302. // var res = strToJson(s4.decryptData_CBC(obj.data));
  1303. // self.routeList = res.data;
  1304. // $.each(self.routeList, function (index, item) {
  1305. // item.mainUser = [];
  1306. // item.copyUsers = [];
  1307. // $.each(item.USERS, function (index1, item1) {
  1308. // if (item1.KIND == 0) {
  1309. // item.mainUser.push(item1.USERNAME);
  1310. // } else {
  1311. // item.copyUsers.push(item1.USERNAME);
  1312. // }
  1313. // })
  1314. // item.mainUser = item.mainUser.join(",");
  1315. // item.copyUsers = item.copyUsers.join(",");
  1316. // })
  1317. // setTimeout(function (item) {
  1318. // sp.layer("#RouteList");
  1319. // }, 100);
  1320. //})
  1321. }
  1322. self.active = null;
  1323. self.activeItem = function (obj,str,n) {
  1324. if (self.active == null) {
  1325. self.active = obj;
  1326. } else {
  1327. self.active = null;
  1328. }
  1329. console.log(obj, str, n)
  1330. }
  1331. self.reSizeRow = function () {
  1332. var bodybox = document.getElementById("bodyDiv");
  1333. var topbox = document.getElementById("topDiv");
  1334. var bottombox = document.getElementById("bottomDiv");
  1335. var line = document.getElementById("lineDiv");
  1336. document.getElementById("lineDiv").addEventListener("mousedown", function (event) {
  1337. $(".mousemove").show()
  1338. var bodyboxH = bodybox.clientHeight;
  1339. var topboxH = topbox.clientHeight;
  1340. var bottomboxH = bottombox.clientHeight;
  1341. //var y = event.pageY - line.offsetTop;
  1342. var y = event.pageY - line.clientHeight;
  1343. document.addEventListener("mousemove", boxMove)
  1344. function boxMove(event) {
  1345. if (topboxH * 1 + (event.pageY - y) * 1 - 36 <= 45) {
  1346. //
  1347. } else if (bottomboxH * 1 - (event.pageY - y) * 1 - 36 <= 45) {
  1348. //
  1349. } else {
  1350. topbox.style.height = topboxH * 1 + (event.pageY - y) * 1 - 36 + "px";
  1351. //topbox.getElementsByTagName("iframe")[0].style.height = topboxH * 1 + (event.pageY - y) * 1 - 45 + "px";
  1352. bottombox.style.height = bodyboxH * 1 - topboxH * 1 - (event.pageY - y) * 1 + 36 + "px";
  1353. bottombox.getElementsByTagName("iframe")[0].style.height = bodyboxH * 1 - topboxH * 1 - (event.pageY - y) * 1 - 25 + "px";
  1354. }
  1355. }
  1356. document.addEventListener("mouseup", function () {
  1357. $(".mousemove").hide()
  1358. document.removeEventListener("mousemove", boxMove)
  1359. })
  1360. })
  1361. }
  1362. ////头部关键字搜索---20230905
  1363. self.headBtnSearchKeyword = "";
  1364. self.headSearchResult = [];
  1365. self.headSearchResult_view = false;
  1366. self.headBtnSearch = function () {
  1367. if (sp.isval(self.headBtnSearchKeyword)) {
  1368. self.headSearchResult = [];
  1369. var data = {
  1370. "url": "/basic/api/StatSelect/selectCodeList",
  1371. "data": { "keyWord": self.headBtnSearchKeyword }
  1372. }
  1373. //console.log(JSON.stringify(data));
  1374. $http.post(apiurljs.login + "g2app/yizhangtu/selectCodeList", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  1375. .success(function (obj) {
  1376. var res = strToJson(s4.decryptData_CBC(obj.data));
  1377. //console.log(JSON.stringify(res.data));
  1378. self.headSearchResult = res.data.build;
  1379. if (sp.isval(self.headSearchResult)) {
  1380. self.headSearchResult_view = true;
  1381. } else {
  1382. self.headSearchResult_view = false;
  1383. }
  1384. })
  1385. } else {
  1386. self.headSearchResult_view = false;
  1387. }
  1388. };
  1389. self.headKeywordPage = function (itemdata) {
  1390. var get_token = localStorage.getItem("main-token");
  1391. var set_url = apiurljs.onePic + "wholeProcessPage/?token=" + get_token + "&name=" + itemdata.name + "&type=" + itemdata.type + "&id=" + itemdata.id;
  1392. $('#attachlist')[0].contentWindow.openTool(set_url, '一张图');
  1393. self.headSearchResult_view = false;
  1394. };
  1395. self.onePic = function () {
  1396. $('#attachlist')[0].contentWindow.openTool(apiurljs.onePic + "wholeProcessPage/?token=" + localStorage.getItem("main-token"), "地图搜索")
  1397. }
  1398. //头部下滚冻结
  1399. $(function () {
  1400. $(".sp-page-center").eq(0).css("max-height", $("#topDiv").height()).css("height", $("#topDiv").height())
  1401. $(".formedit center").css("height", $(".formedit center").next("div").height()).css("line-height", $(".formedit center").next("div").height() / 6 + "px")
  1402. //$("body").bind("scroll", function () {
  1403. // var scrollTop = $("body").scrollTop();
  1404. // if (scrollTop == 0) {
  1405. // $(".FixTop").removeClass("FixTop");
  1406. // }
  1407. // if (scrollTop > 35) {
  1408. // $(".sp-page-title").parents(".sp-box").addClass("FixTop");
  1409. // }
  1410. //});
  1411. //页面高度撑满
  1412. setTimeout(function () {
  1413. if ($(".ibox-content").height() < $(window).height() - 31) {
  1414. $(".ibox-content").css("height", $(window).height() - 31)
  1415. }
  1416. $(".mousemove").css("top", 0).css("left", 0).css("width", $(window).width()).css("height", $(window).height() - 10)
  1417. }, 1)
  1418. })
  1419. }])
  1420. app.directive("repeatFinish", function () {
  1421. return {
  1422. link: function (scope) {
  1423. if (scope.$last == true) {
  1424. setTimeout(function () {
  1425. $(".zb-table").rowspan(1)
  1426. $(".zb-table").rowspan(0)
  1427. }, 10);
  1428. }
  1429. }
  1430. };
  1431. });
  1432. app.filter('trustHtml', function ($sce) {
  1433. return function (input) {
  1434. return $sce.trustAsHtml(input.replace(/\n/g, '<br/>').replace(/\s/g, '&nbsp;'));
  1435. };
  1436. });
  1437. //canvas画布签字
  1438. function lineCanvas(obj) {
  1439. var self = this;
  1440. self.linewidth = 1;
  1441. self.color = "#000000";
  1442. self.background = "#ffffff";
  1443. self.canvas = document.createElement("canvas");
  1444. document.getElementById(obj).appendChild(self.canvas);
  1445. self.cxt = self.canvas.getContext("2d");
  1446. self.canvas.width = document.getElementById(obj).clientWidth;
  1447. self.canvas.height = document.getElementById(obj).scrollHeight;
  1448. self.cxt.fillStyle = self.background;
  1449. self.cxt.fillRect(0, 0, self.canvas.width, self.canvas.width);
  1450. self.cxt.strokeStyle = self.color;
  1451. self.cxt.lineWidth = self.linewidth;
  1452. self.cxt.lineCap = "round";
  1453. //开始绘制
  1454. self.canvas.addEventListener("mousedown", function (e) {
  1455. self.cxt.beginPath();
  1456. self.cxt.lineTo(e.pageX - document.getElementById(obj).offsetLeft, e.pageY - document.getElementById(obj).offsetTop + $(".sp-page-center").scrollTop());
  1457. self.canvas.addEventListener("mousemove", move)
  1458. }.bind(self), false);
  1459. //绘制中
  1460. function move() {
  1461. var e = window.event;
  1462. self.cxt.lineTo(e.pageX - document.getElementById(obj).offsetLeft, e.pageY - document.getElementById(obj).offsetTop + $(".sp-page-center").scrollTop());
  1463. self.cxt.stroke();
  1464. }
  1465. //结束绘制
  1466. self.canvas.addEventListener("mouseup", up)
  1467. function up() {
  1468. self.cxt.closePath();
  1469. self.canvas.removeEventListener("mousemove", move)
  1470. }
  1471. };
  1472. function formate(n) {
  1473. return n * 1 > 9 ? n * 1 : "0" + n * 1;
  1474. }
  1475. function getNum(arr, name) {
  1476. var n = -1;
  1477. $.each(arr,function (index,item) {
  1478. if (item.CNAME == name) {
  1479. n = index
  1480. }
  1481. })
  1482. return n
  1483. }
  1484. function isNull(str) {
  1485. if (str == "" || str == null || str == undefined) {
  1486. return false
  1487. } else {
  1488. return true
  1489. }
  1490. }
  1491. jQuery.fn.rowspan = function (colIdx) { //封装的一个JQuery小插件
  1492. return this.each(function () {
  1493. var that;
  1494. $('tr', this).each(function (row) {
  1495. $('td:eq(' + colIdx + ')', this).filter(':visible').each(function (col) {
  1496. if (that != null && $(this).html() == $(that).html()) {
  1497. var rowspan = $(that).attr("rowSpan");
  1498. if (rowspan == undefined) {
  1499. $(that).attr("rowSpan", 1);
  1500. rowspan = $(that).attr("rowSpan");
  1501. }
  1502. rowspan = Number(rowspan) + 1;
  1503. $(that).attr("rowSpan", rowspan);
  1504. $(this).hide();
  1505. } else {
  1506. that = this;
  1507. }
  1508. });
  1509. });
  1510. });
  1511. }
  1512. function showToggle(e) {
  1513. $(e).children().toggle()
  1514. $(e).next().toggle()
  1515. }
  1516. function toggleYJL(e) {
  1517. if ($(e).children(".fa-angle-double-down").is(":hidden") == true) {
  1518. $("#topDiv").css("height", 160)
  1519. $(e).parent().css("height", 450)
  1520. $("#attachlist").css("height", 200)
  1521. $("#bottomDiv").css("height", "")
  1522. } else {
  1523. $("#topDiv").css("height", 600)
  1524. $(e).parent().css("height", 10)
  1525. }
  1526. $(e).children().toggle()
  1527. }