formedit.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850
  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.directionid = sp.getUrlName("directionid");
  13. self.formeditid = sp.getUrlName("formeditid");
  14. self.mbid = sp.getUrlName("mbid");
  15. self.fjid = sp.getUrlName("fjid");
  16. self.docmode = sp.getUrlName("docmode");
  17. self.dotype = sp.getUrlName("dotype");
  18. self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno");
  19. self.get_lastReturnPage = sp.getUrlName("lastReturnPage");
  20. self.get_type = sp.getUrlName("type");
  21. self.return = "../list.html?lastReturnPageno=" + self.get_lastReturnPageno + "&type=" + self.get_type
  22. self.deviceType = localStorage.getItem("tjJxtGoldenlinkWork-deviceType");
  23. var postCfg = {
  24. headers: {
  25. 'Content-Type': 'application/json',
  26. 'Authorization': "Bearer " + self.get_AccessToken
  27. }
  28. };
  29. self.FormTitle = $.cookie("GlWorkPlatform-SYSNAME");
  30. //初始化右上角按钮
  31. self.buttonList = []
  32. self.readonly = {
  33. RQ: false,
  34. CSDW: false,
  35. GGE: false,
  36. LXFS: false,
  37. SHLD: false,
  38. BT: false,
  39. GJNR: false
  40. }
  41. self.getSwenList = function (n) {
  42. self.SwenList = [];
  43. var data = {
  44. directionid: self.directionid,
  45. userid: self.userId,
  46. routeinfoid: self.routeinfoid,
  47. routeid: self.routeid,
  48. formeditid: ""
  49. }
  50. $http.post(apiurljs.login + "g2app/abase/queryDataLink", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  51. .success(function (obj) {
  52. var res = strToJson(s4.decryptData_CBC(obj.data));
  53. $.each(res.data.LINKS, function (index, item) {
  54. if (item.TEMPFORM.indexOf("formedit.html") > -1) {
  55. self.Title = item.VNAME;
  56. }
  57. if (item.TEMPFORM.indexOf("?docmode") > 0) {
  58. if (item.TEMPFORM.indexOf("attachlist") > -1) {
  59. item.TEMPFORM = item.TEMPFORM + "&dotype=" + self.dotype + "&type=" + self.get_type + "&lastReturnPageno=" + self.get_lastReturnPageno + "&lastReturnPage=" + self.get_lastReturnPage;
  60. } else {
  61. item.TEMPFORM = "../" + item.TEMPFORM + "&dotype=" + self.dotype + "&type=" + self.get_type + "&lastReturnPageno=" + self.get_lastReturnPageno + "&lastReturnPage=" + self.get_lastReturnPage;
  62. }
  63. } else {
  64. item.TEMPFORM = "#";
  65. }
  66. self.SwenList.push(item)
  67. })
  68. self.SwenList.push({
  69. VNAME: "流程图",
  70. DIRECTIONID: self.SwenList[0].DIRECTIONID,
  71. TEMPFORM: "modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1]
  72. })
  73. if (n == 0) {
  74. self.getDpList()
  75. } else {
  76. self.getData()
  77. }
  78. })
  79. }
  80. self.getSwenList(0)
  81. self.getDpList = function () {
  82. var data = {
  83. unitid: "AA"
  84. }
  85. $http.post(apiurljs.login + "g2app/dataabase/querySectByCode", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  86. .success(function (obj) {
  87. var res = strToJson(s4.decryptData_CBC(obj.data));
  88. self.dpList = [];
  89. res.data.forEach(function (item) {
  90. if (item.CHILD_DATA.length == 0) {
  91. self.dpList.push(item)
  92. } else {
  93. item.CHILD_DATA.forEach(function (item1) {
  94. if (item1.CHILD_DATA.length == 0) {
  95. self.dpList.push(item1)
  96. } else {
  97. item1.CHILD_DATA.forEach(function (item2) {
  98. if (item2.CHILD_DATA.length == 0) {
  99. self.dpList.push(item2)
  100. }
  101. })
  102. }
  103. })
  104. }
  105. })
  106. self.dpList.forEach(function (item) {
  107. item.checked = false;
  108. })
  109. self.DpList = {
  110. CSDW: JSON.parse(JSON.stringify(self.dpList))
  111. }
  112. self.AllCheckedDp = {};
  113. self.DpLength = {};
  114. self.selectDpList = {};
  115. self.getUserList()
  116. })
  117. }
  118. self.getUserList = function () {
  119. $http.post(apiurljs.login + "g2app/dataabase/getDpList", { data: s4.encryptData_CBC("") }, postCfg)
  120. .success(function (obj) {
  121. var res = strToJson(s4.decryptData_CBC(obj.data));
  122. self.userList = res.data;
  123. self.userList.forEach(function (item) {
  124. item.checked = false;
  125. item.USER.forEach(function (item1) {
  126. item1.checked = false;
  127. item1.USHOWNAME1 = item1.USHOWNAME.length > 3 ? item1.USHOWNAME.slice(0, 3) + "..." : item1.USHOWNAME;
  128. item1.USHOWNAME2 = item1.USHOWNAME.length > 10 ? item1.USHOWNAME.slice(0, 10) + "..." : item1.USHOWNAME
  129. })
  130. })
  131. self.UserList = {
  132. SHLD: JSON.parse(JSON.stringify(self.userList))
  133. };
  134. self.AllChecked = {};
  135. self.UserLength = {};
  136. self.selectList = {};
  137. self.getData()
  138. })
  139. }
  140. //获取数据
  141. self.getData = function () {
  142. var data = {
  143. ckey: "SX_XXBSD",
  144. id: 0,
  145. directionid: self.directionid,
  146. formeditid: self.formeditid,
  147. routeid: self.routeid,
  148. routeinfoid: self.routeinfoid
  149. }
  150. $http.post(apiurljs.login + "g2app/abase/queryData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  151. .success(function (obj) {
  152. var res = strToJson(s4.decryptData_CBC(obj.data));
  153. self.data = {
  154. ID: res.data.SX_XXBSD.ID,
  155. APPCODE: res.data.SX_XXBSD.APPCODE,
  156. RQ: res.data.SX_XXBSD.RQ == "" ? sp.format(sp.getLocalDate()) : sp.format(res.data.SX_XXBSD.RQ),
  157. CSDW: res.data.SX_XXBSD.CSDW == "" ? "" : res.data.SX_XXBSD.CSDW,
  158. GGE: res.data.SX_XXBSD.GGE == "" ? "" : res.data.SX_XXBSD.GGE,
  159. LXFS: res.data.SX_XXBSD.LXFS == "" ? "" : res.data.SX_XXBSD.LXFS,
  160. SHLD: res.data.SX_XXBSD.SHLD == "" ? "" : res.data.SX_XXBSD.SHLD,
  161. BT: res.data.SX_XXBSD.BT == "" ? "" : res.data.SX_XXBSD.BT,
  162. GJNR: res.data.SX_XXBSD.GJNR == "" ? "" : res.data.SX_XXBSD.GJNR
  163. }
  164. self.readonly = {
  165. RQ: res.data.SX_XXBSD["RQ.EREADONLY"] == "true",
  166. CSDW: res.data.SX_XXBSD["CSDW.EREADONLY"] == "true",
  167. GGE: res.data.SX_XXBSD["GGE.EREADONLY"] == "true",
  168. LXFS: res.data.SX_XXBSD["LXFS.EREADONLY"] == "true",
  169. SHLD: res.data.SX_XXBSD["SHLD.EREADONLY"] == "true",
  170. BT: res.data.SX_XXBSD["BT.EREADONLY"] == "true",
  171. GJNR: res.data.SX_XXBSD["GJNR.EREADONLY"] == "true"
  172. }
  173. if (self.data.ID == 0) {
  174. self.filedChange = true;
  175. } else {
  176. self.filedChange = false;
  177. }
  178. self.buttonList = res.data["SX_XXBSD.FUNCLIST"];
  179. var n = {}, all = {};
  180. for (var i in self.UserList) {
  181. self.AllChecked[i] = false;
  182. self.UserLength[i] = 0;
  183. self.selectList[i] = []
  184. n[i] = [];
  185. all[i] = 0;
  186. $.each(self.UserList[i], function (index, item) {
  187. n[i].push(0)
  188. $.each(item.USER, function (index1, item1) {
  189. self.UserLength[i]++
  190. if (self.data.SHLD.indexOf(item1.USHOWNAME) != -1 && i == "SHLD") {
  191. n[i][index]++;
  192. item1.checked = true;
  193. self.selectList[i].push(item1);
  194. }
  195. })
  196. if (n[i][index] == item.USER.length && n[i][index] != 0) {
  197. item.checked = true;
  198. all[i]++;
  199. } else {
  200. item.checked == false;
  201. }
  202. })
  203. if (all[i] == self.UserList[i].length) {
  204. self.AllChecked[i] = true;
  205. } else {
  206. self.AllChecked[i] = false;
  207. }
  208. }
  209. for (var i in self.DpList) {
  210. self.AllCheckedDp[i] = false;
  211. self.DpLength[i] = 0;
  212. self.selectDpList[i] = []
  213. all[i] = 0;
  214. $.each(self.DpList[i], function (index, item) {
  215. self.DpLength[i]++
  216. if (self.data.CSDW.indexOf(item.SECTION) != -1 && i == "CSDW") {
  217. all[i]++;
  218. item.checked = true;
  219. self.selectDpList[i].push(item);
  220. }
  221. })
  222. if (all[i] == self.DpList[i].length) {
  223. self.AllCheckedDp[i] = true;
  224. } else {
  225. self.AllCheckedDp[i] = false;
  226. }
  227. }
  228. //self.getOpinion('CSFZRYJ')
  229. //self.getOpinion('FGWLDYJ')
  230. //self.getOpinion('WZYLDYJ')
  231. //watermark({
  232. // "watermarl_element": "app",
  233. // "watermark_txt": "测试水印内容",
  234. // "watermark_width": 150,
  235. // "watermark_height": 110,
  236. // "watermark_angle": 345
  237. //})
  238. })
  239. }
  240. //获取意见
  241. self.getOpinion = function (str) {
  242. var data = {
  243. cmanid: self.userId,
  244. routeinfoid: self.routeinfoid,
  245. routeid: "",//self.routeid,
  246. tableid: "SX_XXBSD",
  247. colid: str,
  248. opiniontype: 0,
  249. orderbycol: "CDATE desc"
  250. }
  251. $http.post(apiurljs.login + "g2app/abase/queryDataOpinionWithRouteAttach", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  252. .success(function (obj) {
  253. var res = strToJson(s4.decryptData_CBC(obj.data));
  254. if (res.success == true) {
  255. self.YJ[str] = res.data;
  256. self.YJ[str + "STATUS"] = false;
  257. self.YJ[str].forEach(function (item) {
  258. item.CDATE = sp.datefmt("yyyy-MM-dd HH:mm", item.CDATE);
  259. if (item.ROUTEID == self.routeid) {
  260. self.YJ[str + "STATUS"] = true;
  261. }
  262. })
  263. } else {
  264. sp.dialog(res.message)
  265. }
  266. })
  267. }
  268. //判断页面字段是否只读readonly、是否隐藏show
  269. self.hide = function (type, field) {
  270. if (self.dotype == 0 && type == "readonly") {
  271. return true;
  272. } else {
  273. if (self[type][field] == true) {
  274. return true;
  275. } else {
  276. return false;
  277. }
  278. }
  279. }
  280. //右上角按钮调用方法
  281. self.btnEvent = function (item) {
  282. switch (item.CODE) {
  283. case "SAVEITEM": self.btnSave(0); break;
  284. case "PRINTITEM": self.btnPrint(); break;
  285. case "MEETITEM": self.Meet(); break;
  286. case "SENDLOG": self.RouteList(); break;
  287. default: self.forward(item); break;
  288. }
  289. }
  290. self.openDpList = function (str) {
  291. if (self.hide("readonly", str) == true) {
  292. return
  293. } else {
  294. self.filed = str;
  295. //self.AllCheckedDp = false;
  296. sp.layer("#DpList")
  297. $("#DpList .sp-page").eq(0).scrollTop(0);
  298. }
  299. }
  300. self.checkAllDp = function () {
  301. self.AllCheckedDp[self.filed] = !self.AllCheckedDp[self.filed];
  302. $.each(self.DpList[self.filed], function (index, item) {
  303. item.checked = self.AllCheckedDp[self.filed];
  304. })
  305. self.submitDpList(1)
  306. }
  307. self.checkDpItem = function (item) {
  308. item.checked = !item.checked;
  309. var n = 0;
  310. $.each(self.DpList[self.filed], function (index, item) {
  311. if (item.checked == true) {
  312. n++
  313. }
  314. })
  315. if (n == self.DpList[self.filed].length) {
  316. self.AllCheckedDp[self.filed] = true;
  317. } else {
  318. self.AllCheckedDp[self.filed] = false;
  319. }
  320. self.submitDpList(1)
  321. }
  322. self.submitDpList = function (n) {
  323. var AllCheckedLength1 = 0;
  324. self.selectDpList[self.filed] = [];
  325. $.each(self.DpList[self.filed], function (index, item) {
  326. if (item.checked == true) {
  327. AllCheckedLength1++;
  328. self.selectDpList[self.filed].push(item)
  329. }
  330. })
  331. self.data[self.filed] = self.selectDpList[self.filed].map(function (item) {
  332. return item.SECTION
  333. }).join(",")
  334. if (self.filed == "ZBCS") {
  335. self.data.ZBCSCODE = self.selectDpList[self.filed].map(function (item) {
  336. return item.DEPCODE
  337. }).join(",")
  338. }
  339. self.AllCheckedDp[self.filed] = AllCheckedLength1 == self.DpLength[self.filed];
  340. self.changeFiled(self.filed)
  341. if (n == 0) {
  342. sp.layerhide();
  343. }
  344. }
  345. self.openUserList = function (str) {
  346. if (self.hide("readonly", str) == true) {
  347. return
  348. } else {
  349. self.filed = str;
  350. //self.AllChecked[self.filed] = false;
  351. sp.layer("#userList")
  352. $("#userList .sp-page").eq(0).scrollTop(0);
  353. }
  354. }
  355. self.checkAllUser = function () {
  356. self.AllChecked[self.filed] = !self.AllChecked[self.filed];
  357. $.each(self.UserList[self.filed], function (index, item) {
  358. item.checked = self.AllChecked[self.filed];
  359. $.each(item.USER, function (index1, item1) {
  360. item1.checked = self.AllChecked[self.filed];
  361. })
  362. })
  363. self.submitUserList(1)
  364. }
  365. self.checkUserItem = function (item) {
  366. item.checked = !item.checked;
  367. $.each(item.USER, function (index, item1) {
  368. item1.checked = item.checked;
  369. })
  370. var n = 0;
  371. $.each(self.UserList[self.filed], function (index, item) {
  372. if (item.checked == true) {
  373. n++
  374. }
  375. })
  376. if (n == self.UserList[self.filed].length) {
  377. self.AllChecked[self.filed] = true;
  378. } else {
  379. self.AllChecked[self.filed] = false;
  380. }
  381. self.submitUserList(1)
  382. }
  383. self.checkUser = function (item) {
  384. item.checked = !item.checked;
  385. var n = [], all = 0;
  386. $.each(self.UserList[self.filed], function (x, y) {
  387. n.push(0);
  388. $.each(y.USER, function (x1, y1) {
  389. if (y1.checked == true) {
  390. n[x]++
  391. }
  392. })
  393. if (n[x] == y.USER.length && n[x] != 0) {
  394. y.checked = true;
  395. all++
  396. } else {
  397. y.checked = false;
  398. }
  399. })
  400. if (all == self.UserList[self.filed].length) {
  401. self.AllChecked[self.filed] = true;
  402. } else {
  403. self.AllChecked[self.filed] = false;
  404. }
  405. self.submitUserList(1)
  406. }
  407. self.submitUserList = function (n) {
  408. var AllCheckedLength = 0;
  409. self.selectList[self.filed] = [];
  410. $.each(self.UserList[self.filed], function (index, item) {
  411. $.each(item.USER, function (index1, item1) {
  412. if (item1.checked == true) {
  413. AllCheckedLength++;
  414. self.selectList[self.filed].push(item1)
  415. }
  416. })
  417. })
  418. self.data[self.filed] = self.selectList[self.filed].map(function (item) {
  419. return item.USHOWNAME
  420. }).join(",")
  421. if (self.data[self.filed + "ID"] != undefined) {
  422. self.data[self.filed + "ID"] = self.selectList[self.filed].map(function (item) {
  423. return item.USERID
  424. }).join(",")
  425. }
  426. self.AllChecked[self.filed] = AllCheckedLength == self.UserLength[self.filed];
  427. self.changeFiled(self.filed)
  428. if (n == 0) {
  429. sp.layerhide();
  430. }
  431. }
  432. //保存提交
  433. self.btnSave = function (n) {
  434. if (spngvld.submit(".sp-page-center")) {
  435. var dataArray = [];
  436. dataArray.push(self.data);
  437. var data = {
  438. ckey: "SX_XXBSD",
  439. id: self.data.ID,
  440. routeid: self.routeid,
  441. routeinfoid: self.routeinfoid,
  442. routeinfotitle: self.data.BT,
  443. directionid: self.directionid,
  444. formeditid: self.formeditid,
  445. data: JSON.stringify(dataArray)
  446. }
  447. $http.post(apiurljs.login + "g2app/abase/saveData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  448. .success(function (obj) {
  449. var res = strToJson(s4.decryptData_CBC(obj.data));
  450. if (res.code == 0) {
  451. self.data.ID = res.data.ID;
  452. self.routeid = res.data.ROUTEID;
  453. self.routeinfoid = res.data.ROUTEINFOID;
  454. self.filedChange = false;
  455. if (n == 0) {
  456. sp.dialog("保存成功!");
  457. $timeout(function () {
  458. sp.dialoghide()
  459. }, 1500)
  460. self.getSwenList(1)
  461. } else if (n == 1) {
  462. self.forward(self.btnItem);
  463. } else {
  464. self.sendAll();
  465. }
  466. } else {
  467. sp.dialog(res.message)
  468. }
  469. })
  470. }
  471. }
  472. //打印
  473. self.btnPrint = function () {
  474. // 创建隐藏的可下载链接
  475. var eleLink = document.createElement('a');
  476. eleLink.download = "";
  477. eleLink.style.display = 'none';
  478. eleLink.href = apiurljs.login + "g2app/shouwen/PrintWord?data=" + encodeURIComponent(s4.encryptData_CBC("templatefilename=XZGZDT.ftl&tablename=SX_XXBSD&outfilepath=/tmp/事项督办延时.wps&prtdate=RIQI&routeinfoid=" + self.routeinfoid));
  479. // 触发点击
  480. document.body.appendChild(eleLink);
  481. eleLink.click();
  482. // 然后移除
  483. document.body.removeChild(eleLink);
  484. //window.open(apiurljs.login + "g2app/shouwen/PrintWord?templatefilename=shouwen.ftl&tablename=SX_XXBSD&outfilepath=" + apiurljs.print + "&routeinfoid=" + self.routeinfoid)
  485. }
  486. //签写意见编辑状态
  487. self.opinion = {
  488. CSFZRYJ: false,
  489. CSFZRYJImg: false,
  490. FGWLDYJ: false,
  491. FGWLDYJImg: false,
  492. WZYLDYJ: false,
  493. WZYLDYJImg: false
  494. }
  495. self.YJ = {
  496. CSFZRYJ: [],
  497. CSFZRYJSTATUS: false,
  498. FGWLDYJ: [],
  499. FGWLDYJSTATUS: false,
  500. WZYLDYJ: [],
  501. WZYLDYJSTATUS: false
  502. }
  503. //下载意见表附件
  504. self.downLoadOption = function (item) {
  505. window.open(apiurljs.login + "g2work/files/" + item.FILEPATH.slice(7))
  506. }
  507. //删除意见表附件
  508. self.deleteOptionFile = function (file, str) {
  509. var data = {
  510. routeid: file.ROUTEID,
  511. tableid: "SX_XXBSD",
  512. colid: str,
  513. fileid: file.FILEID
  514. };
  515. $http.post(apiurljs.login + "g2app/abase/deleteDataOpinionWithRouteAttach", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  516. .success(function (obj) {
  517. var res = strToJson(s4.decryptData_CBC(obj.data));
  518. sp.dialoghide();
  519. if (res.success) {
  520. self.getOpinion(str);
  521. } else {
  522. sp.dialog("删除失败,请联系管理员!");
  523. }
  524. });
  525. }
  526. //意见附件(上表)
  527. self.upload2 = function (str) {
  528. $('#fileupload-' + str).fileupload({
  529. url: apiurljs.login + 'g2app/abase/UploadWholeFileWithRouteAttach',
  530. dataType: 'json',
  531. beforeSend: function (xhr, data) {
  532. xhr.setRequestHeader("Authorization", "Bearer " + self.get_AccessToken);
  533. xhr.setRequestHeader("File-Argument", s4.encryptData_CBC("tablename=SYS_ROUTE_ATTACHLIST,userid=" + self.userId + ",routeinfoid=" + self.routeinfoid
  534. + ",routeid=" + self.routeid + ",tableid=SX_XXBSD,colid=" + str));
  535. },
  536. // 上传完成后的执行逻辑
  537. done: function (e, data) {
  538. self.uploading1 = false;
  539. self.getOpinion(str)
  540. }
  541. })
  542. }
  543. //签写意见
  544. self.openOpinion = function (str) {
  545. if (self.routeinfoid == 0 && self.routeid == 0) {
  546. sp.dialog("请先保存!")
  547. return;
  548. }
  549. self.opinion[str] = true;
  550. }
  551. //修改意见
  552. self.changeOpinion = function (str) {
  553. self.data[str] = self.YJ[str][0].OPINION;
  554. self.opinion[str] = true;
  555. }
  556. self.changeOpinionItem = function (str, item) {
  557. if (item.OPINIONIMAGE != "") {
  558. self.QianZi(str);
  559. self.opinion[str + "Img"] = true;
  560. }
  561. self.data[str] = item.OPINION;
  562. self.opinion[str] = true;
  563. }
  564. //提交意见
  565. self.Sopinion = function (str) {
  566. if (self.opinion[str + "Img"] == true) {
  567. self.data[str] = $("#" + str + "QZ").find("canvas")[0].toDataURL();
  568. } else {
  569. self.data[str] = $("#" + str).val();
  570. }
  571. var data = {
  572. cmanid: self.userId,
  573. routeinfoid: self.routeinfoid,
  574. routeid: self.routeid,
  575. tableid: "SX_XXBSD",
  576. colid: str,
  577. opiniontype: 0,
  578. cresult: "",
  579. opinion: self.opinion[str + "Img"] == false ? self.data[str] : "",
  580. opinionimage: self.opinion[str + "Img"] == true ? self.data[str] : ""
  581. }
  582. $http.post(apiurljs.login + "g2app/abase/saveDataOpinion", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  583. .success(function (obj) {
  584. var res = strToJson(s4.decryptData_CBC(obj.data));
  585. if (res.success == true) {
  586. sp.dialog("保存成功!");
  587. self.getOpinion(str);
  588. self.opinion[str] = false;
  589. self.opinion[str + "Img"] = false;
  590. self.data[str] = "";
  591. self.changeFiled(str)
  592. } else {
  593. sp.dialog(res.message)
  594. }
  595. })
  596. }
  597. //删除意见
  598. self.Dopinion = function (str, item) {
  599. var data = {
  600. cmanid: self.userId,
  601. routeid: self.routeid,
  602. tableid: "SX_XXBSD",
  603. colid: str,
  604. }
  605. $http.post(apiurljs.login + "g2app/abase/deleteDataOpinion", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  606. .success(function (obj) {
  607. var res = strToJson(s4.decryptData_CBC(obj.data));
  608. if (res.success == true) {
  609. self.getOpinion(str);
  610. self.changeFiled(str)
  611. } else {
  612. sp.dialog(res.message)
  613. }
  614. })
  615. }
  616. self.phraseText = "";//添加常用语
  617. self.phraseList = []//常用语列表
  618. //获取常用语库
  619. self.phrase = function (colid) {
  620. sp.layer("#phrase");
  621. self.colid = colid;
  622. self.getPhrase();
  623. }
  624. //添加常用语到常用语库
  625. self.Aphrase = function () {
  626. if (self.phraseText == "") {
  627. return;
  628. }
  629. var data = {
  630. cmanid: self.userId,
  631. tableid: "SX_XXBSD",
  632. colid: self.colid,
  633. contents: self.phraseText
  634. }
  635. $http.post(apiurljs.login + "g2app/abase/insertDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  636. .success(function (obj) {
  637. var res = strToJson(s4.decryptData_CBC(obj.data));
  638. if (res.success == true) {
  639. self.phraseText = "";
  640. self.getPhrase();
  641. } else {
  642. sp.dialog(res.message)
  643. }
  644. })
  645. }
  646. //获取常用语库
  647. self.getPhrase = function () {
  648. var data = {
  649. cmanid: self.userId,
  650. tableid: "SX_XXBSD",
  651. colid: self.colid
  652. }
  653. $http.post(apiurljs.login + "g2app/abase/queryDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  654. .success(function (obj) {
  655. var res = strToJson(s4.decryptData_CBC(obj.data));
  656. self.phraseList = res.data;
  657. self.phraseSelect = self.phraseList[0].CONTENTS;
  658. })
  659. }
  660. //从常用语库删除
  661. self.Dphrase = function () {
  662. var id = null;
  663. $.each(self.phraseList, function (index, item) {
  664. if (item.CONTENTS == self.phraseSelect) {
  665. id = item.ID;
  666. }
  667. })
  668. var data = {
  669. id: id
  670. }
  671. $http.post(apiurljs.login + "g2app/abase/deleteDataPatterns", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  672. .success(function (obj) {
  673. var res = strToJson(s4.decryptData_CBC(obj.data));
  674. self.getPhrase();
  675. })
  676. }
  677. //常用语确认为意见
  678. self.btnPhrase = function () {
  679. if (!self.colid) {
  680. self.nulla = self.phraseSelect;
  681. } else {
  682. self.data[self.colid] = self.phraseSelect;
  683. }
  684. sp.layerhide();
  685. }
  686. //签字—手写
  687. self.QianZi = function (str) {
  688. self.opinion[str + "Img"] = true;
  689. $timeout(function () {
  690. new lineCanvas(str + "QZ")
  691. }, 1)
  692. }
  693. //清除手写
  694. self.canvasClear = function (str) {
  695. var cxt = $("#" + str + "QZ").find("canvas")[0].getContext("2d");
  696. cxt.clearRect(0, 0, $("#" + str + "QZ").find("canvas")[0].width, $("#" + str + "QZ").find("canvas")[0].height)
  697. }
  698. //发生修改
  699. self.changeFiled = function (str) {
  700. self.filedChange = true;
  701. }
  702. //转发
  703. self.forward = function (obj) {
  704. self.btnItem = obj;
  705. if (self.filedChange == true) {
  706. self.btnSave(1)
  707. } else {
  708. $("#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=xinxibsbg")
  709. sp.layer("#forward")
  710. }
  711. }
  712. //查看流转记录
  713. self.RouteList = function () {
  714. if (self.deviceType == "pad") {
  715. window.location.href = "../../forward/modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1]
  716. } else {
  717. sp.openNewWindow("../../forward/modeler_read.html?" + self.SwenList[0].TEMPFORM.split("?")[1], "流程图")
  718. }
  719. //var data = {
  720. // directionid: self.directionid,
  721. // userid: self.userId,
  722. // routeid: self.routeid,
  723. // routeinfoid: self.routeinfoid,
  724. //}
  725. //$http.post(apiurljs.login + "g2app/abase/queryDataRouteList", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  726. //.success(function (obj) {
  727. // var res = strToJson(s4.decryptData_CBC(obj.data));
  728. // self.routeList = res.data;
  729. // $.each(self.routeList, function (index, item) {
  730. // item.mainUser = [];
  731. // item.copyUsers = [];
  732. // $.each(item.USERS, function (index1, item1) {
  733. // if (item1.KIND == 0) {
  734. // item.mainUser.push(item1.USERNAME);
  735. // } else {
  736. // item.copyUsers.push(item1.USERNAME);
  737. // }
  738. // })
  739. // item.mainUser = item.mainUser.join(",");
  740. // item.copyUsers = item.copyUsers.join(",");
  741. // })
  742. // setTimeout(function (item) {
  743. // sp.layer("#RouteList");
  744. // }, 100);
  745. //})
  746. }
  747. //头部下滚冻结
  748. $(function () {
  749. $(".sp-page-center").css("max-height", $(window).height() - 58).css("height", $(window).height() - 58)
  750. //$("body").bind("scroll", function () {
  751. // var scrollTop = $("body").scrollTop();
  752. // if (scrollTop == 0) {
  753. // $(".FixTop").removeClass("FixTop");
  754. // }
  755. // if (scrollTop > 35) {
  756. // $(".sp-page-title").parents(".sp-box").addClass("FixTop");
  757. // }
  758. //});
  759. //页面高度撑满
  760. setTimeout(function () {
  761. if ($(".ibox-content").height() < $(window).height() - 31) {
  762. $(".ibox-content").css("height", $(window).height() - 31)
  763. }
  764. }, 1)
  765. })
  766. }])
  767. app.filter('trustHtml', function ($sce) {
  768. return function (input) {
  769. return $sce.trustAsHtml(input.replace(/\n/g, '<br/>').replace(/\s/g, '&nbsp;'));
  770. };
  771. });
  772. //canvas画布签字
  773. function lineCanvas(obj) {
  774. var self = this;
  775. self.linewidth = 1;
  776. self.color = "#000000";
  777. self.background = "#ffffff";
  778. self.canvas = document.createElement("canvas");
  779. document.getElementById(obj).appendChild(self.canvas);
  780. self.cxt = self.canvas.getContext("2d");
  781. self.canvas.width = document.getElementById(obj).clientWidth;
  782. self.canvas.height = document.getElementById(obj).scrollHeight;
  783. self.cxt.fillStyle = self.background;
  784. self.cxt.fillRect(0, 0, self.canvas.width, self.canvas.width);
  785. self.cxt.strokeStyle = self.color;
  786. self.cxt.lineWidth = self.linewidth;
  787. self.cxt.lineCap = "round";
  788. //开始绘制
  789. self.canvas.addEventListener("mousedown", function (e) {
  790. self.cxt.beginPath();
  791. self.cxt.lineTo(e.pageX - document.getElementById(obj).offsetLeft - 25, e.pageY - document.getElementById(obj).offsetTop + $(".sp-page-center").scrollTop() - 25);
  792. self.canvas.addEventListener("mousemove", move)
  793. }.bind(self), false);
  794. //绘制中
  795. function move() {
  796. var e = window.event;
  797. self.cxt.lineTo(e.pageX - document.getElementById(obj).offsetLeft - 25, e.pageY - document.getElementById(obj).offsetTop + $(".sp-page-center").scrollTop() - 25);
  798. self.cxt.stroke();
  799. }
  800. //结束绘制
  801. self.canvas.addEventListener("mouseup", up)
  802. function up() {
  803. self.cxt.closePath();
  804. self.canvas.removeEventListener("mousemove", move)
  805. }
  806. };
  807. //返回
  808. function getNextDate(time, n) {
  809. var date = "";
  810. $.ajax({
  811. url: apiurljs.login + "g2app/dataabase/getTheoryDate",
  812. type: 'post',
  813. async: false,
  814. contentType: "application/json",
  815. beforeSend: function (request) {
  816. request.setRequestHeader("Authorization", "Bearer " + localStorage.getItem("GlWorkPlatform-AccessToken"));
  817. },
  818. data: JSON.stringify({
  819. data: s4.encryptData_CBC(JSON.stringify({
  820. startdate: time + " 00:00:00",
  821. yqday: n
  822. }))
  823. }),
  824. dataType: "json",
  825. success: function (obj) {
  826. var res = strToJson(s4.decryptData_CBC(obj.data));
  827. date = sp.format(res.data);
  828. }
  829. })
  830. return date
  831. }