apply-clients 7.1.36 → 7.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/android.html +0 -4
  2. package/dist-android/index.html +3 -0
  3. package/dist-android/static/.gitkeep +0 -0
  4. package/dist-android/static/0.50054aa998577d450157.js +2 -0
  5. package/dist-android/static/0.js +2 -0
  6. package/dist-android/static/0.js.map +1 -0
  7. package/dist-android/static/1.0b685d8dcbf4f3a8a5b2.js +1 -0
  8. package/dist-android/static/1.js +2 -0
  9. package/dist-android/static/1.js.map +1 -0
  10. package/dist-android/static/10.2a698c421c0ff5f57336.js +2 -0
  11. package/dist-android/static/10.js +2 -0
  12. package/dist-android/static/10.js.map +1 -0
  13. package/dist-android/static/100.js +2 -0
  14. package/dist-android/static/100.js.map +1 -0
  15. package/dist-android/static/11.75a39568e320abbddcc2.js +2 -0
  16. package/dist-android/static/11.js +2 -0
  17. package/dist-android/static/11.js.map +1 -0
  18. package/dist-android/static/12.4ac0c584da492acc599d.js +1 -0
  19. package/dist-android/static/12.js +2 -0
  20. package/dist-android/static/12.js.map +1 -0
  21. package/dist-android/static/13.5471bac3b39798923a79.js +1 -0
  22. package/dist-android/static/13.js +2 -0
  23. package/dist-android/static/13.js.map +1 -0
  24. package/dist-android/static/14.ee274728fdeb5107c357.js +1 -0
  25. package/dist-android/static/14.js +2 -0
  26. package/dist-android/static/14.js.map +1 -0
  27. package/dist-android/static/15.a1dc233c1804ede2ba87.js +1 -0
  28. package/dist-android/static/15.js +2 -0
  29. package/dist-android/static/15.js.map +1 -0
  30. package/dist-android/static/16.5081ea8a90d0dacbc748.js +1 -0
  31. package/dist-android/static/16.js +2 -0
  32. package/dist-android/static/16.js.map +1 -0
  33. package/dist-android/static/17.5b5184c9a9337a88d4f9.js +1 -0
  34. package/dist-android/static/17.js +2 -0
  35. package/dist-android/static/17.js.map +1 -0
  36. package/dist-android/static/18.0c99e5cb0de0f76008f6.js +1 -0
  37. package/dist-android/static/18.js +2 -0
  38. package/dist-android/static/18.js.map +1 -0
  39. package/dist-android/static/19.b50c8bf85b8e7fb27e2a.js +1 -0
  40. package/dist-android/static/19.js +2 -0
  41. package/dist-android/static/19.js.map +1 -0
  42. package/dist-android/static/2.16718caad0da13b463a3.js +1 -0
  43. package/dist-android/static/2.js +2 -0
  44. package/dist-android/static/2.js.map +1 -0
  45. package/dist-android/static/20.8f6767f58df1fde18784.js +1 -0
  46. package/dist-android/static/20.js +2 -0
  47. package/dist-android/static/20.js.map +1 -0
  48. package/dist-android/static/21.026f5cbfd90d70d8dd3a.js +1 -0
  49. package/dist-android/static/21.js +2 -0
  50. package/dist-android/static/21.js.map +1 -0
  51. package/dist-android/static/22.4631f8885615e9b6ad6e.js +1 -0
  52. package/dist-android/static/22.js +2 -0
  53. package/dist-android/static/22.js.map +1 -0
  54. package/dist-android/static/23.437b569f91863452daeb.js +1 -0
  55. package/dist-android/static/23.js +2 -0
  56. package/dist-android/static/23.js.map +1 -0
  57. package/dist-android/static/24.f1310985a29496bc5fd8.js +1 -0
  58. package/dist-android/static/24.js +2 -0
  59. package/dist-android/static/24.js.map +1 -0
  60. package/dist-android/static/25.b6dcf8c6d26f44035506.js +1 -0
  61. package/dist-android/static/25.js +2 -0
  62. package/dist-android/static/25.js.map +1 -0
  63. package/dist-android/static/26.js +2 -0
  64. package/dist-android/static/26.js.map +1 -0
  65. package/dist-android/static/27.2185c9e2e7116302e1e1.js +13 -0
  66. package/dist-android/static/27.js +2 -0
  67. package/dist-android/static/27.js.map +1 -0
  68. package/dist-android/static/28.b429eaf351968226c395.js +3 -0
  69. package/dist-android/static/28.js +2 -0
  70. package/dist-android/static/28.js.map +1 -0
  71. package/dist-android/static/29.aed6b18ccda9ca3748ce.js +3 -0
  72. package/dist-android/static/29.js +2 -0
  73. package/dist-android/static/29.js.map +1 -0
  74. package/dist-android/static/3.761de5413a2ed045ab10.js +1 -0
  75. package/dist-android/static/3.js +2 -0
  76. package/dist-android/static/3.js.map +1 -0
  77. package/dist-android/static/30.567f5fbffc0601227294.js +2 -0
  78. package/dist-android/static/30.js +2 -0
  79. package/dist-android/static/30.js.map +1 -0
  80. package/dist-android/static/31.179f87c71c11fd562feb.js +1 -0
  81. package/dist-android/static/31.js +2 -0
  82. package/dist-android/static/31.js.map +1 -0
  83. package/dist-android/static/32.8d45d3f6c5e874582cff.js +1 -0
  84. package/dist-android/static/32.js +2 -0
  85. package/dist-android/static/32.js.map +1 -0
  86. package/dist-android/static/33.32fd8d2f4e6e7b065a5c.js +1 -0
  87. package/dist-android/static/33.js +2 -0
  88. package/dist-android/static/33.js.map +1 -0
  89. package/dist-android/static/34.df47f9984baec20bdf5b.js +1 -0
  90. package/dist-android/static/34.js +2 -0
  91. package/dist-android/static/34.js.map +1 -0
  92. package/dist-android/static/35.5883200f073b546cb1a3.js +1 -0
  93. package/dist-android/static/35.js +2 -0
  94. package/dist-android/static/35.js.map +1 -0
  95. package/dist-android/static/36.477f89087e507526163f.js +1 -0
  96. package/dist-android/static/36.js +2 -0
  97. package/dist-android/static/36.js.map +1 -0
  98. package/dist-android/static/37.b82438692bca848519f6.js +1 -0
  99. package/dist-android/static/37.js +2 -0
  100. package/dist-android/static/37.js.map +1 -0
  101. package/dist-android/static/38.83c950bebdb997be2ef8.js +1 -0
  102. package/dist-android/static/38.js +2 -0
  103. package/dist-android/static/38.js.map +1 -0
  104. package/dist-android/static/39.333e42c6dbabf1bf2706.js +1 -0
  105. package/dist-android/static/39.js +2 -0
  106. package/dist-android/static/39.js.map +1 -0
  107. package/dist-android/static/4.eb190515d001a4e1bebd.js +13 -0
  108. package/dist-android/static/4.js +2 -0
  109. package/dist-android/static/4.js.map +1 -0
  110. package/dist-android/static/40.f6807724af2482375d7c.js +1 -0
  111. package/dist-android/static/40.js +2 -0
  112. package/dist-android/static/40.js.map +1 -0
  113. package/dist-android/static/41.92f39c44002772179f48.js +1 -0
  114. package/dist-android/static/41.js +2 -0
  115. package/dist-android/static/41.js.map +1 -0
  116. package/dist-android/static/42.662a0643f36dc759abc0.js +1 -0
  117. package/dist-android/static/42.js +2 -0
  118. package/dist-android/static/42.js.map +1 -0
  119. package/dist-android/static/43.5b55816aa2ca7b510d72.js +1 -0
  120. package/dist-android/static/43.js +2 -0
  121. package/dist-android/static/43.js.map +1 -0
  122. package/dist-android/static/44.4a6af5dd359e3973dea4.js +1 -0
  123. package/dist-android/static/44.js +2 -0
  124. package/dist-android/static/44.js.map +1 -0
  125. package/dist-android/static/45.d5992c604ad9eb4f40d2.js +1 -0
  126. package/dist-android/static/45.js +2 -0
  127. package/dist-android/static/45.js.map +1 -0
  128. package/dist-android/static/46.aa87912e9361ab053234.js +1 -0
  129. package/dist-android/static/46.js +2 -0
  130. package/dist-android/static/46.js.map +1 -0
  131. package/dist-android/static/47.b9efca55c1ea582c59e7.js +2 -0
  132. package/dist-android/static/47.js +2 -0
  133. package/dist-android/static/47.js.map +1 -0
  134. package/dist-android/static/48.8902ce91c715d61c63ef.js +1 -0
  135. package/dist-android/static/48.js +2 -0
  136. package/dist-android/static/48.js.map +1 -0
  137. package/dist-android/static/49.dd2591b071fe1901d2f2.js +2 -0
  138. package/dist-android/static/49.js +2 -0
  139. package/dist-android/static/49.js.map +1 -0
  140. package/dist-android/static/5.304b463f21c8253aa514.js +13 -0
  141. package/dist-android/static/5.js +2 -0
  142. package/dist-android/static/5.js.map +1 -0
  143. package/dist-android/static/50.e49f64d967a7f7350105.js +1 -0
  144. package/dist-android/static/50.js +2 -0
  145. package/dist-android/static/50.js.map +1 -0
  146. package/dist-android/static/51.0d311b6815373c5a3b1b.js +1 -0
  147. package/dist-android/static/51.js +2 -0
  148. package/dist-android/static/51.js.map +1 -0
  149. package/dist-android/static/52.344f9d59bb5cb156380d.js +1 -0
  150. package/dist-android/static/52.js +2 -0
  151. package/dist-android/static/52.js.map +1 -0
  152. package/dist-android/static/53.289984b9a04a7d11ffef.js +1 -0
  153. package/dist-android/static/53.js +2 -0
  154. package/dist-android/static/53.js.map +1 -0
  155. package/dist-android/static/54.5808cc57ddb689577efe.js +1 -0
  156. package/dist-android/static/54.js +2 -0
  157. package/dist-android/static/54.js.map +1 -0
  158. package/dist-android/static/55.9874aac28d0d80b55860.js +1 -0
  159. package/dist-android/static/55.js +2 -0
  160. package/dist-android/static/55.js.map +1 -0
  161. package/dist-android/static/56.babac04ffcc93c5573ed.js +1 -0
  162. package/dist-android/static/56.js +2 -0
  163. package/dist-android/static/56.js.map +1 -0
  164. package/dist-android/static/57.ca9993d9b0137ec93a81.js +1 -0
  165. package/dist-android/static/57.js +2 -0
  166. package/dist-android/static/57.js.map +1 -0
  167. package/dist-android/static/58.be8a5ac661eb638aff79.js +1 -0
  168. package/dist-android/static/58.js +2 -0
  169. package/dist-android/static/58.js.map +1 -0
  170. package/dist-android/static/59.2d0116e8a66e13cbabe2.js +1 -0
  171. package/dist-android/static/59.js +2 -0
  172. package/dist-android/static/59.js.map +1 -0
  173. package/dist-android/static/6.3f10426d99466042d079.js +13 -0
  174. package/dist-android/static/6.js +2 -0
  175. package/dist-android/static/6.js.map +1 -0
  176. package/dist-android/static/60.e60b562292633421a3d7.js +1 -0
  177. package/dist-android/static/60.js +2 -0
  178. package/dist-android/static/60.js.map +1 -0
  179. package/dist-android/static/61.492b25e8e1b66366329b.js +1 -0
  180. package/dist-android/static/61.js +2 -0
  181. package/dist-android/static/61.js.map +1 -0
  182. package/dist-android/static/62.24924f3f6fd5f97975d1.js +1 -0
  183. package/dist-android/static/62.js +2 -0
  184. package/dist-android/static/62.js.map +1 -0
  185. package/dist-android/static/63.7628250218be54b5c52f.js +1 -0
  186. package/dist-android/static/63.js +2 -0
  187. package/dist-android/static/63.js.map +1 -0
  188. package/dist-android/static/64.0c2d7593ebede3d30dc8.js +1 -0
  189. package/dist-android/static/64.js +2 -0
  190. package/dist-android/static/64.js.map +1 -0
  191. package/dist-android/static/65.220dfd6b1dd8e75c9d08.js +1 -0
  192. package/dist-android/static/65.js +2 -0
  193. package/dist-android/static/65.js.map +1 -0
  194. package/dist-android/static/66.da91b8ed2181ced4a4de.js +1 -0
  195. package/dist-android/static/66.js +2 -0
  196. package/dist-android/static/66.js.map +1 -0
  197. package/dist-android/static/67.75a3f13bea3c0ac4bbbe.js +1 -0
  198. package/dist-android/static/67.js +2 -0
  199. package/dist-android/static/67.js.map +1 -0
  200. package/dist-android/static/68.37aa2fd75666d1461dac.js +1 -0
  201. package/dist-android/static/68.js +2 -0
  202. package/dist-android/static/68.js.map +1 -0
  203. package/dist-android/static/69.e6a3e52929239e08b8d3.js +1 -0
  204. package/dist-android/static/69.js +2 -0
  205. package/dist-android/static/69.js.map +1 -0
  206. package/dist-android/static/7.57945431c1f505e425c1.js +13 -0
  207. package/dist-android/static/7.js +6 -0
  208. package/dist-android/static/7.js.map +1 -0
  209. package/dist-android/static/70.945cf028761bd66a2302.js +1 -0
  210. package/dist-android/static/70.js +2 -0
  211. package/dist-android/static/70.js.map +1 -0
  212. package/dist-android/static/71.0ae45dcfc105541b051d.js +1 -0
  213. package/dist-android/static/71.js +2 -0
  214. package/dist-android/static/71.js.map +1 -0
  215. package/dist-android/static/72.d89a35482e9c434d0bd0.js +1 -0
  216. package/dist-android/static/72.js +2 -0
  217. package/dist-android/static/72.js.map +1 -0
  218. package/dist-android/static/73.js +2 -0
  219. package/dist-android/static/73.js.map +1 -0
  220. package/dist-android/static/74.js +2 -0
  221. package/dist-android/static/74.js.map +1 -0
  222. package/dist-android/static/75.js +2 -0
  223. package/dist-android/static/75.js.map +1 -0
  224. package/dist-android/static/76.js +2 -0
  225. package/dist-android/static/76.js.map +1 -0
  226. package/dist-android/static/77.js +2 -0
  227. package/dist-android/static/77.js.map +1 -0
  228. package/dist-android/static/78.js +2 -0
  229. package/dist-android/static/78.js.map +1 -0
  230. package/dist-android/static/79.js +2 -0
  231. package/dist-android/static/79.js.map +1 -0
  232. package/dist-android/static/8.830a99f33590aeb637a3.js +13 -0
  233. package/dist-android/static/8.js +2 -0
  234. package/dist-android/static/8.js.map +1 -0
  235. package/dist-android/static/80.js +2 -0
  236. package/dist-android/static/80.js.map +1 -0
  237. package/dist-android/static/81.js +2 -0
  238. package/dist-android/static/81.js.map +1 -0
  239. package/dist-android/static/82.js +2 -0
  240. package/dist-android/static/82.js.map +1 -0
  241. package/dist-android/static/83.js +2 -0
  242. package/dist-android/static/83.js.map +1 -0
  243. package/dist-android/static/84.js +2 -0
  244. package/dist-android/static/84.js.map +1 -0
  245. package/dist-android/static/85.js +2 -0
  246. package/dist-android/static/85.js.map +1 -0
  247. package/dist-android/static/86.js +2 -0
  248. package/dist-android/static/86.js.map +1 -0
  249. package/dist-android/static/87.js +2 -0
  250. package/dist-android/static/87.js.map +1 -0
  251. package/dist-android/static/88.js +2 -0
  252. package/dist-android/static/88.js.map +1 -0
  253. package/dist-android/static/89.js +2 -0
  254. package/dist-android/static/89.js.map +1 -0
  255. package/dist-android/static/9.2432be88a7316649f45b.js +12 -0
  256. package/dist-android/static/9.js +3 -0
  257. package/dist-android/static/9.js.map +1 -0
  258. package/dist-android/static/90.js +2 -0
  259. package/dist-android/static/90.js.map +1 -0
  260. package/dist-android/static/91.js +2 -0
  261. package/dist-android/static/91.js.map +1 -0
  262. package/dist-android/static/92.js +2 -0
  263. package/dist-android/static/92.js.map +1 -0
  264. package/dist-android/static/93.js +2 -0
  265. package/dist-android/static/93.js.map +1 -0
  266. package/dist-android/static/94.js +2 -0
  267. package/dist-android/static/94.js.map +1 -0
  268. package/dist-android/static/95.js +2 -0
  269. package/dist-android/static/95.js.map +1 -0
  270. package/dist-android/static/96.js +2 -0
  271. package/dist-android/static/96.js.map +1 -0
  272. package/dist-android/static/97.js +2 -0
  273. package/dist-android/static/97.js.map +1 -0
  274. package/dist-android/static/98.js +2 -0
  275. package/dist-android/static/98.js.map +1 -0
  276. package/dist-android/static/99.js +2 -0
  277. package/dist-android/static/99.js.map +1 -0
  278. package/dist-android/static/app.css +2 -0
  279. package/dist-android/static/app.css.map +1 -0
  280. package/dist-android/static/app.js +80 -0
  281. package/dist-android/static/app.js.map +1 -0
  282. package/dist-android/static/appca71cf7af0c441a6b6ff.js +135 -0
  283. package/dist-android/static/batchleft.png +0 -0
  284. package/dist-android/static/batchright.png +0 -0
  285. package/dist-android/static/bluemainbg.jpg +0 -0
  286. package/dist-android/static/config.json +7 -0
  287. package/dist-android/static/denglu.png +0 -0
  288. package/dist-android/static/doc.jpg +0 -0
  289. package/{src/android-bootstrap/fonts → dist-android/static}/glyphicons-halflings-regular.eot +0 -0
  290. package/{src/android-bootstrap/fonts → dist-android/static}/glyphicons-halflings-regular.svg +0 -0
  291. package/{src/android-bootstrap/fonts → dist-android/static}/glyphicons-halflings-regular.ttf +0 -0
  292. package/{src/android-bootstrap/fonts → dist-android/static}/glyphicons-halflings-regular.woff +0 -0
  293. package/{src/android-bootstrap/fonts → dist-android/static}/glyphicons-halflings-regular.woff2 +0 -0
  294. package/dist-android/static/huangtengbiaozhi.png +0 -0
  295. package/dist-android/static/images/lefticon//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png +0 -0
  296. package/dist-android/static/images/lefticon//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  297. package/dist-android/static/images/lefticon//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  298. package/dist-android/static/images/lefticon//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  299. package/dist-android/static/images/lefticon//345/233/276/345/261/202577.png +0 -0
  300. package/dist-android/static/images/lefticon//345/233/276/345/261/2028/346/213/267/350/264/23513.png +0 -0
  301. package/dist-android/static/images/lefticon//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  302. package/dist-android/static/images/lefticon//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  303. package/dist-android/static/images/lefticon//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  304. package/dist-android/static/images/lefticon//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  305. package/dist-android/static/images/lefticon//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  306. package/dist-android/static/images/lefticon//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  307. package/dist-android/static/images/lefticon//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  308. package/dist-android/static/images/lefticon//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  309. package/dist-android/static/images/lefticon//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  310. package/dist-android/static/images/lefticon//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  311. package/dist-android/static/images/lefticon//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  312. package/dist-android/static/images/lefticon//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  313. package/dist-android/static/images/lefticon//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  314. package/dist-android/static/images/lefticon//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  315. package/dist-android/static/images/lefticon//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  316. package/dist-android/static/images/lefticon//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  317. package/dist-android/static/images/lefticon//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  318. package/dist-android/static/imgerror.jpg +0 -0
  319. package/dist-android/static/jingyin.jpg +0 -0
  320. package/dist-android/static/jsoneditor-icons.svg +893 -0
  321. package/dist-android/static/login_bg.jpg +0 -0
  322. package/dist-android/static/login_title.png +0 -0
  323. package/dist-android/static/login_title1.png +0 -0
  324. package/dist-android/static/loginbg.jpg +0 -0
  325. package/dist-android/static/loginlogo.png +0 -0
  326. package/dist-android/static/main_logo.png +0 -0
  327. package/dist-android/static/mainbg.jpg +0 -0
  328. package/dist-android/static/menulogo.png +0 -0
  329. package/dist-android/static/newStyle/clear.png +0 -0
  330. package/dist-android/static/newStyle/fife.png +0 -0
  331. package/dist-android/static/newStyle/hidden.png +0 -0
  332. package/dist-android/static/newStyle/label-clear.png +0 -0
  333. package/dist-android/static/newStyle/left-img.png +0 -0
  334. package/dist-android/static/newStyle/list_ok.png +0 -0
  335. package/dist-android/static/newStyle/login-check.png +0 -0
  336. package/dist-android/static/newStyle/login-con.png +0 -0
  337. package/dist-android/static/newStyle/login-do.gif +0 -0
  338. package/dist-android/static/newStyle/login-f.png +0 -0
  339. package/dist-android/static/newStyle/login-info.png +0 -0
  340. package/dist-android/static/newStyle/login-left.png +0 -0
  341. package/dist-android/static/newStyle/login-org.png +0 -0
  342. package/dist-android/static/newStyle/login-pwd.png +0 -0
  343. package/dist-android/static/newStyle/login-user.png +0 -0
  344. package/dist-android/static/newStyle/loginbg.gif +0 -0
  345. package/dist-android/static/newStyle/loginbg1280.gif +0 -0
  346. package/dist-android/static/newStyle/loginbg1366.gif +0 -0
  347. package/dist-android/static/newStyle/setting.png +0 -0
  348. package/dist-android/static/newStyle/setting1.png +0 -0
  349. package/dist-android/static/newStyle/shirk.png +0 -0
  350. package/dist-android/static/newStyle/stretch_bottom.png +0 -0
  351. package/dist-android/static/newStyle/stretch_left.png +0 -0
  352. package/dist-android/static/newStyle/stretch_right.png +0 -0
  353. package/dist-android/static/newStyle/stretch_top.png +0 -0
  354. package/dist-android/static/newStyle/system-off.png +0 -0
  355. package/dist-android/static/newmainbg.jpg +0 -0
  356. package/dist-android/static/pdf.jpg +0 -0
  357. package/dist-android/static/psicon.png +0 -0
  358. package/dist-android/static/singleleft.png +0 -0
  359. package/dist-android/static/singleright.png +0 -0
  360. package/dist-android/static/treeopen.png +0 -0
  361. package/dist-android/static/treeout.png +0 -0
  362. package/dist-android/static/treeset.png +0 -0
  363. package/dist-android/static/usericon.png +0 -0
  364. package/dist-android/static/workflow_apply.json +766 -0
  365. package/dist-android/static/xinxi.png +0 -0
  366. package/dist-android/static//344/270/213/350/275/275/350/256/241/345/210/222.png +0 -0
  367. package/dist-android/static//344/273/273/345/212/241/346/237/245/350/257/242.png +0 -0
  368. package/dist-android/static//344/277/241/346/201/257/345/205/254/345/221/212.png +0 -0
  369. package/dist-android/static//344/277/256/346/224/271/345/257/206/347/240/201.png +0 -0
  370. package/dist-android/static//345/205/254/345/221/212/346/237/245/347/234/213.png +0 -0
  371. package/dist-android/static//345/206/214/345/206/205/351/241/272/345/272/217/344/277/256/346/224/271.png +0 -0
  372. package/dist-android/static//345/215/241/350/241/250/345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  373. package/dist-android/static//345/234/250/347/272/277/345/256/211/346/243/200.png +0 -0
  374. package/dist-android/static//345/234/250/347/272/277/345/267/241/346/243/200.png +0 -0
  375. package/dist-android/static//345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  376. package/dist-android/static//345/234/250/347/272/277/346/212/242/344/277/256.png +0 -0
  377. package/dist-android/static//345/234/250/347/272/277/346/212/245/350/243/205.png +0 -0
  378. package/dist-android/static//345/234/250/347/272/277/346/223/215/344/275/234.png +0 -0
  379. package/dist-android/static//345/234/250/347/272/277/347/273/264/344/277/256.png +0 -0
  380. package/dist-android/static//345/234/250/347/272/277/347/274/264/350/264/271.png +0 -0
  381. package/dist-android/static//345/234/250/347/272/277/351/200/232/346/260/224.png +0 -0
  382. package/dist-android/static//345/256/211/346/243/200/345/257/274/350/210/252/347/253/226/345/261/2173.png +0 -0
  383. package/dist-android/static//345/256/211/346/243/200/345/267/262/345/212/236.png +0 -0
  384. package/dist-android/static//345/256/211/346/243/200/345/276/205/345/212/236.png +0 -0
  385. package/dist-android/static//345/256/211/346/243/200/346/212/275/345/215/225.png +0 -0
  386. package/dist-android/static//345/256/211/350/243/205/344/270/212/344/274/240.png +0 -0
  387. package/dist-android/static//345/256/211/350/243/205/345/267/262/345/212/236.png +0 -0
  388. package/dist-android/static//345/256/211/350/243/205/345/276/205/345/212/236.png +0 -0
  389. package/dist-android/static//345/257/274/345/207/272/346/225/260/346/215/256.png +0 -0
  390. package/dist-android/static//345/267/241/346/243/200/344/270/212/344/274/240.png +0 -0
  391. package/dist-android/static//345/267/241/346/243/200/345/267/262/345/212/236.png +0 -0
  392. package/dist-android/static//345/274/200/345/205/263/351/230/200.png +0 -0
  393. package/dist-android/static//345/275/242/347/212/2664.png +0 -0
  394. package/dist-android/static//346/211/271/351/207/217/346/212/204/350/241/250.png +0 -0
  395. package/dist-android/static//346/212/204/350/241/250/344/270/212/344/274/240.png +0 -0
  396. package/dist-android/static//346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  397. package/dist-android/static//346/212/204/350/241/250/345/276/205/345/212/236.png +0 -0
  398. package/dist-android/static//346/212/204/350/241/250/350/256/260/345/275/225.png +0 -0
  399. package/dist-android/static//346/212/245/345/273/272/346/234/215/345/212/241.png +0 -0
  400. package/dist-android/static//346/224/266/350/264/271/346/261/207/346/200/273/350/241/250.png +0 -0
  401. package/dist-android/static//346/224/266/350/264/271/350/256/260/345/275/225.png +0 -0
  402. package/dist-android/static//346/227/245/346/212/245/346/237/245/350/257/242.png +0 -0
  403. package/dist-android/static//346/241/243/346/241/210/344/277/256/346/224/271.png +0 -0
  404. package/dist-android/static//346/265/201/347/250/213/344/270/232/345/212/241.png +0 -0
  405. package/dist-android/static//346/265/201/347/250/213/347/233/221/346/216/247.png +0 -0
  406. package/dist-android/static//346/270/205/347/251/272/346/225/260/346/215/256.png +0 -0
  407. package/dist-android/static//347/247/273/345/212/250/346/212/204/350/241/250.png +0 -0
  408. package/dist-android/static//347/247/273/345/212/250/346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  409. package/dist-android/static//347/273/237/350/256/241/346/212/245/350/241/250.png +0 -0
  410. package/dist-android/static//347/273/264/344/277/256/346/264/276/345/217/221.png +0 -0
  411. package/dist-android/static//350/220/245/344/270/232/345/233/276/350/241/250.png +0 -0
  412. package/dist-android/static//350/241/250/345/206/214/351/241/272/345/272/217.png +0 -0
  413. package/dist-android/static//350/260/203/344/273/267/350/241/245/345/267/256/347/274/264/350/264/271.png +0 -0
  414. package/dist-android/static//350/277/233/345/272/246/345/210/227/350/241/250.png +0 -0
  415. package/dist-android/static//351/200/200/345/207/272/347/231/273/345/275/225.png +0 -0
  416. package/dist-android/static//351/200/201/346/260/224/344/270/212/344/274/240.png +0 -0
  417. package/dist-android/static//351/200/201/346/260/224/345/267/262/345/212/236.png +0 -0
  418. package/dist-android/static//351/200/201/346/260/224/345/276/205/345/212/236.png +0 -0
  419. package/dist-android/static//351/232/220/346/202/243/345/244/204/347/220/206.png +0 -0
  420. package/dist-android/static//351/233/206/344/270/255/345/256/211/346/243/200.png +0 -0
  421. package/dist-android/static//351/253/230/345/257/206/345/205/254/345/221/212.png +0 -0
  422. package/index.html +1 -4
  423. package/package.json +7 -11
  424. package/src/AndroidApp.vue +14 -21
  425. package/src/App.vue +20 -18
  426. package/src/android.js +4 -7
  427. package/src/apply.js +69 -85
  428. package/src/applyAndroid.js +39 -52
  429. package/src/components/app_apply/Acceptance.vue +298 -0
  430. package/src/components/app_apply/ApplyApp.vue +91 -0
  431. package/src/components/app_apply/ApplyDownList.vue +166 -0
  432. package/src/components/app_apply/ApplyInfo.vue +56 -0
  433. package/src/components/app_apply/ApplyListUpload.vue +258 -0
  434. package/src/components/app_apply/ApplyToDoList.vue +165 -0
  435. package/src/components/app_apply/ApplyUserInfo.vue +56 -0
  436. package/src/components/app_apply/FieldExploration.vue +267 -0
  437. package/src/components/app_apply/PlaceControler.vue +258 -0
  438. package/src/components/app_apply/ServiceControl.vue +267 -0
  439. package/src/components/app_apply/ServiceView.vue +355 -0
  440. package/src/components/app_apply/ToolsPage.vue +51 -0
  441. package/src/components/app_apply/Ventilation.vue +199 -0
  442. package/src/components/image/TXT.png +0 -0
  443. package/src/components/product/ApplyCharge/ApplyChargeList.vue +62 -141
  444. package/src/components/product/ApplyCharge/ApplyChargeReport.vue +107 -0
  445. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +2 -2
  446. package/src/components/product/Function/InstallFunction.vue +147 -131
  447. package/src/components/product/Function/InstallInfoSelect.vue +105 -118
  448. package/src/components/product/Function/Service/FunctionServiceControl.vue +148 -323
  449. package/src/components/product/Function/StopApplyCrrdList.vue +176 -0
  450. package/src/components/product/Function/functions/ApplyRecordCancel.vue +102 -0
  451. package/src/components/product/Function/functions/StopInstall.vue +106 -0
  452. package/src/components/product/Process/ExplorationSelect.vue +347 -374
  453. package/src/components/product/Process/ExplorationUser.vue +135 -151
  454. package/src/components/product/Process/Processes/InstallationDetails.vue +311 -614
  455. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +113 -59
  456. package/src/components/product/Process/Processes/chargeManagement.vue +562 -546
  457. package/src/components/product/Process/Processes/printCharge.vue +126 -0
  458. package/src/components/product/Process/Processes/supplementalAgreement.vue +181 -182
  459. package/src/components/product/Process/Service/ServiceControl.vue +646 -1311
  460. package/src/components/product/Process/ShowBackReason.vue +32 -0
  461. package/src/components/product/ReportForm/GasIgnitionSummary.vue +352 -0
  462. package/src/components/product/ServiceView.vue +680 -557
  463. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +199 -231
  464. package/src/components/product/Supervisory/SupervisoryControl.vue +121 -110
  465. package/src/components/product/Supervisory/SupervisoryList.vue +208 -258
  466. package/src/components/product/Supervisory/SupervisoryhCart.vue +36 -52
  467. package/src/components/product/VueUtils/ApplyUpload.vue +55 -68
  468. package/src/components/product/VueUtils/ToolsPage.vue +51 -0
  469. package/src/components/product/VueUtils/Tree.vue +330 -0
  470. package/src/main.js +23 -27
  471. package/build/css-loaders.js +0 -34
  472. package/build/dev-client.js +0 -8
  473. package/build/dev-server.js +0 -151
  474. package/build/example-server.js +0 -80
  475. package/build/release.sh +0 -28
  476. package/build/utils.js +0 -80
  477. package/build/webpack.base.conf.js +0 -123
  478. package/build/webpack.baseandroid.conf.js +0 -123
  479. package/build/webpack.dev.conf.js +0 -43
  480. package/build/webpack.devandroid.conf.js +0 -34
  481. package/build/webpack.example.conf.js +0 -49
  482. package/build/webpack.prod.conf.js +0 -60
  483. package/build/webpack.prodandroid.conf.js +0 -60
  484. package/dist-android.7z +0 -0
  485. package/dist.7z +0 -0
  486. package/src/android-bootstrap/less/.csscomb.json +0 -304
  487. package/src/android-bootstrap/less/.csslintrc +0 -19
  488. package/src/android-bootstrap/less/alerts.less +0 -73
  489. package/src/android-bootstrap/less/badges.less +0 -66
  490. package/src/android-bootstrap/less/bootstrap.less +0 -56
  491. package/src/android-bootstrap/less/breadcrumbs.less +0 -26
  492. package/src/android-bootstrap/less/button-groups.less +0 -247
  493. package/src/android-bootstrap/less/buttons.less +0 -173
  494. package/src/android-bootstrap/less/carousel.less +0 -269
  495. package/src/android-bootstrap/less/close.less +0 -34
  496. package/src/android-bootstrap/less/code.less +0 -69
  497. package/src/android-bootstrap/less/component-animations.less +0 -33
  498. package/src/android-bootstrap/less/dropdowns.less +0 -216
  499. package/src/android-bootstrap/less/forms.less +0 -626
  500. package/src/android-bootstrap/less/glyphicons.less +0 -305
  501. package/src/android-bootstrap/less/grid.less +0 -84
  502. package/src/android-bootstrap/less/input-groups.less +0 -167
  503. package/src/android-bootstrap/less/jumbotron.less +0 -52
  504. package/src/android-bootstrap/less/labels.less +0 -64
  505. package/src/android-bootstrap/less/list-group.less +0 -141
  506. package/src/android-bootstrap/less/media.less +0 -66
  507. package/src/android-bootstrap/less/mixins/alerts.less +0 -14
  508. package/src/android-bootstrap/less/mixins/background-variant.less +0 -9
  509. package/src/android-bootstrap/less/mixins/border-radius.less +0 -18
  510. package/src/android-bootstrap/less/mixins/buttons.less +0 -69
  511. package/src/android-bootstrap/less/mixins/center-block.less +0 -7
  512. package/src/android-bootstrap/less/mixins/clearfix.less +0 -22
  513. package/src/android-bootstrap/less/mixins/forms.less +0 -90
  514. package/src/android-bootstrap/less/mixins/gradients.less +0 -59
  515. package/src/android-bootstrap/less/mixins/grid-framework.less +0 -92
  516. package/src/android-bootstrap/less/mixins/grid.less +0 -122
  517. package/src/android-bootstrap/less/mixins/hide-text.less +0 -21
  518. package/src/android-bootstrap/less/mixins/image.less +0 -33
  519. package/src/android-bootstrap/less/mixins/labels.less +0 -12
  520. package/src/android-bootstrap/less/mixins/list-group.less +0 -30
  521. package/src/android-bootstrap/less/mixins/nav-divider.less +0 -10
  522. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +0 -9
  523. package/src/android-bootstrap/less/mixins/opacity.less +0 -8
  524. package/src/android-bootstrap/less/mixins/pagination.less +0 -24
  525. package/src/android-bootstrap/less/mixins/panels.less +0 -24
  526. package/src/android-bootstrap/less/mixins/progress-bar.less +0 -10
  527. package/src/android-bootstrap/less/mixins/reset-filter.less +0 -8
  528. package/src/android-bootstrap/less/mixins/reset-text.less +0 -18
  529. package/src/android-bootstrap/less/mixins/resize.less +0 -6
  530. package/src/android-bootstrap/less/mixins/responsive-visibility.less +0 -15
  531. package/src/android-bootstrap/less/mixins/size.less +0 -10
  532. package/src/android-bootstrap/less/mixins/tab-focus.less +0 -9
  533. package/src/android-bootstrap/less/mixins/table-row.less +0 -44
  534. package/src/android-bootstrap/less/mixins/text-emphasis.less +0 -9
  535. package/src/android-bootstrap/less/mixins/text-overflow.less +0 -8
  536. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +0 -227
  537. package/src/android-bootstrap/less/mixins.less +0 -40
  538. package/src/android-bootstrap/less/modals.less +0 -151
  539. package/src/android-bootstrap/less/navbar.less +0 -660
  540. package/src/android-bootstrap/less/navs.less +0 -302
  541. package/src/android-bootstrap/less/normalize.less +0 -424
  542. package/src/android-bootstrap/less/pager.less +0 -76
  543. package/src/android-bootstrap/less/pagination.less +0 -89
  544. package/src/android-bootstrap/less/panels.less +0 -274
  545. package/src/android-bootstrap/less/popovers.less +0 -131
  546. package/src/android-bootstrap/less/print.less +0 -101
  547. package/src/android-bootstrap/less/progress-bars.less +0 -87
  548. package/src/android-bootstrap/less/responsive-embed.less +0 -35
  549. package/src/android-bootstrap/less/responsive-utilities.less +0 -194
  550. package/src/android-bootstrap/less/scaffolding.less +0 -161
  551. package/src/android-bootstrap/less/tables.less +0 -262
  552. package/src/android-bootstrap/less/theme.less +0 -291
  553. package/src/android-bootstrap/less/thumbnails.less +0 -36
  554. package/src/android-bootstrap/less/tooltip.less +0 -102
  555. package/src/android-bootstrap/less/type.less +0 -303
  556. package/src/android-bootstrap/less/utilities.less +0 -55
  557. package/src/android-bootstrap/less/variables.less +0 -896
  558. package/src/android-bootstrap/less/wells.less +0 -29
  559. package/src/assets//345/210/240/351/231/244.png +0 -0
  560. package/src/components/android/AppOnetomany.vue +0 -301
  561. package/src/components/android/AppServiceView.vue +0 -568
  562. package/src/components/android/AppSign.vue +0 -169
  563. package/src/components/android/AppTakePic.vue +0 -142
  564. package/src/components/android/AppUpload.vue +0 -232
  565. package/src/components/android/Ignition/VentilationIgnition.vue +0 -328
  566. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +0 -330
  567. package/src/components/android/Process/AppExplorationUser.vue +0 -352
  568. package/src/components/android/Process/AppServiceControl.vue +0 -1050
  569. package/src/components/android/Process/Processes/AppDevicesManagement.vue +0 -336
  570. package/src/components/android/Process/Processes/AppInstallationDetails.vue +0 -770
  571. package/src/components/android/Process/Processes/SurveyUserSign.vue +0 -56
  572. package/src/components/android/Sign/AppSignTask.vue +0 -182
  573. package/src/components/android/Sign/SignProcess.vue +0 -102
  574. package/src/components/android/Supervisory/AppProcessSupervisory.vue +0 -183
  575. package/src/components/android/Supervisory/AppSupervisoryCart.vue +0 -121
  576. package/src/components/android/Task/Build/BuildTsak.vue +0 -114
  577. package/src/components/android/Task/Survey/SurveyTsak.vue +0 -112
  578. package/src/components/android/TaskGraph.vue +0 -130
  579. package/src/components/android/newPackage/customerServiceManager.vue +0 -218
  580. package/src/components/android/newPackage/designDrawings.vue +0 -94
  581. package/src/components/android/newPackage/detailedData.vue +0 -24
  582. package/src/components/android/newPackage/projectPrice.vue +0 -218
  583. package/src/components/product/Ignition/IgnitionDispatch.vue +0 -277
  584. package/src/components/product/Ignition/IgnitionRecord.vue +0 -216
  585. package/src/components/product/Onetomany.vue +0 -377
  586. package/src/components/product/Print/BuildOrder/buildOrderList.vue +0 -229
  587. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +0 -265
  588. package/src/components/product/Process/Processes/ApplyMapCom.vue +0 -83
  589. package/src/components/product/Process/Processes/ExhibitionPicture.vue +0 -27
  590. package/src/components/product/Process/Processes/Print/img/10101.png +0 -0
  591. package/src/components/product/Process/Processes/Print/img/1010109.png +0 -0
  592. package/src/components/product/Process/Processes/Print/img/1010110.png +0 -0
  593. package/src/components/product/Process/Processes/Print/img/1010111.png +0 -0
  594. package/src/components/product/Process/Processes/Print/img/1010112.png +0 -0
  595. package/src/components/product/Process/Processes/Print/printCharge.vue +0 -142
  596. package/src/components/product/Process/Processes/devicesManagement.vue +0 -360
  597. package/src/components/product/Process/Processes/selectApply.vue +0 -250
  598. package/src/components/product/Process/Processes/selectUserinfo.vue +0 -182
  599. package/src/components/product/Process/Service/ShowBackReason.vue +0 -33
  600. package/src/components/product/Stop/StopApply.vue +0 -105
  601. package/src/components/product/Stop/StopApplyList.vue +0 -224
  602. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +0 -167
  603. package/src/components/product/VueUtils/HighMeter.vue +0 -208
  604. package/src/expandcssAndroid.less +0 -1034
  605. package/src/public/history/HistoryApplyList.vue +0 -108
  606. package/src/public/history/PublicHistoryApply.vue +0 -39
  607. package/src/public/history/PublicSupervisoryhCart.vue +0 -72
  608. package/src/public/order/PublicOrderApply.vue +0 -387
@@ -1,1417 +1,752 @@
1
1
  <template>
2
- <div class="" v-if="showview">
2
+
3
+ <div class="auto clearfix">
3
4
  <show-back-reason :selectdata="show_data"></show-back-reason>
4
- <service-view v-ref:serviceview :data="show_data"></service-view>
5
5
  </div>
6
+
7
+ <service-view v-ref:serviceview :data="show_data" v-if="showview"></service-view>
8
+
6
9
  </template>
7
10
  <script>
8
- import Vue from 'vue'
9
- import {HttpResetClass} from 'vue-client'
10
- import {isEmpty} from '../../../Util'
11
-
12
- // Date格式化
13
- Date.prototype.Format = function (fmt) {
14
- var o = {
15
- "M+": this.getMonth() + 1, //月份
16
- "d+": this.getDate(), //日
17
- "H+": this.getHours(), //小时
18
- "m+": this.getMinutes(), //分
19
- "s+": this.getSeconds(), //秒
20
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
21
- "S": this.getMilliseconds() //毫秒
22
- };
23
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
24
- for (var k in o)
25
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
26
- return fmt;
27
- }
11
+ import Vue from 'vue'
12
+ import {HttpResetClass} from 'vue-client'
13
+ import {getNowDate,isEmpty} from '../../../Util'
14
+ // Date格式化
15
+ Date.prototype.Format = function (fmt) {
16
+ var o = {
17
+ "M+": this.getMonth() + 1, //月份
18
+ "d+": this.getDate(), //日
19
+ "H+": this.getHours(), //小时
20
+ "m+": this.getMinutes(), //分
21
+ "s+": this.getSeconds(), //秒
22
+ "q+": Math.floor((this.getMonth() + 3) / 3), //季度
23
+ "S": this.getMilliseconds() //毫秒
24
+ };
25
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
26
+ for (var k in o)
27
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
28
+ return fmt;
29
+ }
28
30
 
29
- export default {
30
- title: '报建流程业务控制层',
31
- props: ['selectdata'],
32
- data () {
33
- return {
34
- data: null, // 数据库数据,json配置文件数据的数据集合
35
- json_datas: null, // Json配置文件集合
36
- showview: false, // 控制显示service-view组件
37
- show_data: null, // 给view层显示的数据
38
- config: {}
39
- }
40
- },
41
- ready () {
42
- this.refurbish()
43
- },
44
- methods: {
45
- // 组件初始化操作
46
- async refurbish() {
47
- this.json_datas = this.$workflow_vue
48
- let sum = 0
49
- let jsonData = {}
50
- if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length === 0) {
51
- this.$showMessage("网络故障,请刷新页面")
52
- return
53
- }
54
- this.json_datas.activitys.forEach(item => {
55
- if (this.selectdata.defname === item.title) {
56
- jsonData = item // 拿到当前节点的json配置信息
57
- sum++ // 节点名一样的个数
31
+ export default {
32
+ title: '报建流程业务控制层',
33
+ props: ['selectdata'],
34
+ data() {
35
+ return {
36
+ data: null, // 数据库数据,json配置文件数据的数据集合
37
+ json_datas: null, // Json配置文件集合
38
+ showview: false, // 控制显示service-view组件
39
+ show_data: null // 给view层显示的数据
40
+ }
41
+ },
42
+ created () {
43
+ this.refurbish()
44
+ },
45
+ methods: {
46
+ // 组件初始化操作
47
+ refurbish() {
48
+ this.json_datas = this.$workflow_vue
49
+ let sum = 0
50
+ let jsonData = {}
51
+ if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length == 0) {
52
+ this.$showMessage("网络故障,请刷新页面")
53
+ return
58
54
  }
59
- return this.selectdata.defname === item.title // 拿到当前节点的json配置信息
60
- })
61
-
62
- if (sum === 0) {
63
- this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
64
- return
65
- }
66
- if (sum > 1) {
67
- this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
68
- return
69
- }
70
-
71
- this.selectdata = Object.assign({}, this.selectdata, jsonData)
72
-
73
- // fields 字段填充值
74
- for (const item of this.selectdata.fields) {
75
- if (!item.value) {
76
- item.value = null
55
+ for (let i = 0; i < this.json_datas.activitys.length; i++) {
56
+ if (this.selectdata.defname == this.json_datas.activitys[i].title) {
57
+ jsonData = this.json_datas.activitys[i] // 拿到当前节点的json配置信息
58
+ sum++ // 节点名一样的个数
59
+ }
77
60
  }
78
-
79
- if (!item.value && (item.default || item.default === 0) && item.type !== 'datepicker') {
80
- if (item.eval) {
81
- item.value = eval(item.default)
82
- } else {
61
+ if (sum == 1) {
62
+ this.data = null
63
+ this.data = jsonData
64
+ // selectdata 填充 data
65
+ this.data = Object.assign({}, this.data, this.selectdata)
66
+ this.initializeJSON()
67
+ } else if (sum == 0) {
68
+ this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
69
+ } else {
70
+ this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
71
+ }
72
+ },
73
+ // json配置数据处理
74
+ async initializeJSON() {
75
+ // 有默认值,value就给默认值,没有就是null
76
+ this.data.fields.forEach(item => {
77
+ if (!item.value) {
78
+ if (item.value === 0) {
79
+ item.value = 0
80
+ } else {
81
+ item.value = null
82
+ }
83
+ }
84
+ if (item.default || item.default == 0) {
83
85
  item.value = item.default
84
86
  }
85
- }
86
-
87
- if (this.selectdata[item.field]) {
88
- // 将json字符串格式化赋值给value
89
- if (String(this.selectdata[item.field]).startsWith("{")) {
90
- item.value = JSON.parse(this.selectdata[item.field])
87
+ if (this.selectdata[item.field]) {
88
+ // 将json字符串格式化赋值给value
89
+ if (String(this.selectdata[item.field]).startsWith("{")) {
90
+ item.value = JSON.parse(this.selectdata[item.field])
91
+ this.selectdata[item.field] = JSON.parse(this.selectdata[item.field])
92
+ } else {
93
+ item.value = this.selectdata[item.field]
94
+ }
91
95
  } else {
92
- item.value = this.selectdata[item.field]
96
+ if (this.selectdata[item.field] === 0) {
97
+ item.value = 0
98
+ }
93
99
  }
94
- }
95
- if (this.selectdata[item.field] === 0) {
96
- item.value = 0
97
- }
98
100
 
99
- // datepicker
100
- if (item.type === 'datepicker' && !item.value && item.default) {
101
- item.value = new Date().Format(`${item.format ? item.format : 'yyyy-MM-dd HH:mm:ss'}`)
102
- }
101
+ // datepicker 没有值给当时值
102
+ if (item.type === 'datepicker' && !item.value && item.default) {
103
+ item.value = new Date().Format('yyyy-MM-dd HH:mm:ss')
104
+ }
103
105
 
104
- // 如果配置类型为select,优先从参数列表获取options
105
- if (item.type === 'select' || item.type === 'checkbox') {
106
- if (item.param) {
107
- let temp = this.$appdata.getParam(item.label)
106
+ // 如果配置类型为select,优先从参数列表获取options
107
+ if (item.type === 'select') {
108
+ let temp = null
108
109
 
109
- if (temp && temp.length > 0) {
110
- item.options = temp
111
- }
110
+ temp = this.$appdata.getParam(item.label)
112
111
 
113
- if (item.paramLabel) {
114
- temp = this.$appdata.getParam(item.paramLabel)
115
- if (temp && temp.length > 0) {
116
- item.options = temp
112
+ if (temp && temp.length > 0 && item.label) {
113
+ item.options = temp
114
+ } else {
115
+ if (item.paramLabel) {
116
+ temp = this.$appdata.getParam(item.paramLabel)
117
+ if (temp && temp.length > 0) {
118
+ item.options = temp
119
+ }
117
120
  }
118
121
  }
119
122
  }
120
- if (item.ready) {
121
- item.options = await this[item.ready]()
122
- }
123
- }
124
-
125
-
126
- if (item.type === 'checkbox') {
127
- if (this.selectdata[item.field]) {
128
- item.value = JSON.parse(this.selectdata[item.field])
129
- } else {
130
- item.value = []
131
- }
132
- }
133
-
134
- this.selectdata[item.field] = item.value
135
- }
123
+ })
136
124
 
137
- // 控制组件
138
- if (this.selectdata.components) {
139
- this.selectdata.components.forEach(item => {
140
- if (!item.mark) {
125
+ // 控制组件
126
+ if (this.data.components) {
127
+ this.data.components.forEach(item => {
141
128
  item.mark = 0
142
- }
143
- })
144
- }
129
+ })
130
+ }
145
131
 
146
- // 初始化onetomany
147
- if (this.selectdata.onetomany) {
148
- for (const item of this.selectdata.onetomany) {
149
- let res = null
150
- if (item.queryEvent) {
151
- res = this[item.queryEvent]()
152
- } else {
153
- let data = {
154
- tablename: item.tables[0],
155
- condition: `f_process_id='${this.selectdata.f_process_id}'`
132
+ // 初始化 fields 可对数据进行特殊处理
133
+ this.initializeFields()
134
+ console.log("this.data的数据:" + JSON.stringify(this.data))
135
+ // 初始化 buttons_fields
136
+ for (let i = 0; i < this.data.buttons.length; i++) {
137
+ // 下发按钮相关配置
138
+ if (this.data.buttons[i].button_name === '下发') {
139
+ if (this.data.buttons[i].button_fields && this.data.buttons[i].button_fields.length === 1) {
140
+ if (this.data.source){
141
+ let http = new HttpResetClass()
142
+ let res = await http.load('POST', 'rs/search', {
143
+ source: this.data.source,
144
+ userid: this.$login.f.id
145
+ }, {resolveMsg: null, rejectMsg: null})
146
+
147
+ let options = []
148
+ for (let i = 0; i < res.data.length; i++) {
149
+ options.push(
150
+ {
151
+ "label": res.data[i].name,
152
+ "value": res.data[i].name
153
+ }
154
+ )
155
+ }
156
+ this.data.buttons[i].button_fields[0]['options'] = options
157
+ } else {
158
+ this.$showMessage("请配置获取人员表达式")
159
+ }
160
+ } else {
161
+ this.$showMessage("下发按钮必须满足 当且仅当一个字段")
156
162
  }
157
- res = await this.$resetpost(
158
- 'rs/sql/applySingleTable',
159
- {data: data},
160
- {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
161
- )
162
163
  }
163
-
164
- item.rows = res.data
165
-
166
- // 初始化onetomany中的fields
167
- for (const field of item.fields) {
168
- if (!field.value) {
169
- if (field.value !== 0) {
170
- field.value = null
164
+ if (this.data.buttons[i].button_fields) {
165
+ this.data.buttons[i].button_fields.forEach(x => {
166
+ // 如果配置类型为select,优先从参数列表获取options
167
+ if (x.type === 'select' && this.$appdata.getParam(x.label)) {
168
+ x.options = this.$appdata.getParam(x.label).trim()
171
169
  }
172
- }
173
-
174
- if (field.default || field.default === 0) {
175
- field.value = field.default
176
- }
170
+ })
171
+ }
172
+ }
177
173
 
178
- // datepicker
179
- if (field.type === 'datepicker' && !field.value && field.default) {
180
- field.value = new Date().Format(`${field.format ? field.format : 'yyyy-MM-dd HH:mm:ss'}`)
174
+ // onetomany 数据获取
175
+ if (this.data.onetomany) {
176
+ for (let index = 0; index < this.data.onetomany.length; index++) {
177
+ let res = null
178
+ if (!this.data.onetomany[index].queryEvent || this.data.onetomany[index].queryEvent === 'default'){
179
+ let http = new HttpResetClass()
180
+ let data = {
181
+ tablename: this.data.onetomany[index].tables[0],
182
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
183
+ }
184
+ res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
185
+ resolveMsg: null,
186
+ rejectMsg: 'onetomany查询失败'
187
+ })
188
+ } else {
189
+ res = this[this.data.onetomany[index].queryEvent]()
181
190
  }
182
191
 
183
- if (field.type === 'select') {
192
+ // 初始化 onetomany
193
+ this.data.onetomany[index].rows = res.data
184
194
 
185
- let temp = this.$appdata.getParam(field.label)
186
-
187
- if (temp && temp.length > 0) {
188
- field.options = temp
195
+ // 初始化onetomany中的fields
196
+ for (let j = 0; j < this.data.onetomany[index].fields.length; j++) {
197
+ if (!this.data.onetomany[index].fields[j].value) {
198
+ if (this.data.onetomany[index].fields[j].value === 0) {
199
+ this.data.onetomany[index].fields[j].value = 0
200
+ } else {
201
+ this.data.onetomany[index].fields[j].value = null
202
+ }
189
203
  }
190
-
191
- if (field.paramLabel) {
192
- temp = this.$appdata.getParam(field.paramLabel)
204
+ if (this.data.onetomany[index].fields[j].default || this.data.onetomany[index].fields[j].default == 0) {
205
+ this.data.onetomany[index].fields[j].value = this.data.onetomany[index].fields[j].default
206
+ }
207
+ // 如果配置类型为select,优先从参数列表获取options
208
+ if (this.data.onetomany[index].fields[j].type === 'select') {
209
+ let temp = Vue.$appdata.getParam(this.data.onetomany[index].fields[j].label)
193
210
  if (temp && temp.length > 0) {
194
- item.options = temp
211
+ this.data.onetomany[index].fields[j].options = temp
195
212
  }
196
213
  }
197
214
  }
198
215
  }
199
216
  }
200
- }
201
-
202
- // 初始化 buttons_fields
203
- for (const item of this.selectdata.buttons) {
204
- if (item.button_name === '下发') {
205
217
 
206
- let data = {
207
- source: item.source,
208
- userid: this.$login.f.id
209
- }
210
- if (item.sourceMethod) {
211
- data.source = this[item.sourceMethod]()
212
- }
213
- if (!data.source) {
214
- this.$showMessage("请配置获取人员表达式")
215
- return
216
- }
217
-
218
- let res = await this.$resetpost(
219
- 'rs/search',
220
- {data: data},
221
- {resolveMsg: null, rejectMsg: '下发人员查询失败!!!'}
222
- )
218
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
219
+ let temp = JSON.parse(JSON.stringify(this.data))
223
220
 
224
- let options = res.data.map(source => {
225
- return {
226
- "label": source.name,
227
- "value": source.id
221
+ this.show_data = temp
222
+ this.$nextTick(() => {
223
+ this.showview = true
224
+ })
225
+ // 查询区域和街道
226
+ if (this.selectdata.defname === '报装申请') {
227
+
228
+ for (let i = 0; i < this.show_data.fields.length; i++) {
229
+
230
+ if (this.show_data.fields[i].label === '区/县') {
231
+ let http = new HttpResetClass()
232
+ let condition = "f_type = '区'"
233
+ let res = await http.load('POST','rs/sql/apply_singleTable',{
234
+ data:{tablename:'t_address',condition:condition}},
235
+ {resolveMsg: null, rejectMsg: null})
236
+ let data = []
237
+ let array = []
238
+ data = res.data.map(item => {
239
+ return item.f_name;
240
+ })
241
+ for (let q = 0; q < data.length; q++) {
242
+ let arraydata = {
243
+ 'label': data[q],
244
+ 'value': data[q]
245
+ }
246
+ if (array.length !== 0) {
247
+ for (let w = 0; w < array.length; w++) {
248
+ if (array[w].label === data[q]) {
249
+ break
250
+ }
251
+ while (w === array.length - 1) {
252
+ array.push(arraydata)
253
+ break
254
+ }
255
+ }
256
+ } else {
257
+ array.push(arraydata)
258
+ }
259
+ }
260
+ this.show_data.fields[i].options = array
261
+ console.log("区县选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
228
262
  }
229
- })
230
-
231
- if (item.button_fields.length !== 1) {
232
- this.$showMessage("下发有且只能有一个字段!!!")
233
- return
234
- }
235
-
236
- item.button_fields[0].options = options
237
- }
238
- if (item.button_fields) {
239
- item.button_fields.forEach(x => {
240
- // 如果配置类型为select,优先从参数列表获取options
241
- if (x.type === 'select') {
242
-
243
- if (x.param) {
244
- let temp = this.$appdata.getParam(x.label)
245
-
246
- if (temp && temp.length > 0) {
247
- x.options = temp
263
+ if (this.show_data.fields[i].label === '片区') {
264
+ let http = new HttpResetClass()
265
+ let condition = "f_type = '街道'"
266
+ let res = await http.load('POST','rs/sql/apply_singleTable',{
267
+ data:{tablename:'t_address',condition:condition}},
268
+ {resolveMsg: null, rejectMsg: null})
269
+ let data = []
270
+ let array = []
271
+ data = res.data.map(item => {
272
+ return item.f_name;
273
+ })
274
+ for (let q = 0; q < data.length; q++) {
275
+ let arraydata = {
276
+ 'label': data[q],
277
+ 'value': data[q]
248
278
  }
249
-
250
- if (x.paramLabel) {
251
- temp = this.$appdata.getParam(x.paramLabel)
252
- if (temp && temp.length > 0) {
253
- x.options = temp
279
+ if (array.length !== 0) {
280
+ for (let w = 0; w < array.length; w++) {
281
+ if (array[w].label === data[q]) {
282
+ break
283
+ }
284
+ while (w === array.length - 1) {
285
+ array.push(arraydata)
286
+ break
287
+ }
254
288
  }
289
+ } else {
290
+ array.push(arraydata)
255
291
  }
256
292
  }
257
-
293
+ this.show_data.fields[i].options = array
294
+ console.log("片区选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
258
295
  }
259
- })
260
- }
261
- }
262
-
263
- if (this.selectdata.f_apply_nature === '散户' && this.selectdata.defname === '现场勘察') {
264
- for (const item of this.selectdata.fields) {
265
- if (item.label.includes('安装户数')) {
266
- item.readonly = true
267
296
  }
268
297
  }
269
- }
270
- // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
271
- let temp = JSON.parse(JSON.stringify(this.selectdata))
298
+ },
299
+ // 初始化fields值
300
+ initializeFields() {
272
301
 
273
- this.show_data = temp
274
- this.$nextTick(() => {
275
- this.showview = true
276
- })
302
+ },
303
+ // 金额转大写
304
+ smalltoBIG(n) {
305
+ let fraction = ['角', '分'];
306
+ let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
307
+ let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
308
+ let head = n < 0 ? '欠' : '';
309
+ n = Math.abs(n);
277
310
 
278
- },
279
- // 金额转大写
280
- smalltoBIG(n) {
281
- let fraction = ['角', '分'];
282
- let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
283
- let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
284
- let head = n < 0 ? '欠' : '';
285
- n = Math.abs(n);
311
+ let s = '';
286
312
 
287
- let s = '';
288
-
289
- for (var i = 0; i < fraction.length; i++) {
290
- s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
291
- }
292
- s = s || '整';
293
- n = Math.floor(n);
294
-
295
- for (var i = 0; i < unit[0].length && n > 0; i++) {
296
- let p = '';
297
- for (var j = 0; j < unit[1].length && n > 0; j++) {
298
- p = digit[n % 10] + unit[1][j] + p;
299
- n = Math.floor(n / 10);
300
- }
301
- s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
302
- }
303
- return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
304
- },
305
- getLableValue(label) {
306
- for (const item of this.show_data.fields) {
307
- if (item.label === label && item.type !== 'number') {
308
- return item.value || ''
309
- }
310
- if (item.label === label && item.type === 'number') {
311
- return item.value || 0
312
- }
313
- }
314
- },
315
- getLableOptions(label) {
316
- for (const item of this.show_data.fields) {
317
- if (item.label === label) {
318
- return item.options
319
- }
320
- }
321
- },
322
- setLabelValue(label, value) {
323
- for (const item of this.show_data.fields) {
324
- if (item.label === label) {
325
- item.value = value
326
- this.show_data[item.field] = value
313
+ for (var i = 0; i < fraction.length; i++) {
314
+ s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
327
315
  }
328
- }
329
- },
330
- setLabelOptions(label, options) {
331
- for (const item of this.show_data.fields) {
332
- if (item.label === label) {
333
- item.options = options
334
- }
335
- }
336
- },
337
- showLabels(...labels) {
338
- for (const item of this.show_data.fields) {
339
- if (labels.includes(item.label)) {
340
- item.hidden = false
341
- }
342
- }
343
- },
344
- hideLabels(...labels) {
345
- for (const item of this.show_data.fields) {
346
- if (labels.includes(item.label)) {
347
- item.hidden = true
348
- }
349
- }
350
- },
351
- showButtons(...buttons) {
352
- for (const item of this.show_data.buttons) {
353
- if (buttons.includes(item.button_name)) {
354
- item.hidden = false
355
- }
356
- }
357
- },
358
- hideButtons(...buttons) {
359
- for (const item of this.show_data.buttons) {
360
- if (buttons.includes(item.button_name)) {
361
- item.hidden = true
362
- }
363
- }
364
- },
365
- requiredLabels(...labels) {
366
- for (const item of this.show_data.fields) {
367
- if (labels.includes(item.label)) {
368
- item.required = true
369
- }
370
- }
371
- },
372
- electiveLabels(...labels) {
373
- for (const item of this.show_data.fields) {
374
- if (labels.includes(item.label)) {
375
- item.required = false
376
- }
377
- }
378
- },
379
- readonlyLabels(...labels) {
380
- for (const item of this.show_data.fields) {
381
- if (labels.includes(item.label)) {
382
- item.readonly = true
383
- item.disabled = true
384
- }
385
- }
386
- },
387
- readwriteLabels(...labels) {
388
- for (const item of this.show_data.fields) {
389
- if (labels.includes(item.label)) {
390
- item.readonly = false
391
- item.disabled = false
392
- }
393
- }
394
- },
395
- disabledButtons(...buttons) {
396
- for (const item of this.show_data.buttons) {
397
- if (buttons.includes(item.button_name)) {
398
- item.disabled = true
399
- }
400
- }
401
- },
402
- enableButtons(...buttons) {
403
- for (const item of this.show_data.buttons) {
404
- if (buttons.includes(item.button_name)) {
405
- item.disabled = false
406
- }
407
- }
408
- },
409
- showComponents(...titles) {
410
- for (const item of this.show_data.components) {
411
- if (titles.includes(item.title) && item.device === 'pc') {
412
- item.hidden = false
413
- }
414
- }
415
- },
416
- hideComponents(...titles) {
417
- for (const item of this.show_data.components) {
418
- if (titles.includes(item.title) && item.device === 'pc') {
419
- item.hidden = true
420
- }
421
- }
422
- },
423
- async checkDuplicate(index) {
424
- let http = new HttpResetClass()
425
- let data = {
426
- tablename: 't_apply',
427
- condition: `${this.show_data.fields[index].field} = '${this.show_data.fields[index].value}'`
428
- }
429
- let res = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
430
- resolveMsg: null,
431
- rejectMsg: `${this.show_data.fields[index].label}查询失败`
432
- })
433
- if (res.data.length > 0) {
434
- this.show_data.fields[index].value = null
435
- this.$showAlert(`${this.show_data.fields[index].label}已存在!!!`, 'warning', 3000)
436
- }
437
- },
438
- // 获取片区
439
- async getSliceArea () {
440
- let data = {
441
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
442
- userid: this.$login.f.id
443
- }
444
-
445
- let http = new HttpResetClass()
446
- let res = await http.load(
447
- 'POST',
448
- `rs/search`,
449
- {data: data},
450
- {resolveMsg: null, rejectMsg: '片区查询失败!!!'}
451
- )
316
+ s = s || '整';
317
+ n = Math.floor(n);
452
318
 
453
- return res.data.map(item => {
454
- return {
455
- label: item.name,
456
- value: item.name
457
- }
458
- })
459
- },
460
- // 获取区县
461
- async getPcd () {
462
- let data = {
463
- tablename: 't_pcd',
464
- condition: `f_filialeid = '${this.$login.f.orgid}'`
465
- }
466
- let http = new HttpResetClass()
467
- let res = await http.load(
468
- 'POST',
469
- `rs/sql/applySingleTable`,
470
- {data: data},
471
- {resolveMsg: null, rejectMsg: '区县查询失败!!!'}
472
- )
473
-
474
- return res.data.map(item => {
475
- return {
476
- label: item.f_pcd,
477
- value: item.f_pcd
478
- }
479
- })
480
- },
481
- // 缴费前置
482
- chargeBefore () {
483
- if (this.show_data.f_apply_type === '民用报建' && this.show_data.f_apply_nature === '小区') {
484
- return
485
- }
486
- if (Number(this.show_data.f_due_money) > Number(this.show_data.f_cumulative_payment_money) || Number(this.show_data.f_surplus_money) > 0) {
487
- this.$showAlert('费用未结清!!!', 'warning', 3000)
488
- throw null
489
- }
490
- },
491
- // 获取设计人员
492
- async getDesignerPeople () {
493
- let data = {
494
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
495
- userid: this.$login.f.id
496
- }
497
-
498
- let res = await this.$resetpost(
499
- 'rs/search',
500
- {data: data},
501
- {resolveMsg: null, rejectMsg: '设计人员查询失败!!!'}
502
- )
503
-
504
- return res.data.map(item => {
505
- return {
506
- label: item.name,
507
- value: item.id
508
- }
509
- })
510
- },
511
- //现场勘察
512
- async prospectingBefore() {
513
- let data = {
514
- tablename: 't_files',
515
- condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '现场勘察' and fremarks = '报装手机签字文件'`
516
- }
517
- let http = new HttpResetClass()
518
- let res = await http.load(
519
- 'POST',
520
- `rs/sql/applySingleTable`,
521
- {data: data},
522
- {resolveMsg: null, rejectMsg: null}
523
- )
524
- if (res.data.length <= 0) {
525
- this.$showAlert('现场勘察未签字,无法提交!!!', 'warning', 3000)
526
- throw '现场勘察未签字,无法提交!'
527
- }
528
- },
529
- //合同签订提交
530
- async contractSigningBefore() {
531
- let http = new HttpResetClass()
532
- let data = {
533
- tablename: 't_contract',
534
- condition: `f_process_id = '${this.selectdata.f_process_id}'`
535
- }
536
- let res = await http.load(
537
- 'POST',
538
- `rs/sql/applySingleTable`,
539
- {data: data},
540
- {resolveMsg: null, rejectMsg: null}
541
- )
542
- if (res.data[0].f_sign_state !== '签订完成') {
543
- this.$showAlert('用户未签订完成,无法提交!!!', 'warning', 3000)
544
- throw '用户未签订完成,无法提交!'
545
- }
546
- },
547
- // 施工前置
548
- async constructionBefore () {
549
- if (this.show_data.f_apply_nature !== '小区') {
550
- let http = new HttpResetClass()
551
- let data = {
552
- condition: `ui.f_process_id = '${this.show_data.f_process_id}' and f_meternumber is null`
553
- }
554
- let res = await http.load(
555
- 'POST',
556
- 'rs/sql/countApplyUserinfo',
557
- {data: data},
558
- {
559
- resolveMsg: null,
560
- rejectMsg: '安装明细查询失败!!!'
561
- })
562
- if (res.data[0].num > 0) {
563
- this.$showAlert(`还有${res.data[0].num}户未安装,无法提交`, 'warning', 3000)
564
- throw `还有${res.data[0].num}户未安装,无法提交`
565
- }
566
- }
567
- },
568
- async userSignBefore() {
569
- let http = new HttpResetClass()
570
- let data = {
571
- tablename: 't_files',
572
- condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fremarks = '报装手机签字文件'`
573
- }
574
- let res = await http.load(
575
- 'POST',
576
- `rs/sql/applySingleTable`,
577
- {data: data},
578
- {resolveMsg: null, rejectMsg: null}
579
- )
580
- if (res.data.length <= 0) {
581
- this.$showAlert('用户未签字,无法提交!!!', 'warning', 3000)
582
- throw '用户未签字,无法提交!'
583
- }
584
- },
585
- addressInitialization () {
586
- this.$getConfig(this, 'UserAddress')
587
-
588
- let f_address_type = this.show_data.f_address_type
589
-
590
- for (const item of this.show_data.fields) {
591
- if (f_address_type === '民用市区') {
592
- if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
593
- item.hidden = false
594
- item.required = true
319
+ for (var i = 0; i < unit[0].length && n > 0; i++) {
320
+ let p = '';
321
+ for (var j = 0; j < unit[1].length && n > 0; j++) {
322
+ p = digit[n % 10] + unit[1][j] + p;
323
+ n = Math.floor(n / 10);
595
324
  }
596
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
597
- item.hidden = false
598
- item.required = false
325
+ s = p.replace(/(零.)*零$/, '').replace(/^$/, '') + unit[0][i] + s;
326
+ }
327
+ return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
328
+ },
329
+ getLableValue(label) {
330
+ for (const item of this.show_data.fields) {
331
+ if (item.label === label && item.type !== 'number') {
332
+ return item.value || ''
599
333
  }
600
- if (item.label === '地址') {
601
- item.readonly = true
334
+ if (item.label === label && item.type === 'number') {
335
+ return item.value || 0
602
336
  }
603
337
  }
604
- if (f_address_type === '民用乡镇') {
605
- if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
606
- item.hidden = false
607
- item.required = true
338
+ },
339
+ setLabelValue(label, value) {
340
+ for (const item of this.show_data.fields) {
341
+ if (item.label === label) {
342
+ item.value = value
608
343
  }
609
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
610
- item.hidden = false
611
- item.required = false
344
+ }
345
+ },
346
+ async buttonBefore(model) {
347
+ // if (
348
+ // model.button.button_name === '提交' &&
349
+ // model.defname === '收费' &&
350
+ // (
351
+ // model.f_apply_type === '散户报建' ||
352
+ // model.f_apply_type === '工业户报建' ||
353
+ // model.f_apply_type === '商业户报建'
354
+ // ) &&
355
+ // model.f_surplus_money > 0
356
+ // ) {
357
+ // throw '未结金额大于0,无法提交!!!'
358
+ // }
359
+ // if (model.defname === '施工' && model.button.button_name === '提交') {
360
+ // let http = new HttpResetClass()
361
+ // let data = {
362
+ // f_process_id: model.f_process_id
363
+ // }
364
+ // let res = await http.load('POST', 'rs/sql/notInstalled', {data: data}, {resolveMsg: null, rejectMsg: null})
365
+ // if (res.data[0].num > 0) {
366
+ // throw `还有${res.data[0].num}户未安装,无法提交`
367
+ // }
368
+ // }
369
+ return model
370
+ },
371
+ // ========================= 武安 =================================
372
+ // 地址类型变化
373
+ addressType() {
374
+ for (const item of this.show_data.fields) {
375
+ if (item.label === '小区' && this.show_data.f_address_type === '民用地址') {
376
+ item.required = true
612
377
  }
613
- if (item.label === '楼层') {
614
- item.hidden = true
378
+ if (item.label === '小区' && this.show_data.f_address_type === '特殊地址') {
615
379
  item.required = false
616
380
  }
617
- if (item.label === '地址') {
618
- item.readonly = true
619
- }
620
- }
621
- if (f_address_type === '特殊地址') {
622
- if (item.label === '区/县' || item.label === '街道/乡镇') {
623
- item.hidden = false
381
+ if (
382
+ (
383
+ item.label === '楼号' ||
384
+ item.label === '单元' ||
385
+ item.label === '楼层' ||
386
+ item.label === '门牌号'
387
+ ) && this.show_data.f_address_type === '民用地址'
388
+ ) {
624
389
  item.required = true
625
- }
626
- if (item.label === '集收单位') {
627
390
  item.hidden = false
628
- item.required = false
391
+ item.value = null
629
392
  }
630
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层' || item.label === '门牌号') {
631
- item.hidden = true
393
+ if (
394
+ (
395
+ item.label === '楼号' ||
396
+ item.label === '单元' ||
397
+ item.label === '楼层' ||
398
+ item.label === '门牌号'
399
+ ) && this.show_data.f_address_type === '特殊地址'
400
+ ) {
632
401
  item.required = false
633
- }
634
- if (item.label === '地址') {
635
- item.readonly = false
402
+ item.hidden = true
403
+ item.value = null
636
404
  }
637
405
  }
638
-
639
- if (this.show_data.f_apply_source === '线下发起' && item.label === '预约地址') {
640
- item.hidden = true
641
- }
642
- }
643
- },
644
- async streetChange () {
645
- if (isEmpty(this.show_data.f_street)) {
646
- return
647
- }
648
-
649
- let data = {
650
- tablename: 't_area',
651
- condition: `f_filialeid = '${this.$login.f.orgid}' and f_street = '${this.show_data.f_street}'`
652
- }
653
- let http = new HttpResetClass()
654
- let res = await http.load(
655
- 'POST',
656
- `rs/sql/applySingleTable`,
657
- {data: data},
658
- {resolveMsg: null, rejectMsg: '集收单位查询失败!!!'}
659
- )
660
-
661
- this.setLabelOptions('集收单位', res.data.map(item => {
662
- return {
663
- label: item.f_residential_area,
664
- value: item.f_residential_area
406
+ },
407
+ //根据区县获取街道
408
+ async getStreetList () {
409
+ console.log("街道查询")
410
+ let data = {
411
+ son: '街道',
412
+ parent: '区',
413
+ condition: `b.f_name = '${this.getLableValue('区/县')}'`
665
414
  }
666
- }))
667
- },
668
- async pcdChange () {
669
- if (isEmpty(this.show_data.f_pcd)) {
670
- return
671
- }
672
415
 
673
- let data = {
674
- tablename: 't_street',
675
- condition: `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}'`
676
- }
677
- let f_address_type = this.getLableValue('地址类型')
416
+ let res = await this.$resetpost(
417
+ `rs/sql/getAddress`,
418
+ {data: data},
419
+ {resolveMsg: null, rejectMsg: '街道查询失败,请重新进入!!!'}
420
+ )
678
421
 
679
- if (f_address_type === '民用市区') {
680
- data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '市区'`
681
- }
682
- if (f_address_type === '民用乡镇') {
683
- data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '乡镇'`
684
- }
422
+ let streetList = []
685
423
 
686
- let http = new HttpResetClass()
687
- let res = await http.load(
688
- 'POST',
689
- `rs/sql/applySingleTable`,
690
- {data: data},
691
- {resolveMsg: null, rejectMsg: '街道/乡镇查询失败!!!'}
692
- )
424
+ res.data.forEach(item => {
425
+ streetList.push({
426
+ label: item.f_name,
427
+ value: item.f_name
428
+ })
429
+ })
693
430
 
694
- this.setLabelOptions('街道/乡镇', res.data.map(item => {
695
- return {
696
- label: item.f_street,
697
- value: item.f_street
431
+ for (const item of this.show_data.fields) {
432
+ if (item.label === '街道') {
433
+ item.options = streetList
434
+ }
435
+ }
436
+ },
437
+ //根据街道获取小区
438
+ async getAreaList () {
439
+ let data = {
440
+ son: '小区',
441
+ parent: '街道',
442
+ condition: `b.f_name = '${this.getLableValue('街道')}'`
698
443
  }
699
- }))
700
- },
701
- async getConstructionWorker(){
702
- let data = {
703
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
704
- userid: this.$login.f.id
705
- }
706
444
 
707
- let res = await this.$resetpost(
708
- `${this.$androidUtil.getProxyUrl()}/rs/search`,
709
- {data: data},
710
- {resolveMsg: null, rejectMsg: '现场负责人查询失败!!!'}
711
- )
445
+ let res = await this.$resetpost(
446
+ `rs/sql/getAddress`,
447
+ {data: data},
448
+ {resolveMsg: null, rejectMsg: '小区查询失败,请重新进入!!!'}
449
+ )
712
450
 
713
- return res.data.map(item => {
714
- return {
715
- label: item.name,
716
- value: item.id
717
- }
718
- })
719
- },
720
- // 安装单位
721
- async getConstructionUnit () {
722
- let data = {
723
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
724
- userid: this.$login.f.id
725
- }
451
+ let areaList = []
726
452
 
727
- let res = await this.$resetpost(
728
- 'rs/search',
729
- {data: data},
730
- {resolveMsg: null, rejectMsg: '安装单位人员查询失败!!!'}
731
- )
453
+ res.data.forEach(item => {
454
+ areaList.push({
455
+ label: item.f_name,
456
+ value: item.f_name
457
+ })
458
+ })
732
459
 
733
- return res.data.map(item => {
734
- return {
735
- label: item.name,
736
- value: item.id
460
+ for (const item of this.show_data.fields) {
461
+ if (item.label === '小区') {
462
+ item.options = areaList
463
+ }
737
464
  }
738
- })
739
- },
740
- // 建设单位
741
- async getConstructOperator () {
742
- let data = {
743
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
744
- userid: this.$login.f.id
745
465
  }
746
466
 
747
- let res = await this.$resetpost(
748
- 'rs/search',
749
- {data: data},
750
- {resolveMsg: null, rejectMsg: '建设单位人员查询失败!!!'}
751
- )
752
-
753
- return res.data.map(item => {
754
- return {
755
- label: item.name,
756
- value: item.id
757
- }
758
- })
759
467
  },
760
- // 监理单位
761
- async getSupervisorOperator () {
762
- let data = {
763
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
764
- userid: this.$login.f.id
765
- }
468
+ events: {
766
469
 
767
- let res = await this.$resetpost(
768
- 'rs/search',
769
- {data: data},
770
- {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
771
- )
470
+ 'openAddModel'(index) {
772
471
 
773
- return res.data.map(item => {
774
- return {
775
- label: item.name,
776
- value: item.id
472
+ },
473
+ // 获取view层button事件/
474
+ async 'button'(model) {
475
+ // 修改提交数据
476
+ model = Object.assign({}, this.selectdata, model)
477
+ // 点击重置按钮就重置数据
478
+ if (model.button.button_name === '重置') {
479
+ this.$dispatch('breakControl', this.data)
480
+ return
777
481
  }
778
- })
779
- },
780
- // 土建单位
781
- async getEngineeringOperator () {
782
- let data = {
783
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
784
- userid: this.$login.f.id
785
- }
786
-
787
- let res = await this.$resetpost(
788
- 'rs/search',
789
- {data: data},
790
- {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
791
- )
792
- let result = res.data.map(item => {
793
- return {
794
- label: item.name,
795
- value: item.id
482
+ // 联合验收必须上传附件
483
+ if (model.defname === '联合验收' && model.button.button_name === '提交') {
484
+ let http = new HttpResetClass()
485
+ let data = {
486
+ tablename: 't_files',
487
+ condition: "f_blobid = '" + this.selectdata.f_process_id + "'"
488
+ }
489
+ let res = await http.load('POST', 'rs/sql/apply_singleTable', {data: data}, {resolveMsg: null, rejectMsg: null})
490
+ if (!res.data.length > 0) {
491
+ this.$showMessage("您没有上传附件,无法提交!")
492
+ return
493
+ }
796
494
  }
797
- })
798
- if(this.selectdata.f_apply_nature === '散户'){
799
- result.push({label:'用户自理',value:'用户自理'})
800
- }
801
- return result
802
- },
803
- // 检测单位
804
- async getCheckOperator () {
805
- let data = {
806
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
807
- userid: this.$login.f.id
808
- }
809
495
 
810
- let res = await this.$resetpost(
811
- 'rs/search',
812
- {data: data},
813
- {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
814
- )
815
-
816
- return res.data.map(item => {
817
- return {
818
- label: item.name,
819
- value: item.id
496
+ // 提交前置
497
+ try {
498
+ model = await this.buttonBefore(model)
499
+ } catch (e) {
500
+ this.$showAlert(e, 'warning', 3000)
501
+ return
820
502
  }
821
- })
822
- },
823
- // 获取气表品牌
824
- async getMeterBrand () {
825
- let data = {
826
- }
827
-
828
- let http = new HttpResetClass()
829
- let res = await http.load(
830
- 'POST',
831
- `rs/sql/getMeterBrand`,
832
- {data: data},
833
- {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
834
- )
835
-
836
- return res.data
837
- },
838
- async stopApply () {
839
- console.log('终止报建!!!!!')
840
-
841
- if (this.show_data.defname === '报建受理') {
842
- this.show_data.f_stop_reason = this.show_data.f_accept_result
843
- }
844
- if (this.show_data.defname === '现场勘察') {
845
- this.show_data.f_stop_reason = this.show_data.f_prospecting_result
846
- }
847
503
 
848
- let data = {
849
- apply: this.show_data,
850
- user: this.$login.f
851
- }
852
-
853
- let res = await this.$resetpost(
854
- `rs/logic/stopApply`,
855
- {data: data},
856
- {resolveMsg: null, rejectMsg: '终止报建失败!!!'}
857
- )
858
-
859
- this.$dispatch('loadPage')
860
-
861
- throw '终止报建!!!'
862
- },
863
- // 获取小区
864
- async getResidentialArea () {
865
- let data = {
866
- tablename: 't_area_address',
867
- condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用'`
868
- }
869
- let http = new HttpResetClass()
870
- let res = await http.load(
871
- 'POST',
872
- `rs/sql/applySingleTable`,
873
- {data: data},
874
- {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
875
- )
876
- return res.data.map(item => {
877
- return {
878
- label: item.f_residential_area,
879
- value: item.f_residential_area
504
+ let http = new HttpResetClass()
505
+ let requestData = {
506
+ tables: this.data.tables,
507
+ start_activity: this.$workflow_vue.start_activity,
508
+ model: model,
509
+ loginUser: this.$login.f,
510
+ workflow_xmlfilename: this.$workflow_vue.workflow_xmlfilename
511
+ }
512
+ // 下发,提交,保存,退回通用业务后台处理logic
513
+ let url = 'rs/logic/ApplyProductService'
514
+ let res = await http.load('POST', url, {data: requestData}, {resolveMsg: null, rejectMsg: '数据保存失败'})
515
+
516
+ if (res.data.code == 200) {
517
+ this.$dispatch('search')
518
+ } else {
519
+ if (res.data.msg) {
520
+ this.$showMessage(res.data.msg)
521
+ }
880
522
  }
881
- })
882
- },
883
- async getContractSignatory () {
884
- let data = {
885
- condition: `asj.f_type = '内部' and asj.f_subject_type = '企业' and asj.f_state = '有效' and asj.f_auth_state = '审核通过' and asg.f_state = '有效' and asg.f_sign_state = '签章成功'`
886
- }
887
- let http = new HttpResetClass()
888
- let res = await http.load(
889
- 'POST',
890
- `rs/sql/getAuthSubjectList`,
891
- {data: data},
892
- {resolveMsg: null, rejectMsg: '签署人查询失败!!!'}
893
- )
894
- return res.data.map(item => {
895
- return {
896
- label: item.f_subject_name,
897
- value: `${item.id}`
523
+ },
524
+ async 'initializtionView'() {
525
+
526
+ // if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装') {
527
+ // await this.getStreetList()
528
+ // }
529
+ },
530
+ // 失去焦点出触发事件
531
+ async 'onchange'(index) {
532
+ console.log('失去焦点')
533
+
534
+ if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装'){
535
+
536
+ if (this.show_data.fields[index].label === '区/县'){
537
+ console.log('-----------添加街道-----------')
538
+ if (this.show_data.fields[index].value === null || this.show_data.fields[index].value === '') {
539
+ this.show_data.fields[index].value = null
540
+ this.$showAlert('区/县不能为空!!!', 'warning', 3000)
541
+ return
542
+ }
543
+ this.setLabelValue('街道', '')
544
+ await this.getStreetList()
545
+ }
546
+ if (this.show_data.fields[index].label === '街道') {
547
+ this.setLabelValue('小区', '')
548
+ await this.getAreaList()
549
+ }
550
+ }
551
+ // 地址拼接
552
+ if (
553
+ this.show_data.fields[index].label === '区/县' ||
554
+ this.show_data.fields[index].label === '街道' ||
555
+ this.show_data.fields[index].label === '小区' ||
556
+ this.show_data.fields[index].label === '门牌号'
557
+ ) {
558
+ let f_address = null
559
+ f_address = this.getLableValue('区/县') + this.getLableValue('街道') + this.getLableValue('小区') + this.getLableValue('门牌号')
560
+ this.setLabelValue('地址',f_address)
561
+ }
562
+ if (this.show_data.defname === '竣工验收') {
563
+ if (this.show_data.fields[index].label === '验收是否合格'){
564
+ for (const button of this.show_data.buttons) {
565
+ if (this.show_data.fields[index].value === '否' && button.button_name === '退回') {
566
+ button.hidden = false
567
+ } else {
568
+ button.hidden = true
569
+ }
570
+ }
571
+ }
898
572
  }
899
- })
900
- },
901
- // 地址拼接
902
- addressSplicing () {
903
- let f_area = this.getLableValue('区/县') ? this.getLableValue('区/县') + '-' : ''
904
- let f_slice_area = this.getLableValue('片区') ? this.getLableValue('片区') + '-' : ''
905
- let f_street = this.getLableValue('街道') || ''
906
-
907
- let f_address = f_area + f_slice_area + f_street
908
- this.setLabelValue("地址", f_address)
909
- },
910
- },
911
- events: {
912
- // 强制开关阀
913
- async 'onOffValve' () {
914
- let data = {
915
- condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
916
- }
917
- let http = new HttpResetClass()
918
- let res = await http.load(
919
- 'POST',
920
- `rs/sql/getApplyUserinfo`,
921
- {data: data},
922
- {resolveMsg: null, rejectMsg: '档案获取失败!!!'}
923
- )
924
-
925
- let userinfo = res.data[0]
926
-
927
- if (this.show_data.button.button_name !== '退出强制状态') {
928
- data = {
929
- condition: `t_userfiles.f_meternumber = '${userinfo.f_meternumber}'`,
930
- contentData: {
931
- isOpen: this.show_data.button.button_name === '强制开阀' ? 1 : 0
932
- },
933
- inputtor: this.$login.f.name,
934
- instructTitle: this.show_data.button.button_name === '强制开阀' ? '开阀' : '关阀',
935
- instructType: '阀门控制',
936
- meterBrandName: userinfo.f_alias
573
+ if (this.show_data.defname === '合同签订') {
574
+ if (this.show_data.fields[index].label === '合同编号') {
575
+ if (!isEmpty(this.show_data.fields[index].value)) {
576
+ let http = new HttpResetClass()
577
+ let data = {
578
+ tablename: 't_apply',
579
+ condition: `f_contract_number='${this.show_data.fields[index].value}'`
580
+ }
581
+ let res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
582
+ resolveMsg: null,
583
+ rejectMsg: '合同编号查重失败'
584
+ })
585
+ if (res.data.length > 0) {
586
+ this.show_data.fields[index].value = null
587
+ this.$showAlert('合同编号已存在!!!', 'warning', 3000)
588
+ }
589
+ }
590
+ }
591
+ if (this.show_data.fields[index].label === '单价(户)') {
592
+ let http = new HttpResetClass()
593
+ let data = {
594
+ num1: this.getLableValue(this.show_data.fields[index].label),
595
+ num2: this.getLableValue('户数'),
596
+ operator: '*'
597
+ }
598
+ try {
599
+ let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
600
+ resolveMsg: null,
601
+ rejectMsg: null
602
+ })
603
+ data = {
604
+ num1: res.data,
605
+ num2: this.getLableValue('其他费用'),
606
+ operator: '+'
607
+ }
608
+ res = await http.load('POST', 'rs/logic/compute', {data: data}, {
609
+ resolveMsg: null,
610
+ rejectMsg: null
611
+ })
612
+ this.setLabelValue('合同金额',res.data)
613
+ } catch (e) {
614
+ this.$showAlert(e.data.msg, 'warning', 3000)
615
+ }
616
+ }
617
+ if (this.show_data.fields[index].label === '其他费用') {
618
+ let http = new HttpResetClass()
619
+ let data = {
620
+ num1: this.getLableValue(this.show_data.fields[index].label),
621
+ num2: this.getLableValue('合同金额'),
622
+ operator: '+'
623
+ }
624
+ try {
625
+ let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
626
+ resolveMsg: null,
627
+ rejectMsg: null
628
+ })
629
+ this.setLabelValue('合同金额',res.data)
630
+ } catch (e) {
631
+ this.$showAlert(e.data.msg, 'warning', 3000)
632
+ }
633
+ }
937
634
  }
938
- res = await http.load(
939
- 'POST',
940
- `rs/logic/saveInstruct`,
941
- {data: data},
942
- {resolveMsg: null, rejectMsg: `${this.show_data.button.button_name}失败!!!`}
943
- )
944
- }
945
-
946
- data = {
947
- f_user_id: userinfo.f_user_id,
948
- f_userinfo_id: userinfo.f_userinfo_id,
949
- record: {
950
- f_filiale: this.$login.f.f_fengongsi,
951
- f_instruct_meta_data: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
952
- f_instruct_title: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
953
- f_instruct_type: '阀门控制',
954
- f_meternumber: userinfo.f_meternumber,
955
- f_operator: this.$login.f.name,
956
- f_outlets: userinfo.f_outlets,
957
- f_reason: this.show_data.button.f_reason,
958
- f_user_id: userinfo.f_user_id,
959
- f_userinfo_id: userinfo.f_userinfo_id
960
- },
961
- state: this.show_data.button.button_name === '退出强制状态' ? 0 : 1
962
- }
963
-
964
- res = await http.load(
965
- 'POST',
966
- `rs/logic/updateNetWorkValve`,
967
- {data: data},
968
- {resolveMsg: '执行成功!!!', rejectMsg: `执行失败!!!`}
969
- )
970
-
971
- },
972
- // 修改用户档案
973
- async 'updateUserinfoState' () {
974
- let data = {
975
- f_userinfo_id: this.show_data.f_userinfo_id
976
- }
977
- let http = new HttpResetClass()
978
- let res = await http.load(
979
- 'POST',
980
- `rs/logic/updateUserinfoState`,
981
- {data: data},
982
- {resolveMsg: '该用户档案已为正常档案,可进行开关阀操作!!!', rejectMsg: '档案状态修改失败!!!'}
983
- )
984
-
985
- this.showButtons('强制开阀','强制关阀')
986
- this.hideButtons('转正式档案')
987
- },
988
- // 选择用户
989
- async 'selectUserinfo' (row) {
990
- this.setLabelValue('用户编号', row.f_userinfo_id)
991
- this.setLabelValue('用户名称', row.f_user_name)
992
- this.setLabelValue('用户电话', row.f_user_phone)
993
- this.setLabelValue('证件类型', row.f_credentials)
994
- this.setLabelValue('证件号码', row.f_idnumber)
995
- this.setLabelValue('地址', row.f_address)
996
-
997
- this.show_data.f_userinfo_id = row.f_userinfo_id
998
- },
999
- async 'getPrice' (index) {
1000
- if (isEmpty(this.show_data.f_gas_nature) || isEmpty(this.show_data.f_price_type)) {
1001
- return
1002
- }
1003
-
1004
- if (index) {
1005
- this.setLabelValue('气价名称', null)
1006
- }
1007
-
1008
- if (this.show_data.f_price_type === '混合气价') {
1009
- this.showLabels('比率')
1010
- } else {
1011
- this.setLabelValue('比率', null)
1012
- this.hideLabels('比率')
1013
- }
1014
-
1015
- let data = {
1016
- condition: `sp.f_filiale = '${this.$login.f.f_fengongsi}' and sp.f_price_type = '${this.show_data.f_price_type}' and f_gasproperties = '${this.show_data.f_gas_nature}'`
1017
- }
1018
-
1019
- if (this.show_data.f_apply_type === '民用报建') {
1020
- data.condition += `and f_user_type = '民用'`
1021
- }
1022
- if (this.show_data.f_apply_type === '非民用报建') {
1023
- data.condition += `and f_user_type = '非民用'`
1024
- }
1025
-
1026
-
1027
- let http = new HttpResetClass()
1028
- let res = await http.load(
1029
- 'POST',
1030
- `rs/sql/applyGetPrice`,
1031
- {data: data},
1032
- {resolveMsg: null, rejectMsg: '气价查询失败!!!'}
1033
- )
1034
-
1035
- this.setLabelOptions('气价名称', res.data.map(item => {
1036
- return {
1037
- label: item.f_price_name,
1038
- value: `${item.id}`
635
+ // ========================= 武安 =================================
636
+ // 号码检测
637
+ if (this.show_data.fields[index].label === '电话号码') {
638
+ let phone = this.show_data.fields[index].value
639
+ // 电话号码效验
640
+ if (!(/^1[3456789]\d{9}$/.test(phone))) {
641
+ this.show_data.fields[index].value = ""
642
+ this.$showAlert('电话号码格式不正确,请重新输入。', 'info', 2000)
643
+ }
1039
644
  }
1040
- }))
1041
- },
1042
- // 街道失去焦点
1043
- async changStreet () {
1044
- if (isEmpty(this.show_data.f_street)) {
1045
- return
1046
- }
1047
- this.addressSplicing()
1048
- },
1049
- // 片区失去焦点
1050
- async 'changSliceArea' () {
1051
- if (isEmpty(this.show_data.f_area) || isEmpty(this.show_data.f_slice_area)) {
1052
- return
1053
- }
1054
-
1055
- let data = {
1056
- items: 'f_street label,f_street value',
1057
- tablename: 't_area_address',
1058
- condition: `f_area = '${this.show_data.f_area}' and f_slice_area = '${this.show_data.f_slice_area}'`,
1059
- groupitem: 'f_street'
1060
- }
1061
-
1062
- let http = new HttpResetClass()
1063
- let res = await http.load(
1064
- 'POST',
1065
- `rs/sql/applySingleTable`,
1066
- {data: data},
1067
- {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1068
- )
1069
- this.setLabelOptions('街道', res.data)
1070
-
1071
- this.addressSplicing()
1072
- },
1073
- // 区县市区焦点
1074
- 'changeArea' () {
1075
- if (isEmpty(this.show_data.f_area)) {
1076
- return
1077
- }
1078
- this.setLabelValue('片区', null)
1079
- this.setLabelValue('街道', null)
1080
- this.setLabelOptions('片区', this.$appdata.getParam(`${this.show_data.f_area}片区`))
1081
- this.setLabelOptions('街道', [])
1082
-
1083
- this.addressSplicing()
1084
- },
1085
- // 开启签字
1086
- async 'startSignActivity' () {
1087
- this.hideButtons('签字')
1088
- await this.userSignBefore()
1089
-
1090
- let data = {
1091
- apply: this.show_data,
1092
- user: this.$login.f
1093
- }
1094
-
1095
- let res = await this.$resetpost(
1096
- `rs/logic/startSignActivity`,
1097
- {data: data},
1098
- {resolveMsg: '签字流程已发起!!!', rejectMsg: '签字发起失败!!!'}
1099
- )
1100
-
1101
- this.$dispatch('breakControl', this.show_data)
1102
- },
1103
- // 工程施工初始化
1104
- async 'buildReadyEvent' () {
1105
- if(this.getLableValue('是否发起签字') === '是') {
1106
- this.hideButtons('签字')
1107
- }
1108
-
1109
- let data = {
1110
- f_process_id: this.show_data.f_process_id
1111
- }
1112
- let http = new HttpResetClass()
1113
- let res = await http.load(
1114
- 'POST',
1115
- `rs/sql/getSingAct`,
1116
- {data: data},
1117
- {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1118
- )
1119
- if (res.data.length > 0) {
1120
- this.setLabelValue('签字所在环节', res.data[0].defname)
1121
- return
1122
- }
1123
- this.setLabelValue('签字所在环节', null)
1124
-
1125
- if (isEmpty(this.show_data.f_meter_brand)) {
1126
- return
1127
- }
1128
- data = {
1129
- f_gasbrand_id: this.show_data.f_meter_brand
1130
- }
1131
- res = await http.load(
1132
- 'POST',
1133
- `rs/sql/getGasModel`,
1134
- {data: data},
1135
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1136
- )
1137
- this.setLabelOptions('气表型号', res.data)
645
+ //时间提醒
646
+ if (this.show_data.fields[index].label.includes("时间") || this.show_data.fields[index].type === 'datepicker') {
647
+ let setTime = this.show_data.fields[index].value
648
+ let nowTime = new Date().Format("yyyy-MM-dd HH:mm:ss")
649
+ if (nowTime >= setTime) {
650
+ this.$showMessage("请注意,当前节点时间/工期已过期!")
651
+ }
652
+ }
653
+ },
654
+ // input值发生变化
655
+ async 'oninput'(index) {
656
+
657
+ },
658
+ // 错误事件
659
+ error_check(index) {
660
+ // 时间格式检测
661
+ if (this.show_data.fields[index].type == 'datepicker') {
662
+ let dateRe = new RegExp(/(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/)
663
+ let datetimeRe = new RegExp(/((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\s([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/)
664
+ if (datetimeRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 19 && this.show_data.fields[index].fullsize) {
665
+ this.show_data.fields[index].error.flag = false
666
+ } else if (dateRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 10) {
667
+ this.show_data.fields[index].error.flag = false
668
+ } else {
669
+ if (this.show_data.fields[index].fullsize) {
670
+ this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
671
+ this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02 09:23:21'
672
+ this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
673
+ this.show_data.fields[index].error.flag = true
674
+ this.show_data.fields[index].value = ''
675
+ } else {
676
+ this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
677
+ this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02'
678
+ this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
679
+ this.show_data.fields[index].error.flag = true
680
+ this.show_data.fields[index].value = ''
681
+ }
1138
682
 
1139
- if (this.show_data.f_apply_type === '分户挂表') {
1140
- let data = {
1141
- condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
683
+ }
1142
684
  }
685
+ },
686
+ // onetomany模态框默认监听监听事件
687
+ async 'onetomanydelete'(i, j) {
688
+ console.log('默认删除')
1143
689
  let http = new HttpResetClass()
1144
- let res = await http.load(
1145
- 'POST',
1146
- `rs/sql/getApplyUserinfo`,
1147
- {data: data},
1148
- {resolveMsg: null, rejectMsg: '档案状态获取失败!!!'}
1149
- )
690
+ let data = {
691
+ table: this.show_data.onetomany[i].tables[0],
692
+ row: this.show_data.onetomany[i].rows[j]
693
+ }
694
+ let res = await http.load('POST', 'rs/logic/onetomanyDefaultDeleteEvent', {data: data}, {
695
+ resolveMsg: null,
696
+ rejectMsg: '删除失败'
697
+ })
1150
698
 
1151
- if (res.data[0].f_meter_classify !== '物联网表') {
699
+ if (res.data <= 0){
700
+ this.$showMessage('删除失败')
1152
701
  return
1153
702
  }
1154
- if (res.data[0].f_user_state === '正常') {
1155
- this.showButtons('退出强制状态','强制关阀')
1156
- this.hideButtons('转正式档案')
1157
- } else {
1158
- this.showButtons('转正式档案')
1159
- this.hideButtons('退出强制状态','强制关阀')
1160
- }
1161
- }
1162
- },
1163
- // 工程派工初始化
1164
- async 'dispatchReadyEvent' () {
1165
- if (isEmpty(this.show_data.f_meter_brand)) {
1166
- return
1167
- }
1168
- let data = {
1169
- f_gasbrand_id: this.show_data.f_meter_brand
1170
- }
1171
- let http = new HttpResetClass()
1172
- let res = await http.load(
1173
- 'POST',
1174
- `rs/sql/getGasModel`,
1175
- {data: data},
1176
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1177
- )
1178
703
 
1179
- this.setLabelOptions('气表型号', res.data)
1180
- },
1181
- // 气表品牌失去焦点
1182
- async 'meterBrandChenge' (index) {
1183
- if (isEmpty(this.show_data.f_meter_brand)) {
1184
- return
1185
- }
1186
- this.setLabelValue('气表型号', null)
1187
- let data = {
1188
- f_gasbrand_id: this.show_data.f_meter_brand
1189
- }
1190
- let http = new HttpResetClass()
1191
- let res = await http.load(
1192
- 'POST',
1193
- `rs/sql/getGasModel`,
1194
- {data: data},
1195
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1196
- )
704
+ this.$dispatch('breakControl', this.show_data)
705
+ },
706
+ async 'onetomanyadd'(index) {
1197
707
 
1198
- this.setLabelOptions('气表型号', res.data)
1199
- },
1200
- // 单价失去焦点
1201
- async 'priceChange' (index) {
1202
- if (isEmpty(this.show_data.f_price)) {
1203
- return
1204
- }
1205
- let data = {
1206
- operator: '*',
1207
- num1: this.show_data.f_price,
1208
- num2: this.show_data.f_install_count
1209
- }
1210
- let http = new HttpResetClass()
1211
- let res = await http.load(
1212
- 'POST',
1213
- `rs/logic/compute`,
1214
- {data: data},
1215
- {resolveMsg: null, rejectMsg: '工程材料费计算失败!!!'}
1216
- )
1217
-
1218
- this.setLabelValue('工程材料费', res.data)
1219
- },
1220
- // 安装户数失去焦点
1221
- 'installCountChange' (index) {
1222
- if (isEmpty(this.show_data.f_install_count)) {
1223
- return
1224
- }
1225
- if (Number(this.show_data.f_install_count) > Number(this.show_data.f_apply_count)) {
1226
- this.$showAlert('安装数已超过申请数!!!', 'warning', 3000)
1227
- // this.setLabelValue('安装户数', null)
1228
- // this.setLabelValue('安装点数', null)
1229
- // return
1230
- }
1231
-
1232
- if (Number(this.show_data.f_install_count) <= 0) {
1233
- this.$showAlert('至少有安装一个!!!', 'warning', 3000)
1234
- this.setLabelValue('安装户数', null)
1235
- this.setLabelValue('安装点数', null)
1236
- return
1237
- }
1238
- },
1239
- // 报建性质失去焦点
1240
- 'applyNatureChange' (index) {
1241
- if (this.show_data.f_apply_nature === '散户') {
1242
- this.hideLabels('营业执照', '小区')
1243
- this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1244
- }
1245
- if (this.show_data.f_apply_nature === '小区') {
1246
- this.showLabels('营业执照', '小区')
1247
- this.requiredLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1248
- }
1249
- },
1250
- // ===========================================
1251
- 'initializtionView' () {
1252
- if (this.show_data.f_apply_nature === '散户') {
1253
- this.hideLabels('营业执照', '小区')
1254
- this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1255
- }
1256
- if (this.show_data.f_apply_nature === '小区') {
1257
- this.showLabels('营业执照', '小区')
1258
- this.requiredLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1259
- // this.hideComponents('用户花名单')
1260
- }
1261
- },
1262
- // 检查重复
1263
- 'checkRepeat' (index) {
1264
- this.checkDuplicate(index)
1265
- },
1266
- async 'button'() {
1267
- if (this.show_data.button.before) {
1268
- await this[this.show_data.button.before]()
1269
- }
1270
- // 点击重置按钮就重置数据
1271
- if (this.show_data.button.button_name === '重置') {
1272
- this.$dispatch('breakControl', this.selectdata)
1273
- return
1274
- }
1275
-
1276
- this.show_data.start_activity = this.$workflow_vue.start_activity
1277
- this.show_data.xmlfilename = this.$workflow_vue.workflow_xmlfilename
1278
-
1279
- let data = {
1280
- apply: this.show_data,
1281
- user: this.$login.f
1282
- }
1283
-
1284
- let res = await this.$resetpost(
1285
- `rs/logic/ApplyProductService`,
1286
- {data: data},
1287
- {resolveMsg: null, rejectMsg: '数据保存失败'}
1288
- )
1289
-
1290
- if (this.show_data.button.after) {
1291
- this[this.show_data.button.after]()
1292
- }
1293
- this.$dispatch('loadPage')
1294
- },
1295
- // 失去焦点出触发事件
1296
- 'onchange' (index) {
1297
- },
1298
- selectSearch (val, index) {},
1299
- 'onblur' (index) {},
1300
- 'oninput' (index) {},
1301
- async 'onchangeModal' (index, fieldIndex) {
1302
- },
1303
- async 'onblurModal' (index, fieldIndex) {
1304
-
1305
- },
1306
- async 'oninputModal' (index, fieldIndex) {
1307
-
1308
- },
1309
- async 'onetomanydelete' (index, rowIndex) {
1310
-
1311
- let http = new HttpResetClass()
1312
-
1313
- let res = await http.load(
1314
- 'DELETE',
1315
- `rs/entity/${this.show_data.onetomany[index].tables[0]}/${this.show_data.onetomany[index].rows[rowIndex].id}`,
1316
- null,
1317
- {resolveMsg: null, rejectMsg: '删除失败!!!'}
1318
- )
1319
-
1320
- res = await this.$resetpost(
1321
- 'rs/entity/t_apply',
1322
- this.show_data
1323
- )
1324
-
1325
- this.$dispatch('breakControl', this.show_data)
1326
- },
1327
- async 'onetomanyupdate' (index, rowIndex) {
1328
- let data = this.show_data.onetomany[index].rows[rowIndex]
1329
-
1330
- this.show_data.onetomany[index].fields.forEach(item => {
1331
- data[item.field] = item.value
1332
- })
1333
- let res = await this.$resetpost(
1334
- `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
1335
- data
1336
- )
1337
-
1338
- res = await this.$resetpost(
1339
- 'rs/entity/t_apply',
1340
- this.show_data
1341
- )
1342
-
1343
- this.$dispatch('breakControl', this.show_data)
1344
- },
1345
- async 'onetomanyadd' (index) {
1346
- let data = {
1347
- f_process_id : this.show_data.f_process_id,
1348
- f_operator_id: this.$login.f.id,
1349
- f_operator: this.$login.f.name,
1350
- f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
1351
- f_orgid: this.$login.f.orgid,
1352
- f_orgname: this.$login.f.orgs
1353
- }
1354
- this.show_data.onetomany[index].fields.forEach(item => {
1355
- data[item.field] = item.value
1356
- })
1357
- let res = await this.$resetpost(
1358
- `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
1359
- data
1360
- )
1361
-
1362
- res = await this.$resetpost(
1363
- 'rs/entity/t_apply',
1364
- this.show_data
1365
- )
708
+ let data = {
709
+ f_process_id : this.show_data.f_process_id
710
+ }
711
+ this.show_data.onetomany[index].fields.forEach(item => {
712
+ data[item.field] = item.value
713
+ })
714
+ let res = await this.$resetpost(
715
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
716
+ data
717
+ )
718
+ this.$dispatch('breakControl', this.show_data)
719
+ },
720
+ async 'onetomanyupdate'(i, j) {
721
+ let onetomany = this.show_data.onetomany[i]
722
+ let data = onetomany.rows[j]
723
+
724
+ onetomany.fields.forEach(item => {
725
+ data[item.field] = item.value
726
+ })
727
+ let res = await this.$resetpost(
728
+ `rs/entity/${this.show_data.onetomany[i].tables[0]}`,
729
+ data
730
+ )
1366
731
 
1367
- this.$dispatch('breakControl', this.show_data)
1368
- },
1369
- 'complyInstallation' (index) {
1370
- if (this.show_data.f_accept_install === '' || this.show_data.f_survey_opinion === '否') {
1371
- console.log("测试")
1372
- this.hideButtons('下发','提交')
1373
- this.showButtons('终止')
1374
- } else {
1375
- this.hideButtons('终止')
1376
- this.showButtons('下发','提交')
732
+ this.$dispatch('breakControl', this.show_data)
733
+ },
734
+ // onetomany模态框监听事件
735
+ async 'onchange_modal'(index, i) {
736
+ },
737
+ async 'oninput_modal'(index, i) {
1377
738
  }
1378
739
  },
1379
- async 'importEvent' (index, table, configName, filepath) {
1380
- let data = {
1381
- selectdata: this.show_data,
1382
- table: table,
1383
- filepath: filepath,
1384
- configName: configName,
1385
- user: this.$login.f
1386
- }
1387
-
1388
- let res = await this.$resetpost(
1389
- `rs/logic/importEvent`,
1390
- data
1391
- )
1392
-
1393
- this.$dispatch('breakControl', this.show_data)
1394
- },
1395
- 'onbutchange' (index) {
1396
-
1397
- },
1398
- 'onbutblur' (index) {
1399
-
1400
- },
1401
- 'onbutinput' (index) {
1402
-
740
+ watch: {
1403
741
  }
1404
- },
1405
- watch: {
1406
742
  }
1407
- }
1408
743
  </script>
1409
744
  <style scoped>
1410
- /*清除model中的浮动*/
1411
- .clearfix:after,.clearfix:before{
1412
- display: table;
1413
- }
1414
- .clearfix:after{
1415
- clear: both;
1416
- }
745
+ /*清除model中的浮动*/
746
+ .clearfix:after,.clearfix:before{
747
+ display: table;
748
+ }
749
+ .clearfix:after{
750
+ clear: both;
751
+ }
1417
752
  </style>