apply-clients 7.1.40 → 7.1.41

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 (611) 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 -86
  428. package/src/applyAndroid.js +39 -56
  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 -140
  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 -395
  453. package/src/components/product/Process/ExplorationUser.vue +135 -151
  454. package/src/components/product/Process/Processes/InstallationDetails.vue +311 -619
  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 -1313
  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 -393
  464. package/src/components/product/Supervisory/SupervisoryControl.vue +121 -110
  465. package/src/components/product/Supervisory/SupervisoryList.vue +208 -280
  466. package/src/components/product/Supervisory/SupervisoryhCart.vue +36 -52
  467. package/src/components/product/VueUtils/ApplyUpload.vue +52 -67
  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 -154
  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 -219
  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 -395
  566. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +0 -432
  567. package/src/components/android/Process/AppExplorationUser.vue +0 -352
  568. package/src/components/android/Process/AppServiceControl.vue +0 -1051
  569. package/src/components/android/Process/Processes/AppDevicesManagement.vue +0 -336
  570. package/src/components/android/Process/Processes/AppInstallationDetails.vue +0 -776
  571. package/src/components/android/Process/Processes/SurveyUserSign.vue +0 -62
  572. package/src/components/android/Sign/AppSignTask.vue +0 -183
  573. package/src/components/android/Sign/SignProcess.vue +0 -103
  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/BuildIgnition/BuildIgnition.vue +0 -114
  578. package/src/components/android/Task/Survey/SurveyTsak.vue +0 -112
  579. package/src/components/android/Task/UpBuild/UpBuildTsak.vue +0 -95
  580. package/src/components/android/TaskGraph.vue +0 -130
  581. package/src/components/android/newPackage/customerServiceManager.vue +0 -218
  582. package/src/components/android/newPackage/designDrawings.vue +0 -94
  583. package/src/components/android/newPackage/detailedData.vue +0 -24
  584. package/src/components/android/newPackage/projectPrice.vue +0 -218
  585. package/src/components/product/Ignition/IgnitionDispatch.vue +0 -348
  586. package/src/components/product/Ignition/IgnitionRecord.vue +0 -308
  587. package/src/components/product/Onetomany.vue +0 -377
  588. package/src/components/product/Print/BuildOrder/buildOrderList.vue +0 -288
  589. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +0 -230
  590. package/src/components/product/Process/Processes/ApplyMapCom.vue +0 -83
  591. package/src/components/product/Process/Processes/ExhibitionPicture.vue +0 -27
  592. package/src/components/product/Process/Processes/Print/img/10101.png +0 -0
  593. package/src/components/product/Process/Processes/Print/img/1010109.png +0 -0
  594. package/src/components/product/Process/Processes/Print/img/1010110.png +0 -0
  595. package/src/components/product/Process/Processes/Print/img/1010111.png +0 -0
  596. package/src/components/product/Process/Processes/Print/img/1010112.png +0 -0
  597. package/src/components/product/Process/Processes/Print/printCharge.vue +0 -142
  598. package/src/components/product/Process/Processes/devicesManagement.vue +0 -360
  599. package/src/components/product/Process/Processes/satisfactionShow.vue +0 -202
  600. package/src/components/product/Process/Processes/selectApply.vue +0 -250
  601. package/src/components/product/Process/Processes/selectUserinfo.vue +0 -231
  602. package/src/components/product/Process/Service/ShowBackReason.vue +0 -33
  603. package/src/components/product/Stop/StopApply.vue +0 -105
  604. package/src/components/product/Stop/StopApplyList.vue +0 -224
  605. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +0 -167
  606. package/src/components/product/VueUtils/HighMeter.vue +0 -208
  607. package/src/expandcssAndroid.less +0 -1034
  608. package/src/public/history/HistoryApplyList.vue +0 -108
  609. package/src/public/history/PublicHistoryApply.vue +0 -39
  610. package/src/public/history/PublicSupervisoryhCart.vue +0 -72
  611. package/src/public/order/PublicOrderApply.vue +0 -387
@@ -1,1419 +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.$showMessage('现场勘察未签字,无法提交!!!')
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}' and f_doc_title like '%委托施工合同' `
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.$showMessage('用户未签订完成,无法提交!!!')
544
- throw '用户未签订完成,无法提交!'
545
- }
546
- },
547
- // 施工前置
548
- async constructionBefore () {
549
- await this.userSignBefore()
550
- if (this.show_data.f_apply_nature !== '小区') {
551
- let http = new HttpResetClass()
552
- let data = {
553
- condition: `ui.f_process_id = '${this.show_data.f_process_id}' and f_meternumber is null`
554
- }
555
- let res = await http.load(
556
- 'POST',
557
- 'rs/sql/countApplyUserinfo',
558
- {data: data},
559
- {
560
- resolveMsg: null,
561
- rejectMsg: '安装明细查询失败!!!'
562
- })
563
- if (res.data[0].num > 0) {
564
- this.$showMessage(`还有${res.data[0].num}户未安装,无法提交`)
565
- throw `还有${res.data[0].num}户未安装,无法提交`
566
- }
567
- }
568
- },
569
- async userSignBefore() {
570
- let http = new HttpResetClass()
571
- let data = {
572
- tablename: 't_files',
573
- condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fremarks = '报装手机签字文件'`
574
- }
575
- let res = await http.load(
576
- 'POST',
577
- `rs/sql/applySingleTable`,
578
- {data: data},
579
- {resolveMsg: null, rejectMsg: null}
580
- )
581
- if (res.data.length <= 0) {
582
- this.$showMessage('用户未签字,无法提交!!!')
583
- throw '用户未签字,无法提交!'
584
- }
585
- },
586
- addressInitialization () {
587
- this.$getConfig(this, 'UserAddress')
588
-
589
- let f_address_type = this.show_data.f_address_type
590
-
591
- for (const item of this.show_data.fields) {
592
- if (f_address_type === '民用市区') {
593
- if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
594
- item.hidden = false
595
- 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);
596
324
  }
597
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
598
- item.hidden = false
599
- 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 || ''
600
333
  }
601
- if (item.label === '地址') {
602
- item.readonly = true
334
+ if (item.label === label && item.type === 'number') {
335
+ return item.value || 0
603
336
  }
604
337
  }
605
- if (f_address_type === '民用乡镇') {
606
- if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
607
- item.hidden = false
608
- 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
609
343
  }
610
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
611
- item.hidden = false
612
- 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
613
377
  }
614
- if (item.label === '楼层') {
615
- item.hidden = true
378
+ if (item.label === '小区' && this.show_data.f_address_type === '特殊地址') {
616
379
  item.required = false
617
380
  }
618
- if (item.label === '地址') {
619
- item.readonly = true
620
- }
621
- }
622
- if (f_address_type === '特殊地址') {
623
- if (item.label === '区/县' || item.label === '街道/乡镇') {
624
- 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
+ ) {
625
389
  item.required = true
626
- }
627
- if (item.label === '集收单位') {
628
390
  item.hidden = false
629
- item.required = false
391
+ item.value = null
630
392
  }
631
- if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层' || item.label === '门牌号') {
632
- 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
+ ) {
633
401
  item.required = false
634
- }
635
- if (item.label === '地址') {
636
- item.readonly = false
402
+ item.hidden = true
403
+ item.value = null
637
404
  }
638
405
  }
639
-
640
- if (this.show_data.f_apply_source === '线下发起' && item.label === '预约地址') {
641
- item.hidden = true
642
- }
643
- }
644
- },
645
- async streetChange () {
646
- if (isEmpty(this.show_data.f_street)) {
647
- return
648
- }
649
-
650
- let data = {
651
- tablename: 't_area',
652
- condition: `f_filialeid = '${this.$login.f.orgid}' and f_street = '${this.show_data.f_street}'`
653
- }
654
- let http = new HttpResetClass()
655
- let res = await http.load(
656
- 'POST',
657
- `rs/sql/applySingleTable`,
658
- {data: data},
659
- {resolveMsg: null, rejectMsg: '集收单位查询失败!!!'}
660
- )
661
-
662
- this.setLabelOptions('集收单位', res.data.map(item => {
663
- return {
664
- label: item.f_residential_area,
665
- 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('区/县')}'`
666
414
  }
667
- }))
668
- },
669
- async pcdChange () {
670
- if (isEmpty(this.show_data.f_pcd)) {
671
- return
672
- }
673
415
 
674
- let data = {
675
- tablename: 't_street',
676
- condition: `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}'`
677
- }
678
- let f_address_type = this.getLableValue('地址类型')
416
+ let res = await this.$resetpost(
417
+ `rs/sql/getApplyAddress`,
418
+ {data: data},
419
+ {resolveMsg: null, rejectMsg: '街道查询失败,请重新进入!!!'}
420
+ )
679
421
 
680
- if (f_address_type === '民用市区') {
681
- data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '市区'`
682
- }
683
- if (f_address_type === '民用乡镇') {
684
- data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '乡镇'`
685
- }
422
+ let streetList = []
686
423
 
687
- let http = new HttpResetClass()
688
- let res = await http.load(
689
- 'POST',
690
- `rs/sql/applySingleTable`,
691
- {data: data},
692
- {resolveMsg: null, rejectMsg: '街道/乡镇查询失败!!!'}
693
- )
424
+ res.data.forEach(item => {
425
+ streetList.push({
426
+ label: item.f_name,
427
+ value: item.f_name
428
+ })
429
+ })
694
430
 
695
- this.setLabelOptions('街道/乡镇', res.data.map(item => {
696
- return {
697
- label: item.f_street,
698
- 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('街道')}'`
699
443
  }
700
- }))
701
- },
702
- async getConstructionWorker(){
703
- let data = {
704
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
705
- userid: this.$login.f.id
706
- }
707
444
 
708
- let res = await this.$resetpost(
709
- `${this.$androidUtil.getProxyUrl()}/rs/search`,
710
- {data: data},
711
- {resolveMsg: null, rejectMsg: '现场负责人查询失败!!!'}
712
- )
445
+ let res = await this.$resetpost(
446
+ `rs/sql/getApplyAddress`,
447
+ {data: data},
448
+ {resolveMsg: null, rejectMsg: '小区查询失败,请重新进入!!!'}
449
+ )
713
450
 
714
- return res.data.map(item => {
715
- return {
716
- label: item.name,
717
- value: item.name
718
- }
719
- })
720
- },
721
- // 安装单位
722
- async getConstructionUnit () {
723
- let data = {
724
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
725
- userid: this.$login.f.id
726
- }
451
+ let areaList = []
727
452
 
728
- let res = await this.$resetpost(
729
- 'rs/search',
730
- {data: data},
731
- {resolveMsg: null, rejectMsg: '安装单位人员查询失败!!!'}
732
- )
453
+ res.data.forEach(item => {
454
+ areaList.push({
455
+ label: item.f_name,
456
+ value: item.f_name
457
+ })
458
+ })
733
459
 
734
- return res.data.map(item => {
735
- return {
736
- label: item.name,
737
- value: item.id
460
+ for (const item of this.show_data.fields) {
461
+ if (item.label === '小区') {
462
+ item.options = areaList
463
+ }
738
464
  }
739
- })
740
- },
741
- // 建设单位
742
- async getConstructOperator () {
743
- let data = {
744
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
745
- userid: this.$login.f.id
746
465
  }
747
466
 
748
- let res = await this.$resetpost(
749
- 'rs/search',
750
- {data: data},
751
- {resolveMsg: null, rejectMsg: '建设单位人员查询失败!!!'}
752
- )
753
-
754
- return res.data.map(item => {
755
- return {
756
- label: item.name,
757
- value: item.id
758
- }
759
- })
760
467
  },
761
- // 监理单位
762
- async getSupervisorOperator () {
763
- let data = {
764
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
765
- userid: this.$login.f.id
766
- }
468
+ events: {
767
469
 
768
- let res = await this.$resetpost(
769
- 'rs/search',
770
- {data: data},
771
- {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
772
- )
470
+ 'openAddModel'(index) {
773
471
 
774
- return res.data.map(item => {
775
- return {
776
- label: item.name,
777
- 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
778
481
  }
779
- })
780
- },
781
- // 土建单位
782
- async getEngineeringOperator () {
783
- let data = {
784
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
785
- userid: this.$login.f.id
786
- }
787
-
788
- let res = await this.$resetpost(
789
- 'rs/search',
790
- {data: data},
791
- {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
792
- )
793
- let result = res.data.map(item => {
794
- return {
795
- label: item.name,
796
- 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
+ }
797
494
  }
798
- })
799
- if(this.selectdata.f_apply_nature === '散户'){
800
- result.push({label:'用户自理',value:'用户自理'})
801
- }
802
- return result
803
- },
804
- // 检测单位
805
- async getCheckOperator () {
806
- let data = {
807
- source: 'this.getParentByType($organization$).getChildByName($营业厅报装$).getChildren()',
808
- userid: this.$login.f.id
809
- }
810
495
 
811
- let res = await this.$resetpost(
812
- 'rs/search',
813
- {data: data},
814
- {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
815
- )
816
-
817
- return res.data.map(item => {
818
- return {
819
- label: item.name,
820
- value: item.id
496
+ // 提交前置
497
+ try {
498
+ model = await this.buttonBefore(model)
499
+ } catch (e) {
500
+ this.$showAlert(e, 'warning', 3000)
501
+ return
821
502
  }
822
- })
823
- },
824
- // 获取气表品牌
825
- async getMeterBrand () {
826
- let data = {
827
- }
828
-
829
- let http = new HttpResetClass()
830
- let res = await http.load(
831
- 'POST',
832
- `rs/sql/getMeterBrand`,
833
- {data: data},
834
- {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
835
- )
836
-
837
- return res.data
838
- },
839
- async stopApply () {
840
- console.log('终止报建!!!!!')
841
-
842
- if (this.show_data.defname === '报建受理') {
843
- this.show_data.f_stop_reason = this.show_data.f_accept_result
844
- }
845
- if (this.show_data.defname === '现场勘察') {
846
- this.show_data.f_stop_reason = this.show_data.f_prospecting_result
847
- }
848
503
 
849
- let data = {
850
- apply: this.show_data,
851
- user: this.$login.f
852
- }
853
-
854
- let res = await this.$resetpost(
855
- `rs/logic/stopApply`,
856
- {data: data},
857
- {resolveMsg: null, rejectMsg: '终止报建失败!!!'}
858
- )
859
-
860
- this.$dispatch('loadPage')
861
-
862
- throw '终止报建!!!'
863
- },
864
- // 获取小区
865
- async getResidentialArea () {
866
- let data = {
867
- tablename: 't_area_address',
868
- condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用'`
869
- }
870
- let http = new HttpResetClass()
871
- let res = await http.load(
872
- 'POST',
873
- `rs/sql/applySingleTable`,
874
- {data: data},
875
- {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
876
- )
877
- return res.data.map(item => {
878
- return {
879
- label: item.f_residential_area,
880
- value: item.id
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
+ }
881
522
  }
882
- })
883
- },
884
- async getContractSignatory () {
885
- let data = {
886
- 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 = '签章成功'`
887
- }
888
- let http = new HttpResetClass()
889
- let res = await http.load(
890
- 'POST',
891
- `rs/sql/getAuthSubjectList`,
892
- {data: data},
893
- {resolveMsg: null, rejectMsg: '签署人查询失败!!!'}
894
- )
895
- return res.data.map(item => {
896
- return {
897
- label: item.f_subject_name,
898
- 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
+ }
899
572
  }
900
- })
901
- },
902
- // 地址拼接
903
- addressSplicing () {
904
- let f_area = this.getLableValue('区/县') ? this.getLableValue('区/县') + '-' : ''
905
- let f_slice_area = this.getLableValue('片区') ? this.getLableValue('片区') + '-' : ''
906
- let f_street = this.getLableValue('街道') || ''
907
-
908
- let f_address = f_area + f_slice_area + f_street
909
- this.setLabelValue("地址", f_address)
910
- },
911
- },
912
- events: {
913
- // 强制开关阀
914
- async 'onOffValve' () {
915
- let data = {
916
- condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
917
- }
918
- let http = new HttpResetClass()
919
- let res = await http.load(
920
- 'POST',
921
- `rs/sql/getApplyUserinfo`,
922
- {data: data},
923
- {resolveMsg: null, rejectMsg: '档案获取失败!!!'}
924
- )
925
-
926
- let userinfo = res.data[0]
927
-
928
- if (this.show_data.button.button_name !== '退出强制状态') {
929
- data = {
930
- condition: `t_userfiles.f_meternumber = '${userinfo.f_meternumber}'`,
931
- contentData: {
932
- isOpen: this.show_data.button.button_name === '强制开阀' ? 1 : 0
933
- },
934
- inputtor: this.$login.f.name,
935
- instructTitle: this.show_data.button.button_name === '强制开阀' ? '开阀' : '关阀',
936
- instructType: '阀门控制',
937
- 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
+ }
938
634
  }
939
- res = await http.load(
940
- 'POST',
941
- `rs/logic/saveInstruct`,
942
- {data: data},
943
- {resolveMsg: null, rejectMsg: `${this.show_data.button.button_name}失败!!!`}
944
- )
945
- }
946
-
947
- data = {
948
- f_user_id: userinfo.f_user_id,
949
- f_userinfo_id: userinfo.f_userinfo_id,
950
- record: {
951
- f_filiale: this.$login.f.f_fengongsi,
952
- f_instruct_meta_data: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
953
- f_instruct_title: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
954
- f_instruct_type: '阀门控制',
955
- f_meternumber: userinfo.f_meternumber,
956
- f_operator: this.$login.f.name,
957
- f_outlets: userinfo.f_outlets,
958
- f_reason: this.show_data.button.f_reason,
959
- f_user_id: userinfo.f_user_id,
960
- f_userinfo_id: userinfo.f_userinfo_id
961
- },
962
- state: this.show_data.button.button_name === '退出强制状态' ? 0 : 1
963
- }
964
-
965
- res = await http.load(
966
- 'POST',
967
- `rs/logic/updateNetWorkValve`,
968
- {data: data},
969
- {resolveMsg: '执行成功!!!', rejectMsg: `执行失败!!!`}
970
- )
971
-
972
- },
973
- // 修改用户档案
974
- async 'updateUserinfoState' () {
975
- let data = {
976
- f_userinfo_id: this.show_data.f_userinfo_id
977
- }
978
- let http = new HttpResetClass()
979
- let res = await http.load(
980
- 'POST',
981
- `rs/logic/updateUserinfoState`,
982
- {data: data},
983
- {resolveMsg: '该用户档案已为正常档案,可进行开关阀操作!!!', rejectMsg: '档案状态修改失败!!!'}
984
- )
985
-
986
- this.showButtons('强制开阀','强制关阀')
987
- this.hideButtons('转正式档案')
988
- },
989
- // 选择用户
990
- async 'selectUserinfo' (row) {
991
- this.setLabelValue('用户编号', row.f_userinfo_id)
992
- this.setLabelValue('用户名称', row.f_user_name)
993
- this.setLabelValue('用户电话', row.f_user_phone)
994
- this.setLabelValue('证件类型', row.f_credentials)
995
- this.setLabelValue('证件号码', row.f_idnumber)
996
- this.setLabelValue('地址', row.f_address)
997
- this.setLabelValue('定位地址', row.f_location_address)
998
-
999
- this.show_data.f_userinfo_id = row.f_userinfo_id
1000
- },
1001
- async 'getPrice' (index) {
1002
- if (isEmpty(this.show_data.f_gas_nature) || isEmpty(this.show_data.f_price_type)) {
1003
- return
1004
- }
1005
-
1006
- if (index) {
1007
- this.setLabelValue('气价名称', null)
1008
- }
1009
-
1010
- if (this.show_data.f_price_type === '混合气价') {
1011
- this.showLabels('比率')
1012
- } else {
1013
- this.setLabelValue('比率', null)
1014
- this.hideLabels('比率')
1015
- }
1016
-
1017
- let data = {
1018
- 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}'`
1019
- }
1020
-
1021
- if (this.show_data.f_apply_type === '民用报建') {
1022
- data.condition += `and f_user_type = '民用'`
1023
- }
1024
- if (this.show_data.f_apply_type === '非民用报建') {
1025
- data.condition += `and f_user_type = '非民用'`
1026
- }
1027
-
1028
-
1029
- let http = new HttpResetClass()
1030
- let res = await http.load(
1031
- 'POST',
1032
- `rs/sql/applyGetPrice`,
1033
- {data: data},
1034
- {resolveMsg: null, rejectMsg: '气价查询失败!!!'}
1035
- )
1036
-
1037
- this.setLabelOptions('气价名称', res.data.map(item => {
1038
- return {
1039
- label: item.f_price_name,
1040
- 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
+ }
1041
644
  }
1042
- }))
1043
- },
1044
- // 街道失去焦点
1045
- async changStreet () {
1046
- if (isEmpty(this.show_data.f_street)) {
1047
- return
1048
- }
1049
- this.addressSplicing()
1050
- },
1051
- // 片区失去焦点
1052
- async 'changSliceArea' () {
1053
- if (isEmpty(this.show_data.f_area) || isEmpty(this.show_data.f_slice_area)) {
1054
- return
1055
- }
1056
-
1057
- let data = {
1058
- items: 'f_street label,f_street value',
1059
- tablename: 't_area_address',
1060
- condition: `f_area = '${this.show_data.f_area}' and f_slice_area = '${this.show_data.f_slice_area}'`,
1061
- groupitem: 'f_street'
1062
- }
1063
-
1064
- let http = new HttpResetClass()
1065
- let res = await http.load(
1066
- 'POST',
1067
- `rs/sql/applySingleTable`,
1068
- {data: data},
1069
- {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1070
- )
1071
- this.setLabelOptions('街道', res.data)
1072
-
1073
- this.addressSplicing()
1074
- },
1075
- // 区县市区焦点
1076
- 'changeArea' () {
1077
- if (isEmpty(this.show_data.f_area)) {
1078
- return
1079
- }
1080
- this.setLabelValue('片区', null)
1081
- this.setLabelValue('街道', null)
1082
- this.setLabelOptions('片区', this.$appdata.getParam(`${this.show_data.f_area}片区`))
1083
- this.setLabelOptions('街道', [])
1084
-
1085
- this.addressSplicing()
1086
- },
1087
- // 开启签字
1088
- async 'startSignActivity' () {
1089
- this.hideButtons('签字')
1090
- // await this.userSignBefore()
1091
-
1092
- let data = {
1093
- apply: this.show_data,
1094
- user: this.$login.f
1095
- }
1096
-
1097
- let res = await this.$resetpost(
1098
- `rs/logic/startSignActivity`,
1099
- {data: data},
1100
- {resolveMsg: '签字流程已发起!!!', rejectMsg: '签字发起失败!!!'}
1101
- )
1102
-
1103
- this.$dispatch('breakControl', this.show_data)
1104
- },
1105
- // 工程施工初始化
1106
- async 'buildReadyEvent' () {
1107
- if(this.getLableValue('是否发起签字') === '是') {
1108
- this.hideButtons('签字')
1109
- }
1110
-
1111
- let data = {
1112
- f_process_id: this.show_data.f_process_id
1113
- }
1114
- let http = new HttpResetClass()
1115
- let res = await http.load(
1116
- 'POST',
1117
- `rs/sql/getSingAct`,
1118
- {data: data},
1119
- {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1120
- )
1121
- if (res.data.length > 0) {
1122
- this.setLabelValue('签字所在环节', res.data[0].defname)
1123
- return
1124
- }
1125
- this.setLabelValue('签字所在环节', null)
1126
-
1127
- if (isEmpty(this.show_data.f_meter_brand)) {
1128
- return
1129
- }
1130
- data = {
1131
- f_gasbrand_id: this.show_data.f_meter_brand
1132
- }
1133
- res = await http.load(
1134
- 'POST',
1135
- `rs/sql/getGasModel`,
1136
- {data: data},
1137
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1138
- )
1139
- 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
+ }
1140
682
 
1141
- if (this.show_data.f_apply_type === '分户挂表') {
1142
- let data = {
1143
- condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
683
+ }
1144
684
  }
685
+ },
686
+ // onetomany模态框默认监听监听事件
687
+ async 'onetomanydelete'(i, j) {
688
+ console.log('默认删除')
1145
689
  let http = new HttpResetClass()
1146
- let res = await http.load(
1147
- 'POST',
1148
- `rs/sql/getApplyUserinfo`,
1149
- {data: data},
1150
- {resolveMsg: null, rejectMsg: '档案状态获取失败!!!'}
1151
- )
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
+ })
1152
698
 
1153
- if (res.data[0].f_meter_classify !== '物联网表') {
699
+ if (res.data <= 0){
700
+ this.$showMessage('删除失败')
1154
701
  return
1155
702
  }
1156
- if (res.data[0].f_user_state === '正常') {
1157
- this.showButtons('退出强制状态','强制关阀')
1158
- this.hideButtons('转正式档案')
1159
- } else {
1160
- this.showButtons('转正式档案')
1161
- this.hideButtons('退出强制状态','强制关阀')
1162
- }
1163
- }
1164
- },
1165
- // 工程派工初始化
1166
- async 'dispatchReadyEvent' () {
1167
- if (isEmpty(this.show_data.f_meter_brand)) {
1168
- return
1169
- }
1170
- let data = {
1171
- f_gasbrand_id: this.show_data.f_meter_brand
1172
- }
1173
- let http = new HttpResetClass()
1174
- let res = await http.load(
1175
- 'POST',
1176
- `rs/sql/getGasModel`,
1177
- {data: data},
1178
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1179
- )
1180
703
 
1181
- this.setLabelOptions('气表型号', res.data)
1182
- },
1183
- // 气表品牌失去焦点
1184
- async 'meterBrandChenge' (index) {
1185
- if (isEmpty(this.show_data.f_meter_brand)) {
1186
- return
1187
- }
1188
- this.setLabelValue('气表型号', null)
1189
- let data = {
1190
- f_gasbrand_id: this.show_data.f_meter_brand
1191
- }
1192
- let http = new HttpResetClass()
1193
- let res = await http.load(
1194
- 'POST',
1195
- `rs/sql/getGasModel`,
1196
- {data: data},
1197
- {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1198
- )
704
+ this.$dispatch('breakControl', this.show_data)
705
+ },
706
+ async 'onetomanyadd'(index) {
1199
707
 
1200
- this.setLabelOptions('气表型号', res.data)
1201
- },
1202
- // 单价失去焦点
1203
- async 'priceChange' (index) {
1204
- if (isEmpty(this.show_data.f_price)) {
1205
- return
1206
- }
1207
- let data = {
1208
- operator: '*',
1209
- num1: this.show_data.f_price,
1210
- num2: this.show_data.f_install_count
1211
- }
1212
- let http = new HttpResetClass()
1213
- let res = await http.load(
1214
- 'POST',
1215
- `rs/logic/compute`,
1216
- {data: data},
1217
- {resolveMsg: null, rejectMsg: '工程材料费计算失败!!!'}
1218
- )
1219
-
1220
- this.setLabelValue('工程材料费', res.data)
1221
- },
1222
- // 安装户数失去焦点
1223
- 'installCountChange' (index) {
1224
- if (isEmpty(this.show_data.f_install_count)) {
1225
- return
1226
- }
1227
- if (Number(this.show_data.f_install_count) > Number(this.show_data.f_apply_count)) {
1228
- this.$showAlert('安装数已超过申请数!!!', 'warning', 3000)
1229
- // this.setLabelValue('安装户数', null)
1230
- // this.setLabelValue('安装点数', null)
1231
- // return
1232
- }
1233
-
1234
- if (Number(this.show_data.f_install_count) <= 0) {
1235
- this.$showAlert('至少有安装一个!!!', 'warning', 3000)
1236
- this.setLabelValue('安装户数', null)
1237
- this.setLabelValue('安装点数', null)
1238
- return
1239
- }
1240
- },
1241
- // 报建性质失去焦点
1242
- 'applyNatureChange' (index) {
1243
- if (this.show_data.f_apply_nature === '散户') {
1244
- this.hideLabels('营业执照', '小区')
1245
- this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1246
- }
1247
- if (this.show_data.f_apply_nature === '小区') {
1248
- this.showLabels('营业执照', '小区')
1249
- this.requiredLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1250
- }
1251
- },
1252
- // ===========================================
1253
- 'initializtionView' () {
1254
- if (this.show_data.f_apply_nature === '散户') {
1255
- this.hideLabels('营业执照', '小区')
1256
- this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1257
- }
1258
- if (this.show_data.f_apply_nature === '小区') {
1259
- this.showLabels('营业执照', '小区')
1260
- this.requiredLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话', '小区')
1261
- // this.hideComponents('用户花名单')
1262
- }
1263
- },
1264
- // 检查重复
1265
- 'checkRepeat' (index) {
1266
- this.checkDuplicate(index)
1267
- },
1268
- async 'button'() {
1269
- if (this.show_data.button.before) {
1270
- await this[this.show_data.button.before]()
1271
- }
1272
- // 点击重置按钮就重置数据
1273
- if (this.show_data.button.button_name === '重置') {
1274
- this.$dispatch('breakControl', this.selectdata)
1275
- return
1276
- }
1277
-
1278
- this.show_data.start_activity = this.$workflow_vue.start_activity
1279
- this.show_data.xmlfilename = this.$workflow_vue.workflow_xmlfilename
1280
-
1281
- let data = {
1282
- apply: this.show_data,
1283
- user: this.$login.f
1284
- }
1285
-
1286
- let res = await this.$resetpost(
1287
- `rs/logic/ApplyProductService`,
1288
- {data: data},
1289
- {resolveMsg: null, rejectMsg: '数据保存失败'}
1290
- )
1291
-
1292
- if (this.show_data.button.after) {
1293
- this[this.show_data.button.after]()
1294
- }
1295
- this.$dispatch('loadPage')
1296
- },
1297
- // 失去焦点出触发事件
1298
- 'onchange' (index) {
1299
- },
1300
- selectSearch (val, index) {},
1301
- 'onblur' (index) {},
1302
- 'oninput' (index) {},
1303
- async 'onchangeModal' (index, fieldIndex) {
1304
- },
1305
- async 'onblurModal' (index, fieldIndex) {
1306
-
1307
- },
1308
- async 'oninputModal' (index, fieldIndex) {
1309
-
1310
- },
1311
- async 'onetomanydelete' (index, rowIndex) {
1312
-
1313
- let http = new HttpResetClass()
1314
-
1315
- let res = await http.load(
1316
- 'DELETE',
1317
- `rs/entity/${this.show_data.onetomany[index].tables[0]}/${this.show_data.onetomany[index].rows[rowIndex].id}`,
1318
- null,
1319
- {resolveMsg: null, rejectMsg: '删除失败!!!'}
1320
- )
1321
-
1322
- res = await this.$resetpost(
1323
- 'rs/entity/t_apply',
1324
- this.show_data
1325
- )
1326
-
1327
- this.$dispatch('breakControl', this.show_data)
1328
- },
1329
- async 'onetomanyupdate' (index, rowIndex) {
1330
- let data = this.show_data.onetomany[index].rows[rowIndex]
1331
-
1332
- this.show_data.onetomany[index].fields.forEach(item => {
1333
- data[item.field] = item.value
1334
- })
1335
- let res = await this.$resetpost(
1336
- `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
1337
- data
1338
- )
1339
-
1340
- res = await this.$resetpost(
1341
- 'rs/entity/t_apply',
1342
- this.show_data
1343
- )
1344
-
1345
- this.$dispatch('breakControl', this.show_data)
1346
- },
1347
- async 'onetomanyadd' (index) {
1348
- let data = {
1349
- f_process_id : this.show_data.f_process_id,
1350
- f_operator_id: this.$login.f.id,
1351
- f_operator: this.$login.f.name,
1352
- f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
1353
- f_orgid: this.$login.f.orgid,
1354
- f_orgname: this.$login.f.orgs
1355
- }
1356
- this.show_data.onetomany[index].fields.forEach(item => {
1357
- data[item.field] = item.value
1358
- })
1359
- let res = await this.$resetpost(
1360
- `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
1361
- data
1362
- )
1363
-
1364
- res = await this.$resetpost(
1365
- 'rs/entity/t_apply',
1366
- this.show_data
1367
- )
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
+ )
1368
731
 
1369
- this.$dispatch('breakControl', this.show_data)
1370
- },
1371
- 'complyInstallation' (index) {
1372
- if (this.show_data.f_accept_install === '' || this.show_data.f_survey_opinion === '否') {
1373
- console.log("测试")
1374
- this.hideButtons('下发','提交')
1375
- this.showButtons('终止')
1376
- } else {
1377
- this.hideButtons('终止')
1378
- 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) {
1379
738
  }
1380
739
  },
1381
- async 'importEvent' (index, table, configName, filepath) {
1382
- let data = {
1383
- selectdata: this.show_data,
1384
- table: table,
1385
- filepath: filepath,
1386
- configName: configName,
1387
- user: this.$login.f
1388
- }
1389
-
1390
- let res = await this.$resetpost(
1391
- `rs/logic/importEvent`,
1392
- data
1393
- )
1394
-
1395
- this.$dispatch('breakControl', this.show_data)
1396
- },
1397
- 'onbutchange' (index) {
1398
-
1399
- },
1400
- 'onbutblur' (index) {
1401
-
1402
- },
1403
- 'onbutinput' (index) {
1404
-
740
+ watch: {
1405
741
  }
1406
- },
1407
- watch: {
1408
742
  }
1409
- }
1410
743
  </script>
1411
744
  <style scoped>
1412
- /*清除model中的浮动*/
1413
- .clearfix:after,.clearfix:before{
1414
- display: table;
1415
- }
1416
- .clearfix:after{
1417
- clear: both;
1418
- }
745
+ /*清除model中的浮动*/
746
+ .clearfix:after,.clearfix:before{
747
+ display: table;
748
+ }
749
+ .clearfix:after{
750
+ clear: both;
751
+ }
1419
752
  </style>