apply-clients 7.1.33 → 7.1.36

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