apply-clients 7.1.35 → 7.1.36-yuchuan-1

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 (514) hide show
  1. package/.eslintrc.js +5 -1
  2. package/android.html +9 -0
  3. package/build/css-loaders.js +34 -0
  4. package/build/dev-client.js +8 -0
  5. package/build/dev-server.js +172 -0
  6. package/build/example-server.js +80 -0
  7. package/build/release.sh +28 -0
  8. package/build/utils.js +80 -0
  9. package/build/webpack.base.conf.js +123 -0
  10. package/build/webpack.baseandroid.conf.js +123 -0
  11. package/build/webpack.dev.conf.js +43 -0
  12. package/build/webpack.devandroid.conf.js +34 -0
  13. package/build/webpack.example.conf.js +49 -0
  14. package/build/webpack.prod.conf.js +60 -0
  15. package/build/webpack.prodandroid.conf.js +60 -0
  16. package/dist-android.7z +0 -0
  17. package/dist.7z +0 -0
  18. package/index.html +10 -1
  19. package/package.json +14 -8
  20. package/src/AndroidApp.vue +21 -14
  21. package/src/App.vue +4 -6
  22. package/src/android-bootstrap/less/.csscomb.json +304 -0
  23. package/src/android-bootstrap/less/.csslintrc +19 -0
  24. package/src/android-bootstrap/less/alerts.less +73 -0
  25. package/src/android-bootstrap/less/badges.less +66 -0
  26. package/src/android-bootstrap/less/bootstrap.less +56 -0
  27. package/src/android-bootstrap/less/breadcrumbs.less +26 -0
  28. package/src/android-bootstrap/less/button-groups.less +247 -0
  29. package/src/android-bootstrap/less/buttons.less +173 -0
  30. package/src/android-bootstrap/less/carousel.less +269 -0
  31. package/src/android-bootstrap/less/close.less +34 -0
  32. package/src/android-bootstrap/less/code.less +69 -0
  33. package/src/android-bootstrap/less/component-animations.less +33 -0
  34. package/src/android-bootstrap/less/dropdowns.less +216 -0
  35. package/src/android-bootstrap/less/forms.less +626 -0
  36. package/src/android-bootstrap/less/glyphicons.less +305 -0
  37. package/src/android-bootstrap/less/grid.less +84 -0
  38. package/src/android-bootstrap/less/input-groups.less +167 -0
  39. package/src/android-bootstrap/less/jumbotron.less +52 -0
  40. package/src/android-bootstrap/less/labels.less +64 -0
  41. package/src/android-bootstrap/less/list-group.less +141 -0
  42. package/src/android-bootstrap/less/media.less +66 -0
  43. package/src/android-bootstrap/less/mixins/alerts.less +14 -0
  44. package/src/android-bootstrap/less/mixins/background-variant.less +9 -0
  45. package/src/android-bootstrap/less/mixins/border-radius.less +18 -0
  46. package/src/android-bootstrap/less/mixins/buttons.less +69 -0
  47. package/src/android-bootstrap/less/mixins/center-block.less +7 -0
  48. package/src/android-bootstrap/less/mixins/clearfix.less +22 -0
  49. package/src/android-bootstrap/less/mixins/forms.less +90 -0
  50. package/src/android-bootstrap/less/mixins/gradients.less +59 -0
  51. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -0
  52. package/src/android-bootstrap/less/mixins/grid.less +122 -0
  53. package/src/android-bootstrap/less/mixins/hide-text.less +21 -0
  54. package/src/android-bootstrap/less/mixins/image.less +33 -0
  55. package/src/android-bootstrap/less/mixins/labels.less +12 -0
  56. package/src/android-bootstrap/less/mixins/list-group.less +30 -0
  57. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -0
  58. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -0
  59. package/src/android-bootstrap/less/mixins/opacity.less +8 -0
  60. package/src/android-bootstrap/less/mixins/pagination.less +24 -0
  61. package/src/android-bootstrap/less/mixins/panels.less +24 -0
  62. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -0
  63. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -0
  64. package/src/android-bootstrap/less/mixins/reset-text.less +18 -0
  65. package/src/android-bootstrap/less/mixins/resize.less +6 -0
  66. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -0
  67. package/src/android-bootstrap/less/mixins/size.less +10 -0
  68. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -0
  69. package/src/android-bootstrap/less/mixins/table-row.less +44 -0
  70. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -0
  71. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -0
  72. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -0
  73. package/src/android-bootstrap/less/mixins.less +40 -0
  74. package/src/android-bootstrap/less/modals.less +151 -0
  75. package/src/android-bootstrap/less/navbar.less +660 -0
  76. package/src/android-bootstrap/less/navs.less +302 -0
  77. package/src/android-bootstrap/less/normalize.less +424 -0
  78. package/src/android-bootstrap/less/pager.less +76 -0
  79. package/src/android-bootstrap/less/pagination.less +89 -0
  80. package/src/android-bootstrap/less/panels.less +274 -0
  81. package/src/android-bootstrap/less/popovers.less +131 -0
  82. package/src/android-bootstrap/less/print.less +101 -0
  83. package/src/android-bootstrap/less/progress-bars.less +87 -0
  84. package/src/android-bootstrap/less/responsive-embed.less +35 -0
  85. package/src/android-bootstrap/less/responsive-utilities.less +194 -0
  86. package/src/android-bootstrap/less/scaffolding.less +161 -0
  87. package/src/android-bootstrap/less/tables.less +262 -0
  88. package/src/android-bootstrap/less/theme.less +291 -0
  89. package/src/android-bootstrap/less/thumbnails.less +36 -0
  90. package/src/android-bootstrap/less/tooltip.less +102 -0
  91. package/src/android-bootstrap/less/type.less +303 -0
  92. package/src/android-bootstrap/less/utilities.less +55 -0
  93. package/src/android-bootstrap/less/variables.less +896 -0
  94. package/src/android-bootstrap/less/wells.less +29 -0
  95. package/src/android.js +7 -4
  96. package/src/apply.js +83 -16
  97. package/src/applyAndroid.js +70 -28
  98. package/src/assets/marker-default.png +0 -0
  99. package/src/assets/myLocationIcon.png +0 -0
  100. package/src/assets//345/210/240/351/231/244.png +0 -0
  101. package/src/components/android/AppOnetomany.vue +301 -0
  102. package/src/components/android/AppServiceView.vue +603 -0
  103. package/src/components/android/AppSign.vue +231 -0
  104. package/src/components/android/AppTakePic.vue +142 -0
  105. package/src/components/android/AppUpload.vue +260 -0
  106. package/src/components/android/Ignition/VentilationIgnition.vue +408 -0
  107. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +455 -0
  108. package/src/components/android/Process/AppExplorationUser.vue +454 -0
  109. package/src/components/android/Process/AppServiceControl.vue +1397 -0
  110. package/src/components/android/Process/Processes/AppChaiChuInfo.vue +546 -0
  111. package/src/components/android/Process/Processes/AppDevicesManagement.vue +339 -0
  112. package/src/components/android/Process/Processes/AppInstallationDetails.vue +867 -0
  113. package/src/components/android/Process/Processes/SurveyUserSign.vue +65 -0
  114. package/src/components/android/Process/Processes/newAppDevicesManagement.vue +344 -0
  115. package/src/components/android/Process/Processes/newAppInstallationDetails.vue +669 -0
  116. package/src/components/android/Sign/AppSignTask.vue +183 -0
  117. package/src/components/android/Sign/SignProcess.vue +103 -0
  118. package/src/components/android/Supervisory/AppProcessSupervisory.vue +334 -0
  119. package/src/components/android/Supervisory/AppSupervisoryCart.vue +128 -0
  120. package/src/components/android/Task/Build/BuildTsak.vue +114 -0
  121. package/src/components/android/Task/BuildIgnition/BuildIgnition.vue +114 -0
  122. package/src/components/android/Task/RepairFromSend/RepairFrom.vue +124 -0
  123. package/src/components/android/Task/RepairFromSend/RepairSend.vue +124 -0
  124. package/src/components/android/Task/ShenHe/BuZhangShenHe.vue +64 -0
  125. package/src/components/android/Task/ShenHe/JingLiShenHe.vue +64 -0
  126. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +427 -0
  127. package/src/components/android/Task/ShiGongXinXi/ShowBuild.vue +95 -0
  128. package/src/components/android/Task/Survey/SurveyTsak.vue +141 -0
  129. package/src/components/android/Task/UpBuild/UpBuildDui.vue +95 -0
  130. package/src/components/android/Task/UpBuild/UpBuildTsak.vue +95 -0
  131. package/src/components/android/Task/UpBuild/UpJianLi.vue +95 -0
  132. package/src/components/android/TaskGraph.vue +130 -0
  133. package/src/components/android/newPackage/customerServiceManager.vue +218 -0
  134. package/src/components/android/newPackage/designDrawings.vue +94 -0
  135. package/src/components/android/newPackage/detailedData.vue +24 -0
  136. package/src/components/android/newPackage/projectPrice.vue +218 -0
  137. package/src/components/image/dwg.png +0 -0
  138. package/src/components/image/dxf.png +0 -0
  139. package/src/components/product/ApplyCharge/ApplyChargeList.vue +568 -73
  140. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +2 -2
  141. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianChargeList.vue +198 -0
  142. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianChargeSearch.vue +30 -0
  143. package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +235 -0
  144. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +323 -0
  145. package/src/components/product/ApplyGuanXian/GuanXianExplorationUser.vue +144 -0
  146. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -0
  147. package/src/components/product/ApplyGuanXian/TabButton.vue +157 -0
  148. package/src/components/product/ApplyGuanXian/Tabs.vue +67 -0
  149. package/src/components/product/ApplyMap/ApplyDragaboutList.vue +223 -0
  150. package/src/components/product/ApplyMap/ApplyInputSearch.vue +212 -0
  151. package/src/components/product/ApplyMap/ApplyMapCom.vue +82 -0
  152. package/src/components/product/ApplyMap/ApplyMapLocation.vue +850 -0
  153. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +414 -0
  154. package/src/components/product/ChongZheng/ApplyChongZhengSearch.vue +30 -0
  155. package/src/components/product/Function/InstallFunction.vue +56 -70
  156. package/src/components/product/Function/InstallInfoSelect.vue +193 -105
  157. package/src/components/product/Function/Service/FunctionServiceControl.vue +475 -245
  158. package/src/components/product/Ignition/IgnitionDispatch.vue +92 -0
  159. package/src/components/product/Ignition/IgnitionList.vue +236 -0
  160. package/src/components/product/Ignition/IgnitionListManage.vue +403 -0
  161. package/src/components/product/Ignition/IgnitionRecord.vue +357 -0
  162. package/src/components/product/List/ShowDevices.vue +279 -0
  163. package/src/components/product/Onetomany.vue +377 -0
  164. package/src/components/product/Print/BuildOrder/buildOrderList.vue +445 -0
  165. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +252 -0
  166. package/src/components/product/Print/BuildOrder/printGaiXianOrder.vue +232 -0
  167. package/src/components/product/Print/OrderPrint/GaiXianOrder.vue +281 -0
  168. package/src/components/product/Print/OrderPrint/printChaiChuOrder.vue +260 -0
  169. package/src/components/product/Print/img/R-C.jpg +0 -0
  170. package/src/components/product/Process/ExplorationSelect.vue +580 -347
  171. package/src/components/product/Process/ExplorationUser.vue +118 -98
  172. package/src/components/product/Process/NewExplorationUser.vue +184 -0
  173. package/src/components/product/Process/Processes/ApplyChaiChuInfo.vue +587 -0
  174. package/src/components/product/Process/Processes/ExhibitionPicture.vue +27 -0
  175. package/src/components/product/Process/Processes/InstallationDetails.vue +845 -276
  176. package/src/components/product/Process/Processes/Print/img/10101.png +0 -0
  177. package/src/components/product/Process/Processes/Print/img/1010109.png +0 -0
  178. package/src/components/product/Process/Processes/Print/img/1010110.png +0 -0
  179. package/src/components/product/Process/Processes/Print/img/1010111.png +0 -0
  180. package/src/components/product/Process/Processes/Print/img/1010112.png +0 -0
  181. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -0
  182. package/src/components/product/Process/Processes/Print/printPaymentApproval.vue +224 -0
  183. package/src/components/product/Process/Processes/Print/printPaymentSubject.vue +170 -0
  184. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +59 -113
  185. package/src/components/product/Process/Processes/chargeManagement.vue +492 -350
  186. package/src/components/product/Process/Processes/devicesManagement.vue +374 -0
  187. package/src/components/product/Process/Processes/newDevicesManagement.vue +379 -0
  188. package/src/components/product/Process/Processes/newInstallationDetails.vue +718 -0
  189. package/src/components/product/Process/Processes/satisfactionShow.vue +202 -0
  190. package/src/components/product/Process/Processes/selectApply.vue +250 -0
  191. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -0
  192. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -0
  193. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -0
  194. package/src/components/product/Process/Processes/supplementalAgreement.vue +182 -181
  195. package/src/components/product/Process/Service/ServiceControl.vue +2155 -856
  196. package/src/components/product/Process/Service/ShowBackReason.vue +33 -0
  197. package/src/components/product/Report/ReportItems.vue +79 -0
  198. package/src/components/product/Report/apply-stair-anzhuang.vue +361 -0
  199. package/src/components/product/Report/apply-stair-kaifa.vue +138 -0
  200. package/src/components/product/Report/apply-stair-tongqi.vue +137 -0
  201. package/src/components/product/Report/apply-stair-wtongqi.vue +138 -0
  202. package/src/components/product/ServiceView.vue +557 -680
  203. package/src/components/product/Stop/StopApply.vue +105 -0
  204. package/src/components/product/Stop/StopApplyList.vue +224 -0
  205. package/src/components/product/Supervisory/ExportExcel.vue +360 -0
  206. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +175 -0
  207. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +454 -73
  208. package/src/components/product/Supervisory/SupervisoryControl.vue +28 -35
  209. package/src/components/product/Supervisory/SupervisoryList.vue +536 -208
  210. package/src/components/product/Supervisory/SupervisoryhCart.vue +52 -36
  211. package/src/components/product/VueUtils/ApplyUpload.vue +70 -47
  212. package/src/components/product/VueUtils/HighMeter.vue +208 -0
  213. package/src/expandcssAndroid.less +1034 -0
  214. package/src/main.js +5 -1
  215. package/src/public/history/HistoryApplyList.vue +108 -0
  216. package/src/public/history/PublicHistoryApply.vue +39 -0
  217. package/src/public/history/PublicSupervisoryhCart.vue +72 -0
  218. package/src/public/order/PublicOrderApply.vue +387 -0
  219. package/static/images/lefticon/yingyechaxun.png +0 -0
  220. package/static/images/lefticon/zongheyewu.png +0 -0
  221. package/static/images/lefticon//345/220/210/345/220/214/347/256/241/347/220/206.png +0 -0
  222. package/{dist-android/static/denglu.png → static/images/lefticonNew//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png} +0 -0
  223. package/static/images/lefticonNew//345/220/210/345/220/214/347/256/241/347/220/206.png +0 -0
  224. package/static/images/lefticonNew//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  225. package/static/images/lefticonNew//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  226. package/static/images/lefticonNew//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  227. package/static/images/lefticonNew//345/233/276/345/261/202577.png +0 -0
  228. package/{dist-android/static/psicon.png → static/images/lefticonNew//345/233/276/345/261/2028/346/213/267/350/264/23513.png} +0 -0
  229. package/static/images/lefticonNew//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  230. package/static/images/lefticonNew//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  231. package/static/images/lefticonNew//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  232. package/static/images/lefticonNew//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  233. package/static/images/lefticonNew//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  234. package/static/images/lefticonNew//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  235. package/static/images/lefticonNew//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  236. package/static/images/lefticonNew//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  237. package/static/images/lefticonNew//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  238. package/static/images/lefticonNew//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  239. package/static/images/lefticonNew//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  240. package/static/images/lefticonNew//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  241. package/static/images/lefticonNew//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  242. package/static/images/lefticonNew//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  243. package/static/images/lefticonNew//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  244. package/static/images/lefticonNew//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  245. package/static/images/lefticonNew//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  246. package/yarn-error.log +9976 -0
  247. package/dist-android/index.html +0 -3
  248. package/dist-android/static/.gitkeep +0 -0
  249. package/dist-android/static/0.js +0 -2
  250. package/dist-android/static/0.js.map +0 -1
  251. package/dist-android/static/1.js +0 -2
  252. package/dist-android/static/1.js.map +0 -1
  253. package/dist-android/static/10.js +0 -2
  254. package/dist-android/static/10.js.map +0 -1
  255. package/dist-android/static/100.js +0 -2
  256. package/dist-android/static/100.js.map +0 -1
  257. package/dist-android/static/11.js +0 -2
  258. package/dist-android/static/11.js.map +0 -1
  259. package/dist-android/static/12.js +0 -2
  260. package/dist-android/static/12.js.map +0 -1
  261. package/dist-android/static/13.js +0 -2
  262. package/dist-android/static/13.js.map +0 -1
  263. package/dist-android/static/14.js +0 -2
  264. package/dist-android/static/14.js.map +0 -1
  265. package/dist-android/static/15.js +0 -2
  266. package/dist-android/static/15.js.map +0 -1
  267. package/dist-android/static/16.js +0 -2
  268. package/dist-android/static/16.js.map +0 -1
  269. package/dist-android/static/17.js +0 -2
  270. package/dist-android/static/17.js.map +0 -1
  271. package/dist-android/static/18.js +0 -2
  272. package/dist-android/static/18.js.map +0 -1
  273. package/dist-android/static/19.js +0 -2
  274. package/dist-android/static/19.js.map +0 -1
  275. package/dist-android/static/2.js +0 -2
  276. package/dist-android/static/2.js.map +0 -1
  277. package/dist-android/static/20.js +0 -2
  278. package/dist-android/static/20.js.map +0 -1
  279. package/dist-android/static/21.js +0 -2
  280. package/dist-android/static/21.js.map +0 -1
  281. package/dist-android/static/22.js +0 -2
  282. package/dist-android/static/22.js.map +0 -1
  283. package/dist-android/static/23.js +0 -2
  284. package/dist-android/static/23.js.map +0 -1
  285. package/dist-android/static/24.js +0 -2
  286. package/dist-android/static/24.js.map +0 -1
  287. package/dist-android/static/25.js +0 -2
  288. package/dist-android/static/25.js.map +0 -1
  289. package/dist-android/static/26.js +0 -2
  290. package/dist-android/static/26.js.map +0 -1
  291. package/dist-android/static/27.js +0 -2
  292. package/dist-android/static/27.js.map +0 -1
  293. package/dist-android/static/28.js +0 -2
  294. package/dist-android/static/28.js.map +0 -1
  295. package/dist-android/static/29.js +0 -2
  296. package/dist-android/static/29.js.map +0 -1
  297. package/dist-android/static/3.js +0 -2
  298. package/dist-android/static/3.js.map +0 -1
  299. package/dist-android/static/30.js +0 -2
  300. package/dist-android/static/30.js.map +0 -1
  301. package/dist-android/static/31.js +0 -2
  302. package/dist-android/static/31.js.map +0 -1
  303. package/dist-android/static/32.js +0 -2
  304. package/dist-android/static/32.js.map +0 -1
  305. package/dist-android/static/33.js +0 -2
  306. package/dist-android/static/33.js.map +0 -1
  307. package/dist-android/static/34.js +0 -2
  308. package/dist-android/static/34.js.map +0 -1
  309. package/dist-android/static/35.js +0 -2
  310. package/dist-android/static/35.js.map +0 -1
  311. package/dist-android/static/36.js +0 -2
  312. package/dist-android/static/36.js.map +0 -1
  313. package/dist-android/static/37.js +0 -2
  314. package/dist-android/static/37.js.map +0 -1
  315. package/dist-android/static/38.js +0 -2
  316. package/dist-android/static/38.js.map +0 -1
  317. package/dist-android/static/39.js +0 -2
  318. package/dist-android/static/39.js.map +0 -1
  319. package/dist-android/static/4.js +0 -2
  320. package/dist-android/static/4.js.map +0 -1
  321. package/dist-android/static/40.js +0 -2
  322. package/dist-android/static/40.js.map +0 -1
  323. package/dist-android/static/41.js +0 -2
  324. package/dist-android/static/41.js.map +0 -1
  325. package/dist-android/static/42.js +0 -2
  326. package/dist-android/static/42.js.map +0 -1
  327. package/dist-android/static/43.js +0 -2
  328. package/dist-android/static/43.js.map +0 -1
  329. package/dist-android/static/44.js +0 -2
  330. package/dist-android/static/44.js.map +0 -1
  331. package/dist-android/static/45.js +0 -2
  332. package/dist-android/static/45.js.map +0 -1
  333. package/dist-android/static/46.js +0 -2
  334. package/dist-android/static/46.js.map +0 -1
  335. package/dist-android/static/47.js +0 -2
  336. package/dist-android/static/47.js.map +0 -1
  337. package/dist-android/static/48.js +0 -2
  338. package/dist-android/static/48.js.map +0 -1
  339. package/dist-android/static/49.js +0 -2
  340. package/dist-android/static/49.js.map +0 -1
  341. package/dist-android/static/5.js +0 -2
  342. package/dist-android/static/5.js.map +0 -1
  343. package/dist-android/static/50.js +0 -2
  344. package/dist-android/static/50.js.map +0 -1
  345. package/dist-android/static/51.js +0 -2
  346. package/dist-android/static/51.js.map +0 -1
  347. package/dist-android/static/52.js +0 -2
  348. package/dist-android/static/52.js.map +0 -1
  349. package/dist-android/static/53.js +0 -2
  350. package/dist-android/static/53.js.map +0 -1
  351. package/dist-android/static/54.js +0 -2
  352. package/dist-android/static/54.js.map +0 -1
  353. package/dist-android/static/55.js +0 -2
  354. package/dist-android/static/55.js.map +0 -1
  355. package/dist-android/static/56.js +0 -2
  356. package/dist-android/static/56.js.map +0 -1
  357. package/dist-android/static/57.js +0 -2
  358. package/dist-android/static/57.js.map +0 -1
  359. package/dist-android/static/58.js +0 -2
  360. package/dist-android/static/58.js.map +0 -1
  361. package/dist-android/static/59.js +0 -2
  362. package/dist-android/static/59.js.map +0 -1
  363. package/dist-android/static/6.js +0 -2
  364. package/dist-android/static/6.js.map +0 -1
  365. package/dist-android/static/60.js +0 -2
  366. package/dist-android/static/60.js.map +0 -1
  367. package/dist-android/static/61.js +0 -2
  368. package/dist-android/static/61.js.map +0 -1
  369. package/dist-android/static/62.js +0 -2
  370. package/dist-android/static/62.js.map +0 -1
  371. package/dist-android/static/63.js +0 -2
  372. package/dist-android/static/63.js.map +0 -1
  373. package/dist-android/static/64.js +0 -2
  374. package/dist-android/static/64.js.map +0 -1
  375. package/dist-android/static/65.js +0 -2
  376. package/dist-android/static/65.js.map +0 -1
  377. package/dist-android/static/66.js +0 -2
  378. package/dist-android/static/66.js.map +0 -1
  379. package/dist-android/static/67.js +0 -2
  380. package/dist-android/static/67.js.map +0 -1
  381. package/dist-android/static/68.js +0 -2
  382. package/dist-android/static/68.js.map +0 -1
  383. package/dist-android/static/69.js +0 -2
  384. package/dist-android/static/69.js.map +0 -1
  385. package/dist-android/static/7.js +0 -6
  386. package/dist-android/static/7.js.map +0 -1
  387. package/dist-android/static/70.js +0 -2
  388. package/dist-android/static/70.js.map +0 -1
  389. package/dist-android/static/71.js +0 -2
  390. package/dist-android/static/71.js.map +0 -1
  391. package/dist-android/static/72.js +0 -2
  392. package/dist-android/static/72.js.map +0 -1
  393. package/dist-android/static/73.js +0 -2
  394. package/dist-android/static/73.js.map +0 -1
  395. package/dist-android/static/74.js +0 -2
  396. package/dist-android/static/74.js.map +0 -1
  397. package/dist-android/static/75.js +0 -2
  398. package/dist-android/static/75.js.map +0 -1
  399. package/dist-android/static/76.js +0 -2
  400. package/dist-android/static/76.js.map +0 -1
  401. package/dist-android/static/77.js +0 -2
  402. package/dist-android/static/77.js.map +0 -1
  403. package/dist-android/static/78.js +0 -2
  404. package/dist-android/static/78.js.map +0 -1
  405. package/dist-android/static/79.js +0 -2
  406. package/dist-android/static/79.js.map +0 -1
  407. package/dist-android/static/8.js +0 -2
  408. package/dist-android/static/8.js.map +0 -1
  409. package/dist-android/static/80.js +0 -2
  410. package/dist-android/static/80.js.map +0 -1
  411. package/dist-android/static/81.js +0 -2
  412. package/dist-android/static/81.js.map +0 -1
  413. package/dist-android/static/82.js +0 -2
  414. package/dist-android/static/82.js.map +0 -1
  415. package/dist-android/static/83.js +0 -2
  416. package/dist-android/static/83.js.map +0 -1
  417. package/dist-android/static/84.js +0 -2
  418. package/dist-android/static/84.js.map +0 -1
  419. package/dist-android/static/85.js +0 -2
  420. package/dist-android/static/85.js.map +0 -1
  421. package/dist-android/static/86.js +0 -2
  422. package/dist-android/static/86.js.map +0 -1
  423. package/dist-android/static/87.js +0 -2
  424. package/dist-android/static/87.js.map +0 -1
  425. package/dist-android/static/88.js +0 -2
  426. package/dist-android/static/88.js.map +0 -1
  427. package/dist-android/static/89.js +0 -2
  428. package/dist-android/static/89.js.map +0 -1
  429. package/dist-android/static/9.js +0 -3
  430. package/dist-android/static/9.js.map +0 -1
  431. package/dist-android/static/90.js +0 -2
  432. package/dist-android/static/90.js.map +0 -1
  433. package/dist-android/static/91.js +0 -2
  434. package/dist-android/static/91.js.map +0 -1
  435. package/dist-android/static/92.js +0 -2
  436. package/dist-android/static/92.js.map +0 -1
  437. package/dist-android/static/93.js +0 -2
  438. package/dist-android/static/93.js.map +0 -1
  439. package/dist-android/static/94.js +0 -2
  440. package/dist-android/static/94.js.map +0 -1
  441. package/dist-android/static/95.js +0 -2
  442. package/dist-android/static/95.js.map +0 -1
  443. package/dist-android/static/96.js +0 -2
  444. package/dist-android/static/96.js.map +0 -1
  445. package/dist-android/static/97.js +0 -2
  446. package/dist-android/static/97.js.map +0 -1
  447. package/dist-android/static/98.js +0 -2
  448. package/dist-android/static/98.js.map +0 -1
  449. package/dist-android/static/99.js +0 -2
  450. package/dist-android/static/99.js.map +0 -1
  451. package/dist-android/static/app.css +0 -2
  452. package/dist-android/static/app.css.map +0 -1
  453. package/dist-android/static/app.js +0 -80
  454. package/dist-android/static/app.js.map +0 -1
  455. package/dist-android/static/batchleft.png +0 -0
  456. package/dist-android/static/batchright.png +0 -0
  457. package/dist-android/static/bluemainbg.jpg +0 -0
  458. package/dist-android/static/config.json +0 -7
  459. package/dist-android/static/huangtengbiaozhi.png +0 -0
  460. package/dist-android/static/jingyin.jpg +0 -0
  461. package/dist-android/static/login_bg.jpg +0 -0
  462. package/dist-android/static/login_title.png +0 -0
  463. package/dist-android/static/login_title1.png +0 -0
  464. package/dist-android/static/loginbg.jpg +0 -0
  465. package/dist-android/static/loginlogo.png +0 -0
  466. package/dist-android/static/main_logo.png +0 -0
  467. package/dist-android/static/mainbg.jpg +0 -0
  468. package/dist-android/static/menulogo.png +0 -0
  469. package/dist-android/static/newmainbg.jpg +0 -0
  470. package/dist-android/static/singleleft.png +0 -0
  471. package/dist-android/static/singleright.png +0 -0
  472. package/dist-android/static/treeopen.png +0 -0
  473. package/dist-android/static/treeout.png +0 -0
  474. package/dist-android/static/treeset.png +0 -0
  475. package/dist-android/static/usericon.png +0 -0
  476. package/dist-android/static/workflow_apply.json +0 -766
  477. package/dist-android/static/xinxi.png +0 -0
  478. package/dist-android/static//344/277/256/346/224/271/345/257/206/347/240/201.png +0 -0
  479. 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
  480. package/dist-android/static//345/257/274/345/207/272/346/225/260/346/215/256.png +0 -0
  481. package/dist-android/static//346/270/205/347/251/272/346/225/260/346/215/256.png +0 -0
  482. package/src/components/app_apply/Acceptance.vue +0 -298
  483. package/src/components/app_apply/ApplyApp.vue +0 -91
  484. package/src/components/app_apply/ApplyDownList.vue +0 -166
  485. package/src/components/app_apply/ApplyInfo.vue +0 -56
  486. package/src/components/app_apply/ApplyListUpload.vue +0 -258
  487. package/src/components/app_apply/ApplyToDoList.vue +0 -165
  488. package/src/components/app_apply/ApplyUserInfo.vue +0 -56
  489. package/src/components/app_apply/FieldExploration.vue +0 -267
  490. package/src/components/app_apply/PlaceControler.vue +0 -258
  491. package/src/components/app_apply/ServiceControl.vue +0 -267
  492. package/src/components/app_apply/ServiceView.vue +0 -355
  493. package/src/components/app_apply/ToolsPage.vue +0 -51
  494. package/src/components/app_apply/Ventilation.vue +0 -199
  495. package/src/components/product/ApplyCharge/ApplyChargeReport.vue +0 -107
  496. package/src/components/product/Function/StopApplyCrrdList.vue +0 -176
  497. package/src/components/product/Function/functions/ApplyRecordCancel.vue +0 -102
  498. package/src/components/product/Function/functions/StopInstall.vue +0 -106
  499. package/src/components/product/Process/Processes/printCharge.vue +0 -126
  500. package/src/components/product/Process/ShowBackReason.vue +0 -32
  501. package/src/components/product/ReportForm/GasIgnitionSummary.vue +0 -352
  502. package/src/components/product/VueUtils/ToolsPage.vue +0 -51
  503. package/src/components/product/VueUtils/Tree.vue +0 -330
  504. /package/{dist-android/static → src/android-bootstrap/fonts}/glyphicons-halflings-regular.eot +0 -0
  505. /package/{dist-android/static → src/android-bootstrap/fonts}/glyphicons-halflings-regular.svg +0 -0
  506. /package/{dist-android/static → src/android-bootstrap/fonts}/glyphicons-halflings-regular.ttf +0 -0
  507. /package/{dist-android/static → src/android-bootstrap/fonts}/glyphicons-halflings-regular.woff +0 -0
  508. /package/{dist-android/static → src/android-bootstrap/fonts}/glyphicons-halflings-regular.woff2 +0 -0
  509. /package/static/images/lefticon/{/345/256/211/346/243/200/346/237/245/347/234/213.png" → anjianjihua.png} +0 -0
  510. /package/static/images/lefticon/{/346/241/243/346/241/210/347/256/241/347/220/206.png" → danganguanli.png} +0 -0
  511. /package/static/images/lefticon/{/345/224/256/346/260/224/346/224/266/350/264/271.png" → shouqishoufei.png} +0 -0
  512. /package/static/images/lefticon/{/347/211/251/350/201/224/347/275/221/350/241/250.png" → wulianwang.png} +0 -0
  513. /package/static/images/lefticon/{/347/263/273/347/273/237/347/256/241/347/220/206.png" → xitongguanli.png} +0 -0
  514. /package/static/images/lefticon/{/345/221/274/345/217/253/347/263/273/347/273/237.png" → yuyinkefu.png} +0 -0
@@ -1,856 +1,2155 @@
1
- <template>
2
-
3
- <div class="auto clearfix">
4
- <show-back-reason :selectdata="show_data"></show-back-reason>
5
- </div>
6
-
7
- <service-view v-ref:serviceview :data="show_data" v-if="showview"></service-view>
8
-
9
- </template>
10
- <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
- }
30
-
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
54
- }
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
- }
60
- }
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
- }
95
- } else {
96
- if (this.selectdata[item.field] === 0) {
97
- item.value = 0
98
- }
99
- }
100
-
101
- // datepicker 没有值给当时值
102
- if (item.type === 'datepicker' && !item.value && item.default) {
103
- item.value = new Date().Format('yyyy-MM-dd HH:mm:ss')
104
- }
105
-
106
- // 如果配置类型为select,优先从参数列表获取options
107
- if (item.type === 'select') {
108
- let temp = null
109
-
110
- temp = this.$appdata.getParam(item.label)
111
-
112
- if (temp && temp.length > 0 && item.label) {
113
- item.options = temp
114
- } else {
115
- if (item.paramLabel) {
116
- temp = this.$appdata.getParam(item.paramLabel)
117
- if (temp && temp.length > 0) {
118
- item.options = temp
119
- }
120
- }
121
- }
122
- }
123
- })
124
-
125
- // 控制组件
126
- if (this.data.components) {
127
- this.data.components.forEach(item => {
128
- item.mark = 0
129
- })
130
- }
131
-
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
- }
163
- }
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
- })
171
- }
172
- }
173
-
174
- // onetomany 数据获取
175
- if (this.data.onetomany) {
176
- for (let index = 0; index < this.data.onetomany.length; index++) {
177
- let res = null
178
- if (!this.data.onetomany[index].queryEvent || this.data.onetomany[index].queryEvent === 'default'){
179
- let http = new HttpResetClass()
180
- let data = {
181
- tablename: this.data.onetomany[index].tables[0],
182
- condition: `f_process_id='${this.selectdata.f_process_id}'`
183
- }
184
- res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
185
- resolveMsg: null,
186
- rejectMsg: 'onetomany查询失败'
187
- })
188
- } else {
189
- res = this[this.data.onetomany[index].queryEvent]()
190
- }
191
-
192
- // 初始化 onetomany
193
- this.data.onetomany[index].rows = res.data
194
-
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
206
- }
207
- // 如果配置类型为select,优先从参数列表获取options
208
- if (this.data.onetomany[index].fields[j].type === 'select') {
209
- let temp = Vue.$appdata.getParam(this.data.onetomany[index].fields[j].label)
210
- if (temp && temp.length > 0) {
211
- this.data.onetomany[index].fields[j].options = temp
212
- }
213
- }
214
- }
215
- }
216
- }
217
-
218
- // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
219
- let temp = JSON.parse(JSON.stringify(this.data))
220
-
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))
259
- }
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]
270
- }
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
- }
280
- }
281
- } else {
282
- array.push(arraydata)
283
- }
284
- }
285
- this.show_data.fields[i].options = array
286
- console.log("小区选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
287
- }
288
- }
289
- }
290
- },
291
- // 初始化fields值
292
- initializeFields() {
293
-
294
- },
295
- // 金额转大写
296
- smalltoBIG(n) {
297
- let fraction = ['角', '分'];
298
- let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '', '玖'];
299
- let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
300
- let head = n < 0 ? '' : '';
301
- n = Math.abs(n);
302
-
303
- let s = '';
304
-
305
- for (var i = 0; i < fraction.length; i++) {
306
- s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
307
- }
308
- s = s || '整';
309
- n = Math.floor(n);
310
-
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 || ''
325
- }
326
- if (item.label === label && item.type === 'number') {
327
- return item.value || 0
328
- }
329
- }
330
- },
331
- setLabelValue(label, value) {
332
- for (const item of this.show_data.fields) {
333
- if (item.label === label) {
334
- item.value = value
335
- }
336
- }
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 === '民用地址') {
368
- item.required = true
369
- }
370
- if (item.label === '小区' && this.show_data.f_address_type === '特殊地址') {
371
- item.required = false
372
- }
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
382
- item.hidden = false
383
- item.value = null
384
- }
385
- if (
386
- (
387
- item.label === '楼号' ||
388
- item.label === '单元' ||
389
- item.label === '楼层' ||
390
- item.label === '门牌号'
391
- ) && this.show_data.f_address_type === '特殊地址'
392
- ) {
393
- item.required = false
394
- item.hidden = true
395
- item.value = null
396
- }
397
- }
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
-
411
- let streetList = []
412
-
413
- res.data.forEach(item => {
414
- streetList.push({
415
- label: item.f_street,
416
- value: item.f_street
417
- })
418
- })
419
-
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('街道')}'`
430
- }
431
-
432
- let res = await this.$resetpost(
433
- `rs/sql/singleTable`,
434
- {data: data},
435
- {resolveMsg: null, rejectMsg: '小区查询失败,请重新进入!!!'}
436
- )
437
-
438
- let areaList = []
439
-
440
- res.data.forEach(item => {
441
- areaList.push({
442
- label: item.f_residential_area,
443
- value: item.f_residential_area
444
- })
445
- })
446
-
447
- for (const item of this.show_data.fields) {
448
- if (item.label === '小区') {
449
- item.options = areaList
450
- }
451
- }
452
- }
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
470
- }
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
- }
483
- }
484
-
485
- // 提交前置
486
- try {
487
- model = await this.buttonBefore(model)
488
- } catch (e) {
489
- this.$showAlert(e, 'warning', 3000)
490
- return
491
- }
492
-
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
- }
511
- }
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
- }
665
- }
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
- }
676
- }
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
- }
738
- }
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
- }
748
- }
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
- }
756
- }
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
- }
786
-
787
- }
788
- }
789
- },
790
- // onetomany模态框默认监听监听事件
791
- async 'onetomanydelete'(i, j) {
792
- console.log('默认删除')
793
- let http = new HttpResetClass()
794
- let data = {
795
- table: this.show_data.onetomany[i].tables[0],
796
- row: this.show_data.onetomany[i].rows[j]
797
- }
798
- let res = await http.load('POST', 'rs/logic/onetomanyDefaultDeleteEvent', {data: data}, {
799
- resolveMsg: null,
800
- rejectMsg: '删除失败'
801
- })
802
-
803
- if (res.data <= 0){
804
- this.$showMessage('删除失败')
805
- return
806
- }
807
-
808
- this.$dispatch('breakControl', this.show_data)
809
- },
810
- async 'onetomanyadd'(index) {
811
-
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
- )
835
-
836
- this.$dispatch('breakControl', this.show_data)
837
- },
838
- // onetomany模态框监听事件
839
- async 'onchange_modal'(index, i) {
840
- },
841
- async 'oninput_modal'(index, i) {
842
- }
843
- },
844
- watch: {
845
- }
846
- }
847
- </script>
848
- <style scoped>
849
- /*清除model中的浮动*/
850
- .clearfix:after,.clearfix:before{
851
- display: table;
852
- }
853
- .clearfix:after{
854
- clear: both;
855
- }
856
- </style>
1
+ <template>
2
+ <div class="" v-if="showview">
3
+ <show-back-reason :selectdata="show_data"></show-back-reason>
4
+ <service-view v-ref:serviceview :data="show_data"></service-view>
5
+ </div>
6
+ </template>
7
+ <script>
8
+ import {HttpResetClass} from 'vue-client'
9
+ import {isEmpty} from '../../../Util'
10
+
11
+ // Date格式化
12
+ Date.prototype.Format = function (fmt) {
13
+ var o = {
14
+ "M+": this.getMonth() + 1, //月份
15
+ "d+": this.getDate(), //日
16
+ "H+": this.getHours(), //小时
17
+ "m+": this.getMinutes(), //分
18
+ "s+": this.getSeconds(), //秒
19
+ "q+": Math.floor((this.getMonth() + 3) / 3), //季度
20
+ "S": this.getMilliseconds() //毫秒
21
+ };
22
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
23
+ for (var k in o)
24
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
25
+ return fmt;
26
+ }
27
+
28
+ export default {
29
+ title: '报建流程业务控制层',
30
+ props: ['selectdata'],
31
+ data () {
32
+ return {
33
+ data: null, // 数据库数据,json配置文件数据的数据集合
34
+ json_datas: null, // Json配置文件集合
35
+ showview: false, // 控制显示service-view组件
36
+ show_data: null, // 给view层显示的数据
37
+ area: {}, // 小区详细
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++ // 节点名一样的个数
58
+ }
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
77
+ }
78
+
79
+ if (!item.value && (item.default || item.default === 0) && item.type !== 'datepicker') {
80
+ if (item.eval) {
81
+ item.value = eval(item.default)
82
+ } else {
83
+ item.value = item.default
84
+ }
85
+ }
86
+
87
+ if (this.selectdata[item.field]) {
88
+ // 将json字符串格式化赋值给value
89
+ if (String(this.selectdata[item.field]).startsWith("{")) {
90
+ item.value = JSON.parse(this.selectdata[item.field])
91
+ } else {
92
+ item.value = this.selectdata[item.field]
93
+ }
94
+ }
95
+ if (this.selectdata[item.field] === 0) {
96
+ item.value = 0
97
+ }
98
+
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
+ }
103
+
104
+ // 如果配置类型为select,优先从参数列表获取options
105
+ if (item.type === 'select' || item.type === 'checkbox') {
106
+ if (item.param) {
107
+ let temp = this.$appdata.getParam(item.label)
108
+
109
+ if (temp && temp.length > 0) {
110
+ item.options = temp
111
+ }
112
+
113
+ if (item.paramLabel) {
114
+ temp = this.$appdata.getParam(item.paramLabel)
115
+ if (temp && temp.length > 0) {
116
+ item.options = temp
117
+ }
118
+ }
119
+ }
120
+ }
121
+ if (item.ready) {
122
+ item.options = await this[item.ready]()
123
+ }
124
+ if (item.type === 'checkbox') {
125
+ if (this.selectdata[item.field]) {
126
+ item.value = JSON.parse(this.selectdata[item.field])
127
+ } else {
128
+ item.value = []
129
+ }
130
+ }
131
+ if(this.selectdata.state === '结束'){
132
+ item.readonly = true
133
+ item.disabled = true
134
+ console.log('当前defname'+this.selectdata.defname+'当前title'+this.selectdata.title)
135
+ }
136
+ this.selectdata[item.field] = item.value
137
+ }
138
+
139
+ // 控制组件
140
+ if (this.selectdata.components) {
141
+ this.selectdata.components.forEach(item => {
142
+ if (!item.mark) {
143
+ item.mark = 0
144
+ }
145
+ if(this.selectdata.state === '结束'){
146
+ item.mark = 1
147
+ }
148
+ })
149
+ }
150
+
151
+ // 初始化onetomany
152
+ if (this.selectdata.onetomany) {
153
+ for (const item of this.selectdata.onetomany) {
154
+ let res = null
155
+ if (item.queryEvent) {
156
+ res = this[item.queryEvent]()
157
+ } else {
158
+ let data = {
159
+ tablename: item.tables[0],
160
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
161
+ }
162
+ res = await this.$resetpost(
163
+ 'rs/sql/applySingleTable',
164
+ {data: data},
165
+ {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
166
+ )
167
+ }
168
+
169
+ item.rows = res.data
170
+
171
+ // 初始化onetomany中的fields
172
+ for (const field of item.fields) {
173
+ if (!field.value) {
174
+ if (field.value !== 0) {
175
+ field.value = null
176
+ }
177
+ }
178
+
179
+ if (field.default || field.default === 0) {
180
+ field.value = field.default
181
+ }
182
+
183
+ // datepicker
184
+ if (field.type === 'datepicker' && !field.value && field.default) {
185
+ field.value = new Date().Format(`${field.format ? field.format : 'yyyy-MM-dd HH:mm:ss'}`)
186
+ }
187
+
188
+ if (field.type === 'select') {
189
+
190
+ let temp = this.$appdata.getParam(field.label)
191
+
192
+ if (temp && temp.length > 0) {
193
+ field.options = temp
194
+ }
195
+
196
+ if (field.paramLabel) {
197
+ temp = this.$appdata.getParam(field.paramLabel)
198
+ if (temp && temp.length > 0) {
199
+ item.options = temp
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+
207
+ // 初始化 buttons_fields
208
+ for (const item of this.selectdata.buttons) {
209
+ if (item.button_name === '下发' || item.button_name === '转派') {
210
+
211
+ let data = {
212
+ source: item.source,
213
+ userid: this.$login.f.id
214
+ }
215
+ if (item.sourceMethod) {
216
+ data.source = this[item.sourceMethod]()
217
+ }
218
+ if (!data.source) {
219
+ this.$showMessage("请配置获取人员表达式")
220
+ return
221
+ }
222
+
223
+ let res = await this.$resetpost(
224
+ 'rs/search',
225
+ {data: data},
226
+ {resolveMsg: null, rejectMsg: '下发人员查询失败!!!'}
227
+ )
228
+
229
+ let options = res.data.map(source => {
230
+ return {
231
+ "label": source.name,
232
+ "value": source.id
233
+ }
234
+ })
235
+
236
+ if (item.button_fields.length !== 1) {
237
+ this.$showMessage("下发有且只能有一个字段!!!")
238
+ return
239
+ }
240
+
241
+ item.button_fields[0].options = options
242
+ }
243
+ if (item.button_fields) {
244
+ item.button_fields.forEach(x => {
245
+ // 如果配置类型为select,优先从参数列表获取options
246
+ if (x.type === 'select') {
247
+
248
+ if (x.param) {
249
+ let temp = this.$appdata.getParam(x.label)
250
+
251
+ if (temp && temp.length > 0) {
252
+ x.options = temp
253
+ }
254
+
255
+ if (x.paramLabel) {
256
+ temp = this.$appdata.getParam(x.paramLabel)
257
+ if (temp && temp.length > 0) {
258
+ x.options = temp
259
+ }
260
+ }
261
+ }
262
+
263
+ }
264
+ })
265
+ }
266
+ if(this.selectdata.state === '结束'){
267
+ item.hidden = true
268
+ }
269
+ }
270
+
271
+ if (this.selectdata.f_apply_nature === '散户' && this.selectdata.defname === '现场勘察') {
272
+ for (const item of this.selectdata.fields) {
273
+ if (item.label.includes('安装户数')) {
274
+ item.readonly = true
275
+ }
276
+ }
277
+ }
278
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
279
+ let temp = JSON.parse(JSON.stringify(this.selectdata))
280
+
281
+ this.show_data = temp
282
+ this.$nextTick(() => {
283
+ this.showview = true
284
+ })
285
+
286
+ },
287
+ // 金额转大写
288
+ smalltoBIG(n) {
289
+ let fraction = ['角', '分'];
290
+ let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
291
+ let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
292
+ let head = n < 0 ? '欠' : '';
293
+ n = Math.abs(n);
294
+
295
+ let s = '';
296
+
297
+ for (var i = 0; i < fraction.length; i++) {
298
+ s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
299
+ }
300
+ s = s || '';
301
+ n = Math.floor(n);
302
+
303
+ for (var i = 0; i < unit[0].length && n > 0; i++) {
304
+ let p = '';
305
+ for (var j = 0; j < unit[1].length && n > 0; j++) {
306
+ p = digit[n % 10] + unit[1][j] + p;
307
+ n = Math.floor(n / 10);
308
+ }
309
+ s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
310
+ }
311
+ return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
312
+ },
313
+ getLableValue(label) {
314
+ for (const item of this.show_data.fields) {
315
+ if (item.label === label && item.type !== 'number') {
316
+ return item.value || ''
317
+ }
318
+ if (item.label === label && item.type === 'number') {
319
+ return item.value || 0
320
+ }
321
+ }
322
+ },
323
+ getLableOptions(label) {
324
+ for (const item of this.show_data.fields) {
325
+ if (item.label === label) {
326
+ return item.options
327
+ }
328
+ }
329
+ },
330
+ setLabelValue(label, value) {
331
+ for (const item of this.show_data.fields) {
332
+ if (item.label === label) {
333
+ item.value = value
334
+ this.show_data[item.field] = value
335
+ }
336
+ }
337
+ },
338
+ setLabelOptions(label, options) {
339
+ for (const item of this.show_data.fields) {
340
+ if (item.label === label) {
341
+ item.options = options
342
+ }
343
+ }
344
+ },
345
+ showLabels(...labels) {
346
+ for (const item of this.show_data.fields) {
347
+ if (labels.includes(item.label)) {
348
+ item.hidden = false
349
+ }
350
+ }
351
+ },
352
+ hideLabels(...labels) {
353
+ for (const item of this.show_data.fields) {
354
+ if (labels.includes(item.label)) {
355
+ item.hidden = true
356
+ }
357
+ }
358
+ },
359
+ showButtons(...buttons) {
360
+ for (const item of this.show_data.buttons) {
361
+ if (buttons.includes(item.button_name)) {
362
+ item.hidden = false
363
+ }
364
+ }
365
+ },
366
+ hideButtons(...buttons) {
367
+ for (const item of this.show_data.buttons) {
368
+ if (buttons.includes(item.button_name)) {
369
+ item.hidden = true
370
+ }
371
+ }
372
+ },
373
+ requiredLabels(...labels) {
374
+ for (const item of this.show_data.fields) {
375
+ if (labels.includes(item.label)) {
376
+ item.required = true
377
+ }
378
+ }
379
+ },
380
+ electiveLabels(...labels) {
381
+ for (const item of this.show_data.fields) {
382
+ if (labels.includes(item.label)) {
383
+ item.required = false
384
+ }
385
+ }
386
+ },
387
+ readonlyLabels(...labels) {
388
+ for (const item of this.show_data.fields) {
389
+ if (labels.includes(item.label)) {
390
+ item.readonly = true
391
+ item.disabled = true
392
+ }
393
+ }
394
+ },
395
+ readwriteLabels(...labels) {
396
+ for (const item of this.show_data.fields) {
397
+ if (labels.includes(item.label)) {
398
+ item.readonly = false
399
+ item.disabled = false
400
+ }
401
+ }
402
+ },
403
+ disabledButtons(...buttons) {
404
+ for (const item of this.show_data.buttons) {
405
+ if (buttons.includes(item.button_name)) {
406
+ item.disabled = true
407
+ }
408
+ }
409
+ },
410
+ enableButtons(...buttons) {
411
+ for (const item of this.show_data.buttons) {
412
+ if (buttons.includes(item.button_name)) {
413
+ item.disabled = false
414
+ }
415
+ }
416
+ },
417
+ showComponents(...titles) {
418
+ for (const item of this.show_data.components) {
419
+ if (titles.includes(item.title) && item.device === 'pc') {
420
+ item.hidden = false
421
+ }
422
+ }
423
+ },
424
+ hideComponents(...titles) {
425
+ for (const item of this.show_data.components) {
426
+ if (titles.includes(item.title) && item.device === 'pc') {
427
+ item.hidden = true
428
+ }
429
+ }
430
+ },
431
+ async checkDuplicate(index) {
432
+ let http = new HttpResetClass()
433
+ let data = {
434
+ tablename: 't_apply',
435
+ condition: `${this.show_data.fields[index].field} = '${this.show_data.fields[index].value}'`
436
+ }
437
+ let res = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
438
+ resolveMsg: null,
439
+ rejectMsg: `${this.show_data.fields[index].label}查询失败`
440
+ })
441
+ if (res.data.length > 0) {
442
+ this.show_data.fields[index].value = null
443
+ this.$showAlert(`${this.show_data.fields[index].label}已存在!!!`, 'warning', 3000)
444
+ }
445
+ },
446
+ // 获取片区
447
+ async getSliceArea () {
448
+ let data = {
449
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
450
+ userid: this.$login.f.id
451
+ }
452
+
453
+ let http = new HttpResetClass()
454
+ let res = await http.load(
455
+ 'POST',
456
+ `rs/search`,
457
+ {data: data},
458
+ {resolveMsg: null, rejectMsg: '片区查询失败!!!'}
459
+ )
460
+
461
+ return res.data.map(item => {
462
+ return {
463
+ label: item.name,
464
+ value: item.name
465
+ }
466
+ })
467
+ },
468
+ // 获取区县
469
+ async getPcd () {
470
+ let data = {
471
+ tablename: 't_pcd',
472
+ condition: `f_filialeid = '${this.$login.f.orgid}'`
473
+ }
474
+ let http = new HttpResetClass()
475
+ let res = await http.load(
476
+ 'POST',
477
+ `rs/sql/applySingleTable`,
478
+ {data: data},
479
+ {resolveMsg: null, rejectMsg: '区县查询失败!!!'}
480
+ )
481
+
482
+ return res.data.map(item => {
483
+ return {
484
+ label: item.f_pcd,
485
+ value: item.f_pcd
486
+ }
487
+ })
488
+ },
489
+ // 缴费前置
490
+ chargeBefore () {
491
+ if ((this.show_data.f_apply_type === '民用报建' && this.show_data.f_apply_nature === '小区') || this.show_data.f_apply_type === '非民用报建') {
492
+ return
493
+ }
494
+ if (this.show_data.f_house_type === '旧报建导入'){
495
+ return
496
+ }
497
+ if (Number(this.show_data.f_due_money) > Number(this.show_data.f_cumulative_payment_money) || Number(this.show_data.f_surplus_money) > 0) {
498
+ this.$showAlert('费用未结清!!!', 'warning', 3000)
499
+ throw null
500
+ }
501
+ },
502
+ // 缴费流程退回前置
503
+ async backBefore() {
504
+ let data = {
505
+ tablename: 't_apply',
506
+ condition: `f_process_id = '${this.selectdata.f_process_id}'`
507
+ }
508
+ let http = new HttpResetClass()
509
+ let res = await http.load(
510
+ 'POST',
511
+ `rs/sql/applySingleTable`,
512
+ {data: data},
513
+ {resolveMsg: null, rejectMsg: null}
514
+ )
515
+ if (res.data.length > 0 && res.data[0].f_surplus_money !== res.data[0].f_due_money) {
516
+ this.$showMessage('用户已缴费,无法退回!!!')
517
+ }
518
+ },
519
+ // 获取设计人员
520
+ async getDesignerPeople () {
521
+ let data = {
522
+ source: 'this.getParentByType($organization$).getChildByName($设计人员$).getChildren()',
523
+ userid: this.$login.f.id
524
+ }
525
+
526
+ let res = await this.$resetpost(
527
+ 'rs/search',
528
+ {data: data},
529
+ {resolveMsg: null, rejectMsg: '设计人员查询失败!!!'}
530
+ )
531
+
532
+ return res.data.map(item => {
533
+ return {
534
+ label: item.name,
535
+ value: item.name
536
+ }
537
+ })
538
+ },
539
+ //现场勘察
540
+ async prospectingBefore() {
541
+ let data = {
542
+ tablename: 't_files',
543
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '现场勘察' and fremarks = '报装手机签字文件'`
544
+ }
545
+ let http = new HttpResetClass()
546
+ let res = await http.load(
547
+ 'POST',
548
+ `rs/sql/applySingleTable`,
549
+ {data: data},
550
+ {resolveMsg: null, rejectMsg: null}
551
+ )
552
+ if (res.data.length <= 0) {
553
+ this.$showMessage('现场勘察未签字,无法提交!!!')
554
+ throw '现场勘察未签字,无法提交!'
555
+ }
556
+ },
557
+ //合同签订提交
558
+ async contractSigningBefore() {
559
+ let http = new HttpResetClass()
560
+ let data = {
561
+ tablename: 't_contract',
562
+ condition: `f_process_id = '${this.selectdata.f_process_id}' and f_sign_state <> '签订完成'`
563
+ }
564
+ let res = await http.load(
565
+ 'POST',
566
+ `rs/sql/applySingleTable`,
567
+ {data: data},
568
+ {resolveMsg: null, rejectMsg: null}
569
+ )
570
+ if (res.data.length <= 0) {
571
+ let data = {
572
+ tablename: 't_files',
573
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fusetype = '纸质合同'`
574
+ }
575
+ let res = await http.load(
576
+ 'POST',
577
+ `rs/sql/applySingleTable`,
578
+ {data: data},
579
+ {resolveMsg: null, rejectMsg: null}
580
+ )
581
+ if (res.data.length <= 0) {
582
+ this.$showMessage('合同未签订完成且纸质合同未上传,无法提交!!!')
583
+ throw '纸质合同未上传,无法提交!'
584
+ }
585
+ }
586
+ },
587
+ async otherAuthentication() {
588
+ console.log("当前数据", this.selectdata)
589
+ this.$showMessage(`请确认是否进行重新认证,确认前请保证身份信息正确!!!`, ['confirm']).then(async (res) => {
590
+ if (res === 'confirm') {
591
+ let http = new HttpResetClass()
592
+ let data = {
593
+ apply: this.selectdata
594
+ }
595
+ let result = await http.load(
596
+ 'POST',
597
+ 'rs/logic/anotherLegalize',
598
+ {data: data},
599
+ {
600
+ resolveMsg: '重新发起实名认证成功!',
601
+ rejectMsg: '重新发起实名认证失败!'
602
+ }).then((res)=>{
603
+ if(res.data === 200){
604
+ this.$dispatch('loadPage')
605
+ }
606
+ })
607
+ }
608
+ })
609
+ throw '重新发起实名认证!!!'
610
+ },
611
+ async otherSigned() {
612
+ console.log("当前数据", this.selectdata)
613
+ this.$showMessage(`请确认是否进行重新发送签署短信!!!`, ['confirm']).then(async (res) => {
614
+ if (res === 'confirm') {
615
+ let http = new HttpResetClass()
616
+ let data = {
617
+ apply: this.selectdata
618
+ }
619
+ let result = await http.load(
620
+ 'POST',
621
+ 'rs/logic/anotherMAS',
622
+ {data: data},
623
+ {
624
+ resolveMsg: '重新发送签署短信成功!',
625
+ rejectMsg: '重新发送签署短信失败!'
626
+ }).then((res)=>{
627
+ if(res.data === 200){
628
+ this.$dispatch('loadPage')
629
+ }
630
+ })
631
+ }
632
+ })
633
+ throw '重新发送签署短信!!!'
634
+ },
635
+ // 施工前置
636
+ async constructionBefore () {
637
+ await this.userSignBefore()
638
+ if (this.show_data.f_apply_nature !== '分户挂表') {
639
+ let http = new HttpResetClass()
640
+ let data = {
641
+ condition: `ui.f_process_id = '${this.show_data.f_process_id}' and f_meternumber is null and f_gasbrand_id is not null `
642
+ }
643
+ let res = await http.load(
644
+ 'POST',
645
+ 'rs/sql/countApplyUserinfo',
646
+ {data: data},
647
+ {
648
+ resolveMsg: null,
649
+ rejectMsg: '安装明细查询失败!!!'
650
+ })
651
+ if (res.data[0].num > 0) {
652
+ this.$showMessage(`还有${res.data[0].num}户未安装,无法提交`)
653
+ throw `还有${res.data[0].num}户未安装,无法提交`
654
+ }
655
+ }
656
+ },
657
+ async userSignBefore() {
658
+ let http = new HttpResetClass()
659
+ let data = {
660
+ tablename: 't_files',
661
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fremarks = '报装手机签字文件'`
662
+ }
663
+ let res = await http.load(
664
+ 'POST',
665
+ `rs/sql/applySingleTable`,
666
+ {data: data},
667
+ {resolveMsg: null, rejectMsg: null}
668
+ )
669
+ if (res.data.length <= 0) {
670
+ this.$showMessage('用户未签字,无法提交!!!')
671
+ throw '用户未签字,无法提交!'
672
+ }
673
+ },
674
+ addressInitialization () {
675
+ this.$getConfig(this, 'UserAddress')
676
+
677
+ let f_address_type = this.show_data.f_address_type
678
+
679
+ for (const item of this.show_data.fields) {
680
+ if (f_address_type === '民用市区') {
681
+ if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
682
+ item.hidden = false
683
+ item.required = true
684
+ }
685
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
686
+ item.hidden = false
687
+ item.required = false
688
+ }
689
+ if (item.label === '地址') {
690
+ item.readonly = true
691
+ }
692
+ }
693
+ if (f_address_type === '民用乡镇') {
694
+ if (item.label === '区/县' || item.label === '街道/乡镇' || item.label === '集收单位' || item.label === '门牌号') {
695
+ item.hidden = false
696
+ item.required = true
697
+ }
698
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层') {
699
+ item.hidden = false
700
+ item.required = false
701
+ }
702
+ if (item.label === '楼层') {
703
+ item.hidden = true
704
+ item.required = false
705
+ }
706
+ if (item.label === '地址') {
707
+ item.readonly = true
708
+ }
709
+ }
710
+ if (f_address_type === '特殊地址') {
711
+ if (item.label === '区/县' || item.label === '街道/乡镇') {
712
+ item.hidden = false
713
+ item.required = true
714
+ }
715
+ if (item.label === '集收单位') {
716
+ item.hidden = false
717
+ item.required = false
718
+ }
719
+ if (item.label === '楼号/组' || item.label === '单元/排' || item.label === '楼层' || item.label === '门牌号') {
720
+ item.hidden = true
721
+ item.required = false
722
+ }
723
+ if (item.label === '地址') {
724
+ item.readonly = false
725
+ }
726
+ }
727
+
728
+ if (this.show_data.f_apply_source === '线下发起' && item.label === '预约地址') {
729
+ item.hidden = true
730
+ }
731
+ }
732
+ },
733
+ async streetChange () {
734
+ if (isEmpty(this.show_data.f_street)) {
735
+ return
736
+ }
737
+
738
+ let data = {
739
+ tablename: 't_area',
740
+ condition: `f_filialeid = '${this.$login.f.orgid}' and f_street = '${this.show_data.f_street}'`
741
+ }
742
+ let http = new HttpResetClass()
743
+ let res = await http.load(
744
+ 'POST',
745
+ `rs/sql/applySingleTable`,
746
+ {data: data},
747
+ {resolveMsg: null, rejectMsg: '集收单位查询失败!!!'}
748
+ )
749
+
750
+ this.setLabelOptions('集收单位', res.data.map(item => {
751
+ return {
752
+ label: item.f_residential_area,
753
+ value: item.f_residential_area
754
+ }
755
+ }))
756
+ },
757
+ async pcdChange () {
758
+ if (isEmpty(this.show_data.f_pcd)) {
759
+ return
760
+ }
761
+
762
+ let data = {
763
+ tablename: 't_street',
764
+ condition: `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}'`
765
+ }
766
+ let f_address_type = this.getLableValue('地址类型')
767
+
768
+ if (f_address_type === '民用市区') {
769
+ data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '市区'`
770
+ }
771
+ if (f_address_type === '民用乡镇') {
772
+ data.condition = `f_filialeid = '${this.$login.f.orgid}' and f_pcd = '${this.show_data.f_pcd}' and f_iscity = '乡镇'`
773
+ }
774
+
775
+ let http = new HttpResetClass()
776
+ let res = await http.load(
777
+ 'POST',
778
+ `rs/sql/applySingleTable`,
779
+ {data: data},
780
+ {resolveMsg: null, rejectMsg: '街道/乡镇查询失败!!!'}
781
+ )
782
+
783
+ this.setLabelOptions('街道/乡镇', res.data.map(item => {
784
+ return {
785
+ label: item.f_street,
786
+ value: item.f_street
787
+ }
788
+ }))
789
+ },
790
+ //查询现场负责人
791
+ async getConstructionWorker(){
792
+ let data = {
793
+ source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
794
+ userid: this.$login.f.id
795
+ }
796
+
797
+ let res = await this.$resetpost(
798
+ `rs/search`,
799
+ {data: data},
800
+ {resolveMsg: null, rejectMsg: '现场负责人查询失败!!!'}
801
+ )
802
+
803
+ return res.data.map(item => {
804
+ return {
805
+ label: item.name,
806
+ value: item.id
807
+ }
808
+ })
809
+ },
810
+ //获取下发人(当前操作人所属部门下的所有人)
811
+ getSource () {
812
+ return 'this.getParentByType($organization$).getChildByName($'+ this.$login.f.f_parentname + '$).getChildren()'
813
+ },
814
+ async getUserName() {
815
+ if(this.selectdata.f_construction_unit_id){
816
+ let data = {
817
+ tablename: 't_user',
818
+ condition: `id='${this.selectdata.f_construction_unit_id}'`
819
+ }
820
+ let res = await this.$resetpost(
821
+ 'rs/sql/applySingleTable',
822
+ {data: data},
823
+ {resolveMsg: null, rejectMsg: null}
824
+ )
825
+ return res.data.map(item => {
826
+ return {
827
+ label: item.name,
828
+ value: item.id
829
+ }
830
+ })
831
+ }
832
+ return
833
+ },
834
+ // 安装单位签字人
835
+ async getConstructionUnitId () {
836
+ let data = {
837
+ source: '',
838
+ userid: this.$login.f.id
839
+ }
840
+ data.source = 'this.getParentByType($organization$).getChildByName($'+ this.$login.f.f_parentname + '$).getChildren()'
841
+ let res = await this.$resetpost(
842
+ 'rs/search',
843
+ {data: data},
844
+ {resolveMsg: null, rejectMsg: '安装单位施工班组查询失败!!!'}
845
+ )
846
+
847
+ return res.data.map(item => {
848
+ return {
849
+ label: item.name,
850
+ value: item.id
851
+ }
852
+ })
853
+ },
854
+ // 安装单位负责人
855
+ async getConstructionUnit () {
856
+ let data = {
857
+ source: 'this.getParentByType($organization$).getChildByName($工程施工队$).getChildren()',
858
+ userid: this.$login.f.id
859
+ }
860
+
861
+ let res = await this.$resetpost(
862
+ 'rs/search',
863
+ {data: data},
864
+ {resolveMsg: null, rejectMsg: '安装单位负责人查询失败!!!'}
865
+ )
866
+ console.log("显示返回值",res)
867
+ let constructionUnit = res.data.map(item => {
868
+ return {
869
+ label: item.name,
870
+ value: item.id
871
+ }
872
+ })
873
+ constructionUnit = constructionUnit.sort((a,b) => a.value - b.value)
874
+ console.log("显示返回值1",constructionUnit)
875
+ return constructionUnit
876
+ },
877
+ // 管线施工单位
878
+ async getGuanXianBuildUnit () {
879
+ let data = {
880
+ source: 'this.getParentByType($organization$).getChildByName($工程施工队$).getChildren()',
881
+ userid: this.$login.f.id
882
+ }
883
+
884
+ let res = await this.$resetpost(
885
+ 'rs/search',
886
+ {data: data},
887
+ {resolveMsg: null, rejectMsg: '安装单位负责人查询失败!!!'}
888
+ )
889
+
890
+ return res.data.map(item => {
891
+ return {
892
+ label: item.name,
893
+ value: item.name
894
+ }
895
+ })
896
+ },
897
+ // 建设单位
898
+ async getConstructOperator () {
899
+ let data = {
900
+ source: 'this.getParentByType($organization$).getChildByName($建设单位$).getChildren()',
901
+ userid: this.$login.f.id
902
+ }
903
+
904
+ let res = await this.$resetpost(
905
+ 'rs/search',
906
+ {data: data},
907
+ {resolveMsg: null, rejectMsg: '建设单位人员查询失败!!!'}
908
+ )
909
+
910
+ return res.data.map(item => {
911
+ return {
912
+ label: item.name,
913
+ value: item.id
914
+ }
915
+ })
916
+ },
917
+ // 监理单位
918
+ async getSupervisorOperator () {
919
+ let data = {
920
+ source: 'this.getParentByType($organization$).getChildByName($监理单位$).getChildren()',
921
+ userid: this.$login.f.id
922
+ }
923
+
924
+ let res = await this.$resetpost(
925
+ 'rs/search',
926
+ {data: data},
927
+ {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
928
+ )
929
+ for (const item of this.selectdata.fields) {
930
+ if (item.label === '监理单位') {
931
+ item.value = res.data[0].id
932
+ this.selectdata[item.field] = res.data[0].id
933
+ }
934
+ }
935
+ return res.data.map(item => {
936
+ return {
937
+ label: item.name,
938
+ value: item.id
939
+ }
940
+ })
941
+ },
942
+ // 管线监理单位
943
+ async getSupervisorName () {
944
+ let data = {
945
+ source: 'this.getParentByType($organization$).getChildByName($监理单位$).getChildren()',
946
+ userid: this.$login.f.id
947
+ }
948
+
949
+ let res = await this.$resetpost(
950
+ 'rs/search',
951
+ {data: data},
952
+ {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
953
+ )
954
+ return res.data.map(item => {
955
+ return {
956
+ label: item.name,
957
+ value: item.name
958
+ }
959
+ })
960
+ },
961
+
962
+ // 监理现场负责人
963
+ async getSupervisorOperatorId () {
964
+ let data = {
965
+ source: 'this.getParentByType($organization$).getChildByName($监理班组$).getChildren()',
966
+ userid: this.$login.f.id
967
+ }
968
+ let res = await this.$resetpost(
969
+ 'rs/search',
970
+ {data: data},
971
+ {resolveMsg: null, rejectMsg: '监理单位人员查询失败!!!'}
972
+ )
973
+ return res.data.map(item => {
974
+ return {
975
+ label: item.name,
976
+ value: item.id
977
+ }
978
+ })
979
+ },
980
+ // 土建单位
981
+ async getEngineeringOperator () {
982
+ let data = {
983
+ source: 'this.getParentByType($organization$).getChildByName($土建单位$).getChildren()',
984
+ userid: this.$login.f.id
985
+ }
986
+
987
+ let res = await this.$resetpost(
988
+ 'rs/search',
989
+ {data: data},
990
+ {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
991
+ )
992
+ let result = res.data.map(item => {
993
+ return {
994
+ label: item.name,
995
+ value: item.id
996
+ }
997
+ })
998
+ result.push({label:'用户自理',value:'用户自理'})
999
+ result.push({label:'无',value:'无'})
1000
+ return result
1001
+ },
1002
+ // 管线土建单位
1003
+ async getEngineeringName () {
1004
+ let data = {
1005
+ source: 'this.getParentByType($organization$).getChildByName($土建单位$).getChildren()',
1006
+ userid: this.$login.f.id
1007
+ }
1008
+
1009
+ let res = await this.$resetpost(
1010
+ 'rs/search',
1011
+ {data: data},
1012
+ {resolveMsg: null, rejectMsg: '土建单位人员查询失败!!!'}
1013
+ )
1014
+ let result = res.data.map(item => {
1015
+ return {
1016
+ label: item.name,
1017
+ value: item.name
1018
+ }
1019
+ })
1020
+ result.push({label:'用户自理',value:'用户自理'})
1021
+ result.push({label:'无',value:'无'})
1022
+ return result
1023
+ },
1024
+ // 检测单位
1025
+ async getCheckOperator () {
1026
+ let data = {
1027
+ source: 'this.getParentByType($organization$).getChildByName($检测单位$).getChildren()',
1028
+ userid: this.$login.f.id
1029
+ }
1030
+
1031
+ let res = await this.$resetpost(
1032
+ 'rs/search',
1033
+ {data: data},
1034
+ {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
1035
+ )
1036
+
1037
+ let result = res.data.map(item => {
1038
+ return {
1039
+ label: item.name,
1040
+ value: item.id
1041
+ }
1042
+ })
1043
+ result.push({label:'无',value:'无'})
1044
+ return result
1045
+ },
1046
+ // 管线检测单位
1047
+ async getCheckName () {
1048
+ let data = {
1049
+ source: 'this.getParentByType($organization$).getChildByName($检测单位$).getChildren()',
1050
+ userid: this.$login.f.id
1051
+ }
1052
+
1053
+ let res = await this.$resetpost(
1054
+ 'rs/search',
1055
+ {data: data},
1056
+ {resolveMsg: null, rejectMsg: '检测单位人员查询失败!!!'}
1057
+ )
1058
+
1059
+ let result = res.data.map(item => {
1060
+ return {
1061
+ label: item.name,
1062
+ value: item.name
1063
+ }
1064
+ })
1065
+ result.push({label:'无',value:'无'})
1066
+ return result
1067
+ },
1068
+ // 获取气表品牌
1069
+ async getMeterBrand () {
1070
+ let data = {
1071
+ }
1072
+
1073
+ let http = new HttpResetClass()
1074
+ let res = await http.load(
1075
+ 'POST',
1076
+ `rs/sql/getMeterBrand`,
1077
+ {data: data},
1078
+ {resolveMsg: null, rejectMsg: '气表品牌查询失败!!!'}
1079
+ )
1080
+
1081
+ return res.data
1082
+ },
1083
+ async stopApply () {
1084
+ console.log('终止报建!!!!!')
1085
+
1086
+ if (this.show_data.defname === '报建受理') {
1087
+ this.show_data.f_stop_reason = this.show_data.f_accept_result
1088
+ }
1089
+ if (this.show_data.defname === '现场勘察') {
1090
+ this.show_data.f_stop_reason = this.show_data.f_prospecting_result
1091
+ }
1092
+
1093
+ let data = {
1094
+ apply: this.show_data,
1095
+ user: this.$login.f
1096
+ }
1097
+
1098
+ let res = await this.$resetpost(
1099
+ `rs/logic/stopApply`,
1100
+ {data: data},
1101
+ {resolveMsg: null, rejectMsg: '终止报建失败!!!'}
1102
+ )
1103
+
1104
+ this.$dispatch('loadPage')
1105
+
1106
+ throw '终止报建!!!'
1107
+ },
1108
+ // 获取小区
1109
+ async getResidentialArea () {
1110
+ let data = {
1111
+ tablename: 't_area_address',
1112
+ condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用'`
1113
+ }
1114
+ let http = new HttpResetClass()
1115
+ let res = await http.load(
1116
+ 'POST',
1117
+ `rs/sql/applySingleTable`,
1118
+ {data: data},
1119
+ {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
1120
+ )
1121
+ return res.data.map(item => {
1122
+ return {
1123
+ label: item.f_residential_area,
1124
+ value: item.id
1125
+ }
1126
+ })
1127
+ },
1128
+ //获取燃气公司内部签署人
1129
+ async getContractSignatory () {
1130
+ let data = {
1131
+ 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 = '签章成功'`
1132
+ }
1133
+ let http = new HttpResetClass()
1134
+ let res = await http.load(
1135
+ 'POST',
1136
+ `rs/sql/getAuthSubjectList`,
1137
+ {data: data},
1138
+ {resolveMsg: null, rejectMsg: '签署人查询失败!!!'}
1139
+ )
1140
+ return res.data.map(item => {
1141
+ return {
1142
+ label: item.f_subject_name,
1143
+ value: `${item.id}`
1144
+ }
1145
+ })
1146
+ },
1147
+ async setContractSignatory () {
1148
+ let data = {
1149
+ 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 = '签章成功'`
1150
+ }
1151
+ let http = new HttpResetClass()
1152
+ let res = await http.load(
1153
+ 'POST',
1154
+ `rs/sql/getAuthSubjectList`,
1155
+ {data: data},
1156
+ {resolveMsg: null, rejectMsg: '签署人查询失败!!!'}
1157
+ )
1158
+ this.setLabelOptions('签署人',res.data.map(item => {
1159
+ return {
1160
+ label: item.f_subject_name,
1161
+ value: `${item.id}`
1162
+ }
1163
+ }))
1164
+ this.setLabelValue('签署人',res.data[0].id)
1165
+ },
1166
+ // 地址拼接
1167
+ addressSplicing () {
1168
+ let f_area = this.getLableValue('区/县') ? this.getLableValue('区/县') + '-' : ''
1169
+ let f_slice_area = this.getLableValue('片区') ? this.getLableValue('片区') + '-' : ''
1170
+ let f_street = this.getLableValue('街道') || ''
1171
+ let f_address_detail = this.getLableValue('详细地址') || ''
1172
+
1173
+ let f_address = f_area + f_slice_area + f_street + f_address_detail
1174
+ this.setLabelValue("地址", f_address)
1175
+ },
1176
+ // 小区地址拼接
1177
+ areaAddressSplicing () {
1178
+ let f_area = this.area.f_area || ''
1179
+ let f_slice_area = this.area.f_slice_area || ''
1180
+ let f_street = this.area.f_street || ''
1181
+ let f_residential_area = this.area.f_residential_area || ''
1182
+
1183
+ let f_address = f_area + f_slice_area + f_street + f_residential_area
1184
+ this.setLabelValue("地址", f_address)
1185
+ },
1186
+ //分户挂表生成安检单
1187
+ async getChecklist() {
1188
+ let http = new HttpResetClass()
1189
+ let data = {
1190
+ f_process_id: this.selectdata.f_process_id,
1191
+ f_userinfo_id: this.selectdata.f_userinfo_id,
1192
+ user: this.$login.f.user
1193
+ }
1194
+ let res = await http.load(
1195
+ 'POST',
1196
+ `rs/logic/getChecklist`,
1197
+ {data: data},
1198
+ {resolveMsg: null, rejectMsg: null}
1199
+ )
1200
+ },
1201
+ // 生成合同编号(已作废)
1202
+ async getContractNumber() {
1203
+ const nowDate = new Date()
1204
+ let year = nowDate.getFullYear()
1205
+ let nature = ''
1206
+ if (this.show_data.f_apply_type === '民用报建') {
1207
+ nature = 'J'
1208
+ } else if (this.show_data.f_apply_type === '非民用报建') {
1209
+ nature = 'F'
1210
+ }
1211
+ let shiGong = 'S'
1212
+ let gongQi = 'G'
1213
+
1214
+ let lastyYear = year - 1
1215
+ let http = new HttpResetClass()
1216
+ let data = {
1217
+ user: this.$login.f.user,
1218
+ startDate: year + '-01-01 00:00:00',
1219
+ endDate: year + '-12-31 23:59:59'
1220
+ }
1221
+ let res = await http.load(
1222
+ 'POST',
1223
+ `rs/sql/getContractCount`,
1224
+ {data: data},
1225
+ {resolveMsg: null, rejectMsg: null}
1226
+ )
1227
+ let count = res.data[0].count + 1
1228
+
1229
+
1230
+ let shiGongContractNumber = year + nature + shiGong + '-' + count
1231
+ let gongQiContractNumber = year + nature + gongQi + '-' + count
1232
+ if (!this.getLableValue('委托合同编号')){
1233
+ this.setLabelValue('委托合同编号',shiGongContractNumber)
1234
+ this.setLabelValue('供气合同编号',gongQiContractNumber)
1235
+ }
1236
+ },
1237
+ //获取气价列表
1238
+ async getPrice (index) {
1239
+ if (isEmpty(this.show_data.f_gas_nature) || isEmpty(this.show_data.f_price_type)) {
1240
+ return
1241
+ }
1242
+
1243
+ if (index) {
1244
+ this.setLabelValue('气价名称', null)
1245
+ }
1246
+
1247
+ if (this.show_data.f_price_type === '混合气价') {
1248
+ this.showLabels('比率')
1249
+ } else {
1250
+ this.setLabelValue('比率', null)
1251
+ this.hideLabels('比率')
1252
+ }
1253
+
1254
+ let data = {
1255
+ 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}'`
1256
+ }
1257
+
1258
+ if (this.show_data.f_apply_type === '民用报建') {
1259
+ data.condition += `and f_user_type = '民用'`
1260
+ }
1261
+ if (this.show_data.f_apply_type === '非民用报建') {
1262
+ data.condition += `and f_user_type = '非民用'`
1263
+ }
1264
+
1265
+
1266
+ let http = new HttpResetClass()
1267
+ let res = await http.load(
1268
+ 'POST',
1269
+ `rs/sql/applyGetPrice`,
1270
+ {data: data},
1271
+ {resolveMsg: null, rejectMsg: '气价查询失败!!!'}
1272
+ )
1273
+ let priceLoptions = res.data.map(item => {
1274
+ return {
1275
+ label: item.f_price_name,
1276
+ value: `${item.id}`
1277
+ }
1278
+ })
1279
+ this.setLabelOptions('气价名称', priceLoptions)
1280
+ },
1281
+ // 单价失去焦点
1282
+ async priceChange () {
1283
+ if (isEmpty(this.show_data.f_price)) {
1284
+ return
1285
+ }
1286
+ let data = {
1287
+ operator: '*',
1288
+ num1: this.show_data.f_price,
1289
+ num2: this.show_data.f_install_count
1290
+ }
1291
+ let http = new HttpResetClass()
1292
+ let res = await http.load(
1293
+ 'POST',
1294
+ `rs/logic/compute`,
1295
+ {data: data},
1296
+ {resolveMsg: null, rejectMsg: '工程材料费计算失败!!!'}
1297
+ )
1298
+
1299
+ this.setLabelValue('工程材料费', res.data)
1300
+ },
1301
+ //工商户验证表具类型是否需选择
1302
+ async meterBrandCheck() {
1303
+ let data = {
1304
+ f_process_id: this.show_data.f_process_id,
1305
+ orgid:this.$login.f.orgid
1306
+ }
1307
+ let http = new HttpResetClass()
1308
+ let res = await http.load(
1309
+ 'POST',
1310
+ `rs/sql/meterCheck`,
1311
+ {data: data},
1312
+ {resolveMsg: null, rejectMsg: null}
1313
+ )
1314
+ if (res.data[0].num > 0){
1315
+ this.$showAlert(`还有${res.data[0].num}处未选择表具,请选择后提交!`, 'warning', 3000)
1316
+ throw null
1317
+ }
1318
+ },
1319
+ // 安装户数
1320
+ async installCountCheck() {
1321
+ let data = {
1322
+ tablename: 't_userinfo',
1323
+ condition: `f_process_id = '${this.show_data.f_process_id}' and f_user_state != '销户'`,
1324
+ }
1325
+
1326
+ let http = new HttpResetClass()
1327
+ let res = await http.load(
1328
+ 'POST',
1329
+ `rs/sql/applySingleTable`,
1330
+ {data: data},
1331
+ {resolveMsg: null, rejectMsg: '用户数量查询失败'}
1332
+ )
1333
+ this.setLabelValue('安装户数',res.data.length)
1334
+ },
1335
+ // 户内出单日期
1336
+ getOutdoorsTime () {
1337
+ for (const item of this.selectdata.fields) {
1338
+ console.log('是否进入')
1339
+ if (item.label === '户内出单日期') {
1340
+ item.value = this.selectdata.f_release_date
1341
+ this.selectdata[item.field] = item.value
1342
+ console.log('当前出单时间',item.value)
1343
+ }else if(item.label === '庭院出单日期'){
1344
+ item.value = this.selectdata.f_release_date
1345
+ this.selectdata[item.field] = item.value
1346
+ }
1347
+ }
1348
+ },
1349
+ //获取缴费日期
1350
+ async getChargeDate() {
1351
+ let data = {
1352
+ tablename: 'activityins',
1353
+ condition: `processid = '${this.selectdata.f_process_id}' and defname = '报装缴费'`,
1354
+ }
1355
+
1356
+ let http = new HttpResetClass()
1357
+ let res = await http.load(
1358
+ 'POST',
1359
+ `rs/sql/applySingleTable`,
1360
+ {data: data},
1361
+ {resolveMsg: null, rejectMsg: null}
1362
+ )
1363
+ if (res.data[0]) {
1364
+ for (const item of this.selectdata.fields) {
1365
+ if (item.label === '缴费日期') {
1366
+ item.value = res.data[0].finishtime
1367
+ this.selectdata[item.field] = item.value
1368
+ }
1369
+ }
1370
+ }
1371
+ },
1372
+ //获取工程施工时各部门当前签字环节
1373
+ async getSingAct() {
1374
+ let data = {
1375
+ f_process_id: this.selectdata.f_process_id
1376
+ }
1377
+ let http = new HttpResetClass()
1378
+ let res = await http.load(
1379
+ 'POST',
1380
+ `rs/sql/getSingAct`,
1381
+ {data: data},
1382
+ {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1383
+ )
1384
+ if (res.data.length > 0) {
1385
+ for (const item of this.selectdata.fields) {
1386
+ if (item.label === '签字所在环节') {
1387
+ item.value = res.data[0].defname
1388
+ this.selectdata[item.field] = item.value
1389
+ }
1390
+ }
1391
+ }
1392
+ },
1393
+ //获取土建的乙方
1394
+ getYiFang() {
1395
+ return [{label: '榆林榆川天然气', value: '榆林榆川天然气'},
1396
+ {label: this.selectdata.f_user_name, value: this.selectdata.f_user_name},
1397
+ {label: '无', value: '无'}]
1398
+ },
1399
+ async checkIsUser() {
1400
+ let data = {
1401
+ items: 'count(*) num' ,
1402
+ tablename: 't_userinfo',
1403
+ condition: `f_process_id = '${this.show_data.f_process_id}' and f_user_state <> '销户'`
1404
+ }
1405
+
1406
+ let http = new HttpResetClass()
1407
+ let res = await http.load(
1408
+ 'POST',
1409
+ `rs/sql/applySingleTable`,
1410
+ {data: data},
1411
+ {resolveMsg: null, rejectMsg: '是否存在用户!!!'}
1412
+ )
1413
+ if (res.data[0].num <= 0){
1414
+ this.$showAlert(`未添加设备,请添加后提交!`, 'warning', 3000)
1415
+ throw null
1416
+ }
1417
+ },
1418
+ async repair() {
1419
+ let data = {
1420
+ f_process_id: this.show_data.f_process_id
1421
+ }
1422
+ let http = new HttpResetClass()
1423
+ let res = await http.load(
1424
+ 'POST',
1425
+ `rs/logic/updateRepair`,
1426
+ {data: data},
1427
+ {resolveMsg: null, rejectMsg: '维修工单状态修改!!!'}
1428
+ )
1429
+ this.$dispatch('loadPage')
1430
+ },
1431
+ changeDispatch(value){
1432
+ if (value === '维修安检中心'){
1433
+ this.hideLabels('现场项目负责人', '安装单位', '安装单位现场负责人', '建设单位', '监理单位', '土建单位', '检测单位', '户内出单日期', '户内回单日期'
1434
+ , '户内施工备注', '庭院出单日期', '庭院回单日期', '庭院施工备注', '是否发起签字', '签字是否完成', '签字所在环节')
1435
+ this.hideButtons('签字')
1436
+ this.electiveLabels('现场项目负责人', '安装单位', '建设单位', '监理单位', '土建单位', '检测单位', '户内出单日期', '户内回单日期'
1437
+ , '户内施工备注', '庭院出单日期', '庭院回单日期', '庭院施工备注', '是否发起签字', '签字是否完成', '签字所在环节')
1438
+ }
1439
+ if (value === '施工工队'){
1440
+ this.showLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位', '户内出单日期', '户内回单日期'
1441
+ , '户内施工备注', '庭院出单日期', '庭院回单日期', '庭院施工备注', '是否发起签字', '签字是否完成', '签字所在环节')
1442
+ this.requiredLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位', '现场项目负责人', '是否发起签字', '签字是否完成', '签字所在环节')
1443
+ }
1444
+ },
1445
+ //拆除流程核对气量提交
1446
+ async gasCheckBefore() {
1447
+ let http = new HttpResetClass()
1448
+ let data = {
1449
+ tablename: 't_files',
1450
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fusetype = '气量核对单'`
1451
+ }
1452
+ let res = await http.load(
1453
+ 'POST',
1454
+ `rs/sql/applySingleTable`,
1455
+ {data: data},
1456
+ {resolveMsg: null, rejectMsg: null}
1457
+ )
1458
+ if (res.data.length <= 0) {
1459
+ this.$showMessage('气量核对单未上传,无法提交!!!')
1460
+ throw '气量核对单未上传,无法提交!'
1461
+ }
1462
+ },
1463
+ },
1464
+ events: {
1465
+ // 强制开关阀
1466
+ async 'onOffValve' () {
1467
+ let data = {
1468
+ condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
1469
+ }
1470
+ let http = new HttpResetClass()
1471
+ let res = await http.load(
1472
+ 'POST',
1473
+ `rs/sql/getApplyUserinfo`,
1474
+ {data: data},
1475
+ {resolveMsg: null, rejectMsg: '档案获取失败!!!'}
1476
+ )
1477
+
1478
+ let userinfo = res.data[0]
1479
+
1480
+ if (this.show_data.button.button_name !== '退出强制状态') {
1481
+ data = {
1482
+ condition: `t_userfiles.f_meternumber = '${userinfo.f_meternumber}'`,
1483
+ contentData: {
1484
+ isOpen: this.show_data.button.button_name === '强制开阀' ? 1 : 0
1485
+ },
1486
+ inputtor: this.$login.f.name,
1487
+ instructTitle: this.show_data.button.button_name === '强制开阀' ? '开阀' : '关阀',
1488
+ instructType: '阀门控制',
1489
+ meterBrandName: userinfo.f_alias
1490
+ }
1491
+ res = await http.load(
1492
+ 'POST',
1493
+ `rs/logic/saveInstruct`,
1494
+ {data: data},
1495
+ {resolveMsg: null, rejectMsg: `${this.show_data.button.button_name}失败!!!`}
1496
+ )
1497
+ }
1498
+
1499
+ data = {
1500
+ f_user_id: userinfo.f_user_id,
1501
+ f_userinfo_id: userinfo.f_userinfo_id,
1502
+ record: {
1503
+ f_filiale: this.$login.f.f_fengongsi,
1504
+ f_instruct_meta_data: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
1505
+ f_instruct_title: this.show_data.button.button_name === '退出强制状态' ? '退出强制阀控' : '进入强制阀控',
1506
+ f_instruct_type: '阀门控制',
1507
+ f_meternumber: userinfo.f_meternumber,
1508
+ f_operator: this.$login.f.name,
1509
+ f_outlets: userinfo.f_outlets,
1510
+ f_reason: this.show_data.button.f_reason,
1511
+ f_user_id: userinfo.f_user_id,
1512
+ f_userinfo_id: userinfo.f_userinfo_id
1513
+ },
1514
+ state: this.show_data.button.button_name === '退出强制状态' ? 0 : 1
1515
+ }
1516
+
1517
+ res = await http.load(
1518
+ 'POST',
1519
+ `rs/logic/updateNetWorkValve`,
1520
+ {data: data},
1521
+ {resolveMsg: '执行成功!!!', rejectMsg: `执行失败!!!`}
1522
+ )
1523
+
1524
+ },
1525
+ // 修改用户档案
1526
+ async 'updateUserinfoState' () {
1527
+ let data = {
1528
+ f_userinfo_id: this.show_data.f_userinfo_id
1529
+ }
1530
+ let http = new HttpResetClass()
1531
+ let res = await http.load(
1532
+ 'POST',
1533
+ `rs/logic/updateUserinfoState`,
1534
+ {data: data},
1535
+ {resolveMsg: '该用户档案已为正常档案,可进行开关阀操作!!!', rejectMsg: '档案状态修改失败!!!'}
1536
+ )
1537
+
1538
+ this.showButtons('强制开阀','强制关阀')
1539
+ this.hideButtons('转正式档案')
1540
+ },
1541
+ // 选择用户
1542
+ async 'selectUserinfo' (row) {
1543
+ this.setLabelValue('用户编号', row.f_userinfo_id)
1544
+ this.setLabelValue('用户名称', row.f_user_name)
1545
+ this.setLabelValue('用户电话', row.f_user_phone)
1546
+ this.setLabelValue('证件类型', row.f_credentials)
1547
+ this.setLabelValue('证件号码', row.f_idnumber)
1548
+ this.setLabelValue('地址', row.f_address)
1549
+ this.setLabelValue('定位地址', row.f_location_address)
1550
+ this.setLabelValue('购货单位识别号', row.f_taxpayer_id)
1551
+ this.setLabelValue('购货单位名称', row.f_paper_name)
1552
+ this.setLabelValue('购货单位开户行及银行账号', row.f_paper_account)
1553
+ this.setLabelValue('购货单位地址电话', row.f_address_phone)
1554
+ this.setLabelValue('联系人', row.f_petitionuser)
1555
+ this.setLabelValue('区/县', row.f_area)
1556
+ this.setLabelValue('片区', row.f_slice_area)
1557
+ this.setLabelValue('街道', row.f_street)
1558
+ if (row.f_address_detail){
1559
+ this.setLabelValue('详细地址', row.f_address_detail)
1560
+ }
1561
+ if (this.show_data.f_apply_type === '改线业务'){
1562
+ this.setLabelValue('工程名称', row.f_user_name)
1563
+ this.setLabelValue('联系电话', row.f_user_phone)
1564
+ }
1565
+ this.show_data.f_address_detail = row.f_address_detail
1566
+ this.show_data.f_residential_area = row.f_residential_area
1567
+ this.show_data.unit = row.unit
1568
+ this.show_data.f_building = row.f_building
1569
+ this.show_data.f_floor = row.f_floor
1570
+ this.show_data.f_taxpayer_id = row.f_taxpayer_id //购货单位识别号
1571
+ this.show_data.f_address_phone = row.f_address_phone //购货单位地址电话
1572
+ this.show_data.f_paper_name = row.f_paper_name //购货单位名称
1573
+ this.show_data.f_paper_account = row.f_paper_account
1574
+ this.show_data.f_userinfo_id = row.f_userinfo_id
1575
+ console.log("当前数据",this.show_data)
1576
+ if (this.show_data.f_apply_type === '设备拆除'){
1577
+ let data = {
1578
+ userinfo: row,
1579
+ apply: this.show_data,
1580
+ loginUser: this.$login.f
1581
+ }
1582
+ let res = await this.$resetpost(
1583
+ `rs/logic/addChaiChuUser`,
1584
+ {data: data},
1585
+ {resolveMsg: '添加拆除用户成功!!!', rejectMsg: '添加拆除用户失败!!!'}
1586
+ )
1587
+ this.$dispatch('breakControl', this.show_data)
1588
+ }
1589
+ },
1590
+ async 'priceReadEvent' (index) {
1591
+ await this.setContractSignatory()
1592
+ // await this.getContractNumber()
1593
+ await this.getPrice(index)
1594
+ await this.priceChange()
1595
+ },
1596
+ async 'getPrice' (index) {
1597
+ if (isEmpty(this.show_data.f_gas_nature) || isEmpty(this.show_data.f_price_type)) {
1598
+ return
1599
+ }
1600
+
1601
+ if (index) {
1602
+ this.setLabelValue('气价名称', null)
1603
+ }
1604
+
1605
+ if (this.show_data.f_price_type === '混合气价') {
1606
+ this.showLabels('比率')
1607
+ } else {
1608
+ this.setLabelValue('比率', null)
1609
+ this.hideLabels('比率')
1610
+ }
1611
+
1612
+ let data = {
1613
+ 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}'`
1614
+ }
1615
+
1616
+ if (this.show_data.f_apply_type === '民用报建') {
1617
+ data.condition += `and f_user_type = '民用'`
1618
+ }
1619
+ if (this.show_data.f_apply_type === '非民用报建') {
1620
+ data.condition += `and f_user_type = '非民用'`
1621
+ }
1622
+
1623
+
1624
+ let http = new HttpResetClass()
1625
+ let res = await http.load(
1626
+ 'POST',
1627
+ `rs/sql/applyGetPrice`,
1628
+ {data: data},
1629
+ {resolveMsg: null, rejectMsg: '气价查询失败!!!'}
1630
+ )
1631
+
1632
+ let priceLoptions = res.data.map(item => {
1633
+ return {
1634
+ label: item.f_price_name,
1635
+ value: `${item.id}`
1636
+ }
1637
+ })
1638
+ this.setLabelOptions('气价名称',priceLoptions)
1639
+ },
1640
+ // 街道失去焦点
1641
+ async changStreet () {
1642
+ if (isEmpty(this.show_data.f_street)) {
1643
+ return
1644
+ }
1645
+ this.addressSplicing()
1646
+ },
1647
+
1648
+ 'changAddressDetail'(){
1649
+ if (isEmpty(this.show_data.f_address_detail)) {
1650
+ return
1651
+ }
1652
+ this.addressSplicing()
1653
+ },
1654
+ 'changAddress'(){
1655
+ if (isEmpty(this.show_data.f_address_detail)) {
1656
+ return
1657
+ }
1658
+ let f_address = this.show_data.f_address + this.show_data.f_address_detail
1659
+ this.setLabelValue("地址", f_address)
1660
+ },
1661
+ // 片区失去焦点
1662
+ async 'changSliceArea' () {
1663
+ if (isEmpty(this.show_data.f_area) || isEmpty(this.show_data.f_slice_area)) {
1664
+ return
1665
+ }
1666
+
1667
+ let data = {
1668
+ items: 'f_street label,f_street value',
1669
+ tablename: 't_area_address',
1670
+ condition: `f_area = '${this.show_data.f_area}' and f_slice_area = '${this.show_data.f_slice_area}'`,
1671
+ groupitem: 'f_street'
1672
+ }
1673
+
1674
+ let http = new HttpResetClass()
1675
+ let res = await http.load(
1676
+ 'POST',
1677
+ `rs/sql/applySingleTable`,
1678
+ {data: data},
1679
+ {resolveMsg: null, rejectMsg: '签字状态查询失败!!!'}
1680
+ )
1681
+ this.setLabelOptions('街道', res.data)
1682
+
1683
+ this.addressSplicing()
1684
+ },
1685
+ // 区县失去焦点
1686
+ 'changeArea' () {
1687
+ if (isEmpty(this.show_data.f_area)) {
1688
+ return
1689
+ }
1690
+ this.setLabelValue('片区', null)
1691
+ this.setLabelValue('街道', null)
1692
+ this.setLabelOptions('片区', this.$appdata.getParam(`${this.show_data.f_area}片区`))
1693
+ this.setLabelOptions('街道', [])
1694
+
1695
+ this.addressSplicing()
1696
+ },
1697
+ // 开启签字
1698
+ async 'startSignActivity' () {
1699
+ this.hideButtons('签字')
1700
+ await this.constructionBefore()
1701
+
1702
+ let data = {
1703
+ apply: this.show_data,
1704
+ user: this.$login.f
1705
+ }
1706
+
1707
+ let res = await this.$resetpost(
1708
+ `rs/logic/startSignActivity`,
1709
+ {data: data},
1710
+ {resolveMsg: '签字流程已发起!!!', rejectMsg: '签字发起失败!!!'}
1711
+ )
1712
+
1713
+ this.$dispatch('breakControl', this.show_data)
1714
+ },
1715
+ // 工程施工初始化
1716
+ async 'buildReadyEvent' () {
1717
+ // this.changeDispatch(this.getLableValue('派工类型'))
1718
+ if(this.getLableValue('是否发起签字') === '是') {
1719
+ this.hideButtons('签字')
1720
+ }
1721
+ let http = new HttpResetClass()
1722
+ if (isEmpty(this.show_data.f_meter_brand)) {
1723
+ return
1724
+ }else {
1725
+ if (this.show_data.f_meter_brand === 'null') {
1726
+ this.setLabelOptions('气表型号', [{label: '无', value: 'null'}])
1727
+ return
1728
+ }
1729
+ let data = {
1730
+ f_gasbrand_id: this.show_data.f_meter_brand
1731
+ }
1732
+ let res = await http.load(
1733
+ 'POST',
1734
+ `rs/sql/getGasModel`,
1735
+ {data: data},
1736
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1737
+ )
1738
+ this.setLabelOptions('气表型号', res.data)
1739
+ }
1740
+
1741
+ if (this.show_data.f_apply_type === '分户挂表') {
1742
+ let data = {
1743
+ condition: `ui.f_userinfo_id = '${this.show_data.f_userinfo_id}'`
1744
+ }
1745
+ let http = new HttpResetClass()
1746
+ let res = await http.load(
1747
+ 'POST',
1748
+ `rs/sql/getApplyUserinfo`,
1749
+ {data: data},
1750
+ {resolveMsg: null, rejectMsg: '档案状态获取失败!!!'}
1751
+ )
1752
+ console.log("f_meter_classif11y",res.data[0].f_meter_classify)
1753
+ if (!res.data[0].f_meter_brand.includes('物联网表')) {
1754
+ return
1755
+ }
1756
+ console.log("f_user_state11",res.data[0].f_user_state)
1757
+ if (res.data[0].f_user_state === '正常') {
1758
+ this.showButtons('退出强制状态','强制关阀')
1759
+ this.hideButtons('转正式档案')
1760
+ } else {
1761
+ this.showButtons('转正式档案')
1762
+ this.hideButtons('退出强制状态','强制关阀')
1763
+ }
1764
+ }
1765
+ },
1766
+ // 工程派工初始化
1767
+ async 'dispatchReadyEvent' () {
1768
+ if (isEmpty(this.show_data.f_meter_brand)) {
1769
+ return
1770
+ }
1771
+ let data = {
1772
+ f_gasbrand_id: this.show_data.f_meter_brand
1773
+ }
1774
+ let http = new HttpResetClass()
1775
+ let res = await http.load(
1776
+ 'POST',
1777
+ `rs/sql/getGasModel`,
1778
+ {data: data},
1779
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1780
+ )
1781
+
1782
+ this.setLabelOptions('气表型号', res.data)
1783
+ },
1784
+ // 气表品牌失去焦点
1785
+ async 'meterBrandChenge' (index) {
1786
+ if (isEmpty(this.show_data.f_meter_brand)) {
1787
+ return
1788
+ }
1789
+ this.setLabelValue('气表型号', null)
1790
+ let data = {
1791
+ f_gasbrand_id: this.show_data.f_meter_brand
1792
+ }
1793
+ let http = new HttpResetClass()
1794
+ let res = await http.load(
1795
+ 'POST',
1796
+ `rs/sql/getGasModel`,
1797
+ {data: data},
1798
+ {resolveMsg: null, rejectMsg: '气表型号查询失败!!!'}
1799
+ )
1800
+
1801
+ this.setLabelOptions('气表型号', res.data)
1802
+ },
1803
+ // 单价失去焦点
1804
+ async 'priceChange' (index) {
1805
+ if (isEmpty(this.show_data.f_price)) {
1806
+ return
1807
+ }
1808
+ let data = {
1809
+ operator: '*',
1810
+ num1: this.show_data.f_price,
1811
+ num2: this.show_data.f_install_count
1812
+ }
1813
+ let http = new HttpResetClass()
1814
+ let res = await http.load(
1815
+ 'POST',
1816
+ `rs/logic/compute`,
1817
+ {data: data},
1818
+ {resolveMsg: null, rejectMsg: '工程材料费计算失败!!!'}
1819
+ )
1820
+
1821
+ this.setLabelValue('工程材料费', res.data)
1822
+ },
1823
+ // 安装户数失去焦点
1824
+ 'installCountChange' (index) {
1825
+ if (isEmpty(this.show_data.f_install_count)) {
1826
+ return
1827
+ }
1828
+ if (Number(this.show_data.f_install_count) > Number(this.show_data.f_apply_count)) {
1829
+ this.$showAlert('安装数已超过申请数!!!', 'warning', 3000)
1830
+ // this.setLabelValue('安装户数', null)
1831
+ // this.setLabelValue('安装点数', null)
1832
+ // return
1833
+ }
1834
+
1835
+ if (Number(this.show_data.f_install_count) <= 0) {
1836
+ this.$showAlert('至少有一个用户!!!', 'warning', 3000)
1837
+ this.setLabelValue('安装户数', null)
1838
+ this.setLabelValue('安装点数', null)
1839
+ return
1840
+ }
1841
+ },
1842
+ // 土建单位失去焦点
1843
+ 'judgmentEngineering' (index) {
1844
+ if (this.show_data.f_engineering_operator_id === '无' && this.show_data.f_civil_engineering !== "无") {
1845
+ this.$showAlert('土建单位未选择请注意!!!', 'warning', 3000)
1846
+ throw null
1847
+ }
1848
+ },
1849
+ // 报建性质失去焦点
1850
+ 'applyNatureChange' (index) {
1851
+ if (this.show_data.f_apply_nature === '散户') {
1852
+ this.hideLabels('营业执照')
1853
+ this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话')
1854
+ }
1855
+ if (this.show_data.f_apply_nature === '小区') {
1856
+ this.showLabels('营业执照', '小区/巷道')
1857
+ this.requiredLabels('小区/巷道')
1858
+ }
1859
+ },
1860
+ // 报建性质失去焦点
1861
+ 'applyPaperChange' (index) {
1862
+ console.log("测试是否进入")
1863
+ if (this.show_data.f_paper_type === '专票') {
1864
+ this.requiredLabels('购货单位名称','购货单位识别号', '购货单位银行账号', '购货单位地址电话')
1865
+ }else {
1866
+ this.electiveLabels( '购货单位识别号', '购货单位银行账号', '购货单位地址电话')
1867
+ }
1868
+ },
1869
+ 'chargeAfter'(index){
1870
+ if (this.show_data.f_surplus_money !== this.show_data.f_due_money){
1871
+ this.hideButtons('退回')
1872
+ }else {
1873
+ this.showButtons('退回')
1874
+ }
1875
+ },
1876
+ //购货单位识别号失去焦点
1877
+ 'getAuthenticationMethod' (index){
1878
+ if (isEmpty(this.show_data.f_taxpayer_id)) {
1879
+ this.setLabelValue('认证类型','个人认证')
1880
+ }else {
1881
+ this.setLabelValue('认证类型','企业认证')
1882
+ }
1883
+ },
1884
+ //搜索小区
1885
+ 'selectArea' (val,index) {
1886
+ let pcdText = `and f_residential_area like '%${val}%'`
1887
+ let data = {
1888
+ tablename: 't_area_address',
1889
+ condition: `f_filiale = '${this.$login.f.f_fengongsi}' and f_area_status = '启用' ${pcdText}`
1890
+ }
1891
+ new HttpResetClass().load("POST", `rs/sql/applySingleTable`, {data:data}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
1892
+ console.log('请求发送完成!!!!!'+JSON.stringify(res))
1893
+ if(res.data.length>0){
1894
+ this.setLabelOptions('小区/巷道', res.data.map(item => {
1895
+ return {
1896
+ label: item.f_residential_area,
1897
+ value: item.id
1898
+ }
1899
+ }))
1900
+ }
1901
+ })
1902
+ },
1903
+ //身份证号码校验
1904
+ 'checkIdnumber' (index) {
1905
+ if(this.show_data.f_credentials === '身份证'){
1906
+ var verify = /^[1-9]\d{5}(18|19|20|21)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
1907
+ if (!verify.test(this.show_data.fields[index].value)){
1908
+ this.show_data.fields[index].value = null
1909
+ this.$showAlert('身份证号码格式错误请重新输入!!!', 'warning', 3000)
1910
+ }
1911
+ }
1912
+ },
1913
+ //电话号码校验
1914
+ 'checkPhone' (index) {
1915
+ var verify = /^([1][0-9]{10})$/
1916
+ if (!verify.test(this.show_data.fields[index].value)){
1917
+ this.show_data.fields[index].value = null
1918
+ this.$showAlert('电话号码格式错误请重新输入!!!', 'warning', 3000)
1919
+ }
1920
+ },
1921
+ 'changeDispatching'(index){
1922
+ if (this.show_data.fields[index].value === '安检维修中心'){
1923
+ this.hideLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位')
1924
+ this.electiveLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位')
1925
+ }else if (this.show_data.fields[index].value === '施工工队'){
1926
+ this.showLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位')
1927
+ this.requiredLabels('现场项目负责人', '安装单位', '安装单位现场负责人','建设单位', '监理单位', '土建单位', '检测单位')
1928
+ }
1929
+ },
1930
+ 'getRefund'(index){
1931
+ if (this.show_data.fields[index].value === '否'){
1932
+ this.hideLabels('退费金额', '退款项')
1933
+ this.electiveLabels('退费金额', '退款项')
1934
+ }else if (this.show_data.fields[index].value === '是'){
1935
+ this.showLabels('退费金额', '退款项')
1936
+ this.requiredLabels('退费金额', '退款项')
1937
+ }
1938
+ },
1939
+ 'hasTrouble'(index) {
1940
+ if (this.show_data.fields[index].value === '有纠纷'){
1941
+ this.hideButtons('提交', '签字', '图纸变更')
1942
+ this.showLabels('纠纷原因')
1943
+ }else {
1944
+ this.showButtons('提交', '签字', '图纸变更')
1945
+ this.hideLabels('纠纷原因')
1946
+ }
1947
+ },
1948
+ //金额大小写转换
1949
+ 'applyCapitalizedAmount' (index){
1950
+ // 通过正则过滤小数点后两位
1951
+ let money = (this.show_data.fields[index].value.match(/^\d*(\.?\d{0,2})/g)[0]) || null
1952
+ this.setLabelValue('应交金额大写',this.smalltoBIG(money))
1953
+ },
1954
+
1955
+ // ===========================================
1956
+ 'initializtionView' () {
1957
+ if (this.show_data.f_apply_nature === '散户') {
1958
+ this.hideLabels('营业执照')
1959
+ this.electiveLabels('营业执照', '购货单位识别号', '购货单位银行账号', '购货单位地址电话')
1960
+ }
1961
+ if (this.show_data.f_apply_nature === '小区') {
1962
+ this.showLabels('营业执照', '小区/巷道', '小区名称')
1963
+ this.requiredLabels('小区/巷道')
1964
+ // this.hideComponents('用户花名单')
1965
+ }
1966
+ },
1967
+ // 检查重复
1968
+ 'checkRepeat' (index) {
1969
+ this.checkDuplicate(index)
1970
+ },
1971
+ async 'button'() {
1972
+ if (this.show_data.button.before) {
1973
+ await this[this.show_data.button.before]()
1974
+ }
1975
+ // 点击重置按钮就重置数据
1976
+ if (this.show_data.button.button_name === '重置') {
1977
+ this.$dispatch('breakControl', this.selectdata)
1978
+ return
1979
+ }
1980
+
1981
+ this.show_data.start_activity = this.$workflow_vue.start_activity
1982
+ this.show_data.xmlfilename = this.$workflow_vue.workflow_xmlfilename
1983
+
1984
+ let data = {
1985
+ apply: this.show_data,
1986
+ user: this.$login.f
1987
+ }
1988
+
1989
+ let res = await this.$resetpost(
1990
+ `rs/logic/ApplyProductService`,
1991
+ {data: data},
1992
+ {resolveMsg: null, rejectMsg: '数据保存失败'}
1993
+ )
1994
+
1995
+ if (this.show_data.button.after) {
1996
+ this[this.show_data.button.after]()
1997
+ }
1998
+ this.$dispatch('loadPage')
1999
+ },
2000
+ // 失去焦点出触发事件
2001
+ 'onchange' (index) {
2002
+ },
2003
+ selectSearch (val, index) {},
2004
+ 'onblur' (index) {},
2005
+ 'oninput' (index) {},
2006
+ async 'onchangeModal' (index, fieldIndex) {
2007
+ },
2008
+ async 'onblurModal' (index, fieldIndex) {
2009
+
2010
+ },
2011
+ async 'oninputModal' (index, fieldIndex) {
2012
+
2013
+ },
2014
+ async 'onetomanydelete' (index, rowIndex) {
2015
+
2016
+ let http = new HttpResetClass()
2017
+
2018
+ let res = await http.load(
2019
+ 'DELETE',
2020
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}/${this.show_data.onetomany[index].rows[rowIndex].id}`,
2021
+ null,
2022
+ {resolveMsg: null, rejectMsg: '删除失败!!!'}
2023
+ )
2024
+
2025
+ res = await this.$resetpost(
2026
+ 'rs/entity/t_apply',
2027
+ this.show_data
2028
+ )
2029
+
2030
+ this.$dispatch('breakControl', this.show_data)
2031
+ },
2032
+ async 'onetomanyupdate' (index, rowIndex) {
2033
+ let data = this.show_data.onetomany[index].rows[rowIndex]
2034
+
2035
+ this.show_data.onetomany[index].fields.forEach(item => {
2036
+ data[item.field] = item.value
2037
+ })
2038
+ let res = await this.$resetpost(
2039
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
2040
+ data
2041
+ )
2042
+
2043
+ res = await this.$resetpost(
2044
+ 'rs/entity/t_apply',
2045
+ this.show_data
2046
+ )
2047
+
2048
+ this.$dispatch('breakControl', this.show_data)
2049
+ },
2050
+ async 'onetomanyadd' (index) {
2051
+ let data = {
2052
+ f_process_id : this.show_data.f_process_id,
2053
+ f_operator_id: this.$login.f.id,
2054
+ f_operator: this.$login.f.name,
2055
+ f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
2056
+ f_orgid: this.$login.f.orgid,
2057
+ f_orgname: this.$login.f.orgs
2058
+ }
2059
+ this.show_data.onetomany[index].fields.forEach(item => {
2060
+ data[item.field] = item.value
2061
+ })
2062
+ let res = await this.$resetpost(
2063
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
2064
+ data
2065
+ )
2066
+
2067
+ res = await this.$resetpost(
2068
+ 'rs/entity/t_apply',
2069
+ this.show_data
2070
+ )
2071
+
2072
+ this.$dispatch('breakControl', this.show_data)
2073
+ },
2074
+ 'complyInstallation' (index) {
2075
+ if (this.show_data.defname === '报建受理'){
2076
+ if (this.show_data.f_accept_install === '否') {
2077
+ console.log("测试")
2078
+ this.hideButtons('下发','提交')
2079
+ this.showButtons('终止')
2080
+ } else {
2081
+ this.hideButtons('终止')
2082
+ this.showButtons('下发','提交')
2083
+ }
2084
+ }
2085
+ if (this.show_data.defname === '现场勘察'){
2086
+ if (this.show_data.f_survey_opinion === '否') {
2087
+ console.log("测试")
2088
+ this.hideButtons('下发','提交')
2089
+ this.showButtons('终止')
2090
+ } else {
2091
+ this.hideButtons('终止')
2092
+ this.showButtons('下发','提交')
2093
+ }
2094
+ }
2095
+ if (this.show_data.defname === '报建受理' || this.show_data.defname === '现场勘察'){
2096
+ this.installCountCheck()
2097
+ }
2098
+ },
2099
+ async 'saveData'(index) {
2100
+ if (this.show_data.f_residential_area_id) {
2101
+ let data = {
2102
+ tablename: 't_area_address',
2103
+ condition: `id = '${this.show_data.f_residential_area_id}'`
2104
+ }
2105
+ let http = new HttpResetClass()
2106
+ let res = await http.load(
2107
+ 'POST',
2108
+ `rs/sql/applySingleTable`,
2109
+ {data: data},
2110
+ {resolveMsg: null, rejectMsg: '小区查询失败!!!'}
2111
+ )
2112
+
2113
+ this.area = res.data[0]
2114
+ }
2115
+ this.areaAddressSplicing()
2116
+ },
2117
+ async 'importEvent' (index, table, configName, filepath) {
2118
+ let data = {
2119
+ selectdata: this.show_data,
2120
+ table: table,
2121
+ filepath: filepath,
2122
+ configName: configName,
2123
+ user: this.$login.f
2124
+ }
2125
+
2126
+ let res = await this.$resetpost(
2127
+ `rs/logic/importEvent`,
2128
+ data
2129
+ )
2130
+
2131
+ this.$dispatch('breakControl', this.show_data)
2132
+ },
2133
+ 'onbutchange' (index) {
2134
+
2135
+ },
2136
+ 'onbutblur' (index) {
2137
+
2138
+ },
2139
+ 'onbutinput' (index) {
2140
+
2141
+ }
2142
+ },
2143
+ watch: {
2144
+ }
2145
+ }
2146
+ </script>
2147
+ <style scoped>
2148
+ /*清除model中的浮动*/
2149
+ .clearfix:after,.clearfix:before{
2150
+ display: table;
2151
+ }
2152
+ .clearfix:after{
2153
+ clear: both;
2154
+ }
2155
+ </style>