apply-clients 3.0.4 → 3.0.5-ys

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 (371) hide show
  1. package/.gradle/3.5/file-changes/last-build.bin +0 -0
  2. package/.gradle/3.5/taskHistory/taskHistory.lock +0 -0
  3. package/.gradle/5.2.1/executionHistory/executionHistory.bin +0 -0
  4. package/.gradle/5.2.1/executionHistory/executionHistory.lock +0 -0
  5. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  6. package/.gradle/5.2.1/fileHashes/fileHashes.bin +0 -0
  7. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  8. package/{dist-android/static/.gitkeep → .gradle/5.2.1/gc.properties} +0 -0
  9. package/.gradle/buildOutputCleanup/built.bin +0 -0
  10. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  11. package/.gradle/buildOutputCleanup/cache.properties.lock +1 -0
  12. package/.gradle/vcs-1/gc.properties +0 -0
  13. package/doc//346/226/260/347/224/250/346/210/267/350/212/261/345/220/215/345/206/214/345/257/274/345/205/245/346/250/241/346/235/277.xls +0 -0
  14. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  15. package/gradle/wrapper/gradle-wrapper.properties +5 -0
  16. package/gradlew +0 -0
  17. package/gradlew.bat +84 -0
  18. package/index.html +26 -17
  19. package/package.json +8 -5
  20. package/src/App.vue +14 -21
  21. package/src/apply.js +55 -2
  22. package/src/applyAndroid.js +1 -1
  23. package/src/bootstrap/less/aofeng/animate.min.css +11 -0
  24. package/src/bootstrap/less/aofeng/standard.less +591 -0
  25. package/src/bootstrap/less/aofeng/themeOne/BinaryTemplate.less +478 -0
  26. package/src/bootstrap/less/aofeng/themeOne/loginStyle.less +1586 -0
  27. package/src/bootstrap/less/aofeng/themeOne/systemStyle.less +1915 -0
  28. package/src/bootstrap/less/aofeng/themeOne.less +10 -0
  29. package/src/bootstrap/less/aofeng/themeTwo/newStyle1.less +415 -0
  30. package/src/bootstrap/less/aofeng/themeTwo.less +2 -0
  31. package/src/bootstrap/less/bootstrap.less +11 -0
  32. package/src/bootstrap/less/forms.less +2 -2
  33. package/src/bootstrap/less/manageStyle/manageChile.less +180 -0
  34. package/src/bootstrap/less/manageStyle/manageStyle.less +1103 -0
  35. package/src/bootstrap/less/manageStyle/qinhuaStyle.less +116 -0
  36. package/src/bootstrap/less/manageStyle/safeStyle.less +498 -0
  37. package/src/bootstrap/less/manageStyle/telephoneanaly.less +92 -0
  38. package/src/bootstrap/less/navs.less +2 -3
  39. package/src/bootstrap/less/stand.less +207 -0
  40. package/src/bootstrap/less/standard.less +503 -0
  41. package/src/bootstrap/less/systemStyle.less +860 -0
  42. package/src/bootstrap/less/variables.less +2 -1
  43. package/src/components/Util.js +26 -22
  44. package/src/components/app_apply/ApplyDownList.vue +21 -8
  45. package/src/components/app_apply/ApplyToDoList.vue +94 -59
  46. package/src/components/app_apply/ApplyUserInfo.vue +3 -3
  47. package/src/components/app_apply/FieldExploration.vue +2 -2
  48. package/src/components/app_apply/PlaceControler.vue +16 -19
  49. package/src/components/app_apply/ServiceControl.vue +1136 -16
  50. package/src/components/app_apply/ServiceView.vue +395 -167
  51. package/src/components/app_apply/Ventilation.vue +2 -2
  52. package/src/components/image/doc.jpg +0 -0
  53. package/src/components/image/excel.jpg +0 -0
  54. package/src/components/image/pdf.jpg +0 -0
  55. package/src/components/image//345/233/276/345/261/20212.png +0 -0
  56. package/src/components/image//345/233/276/345/261/20213.png +0 -0
  57. package/src/components/image//345/233/276/345/261/20216.png +0 -0
  58. package/src/components/image//345/244/232/350/276/271/345/275/2422.png +0 -0
  59. package/src/components/image//345/244/232/350/276/271/345/275/2422/346/213/267/350/264/235.png +0 -0
  60. package/src/components/image//346/244/255/345/234/2062.png +0 -0
  61. package/src/components/image//346/244/255/345/234/2065.png +0 -0
  62. package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/235.png +0 -0
  63. package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/2352.png +0 -0
  64. package/src/components/image//346/244/255/345/234/2065/346/213/267/350/264/2353.png +0 -0
  65. package/src/components/image//347/273/2044.png +0 -0
  66. package/src/components/image//347/273/2045.png +0 -0
  67. package/src/components/image//347/273/2046.png +0 -0
  68. package/src/components/image//350/257/235/345/212/241/347/273/237/350/256/241/346/225/260/346/215/256/345/261/225/347/244/272.png +0 -0
  69. package/src/components/product/BatchFunction/BatchPay.vue +694 -0
  70. package/src/components/product/Bill/BillXSDMakeInfo.vue +1 -1
  71. package/src/components/product/Function/InstallFunction.vue +17 -13
  72. package/src/components/product/Function/InstallInfoSelect.vue +293 -71
  73. package/src/components/product/Function/Service/FunctionServiceControl.vue +50 -5
  74. package/src/components/product/Function/functions/AddContract.vue +161 -139
  75. package/src/components/product/Function/functions/BuyerMessage.vue +285 -137
  76. package/src/components/product/Function/functions/InstallFee.vue +1141 -912
  77. package/src/components/product/Function/functions/InstallFeeInfo.vue +5 -5
  78. package/src/components/product/Function/functions/PrestoreFee.vue +4 -4
  79. package/src/components/product/Function/functions/StopInstall.vue +14 -2
  80. package/src/components/product/HiddenDangersInProjects/AddHiddenDangers.vue +965 -0
  81. package/src/components/product/HiddenDangersInProjects/HiddenProjectList.vue +433 -0
  82. package/src/components/product/HiddenDangersInProjects/HiddenProjectSchedule.vue +146 -0
  83. package/src/components/product/MaterialBatchList.vue +109 -0
  84. package/src/components/product/MaterialBatchManage.vue +34 -0
  85. package/src/components/product/Procedures/ProceduresDataGrid.vue +1022 -0
  86. package/src/components/product/Process/ExplorationSelect.vue +767 -416
  87. package/src/components/product/Process/ExplorationUser.vue +96 -51
  88. package/src/components/product/Process/MaterialUseList.vue +159 -0
  89. package/src/components/product/Process/ModifyUserFiles.vue +1 -1
  90. package/src/components/product/Process/ProcessInfo/history_control.vue +29 -6
  91. package/src/components/product/Process/Processes/CustomerBuildingMessage.vue +5 -5
  92. package/src/components/product/Process/Processes/CustomerEquipmentMessage.vue +1 -1
  93. package/src/components/product/Process/Processes/CustomerMaterialMessage.vue +499 -210
  94. package/src/components/product/Process/Processes/CustomerRecordMessage.vue +1457 -753
  95. package/src/components/product/Process/Processes/ProjectSettlement.vue +535 -24
  96. package/src/components/product/Process/Processes/ReceiveBatch.vue +301 -121
  97. package/src/components/product/Process/Processes/Service/ApplyChangeHistory.vue +105 -0
  98. package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +87 -68
  99. package/src/components/product/Process/Processes/Service/ServiceControl.vue +2521 -422
  100. package/src/components/product/Process/ShowBackReason.vue +1 -1
  101. package/src/components/product/ProjectManagement/AddProjectSchedule.vue +896 -0
  102. package/src/components/product/ProjectManagement/ProjectList.vue +406 -0
  103. package/src/components/product/ProjectManagement/ProjectSchedule.vue +144 -0
  104. package/src/components/product/ReportForm/PaymentRecord.vue +801 -0
  105. package/src/components/product/ReportForm/PaymentRecordAdd.vue +105 -0
  106. package/src/components/product/ReportForm/PaymentRecordBad.vue +1273 -0
  107. package/src/components/product/ReportForm/PaymentRecordDetailed.vue +472 -0
  108. package/src/components/product/ReportForm/PaymentRecordTooBad.vue +60 -0
  109. package/src/components/product/ReportForm/PaymentReport.vue +532 -0
  110. package/src/components/product/ReportForm/ProjectReport.vue +447 -0
  111. package/src/components/product/ReportForm/SettlementReport.vue +336 -0
  112. package/src/components/product/ReportForm/SummaryReport.vue +451 -0
  113. package/src/components/product/ReportForm/UserReport.vue +402 -0
  114. package/src/components/product/ServiceView.vue +383 -123
  115. package/src/components/product/Statistics/ApplyStatisticsROOT.vue +27 -0
  116. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +247 -23
  117. package/src/components/product/Supervisory/SupervisoryControl.vue +104 -44
  118. package/src/components/product/Supervisory/SupervisoryList.vue +412 -54
  119. package/src/components/product/Supervisory/SupervisoryhCart.vue +6 -3
  120. package/src/components/product/VueUtils/ApplyUpload.vue +310 -0
  121. package/src/components/product/VueUtils/Tree.vue +330 -0
  122. package/src/components/product/VueUtils/rightview/InstallCardList2.vue +35 -44
  123. package/src/components/product/VueUtils/rightview/carddetail/BuildFeeDetail2.vue +1 -1
  124. package/src/components/product/VueUtils/rightview/carddetail/ChangeFeeDetail2.vue +1 -1
  125. package/src/components/product/VueUtils/rightview/carddetail/ReduceFeeDetail2.vue +1 -1
  126. package/src/components/product/VueUtils/rightview/carddetail/StopApplyDetail2.vue +2 -2
  127. package/src/main.js +4 -2
  128. package/src/stores/ApplyLoadParams.js +1 -1
  129. package/src/stores/PagedListLogic.js +173 -0
  130. package/{dist-android/static/denglu.png → static/images/lefticon//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png} +0 -0
  131. package/static/images/lefticon//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  132. package/static/images/lefticon//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  133. package/static/images/lefticon//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  134. package/static/images/lefticon//345/233/276/345/261/202577.png +0 -0
  135. package/static/images/lefticon//345/233/276/345/261/2028/346/213/267/350/264/23513.png +0 -0
  136. package/static/images/lefticon//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  137. package/static/images/lefticon//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  138. package/static/images/lefticon//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  139. package/static/images/lefticon//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  140. package/static/images/lefticon//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  141. package/static/images/lefticon//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  142. package/static/images/lefticon//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  143. package/static/images/lefticon//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  144. package/static/images/lefticon//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  145. package/static/images/lefticon//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  146. package/static/images/lefticon//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  147. package/static/images/lefticon//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  148. package/static/images/lefticon//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  149. package/static/images/lefticon//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  150. package/static/images/lefticon//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  151. package/static/images/lefticon//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  152. package/static/images/lefticon//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  153. package/static/newStyle/clear.png +0 -0
  154. package/static/newStyle/fife.png +0 -0
  155. package/static/newStyle/hidden.png +0 -0
  156. package/static/newStyle/label-clear.png +0 -0
  157. package/{dist-android/static/psicon.png → static/newStyle/left-img.png} +0 -0
  158. package/static/newStyle/list_ok.png +0 -0
  159. package/static/newStyle/login-check.png +0 -0
  160. package/static/newStyle/login-con.png +0 -0
  161. package/static/newStyle/login-do.gif +0 -0
  162. package/static/newStyle/login-f.png +0 -0
  163. package/static/newStyle/login-info.png +0 -0
  164. package/static/newStyle/login-left.png +0 -0
  165. package/static/newStyle/login-org.png +0 -0
  166. package/static/newStyle/login-pwd.png +0 -0
  167. package/static/newStyle/login-user.png +0 -0
  168. package/static/newStyle/loginbg.gif +0 -0
  169. package/static/newStyle/loginbg1280.gif +0 -0
  170. package/static/newStyle/loginbg1366.gif +0 -0
  171. package/static/newStyle/setting.png +0 -0
  172. package/static/newStyle/setting1.png +0 -0
  173. package/static/newStyle/shirk.png +0 -0
  174. package/static/newStyle/stretch_bottom.png +0 -0
  175. package/static/newStyle/stretch_left.png +0 -0
  176. package/static/newStyle/stretch_right.png +0 -0
  177. package/static/newStyle/stretch_top.png +0 -0
  178. package/static/newStyle/system-off.png +0 -0
  179. package/success.rar +0 -0
  180. package/.npmignore +0 -12
  181. package/dist-android/index.html +0 -3
  182. package/dist-android/static/0.js +0 -2
  183. package/dist-android/static/0.js.map +0 -1
  184. package/dist-android/static/1.js +0 -2
  185. package/dist-android/static/1.js.map +0 -1
  186. package/dist-android/static/10.js +0 -2
  187. package/dist-android/static/10.js.map +0 -1
  188. package/dist-android/static/11.js +0 -2
  189. package/dist-android/static/11.js.map +0 -1
  190. package/dist-android/static/12.js +0 -2
  191. package/dist-android/static/12.js.map +0 -1
  192. package/dist-android/static/13.js +0 -2
  193. package/dist-android/static/13.js.map +0 -1
  194. package/dist-android/static/14.js +0 -2
  195. package/dist-android/static/14.js.map +0 -1
  196. package/dist-android/static/15.js +0 -2
  197. package/dist-android/static/15.js.map +0 -1
  198. package/dist-android/static/16.js +0 -2
  199. package/dist-android/static/16.js.map +0 -1
  200. package/dist-android/static/17.js +0 -2
  201. package/dist-android/static/17.js.map +0 -1
  202. package/dist-android/static/18.js +0 -2
  203. package/dist-android/static/18.js.map +0 -1
  204. package/dist-android/static/19.js +0 -2
  205. package/dist-android/static/19.js.map +0 -1
  206. package/dist-android/static/2.js +0 -2
  207. package/dist-android/static/2.js.map +0 -1
  208. package/dist-android/static/20.js +0 -2
  209. package/dist-android/static/20.js.map +0 -1
  210. package/dist-android/static/21.js +0 -2
  211. package/dist-android/static/21.js.map +0 -1
  212. package/dist-android/static/22.js +0 -2
  213. package/dist-android/static/22.js.map +0 -1
  214. package/dist-android/static/23.js +0 -2
  215. package/dist-android/static/23.js.map +0 -1
  216. package/dist-android/static/24.js +0 -2
  217. package/dist-android/static/24.js.map +0 -1
  218. package/dist-android/static/25.js +0 -2
  219. package/dist-android/static/25.js.map +0 -1
  220. package/dist-android/static/26.js +0 -2
  221. package/dist-android/static/26.js.map +0 -1
  222. package/dist-android/static/27.js +0 -2
  223. package/dist-android/static/27.js.map +0 -1
  224. package/dist-android/static/28.js +0 -2
  225. package/dist-android/static/28.js.map +0 -1
  226. package/dist-android/static/29.js +0 -2
  227. package/dist-android/static/29.js.map +0 -1
  228. package/dist-android/static/3.js +0 -2
  229. package/dist-android/static/3.js.map +0 -1
  230. package/dist-android/static/30.js +0 -2
  231. package/dist-android/static/30.js.map +0 -1
  232. package/dist-android/static/31.js +0 -2
  233. package/dist-android/static/31.js.map +0 -1
  234. package/dist-android/static/32.js +0 -2
  235. package/dist-android/static/32.js.map +0 -1
  236. package/dist-android/static/33.js +0 -2
  237. package/dist-android/static/33.js.map +0 -1
  238. package/dist-android/static/34.js +0 -2
  239. package/dist-android/static/34.js.map +0 -1
  240. package/dist-android/static/35.js +0 -2
  241. package/dist-android/static/35.js.map +0 -1
  242. package/dist-android/static/36.js +0 -2
  243. package/dist-android/static/36.js.map +0 -1
  244. package/dist-android/static/37.js +0 -2
  245. package/dist-android/static/37.js.map +0 -1
  246. package/dist-android/static/38.js +0 -2
  247. package/dist-android/static/38.js.map +0 -1
  248. package/dist-android/static/39.js +0 -2
  249. package/dist-android/static/39.js.map +0 -1
  250. package/dist-android/static/4.js +0 -2
  251. package/dist-android/static/4.js.map +0 -1
  252. package/dist-android/static/40.js +0 -2
  253. package/dist-android/static/40.js.map +0 -1
  254. package/dist-android/static/41.js +0 -2
  255. package/dist-android/static/41.js.map +0 -1
  256. package/dist-android/static/42.js +0 -2
  257. package/dist-android/static/42.js.map +0 -1
  258. package/dist-android/static/43.js +0 -2
  259. package/dist-android/static/43.js.map +0 -1
  260. package/dist-android/static/44.js +0 -2
  261. package/dist-android/static/44.js.map +0 -1
  262. package/dist-android/static/45.js +0 -2
  263. package/dist-android/static/45.js.map +0 -1
  264. package/dist-android/static/46.js +0 -2
  265. package/dist-android/static/46.js.map +0 -1
  266. package/dist-android/static/47.js +0 -2
  267. package/dist-android/static/47.js.map +0 -1
  268. package/dist-android/static/48.js +0 -2
  269. package/dist-android/static/48.js.map +0 -1
  270. package/dist-android/static/49.js +0 -2
  271. package/dist-android/static/49.js.map +0 -1
  272. package/dist-android/static/5.js +0 -2
  273. package/dist-android/static/5.js.map +0 -1
  274. package/dist-android/static/50.js +0 -2
  275. package/dist-android/static/50.js.map +0 -1
  276. package/dist-android/static/51.js +0 -2
  277. package/dist-android/static/51.js.map +0 -1
  278. package/dist-android/static/52.js +0 -2
  279. package/dist-android/static/52.js.map +0 -1
  280. package/dist-android/static/53.js +0 -2
  281. package/dist-android/static/53.js.map +0 -1
  282. package/dist-android/static/54.js +0 -2
  283. package/dist-android/static/54.js.map +0 -1
  284. package/dist-android/static/55.js +0 -2
  285. package/dist-android/static/55.js.map +0 -1
  286. package/dist-android/static/56.js +0 -2
  287. package/dist-android/static/56.js.map +0 -1
  288. package/dist-android/static/57.js +0 -2
  289. package/dist-android/static/57.js.map +0 -1
  290. package/dist-android/static/58.js +0 -2
  291. package/dist-android/static/58.js.map +0 -1
  292. package/dist-android/static/59.js +0 -2
  293. package/dist-android/static/59.js.map +0 -1
  294. package/dist-android/static/60.js +0 -2
  295. package/dist-android/static/60.js.map +0 -1
  296. package/dist-android/static/61.js +0 -2
  297. package/dist-android/static/61.js.map +0 -1
  298. package/dist-android/static/62.js +0 -2
  299. package/dist-android/static/62.js.map +0 -1
  300. package/dist-android/static/63.js +0 -2
  301. package/dist-android/static/63.js.map +0 -1
  302. package/dist-android/static/64.js +0 -2
  303. package/dist-android/static/64.js.map +0 -1
  304. package/dist-android/static/65.js +0 -2
  305. package/dist-android/static/65.js.map +0 -1
  306. package/dist-android/static/66.js +0 -2
  307. package/dist-android/static/66.js.map +0 -1
  308. package/dist-android/static/67.js +0 -2
  309. package/dist-android/static/67.js.map +0 -1
  310. package/dist-android/static/68.js +0 -2
  311. package/dist-android/static/68.js.map +0 -1
  312. package/dist-android/static/69.js +0 -2
  313. package/dist-android/static/69.js.map +0 -1
  314. package/dist-android/static/7.js +0 -6
  315. package/dist-android/static/7.js.map +0 -1
  316. package/dist-android/static/70.js +0 -2
  317. package/dist-android/static/70.js.map +0 -1
  318. package/dist-android/static/71.js +0 -2
  319. package/dist-android/static/71.js.map +0 -1
  320. package/dist-android/static/72.js +0 -2
  321. package/dist-android/static/72.js.map +0 -1
  322. package/dist-android/static/73.js +0 -2
  323. package/dist-android/static/73.js.map +0 -1
  324. package/dist-android/static/74.js +0 -2
  325. package/dist-android/static/74.js.map +0 -1
  326. package/dist-android/static/75.js +0 -2
  327. package/dist-android/static/75.js.map +0 -1
  328. package/dist-android/static/76.js +0 -2
  329. package/dist-android/static/76.js.map +0 -1
  330. package/dist-android/static/8.js +0 -2
  331. package/dist-android/static/8.js.map +0 -1
  332. package/dist-android/static/9.js +0 -3
  333. package/dist-android/static/9.js.map +0 -1
  334. package/dist-android/static/app.css +0 -2
  335. package/dist-android/static/app.css.map +0 -1
  336. package/dist-android/static/app.js +0 -80
  337. package/dist-android/static/app.js.map +0 -1
  338. package/dist-android/static/batchleft.png +0 -0
  339. package/dist-android/static/batchright.png +0 -0
  340. package/dist-android/static/bluemainbg.jpg +0 -0
  341. package/dist-android/static/config.json +0 -7
  342. package/dist-android/static/glyphicons-halflings-regular.eot +0 -0
  343. package/dist-android/static/glyphicons-halflings-regular.svg +0 -288
  344. package/dist-android/static/glyphicons-halflings-regular.ttf +0 -0
  345. package/dist-android/static/glyphicons-halflings-regular.woff +0 -0
  346. package/dist-android/static/glyphicons-halflings-regular.woff2 +0 -0
  347. package/dist-android/static/huangtengbiaozhi.png +0 -0
  348. package/dist-android/static/jingyin.jpg +0 -0
  349. package/dist-android/static/login_bg.jpg +0 -0
  350. package/dist-android/static/login_title.png +0 -0
  351. package/dist-android/static/login_title1.png +0 -0
  352. package/dist-android/static/loginbg.jpg +0 -0
  353. package/dist-android/static/loginlogo.png +0 -0
  354. package/dist-android/static/main_logo.png +0 -0
  355. package/dist-android/static/mainbg.jpg +0 -0
  356. package/dist-android/static/menulogo.png +0 -0
  357. package/dist-android/static/newmainbg.jpg +0 -0
  358. package/dist-android/static/singleleft.png +0 -0
  359. package/dist-android/static/singleright.png +0 -0
  360. package/dist-android/static/treeopen.png +0 -0
  361. package/dist-android/static/treeout.png +0 -0
  362. package/dist-android/static/treeset.png +0 -0
  363. package/dist-android/static/usericon.png +0 -0
  364. package/dist-android/static/workflow_apply.json +0 -766
  365. package/dist-android/static/xinxi.png +0 -0
  366. package/dist-android/static//344/277/256/346/224/271/345/257/206/347/240/201.png +0 -0
  367. 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
  368. package/dist-android/static//345/257/274/345/207/272/346/225/260/346/215/256.png +0 -0
  369. package/dist-android/static//346/270/205/347/251/272/346/225/260/346/215/256.png +0 -0
  370. package/src/assets/shipin1.mp4 +0 -0
  371. package/yarn.lock +0 -9008
@@ -1,753 +1,1457 @@
1
- <template>
2
- <div class="flex">
3
- <div class="form-inline auto" style="margin-bottom: 5px;">
4
- <label v-if="key == '户档案管理'">用户查找:</label>
5
- <label v-if="key == '表档案管理'">表信息查找:</label>
6
- <input type="text" class="form-control" placeholder='请输入查找的用户姓名' v-model="param"
7
- @keyup.enter="filterParams(param)" v-if="key == '户档案管理'">
8
- <input type="text" class="form-control" placeholder='请输入表品牌' v-model="param"
9
- @keyup.enter="filterParam(param)" v-else>
10
- <button v-if="key == '户档案管理'" type="button" class="btn btn-primary" @click="filterParams(param)">查询</button>
11
- <button v-else type="button" class="btn btn-primary" @click="filterParam(param)">查询</button>
12
- <button type="button" class="btn btn-warning" @click="add()" v-show="edit">新增</button>
13
- <div class="form-inline" style="float: right;margin-left: 1%" v-if="key == '户档案管理' && edit == true">
14
- <export-excel :data="{condition: ` 1=1 and f_process_id = '${selectdata.f_process_id}'`}"
15
- :field="getfield"
16
- sqlurl="rs/logic/fileExport" sql-name="singleTableUser" template-name='报建户档案导出'
17
- :choose-col="false"></export-excel>
18
- </div>
19
- <div class="form-inline" style="float: right; margin-left: 1%"
20
- v-if="$login.f.f_fengongsi.includes('中燃') && key == '表档案管理'">
21
- <button type="button" class="btn btn-warning add-postition" @click="impexcel()" v-show="edit">导入表档案</button>
22
- </div>
23
- <div class="form-inline" style="float: right" v-if="key == '户档案管理'">
24
- <button type="button" class="btn btn-warning add-postition" @click="impexcel()" v-show="edit">导入户档案</button>
25
- </div>
26
- <div class="form-inline" style="float: right; margin-right: 1%" v-if="key == '户档案管理'">
27
- <button type="button" class="btn btn-primary add-postition" @click="changeState()" v-show="edit">户档案转营收</button>
28
- </div>
29
- </div>
30
- <!--户档案管理组件-->
31
- <div class="col-sm-12 span recordTable" style="margin-top: 10px;min-height: 500px" v-if="key == '户档案管理'">
32
- <partial-view v-ref:single-load>
33
- <data-grid :model="model" v-ref:params @select-changed="selected">
34
- <template partial='head'>
35
- <tr>
36
- <th></th>
37
- <th>序号</th>
38
- <th v-for="item in $parent.$parent.$parent.userHeadData">
39
- <nobr>{{item}}</nobr>
40
- </th>
41
- <th v-show="$parent.$parent.$parent.edit">操作</th>
42
- </tr>
43
- </template>
44
- <template partial='body'>
45
- <td>
46
- <input v-bind:disabled="row.f_user_state == '正常'" type="checkbox" name="checkbox"
47
- @change="$parent.$parent.$parent.chooseOne($event,row,model.rows)">
48
- </td>
49
- <td>{{$index+1}}</td>
50
- <td style="text-align: center;" v-for="item in $parent.$parent.$parent.userBodyData">
51
- <button v-if="item == 'f_userinfo_id' " type="button" class="btn btn-link"
52
- v-on:click="getUserFiles(row)">{{row[item]? row[item]:0}}
53
- </button>
54
- <nobr v-if="item != 'f_userinfo_id' ">{{row[item]? row[item]:0}}</nobr>
55
- </td>
56
- <td class="flex-around" v-show="$parent.$parent.$parent.edit">
57
- <button type="button" name="button" class="btn btn-link"
58
- @click.stop="$parent.$parent.$parent.modifyParam(row)" >修改
59
- </button>
60
- <button type="button" name="button" class="btn btn-link"
61
- @click.stop="$parent.$parent.$parent.deleteItem(row)">删除
62
- </button>
63
- </td>
64
- </template>
65
- </data-grid>
66
- </partial-view>
67
- </div>
68
- <!--表档案管理组件-->
69
- <div class="col-sm-12 span recordTable" style="margin-top: 10px;min-height: 500px" v-if="key == '表档案管理'">
70
- <partial-view v-ref:single-load>
71
- <data-grid :model="model" v-ref:grid>
72
- <template partial='head'>
73
- <tr>
74
- <th>序号</th>
75
- <th v-for="item in $parent.$parent.$parent.surHeadData">
76
- <nobr>{{item}}</nobr>
77
- </th>
78
- <th v-show="$parent.$parent.$parent.edit">操作</th>
79
- </tr>
80
- </template>
81
- <template partial='body'>
82
- <td>{{$index+1}}</td>
83
- <td style="text-align: center;" v-for="item in $parent.$parent.$parent.surBodyData">
84
- <nobr>{{row[item]? row[item]:0}}</nobr>
85
- </td>
86
- <td class="flex-around" v-show="$parent.$parent.$parent.edit">
87
- <button type="button" name="button" class="btn btn-link"
88
- @click.stop="$parent.$parent.$parent.deleteItem(row)">删除
89
- </button>
90
- </td>
91
- </template>
92
- </data-grid>
93
- </partial-view>
94
- </div>
95
- </div>
96
- <modal :show.sync="show" v-ref:modal backdrop="false">
97
- <header slot="modal-header" class="modal-header">
98
- <button type="button" class="close" @click="close"><span>&times;</span></button>
99
- <h4 class="modal-title">配置</h4>
100
- </header>
101
- <!--户档案新增-->
102
- <article slot="modal-body" class="modal-body" v-if="key == '户档案管理'">
103
- <div class="from-group">
104
- <label>用户姓名</label>
105
- <input type="text" class="form-control" v-model="selectItem.f_user_name"/>
106
- </div>
107
- <div class="from-group">
108
- <label>用户电话</label>
109
- <input type="text" class="form-control" v-model="selectItem.f_user_phone">
110
- </div>
111
- <div class="from-group">
112
- <label>区</label>
113
- <input type="text" class="form-control" v-model="selectItem.f_area">
114
- </div>
115
- <div class="from-group">
116
- <label>片区</label>
117
- <input type="text" class="form-control" v-model="selectItem.f_slice_area">
118
- </div>
119
- <div class="from-group">
120
- <label>街道名称</label>
121
- <input type="text" class="form-control" v-model="selectItem.f_street">
122
- </div>
123
- <div class="from-group">
124
- <label>小区名称</label>
125
- <input type="text" class="form-control" v-model="selectItem.f_residential_area">
126
- </div>
127
- <div class="from-group">
128
- <label>楼号</label>
129
- <input type="text" class="form-control" v-model="selectItem.f_building">
130
- </div>
131
- <div class="from-group">
132
- <label>单元号</label>
133
- <input type="text" class="form-control" v-model="selectItem.f_unit">
134
- </div>
135
- <div class="from-group">
136
- <label>楼层</label>
137
- <input type="text" class="form-control" v-model="selectItem.f_floor">
138
- </div>
139
- <div class="from-group">
140
- <label>门牌号</label>
141
- <input type="text" class="form-control" v-model="selectItem.f_room">
142
- </div>
143
- <div class="from-group" v-if="!this.$login.f.f_fengongsi.includes('中燃')">
144
- <label>用户类型</label>
145
- <input type="text" class="form-control" v-model="selectItem.f_user_type" options='usertypes'>
146
- </div>
147
- <div class="from-group">
148
- <label>用气性质</label>
149
- <input type="text" class="form-control" v-model="selectItem.f_gasproperties" options='gasproperties'>
150
- </div>
151
- <div class="from-group">
152
- <label>用户状态</label>
153
- <input type="text" class="form-control" v-model="selectItem.f_user_state" options='userstates'>
154
- </div>
155
- </article>
156
- <!--表档案新增-->
157
- <article slot="modal-body" class="modal-body" v-if="key == '表档案管理'">
158
- <div class="from-group">
159
- <label>户档案编号</label>
160
- <input type="text" class="form-control" v-model="selectItem.f_userinfo_id"/>
161
- </div>
162
- <div class="from-group">
163
- <label>气表品牌</label>
164
- <input type="text" class="form-control" v-model="selectItem.f_meter_brand">
165
- </div>
166
- <div class="from-group">
167
- <label>表型号</label>
168
- <input type="text" class="form-control" v-model="selectItem.f_meter_style">
169
- </div>
170
- <div class="from-group">
171
- <label>表号</label>
172
- <input type="text" class="form-control" v-model="selectItem.f_meternumber">
173
- </div>
174
- </article>
175
- <footer slot="modal-footer" class="modal-footer">
176
- <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
177
- <button v-show="show" type="button" class="btn btn-success" @click='confirm'>确认</button>
178
- </footer>
179
- </modal>
180
- <modal :show.sync="showFile" v-ref:modal backdrop="false">
181
- <header slot="modal-header" class="modal-header">
182
- <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
183
- <h4 class="modal-title">档案导入</h4>
184
- </header>
185
- <article slot="modal-body" class="modal-body">
186
- <div class="form-group">
187
- <file-upload class="my-file-uploader" :name="key+Math.random()"
188
- action="rs/file/uploadFile" tagname="文件导入" :headers="headers" v-ref:file></file-upload>
189
- </div>
190
- </article>
191
- <footer slot="modal-footer" class="modal-footer"></footer>
192
- </modal>
193
-
194
- </template>
195
-
196
- <script>
197
- import {HttpResetClass} from 'vue-client'
198
-
199
- export default {
200
- title: '档案信息',
201
- props: ['selectdata', 'key','edit'],
202
- data() {
203
- return {
204
- headers: {'username': this.$login.f.name, 'blodid': this.selectdata.f_process_id, 'fusetype': '报建execl导入用户档案'},
205
- //户档案表头
206
- userHeadData: ['档案编号', '用户姓名', '用户电话', '区', '片区', '街道名称', '小区名称', '楼号', '单元号', '楼层', '门牌号', '用气性质', '用户状态'],
207
- //户档案内容
208
- userBodyData: ['f_userinfo_id', 'f_user_name', 'f_user_phone', 'f_area', 'f_slice_area', 'f_street', 'f_residential_area', 'f_building', 'f_unit', 'f_floor', 'f_room', 'f_gasproperties', 'f_user_state'],
209
- //表档案表头
210
- surHeadData: ['户档案编号', '表号', '气表品牌', '表型号'],
211
- //表档案内容
212
- surBodyData: ['f_userinfo_id', 'f_meternumber', 'f_meter_brand', 'f_meter_style'],
213
- //设备表头
214
- eqHeadData: ['户档案编号', '设备编号', '设备类型', '设备品牌','设备型号','设备数量'],
215
- //设备内容
216
- eqBodyData: ['f_userinfo_id', 'f_devices_no', 'f_devices_type', 'f_brand','f_devices_model','f_devices_num'],
217
- params: null,
218
- record: {},
219
- selectItem: {},
220
- model: {
221
- rows: []
222
- },
223
- params: { // 选择的具体内容
224
- rows: []
225
- },
226
- condition: '',
227
- show: false,
228
- showFile: false,
229
- ischecked: false,
230
- getfield: {},
231
- checked: [],
232
- }
233
- },
234
- ready() {
235
-
236
- },
237
- watch: {
238
- 'selectdata'() {
239
- this.headers.blodid = this.selectdata.f_process_id
240
- this.load()
241
- }
242
- },
243
- computed: {
244
- funit() {
245
- return AppData.getParam('小区类型')
246
- },
247
- ffloor() {
248
- return AppData.getParam('房屋类型')
249
- },
250
- usertypes() {
251
- return AppData.getParam('用户类型')
252
- },
253
- credentials() {
254
- return AppData.getParam('证件类型')
255
- },
256
- costtypes() {
257
- return AppData.getParam('缴费类型')
258
- },
259
- gasproperties() {
260
- let rs = []
261
- if (this.record.f_user_type.length === 1) {
262
- rs = AppData.getParam(this.record.f_user_type[0])
263
- }
264
- return rs
265
- },
266
- userstates() {
267
- return AppData.getParam('用户状态')
268
- },
269
- address() {
270
- let strAddress = `${this.record.f_area ? this.record.f_area
271
- + '-' : ''}${this.record.f_street ? this.record.f_street
272
- + '-' : ''}${this.record.f_residential_area ? this.record.f_residential_area
273
- + '' : ''}${this.record.f_building ? this.record.f_building
274
- + '号楼' : ''}${this.record.f_unit ? this.record.f_unit
275
- + '单元' : ''}${this.record.f_floor ? this.record.f_floor
276
- + '层' : ''}${this.record.f_room ? this.record.f_room
277
- + '室' : ''}`
278
- this.record.f_address = strAddress
279
- return strAddress
280
- },
281
- getfield() {
282
- let data = {}
283
- this.userBodyData.forEach((value, index) => {
284
- data[this.userBodyData[index]] = this.userHeadData[index]
285
- })
286
-
287
- console.log('data', data)
288
- return data
289
- }
290
- },
291
- methods: {
292
- selected (val) {
293
- this.selectItem = {"q":"q"}
294
- },
295
- //选择需要转银收的户档案
296
- chooseOne(e, row, rows) {
297
- console.log('row', row)
298
- console.log('e', e)
299
- this.ischecked = e.target.checked
300
- console.log("state", e.target.checked)
301
- //判断当前行是否被选中
302
- if (this.ischecked) {
303
- this.checked.push(row)
304
- }
305
- },
306
- //修改选中的数据状态
307
- changeState() {
308
- if (this.checked.length > 0) {
309
- let http = new HttpResetClass()
310
- http.load('POST', 'rs/logic/updateUserState', {data: {rows: this.checked}}).then((res) => {
311
- this.show = false
312
- this.ischecked = false
313
- // 如果没有id,需要在数组中添加
314
- this.load()
315
- this.checked = []
316
- })
317
- }
318
- },
319
- // 父组件更新子组件属性
320
- updateData(val) {
321
- this.headers.blodid = val.f_process_id
322
- this.selectdata = val
323
- },
324
- async load() {
325
- if (!this.selectdata)
326
- return
327
- let data = {
328
- tablename: 't_userinfo',
329
- condition: 'f_process_id=' + '\'' + this.selectdata.f_process_id + '\''
330
- }
331
- let self = this
332
- let http = new HttpResetClass()
333
- let res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
334
- resolveMsg: null,
335
- rejectMsg: '获取户档案信息失败'
336
- })
337
- self.model.rows = []
338
- if (self.key == '户档案管理') {
339
- self.model.rows = res.data
340
- self.params = res.data
341
- // 备份用于查询
342
- } else if (self.key == '表档案管理') {
343
- for (var i = 0; i < res.data.length; i++) {
344
- // row.f_userinfo_id 户编号
345
- data = {
346
- tablename: 't_userfiles',
347
- condition: `f_userinfo_id=${res.data[i].f_userinfo_id}`
348
- }
349
- http = new HttpResetClass()
350
- let resUserfiles = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
351
- resolveMsg: null,
352
- rejectMsg: '获取表档案信息失败'
353
- })
354
- if (resUserfiles.data.length == 0) {
355
- continue
356
- }
357
- for (let i = 0; i < resUserfiles.data.length; i++) {
358
- data = {
359
- tablename: 't_gasbrand',
360
- condition: `id=${resUserfiles.data[i].f_gasbrand_id}`
361
- }
362
- http = new HttpResetClass()
363
- let resGasbrand = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
364
- resolveMsg: null,
365
- rejectMsg: '获取档案信息失败'
366
- })
367
-
368
- data = {
369
- tablename: 't_gasmodel',
370
- condition: `id=${resUserfiles.data[i].f_gasmodel_id}`
371
- }
372
- http = new HttpResetClass()
373
- let resModel = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
374
- resolveMsg: null,
375
- rejectMsg: '获取档案信息失败'
376
- })
377
- self.model.rows.push({
378
- f_user_id: resUserfiles.data[i].f_user_id,
379
- f_userinfo_id: resUserfiles.data[i].f_userinfo_id,
380
- f_meternumber: resUserfiles.data[i].f_meternumber,
381
- f_meter_brand: resGasbrand.data[0].f_meter_brand,
382
- f_meter_style: resModel.data[0].f_meter_style
383
- })
384
- self.params = self.model.rows
385
- }
386
- }
387
- }else if (self.key == '设备管理') {
388
- debugger
389
- for (var i = 0; i < res.data.length; i++) {
390
- data = {
391
- tablename: 't_devices',
392
- condition: 'f_process_id=' + '\'' + String(this.selectdata.f_process_id) + '\''
393
- }// eqBodyData: ['f_userinfo_id', 'f_devices_no', 'f_devices_type', 'f_brand','f_devices_model','f_devices_num'],
394
- this.$resetpost('rs/sql/singleTable', {data: data}, {resolveMsg: null, rejectMsg: '查询失败'})
395
- .then((dev) => {
396
- self.model.rows.push({
397
- f_userinfo_id: res.data[i].f_userinfo_id,
398
- f_devices_no: dev.data[0].f_devices_no,
399
- f_devices_type: dev.data[0].f_devices_type,
400
- f_brand: dev.data[0].f_brand,
401
- f_devices_model: dev.data[0].f_devices_model,
402
- f_devices_num: dev.data[0].f_devices_num,
403
- })
404
- //self.model.rows = dev.data
405
- })
406
- }
407
- }
408
- },
409
- impexcel() {
410
- this.showFile = true
411
- },
412
- closeFile() {
413
- this.showFile = false
414
- // 将选的文件清空
415
- this.$refs.file.$el.querySelector('input').value = ''
416
- },
417
- deleteItem(row) {
418
- debugger
419
- if (this.key == '户档案管理') {
420
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
421
- if (res === 'confirm') {
422
- let http = new HttpResetClass()
423
- http.load('DELETE', `rs/entity/t_userinfo/${row.f_userinfo_id}`).then((res) => {
424
- this.load()
425
- })
426
- }
427
- })
428
- } else {
429
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
430
- if (res === 'confirm') {
431
- let http = new HttpResetClass()
432
- http.load('DELETE', `rs/entity/t_userfiles/${row.f_user_id}`).then((res) => {
433
- this.load()
434
- })
435
- }
436
- })
437
- }
438
- },
439
- //户档案查询
440
- filterParams(param) {
441
- debugger
442
- if (param && param !== "") {
443
- let temp = []
444
- for (var i = 0; i < this.model.rows.length; i++) {
445
- if (this.model.rows[i].f_user_name.includes(param)) {
446
- temp.push(this.model.rows[i])
447
- }
448
- }
449
- this.model.rows = temp
450
- } else {
451
- this.model.rows = this.params
452
- }
453
- },
454
- //表档案查询
455
- filterParam(param) {
456
- if (param && param !== "") {
457
- let temp = []
458
- for (var i = 0; i < this.model.rows.length; i++) {
459
- if (this.model.rows[i].f_meter_brand.includes(param)) {
460
- temp.push(this.model.rows[i])
461
- }
462
- }
463
- this.model.rows = temp
464
- } else {
465
- this.model.rows = this.params
466
- }
467
- },
468
- //设备列表查询
469
- findEq(param) {
470
- debugger
471
- if (param && param !== "") {
472
- let temp = []
473
- for (var i = 0; i < this.model.rows.length; i++) {
474
- if (this.model.rows[i].f_meter_brand.includes(param)) {
475
- temp.push(this.model.rows[i])
476
- }
477
- }
478
- this.model.rows = temp
479
- } else {
480
- this.model.rows = this.params
481
- }
482
- },
483
- add() {
484
- this.show = true
485
- console.log("点击了添加")
486
- },
487
- // 修改按钮
488
- modifyParam(row) {
489
- this.$set('selectItem.f_userinfo_id', row.f_userinfo_id)
490
- this.$set('selectItem.f_user_name', row.f_user_name)
491
- this.$set('selectItem.f_user_phone', row.f_user_phone)
492
- this.$set('selectItem.f_area', row.f_area)
493
- this.$set('selectItem.f_slice_area', row.f_slice_area)
494
- this.$set('selectItem.f_street', row.f_street)
495
- this.$set('selectItem.f_residential_area', row.f_residential_area)
496
- this.$set('selectItem.f_building', row.f_building)
497
- this.$set('selectItem.f_unit', row.f_unit)
498
- this.$set('selectItem.f_floor', row.f_floor)
499
- this.$set('selectItem.f_room', row.f_room)
500
- this.$set('selectItem.f_user_type', row.f_user_type)
501
- this.$set('selectItem.f_gasproperties', row.f_gasproperties)
502
- this.$set('selectItem.f_user_state', row.f_user_state)
503
- this.$set('selectItem.version', row.version)
504
- this.$set('selectItem.f_user_state', row.f_user_state)
505
- this.show = true
506
- },
507
- //获取当前用户表档案信息
508
- getUserFiles(row) {
509
- this.isShowFiles = true
510
- console.log('获取户档案信息')
511
-
512
- data = {
513
- tablename: 't_userfiles',
514
- condition: `f_userinfo_id=${row.f_userinfo_id}`
515
- }
516
- http = new HttpResetClass()
517
- let resGasbrand = http.load('POST', 'rs/sql/singleTable', {data: data}, {
518
- resolveMsg: null,
519
- rejectMsg: '获取档案信息失败'
520
- })
521
- self.model.rows = []
522
- self.model.rows = res.data
523
- },
524
- //表档案修改
525
- filesModify(row) {
526
- this.$set('selectItem.f_userinfo_id', row.f_userinfo_id)
527
- this.$set('selectItem.f_user_id', row.f_user_id)
528
- this.$set('selectItem.f_meter_brand', row.f_meter_brand)
529
- this.$set('selectItem.f_meter_style', row.f_meter_style)
530
- this.$set('selectItem.f_meternumber', row.f_meternumber)
531
- this.show = true
532
- },
533
- //新增修改或删除提交
534
- async confirm() {
535
- if (this.key == '户档案管理') {
536
- // 无主键为插入
537
- if (!this.selectItem.f_userinfo_id) {
538
- this.selectItem.version = 1
539
- this.selectItem.f_user_state = '报建'
540
- this.selectItem.f_process_id = this.selectdata.f_process_id
541
- let data = {
542
- tablename: 't_userinfo',
543
- parameters: this.selectItem
544
- }
545
- let http = new HttpResetClass()
546
- await http.load('POST', 'rs/entity/t_userinfo', this.selectItem).then((res) => {
547
- this.show = false
548
- // 如果没有id,需要在数组中添加
549
- this.load()
550
- this.selectItem = {}
551
- })
552
- } else { // 有主键为更新
553
- let data = {
554
- tablename: 't_userinfo',
555
- parameters: this.selectItem
556
- }
557
- let http = new HttpResetClass()
558
- await http.load('POST', 'rs/entity/t_userinfo', this.selectItem).then((res) => {
559
- this.show = false
560
- // 如果没有id,需要在数组中添加
561
- this.load()
562
- this.selectItem = {}
563
- })
564
- }
565
- } else if (this.key == '表档案管理') {
566
- if (!this.selectItem.f_user_id) {
567
- //新增
568
- //根据户档案编号查询户档案
569
- this.$resetpost('rs/sql/findUserInfo', {
570
- data: {
571
- f_userinfo_id: this.selectItem.f_userinfo_id,
572
- process_id: this.selectdata.f_process_id
573
- }
574
- }).then((res) => {
575
- if (res.data != null && res.data.length > 0) {
576
- //判断重复
577
- this.$resetpost('rs/sql/findFilesByUserId', {data: {f_userinfo_id: this.selectItem.f_userinfo_id}}).then((res) => {
578
- if (res.data.length > 0) {
579
- this.$showMessage("该户档案编号的表档案已存在!")
580
- return
581
- }
582
- //根据提交的气表品牌、表型号分别查询对应的表具信息
583
- let data = {
584
- tablename: 't_gasbrand',
585
- condition: `f_meter_brand= '${this.selectItem.f_meter_brand}'`
586
- }
587
- let http = new HttpResetClass()
588
- http.load('POST', 'rs/sql/singleTable', {data: data}).then((res) => {
589
- if (res.data.length > 0) {
590
- //表型号
591
- data = {
592
- tablename: 't_gasmodel',
593
- condition: `f_meter_style= '${this.selectItem.f_meter_style}'`
594
- }
595
- http = new HttpResetClass()
596
- http.load('POST', 'rs/sql/singleTable', {data: data}).then((re) => {
597
- if (re.data.length > 0) {
598
- this.selectItem.version = 1
599
- this.selectItem.f_table_state = '正常'
600
- this.selectItem.f_gasbrand_id = res.data[0].id
601
- this.selectItem.f_gasmodel_id = re.data[0].id
602
- data = {
603
- tablename: 't_userfiles',
604
- parameters: this.selectItem
605
- }
606
- let http = new HttpResetClass()
607
- http.load('POST', 'rs/entity/t_userfiles', this.selectItem, {
608
- resolveMsg: null,
609
- rejectMsg: null,
610
- }).then((res) => {
611
- this.show = false
612
- // 如果没有id,需要在数组中添加
613
- this.load()
614
- this.selectItem = {}
615
- })
616
- }
617
- })
618
- } else {
619
- this.$showMessage("表品牌信息错误!")
620
- return
621
- }
622
- })
623
- })
624
- } else {
625
- this.$showMessage("该编号户档案不存在,请先添加户档案")
626
- return
627
- }
628
- })
629
- } else {
630
- //根据提交的气表品牌、表型号分别查询对应的表具信息
631
- let data = {
632
- tablename: 't_gasbrand',
633
- condition: `f_meter_brand= '${this.selectItem.f_meter_brand}'`
634
- }
635
- let http = new HttpResetClass()
636
- http.load('POST', 'rs/sql/singleTable', {data: data}).then((res) => {
637
- if (res.data.length > 0) {
638
- //表型号
639
- data = {
640
- tablename: 't_gasmodel',
641
- condition: `f_meter_style= '${this.selectItem.f_meter_style}'`
642
- }
643
- http = new HttpResetClass()
644
- http.load('POST', 'rs/sql/singleTable', {data: data}).then((re) => {
645
- if (re.data.length > 0) {
646
- this.selectItem.f_gasbrand_id = res.data[0].id
647
- this.selectItem.f_gasmodel_id = re.data[0].id
648
- data = {
649
- tablename: 't_userfiles',
650
- parameters: this.selectItem
651
- }
652
- let http = new HttpResetClass()
653
- http.load('POST', 'rs/entity/t_userfiles', this.selectItem, {
654
- resolveMsg: null,
655
- rejectMsg: null,
656
- }).then((res) => {
657
- this.show = false
658
- // 如果没有id,需要在数组中添加
659
- this.load()
660
- this.selectItem = {}
661
- })
662
- }
663
- })
664
- } else {
665
- this.$showMessage("表品牌信息错误!")
666
- return
667
- }
668
- })
669
- }
670
- }
671
- },
672
-
673
- // 关闭模态框
674
- close() {
675
- this.show = false
676
- this.selectItem = {}
677
- },
678
- },
679
- events: {
680
- async onFileUpload(file, res) {
681
- if (!this.selectdata.f_process_id) {
682
- this.$showMessage("数据异常,导入失败")
683
- return
684
- }
685
- //户档案导入
686
- if (this.key == '户档案管理') {
687
- let data = {
688
- tablename: 't_userinfo',
689
- filepath: res.f_downloadpath,
690
- f_process_id: this.selectdata.f_process_id,
691
- f_key: this.$login.f.f_orgids,
692
- f_operator: this.$login.f.name,
693
- f_filiale: this.$login.f.f_fengongsi,
694
- f_outlets: this.$login.f.f_parentname,
695
- f_orgstr: this.$login.f.orgpathstr,
696
- f_filialeids: this.$login.f.f_orgids,
697
- f_filialeid: this.$login.f.f_orgids.split('.')[this.$login.f.f_orgids.split('.').length - 2] + '.'
698
- }
699
- let http2 = new HttpResetClass()
700
- await http2.load('POST', 'rs/logic/recordImport', data, {
701
- resolveMsg: "导入成功!",
702
- rejectMsg: "导入失败!",
703
- }).then((res) => {
704
- this.load()
705
- this.closeFile()
706
- })
707
- }
708
- //表档案导入
709
- if (this.key == '表档案管理') {
710
- let data = {
711
- tablename: 't_userfiles',
712
- filepath: res.f_downloadpath,
713
- f_process_id: this.selectdata.f_process_id,
714
- f_key: this.$login.f.f_orgids,
715
- f_operator: this.$login.f.name,
716
- f_filiale: this.$login.f.f_fengongsi,
717
- f_outlets: this.$login.f.f_parentname,
718
- f_orgstr: this.$login.f.orgpathstr,
719
- f_filialeids: this.$login.f.f_orgids,
720
- f_filialeid: this.$login.f.f_orgids.split('.')[this.$login.f.f_orgids.split('.').length - 2] + '.'
721
- }
722
- let http2 = new HttpResetClass()
723
- await http2.load('POST', 'rs/logic/grandImport', data, {
724
- resolveMsg: null,
725
- rejectMsg: '上传失败'
726
- }).then((res) => {
727
- console.log(">>>>>>>>>>>", res)
728
- this.load()
729
- this.closeFile()
730
- if (res.data.msg != null && res.data.msg != "") {
731
- this.$showMessage(res.data.msg)
732
- } else if (res.data.userIds.length > 0) {
733
- this.$showMessage("以下编号的户档案不存在,请先添加户档案再添加表档案:" + res.data.userIds.toString())
734
- } else if (res.data.reuserIds.length > 0) {
735
- this.$showMessage("以下户档案编号的表档案已存在,请删除后重新导入:" + res.data.reuserIds.toString())
736
- } else {
737
- this.$showMessage("导入成功!")
738
- }
739
- })
740
- }
741
- }
742
- }
743
- }
744
- </script>
745
- <style>
746
- .recordTable table tr th {
747
- font-weight: bold;
748
- }
749
-
750
- .recordTable table tr:hover {
751
- background-color: rgb(230, 230, 230);
752
- }
753
- </style>
1
+ <template>
2
+ <div class="flex col-sm-12" style="margin-top:0px;">
3
+ <div class="auto" style="overflow:auto;margin: 15px 0 0 15px;">
4
+ <div class="form-inline auto col-sm-12">
5
+ <div class="row col-sm-12">
6
+ <div class="form-group col-sm-3">
7
+ <label class=" control-label" >客户姓名</label>
8
+ <input type="text" class="input_search" placeholder='客户姓名' v-model="model.f_user_name"
9
+ @keyup.enter="filterParams(param)" >
10
+ </div>
11
+ <div class="form-group col-sm-3">
12
+ <label class=" control-label" >客户电话</label>
13
+ <input type="text" class="input_search" placeholder='客户电话' v-model="model.f_user_phone"
14
+ @keyup.enter="filterParams(param)" >
15
+ </div>
16
+ <div class="form-group col-sm-5" >
17
+ <button type="button" class="btn btn-default" @click="filterParams(param),this.user_search()">查询</button>
18
+ <button style="margin-left:10px;" type="button" class="btn btn-success" @click="impexcel()" v-show="edit">导入档案</button>
19
+ <button style="margin-left:10px;" type="button" class="btn btn-success" v-show="edit">
20
+ <a href="rs/excel/applyinstall/Excel/new-user-roster_max.xls" style="color: white">下载模板</a>
21
+ </button>
22
+ <button style="margin-left:10px;" type="button" class="btn btn-success" @click="impexcel1()" v-show="this.selectdata.defname == '安装施工'">导入气表信息</button>
23
+ <!-- <button style="margin-left:10px;" type="button" class="btn btn-success" @click="impexcel1()" v-show="this.selectdata.defname == '安装施工'">气表模板下载</button>-->
24
+ <export-excel progress="apply_getExportProgress"
25
+ :data="{fengongsi: this.$login.f.orgs, f_process_id: this.selectdata.f_process_id}"
26
+ :field="getHeader"
27
+ sqlurl="rs/logic/apply_exportfile"
28
+ sql-name="meterDynamic"
29
+ template-name='动态气表模板导出'
30
+ :choose-col="true">
31
+ </export-excel>
32
+ </div>
33
+ </div>
34
+ <div class="row col-sm-12">
35
+ <div class="form-group col-sm-3">
36
+ </div>
37
+ <div class="form-group col-sm-3">
38
+ </div>
39
+ <div class="form-group col-sm-5" style="margin-left: 59px;">
40
+ <button style="margin-left:10px;" type="button" class="btn btn-success" @click="meterUpload()" v-show="this.selectdata.defname == '安装施工'">气表模板下载</button>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <!--户档案管理组件-->
46
+ <div class="col-sm-12 span recordTable" style="margin-top: 10px;height:70vh;">
47
+
48
+ <partial-view v-ref:single-load>
49
+ <data-grid :model="model" v-ref:grid>
50
+ <template partial='head'>
51
+ <tr>
52
+ <th>档案编号</th>
53
+ <th>用户姓名</th>
54
+ <th>用户电话</th>
55
+ <th>地址</th>
56
+ <th>用户状态</th>
57
+ <th >操作</th>
58
+ </tr>
59
+ </template>
60
+ <template partial='body' >
61
+ <td @click="$parent.$parent.$parent.showdetail(row.f_userinfo_id)" style="text-align: center">{{row.f_userinfo_id}}</td>
62
+ <td @click="$parent.$parent.$parent.showdetail(row.f_userinfo_id)" style="text-align: center">{{row.f_user_name}}</td>
63
+ <td @click="$parent.$parent.$parent.showdetail(row.f_userinfo_id)" style="text-align: center">{{row.f_user_phone}}</td>
64
+ <td @click="$parent.$parent.$parent.showdetail(row.f_userinfo_id)" style="text-align: center">{{row.f_address}}</td>
65
+ <td @click="$parent.$parent.$parent.showdetail(row.f_userinfo_id)" style="text-align: center">{{row.f_user_state}}</td>
66
+ <td v-show="edit"><input type="checkbox" v-model="row.f_pay" @click="$parent.$parent.$parent.paychange(row)"/></td>
67
+ <td class="" style="text-align: center">
68
+ <button type="button" name="button" class="btn btn-link" v-if="this.$login.f.deps != '管理层'"
69
+ @click.stop="$parent.$parent.$parent.modifyParam(row)" >修改
70
+ </button>
71
+ <button type="button" name="button" class="btn btn-link"
72
+ @click.stop="$parent.$parent.$parent.deleteinfo(row)">销户
73
+ </button>
74
+ <!--<button type="button" name="button" class="btn btn-link"-->
75
+ <!--@click.stop="$parent.$parent.$parent.deleteItem(row)">删除-->
76
+ <!--</button>-->
77
+ </td>
78
+ </template>
79
+ </data-grid>
80
+
81
+ </partial-view>
82
+ </div>
83
+
84
+ <div class="col-sm-12 span recordTable" style="margin-top: -154px;height:auto;" v-if="isShowdetail" >
85
+ <p class="text-center" style="padding: 8px;font-size: 20px">表档案列表
86
+
87
+ <button type="button" class="close" @click="isShowdetail=false" aria-hidden="true">&times;</button>
88
+ </p>
89
+ <partial-view v-ref:single-load>
90
+ <data-grid :model="batchmodel" v-ref:batchgrid>
91
+ <template partial='head'>
92
+ <tr>
93
+ <th>序号</th>
94
+ <th>户档案编号</th>
95
+ <th>表档案编号</th>
96
+ <th>表号</th>
97
+ <th>表箱号</th>
98
+ <th>气表品牌</th>
99
+ <th>气表型号</th>
100
+ <th>气表状态</th>
101
+ <th>通气人</th>
102
+ <th>通气时间</th>
103
+ <th>操作</th>
104
+ </tr>
105
+ </template>
106
+ <template partial='body'>
107
+ <td style="text-align: center">{{$index+1}}</td>
108
+ <td style="text-align: center">{{row.f_userinfo_id}}</td>
109
+ <td style="text-align: center">{{row.f_userfiles_id}}</td>
110
+ <td style="text-align: center">{{row.f_meternumber}}</td>
111
+ <td style="text-align: center">{{row.f_metertitles}}</td>
112
+ <td style="text-align: center">{{row.f_meter_brand}}</td>
113
+ <td style="text-align: center">{{row.f_meter_style}}</td>
114
+ <td style="text-align: center">{{row.f_table_state}}</td>
115
+ <td style="text-align: center">{{row.f_gas_person}}</td>
116
+ <td style="text-align: center">{{row.f_gas_date}}</td>
117
+ <!--<td>{{row.f_remarks}}</td>-->
118
+ <td class="" style="text-align: center">
119
+ <button type="button" name="button" class="btn btn-link"
120
+ @click.stop="$parent.$parent.$parent.filesModify(row)" >修改
121
+ </button>
122
+ <button type="button" name="button" class="btn btn-link"
123
+ @click.stop="$parent.$parent.$parent.stopItem(row)">停用
124
+ </button>
125
+ </td>
126
+ </template>
127
+ </data-grid>
128
+
129
+
130
+
131
+
132
+ </partial-view>
133
+ </div>
134
+
135
+ </div>
136
+ <modal :show.sync="show" v-ref:modal backdrop="false">
137
+ <header slot="modal-header" class="modal-header">
138
+ <button type="button" class="close" @click="close"><span>&times;</span></button>
139
+ <h4 class="modal-title">配置</h4>
140
+ </header>
141
+ <!--户档案修改-->
142
+ <article slot="modal-body" class="modal-body" >
143
+ <div class="from-group" style="width: 100%">
144
+ <label style="width: 15%;float: left">用户姓名</label>
145
+ <input type="text" class="form-control" readonly="readonly" v-model="selectItem.f_user_name" style="width: 80%;float: left"/>
146
+ </div>
147
+ <div class="from-group" style="width: 100%">
148
+ <label style="width: 15%;float: left">用户电话</label>
149
+ <input type="text" class="form-control" readonly="readonly" v-model="selectItem.f_user_phone" style="width: 80%;float: left">
150
+ </div>
151
+ <!-- <div class="from-group" style="width: 100%">-->
152
+ <!-- <label style="width: 15%;float: left">区/县</label>-->
153
+ <!-- <input type="text" class="form-control" v-model="selectItem.f_pcd" style="width: 80%;float: left">-->
154
+ <!-- </div>-->
155
+ <!-- <div class="from-group" style="width: 100%">-->
156
+ <!-- <label style="width: 15%;float: left">片区</label>-->
157
+ <!-- <input type="text" class="form-control" v-model="selectItem.f_slice_area" style="width: 80%;float: left">-->
158
+ <!-- </div>-->
159
+ <div class="from-group" style="width: 100%">
160
+ <label style="width: 15%;float: left">街道</label>
161
+ <input type="text" class="form-control" v-model="selectItem.f_street" style="width: 80%;float: left">
162
+ </div>
163
+ <div class="from-group" style="width: 100%">
164
+ <label style="width: 15%;float: left">小区</label>
165
+ <input type="text" class="form-control" v-model="selectItem.f_residential_area" style="width: 80%;float: left">
166
+ </div>
167
+ <div class="from-group" style="width: 100%">
168
+ <label style="width: 15%;float: left">楼号</label>
169
+ <input type="text" class="form-control" v-model="selectItem.f_building" style="width: 80%;float: left">
170
+ </div>
171
+ <div class="from-group" style="width: 100%">
172
+ <label style="width: 15%;float: left">单元号</label>
173
+ <input type="text" class="form-control" v-model="selectItem.f_unit" style="width: 80%;float: left">
174
+ </div>
175
+ <div class="from-group" style="width: 100%">
176
+ <label style="width: 15%;float: left">楼层</label>
177
+ <input type="text" class="form-control" v-model="selectItem.f_floor" style="width: 80%;float: left">
178
+ </div>
179
+ <div class="from-group" style="width: 100%">
180
+ <label style="width: 15%;float: left">门牌号</label>
181
+ <input type="text" class="form-control" v-model="selectItem.f_room" style="width: 80%;float: left">
182
+ </div>
183
+ <div class="from-group" style="width: 100%">
184
+ <label style="width: 15%;float: left">人口数</label>
185
+ <input type="number" class="form-control" v-model="selectItem.f_people_num" style="width: 80%;float: left">
186
+ </div>
187
+ <div class="from-group" style="width: 100%">
188
+ <label style="width: 15%;float: left">用户状态</label>
189
+ <v-select :value.sync="selectItem.f_user_state" v-model="selectItem.f_user_state"
190
+ :options='userstate' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
191
+ close-on-select >
192
+ </v-select>
193
+ </div>
194
+ </article>
195
+
196
+
197
+ <footer slot="modal-footer" class="modal-footer">
198
+ <div class="from-group" style="width: 100%;float: left">
199
+ <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
200
+ <button v-show="show" type="button" class="btn btn-success" @click='confirm'>确认</button>
201
+ </div>
202
+ </footer>
203
+ </modal>
204
+
205
+
206
+ <modal :show.sync="addshow" v-ref:modal backdrop="false">
207
+ <header slot="modal-header" class="modal-header">
208
+ <button type="button" class="close" @click="addclose"><span>&times;</span></button>
209
+ <h4 class="modal-title">配置</h4>
210
+ </header>
211
+ <!--表档案修改-->
212
+ <article slot="modal-body" class="modal-body" >
213
+ <div class="from-group">
214
+ <label style="width: 20%;float: left">表号</label>
215
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_meternumber"/>
216
+ </div>
217
+
218
+ <div class="from-group">
219
+ <label style="width: 20%;float: left">表箱号</label>
220
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_metertitles"/>
221
+ </div>
222
+ <div class="from-group" v-if="this.selectdata.defname != '通气'">
223
+ <label style="width: 20%;float: left">气表品牌</label>
224
+ <v-select :value.sync="selectItem.f_meter_brand" v-model="selectItem.f_meter_brand"
225
+ :options='meterbrand' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
226
+ close-on-select search="">
227
+ </v-select>
228
+ </div>
229
+ <!-- 通气时显示 -->
230
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
231
+ <label style="width: 20%;float: left">气表品牌</label>
232
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_meter_brand"/>
233
+ </div>
234
+
235
+ <div class="from-group" v-if="this.selectdata.defname != '通气'">
236
+ <label style="width: 20%;float: left">气表型号</label>
237
+ <v-select :value.sync="selectItem.f_meter_style" v-model="selectItem.f_meter_style"
238
+ :options='meterstyle' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
239
+ close-on-select >
240
+ </v-select>
241
+ </div>
242
+ <!-- 通气时显示 -->
243
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
244
+ <label style="width: 20%;float: left">气表型号</label>
245
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_meter_style"/>
246
+ </div>
247
+
248
+ <div class="from-group" v-if="this.selectdata.defname != '通气'">
249
+ <label style="width: 20%;float: left">左右表</label>
250
+ <v-select :value.sync="selectItem.f_aroundmeter" v-model="selectItem.f_aroundmeter"
251
+ :options='aroundmeter' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
252
+ close-on-select >
253
+ </v-select>
254
+ </div>
255
+ <!-- 通气时显示 -->
256
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
257
+ <label style="width: 20%;float: left">左右表</label>
258
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_aroundmeter"/>
259
+ </div>
260
+
261
+ <div class="from-group">
262
+ <label style="width: 20%;float: left">表状态</label>
263
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_table_state" readonly="readonly"/>
264
+ </div>
265
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
266
+ <label style="width: 20%;float: left">气价名称</label>
267
+ <v-select :value.sync="selectItem.f_price_name" v-model="selectItem.f_price_name"
268
+ :options='pricename' placeholder='请选择' style="width: 80%;float: left" :width="'80%'" @change="priceChange"
269
+ close-on-select >
270
+ </v-select>
271
+ </div>
272
+ <!-- <div class="from-group">-->
273
+ <!-- <label style="width: 20%;float: left">客户类型</label>-->
274
+ <!-- <v-select :value.sync="selectItem.f_user_type" v-model="selectItem.f_user_type" :width="'80%'"-->
275
+ <!-- :options='usertypes' placeholder='请选择' style="width: 80%;float: left"-->
276
+ <!-- close-on-select >-->
277
+ <!-- </v-select>-->
278
+ <!-- </div>-->
279
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
280
+ <label style="width: 20%;float: left">客户类型</label>
281
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_user_type" />
282
+ </div>
283
+ <!-- <div class="from-group">-->
284
+ <!-- <label style="width: 20%;float: left">用气性质</label>-->
285
+ <!-- <v-select :value.sync="selectItem.f_gasproperties" v-model="selectItem.f_gasproperties"-->
286
+ <!-- :options='gasproperties' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"-->
287
+ <!-- close-on-select >-->
288
+ <!-- </v-select>-->
289
+ <!-- </div>-->
290
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
291
+ <label style="width: 20%;float: left">用气性质</label>
292
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_gasproperties"/>
293
+ </div>
294
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
295
+ <label style="width: 20%;float: left">价格</label>
296
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_price"/>
297
+ </div>
298
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
299
+ <label style="width: 20%;float: left">气价类型</label>
300
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_price_type"/>
301
+ </div>
302
+ <!-- <div class="from-group">-->
303
+ <!-- <label style="width: 20%;float: left">气价类型</label>-->
304
+ <!-- <v-select :value.sync="selectItem.f_price_type" v-model="selectItem.f_price_type"-->
305
+ <!-- :options='pricetype' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"-->
306
+ <!-- close-on-select >-->
307
+ <!-- </v-select>-->
308
+ <!-- </div>-->
309
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
310
+ <label style="width: 20%;float: left">气表类型</label>
311
+ <v-select :value.sync="selectItem.f_meter_classify" v-model="selectItem.f_meter_classify"
312
+ :options='meterclassify' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
313
+ close-on-select >
314
+ </v-select>
315
+ </div>
316
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
317
+ <label style="width: 20%;float: left">安装位置</label>
318
+ <v-select :value.sync="selectItem.f_position" v-model="selectItem.f_position"
319
+ :options='position' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
320
+ close-on-select >
321
+ </v-select>
322
+ </div>
323
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
324
+ <label style="width: 20%;float: left">抄表员</label>
325
+ <v-select :value.sync="selectItem.f_inputtor" v-model="selectItem.f_inputtor"
326
+ :options='inputtor' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
327
+ close-on-select >
328
+ </v-select>
329
+ </div>
330
+ <div class="from-group" v-if="this.selectdata.defname == '通气' && this.super_book">
331
+ <label style="width: 20%;float: left">抄表本</label>
332
+ <v-select :value.sync="selectItem.f_super_book" v-model="selectItem.f_super_book"
333
+ :options='super_book_array' placeholder='请选择' style="width: 80%;float: left" :width="'80%'"
334
+ close-on-select >
335
+ </v-select>
336
+ </div>
337
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
338
+ <label style="width: 20%;float: left">通气人</label>
339
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_gas_person"/>
340
+ </div>
341
+ <div class="from-group" v-if="this.selectdata.defname == '通气'">
342
+ <label style="width: 20%;float: left">通气时间</label>
343
+ <datepicker style="width: 80%;float: left" :width="'80%'"
344
+ :value.sync="selectItem.f_gas_date"
345
+ :format="'yyyy-MM-dd HH:mm:ss'"
346
+ v-model="selectItem.f_gas_date"
347
+ :readonly="true"
348
+ :show-reset-button="reset">
349
+ </datepicker>
350
+ </div>
351
+ <!-- <div class="from-group">-->
352
+ <!-- <label style="width: 20%;float: left">通气表号</label>-->
353
+ <!-- <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_gas_meternumber"/>-->
354
+ <!-- </div>-->
355
+ <!--<div class="from-group">
356
+ <label style="width: 20%;float: left">输损率</label>
357
+ <input type="number" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_lossrate" v-validate:f_lossrate='{dctest: [1, "<" ] }'/>
358
+ </div>-->
359
+
360
+ </article>
361
+ <footer slot="modal-footer" class="modal-footer">
362
+ <button type="button" class="btn btn-default" @click='addclose'>取消</button>
363
+ <button type="button" class="btn btn-success" v-if="showqueren" @click='addconfirm'>确认</button>
364
+ <button type="button" class="btn btn-success" v-else>提交中</button>
365
+ </footer>
366
+ </modal>
367
+
368
+ <modal :show.sync="updateshow" v-ref:modal backdrop="false">
369
+ <header slot="modal-header" class="modal-header">
370
+ <button type="button" class="close" @click="updateclose"><span>&times;</span></button>
371
+ <h4 class="modal-title">配置</h4>
372
+ </header>
373
+ <!--户档案修改-->
374
+ <article slot="modal-body" class="modal-body" >
375
+ <div class="from-group">
376
+ <label style="width: 20%;float: left">表号</label>
377
+ <input type="text" style="width: 80%;float: left" class="form-control" v-model="selectItem.f_meternumber"/>
378
+ </div>
379
+ <div class="from-group">
380
+ <label style="width: 20%;float: left">气表品牌</label>
381
+ <v-select :value.sync="selectItem.f_meter_brand" v-model="selectItem.f_meter_brand"
382
+ :options='meterbrand' placeholder='请选择' style="width: 80%;float: left"
383
+ close-on-select search="">
384
+ </v-select>
385
+ </div>
386
+ <div class="from-group">
387
+ <label style="width: 20%;float: left">表型号</label>
388
+ <v-select :value.sync="selectItem.f_meter_style" v-model="selectItem.f_meter_style"
389
+ :options='meterstyle' placeholder='请选择' style="width: 80%;float: left"
390
+ close-on-select >
391
+ </v-select>
392
+ </div>
393
+ </article>
394
+ <footer slot="modal-footer" class="modal-footer">
395
+ <button type="button" class="btn btn-default" @click='updateclose'>取消</button>
396
+ <button type="button" class="btn btn-success" @click='updateconfirm'>确认</button>
397
+ </footer>
398
+ </modal>
399
+
400
+
401
+ <modal :show.sync="showFile" v-ref:modal backdrop="false">
402
+ <header slot="modal-header" class="modal-header">
403
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
404
+ <h4 class="modal-title">档案导入</h4>
405
+ </header>
406
+ <article slot="modal-body" class="modal-body">
407
+ <div class="form-group">
408
+ <file-upload class="my-file-uploader" :name="key+(Math.random()+3)+8882" :id="key+(Math.random()+3)+8882"
409
+ action="rs/file/uploadFile" tagname="文件导入" :headers="headers" v-ref:file></file-upload>
410
+ </div>
411
+ </article>
412
+ <footer slot="modal-footer" class="modal-footer"></footer>
413
+ </modal>
414
+ <modal :show.sync="showInfo" v-ref:modal backdrop="false">
415
+ <header slot="modal-header" class="modal-header">
416
+ <button type="button" class="close" @click="closeFile"><span>&times;</span></button>
417
+ <h4 class="modal-title">表信息导入</h4>
418
+ </header>
419
+ <article slot="modal-body" class="modal-body">
420
+ <div class="form-group">
421
+ <file-upload class="my-file-uploader" :name="key+(Math.random()+3)+8882" :id="key+(Math.random()+3)+8882"
422
+ action="rs/file/uploadFile" tagname="文件导入" :headers="headers" v-ref:file></file-upload>
423
+ </div>
424
+ </article>
425
+ <footer slot="modal-footer" class="modal-footer"></footer>
426
+ </modal>
427
+ <!-- 建档花名册下载 -->
428
+ <modal :show.sync="upload_meter" backdrop="false">
429
+ <header slot="modal-header" class="modal-header">
430
+ <h4 class="modal-title">建档花名册下载</h4>
431
+ </header>
432
+ <article slot="modal-body" class="modal-body">
433
+ <div class="col-sm-12 span recordTable" style="margin-top: 10px;height:70vh;">
434
+ <upload v-ref:file :blodid = "selectdata.f_process_id" :isusetype = "true" :isremark = "true" :defname="selectdata.defname"></upload>-->
435
+ <!--<customer-file v-ref:file :selectdata="selectdata"></customer-file>-->
436
+ </div>
437
+ </article>
438
+ <footer slot="modal-footer" class="modal-footer">
439
+ <div class="from-group" style="width: 100%;float: left">
440
+ <button v-show="upload_meter" type="button" class="btn btn-default" @click='upload_meter_close'>关闭</button>
441
+ <!-- <button v-show="upload_meter" type="button" class="btn btn-success" @click='showClose'>-->
442
+ <!-- 确认-->
443
+ <!-- </button>-->
444
+ </div>
445
+ </footer>
446
+ </modal>
447
+ <work-busy :is-busy="iswork" v-show="iswork"></work-busy>
448
+ </template>
449
+
450
+ <script>
451
+ import {HttpResetClass} from 'vue-client'
452
+ import axios from 'axios'
453
+ import Vue from 'vue'
454
+ export default {
455
+ title: '档案信息',
456
+ props: ['selectdata', 'key','edit'],
457
+ data() {
458
+ return {
459
+ iswork:false,
460
+ headers: {'username': this.$login.f.name, 'blodid': this.selectdata.f_process_id, 'fusetype': '报建execl导入用户档案'},
461
+ //户档案表头
462
+ userHeadData: ['档案编号', '用户姓名', '用户电话', '区', '片区', '街道名称', '小区名称', '楼号', '单元号', '楼层', '门牌号', '用气性质', '用户状态'],
463
+ //户档案内容
464
+ userBodyData: ['f_userinfo_id', 'f_user_name', 'f_user_phone', 'f_area', 'f_slice_area', 'f_street', 'f_residential_area', 'f_building', 'f_unit', 'f_floor', 'f_room', 'f_gasproperties', 'f_user_state'],
465
+ //表档案表头
466
+ surHeadData: ['户档案编号', '表号', '气表品牌', '表型号','通气表号','通气人','通气时间','被修改表号'],
467
+ //表档案内容
468
+ surBodyData: ['f_userinfo_id', 'f_meternumber', 'f_meter_brand', 'f_meter_style','f_gas_meternumber','f_gas_person','f_gas_date','f_gas_meternumber'],
469
+ //设备表头
470
+ eqHeadData: ['户档案编号', '设备编号', '设备类型', '设备品牌','设备型号','设备数量'],
471
+ //设备内容
472
+ eqBodyData: ['f_userinfo_id', 'f_devices_no', 'f_devices_type', 'f_brand','f_devices_model','f_devices_num'],
473
+ //动态模板导出表头
474
+ getHeader: {
475
+ 'f_user_name': '用户姓名',
476
+ 'f_user_phone': '电话',
477
+ 'f_credentials': '证件类型',
478
+ 'f_idnumber': '证件号码',
479
+ 'f_pcd': '区/县',
480
+ 'f_street': '街道/镇',
481
+ 'f_residential_area': '小区名称/村',
482
+ 'f_building': '楼号/社/组',
483
+ 'f_unit': '单元号',
484
+ 'f_floor': '楼层',
485
+ 'f_room': '门牌号',
486
+ 'f_people_num': '人口数',
487
+ 'f_comments': '备注',
488
+
489
+ 'f_super_length': '超长距离',
490
+ 'f_super_money': '超长费用',
491
+ 'f_install_money': '安装费',
492
+ 'f_charge_date': '交款日期',
493
+ 'f_invoice_num': '收据号',
494
+
495
+ 'f_meter_brand': '气表品牌',
496
+ 'f_meter_style': '气表型号',
497
+ 'f_table_state': '表状态',
498
+ 'f_aroundmeter': '左右表',
499
+ 'f_meternumber': '表编号',
500
+ 'f_metertitles': '表箱号'
501
+ },
502
+ record: {},
503
+ selectItem: {
504
+ 'f_meternumber': null,
505
+ 'f_metertitles': null,
506
+ 'f_meter_brand': null,
507
+ 'f_meter_style': null,
508
+ 'f_aroundmeter': null,
509
+ 'f_table_state': null,
510
+ 'f_price_name': null,
511
+ 'f_price_type': null,
512
+ 'f_price': null,
513
+ 'f_gasproperties': null,
514
+ 'f_user_type': null,
515
+ 'f_meter_classify': null,
516
+ 'f_position': null,
517
+ 'f_inputtor': null,
518
+ 'f_gas_person': null,
519
+ 'f_gas_date': null,
520
+ 'f_super_book': null
521
+ },
522
+ pricetype:[],
523
+ pricename:[],
524
+ model: {
525
+ rows: []
526
+ },
527
+ batchmodel :{
528
+ rows: []
529
+ },
530
+ params: { // 选择的具体内容
531
+ rows: []
532
+ },
533
+ condition: '',
534
+ show: false,
535
+ showFile: false,
536
+ showInfo: false,// 表信息导入
537
+ showCon: false,
538
+ ischecked: false,
539
+ getfield: {},
540
+ checked: [],
541
+ isShowdetail:false,
542
+ userinfo_id: null,
543
+ addshow:false,
544
+ meterstyle:[],
545
+ meterbrand:[],
546
+ styletype:[],
547
+ updateshow:false,
548
+ importtype:null,
549
+ showqueren:true,
550
+ userstate:this.$appdata.getParam('用户状态'),
551
+ checker:this.$appdata.getParam('安全员'),
552
+ coststate:this.$appdata.getParam('结算状态'),
553
+ costtype:this.$appdata.getParam('缴费类型'),
554
+ aroundmeter:this.$appdata.getParam('左右表'),
555
+ // gasproperties:this.$appdata.getParam('用气性质'),
556
+ // usertypes:this.$appdata.getParam('用户类型'),
557
+ // tablestate:this.$appdata.getParam('表状态'),
558
+ meterclassify:this.$appdata.getParam('气表类型'),
559
+ whetherhairpin:this.$appdata.getParam('是否发卡'),
560
+ position:this.$appdata.getParam('安装位置'),
561
+ inputtor:null,
562
+ viewPage: false,
563
+ userinfo_array: [],
564
+ super_book: false,
565
+ super_book_array: [],
566
+ upload_meter: false
567
+ }
568
+ },
569
+ ready() {
570
+ // 获取抄表员
571
+ let data = []
572
+ let array = []
573
+ data = this.$login.f.f_gasman.map(item => {
574
+ return item.name;
575
+ })
576
+ for (let q = 0; q < data.length; q++) {
577
+ let arraydata = {
578
+ 'label': data[q],
579
+ 'value': data[q]
580
+ }
581
+ if (array.length != 0) {
582
+ for (let w = 0; w < array.length; w++) {
583
+ if (array[w].label == data[q]) {
584
+ break
585
+ }
586
+ while (w == array.length - 1) {
587
+ array.push(arraydata)
588
+ break
589
+ }
590
+ }
591
+ } else {
592
+ array.push(arraydata)
593
+ }
594
+ }
595
+ this.inputtor = array
596
+ this.load()
597
+ this.getitem()
598
+ this.getPriceInfo()
599
+ },
600
+ watch: {
601
+ 'selectdata'() {
602
+ this.headers.blodid = this.selectdata.f_process_id
603
+ this.load()
604
+ },
605
+ 'selectItem.f_meter_classify[0]'(val) {
606
+ if (val == '机表') {
607
+ this.super_book = true
608
+ this.getMeterBook()
609
+ }else {
610
+ this.super_book = false
611
+ }
612
+ },
613
+ 'selectItem.f_meter_brand[0]'(val) {
614
+ console.log('选择的品牌改变了',val)
615
+ if (!val){
616
+ return
617
+ }
618
+ this.$resetpost('rs/logic/getMeterStyle', {data:{f_meter_brand :val, f_orgid: this.$login.f.orgid}} ,{resolveMsg: null, rejectMsg: null}).then((res) => {
619
+ console.log('获取的选项',res)
620
+ let house2 = []
621
+ for (let row of res.data){
622
+ house2.push({label: row.f_meter_style,value: row.f_meter_style})
623
+ }
624
+ this.meterstyle = house2
625
+ })
626
+ },
627
+ 'selectItem.f_meternumber'() {
628
+ if (this.selectItem.hasOwnProperty("f_meternumber")) {
629
+ if (this.selectItem.f_meternumber == null || this.selectItem.f_meternumber == undefined || this.selectItem.f_meternumber == '' || this.selectItem.f_meternumber.trim().length == 0){
630
+ this.$set('selectItem.f_table_state', "待安装")
631
+ }else {
632
+ this.$set('selectItem.f_table_state', "正常")
633
+ }
634
+ }
635
+
636
+ }
637
+ },
638
+
639
+ computed: {
640
+ address() {
641
+ let strAddress = `${this.record.f_area ? this.record.f_area
642
+ + '-' : ''}${this.record.f_street ? this.record.f_street
643
+ + '-' : ''}${this.record.f_residential_area ? this.record.f_residential_area
644
+ + '' : ''}${this.record.f_building ? this.record.f_building
645
+ + '号楼' : ''}${this.record.f_unit ? this.record.f_unit
646
+ + '单元' : ''}${this.record.f_floor ? this.record.f_floor
647
+ + '层' : ''}${this.record.f_room ? this.record.f_room
648
+ + '室' : ''}`
649
+ this.record.f_address = strAddress
650
+ return strAddress
651
+ },
652
+ getfield() {
653
+ let data = {}
654
+ this.userBodyData.forEach((value, index) => {
655
+ data[this.userBodyData[index]] = this.userHeadData[index]
656
+ })
657
+
658
+ console.log('data', data)
659
+ return data
660
+ }
661
+ },
662
+ methods: {
663
+ // 获取气价信息
664
+ async getPriceInfo() {
665
+ console.log('开始获取气价信息')
666
+ let http = new HttpResetClass()
667
+ let condition = " f_filialeid in ('" + this.$login.f.orgid + "')"
668
+ let res = await http.load('POST','rs/sql/applysingleTable',{data:{tablename:'t_stairprice',condition:condition}}, {resolveMsg: null, rejectMsg: null})
669
+ let data = []
670
+ let array = []
671
+ data = res.data.map(item => {
672
+ return item.f_price_name;
673
+ })
674
+ for (let q = 0; q < data.length; q++) {
675
+ let arraydata = {
676
+ 'label': data[q],
677
+ 'value': data[q]
678
+ }
679
+ if (array.length != 0) {
680
+ for (let w = 0; w < array.length; w++) {
681
+ if (array[w].label == data[q]) {
682
+ break
683
+ }
684
+ while (w == array.length - 1) {
685
+ array.push(arraydata)
686
+ break
687
+ }
688
+ }
689
+ } else {
690
+ array.push(arraydata)
691
+ }
692
+ }
693
+ this.pricename = array
694
+ },
695
+ // 获取抄表册
696
+ async getMeterBook() {
697
+ let http = new HttpResetClass()
698
+ let condition = " f_orgname = '" + this.$login.f.orgs + "'"
699
+ let res = await http.load('POST','rs/sql/applysingleTable',{data:{tablename: 't_meter_book', condition: condition}}, {resolveMsg: null, rejectMsg: "获取抄表本失败"})
700
+ let data = []
701
+ let array = []
702
+ data = res.data.map(item => {
703
+ return item.f_book_name;
704
+ })
705
+ for (let q = 0; q < data.length; q++) {
706
+ let arraydata = {
707
+ 'label': data[q],
708
+ 'value': data[q]
709
+ }
710
+ if (array.length != 0) {
711
+ for (let w = 0; w < array.length; w++) {
712
+ if (array[w].label == data[q]) {
713
+ break
714
+ }
715
+ while (w == array.length - 1) {
716
+ array.push(arraydata)
717
+ break
718
+ }
719
+ }
720
+ } else {
721
+ array.push(arraydata)
722
+ }
723
+ }
724
+ this.super_book_array = array
725
+
726
+ },
727
+ // 根据气价名称获取其他相对应数据
728
+ priceChange(val) {
729
+ console.log("被选中的数据:" + val)
730
+ this.getData(val)
731
+ },
732
+ async getData(val) {
733
+ let http2 = new HttpResetClass()
734
+ let condition2 = "s.f_filialeid = '" + this.$login.f.orgid + "'" + " and s.f_price_name = '" + val + "'"
735
+ http2.load('POST','rs/sql/searchGasPrice',{data:{condition:condition2}}, {resolveMsg: null, rejectMsg: null}).then((res2)=>{
736
+ console.log("气价数据:" + JSON.stringify(res2.data))
737
+ // for (let j = 0; j < this.$refs.service_show.data.fields.length; j++) {
738
+ // if (this.$refs.service_show.data.fields[j].label == '气价类型') {
739
+ // console.log("气价类型:" + res2.data[0])
740
+ // console.log("气价类型1:" + res2.data[0].f_price_type)
741
+ // Vue.set(this.selectItem,'f_price_type',res2.data[0].f_price_type)
742
+ // this.selectItem.f_price_type = res2.data[0].f_price_type
743
+ // console.log("气价类型2:" + this.$refs.service_show.data.fields[j].value)
744
+ // }
745
+ //气价拼接
746
+ // if (this.$refs.service_show.data.fields[j].label == '价格') {
747
+ let p = 1
748
+ let resultPrice = ''
749
+ for(let l = 0; l < res2.data.length; l++){
750
+ resultPrice = resultPrice + res2.data[l].price + ' |'
751
+ if (p == 3) {
752
+ break
753
+ }
754
+ p++
755
+ }
756
+ console.log("拼接的价格:" + resultPrice)
757
+ //this.selectItem.f_price = resultPrice
758
+ this.$set('selectItem.f_price',resultPrice)
759
+ this.$set('selectItem.f_gasproperties',res2.data[0].f_gasproperties)
760
+ this.$set('selectItem.f_user_type',res2.data[0].f_user_type)
761
+ this.$set('selectItem.f_price_type',res2.data[0].f_price_type)
762
+ // }
763
+ // if (this.$refs.service_show.data.fields[j].label == '用气性质') {
764
+ // this.$set(this.selectItem,'f_gasproperties',res2.data[0].f_gasproperties)
765
+ //this.selectItem.f_gasproperties = res2.data[0].f_gasproperties
766
+ // }
767
+ // if (this.$refs.service_show.data.fields[j].label == '客户类型') {
768
+ //this.selectItem.f_user_type = res2.data[0].f_user_type
769
+ // }
770
+ // }
771
+ })
772
+
773
+ },
774
+ getitem(){
775
+ console.log('开始获取品牌')
776
+ let condition = '1=1'
777
+ let http = new HttpResetClass()
778
+ let data = {
779
+ condition: condition,
780
+ f_orgid: this.$login.f.orgid
781
+ }
782
+ http.load('POST','rs/logic/getRecordItem', {data: data}, {resolveMsg: null, rejectMsg: null}).then((res) => {
783
+ console.log('获取的选项',res)
784
+ let house2 = []
785
+ for (let row of res.data.meterbrand){
786
+ house2.push({label: row.f_meter_brand,value: row.f_meter_brand})
787
+ }
788
+ this.meterbrand = house2
789
+ })
790
+ // 初始化气表品牌
791
+ // let brandArr = []
792
+ // this.$GetSaleParam.getGasbrand().forEach((item) => {
793
+ // let temp1 = {}
794
+ // temp1.label = item.label
795
+ // temp1.value = item.value.f_meter_brand
796
+ // brandArr.push(temp1)
797
+ // })
798
+ // this.meterbrand = [{label: '全部', value: ''}, ...brandArr]
799
+ },
800
+ upload_meter_close(){
801
+ this.upload_meter = false
802
+ },
803
+ addDetailed(){
804
+ this.importtype='2'
805
+ this.showFile = true
806
+ },
807
+ addclose(){
808
+ this.addshow = false
809
+ this.selectItem = {}
810
+ },
811
+
812
+ updateclose(){
813
+ this.updateshow = false
814
+ this.selectItem = {}
815
+ },
816
+ showdetail(val) {
817
+
818
+ console.log(val)
819
+ this.userinfo_id = val
820
+ this.isShowdetail=true
821
+ this.loadfiles()
822
+ },
823
+ async loadfiles() {
824
+ if (!this.selectdata)
825
+ return
826
+ let data = {
827
+ tablename: 't_userfiles',
828
+ condition: 'a.f_userinfo_id=' + '\'' + this.userinfo_id + '\''
829
+ }
830
+
831
+ let self = this
832
+ let http = new HttpResetClass()
833
+ let res = await http.load('POST', 'rs/sql/getUserfiles', {data: data}, {
834
+ resolveMsg: null,
835
+ rejectMsg: '获取表档案信息失败'
836
+ })
837
+ self.batchmodel.rows = []
838
+
839
+ self.batchmodel.rows = res.data
840
+ },
841
+ selected (val) {
842
+ this.selectItem = {"q":"q"}
843
+ },
844
+ //选择需要转银收的户档案
845
+ chooseOne(e, row, rows) {
846
+ console.log('row', row)
847
+ console.log('e', e)
848
+ this.ischecked = e.target.checked
849
+ console.log("state", e.target.checked)
850
+ //判断当前行是否被选中
851
+ if (this.ischecked) {
852
+ this.checked.push(row)
853
+ }
854
+ },
855
+ //修改选中的数据状态
856
+ changeState() {
857
+ if (this.checked.length > 0) {
858
+ let http = new HttpResetClass()
859
+ http.load('POST', 'rs/logic/updateUserState', {data: {rows: this.checked}}).then((res) => {
860
+ this.show = false
861
+ this.ischecked = false
862
+ // 如果没有id,需要在数组中添加
863
+ this.load()
864
+ this.checked = []
865
+ })
866
+ }
867
+ },
868
+ // 父组件更新子组件属性
869
+ updateData(val) {
870
+ this.headers.blodid = val.f_process_id
871
+ this.selectdata = val
872
+ },
873
+ async load() {
874
+ if (!this.selectdata)
875
+ return
876
+ let data = {
877
+ f_process_id: this.selectdata.f_process_id
878
+ }
879
+ let self = this
880
+ let http = new HttpResetClass()
881
+ let res = await http.load('POST', 'rs/sql/getUserArchives', {data: data}, {
882
+ resolveMsg: null,
883
+ rejectMsg: '获取户档案信息失败'
884
+ })
885
+ self.model.rows = []
886
+ self.model.rows = res.data
887
+ self.params = res.data
888
+
889
+
890
+ },
891
+ impexcel() {
892
+ this.importtype='1'
893
+ this.showFile = true
894
+ },
895
+ getfields() {
896
+ let report = {
897
+ 'f_user_name': '用户姓名',
898
+ 'f_user_phone': '电话',
899
+ 'f_credentials': '证件类型',
900
+ 'f_idnumber': '证件号码',
901
+ 'f_pcd': '区/县',
902
+ 'f_street': '街道/镇',
903
+ 'f_residential_area': '小区名称/村',
904
+ 'f_building': '楼号/社/组',
905
+ 'f_unit': '单元号',
906
+ 'f_floor': '楼层',
907
+ 'f_room': '门牌号',
908
+ 'f_people_num': '人口数',
909
+ 'f_comments': '备注',
910
+
911
+ 'f_super_length': '超长距离',
912
+ 'f_super_money': '超长费用',
913
+ 'f_install_money': '安装费',
914
+ 'f_charge_date': '交款日期',
915
+ 'f_invoice_num': '收据号',
916
+
917
+ 'f_meter_brand': '气表品牌',
918
+ 'f_meter_style': '气表型号',
919
+ 'f_table_state': '表状态',
920
+ 'f_aroundmeter': '左右表',
921
+ 'f_meternumber': '表编号',
922
+ 'f_metertitles': '表箱号'
923
+ }
924
+ return report
925
+ },
926
+ meterUpload() {
927
+ this.importtype='1'
928
+ this.upload_meter = true
929
+ },
930
+ impexcel1() {
931
+ this.importtype='1'
932
+ for (let i = 0; i < this.model.rows.length; i++) {
933
+ this.userinfo_array.push(this.model.rows[i].f_userinfo_id)
934
+ }
935
+ this.showInfo = true
936
+ // this.showCon = true
937
+ },
938
+ showClose() {
939
+ this.showCon = false
940
+ },
941
+ closeFile() {
942
+ this.showFile = false
943
+ this.showInfo = false
944
+ // 将选的文件清空
945
+ this.$refs.file.$el.querySelector('input').value = ''
946
+ },
947
+ delete(row){
948
+ console.log('开始删除')
949
+ let http = new HttpResetClass()
950
+ http.load('POST', 'rs/logic/deleteUserinfo', {data: {f_userinfo_id: row.f_userinfo_id}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
951
+ console.log('返回的数据:',res)
952
+ if (res.data != null && res.data != "") {
953
+ this.$showMessage(res.data)
954
+ }else {
955
+ this.$showMessage("删除成功!")
956
+ this.load()
957
+ }
958
+ })
959
+ },
960
+ deleteinfo(row){
961
+ this.$showMessage('确认销户吗?', ['confirm', 'cancel']).then((res) => {
962
+ if (res === 'confirm') {
963
+ console.log('开始销户')
964
+ let http = new HttpResetClass()
965
+ http.load('POST', 'rs/logic/deleteUserinfo', {data: {f_userinfo_id: row.f_userinfo_id}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
966
+ console.log('返回的数据:',res)
967
+ this.$showMessage(res.data)
968
+ this.load()
969
+ // if (res.data != null && res.data != "") {
970
+ // this.$showMessage(res.data)
971
+ // }else {
972
+ // this.$showMessage("删除成功!")
973
+ // this.load()
974
+ // }
975
+ })
976
+ }
977
+ })
978
+
979
+ },
980
+ deleteItem(row) {
981
+
982
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
983
+ if (res === 'confirm') {
984
+ let http = new HttpResetClass()
985
+ console.log("用户id:" + row.f_userfiles_id)
986
+ http.load('DELETE', `rs/entity/t_userfiles/${row.f_userfiles_id}`).then((res) => {
987
+ this.loadfiles()
988
+ })
989
+ }
990
+ })
991
+
992
+ },
993
+ stopItem (row) {
994
+ this.$showMessage('确认停用吗?', ['confirm', 'cancel']).then((res) => {
995
+ if (res === 'confirm') {
996
+ console.log('开始停用')
997
+ let http = new HttpResetClass()
998
+ http.load('POST', 'rs/logic/stopUserFiles', {data: {f_userfiles_id: row.f_userfiles_id}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
999
+ console.log('返回的数据:',res)
1000
+ this.$showMessage(res.data)
1001
+ this.loadfiles()
1002
+ })
1003
+ }
1004
+ })
1005
+
1006
+ },
1007
+ //户档案查询
1008
+ filterParams(param) {
1009
+ this.isShowdetail=false
1010
+ if (param && param !== "") {
1011
+ let temp = []
1012
+ for (var i = 0; i < this.model.rows.length; i++) {
1013
+ if (this.model.rows[i].f_user_name.includes(param)) {
1014
+ temp.push(this.model.rows[i])
1015
+ }
1016
+ }
1017
+ this.model.rows = temp
1018
+ } else {
1019
+ this.model.rows = this.params
1020
+ }
1021
+ },
1022
+ //表档案查询
1023
+ filterParam(param) {
1024
+ if (param && param !== "") {
1025
+ let temp = []
1026
+ for (var i = 0; i < this.model.rows.length; i++) {
1027
+ if (this.model.rows[i].f_meter_brand.includes(param)) {
1028
+ temp.push(this.model.rows[i])
1029
+ }
1030
+ }
1031
+ this.model.rows = temp
1032
+ } else {
1033
+ this.model.rows = this.params
1034
+ }
1035
+ },
1036
+ //设备列表查询
1037
+ findEq(param) {
1038
+ if (param && param !== "") {
1039
+ let temp = []
1040
+ for (var i = 0; i < this.model.rows.length; i++) {
1041
+ if (this.model.rows[i].f_meter_brand.includes(param)) {
1042
+ temp.push(this.model.rows[i])
1043
+ }
1044
+ }
1045
+ this.model.rows = temp
1046
+ } else {
1047
+ this.model.rows = this.params
1048
+ }
1049
+ },
1050
+ add() {
1051
+ this.show = true
1052
+ console.log("点击了添加")
1053
+ },
1054
+ async user_search() {
1055
+ if (!this.selectdata)
1056
+ return
1057
+ let data = {
1058
+ data: {
1059
+ fengongsi: this.$login.f.orgs,
1060
+ company: this.$login.f.orgs === '重庆盛焰集团' || this.$login.f.orgs === '湖南燎原燃气有限公司' ? " 1 = 1 or 1 = 1 " : " a.f_filiale = '" + this.$login.f.orgs + "'"
1061
+ },
1062
+ condition: ' 1 = 1'
1063
+ }
1064
+ if (this.model.f_user_name != null && this.model.f_user_name != undefined && this.model.f_user_name != '') {
1065
+ data.condition = ' u.f_user_name = ' + '\'' + this.model.f_user_name + '\'' + " and u.f_process_id = '" + this.selectdata.f_process_id + "'"
1066
+ }else if (this.model.f_user_phone != null && this.model.f_user_phone != undefined && this.model.f_user_phone != '') {
1067
+ data.condition = ' u.f_user_phone = ' + '\'' + this.model.f_user_phone + '\'' + " and u.f_process_id = '" + this.selectdata.f_process_id + "'"
1068
+ }else if (this.model.f_user_name != undefined && this.model.f_user_phone != undefined) {
1069
+ data.condition = ' u.f_user_phone = ' + '\'' + this.model.f_user_phone + '\'' + ' and u.f_user_name = ' + '\'' + this.model.f_user_name + '\'' + " and u.f_process_id = '" + this.selectdata.f_process_id + "'"
1070
+ }
1071
+ let self = this
1072
+ let http = new HttpResetClass()
1073
+ let res = await http.load('POST', 'rs/sql/reportFormUser', {data: data}, {
1074
+ resolveMsg: null,
1075
+ rejectMsg: '获取户档案信息失败'
1076
+ })
1077
+ self.model.rows = []
1078
+ self.model.rows = res.data
1079
+ if (res.data.length == 0) {
1080
+ this.$showMessage("该用户无数据")
1081
+ }
1082
+ },
1083
+ // 修改按钮
1084
+ modifyParam(row) {
1085
+ this.$set('selectItem.f_userinfo_id', row.f_userinfo_id)
1086
+ this.$set('selectItem.f_user_name', row.f_user_name)
1087
+ this.$set('selectItem.f_user_phone', row.f_user_phone)
1088
+ // this.$set('selectItem.f_pcd', row.f_pcd)
1089
+ // this.$set('selectItem.f_slice_area', row.f_slice_area)
1090
+ this.$set('selectItem.f_area', row.f_area)
1091
+ this.$set('selectItem.f_street', row.f_street)
1092
+ this.$set('selectItem.f_residential_area', row.f_residential_area)
1093
+ this.$set('selectItem.f_building', row.f_building)
1094
+ this.$set('selectItem.f_unit', row.f_unit)
1095
+ this.$set('selectItem.f_floor', row.f_floor)
1096
+ this.$set('selectItem.f_room', row.f_room)
1097
+ // this.selectItem.f_cost_type= [row.f_cost_type]
1098
+ // this.selectItem.f_cost_state=[row.f_cost_state]
1099
+ this.$set('selectItem.f_people_num', row.f_people_num)
1100
+ // this.selectItem.f_checker=[row.f_checker]
1101
+ this.selectItem.f_user_state= [row.f_user_state]
1102
+ this.$set('selectItem.version', row.version)
1103
+ this.show = true
1104
+ },
1105
+
1106
+ //获取当前用户表档案信息
1107
+ getUserFiles(row) {
1108
+ this.isShowFiles = true
1109
+ console.log('获取户档案信息')
1110
+
1111
+ let data = {
1112
+ tablename: 't_userfiles',
1113
+ condition: `f_userinfo_id=${row.f_userinfo_id}`
1114
+ }
1115
+ let http = new HttpResetClass()
1116
+ let resGasbrand = http.load('POST', 'rs/sql/singleTable', {data: data}, {
1117
+ resolveMsg: null,
1118
+ rejectMsg: '获取档案信息失败'
1119
+ })
1120
+ self.model.rows = []
1121
+ self.model.rows = res.data
1122
+ },
1123
+ //表档案修改
1124
+ filesModify(row) {
1125
+ this.getPriceInfo()
1126
+ console.log('表档案数据',row)
1127
+ this.$set('selectItem.f_userinfo_id', row.f_userinfo_id)
1128
+ this.$set('selectItem.f_user_id', row.f_user_id)
1129
+ // 表号
1130
+ this.$set('selectItem.f_meternumber', row.f_meternumber)
1131
+ // 表箱号
1132
+ this.$set('selectItem.f_metertitles', row.f_metertitles)
1133
+ // 气表品牌
1134
+ // let data1 = row.f_meter_brand
1135
+ // let array1 = []
1136
+ // let arraydata1 = {
1137
+ // 'label': data1,
1138
+ // 'value': data1
1139
+ // }
1140
+ // array1.push(arraydata1)
1141
+ this.$set('selectItem.f_meter_brand', row.f_meter_brand)
1142
+ // 气表型号
1143
+ // let data2 = row.f_meter_style
1144
+ // let array2 = []
1145
+ // let arraydata2 = {
1146
+ // 'label': data2,
1147
+ // 'value': data2
1148
+ // }
1149
+ // array2.push(arraydata2)
1150
+ this.$set('selectItem.f_meter_style', row.f_meter_style)
1151
+ // 左右表
1152
+ // let data3 = row.f_aroundmeter
1153
+ // let array3 = []
1154
+ // let arraydata3 = {
1155
+ // 'label': data3,
1156
+ // 'value': data3
1157
+ // }
1158
+ // array3.push(arraydata3)
1159
+ this.$set('selectItem.f_aroundmeter', row.f_aroundmeter)
1160
+ // 表状态
1161
+ // console.log("表状态:" + row.f_table_state)
1162
+ // let data4 = row.f_table_state
1163
+ // let array4 = []
1164
+ // let arraydata4 = {
1165
+ // 'label': data4,
1166
+ // 'value': data4
1167
+ // }
1168
+ // array4.push(arraydata4)
1169
+ // this.$set('selectItem.f_table_state', array4)
1170
+ // 气价名称
1171
+ // let data5 = row.f_price_name
1172
+ // let array5 = []
1173
+ // let arraydata5 = {
1174
+ // 'label': data5,
1175
+ // 'value': data5
1176
+ // }
1177
+ // array5.push(arraydata5)
1178
+ this.$set('selectItem.f_price_name', row.f_price_name)
1179
+ // 客户类型
1180
+ this.$set('selectItem.f_user_type', row.f_user_type)
1181
+ // 用气性质
1182
+ this.$set('selectItem.f_gasproperties', row.f_gasproperties)
1183
+ // 价格
1184
+ this.$set('selectItem.f_price', row.f_price)
1185
+ // 气价类型
1186
+ this.$set('selectItem.f_price_type', row.f_price_type)
1187
+ // 气表类型
1188
+ // let data6 = row.f_meter_classify
1189
+ // let array6 = []
1190
+ // let arraydata6 = {
1191
+ // 'label': data6,
1192
+ // 'value': data6
1193
+ // }
1194
+ // array6.push(arraydata6)
1195
+ this.$set('selectItem.f_meter_classify', row.f_meter_classify)
1196
+ // 安装位置
1197
+ // let data7 = row.f_position
1198
+ // let array7 = []
1199
+ // let arraydata7 = {
1200
+ // 'label': data7,
1201
+ // 'value': data7
1202
+ // }
1203
+ // array7.push(arraydata7)
1204
+ this.$set('selectItem.f_position', row.f_position)
1205
+ // 抄表员
1206
+ // let data8 = row.f_inputtor
1207
+ // let array8 = []
1208
+ // let arraydata8 = {
1209
+ // 'label': data8,
1210
+ // 'value': data8
1211
+ // }
1212
+ // array8.push(arraydata8)
1213
+ this.$set('selectItem.f_inputtor', row.f_inputtor)
1214
+ // 通气人
1215
+ this.$set('selectItem.f_gas_person', row.f_gas_person)
1216
+ // 通气时间
1217
+ this.$set('selectItem.f_gas_date', row.f_gas_date)
1218
+ console.log("气表品牌:" + row.f_meter_brand,"气表型号:" + row.f_meter_style)
1219
+ this.$set('selectItem.version', row.version)
1220
+ // this.$set('selectItem.f_meter_base', row.f_meter_base)
1221
+ // this.$set('selectItem.f_heater_gas', row.f_heater_gas)
1222
+ // this.$set('selectItem.f_whether_hairpin', row.f_whether_hairpin)
1223
+ // this.$set('selectItem.f_lossrate', row.f_lossrate)
1224
+ this.addshow = true
1225
+ this.getpricetype()
1226
+
1227
+ },
1228
+ getpricetype(){
1229
+ // console.log('开始获取气价类别')
1230
+ // let condition =`f_user_type = '${this.selectItem.f_user_type}' and f_filiale = '${this.$login.f.f_fengongsi}'
1231
+ // and f_gasproperties = '${this.selectItem.f_gasproperties}'`
1232
+ // this.$resetpost('rs/logic/getRecordItem', {condition}, {resolveMsg: null, rejectMsg: null}).then((res) => {
1233
+ // console.log('获取的选项',res)
1234
+ // let house2 = []
1235
+ // for (let row of res.data.pricetype){
1236
+ // house2.push({label: row.f_price_type,value: row.f_price_type})
1237
+ // }
1238
+ // // this.pricetype = house2
1239
+ // let house = []
1240
+ // for (let row of res.data.meterbrand){
1241
+ // house.push({label: row.f_meter_brand,value: row.f_meter_brand})
1242
+ // }
1243
+ // this.meterbrand = house
1244
+ // let house3 = []
1245
+ // for (let row of res.data.pricename){
1246
+ // house3.push({label: row.f_price_name,value: row.f_price_name})
1247
+ // }
1248
+ // //this.pricename = house3
1249
+ // })
1250
+ },
1251
+ //新增修改或删除提交
1252
+ async confirm() {
1253
+ let http = new HttpResetClass()
1254
+ await http.load('POST', 'rs/logic/recordSave', this.selectItem).then((res) => {
1255
+ this.show = false
1256
+ // 如果没有id,需要在数组中添加
1257
+ this.load()
1258
+ this.selectItem = {}
1259
+ })
1260
+
1261
+ },
1262
+
1263
+ async addconfirm() {
1264
+ if (this.selectItem.f_meternumber == null || this.selectItem.f_meternumber == undefined || this.selectItem.f_meternumber.trim().length == 0){
1265
+ this.$showAlert("表号不能为空","warning", 3000)
1266
+ return
1267
+ }
1268
+ if (this.selectItem.f_metertitles == null || this.selectItem.f_metertitles == undefined || this.selectItem.f_metertitles.trim().length == 0){
1269
+ this.$showAlert("表箱号不能为空","warning", 3000)
1270
+ return
1271
+ }
1272
+ console.log("==========+++++++++=============:" + this.selectItem,"okk:" + JSON.stringify(this.selectItem))
1273
+ if (this.selectItem.f_meter_brand != null){
1274
+ if (this.selectItem.f_meter_brand[0] == null || this.selectItem.f_meter_brand[0] == undefined || this.selectItem.f_meter_brand[0].trim().length == 0){
1275
+ this.$showAlert("气表品牌不能为空","warning", 3000)
1276
+ return
1277
+ }
1278
+ }else {
1279
+ this.$showAlert("气表品牌不能为空","warning", 3000)
1280
+ return
1281
+ }
1282
+ // 气表型号不能为空
1283
+ if (this.selectItem.f_meter_style != null){
1284
+ if (this.selectItem.f_meter_style[0] == null || this.selectItem.f_meter_style[0] == undefined || this.selectItem.f_meter_style[0].trim().length == 0){
1285
+ this.$showAlert("气表型号不能为空","warning", 3000)
1286
+ return
1287
+ }
1288
+ }else {
1289
+ this.$showAlert("气表型号不能为空","warning", 3000)
1290
+ return
1291
+ }
1292
+ // 左右表不能为空
1293
+ if (this.selectItem.f_aroundmeter != null){
1294
+ if (this.selectItem.f_aroundmeter[0] == null || this.selectItem.f_aroundmeter[0] == undefined || this.selectItem.f_aroundmeter[0].trim().length == 0){
1295
+ this.$showAlert("左右表不能为空","warning", 3000)
1296
+ return
1297
+ }
1298
+ }else {
1299
+ this.$showAlert("左右表不能为空","warning", 3000)
1300
+ return
1301
+ }
1302
+
1303
+
1304
+ this.showqueren = false
1305
+ let http = new HttpResetClass()
1306
+ this.$set('selectItem.f_userinfo_id', this.userinfo_id)
1307
+ this.selectItem.f_filiale = this.$login.f.orgs
1308
+ this.selectItem.orgid = this.$login.f.orgid
1309
+ this.selectItem.defname = this.selectdata.defname
1310
+ await http.load('POST', 'rs/logic/addmeterrecord', this.selectItem).then((res) => {
1311
+ this.addshow = false
1312
+ // 如果没有id,需要在数组中添加
1313
+ this.loadfiles()
1314
+ this.selectItem = {}
1315
+ if (res.data.msg != null && res.data.msg != "") {
1316
+ this.$showMessage(res.data.msg)
1317
+ }else {
1318
+ this.$showMessage("修改成功!")
1319
+ }
1320
+ })
1321
+ this.showqueren = true
1322
+ },
1323
+ async updateconfirm(){
1324
+ let http = new HttpResetClass()
1325
+
1326
+ await http.load('POST', 'rs/logic/updatemetrecord', this.selectItem,{resolveMsg: null, rejectMsg: '修改失败'}).then((res) => {
1327
+ this.updateshow = false
1328
+ // 如果没有id,需要在数组中添加
1329
+ this.loadfiles()
1330
+ this.selectItem = {}
1331
+
1332
+ })
1333
+ },
1334
+ userinfoArray(val) {
1335
+ console.log("1213---------------" + val)
1336
+ if (val == null || val == undefined || val.length == 0) {
1337
+ for (let i = 0; i < this.userinfo_array.length; i++) {
1338
+ if (this.userinfo_array[i] != val) {
1339
+ this.userinfo_array.delete(row.f_userinfo_id)
1340
+ }
1341
+ }
1342
+ }else {
1343
+ for (let i = 0; i < this.userinfo_array.length; i++) {
1344
+ if (this.userinfo_array[i] != val) {
1345
+ this.userinfo_array.push(val)
1346
+ }
1347
+ }
1348
+
1349
+ }
1350
+
1351
+ },
1352
+
1353
+ // 关闭模态框
1354
+ close() {
1355
+ this.show = false
1356
+ this.selectItem = {}
1357
+ },
1358
+ },
1359
+ events: {
1360
+ async onFileUpload(file, res) {
1361
+ if (!this.selectdata.f_process_id) {
1362
+ this.$showMessage("数据异常,导入失败")
1363
+ return
1364
+ }
1365
+ if (this.showFile) {
1366
+ this.iswork = true;
1367
+ //档案导入
1368
+ let data = {
1369
+ tablename: 't_userinfo',
1370
+ filepath: res.f_downloadpath,
1371
+ f_area:this.selectdata.f_area,
1372
+ f_slice_area:this.selectdata.f_slice_area,
1373
+ f_street:this.selectdata.f_street,
1374
+ f_residential_area:this.selectdata.f_residential_area,
1375
+ f_process_id: this.selectdata.f_process_id,
1376
+ f_key: this.$login.f.f_orgid,
1377
+ f_orgid: this.selectdata.f_orgid,
1378
+ f_operator:this.$login.f.name,
1379
+ f_operatorid:this.$login.f.id,
1380
+ f_orgname:this.selectdata.f_filiale,
1381
+ f_depid: this.$login.f.depids,
1382
+ f_depname: this.$login.f.deps,
1383
+ f_user_type: this.selectdata.f_user_type,
1384
+ f_gasproperties: this.selectdata.f_gasproperties
1385
+ };
1386
+ console.log('即将转发的数据',data);
1387
+ try{
1388
+ await axios.post('rs/logic/recordImport',
1389
+ data).then((res)=>{
1390
+ if(res.data){
1391
+ this.iswork=false;
1392
+ this.load();
1393
+ this.closeFile();
1394
+ let mm = '';
1395
+ for(var i=0;i<res.data.msg.length;i++){
1396
+ mm+=`${res.data.msg[i].msg}` + " "
1397
+ }
1398
+ let msg = `共导入${res.data.alllength}条,失败${res.data.errorlen}条,失败信息:${mm}`
1399
+ this.$showMessage(msg)
1400
+ }
1401
+ })
1402
+ }catch(e){
1403
+ this.iswork=false;
1404
+ this.$showAlert('导入出错,请检查导入文件模板格式!','danger',2000);
1405
+ }
1406
+ }
1407
+ // 表信息
1408
+ if (this.showInfo) {
1409
+ this.iswork = true;
1410
+ //表信息导入
1411
+ let data = {
1412
+ tablename: 't_userfiles',
1413
+ filepath: res.f_downloadpath,
1414
+ f_process_id: this.selectdata.f_process_id,
1415
+ f_key: this.$login.f.f_orgids,
1416
+ f_operator: this.$login.f.name,
1417
+ f_orgid: this.$login.f.orgid,
1418
+ f_operatorid:this.$login.f.id,
1419
+ f_orgname:this.$login.f.orgs,
1420
+ f_depid: this.$login.f.depids,
1421
+ f_depname: this.$login.f.deps,
1422
+ userinfo_array: this.userinfo_array
1423
+ };
1424
+ console.log('即将转发的数据',data);
1425
+ try{
1426
+ await axios.post('rs/logic/addMeterInfo',
1427
+ data).then((res)=>{
1428
+ if(res.data){
1429
+ this.iswork=false;
1430
+ this.load();
1431
+ this.closeFile();
1432
+ let mm = '';
1433
+ for(var i=0;i<res.data.msg.length;i++){
1434
+ mm+= `${res.data.msg[i].msg}`
1435
+ }
1436
+ let msg = `共导入${res.data.alllength}条,失败${res.data.errorlen}条,失败信息:${mm}`
1437
+ this.$showMessage(msg)
1438
+ }
1439
+ })
1440
+ }catch(e){
1441
+ this.iswork=false;
1442
+ this.$showAlert('导入出错,请检查导入文件模板格式!','danger',2000);
1443
+ }
1444
+ }
1445
+ }
1446
+ }
1447
+ }
1448
+ </script>
1449
+ <style>
1450
+ .recordTable table tr th {
1451
+ font-weight: bold;
1452
+ }
1453
+
1454
+ .recordTable table tr:hover {
1455
+ background-color: rgb(230, 230, 230);
1456
+ }
1457
+ </style>