safecheck-client 3.0.39-4 → 3.0.39-41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +6 -6
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/Widget.vue +13 -13
  49. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  50. package/src/android-bootstrap/less/.csscomb.json +304 -304
  51. package/src/android-bootstrap/less/.csslintrc +19 -19
  52. package/src/android-bootstrap/less/alerts.less +73 -73
  53. package/src/android-bootstrap/less/badges.less +66 -66
  54. package/src/android-bootstrap/less/bootstrap.less +56 -56
  55. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  56. package/src/android-bootstrap/less/button-groups.less +247 -247
  57. package/src/android-bootstrap/less/buttons.less +173 -173
  58. package/src/android-bootstrap/less/carousel.less +269 -269
  59. package/src/android-bootstrap/less/close.less +34 -34
  60. package/src/android-bootstrap/less/code.less +69 -69
  61. package/src/android-bootstrap/less/component-animations.less +33 -33
  62. package/src/android-bootstrap/less/grid.less +84 -84
  63. package/src/android-bootstrap/less/input-groups.less +167 -167
  64. package/src/android-bootstrap/less/jumbotron.less +52 -52
  65. package/src/android-bootstrap/less/labels.less +64 -64
  66. package/src/android-bootstrap/less/list-group.less +141 -141
  67. package/src/android-bootstrap/less/media.less +66 -66
  68. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  69. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  70. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  71. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  72. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  73. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  74. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  75. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  76. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  77. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  78. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  79. package/src/android-bootstrap/less/mixins/image.less +33 -33
  80. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  81. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  82. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  83. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  84. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  85. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  86. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  87. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  88. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  89. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  90. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  91. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  92. package/src/android-bootstrap/less/mixins/size.less +10 -10
  93. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  94. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  95. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  96. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  97. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  98. package/src/android-bootstrap/less/mixins.less +40 -40
  99. package/src/android-bootstrap/less/modals.less +151 -151
  100. package/src/android-bootstrap/less/navbar.less +660 -660
  101. package/src/android-bootstrap/less/navs.less +290 -290
  102. package/src/android-bootstrap/less/normalize.less +424 -424
  103. package/src/android-bootstrap/less/pager.less +76 -76
  104. package/src/android-bootstrap/less/pagination.less +89 -89
  105. package/src/android-bootstrap/less/panels.less +274 -274
  106. package/src/android-bootstrap/less/popovers.less +131 -131
  107. package/src/android-bootstrap/less/print.less +101 -101
  108. package/src/android-bootstrap/less/progress-bars.less +87 -87
  109. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  110. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  111. package/src/android-bootstrap/less/scaffolding.less +161 -161
  112. package/src/android-bootstrap/less/tables.less +262 -262
  113. package/src/android-bootstrap/less/theme.less +291 -291
  114. package/src/android-bootstrap/less/thumbnails.less +36 -36
  115. package/src/android-bootstrap/less/tooltip.less +102 -102
  116. package/src/android-bootstrap/less/type.less +303 -303
  117. package/src/android-bootstrap/less/utilities.less +55 -55
  118. package/src/android-bootstrap/less/variables.less +896 -896
  119. package/src/android-bootstrap/less/wells.less +29 -29
  120. package/src/assets//345/256/232/344/275/215.png +0 -0
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/grid.less +84 -84
  134. package/src/bootstrap/less/input-groups.less +167 -167
  135. package/src/bootstrap/less/jumbotron.less +52 -52
  136. package/src/bootstrap/less/labels.less +64 -64
  137. package/src/bootstrap/less/list-group.less +141 -141
  138. package/src/bootstrap/less/media.less +66 -66
  139. package/src/bootstrap/less/mixins/alerts.less +14 -14
  140. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  141. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  142. package/src/bootstrap/less/mixins/buttons.less +69 -69
  143. package/src/bootstrap/less/mixins/center-block.less +7 -7
  144. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  145. package/src/bootstrap/less/mixins/forms.less +90 -90
  146. package/src/bootstrap/less/mixins/gradients.less +59 -59
  147. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  148. package/src/bootstrap/less/mixins/grid.less +122 -122
  149. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  150. package/src/bootstrap/less/mixins/image.less +33 -33
  151. package/src/bootstrap/less/mixins/labels.less +12 -12
  152. package/src/bootstrap/less/mixins/list-group.less +30 -30
  153. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  154. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  155. package/src/bootstrap/less/mixins/opacity.less +8 -8
  156. package/src/bootstrap/less/mixins/pagination.less +24 -24
  157. package/src/bootstrap/less/mixins/panels.less +24 -24
  158. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  159. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  160. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  161. package/src/bootstrap/less/mixins/resize.less +6 -6
  162. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  163. package/src/bootstrap/less/mixins/size.less +10 -10
  164. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  165. package/src/bootstrap/less/mixins/table-row.less +44 -44
  166. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  167. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  168. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  169. package/src/bootstrap/less/mixins.less +40 -40
  170. package/src/bootstrap/less/modals.less +151 -151
  171. package/src/bootstrap/less/navbar.less +660 -660
  172. package/src/bootstrap/less/normalize.less +424 -424
  173. package/src/bootstrap/less/pagination.less +89 -89
  174. package/src/bootstrap/less/panels.less +275 -275
  175. package/src/bootstrap/less/popovers.less +131 -131
  176. package/src/bootstrap/less/print.less +101 -101
  177. package/src/bootstrap/less/progress-bars.less +87 -87
  178. package/src/bootstrap/less/responsive-embed.less +35 -35
  179. package/src/bootstrap/less/responsive-utilities.less +194 -194
  180. package/src/bootstrap/less/scaffolding.less +161 -161
  181. package/src/bootstrap/less/theme.less +291 -291
  182. package/src/bootstrap/less/thumbnails.less +36 -36
  183. package/src/bootstrap/less/tooltip.less +102 -102
  184. package/src/bootstrap/less/type.less +303 -303
  185. package/src/bootstrap/less/utilities.less +55 -55
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/FileUpload.vue +696 -696
  188. package/src/components/Hello.vue +39 -39
  189. package/src/components/LeftTree.vue +27 -27
  190. package/src/components/android/AndroidDefectDeal.vue +2 -2
  191. package/src/components/android/AreaPlan.vue +567 -567
  192. package/src/components/android/AttendanceTally.vue +116 -116
  193. package/src/components/android/Blank.vue +10 -10
  194. package/src/components/android/CheckUnplanPage.vue +56 -56
  195. package/src/components/android/Checker.vue +12 -12
  196. package/src/components/android/CheckerAnnual.vue +81 -81
  197. package/src/components/android/CheckerAvarta.vue +82 -82
  198. package/src/components/android/EquipmentInspection.vue +348 -348
  199. package/src/components/android/FootprintMap.vue +120 -120
  200. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  201. package/src/components/android/MasterMain.vue +77 -77
  202. package/src/components/android/Menu.vue +132 -132
  203. package/src/components/android/PaperAlarm.vue +85 -85
  204. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  205. package/src/components/android/PlumberAnnual.vue +83 -83
  206. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  207. package/src/components/android/PlumberMonthly.vue +84 -84
  208. package/src/components/android/PostMap.vue +83 -83
  209. package/src/components/android/QueryCheckHistory.vue +122 -122
  210. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  211. package/src/components/android/RepairMain.vue +60 -60
  212. package/src/components/android/Repairman.vue +12 -12
  213. package/src/components/android/SafecheckOrderV.vue +1 -1
  214. package/src/components/android/StationMaster.vue +12 -12
  215. package/src/components/defects/DefectModal.vue +101 -101
  216. package/src/components/defects/DevicesAndItem.vue +39 -39
  217. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  218. package/src/components/notice/NoticeForm.vue +100 -100
  219. package/src/components/notice/NoticeIssue.vue +20 -20
  220. package/src/components/paper/PicViewer.vue +18 -18
  221. package/src/components/pc/AddPlanItemYyChange.vue +5 -1
  222. package/src/components/pc/SafeCheckOrder/SafeCheckOrderList.vue +34 -0
  223. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  224. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  225. package/src/components/phonestate/PostMap.vue +82 -82
  226. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  227. package/src/components/userfile/MeterFile.vue +145 -145
  228. package/src/components/userfile/MeterModify.vue +46 -46
  229. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  230. package/src/filiale/BFshiye/android/PhoneUpUserinfo.vue +3 -1
  231. package/src/filiale/BFshiye/android/SafecheckUserInfo.vue +2 -8
  232. package/src/filiale/bayan/pc/NewCheckpaper.vue +2 -2
  233. package/src/filiale/bayan/pc/SelectAreaReport.vue +1 -0
  234. package/src/filiale/bayan/pc/SummaryOfSecurityInspectionProgress.vue +7 -7
  235. package/src/filiale/dexin/android/AreaPlan.vue +567 -567
  236. package/src/filiale/dexin/android.js +21 -21
  237. package/src/filiale/hanzhong/pc/CheckHiddenDanger.vue +2 -2
  238. package/src/filiale/hanzhong/pc/CheckNumberStatistics.vue +1 -1
  239. package/src/filiale/hanzhong/pc/CheckSafeDetail.vue +6 -1
  240. package/src/filiale/hanzhong/pc/CheckSafeStatus.vue +1 -1
  241. package/src/filiale/hanzhong/pc/CheckerSafeDetail.vue +1 -1
  242. package/src/filiale/huatong/android/SafecheckOrderV.vue +2 -2
  243. package/src/filiale/jinhuang/android/AddPlanItem.vue +430 -0
  244. package/src/filiale/jinhuang/android/PhoneUpUserinfo.vue +1289 -1252
  245. package/src/filiale/jinhuang/android.js +2 -1
  246. package/src/filiale/kelai/android/PaperFeedback.vue +1384 -1370
  247. package/src/filiale/kelai/android/PhoneUpUserinfo.vue +1 -1
  248. package/src/filiale/kelai/android/SafecheckOrderV.vue +1 -1
  249. package/src/filiale/kelai/android/SafecheckUserInfo.vue +1 -1
  250. package/src/filiale/kelai/pc/PaperList.vue +609 -596
  251. package/src/filiale/kelai/pc/UserInfoAudit.vue +126 -90
  252. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +7 -7
  253. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +110 -38
  254. package/src/filiale/qingjian/android/SafecheckDevices.vue +1 -1
  255. package/src/filiale/qingjian/android/SafecheckOrderV.vue +3 -0
  256. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +42 -19
  257. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1 -0
  258. package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -0
  259. package/src/filiale/rongchuang/android/SafecheckDevices.vue +1 -1
  260. package/src/filiale/rongchuang/android.js +1 -0
  261. package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -0
  262. package/src/filiale/rongchuang/pc.js +1 -0
  263. package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +57 -24
  264. package/src/filiale/siyang/android/SafecheckDevices.vue +1 -1
  265. package/src/filiale/siyang/android/SafecheckUserInfo.vue +8 -2
  266. package/src/filiale/tongchuan/android/SafecheckDevices.vue +909 -885
  267. package/src/filiale/tongchuan/pc/AMapTrailShowZk.vue +226 -0
  268. package/src/filiale/tongchuan/pc/CheckSearchUser.vue +47 -1
  269. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +46 -0
  270. package/src/filiale/tongchuan/pc/NoCheckplanSafecheck.vue +34 -0
  271. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +34 -0
  272. package/src/filiale/tongchuan/pc/PaperList.vue +44 -10
  273. package/src/filiale/tongchuan/pc/PersonTrack.vue +269 -0
  274. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +42 -2
  275. package/src/filiale/tongchuan/pc.js +2 -0
  276. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2682 -2682
  277. package/src/filiale/wuan/android/SafecheckOrderV.vue +2242 -2242
  278. package/src/filiale/wuan/android/SafecheckUserInfo.vue +659 -655
  279. package/src/filiale/wuan/pc/NewCheckpaper.vue +1184 -1184
  280. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +3 -3
  281. package/src/plugins/LoadData.js +10 -10
  282. package/src/plugins/LoadParams.js +24 -24
  283. package/src/stores/wxconfig.js +10 -10
  284. package/src/utils/getNowDate.js +33 -33
  285. package/test/e2e/custom-assertions/elementCount.js +26 -26
  286. package/test/e2e/nightwatch.conf.js +40 -40
  287. package/test/e2e/runner.js +30 -30
  288. package/test/e2e/specs/test.js +13 -13
  289. package/test/unit/.eslintrc +5 -5
  290. package/test/unit/TestUtil.js +62 -62
  291. package/test/unit/context.html +20 -20
  292. package/test/unit/index.js +13 -13
@@ -1,1252 +1,1289 @@
1
- <template>
2
- <work-busy :is-busy="excessive"></work-busy>
3
- <div style="height: 100%">
4
- <div class="panel auto">
5
- <div class="panel-heading" @click="selectVal('基本信息')" style="background-color: #ffffff">
6
- <span class="spanboder">
7
- <img src="../../../assets/person.png" style="width: 22px;margin-right: 8px;">基本信息
8
- <img class="butt3" :src="imgback('基本信息')">
9
- </span>
10
- </div>
11
- <div class="panel-body " id="upuserinfo_sel" v-show="headername=='基本信息'">
12
- <div class="row auto" style="margin: 5px 0">
13
- <label class="righttxt">用户编号:</label>
14
- <input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_userinfo_code" readonly/>
15
- </div>
16
- <div class="row auto" style="margin: 5px 0">
17
- <label class="righttxt">用户名称:</label><input type="text" class="form-control rightipt"
18
- v-model="userinfo.baseinfo.base.f_user_name" readonly/>
19
- </div>
20
- <div class="row auto" style="margin: 5px 0">
21
- <label class="righttxt">身份证号:</label><input type="text" class="form-control rightipt"
22
- v-model="userinfo.baseinfo.base.f_idnumber" />
23
- </div>
24
- <div class="row auto" style="margin: 5px 0">
25
- <label class="righttxt">用户状态:</label><input type="text" class="form-control rightipt" readonly
26
- v-model="userinfo.baseinfo.base.f_user_state"/>
27
- </div>
28
- <div class="row auto" style="margin: 5px 0">
29
- <label class="righttxt">用户电话:</label><input type="text" class="form-control rightipt"
30
- v-model="userinfo.baseinfo.base.f_user_phone"/>
31
- </div>
32
- <div class="row auto" style="margin: 5px 0">
33
- <label class="righttxt">租户姓名:</label><input type="text" class="form-control rightipt"
34
- v-model="userinfo.baseinfo.base.f_rent_name"/>
35
- </div>
36
- <div class="row auto" style="margin: 5px 0">
37
- <label class="righttxt">租户电话:</label><input type="text" class="form-control rightipt"
38
- v-model="userinfo.baseinfo.base.f_zuhu_phone"/>
39
- </div>
40
- <div class="row auto" style="margin: 5px 0">
41
- <label class="righttxt">建档日期:</label><input type="text" class="form-control rightipt"
42
- v-model="userinfo.baseinfo.base.f_createfile_date" readonly/>
43
- </div>
44
- <!-- <div class="row auto" style="margin: 5px 0">
45
- <label class="righttxt">开户日期:</label><input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_open_date" readonly />
46
- </div>-->
47
- <div class="row auto" style="margin: 5px 0">
48
- <label class="righttxt">地址类型:</label>
49
- <div class="rightipt" style="display: flex;justify-content: space-around;margin-top: 5px">
50
- <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
51
- id="phone_addressType1" value="普通地址"/><label style="font-weight: normal;padding-left: 2px"
52
- for="phone_addressType1">普通地址</label></div>
53
- <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
54
- id="phone_addressType2" value="特殊地址"/><label style="font-weight: normal;padding-left: 2px"
55
- for="phone_addressType2">特殊地址</label></div>
56
- </div>
57
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
58
- <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
59
- <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
60
- :width="'60%'"
61
- v-model="userinfo.addressinfo.f_iscity"
62
- :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single @change="area_change()"></v-select>-->
63
- </div>
64
- <div class="row auto" style="margin: 5px 0">
65
- <label class="righttxt">地区类型:</label>
66
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
67
- <input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_iscity"/>
68
- <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
69
- :width="'60%'"
70
- :disabled="true"
71
- v-model="userinfo.addressinfo.f_iscity"
72
- :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single ></v-select>-->
73
- </div>
74
- <div class="row auto" style="margin: 5px 0">
75
- <label class="righttxt">省&ensp;市&ensp;区:</label>
76
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
77
- <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
78
- <v-select :value.sync="selectPcd" class="input-font" style="margin-left: 5%;"
79
- :width="'60%'"
80
- v-model="selectPcd"
81
- :options='pcds' placeholder='请选择省市区' close-on-select clear-button value-single
82
- @change="pcd_change()"></v-select>
83
- </div>
84
- <div class="row auto" style="margin: 5px 0">
85
- <label class="righttxt">街道名称:</label>
86
- <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_street" />-->
87
- <v-select :value.sync="selectStreet" class="input-font" style="margin-left: 5%;"
88
- :width="'60%'"
89
- v-model="selectStreet"
90
- :options='streets' placeholder='请选择街道' close-on-select clear-button value-single
91
- @change="street_change()"></v-select>
92
- </div>
93
- <div class="row auto" style="margin: 5px 0">
94
- <label class="righttxt">集收单位:</label>
95
- <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />-->
96
- <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;"
97
- :width="'60%'"
98
- v-model="selectArea"
99
- :timeout="500"
100
- @select-search="select_search"
101
- :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single
102
- @change="area_change()"></v-select>
103
- </div>
104
- <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
105
- <label class="righttxt">集收单位:</label>
106
- &lt;!&ndash;<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />&ndash;&gt;
107
- <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;"
108
- :width="'60%'"
109
- v-model="selectArea"
110
- @select-search="select_search"
111
- :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single @change="area_changeTC()"></v-select>
112
- </div>-->
113
- <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
114
- <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;号:</label><input type="text" @change="changeNewAddress"
115
- class="form-control rightipt"
116
- v-model="userinfo.addressinfo.f_building"/>
117
- </div>
118
- <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
119
- <label class="righttxt">单&ensp;&ensp;&ensp;&ensp;元:</label><input type="text" @change="changeNewAddress"
120
- class="form-control rightipt"
121
- v-model="userinfo.addressinfo.f_unit"/>
122
- </div>
123
- <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
124
- <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;层:</label><input type="text" @change="changeNewAddress"
125
- class="form-control rightipt"
126
- v-model="userinfo.addressinfo.f_floor"/>
127
- </div>
128
- <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
129
- <label class="righttxt">门&ensp;牌&ensp;号:</label><input type="text" @change="changeNewAddress"
130
- class="form-control rightipt"
131
- v-model="userinfo.addressinfo.f_room"/>
132
- </div>
133
- <div class="row auto" style="margin: 5px 0">
134
- <label class="righttxt">详细地址:</label><input type="text" class="form-control rightipt" readonly
135
- v-model="userinfo_old.addressinfo.f_address"/>
136
- </div>
137
- <div class="row auto" style="margin: 5px 0">
138
- <label class="righttxt">新&ensp;地&ensp;址:</label>
139
- <!--<input type="text" class="form-control rightipt" readonly v-model="getaddress()" />-->
140
- <textarea :readonly="addressType=='普通地址'" class="form-control rightipt" : style="height: 80px"
141
- v-model="userinfo.addressinfo.f_address"></textarea>
142
- </div>
143
-
144
- <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
145
- <label class="righttxt">新&ensp;地&ensp;址:</label>&lt;!&ndash;<input type="text" class="form-control rightipt" v-model="userinfo.addressinfo.f_address" />&ndash;&gt;
146
- <textarea class="form-control rightipt" style="height: 80px" v-model="getAddressTS"></textarea>
147
- </div>-->
148
-
149
- <div class="row auto" style="margin: 5px 0">
150
- <label class="righttxt">备&ensp;&ensp;&ensp;&ensp;注:</label><textarea class="form-control rightipt"
151
- style="height: 150px"
152
- v-model="userinfo.baseinfo.base.f_remark"></textarea>
153
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_remark" />-->
154
- </div>
155
- </div>
156
- </div>
157
- <div class="panel auto">
158
- <div class="panel-heading" @click="selectVal('表具信息')" style="background-color: #ffffff">
159
- <span class="spanboder">
160
- <img src="../../../assets/person.png" style="width: 22px;margin-right: 8px;">表具信息
161
- <img class="butt3" :src="imgback('表具信息')">
162
- </span>
163
- </div>
164
- <div class="panel-body " v-show="headername=='表具信息'">
165
- <div class="row auto" style="margin: 5px 0">
166
- <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;号:</label>
167
- <input type="text" :readonly="!(userinfo.meterinfo[0].f_meter_classify=='金额卡表' || userinfo.meterinfo[0].f_meter_classify=='气量卡表')" class="form-control rightipt"
168
- style="width: 45%" v-model="userinfo.meterinfo[0].f_meternumber"/>
169
- <button type="button"
170
- :disabled="!(userinfo.meterinfo[0].f_meter_classify=='金额卡表' || userinfo.meterinfo[0].f_meter_classify=='气量卡表')"
171
- name="button" class="btn btn-primary" style="width: 15%" @click="scan">扫码
172
- </button>
173
- </div>
174
-
175
- <!--<div class="row auto" style="margin: 5px 0" v-if="userinfo.meterinfo[0].f_meter_classify=='机表'">
176
- <div class="auto">
177
- <div class="panel" style="padding: 0px 15px 5px 10px;">
178
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
179
- <div class="row" style="height: 240px;">
180
- <div class="col-sm-4">
181
- <img-self :src="f_meterno_path" alt="表号照片" width="150" height="200"></img-self>
182
- </div>
183
- </div>
184
- <div class="row text-right div-photo" :class="style__">
185
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_meterno_path', '表号照片')">拍照</button>
186
- <img src="../../../assets/remove.png" :class="style__" @click="delfile('f_meterno_path', this.f_meterno_path)" style="width: 25%;"></img>
187
- </div>
188
- </div>
189
- </div>
190
- </div>
191
- </div>-->
192
- <div class="row auto" style="margin: 5px 0">
193
- <label class="righttxt">通&ensp;气&ensp;人:</label>
194
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_gas_person"/>
195
- </div>
196
- <div class="row auto" style="margin: 5px 0">
197
- <label class="righttxt">通气时间:</label>
198
- <datepicker class="rightipt"
199
- :value.sync="userinfo.meterinfo[0].f_gas_date"
200
- v-model="userinfo.meterinfo[0].f_gas_date"
201
- :disabled-days-of-Week="[]"
202
- :format="'yyyy-MM-dd'"
203
- :show-reset-button="reset">
204
- </datepicker>
205
- </div>
206
- <div class="row auto" style="margin: 5px 0" v-show="showBox">
207
- <label class="righttxt">调&ensp;压&ensp;箱:</label>
208
- <v-select class="rightipt"
209
- :value.sync="userinfo.meterinfo[0].f_adjustable_id"
210
- v-model="userinfo.meterinfo[0].f_adjustable_id"
211
- placeholder='请选择'
212
- :width='wid'
213
- readonly
214
- :options="boxOptions"
215
- close-on-select value-single></v-select>
216
- </div>
217
- <div class="row auto" style="margin: 5px 0">
218
- <label class="righttxt">是否直通:</label>
219
- <v-select
220
- :value.sync="userinfo.meterinfo[0].f_if_direct"
221
- class="input-font"
222
- style="margin-left: 5%;"
223
- :width="'60%'"
224
- v-model="userinfo.meterinfo[0].f_if_direct"
225
- :options='directOptions'
226
- placeholder='是否直通'
227
- close-on-select
228
- clear-button
229
- value-single>
230
- </v-select>
231
- </div>
232
- <div class="row auto" style="margin: 5px 0">
233
- <label class="righttxt">表&ensp;封&ensp;号:</label>
234
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_metertitles"/>
235
- </div>
236
- <div class="row auto" style="margin: 5px 0">
237
- <label class="righttxt">表&ensp;位&ensp;置:</label>
238
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
239
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_position"
240
- v-model="userinfo.meterinfo[0].f_position"
241
- placeholder='请选择'
242
- :width='wid'
243
- readonly
244
- :options="wz_types"
245
- close-on-select value-single></v-select>
246
- </div>
247
- <div class="row auto" style="margin: 5px 0">
248
- <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;向:</label>
249
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
250
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_aroundmeter"
251
- v-model="userinfo.meterinfo[0].f_aroundmeter"
252
- placeholder='请选择'
253
- :width='wid'
254
- readonly
255
- :options="aroundmeters"
256
- close-on-select value-single></v-select>
257
- </div>
258
- <div class="row auto" style="margin: 5px 0">
259
- <label class="righttxt">气表类型:</label>
260
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_meter_classify" readonly/>
261
- </div>
262
- <div class="row auto" style="margin: 5px 0">
263
- <label class="righttxt">表前阀状态:</label>
264
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
265
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_bqf_state"
266
- v-model="userinfo.meterinfo[0].f_bqf_state"
267
- placeholder='请选择'
268
- :width='wid'
269
- readonly
270
- :options="bqf_states"
271
- close-on-select value-single></v-select>
272
- </div>
273
- <!-- <div class="row auto" style="margin: 5px 0">
274
- <div style="display: flex;justify-content: center;">
275
- <button v-if="userinfo.meterinfo[0].f_meter_classify=='机表'" class="col-sm-3 btn btn-primary" @click="upUserState()">机表关阀停用</button>
276
- </div>
277
- </div>-->
278
- </div>
279
- </div>
280
- <div class="panel auto">
281
- <div class="panel-heading" @click="selectVal('设备信息')" style="background-color: #ffffff">
282
-
283
- <span class="spanboder"><img src="../../../assets/list.png" style="width: 22px;margin-right: 8px;">设备信息<img
284
- class="butt3" :src="imgback('设备信息')"></span>
285
- </div>
286
- <div class="panel-body" v-show="headername=='设备信息'">
287
- <div class="row" v-for="row in model"
288
- style="border:2px solid #A2C2EB; border-top:10px solid #A2C2EB; box-shadow: #00b3ee;margin-bottom: 10px">
289
- <div class="row auto" style="margin: 5px 0">
290
- <label class="righttxt">设备类型:</label>
291
- <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
292
- <v-select class="rightipt" :value.sync="row.f_devices_type"
293
- v-model="row.f_devices_type"
294
- placeholder='请选择'
295
- :width='wid'
296
- readonly
297
- :options="devices_types"
298
- close-on-select value-single></v-select>
299
- </div>
300
- <div class="row auto" style="margin: 5px 0">
301
- <label class="righttxt">设备品牌:</label>
302
- <v-select class="rightipt" :value.sync="row.f_brand"
303
- v-model="row.f_brand"
304
- placeholder='请选择'
305
- :width='wid'
306
- readonly
307
- :options="deviceBrandOption[row.f_devices_type]"
308
- close-on-select value-single></v-select>
309
- </div>
310
- <div class="row auto" style="margin: 5px 0">
311
- <label class="righttxt">设备型号:</label><input type="text" class="form-control rightipt"
312
- v-model="row.f_devices_model"/>
313
- </div>
314
- <div class="row auto" style="margin: 5px 0">
315
- <label class="righttxt">生产日期:</label>
316
- <!--<input type="text" class="form-control rightipt" v-model="row.f_make_date" />-->
317
- <datepicker class="rightipt"
318
- :value.sync="row.f_make_date"
319
- v-model="row.f_make_date"
320
- :disabled-days-of-Week="[]"
321
- :format="'yyyy-MM-dd'"
322
- :show-reset-button="reset" readonly="readonly">
323
- </datepicker>
324
- </div>
325
- <div class="row auto" style="margin: 5px 0">
326
- <label class="righttxt">使用年限:</label><input type="number" class="form-control rightipt"
327
- v-model="row.f_service_life"/>
328
- </div>
329
- <!-- <div class="row auto" style="margin: 5px 0">
330
- <label class="righttxt">到期日期:</label>
331
- &lt;!&ndash;<input type="text" class="form-control rightipt" v-model="row.f_expire_date" />&ndash;&gt;
332
- <datepicker class="rightipt"
333
- :value.sync="row.f_expire_date"
334
- v-model="row.f_expire_date"
335
- :disabled-days-of-Week="[]"
336
- :format="'yyyy-MM-dd'"
337
- :show-reset-button="reset" readonly="readonly">
338
- </datepicker>
339
- </div>-->
340
- <div class="row auto" style="margin: 5px 0">
341
- <label class="righttxt">安&ensp;装&ensp;人:</label><input type="text" class="form-control rightipt"
342
- v-model="row.f_input_person"/>
343
- </div>
344
- <div class="row auto" style="margin: 5px 0">
345
- <label class="righttxt">安装日期:</label>
346
- <!--<input type="text" class="form-control rightipt" v-model="row.f_input_date" />-->
347
- <datepicker class="rightipt"
348
- :value.sync="row.f_input_date"
349
- v-model="row.f_input_date"
350
- :disabled-days-of-Week="[]"
351
- :format="'yyyy-MM-dd'"
352
- :show-reset-button="reset" readonly="readonly">
353
- </datepicker>
354
- </div>
355
- <div class="row auto" style="margin: 5px 0">
356
- <label class="righttxt">设备数量:</label><input type="number" class="form-control rightipt"
357
- v-model="row.f_devices_num"/>
358
- </div>
359
- <!--<div class="row auto" style="margin: 5px 0">
360
- <label class="righttxt">管道类型:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_pipe_type" />
361
- </div>-->
362
- <!--<div class="row auto" style="margin: 5px 0">
363
- <label class="righttxt">设备状态:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_userinfodevices_state" />
364
- </div>-->
365
- <!--<div class="row auto" style="margin: 5px 0">
366
- <label class="righttxt">购买方式:</label><input type="text" class="form-control rightipt" readonly v-model="row.watchpurchase" />
367
- </div>-->
368
- <div style="display: flex;justify-content: center;margin-bottom: 3px"
369
- v-if="$index>this.userinfo_old.devicesinfo.length-1 || this.userinfo_old.devicesinfo.length==0">
370
- <button class="btn btn-warning" @click="delDevices($index)">删除设备</button>
371
- </div>
372
- </div>
373
- <div style="display: flex;justify-content: space-around;">
374
- <button class="col-sm-3 btn btn-primary" @click="addDevices($index)">新增设备</button>
375
- </div>
376
- </div>
377
- </div>
378
- <div class="panel auto">
379
- <div class="panel-body">
380
- <div style="display: flex;justify-content: center;">
381
- <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="isNeedAudit ? editUserInfo() : editUserInfoNoAudit()">{{isNeedAudit ? '上传审核' : '上传'}}</button>
382
- </div>
383
- </div>
384
- </div>
385
- </div>
386
- </template>
387
-
388
- <script>
389
- import {HttpResetClass} from 'vue-client'
390
- import * as Util from "../../Util";
391
- import Vue from 'vue'
392
-
393
- export default {
394
- title: '设备查看',
395
- data() {
396
- return {
397
- model: [],
398
- show: false,
399
- row: Object,
400
- userinfo: Object,
401
- userinfo_old: Object,
402
- wid: "60%",
403
- aroundmeters: [],
404
- devices_types: [],
405
- pipe_types: [{label: '橡胶管', value: '橡胶管'}, {label: '波纹管', value: '波纹管'}, {label: '钢管', value: '钢管'}],
406
- wz_types: [],
407
- cityTypes: [{label: '市区', value: '市区'}, {label: '城镇', value: '城镇'}],
408
- bqf_states: [{label: '开阀', value: '开阀'}, {label: '关阀', value: '关阀'}],
409
- pcds: [],
410
- streets: [],
411
- update: false,
412
- headername: '基本信息',
413
- excessive: false,
414
- area: [],
415
- enable: false,
416
- f_meterno_path: Vue.nopic,
417
- selectArea: {id: ''},
418
- selectPcd: {id: ''},
419
- selectStreet: {id: ''},
420
- changemeterno: false,//是否修改了机表表号
421
- approveChange: false,//是否需要进行信息变更审核
422
- newAddress: '',
423
- addressType: '',
424
- //需要审核的字段
425
- checkField: {
426
- checkUserinfoField: [
427
- 'f_user_name'
428
- ],
429
- // checkUserFilesField: [
430
- // 'f_meternumber'
431
- // ],
432
- checkAddressField: [
433
- 'f_pcd_id',
434
- 'f_street_id',
435
- 'f_residential_area_id',
436
- 'f_building',
437
- 'f_unit',
438
- 'f_floor',
439
- 'f_room',
440
- 'f_slice_area',
441
- 'f_special',
442
- 'f_address'
443
- ],
444
- },
445
- boxOptions: [],
446
- showBox: false,
447
- directOptions: [{label: '是', value: '是'}, {label: '否', value: '否'}],
448
- deviceBrandOption: {},
449
- isNeedAudit: this.$appdata.getSingleValue('信息变更是否需要审核') == 'false' ? false : true
450
- }
451
- },
452
- props: {
453
- user: {
454
- type: Object
455
- },
456
- f_userinfo_id: '',
457
- f_source: ''
458
- },
459
- methods: {
460
- scan() {
461
- HostApp.__this__ = this,
462
- HostApp.scanCode({callback: "javascript:HostApp.__this__.getCode();"})
463
- },
464
- getCode() {
465
- var datapa = HostApp.getCode().data;
466
- //tag
467
- this.userinfo.meterinfo[0].f_meternumber = datapa
468
- },
469
- //数据检查
470
- checkVal() {
471
- //检查一些必要信息是否未填
472
- this.approveChange = false
473
- this.changemeterno = false
474
- let checked = {ischeck: true, msg: ''}
475
- //tag
476
- //tag
477
- //tag
478
- if (!this.userinfo.baseinfo.base.f_user_name) {
479
- checked = {ischeck: false, msg: '请输入用户名称!'}
480
- }
481
- if (!this.selectPcd.id) {
482
- checked = {ischeck: false, msg: '请选择省市区!'}
483
- }
484
- if (!this.selectStreet.id) {
485
- checked = {ischeck: false, msg: '请选择街道!'}
486
- }
487
- if (!this.userinfo.addressinfo.f_address) {
488
- checked = {ischeck: false, msg: '新地址不能为空!'}
489
- }
490
- if (this.addressType == '普通地址') {
491
- if (!this.selectArea.id) {
492
- checked = {ischeck: false, msg: '请选择集收单位!'}
493
- }
494
- if (!this.userinfo.addressinfo.f_room) {
495
- checked = {ischeck: false, msg: '新输入门牌号!'}
496
- }
497
- }
498
- if (this.userinfo.meterinfo[0].f_meter_classify == '机表' && this.userinfo_old.meterinfo[0].f_meternumber) {
499
-
500
- //tag
501
- //tag
502
- if (this.userinfo.meterinfo[0].f_meternumber) {
503
- // if (this.userinfo.meterinfo[0].f_meternumber != this.userinfo_old.meterinfo[0].f_meternumber) {
504
- // if (!this.f_meterno_path || this.f_meterno_path == Vue.nopic) {
505
- // checked = {ischeck: false, msg: '请拍摄表号照片!'}
506
- // } else {
507
- // //用来标识当前有修改机表表号,后台需要进行照片上传
508
- // this.changemeterno = true
509
- // }
510
- // }
511
- } else {
512
- checked = {ischeck: false, msg: '请输入表号!'}
513
- }
514
- }
515
- //检查本次修改信息中是否包含需要审核的内容
516
- for (let check in this.checkField) {
517
- //tag
518
- if (typeof check != 'function') {
519
- for (let i = 0; i < this.checkField[check].length; i++) {
520
- //tag
521
- if (check == 'checkUserinfoField') {
522
- //tag
523
- //tag
524
- if (this.userinfo.baseinfo.base[this.checkField[check][i]] != this.userinfo_old.baseinfo.base[this.checkField[check][i]]) {
525
- //tag
526
- this.approveChange = true
527
- }
528
- } else if (check == 'checkUserFilesField') {
529
- //tag
530
- //tag
531
- if (this.userinfo.meterinfo[0][this.checkField[check][i]] != this.userinfo_old.meterinfo[0][this.checkField[check][i]]) {
532
- //tag
533
- this.approveChange = true
534
- }
535
- } else if (check == 'checkAddressField') {
536
- //tag
537
- //tag
538
- if (this.userinfo.addressinfo[this.checkField[check][i]] != this.userinfo_old.addressinfo[this.checkField[check][i]]) {
539
- //tag
540
- this.approveChange = true
541
- }
542
- }
543
- }
544
- }
545
- }
546
- //tag
547
- return checked
548
- },
549
- select_search(text) {
550
- //tag
551
- if (this.selectStreet && this.selectStreet.id) {
552
- let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
553
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
554
- data: {
555
- items: "*",
556
- tablename: "t_area",
557
- orderitem: "id",
558
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
559
- }
560
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
561
- //tag)
562
- if (res.data.length > 0) {
563
- this.area = []
564
- res.data.forEach((result) => {
565
- this.area.push({label: result.f_residential_area, value: result})
566
- })
567
- }
568
- })
569
- } else {
570
- this.area = []
571
- }
572
- },
573
- cameraCallBack(prop, fileName) {
574
- HostApp.__this__.$set(prop, fileName + '?' + Math.random())
575
- //tag
576
- HostApp.__callback__ = null
577
- HostApp.__this__ = null
578
- },
579
- takePic(prop, title) {
580
- HostApp.__callback__ = this.cameraCallBack
581
- HostApp.__this__ = this
582
- //tag
583
- let fileName
584
- if (!this[prop] || this[prop].includes("nopic.png")) {
585
- fileName = Util.guid() + '-' + prop + '.jpg'
586
- } else {
587
- fileName = Util.getFileName(this[prop])
588
- }
589
- HostApp._open_a_page({
590
- type: 'boomerang',
591
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
592
- param: {
593
- file: fileName,
594
- requestCode: 111,
595
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
596
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
597
- }
598
- })
599
- },
600
- delfile(prop, fileName) {
601
- if (fileName == Vue.nopic)
602
- return
603
- else {
604
- HostApp.delfile(fileName)
605
- this[prop] = Vue.nopic
606
- }
607
- },
608
- editUserInfoNoAudit() {
609
- let checked = this.checkVal()
610
- if (!checked.ischeck) {
611
- this.$showMessage(checked.msg)
612
- return
613
- }
614
- for (let i = 0; i < this.model.length; i++) {
615
- this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
616
- }
617
- this.$showMessage('确定是否修改上传用户信息?', ['confirm', 'cancel']).then((res) => {
618
- if (res === 'confirm') {
619
- this.excessive = true
620
- let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
621
- // userinfoms.f_user_name=row.f_user_name
622
- userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
623
- userinfoms.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
624
- userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
625
- userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
626
- userinfoms.f_operator_record = Vue.user.name
627
- userinfoms.f_operatorid_record = Vue.user.id
628
- userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
629
- userinfoms.f_orgid_record = Vue.user.orgid
630
- userinfoms.f_orgname_record = Vue.user.orgs
631
- userinfoms.f_depid_record = Vue.user.depids
632
- userinfoms.f_depname_record = Vue.user.deps
633
- this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
634
- this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
635
- this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
636
- this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
637
- this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
638
- this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
639
- this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
640
- this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
641
- this.userinfo_old.meterinfo[0].f_meternumber = this.userinfo.meterinfo[0].f_meternumber
642
- userinfoms.userfiles = []
643
- this.userinfo_old.meterinfo[0].devicesinfo = this.model
644
- userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
645
- let url = 'rs/logic/filemanage_fileSave'
646
- if(Vue.isv4){
647
- url ='api/af-revenue/logic/openapi/filemanage_fileSave'
648
- }
649
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url}`, {
650
- data: {
651
- userinfo: userinfoms,
652
- modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
653
- address: {
654
- id: this.userinfo_old.addressinfo.id,
655
- oldid: this.userinfo_old.addressinfo.id,
656
- f_address: this.userinfo.addressinfo.f_address ? this.userinfo.addressinfo.f_address : this.userinfo_old.addressinfo.f_address
657
- }
658
- }
659
- }, {resolveMsg: null, rejectMsg: null}).then((res1) => {
660
- if (res1.data.status == 200) {
661
- let data = this.userinfo.addressinfo
662
- data.f_address = this.userinfo.addressinfo.f_address? this.userinfo.addressinfo.f_address : this.userinfo_old.addressinfo.f_address
663
- //
664
- data.f_operator = Vue.user.name
665
- let url1 = 'rs/logic/address_updateuseraddress'
666
- if(Vue.isv4){
667
- url1 ='api/af-revenue/logic/openapi/address_updateuseraddress'
668
- }
669
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url1}`, {data: data}).then((res2) => {
670
- this.$showMessage("修改用户地址信息成功!")
671
- }).catch(error => {
672
- this.$showMessage("修改用户地址信息!")
673
- })
674
- this.$showMessage("修改用户信息成功!")
675
- this.enable = true
676
- this.excessive = false
677
- }
678
- }).catch((msg) => {
679
- this.$showMessage("修改用户信息失败,请检查手机网络状况!")
680
- this.excessive = false
681
- })
682
- }
683
- })
684
- },
685
- editUserInfo() {
686
- let checked = this.checkVal()
687
- if (!checked.ischeck) {
688
- this.$showMessage(checked.msg)
689
- return
690
- }
691
- this.$showMessage('确定是否修改上传审核用户信息?', ['confirm', 'cancel']).then((res) => {
692
- if (res === 'confirm') {
693
- this.excessive = true
694
- let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
695
- //userinfoms.f_user_name=row.f_user_name
696
- userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
697
- userinfoms.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
698
- userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
699
- userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
700
- userinfoms.f_operator_record = Vue.user.name
701
- userinfoms.f_operatorid_record = Vue.user.id
702
- userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
703
- userinfoms.f_orgid_record = Vue.user.orgid
704
- userinfoms.f_orgname_record = Vue.user.orgs
705
- userinfoms.f_depid_record = Vue.user.depids
706
- userinfoms.f_depname_record = Vue.user.deps
707
- this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
708
- this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
709
- this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
710
- this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
711
- this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
712
- this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
713
- this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
714
- this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
715
- this.userinfo_old.meterinfo[0].f_meternumber = this.userinfo.meterinfo[0].f_meternumber
716
- userinfoms.userfiles = []
717
- this.userinfo_old.meterinfo[0].devicesinfo = this.model
718
- userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
719
- //tag)
720
- let url = 'rs/logic/filemanage_fileSave'
721
- if(Vue.isv4){
722
- url ='api/af-revenue/logic/openapi/filemanage_fileSave'
723
- }
724
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url}`, {
725
- data: {
726
- userinfo: userinfoms,
727
- modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
728
- address: {id: this.userinfo_old.addressinfo.id, oldid: this.userinfo_old.addressinfo.id}
729
- }
730
- }, {resolveMsg: null, rejectMsg: null}).then((res1) => {
731
- //tag+res1.data.status)
732
- if (res1.data.status == 200) {
733
- //本次修改信息包含需要审核信息
734
- if (this.approveChange) {
735
- //tag
736
- let res2 = this.$androidUtil.bzLogic('safe_upUserinfoApprove', {
737
- row: {
738
- f_time: Util.toStandardTimeString(),
739
- f_modifier: Vue.user.name,//Vue.user.name
740
- f_modifier_id: Vue.user.id,//Vue.user.id
741
- f_modify_type: '用户档案',
742
- f_userinfoid: this.userinfo.baseinfo.base.f_userinfo_id,
743
- f_userinfo_code: this.userinfo.baseinfo.base.f_userinfo_code,
744
- f_approved: '未审核',
745
- filialestr: Vue.user.orgid,//Vue.user.orgid
746
- version: 1,
747
- f_user_name: this.userinfo.baseinfo.base.f_user_name,
748
- f_user_phone: this.userinfo.baseinfo.base.f_user_phone,
749
- f_street: this.userinfo.addressinfo.f_street,
750
- f_building: this.userinfo.addressinfo.f_building,
751
- f_unit: this.userinfo.addressinfo.f_unit,
752
- f_floor: this.userinfo.addressinfo.f_floor,
753
- f_room: this.userinfo.addressinfo.f_room,
754
- f_building_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_building_suffix,
755
- f_unit_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_unit_suffix,
756
- f_floor_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_floor_suffix,
757
- f_room_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_room_suffix,
758
- f_residential_area: this.userinfo.addressinfo.f_residential_area,
759
- f_address: this.userinfo.addressinfo.f_address,
760
- f_pcd: this.userinfo.addressinfo.f_pcd,
761
- f_pcd_id: this.userinfo.addressinfo.f_pcd_id,
762
- f_street_id: this.userinfo.addressinfo.f_street_id,
763
- f_residential_area_id: this.userinfo.addressinfo.f_residential_area_id,
764
- f_used_name: this.userinfo.baseinfo.base.f_used_name,
765
- f_rent_phone: this.userinfo.baseinfo.base.f_rent_phone,
766
- f_slice_area: this.userinfo.addressinfo.f_slice_area,
767
- f_remark: this.userinfo.baseinfo.base.f_remark,
768
- f_source: this.f_source,
769
- f_meterno_path: this.f_meterno_path,
770
- f_iscity: this.userinfo.addressinfo.f_iscity,
771
- f_special: this.userinfo.addressinfo.f_special,
772
- f_meternumber: this.userinfo.meterinfo[0].f_meternumber,
773
- changemeterno: this.changemeterno
774
- },
775
- tablename: 't_modify_userinfo'
776
- })
777
- //tag)
778
- if (res2.code == 200) {
779
- this.$showMessage("变更用户信息成功,需要审核的信息已提交审核,等待管理员处理!")
780
- this.enable = true
781
- this.excessive = false
782
- } else {
783
- this.$showMessage("上传审核信息失败,请检查图片和网络状况是否正常!")
784
- this.excessive = false
785
- }
786
- } else {
787
- this.$showMessage("修改用户信息成功!")
788
- this.enable = true
789
- this.excessive = false
790
- }
791
-
792
- }
793
- }).catch((msg) => {
794
- this.$showMessage("修改用户信息失败,请检查手机网络状况!")
795
- this.excessive = false
796
- })
797
-
798
- }
799
- })
800
- },
801
- imgback(header) {
802
- if (this.headername == header) {
803
- return require('../../../assets/xiangxia1.png')
804
- } else {
805
- return require('../../../assets/xiangyou1.png')
806
- }
807
- this.headername = header
808
- },
809
- selectVal(header) {
810
- if (this.headername == header) {
811
- this.headername = ''
812
- } else {
813
- this.headername = header
814
- }
815
-
816
- },
817
- changeNewAddress() {
818
- this.userinfo.addressinfo.f_address = this.addressType == '普通地址' ? this.getAddress : this.getAddressTS
819
- },
820
- area_change() {
821
- //tag
822
- if( this.selectArea && this.selectArea.f_residential_area){
823
- this.userinfo.addressinfo.f_residential_area = this.selectArea.f_residential_area
824
- this.userinfo.addressinfo.f_residential_area_id = this.selectArea.id
825
- this.userinfo.addressinfo.f_slice_area = this.selectArea.f_slice_area
826
- this.changeNewAddress()
827
- }
828
- //this.userinfo.addressinfo.f_residential_area=this.f_residential_area.f_residential_area
829
- },
830
- async street_change() {
831
- //tag
832
- if (this.selectStreet && this.selectStreet.id) {
833
- //如果街道改变--给街道赋值!
834
- this.userinfo.addressinfo.f_street = this.selectStreet.f_street
835
- this.userinfo.addressinfo.f_street_id = this.selectStreet.id
836
- this.userinfo.addressinfo.f_iscity = this.selectStreet.f_iscity
837
- //清空当前选中小区的值
838
- this.userinfo.addressinfo.f_residential_area = ''
839
- this.userinfo.addressinfo.f_residential_area_id = ''
840
- this.userinfo.addressinfo.f_slice_area = ''
841
- this.selectArea = {id: ''}
842
- this.area = []
843
- let pcdText = ` and f_street_id=${this.selectStreet.id}`
844
- let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
845
- data: {
846
- items: "*",
847
- tablename: "t_area",
848
- orderitem: "id",
849
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
850
- }
851
- }, {resolveMsg: null, rejectMsg: null})
852
- ////tag)
853
- res.data.forEach((result) => {
854
- this.area.push({label: result.f_residential_area, value: result})
855
- })
856
- } else {
857
- this.area = []
858
- }
859
-
860
- this.changeNewAddress()
861
- },
862
- async pcd_change() {
863
- //tag
864
- if (this.selectPcd && this.selectPcd.id) {
865
- //tag
866
- //如果省市区改变-重新赋值
867
- this.userinfo.addressinfo.f_pcd = this.selectPcd.f_pcd
868
- this.userinfo.addressinfo.f_pcd_id = this.selectPcd.id
869
- //清空 选中的街道和集收单位
870
- this.selectStreet = {id: ''}
871
- this.userinfo.addressinfo.f_street = ''
872
- this.userinfo.addressinfo.f_street_id = ''
873
- this.userinfo.addressinfo.f_iscity = ''
874
- this.selectArea = {id: ''}
875
- this.userinfo.addressinfo.f_residential_area = ''
876
- this.userinfo.addressinfo.f_residential_area_id = ''
877
- this.userinfo.addressinfo.f_slice_area = ''
878
- this.streets = []
879
- let pcdText = `and f_pcd_id=${this.selectPcd.id}`
880
- let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
881
- data: {
882
- items: "*",
883
- tablename: "t_street",
884
- orderitem: "id",
885
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
886
- }
887
- }, {resolveMsg: null, rejectMsg: null})
888
- streetlist.data.forEach((result) => {
889
- this.streets.push({label: result.f_street, value: result})
890
- })
891
- } else {
892
- this.streets = []
893
- }
894
- this.changeNewAddress()
895
- },
896
- upUserState() {
897
- //tag)
898
- if (this.userinfo.meterinfo[0].f_table_state == '正常') {
899
- let data = {
900
- f_userfiles_id: {
901
- f_userfiles_id: this.userinfo.meterinfo[0].f_userfiles_id,
902
- f_table_state: '停用',
903
- version: this.userinfo.meterinfo[0].version
904
- },
905
- f_userfile_id: this.userinfo.meterinfo[0].f_userfiles_id,
906
- f_user_id: this.userinfo.meterinfo[0].f_user_id,
907
- f_userinfo_id: this.userinfo.meterinfo[0].f_userinfo_id,
908
- f_user_name: this.userinfo.baseinfo.base.f_user_name,
909
- f_comments: '安检时发现问题关闭阀门',
910
- f_othereason: '',
911
- f_operat_type: '停用',
912
- f_describe: `${Vue.user.name}对客户${this.userinfo.baseinfo.base.f_user_name}进行表具停用操作`,
913
- f_state: '有效',
914
- f_operator: Vue.user.name,//${Vue.$login.f.name}
915
- f_operatorid: Vue.user.id,
916
- f_orgid: Vue.user.orgid,
917
- f_orgname: Vue.user.orgs,
918
- f_depid: Vue.user.depids,
919
- f_depname: Vue.user.deps,
920
- f_zoneid: Vue.user.zoneid,
921
- f_zones: Vue.user.zones
922
- }
923
- new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
924
- data, {resolveMsg: null, rejectMsg: null}).then((row) => {
925
- this.$showMessage('已成功关阀停气!')
926
- this.userinfo.meterinfo[0].f_table_state = '停用'
927
- })
928
- } else {
929
- this.$showMessage('该用户已被关阀停用,请勿重复操作!')
930
- }
931
-
932
- },
933
- addDevices() {
934
- //Vue.user.name
935
- let obj = {
936
- "f_operator": Vue.user.name,
937
- "f_picture": null,
938
- "f_pipe_type": null,
939
- "f_pipeinstall_date": null,
940
- "f_pipe_connection": null,
941
- "f_expire_date": null,
942
- "f_pipeexpire_date": null,
943
- "f_comments": null,
944
- "f_operate_date": Util.toStandardTimeString(),
945
- "f_operatorid": Vue.user.id,
946
- "f_devices_num": null,
947
- "f_process_id": null,
948
- "f_devices_type": null,
949
- "f_make_date": null,
950
- "f_input_date": null,
951
- "f_state": "有效",
952
- "f_brand": null,
953
- "f_devices_model": null,
954
- "f_devices_no": null,
955
- "img": {"content": null, "filename": null}
956
- }
957
- this.model.push(obj)
958
- },
959
- delDevices(idx) {
960
- //tag
961
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
962
- if (res === 'confirm') {
963
- this.model.splice(idx, 1)
964
- }
965
- })
966
- },
967
- async getAreaList(text) {
968
- if (this.selectStreet.id) {
969
- this.area = []
970
- let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
971
- let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
972
- data: {
973
- items: "*",
974
- tablename: "t_area",
975
- orderitem: "id",
976
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
977
- }
978
- }, {resolveMsg: null, rejectMsg: null})
979
- ////tag)
980
- res.data.forEach((result) => {
981
- this.area.push({label: result.f_residential_area, value: result})
982
- })
983
- //tag
984
- this.area.push({
985
- label: this.userinfo.addressinfo.f_residential_area,
986
- value: {
987
- id: this.userinfo.addressinfo.f_residential_area_id,
988
- f_residential_area: this.userinfo.addressinfo.f_residential_area
989
- }
990
- })
991
- } else {
992
- this.area = []
993
- }
994
-
995
- },
996
- async getStreetList() {
997
- if (this.selectPcd.id) {
998
- //tag
999
- this.streets = []
1000
- let pcdText = `and f_pcd_id=${this.selectPcd.id}`
1001
- let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1002
- data: {
1003
- items: "*",
1004
- tablename: "t_street",
1005
- orderitem: "id",
1006
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
1007
- }
1008
- }, {resolveMsg: null, rejectMsg: null})
1009
- streetlist.data.forEach((result) => {
1010
- //如果第一次进来有地址id 就拿下地址区域
1011
- if (this.selectStreet.id && this.selectStreet.id == result.id) {
1012
- //tag)
1013
- this.userinfo.addressinfo.f_iscity = result.f_iscity
1014
- }
1015
- this.streets.push({label: result.f_street, value: result})
1016
- })
1017
- } else {
1018
- this.streets = []
1019
- }
1020
- },
1021
- changeAddressType(val) {
1022
- //tag
1023
- if (this.addressType == '普通地址') {
1024
- this.userinfo.addressinfo.f_special = null
1025
- } else if (this.addressType == '特殊地址') {
1026
- this.userinfo.addressinfo.f_special = 1
1027
- this.userinfo.addressinfo.f_building = null
1028
- this.userinfo.addressinfo.f_unit = null
1029
- this.userinfo.addressinfo.f_floor = null
1030
- this.userinfo.addressinfo.f_room = null
1031
- }
1032
- this.changeNewAddress()
1033
- }
1034
-
1035
- },
1036
- computed: {
1037
- getAddress() {
1038
- return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1039
- (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1040
- (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '') +
1041
- (this.userinfo.addressinfo.f_building ? this.userinfo.addressinfo.f_building + (this.userinfo.addressinfo.f_building_suffix ? this.userinfo.addressinfo.f_building_suffix : '') : '') +
1042
- (this.userinfo.addressinfo.f_unit ? this.userinfo.addressinfo.f_unit + (this.userinfo.addressinfo.f_unit_suffix ? this.userinfo.addressinfo.f_unit_suffix : '') : '') +
1043
- (this.userinfo.addressinfo.f_floor ? this.userinfo.addressinfo.f_floor + (this.userinfo.addressinfo.f_floor_suffix ? this.userinfo.addressinfo.f_floor_suffix : '') : '') +
1044
- (this.userinfo.addressinfo.f_room ? this.userinfo.addressinfo.f_room + (this.userinfo.addressinfo.f_room_suffix ? this.userinfo.addressinfo.f_room_suffix : '') : '')
1045
- },
1046
- getAddressTS() {
1047
- return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1048
- (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1049
- (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '')
1050
- }
1051
- },
1052
- watch: {
1053
-
1054
- /*'selectPcd.id' (val) {
1055
- //tag
1056
- if(this.selectPcd.id){
1057
- this.getStreetList()
1058
- }
1059
- },
1060
- 'selectStreet.id' (val) {
1061
- //tag
1062
- if(this.selectStreet.id){
1063
- this.getAreaList()
1064
- }
1065
- }*/
1066
- },
1067
- async ready() {
1068
- /*//tag)
1069
-
1070
- //tag)
1071
- //tag)*/
1072
- //this.f_userinfo_id=1102260
1073
- //this.f_userinfo_id=1997541
1074
- if (!this.f_userinfo_id) {
1075
- this.$showMessage("未检测到用户!")
1076
- this.enable = true
1077
- return
1078
- }
1079
- try {
1080
-
1081
- this.devices_types = Vue.$appdata.getParam('设备类型')
1082
- console.log('this.devices_types=', JSON.stringify(this.devices_types))
1083
- if (this.devices_types){
1084
- for (const devices_type of this.devices_types) {
1085
- console.log('Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)=', JSON.stringify(Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)))
1086
- this.deviceBrandOption[devices_type.label] = Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`) || []
1087
- }
1088
- }
1089
- console.log('this.deviceBrandOption=', JSON.stringify(this.deviceBrandOption))
1090
- this.wz_types = Vue.$appdata.getParam('安装位置')
1091
- this.aroundmeters = Vue.$appdata.getParam('左右表')
1092
-
1093
- ////tag)
1094
- this.excessive = true
1095
- //Vue.user.orgid ${this.f_userinfo_id} 10101 ${Vue.user.orgid}
1096
-
1097
- let pcdlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1098
- data: {
1099
- items: "*",
1100
- tablename: "t_pcd",
1101
- orderitem: "id",
1102
- condition: `f_orgid = '${Vue.user.orgid}'`
1103
- }
1104
- }, {resolveMsg: null, rejectMsg: null})
1105
- //tag)
1106
- pcdlist.data.forEach((result) => {
1107
- this.pcds.push({label: result.f_pcd, value: result})
1108
- })
1109
- let url = 'rs/logic/filemanage_getFilesDetail'
1110
- if(Vue.isv4){
1111
- url ='api/af-revenue/logic/openapi/filemanage_getFilesDetail'
1112
- }
1113
- let res = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/${url}`, {
1114
- //f_userinfo_code:'12381344',
1115
- f_userinfo_id: this.f_userinfo_id
1116
- }, {resolveMsg: null, rejectMsg: null})
1117
- //tag
1118
- //tag
1119
- this.userinfo = res.data
1120
- this.userinfo_old = JSON.parse(JSON.stringify(res.data))
1121
- this.model = this.userinfo.meterinfo[0].devicesinfo
1122
- this.selectArea.id = this.userinfo.addressinfo.f_residential_area_id
1123
- this.selectPcd.id = this.userinfo.addressinfo.f_pcd_id
1124
- this.selectPcd.f_pcd = this.userinfo.addressinfo.f_pcd
1125
- this.selectStreet.id = this.userinfo.addressinfo.f_street_id
1126
- this.selectStreet.f_street = this.userinfo.addressinfo.f_street
1127
- await this.getStreetList()
1128
- await this.getAreaList()
1129
- this.excessive = false
1130
- this.addressType = this.userinfo.addressinfo.f_special == 1 ? '特殊地址' : '普通地址'
1131
- //this.userinfo.addressinfo.f_special=1
1132
- //tag
1133
- } catch (e) {
1134
- this.excessive = false
1135
- this.enable = true
1136
- this.$showMessage('获取用户信息出错,请检查网络状况!')
1137
- }
1138
- new HttpResetClass().load('get', `${this.$androidUtil.getProxyUrl()}/rs/vue/UserAddress.json`, {data: {}}, {
1139
- resolveMsg: null,
1140
- rejectMsg: null
1141
- }).then((addressUnit) => {
1142
- //tag
1143
- //tag
1144
- //tag
1145
- //tag
1146
- this.userinfo.addressinfo.f_building_suffix = addressUnit.data.f_building_suffix
1147
- this.userinfo.addressinfo.f_unit_suffix = addressUnit.data.f_unit_suffix
1148
- this.userinfo.addressinfo.f_floor_suffix = addressUnit.data.f_floor_suffix
1149
- this.userinfo.addressinfo.f_room_suffix = addressUnit.data.f_room_suffix
1150
- }).catch((msg) => {
1151
- //tag)
1152
- })
1153
- this.showBox = this.$appdata.getSingleValue('档案审核是否显示调压箱') == '是'? true : false
1154
- console.log(this.showBox)
1155
- if (this.showBox) {
1156
- // 获取调压箱
1157
- let url = 'rs/sql/adjustableboxQuery'
1158
- if(Vue.isv4){
1159
- url ='api/af-revenue/sql/adjustableboxQuery'
1160
- }
1161
- new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/${url}`, {data: {condition: '1 = 1'}}, {
1162
- resolveMsg: null,
1163
- rejectMsg: null
1164
- }).then((res) => {
1165
- const boxOptions = []
1166
- for (const data of res.data) {
1167
- const one = {
1168
- label: data.f_adjustable_id + data.f_adjustable_name,
1169
- value: Number(data.f_adjustable_id)
1170
- }
1171
- boxOptions.push(one)
1172
- }
1173
- this.boxOptions = JSON.parse(JSON.stringify(boxOptions))
1174
- console.log(this.boxOptions)
1175
- }).catch((msg) => {
1176
- //tag)
1177
- })
1178
- }
1179
- }
1180
- }
1181
- </script>
1182
- <style lang="less" scoped>
1183
- .butt3 {
1184
- float: right;
1185
- width: 12px;
1186
- margin: 1% 2% 0 0;
1187
- }
1188
-
1189
- .rightipt {
1190
- width: 60%;
1191
- float: left;
1192
- margin-left: 5%;
1193
- }
1194
-
1195
- .righttxt {
1196
- border: none;
1197
- margin-left: 5px;
1198
- /*border-left: 5px solid #A2C2EB;*/
1199
- float: left;
1200
- width: 25%;
1201
- margin-bottom: 3px;
1202
- text-align: left;
1203
- word-wrap: break-word;
1204
- white-space: normal;
1205
- }
1206
-
1207
- .tit1 {
1208
- /*background: #ffffff url('../../../assets/用户姓名.png') no-repeat fixed center;*/
1209
- background-image: url('../../../assets/用户姓名.png');
1210
- background-repeat: no-repeat;
1211
- background-position: center;
1212
- }
1213
-
1214
- .spanboder {
1215
- border-bottom: 2px solid #499edf;
1216
- padding-bottom: 8px
1217
- }
1218
-
1219
- #upuserinfo_sel /deep/ ul {
1220
- width: 100% !important;
1221
- left: 0 !important;
1222
- }
1223
-
1224
- .btn-photo {
1225
- border: 0;
1226
- border-radius: 7px;
1227
- background-color: #7dc1f4;
1228
- font: 15px PingFang-SC-Bold;
1229
- height: 20%;
1230
- }
1231
-
1232
- .panel-self {
1233
- border-radius: 10px;
1234
- border: 1px solid #499EDF;
1235
- background-color: #F8F8F8;
1236
- }
1237
-
1238
- .div-photo {
1239
- width: auto;
1240
- height: auto;
1241
- /* margin-top: 10px; */
1242
- position: absolute;
1243
- bottom: 10px;
1244
- right: 10px;
1245
- }
1246
- </style>
1247
- <style lang="less">
1248
- #upuserinfo_sel ul {
1249
- width: 100% !important;
1250
- left: 0 !important;
1251
- }
1252
- </style>
1
+ <template>
2
+ <work-busy :is-busy="excessive"></work-busy>
3
+ <div style="height: 100%">
4
+ <div class="panel auto">
5
+ <div class="panel-heading" @click="selectVal('基本信息')" style="background-color: #ffffff">
6
+ <span class="spanboder">
7
+ <img src="../../../assets/person.png" style="width: 22px;margin-right: 8px;">基本信息
8
+ <img class="butt3" :src="imgback('基本信息')">
9
+ </span>
10
+ </div>
11
+ <div class="panel-body " id="upuserinfo_sel" v-show="headername=='基本信息'">
12
+ <div class="row auto" style="margin: 5px 0">
13
+ <label class="righttxt">用户编号:</label>
14
+ <input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_userinfo_code" readonly/>
15
+ </div>
16
+ <div class="row auto" style="margin: 5px 0">
17
+ <label class="righttxt">用户名称:</label><input type="text" class="form-control rightipt"
18
+ v-model="userinfo.baseinfo.base.f_user_name" readonly/>
19
+ </div>
20
+ <div class="row auto" style="margin: 5px 0">
21
+ <label class="righttxt">身份证号:</label><input type="text" class="form-control rightipt"
22
+ v-model="userinfo.baseinfo.base.f_idnumber" />
23
+ </div>
24
+ <div class="row auto" style="margin: 5px 0">
25
+ <label class="righttxt">用户状态:</label><input type="text" class="form-control rightipt" readonly
26
+ v-model="userinfo.baseinfo.base.f_user_state"/>
27
+ </div>
28
+ <div class="row auto" style="margin: 5px 0">
29
+ <label class="righttxt">用户电话:</label><input type="text" class="form-control rightipt"
30
+ v-model="userinfo.baseinfo.base.f_user_phone"/>
31
+ </div>
32
+ <div class="row auto" style="margin: 5px 0">
33
+ <label class="righttxt">租户姓名:</label><input type="text" class="form-control rightipt"
34
+ v-model="userinfo.baseinfo.base.f_rent_name"/>
35
+ </div>
36
+ <div class="row auto" style="margin: 5px 0">
37
+ <label class="righttxt">租户电话:</label><input type="text" class="form-control rightipt"
38
+ v-model="userinfo.baseinfo.base.f_zuhu_phone"/>
39
+ </div>
40
+ <div class="row auto" style="margin: 5px 0">
41
+ <label class="righttxt">建档日期:</label><input type="text" class="form-control rightipt"
42
+ v-model="userinfo.baseinfo.base.f_createfile_date" readonly/>
43
+ </div>
44
+ <!-- <div class="row auto" style="margin: 5px 0">
45
+ <label class="righttxt">开户日期:</label><input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_open_date" readonly />
46
+ </div>-->
47
+ <div class="row auto" style="margin: 5px 0">
48
+ <label class="righttxt">地址类型:</label>
49
+ <div class="rightipt" style="display: flex;justify-content: space-around;margin-top: 5px">
50
+ <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
51
+ id="phone_addressType1" value="普通地址"/><label style="font-weight: normal;padding-left: 2px"
52
+ for="phone_addressType1">普通地址</label></div>
53
+ <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
54
+ id="phone_addressType2" value="特殊地址"/><label style="font-weight: normal;padding-left: 2px"
55
+ for="phone_addressType2">特殊地址</label></div>
56
+ </div>
57
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
58
+ <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
59
+ <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
60
+ :width="'60%'"
61
+ v-model="userinfo.addressinfo.f_iscity"
62
+ :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single @change="area_change()"></v-select>-->
63
+ </div>
64
+ <div class="row auto" style="margin: 5px 0">
65
+ <label class="righttxt">地区类型:</label>
66
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
67
+ <input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_iscity"/>
68
+ <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
69
+ :width="'60%'"
70
+ :disabled="true"
71
+ v-model="userinfo.addressinfo.f_iscity"
72
+ :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single ></v-select>-->
73
+ </div>
74
+ <div class="row auto" style="margin: 5px 0">
75
+ <label class="righttxt">省&ensp;市&ensp;区:</label>
76
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
77
+ <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
78
+ <v-select :value.sync="selectPcd" class="input-font" style="margin-left: 5%;"
79
+ :width="'60%'"
80
+ v-model="selectPcd"
81
+ :options='pcds' placeholder='请选择省市区' close-on-select clear-button value-single
82
+ @change="pcd_change()"></v-select>
83
+ </div>
84
+ <div class="row auto" style="margin: 5px 0">
85
+ <label class="righttxt">街道名称:</label>
86
+ <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_street" />-->
87
+ <v-select :value="selectStreet" class="input-font" style="margin-left: 5%;"
88
+ :width="'60%'"
89
+ v-model="selectStreet"
90
+ :options='streets' placeholder='请选择街道' close-on-select clear-button value-single
91
+ @change="street_change()"></v-select>
92
+ </div>
93
+ <div class="row auto" style="margin: 5px 0">
94
+ <label class="righttxt">集收单位:</label>
95
+ <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />-->
96
+ <v-select :value="selectArea" class="input-font" style="margin-left: 5%;"
97
+ :width="'60%'"
98
+ v-model="selectArea"
99
+ :timeout="500"
100
+ :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single
101
+ @change="area_change()"></v-select>
102
+ </div>
103
+ <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
104
+ <label class="righttxt">集收单位:</label>
105
+ &lt;!&ndash;<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />&ndash;&gt;
106
+ <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;"
107
+ :width="'60%'"
108
+ v-model="selectArea"
109
+ @select-search="select_search"
110
+ :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single @change="area_changeTC()"></v-select>
111
+ </div>-->
112
+ <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
113
+ <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;号:</label><input type="text" @change="changeNewAddress"
114
+ class="form-control rightipt"
115
+ v-model="userinfo.addressinfo.f_building"/>
116
+ </div>
117
+ <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
118
+ <label class="righttxt">单&ensp;&ensp;&ensp;&ensp;元:</label><input type="text" @change="changeNewAddress"
119
+ class="form-control rightipt"
120
+ v-model="userinfo.addressinfo.f_unit"/>
121
+ </div>
122
+ <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
123
+ <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;层:</label><input type="text" @change="changeNewAddress"
124
+ class="form-control rightipt"
125
+ v-model="userinfo.addressinfo.f_floor"/>
126
+ </div>
127
+ <div class="row auto" style="margin: 5px 0" v-show="addressType=='普通地址'">
128
+ <label class="righttxt">门&ensp;牌&ensp;号:</label><input type="text" @change="changeNewAddress"
129
+ class="form-control rightipt"
130
+ v-model="userinfo.addressinfo.f_room"/>
131
+ </div>
132
+ <div class="row auto" style="margin: 5px 0">
133
+ <label class="righttxt">详细地址:</label><input type="text" class="form-control rightipt" readonly
134
+ v-model="userinfo_old.addressinfo.f_address"/>
135
+ </div>
136
+ <div class="row auto" style="margin: 5px 0">
137
+ <label class="righttxt">新&ensp;地&ensp;址:</label>
138
+ <!--<input type="text" class="form-control rightipt" readonly v-model="getaddress()" />-->
139
+ <textarea :readonly="addressType=='普通地址'" class="form-control rightipt" : style="height: 80px"
140
+ v-model="userinfo.addressinfo.f_address"></textarea>
141
+ </div>
142
+
143
+ <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
144
+ <label class="righttxt">新&ensp;地&ensp;址:</label>&lt;!&ndash;<input type="text" class="form-control rightipt" v-model="userinfo.addressinfo.f_address" />&ndash;&gt;
145
+ <textarea class="form-control rightipt" style="height: 80px" v-model="getAddressTS"></textarea>
146
+ </div>-->
147
+
148
+ <div class="row auto" style="margin: 5px 0">
149
+ <label class="righttxt">备&ensp;&ensp;&ensp;&ensp;注:</label><textarea class="form-control rightipt"
150
+ style="height: 150px"
151
+ v-model="userinfo.baseinfo.base.f_remark"></textarea>
152
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_remark" />-->
153
+ </div>
154
+ </div>
155
+ </div>
156
+ <div class="panel auto">
157
+ <div class="panel-heading" @click="selectVal('表具信息')" style="background-color: #ffffff">
158
+ <span class="spanboder">
159
+ <img src="../../../assets/person.png" style="width: 22px;margin-right: 8px;">表具信息
160
+ <img class="butt3" :src="imgback('表具信息')">
161
+ </span>
162
+ </div>
163
+ <div class="panel-body " v-show="headername=='表具信息'">
164
+ <div class="row auto" style="margin: 5px 0">
165
+ <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;号:</label>
166
+ <input type="text" :readonly="!(userinfo.meterinfo[0].f_meter_classify=='金额卡表' || userinfo.meterinfo[0].f_meter_classify=='气量卡表')" class="form-control rightipt"
167
+ style="width: 45%" v-model="userinfo.meterinfo[0].f_meternumber"/>
168
+ <button type="button"
169
+ :disabled="!(userinfo.meterinfo[0].f_meter_classify=='金额卡表' || userinfo.meterinfo[0].f_meter_classify=='气量卡表')"
170
+ name="button" class="btn btn-primary" style="width: 15%" @click="scan">扫码
171
+ </button>
172
+ </div>
173
+
174
+ <!--<div class="row auto" style="margin: 5px 0" v-if="userinfo.meterinfo[0].f_meter_classify=='机表'">
175
+ <div class="auto">
176
+ <div class="panel" style="padding: 0px 15px 5px 10px;">
177
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
178
+ <div class="row" style="height: 240px;">
179
+ <div class="col-sm-4">
180
+ <img-self :src="f_meterno_path" alt="表号照片" width="150" height="200"></img-self>
181
+ </div>
182
+ </div>
183
+ <div class="row text-right div-photo" :class="style__">
184
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_meterno_path', '表号照片')">拍照</button>
185
+ <img src="../../../assets/remove.png" :class="style__" @click="delfile('f_meterno_path', this.f_meterno_path)" style="width: 25%;"></img>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>-->
191
+ <div class="row auto" style="margin: 5px 0">
192
+ <label class="righttxt">通&ensp;气&ensp;人:</label>
193
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_gas_person"/>
194
+ </div>
195
+ <div class="row auto" style="margin: 5px 0">
196
+ <label class="righttxt">通气时间:</label>
197
+ <datepicker class="rightipt"
198
+ :value.sync="userinfo.meterinfo[0].f_gas_date"
199
+ v-model="userinfo.meterinfo[0].f_gas_date"
200
+ :disabled-days-of-Week="[]"
201
+ :format="'yyyy-MM-dd'"
202
+ :show-reset-button="reset">
203
+ </datepicker>
204
+ </div>
205
+ <div class="row auto" style="margin: 5px 0" v-show="showBox">
206
+ <label class="righttxt">调&ensp;压&ensp;箱:</label>
207
+ <v-select class="rightipt"
208
+ :value.sync="userinfo.meterinfo[0].f_adjustable_id"
209
+ v-model="userinfo.meterinfo[0].f_adjustable_id"
210
+ placeholder='请选择'
211
+ :width='wid'
212
+ readonly
213
+ :options="boxOptions"
214
+ close-on-select value-single></v-select>
215
+ </div>
216
+ <div class="row auto" style="margin: 5px 0">
217
+ <label class="righttxt">是否直通:</label>
218
+ <v-select
219
+ :value.sync="userinfo.meterinfo[0].f_if_direct"
220
+ class="input-font"
221
+ style="margin-left: 5%;"
222
+ :width="'60%'"
223
+ v-model="userinfo.meterinfo[0].f_if_direct"
224
+ :options='directOptions'
225
+ placeholder='是否直通'
226
+ close-on-select
227
+ clear-button
228
+ value-single>
229
+ </v-select>
230
+ </div>
231
+ <div class="row auto" style="margin: 5px 0">
232
+ <label class="righttxt">表&ensp;封&ensp;号:</label>
233
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_metertitles"/>
234
+ </div>
235
+ <div class="row auto" style="margin: 5px 0">
236
+ <label class="righttxt">表&ensp;位&ensp;置:</label>
237
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
238
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_position"
239
+ v-model="userinfo.meterinfo[0].f_position"
240
+ placeholder='请选择'
241
+ :width='wid'
242
+ readonly
243
+ :options="wz_types"
244
+ close-on-select value-single></v-select>
245
+ </div>
246
+ <div class="row auto" style="margin: 5px 0">
247
+ <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;向:</label>
248
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
249
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_aroundmeter"
250
+ v-model="userinfo.meterinfo[0].f_aroundmeter"
251
+ placeholder='请选择'
252
+ :width='wid'
253
+ readonly
254
+ :options="aroundmeters"
255
+ close-on-select value-single></v-select>
256
+ </div>
257
+ <div class="row auto" style="margin: 5px 0">
258
+ <label class="righttxt">气表类型:</label>
259
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_meter_classify" readonly/>
260
+ </div>
261
+ <div class="row auto" style="margin: 5px 0">
262
+ <label class="righttxt">表前阀状态:</label>
263
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
264
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_bqf_state"
265
+ v-model="userinfo.meterinfo[0].f_bqf_state"
266
+ placeholder='请选择'
267
+ :width='wid'
268
+ readonly
269
+ :options="bqf_states"
270
+ close-on-select value-single></v-select>
271
+ </div>
272
+ <!-- <div class="row auto" style="margin: 5px 0">
273
+ <div style="display: flex;justify-content: center;">
274
+ <button v-if="userinfo.meterinfo[0].f_meter_classify=='机表'" class="col-sm-3 btn btn-primary" @click="upUserState()">机表关阀停用</button>
275
+ </div>
276
+ </div>-->
277
+ </div>
278
+ </div>
279
+ <div class="panel auto">
280
+ <div class="panel-heading" @click="selectVal('设备信息')" style="background-color: #ffffff">
281
+
282
+ <span class="spanboder"><img src="../../../assets/list.png" style="width: 22px;margin-right: 8px;">设备信息<img
283
+ class="butt3" :src="imgback('设备信息')"></span>
284
+ </div>
285
+ <div class="panel-body" v-show="headername=='设备信息'">
286
+ <div class="row" v-for="row in model"
287
+ style="border:2px solid #A2C2EB; border-top:10px solid #A2C2EB; box-shadow: #00b3ee;margin-bottom: 10px">
288
+ <div class="row auto" style="margin: 5px 0">
289
+ <label class="righttxt">设备类型:</label>
290
+ <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
291
+ <v-select class="rightipt" :value.sync="row.f_devices_type"
292
+ v-model="row.f_devices_type"
293
+ placeholder='请选择'
294
+ :width='wid'
295
+ readonly
296
+ :options="devices_types"
297
+ close-on-select value-single></v-select>
298
+ </div>
299
+ <div class="row auto" style="margin: 5px 0">
300
+ <label class="righttxt">设备品牌:</label>
301
+ <v-select class="rightipt" :value.sync="row.f_brand"
302
+ v-model="row.f_brand"
303
+ placeholder='请选择'
304
+ :width='wid'
305
+ readonly
306
+ :options="deviceBrandOption[row.f_devices_type]"
307
+ close-on-select value-single></v-select>
308
+ </div>
309
+ <div class="row auto" style="margin: 5px 0">
310
+ <label class="righttxt">设备型号:</label><input type="text" class="form-control rightipt"
311
+ v-model="row.f_devices_model"/>
312
+ </div>
313
+ <div class="row auto" style="margin: 5px 0">
314
+ <label class="righttxt">生产日期:</label>
315
+ <!--<input type="text" class="form-control rightipt" v-model="row.f_make_date" />-->
316
+ <datepicker class="rightipt"
317
+ :value.sync="row.f_make_date"
318
+ v-model="row.f_make_date"
319
+ :disabled-days-of-Week="[]"
320
+ :format="'yyyy-MM-dd'"
321
+ :show-reset-button="reset" readonly="readonly">
322
+ </datepicker>
323
+ </div>
324
+ <div class="row auto" style="margin: 5px 0">
325
+ <label class="righttxt">使用年限:</label><input type="number" class="form-control rightipt"
326
+ v-model="row.f_service_life"/>
327
+ </div>
328
+ <!-- <div class="row auto" style="margin: 5px 0">
329
+ <label class="righttxt">到期日期:</label>
330
+ &lt;!&ndash;<input type="text" class="form-control rightipt" v-model="row.f_expire_date" />&ndash;&gt;
331
+ <datepicker class="rightipt"
332
+ :value.sync="row.f_expire_date"
333
+ v-model="row.f_expire_date"
334
+ :disabled-days-of-Week="[]"
335
+ :format="'yyyy-MM-dd'"
336
+ :show-reset-button="reset" readonly="readonly">
337
+ </datepicker>
338
+ </div>-->
339
+ <div class="row auto" style="margin: 5px 0">
340
+ <label class="righttxt">安&ensp;装&ensp;人:</label><input type="text" class="form-control rightipt"
341
+ v-model="row.f_input_person"/>
342
+ </div>
343
+ <div class="row auto" style="margin: 5px 0">
344
+ <label class="righttxt">安装日期:</label>
345
+ <!--<input type="text" class="form-control rightipt" v-model="row.f_input_date" />-->
346
+ <datepicker class="rightipt"
347
+ :value.sync="row.f_input_date"
348
+ v-model="row.f_input_date"
349
+ :disabled-days-of-Week="[]"
350
+ :format="'yyyy-MM-dd'"
351
+ :show-reset-button="reset" readonly="readonly">
352
+ </datepicker>
353
+ </div>
354
+ <div class="row auto" style="margin: 5px 0">
355
+ <label class="righttxt">设备数量:</label><input type="number" class="form-control rightipt"
356
+ v-model="row.f_devices_num"/>
357
+ </div>
358
+ <!--<div class="row auto" style="margin: 5px 0">
359
+ <label class="righttxt">管道类型:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_pipe_type" />
360
+ </div>-->
361
+ <!--<div class="row auto" style="margin: 5px 0">
362
+ <label class="righttxt">设备状态:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_userinfodevices_state" />
363
+ </div>-->
364
+ <!--<div class="row auto" style="margin: 5px 0">
365
+ <label class="righttxt">购买方式:</label><input type="text" class="form-control rightipt" readonly v-model="row.watchpurchase" />
366
+ </div>-->
367
+ <div style="display: flex;justify-content: center;margin-bottom: 3px"
368
+ v-if="$index>this.userinfo_old.devicesinfo.length-1 || this.userinfo_old.devicesinfo.length==0">
369
+ <button class="btn btn-warning" @click="delDevices($index)">删除设备</button>
370
+ </div>
371
+ </div>
372
+ <div style="display: flex;justify-content: space-around;">
373
+ <button class="col-sm-3 btn btn-primary" @click="addDevices($index)">新增设备</button>
374
+ </div>
375
+ </div>
376
+ </div>
377
+ <div class="panel auto">
378
+ <div class="panel-body">
379
+ <div style="display: flex;justify-content: center;">
380
+ <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="isNeedAudit ? editUserInfo() : editUserInfoNoAudit()">{{isNeedAudit ? '上传审核' : '上传'}}</button>
381
+ </div>
382
+ </div>
383
+ </div>
384
+ </div>
385
+ </template>
386
+
387
+ <script>
388
+ import {HttpResetClass} from 'vue-client'
389
+ import * as Util from "../../Util";
390
+ import Vue from 'vue'
391
+
392
+ export default {
393
+ title: '设备查看',
394
+ data() {
395
+ return {
396
+ model: [],
397
+ show: false,
398
+ row: Object,
399
+ userinfo: Object,
400
+ userinfo_old: Object,
401
+ wid: "60%",
402
+ aroundmeters: [],
403
+ devices_types: [],
404
+ pipe_types: [{label: '橡胶管', value: '橡胶管'}, {label: '波纹管', value: '波纹管'}, {label: '钢管', value: '钢管'}],
405
+ wz_types: [],
406
+ cityTypes: [{label: '市区', value: '市区'}, {label: '城镇', value: '城镇'}],
407
+ bqf_states: [{label: '开阀', value: '开阀'}, {label: '关阀', value: '关阀'}],
408
+ pcds: [],
409
+ streets: [],
410
+ update: false,
411
+ headername: '基本信息',
412
+ excessive: false,
413
+ area: [],
414
+ areas:[],
415
+ selectAreaName:'',
416
+ f_slice_area:'',
417
+ enable: false,
418
+ f_meterno_path: Vue.nopic,
419
+ selectArea: '',
420
+ selectPcd: {id: ''},
421
+ selectStreet: {id: ''},
422
+ changemeterno: false,//是否修改了机表表号
423
+ approveChange: false,//是否需要进行信息变更审核
424
+ newAddress: '',
425
+ addressType: '',
426
+ //需要审核的字段
427
+ checkField: {
428
+ checkUserinfoField: [
429
+ 'f_user_name'
430
+ ],
431
+ // checkUserFilesField: [
432
+ // 'f_meternumber'
433
+ // ],
434
+ checkAddressField: [
435
+ 'f_pcd_id',
436
+ 'f_street_id',
437
+ 'f_residential_area_id',
438
+ 'f_building',
439
+ 'f_unit',
440
+ 'f_floor',
441
+ 'f_room',
442
+ 'f_slice_area',
443
+ 'f_special',
444
+ 'f_address'
445
+ ],
446
+ },
447
+ boxOptions: [],
448
+ showBox: false,
449
+ directOptions: [{label: '', value: ''}, {label: '否', value: '否'}],
450
+ deviceBrandOption: {},
451
+ isNeedAudit: this.$appdata.getSingleValue('信息变更是否需要审核') == 'false' ? false : true
452
+ }
453
+ },
454
+ props: {
455
+ user: {
456
+ type: Object
457
+ },
458
+ f_userinfo_id: '',
459
+ f_source: ''
460
+ },
461
+ methods: {
462
+ scan() {
463
+ HostApp.__this__ = this,
464
+ HostApp.scanCode({callback: "javascript:HostApp.__this__.getCode();"})
465
+ },
466
+ getCode() {
467
+ var datapa = HostApp.getCode().data;
468
+ //tag
469
+ this.userinfo.meterinfo[0].f_meternumber = datapa
470
+ },
471
+ //数据检查
472
+ checkVal() {
473
+ //检查一些必要信息是否未填
474
+ this.approveChange = false
475
+ this.changemeterno = false
476
+ let checked = {ischeck: true, msg: ''}
477
+ //tag
478
+ //tag
479
+ //tag
480
+ if (!this.userinfo.baseinfo.base.f_user_name) {
481
+ checked = {ischeck: false, msg: '请输入用户名称!'}
482
+ }
483
+ if (!this.selectPcd.id) {
484
+ checked = {ischeck: false, msg: '请选择省市区!'}
485
+ }
486
+ if (!this.selectStreet.id) {
487
+ checked = {ischeck: false, msg: '请选择街道!'}
488
+ }
489
+ if (!this.userinfo.addressinfo.f_address) {
490
+ checked = {ischeck: false, msg: '新地址不能为空!'}
491
+ }
492
+ if (this.addressType == '普通地址') {
493
+ if (!this.selectArea) {
494
+ checked = {ischeck: false, msg: '请选择集收单位!'}
495
+ }
496
+ if (!this.userinfo.addressinfo.f_room) {
497
+ checked = {ischeck: false, msg: '新输入门牌号!'}
498
+ }
499
+ }
500
+ if (this.userinfo.meterinfo[0].f_meter_classify == '机表' && this.userinfo_old.meterinfo[0].f_meternumber) {
501
+
502
+ //tag
503
+ //tag
504
+ if (this.userinfo.meterinfo[0].f_meternumber) {
505
+ // if (this.userinfo.meterinfo[0].f_meternumber != this.userinfo_old.meterinfo[0].f_meternumber) {
506
+ // if (!this.f_meterno_path || this.f_meterno_path == Vue.nopic) {
507
+ // checked = {ischeck: false, msg: '请拍摄表号照片!'}
508
+ // } else {
509
+ // //用来标识当前有修改机表表号,后台需要进行照片上传
510
+ // this.changemeterno = true
511
+ // }
512
+ // }
513
+ } else {
514
+ checked = {ischeck: false, msg: '请输入表号!'}
515
+ }
516
+ }
517
+ //检查本次修改信息中是否包含需要审核的内容
518
+ for (let check in this.checkField) {
519
+ //tag
520
+ if (typeof check != 'function') {
521
+ for (let i = 0; i < this.checkField[check].length; i++) {
522
+ //tag
523
+ if (check == 'checkUserinfoField') {
524
+ //tag
525
+ //tag
526
+ if (this.userinfo.baseinfo.base[this.checkField[check][i]] != this.userinfo_old.baseinfo.base[this.checkField[check][i]]) {
527
+ //tag
528
+ this.approveChange = true
529
+ }
530
+ } else if (check == 'checkUserFilesField') {
531
+ //tag
532
+ //tag
533
+ if (this.userinfo.meterinfo[0][this.checkField[check][i]] != this.userinfo_old.meterinfo[0][this.checkField[check][i]]) {
534
+ //tag
535
+ this.approveChange = true
536
+ }
537
+ } else if (check == 'checkAddressField') {
538
+ //tag
539
+ //tag
540
+ if (this.userinfo.addressinfo[this.checkField[check][i]] != this.userinfo_old.addressinfo[this.checkField[check][i]]) {
541
+ //tag
542
+ this.approveChange = true
543
+ }
544
+ }
545
+ }
546
+ }
547
+ }
548
+ //tag
549
+ return checked
550
+ },
551
+ select_search(text) {
552
+ try {
553
+ if (this.selectStreet && this.selectStreet.id) {
554
+ let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
555
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
556
+ data: {
557
+ items: "*",
558
+ tablename: "t_area",
559
+ orderitem: "id",
560
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
561
+ }
562
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
563
+ //tag)
564
+ if (res.data.length > 0) {
565
+ this.area = []
566
+ res.data.forEach((result) => {
567
+ this.area.push({label: result.f_residential_area, value: result})
568
+ })
569
+ }
570
+ })
571
+ } else {
572
+ this.area = []
573
+ }
574
+ }catch (e) {
575
+ this.area = []
576
+ console.log(e)
577
+ }
578
+ },
579
+ cameraCallBack(prop, fileName) {
580
+ HostApp.__this__.$set(prop, fileName + '?' + Math.random())
581
+ //tag
582
+ HostApp.__callback__ = null
583
+ HostApp.__this__ = null
584
+ },
585
+ takePic(prop, title) {
586
+ HostApp.__callback__ = this.cameraCallBack
587
+ HostApp.__this__ = this
588
+ //tag
589
+ let fileName
590
+ if (!this[prop] || this[prop].includes("nopic.png")) {
591
+ fileName = Util.guid() + '-' + prop + '.jpg'
592
+ } else {
593
+ fileName = Util.getFileName(this[prop])
594
+ }
595
+ HostApp._open_a_page({
596
+ type: 'boomerang',
597
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
598
+ param: {
599
+ file: fileName,
600
+ requestCode: 111,
601
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
602
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
603
+ }
604
+ })
605
+ },
606
+ delfile(prop, fileName) {
607
+ if (fileName == Vue.nopic)
608
+ return
609
+ else {
610
+ HostApp.delfile(fileName)
611
+ this[prop] = Vue.nopic
612
+ }
613
+ },
614
+ editUserInfoNoAudit() {
615
+ let checked = this.checkVal()
616
+ if (!checked.ischeck) {
617
+ this.$showMessage(checked.msg)
618
+ return
619
+ }
620
+ for (let i = 0; i < this.model.length; i++) {
621
+ this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
622
+ }
623
+ this.$showMessage('确定是否修改上传用户信息?', ['confirm', 'cancel']).then((res) => {
624
+ if (res === 'confirm') {
625
+ this.excessive = true
626
+ let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
627
+ // userinfoms.f_user_name=row.f_user_name
628
+ userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
629
+ userinfoms.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
630
+ userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
631
+ userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
632
+ userinfoms.f_operator_record = Vue.user.name
633
+ userinfoms.f_operatorid_record = Vue.user.id
634
+ userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
635
+ userinfoms.f_orgid_record = Vue.user.orgid
636
+ userinfoms.f_orgname_record = Vue.user.orgs
637
+ userinfoms.f_depid_record = Vue.user.depids
638
+ userinfoms.f_depname_record = Vue.user.deps
639
+ this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
640
+ this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
641
+ this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
642
+ this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
643
+ this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
644
+ this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
645
+ this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
646
+ this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
647
+ this.userinfo_old.meterinfo[0].f_meternumber = this.userinfo.meterinfo[0].f_meternumber
648
+ userinfoms.userfiles = []
649
+ this.userinfo_old.meterinfo[0].devicesinfo = this.model
650
+ userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
651
+ let url = 'rs/logic/filemanage_fileSave'
652
+ if(Vue.isv4){
653
+ url ='api/af-revenue/logic/openapi/filemanage_fileSave'
654
+ }
655
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url}`, {
656
+ data: {
657
+ userinfo: userinfoms,
658
+ modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
659
+ address: {
660
+ id: this.userinfo_old.addressinfo.id,
661
+ oldid: this.userinfo_old.addressinfo.id,
662
+ f_address: this.userinfo.addressinfo.f_address ? this.userinfo.addressinfo.f_address : this.userinfo_old.addressinfo.f_address
663
+ }
664
+ }
665
+ }, {resolveMsg: null, rejectMsg: null}).then((res1) => {
666
+ if (res1.data.status == 200) {
667
+ let data = this.userinfo.addressinfo
668
+ data.f_address = this.userinfo.addressinfo.f_address? this.userinfo.addressinfo.f_address : this.userinfo_old.addressinfo.f_address
669
+ //
670
+ data.f_operator = Vue.user.name
671
+ let url1 = 'rs/logic/address_updateuseraddress'
672
+ if(Vue.isv4){
673
+ url1 ='api/af-revenue/logic/openapi/address_updateuseraddress'
674
+ }
675
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url1}`, {data: data}).then((res2) => {
676
+ this.$showMessage("修改用户地址信息成功!")
677
+ }).catch(error => {
678
+ this.$showMessage("修改用户地址信息!")
679
+ })
680
+ this.$showMessage("修改用户信息成功!")
681
+ this.enable = true
682
+ this.excessive = false
683
+ }
684
+ }).catch((msg) => {
685
+ this.$showMessage("修改用户信息失败,请检查手机网络状况!")
686
+ this.excessive = false
687
+ })
688
+ }
689
+ })
690
+ },
691
+ editUserInfo() {
692
+ let checked = this.checkVal()
693
+ if (!checked.ischeck) {
694
+ this.$showMessage(checked.msg)
695
+ return
696
+ }
697
+ this.$showMessage('确定是否修改上传审核用户信息?', ['confirm', 'cancel']).then((res) => {
698
+ if (res === 'confirm') {
699
+ this.excessive = true
700
+ let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
701
+ //userinfoms.f_user_name=row.f_user_name
702
+ userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
703
+ userinfoms.f_idnumber = this.userinfo.baseinfo.base.f_idnumber
704
+ userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
705
+ userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
706
+ userinfoms.f_operator_record = Vue.user.name
707
+ userinfoms.f_operatorid_record = Vue.user.id
708
+ userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
709
+ userinfoms.f_orgid_record = Vue.user.orgid
710
+ userinfoms.f_orgname_record = Vue.user.orgs
711
+ userinfoms.f_depid_record = Vue.user.depids
712
+ userinfoms.f_depname_record = Vue.user.deps
713
+ this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
714
+ this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
715
+ this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
716
+ this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
717
+ this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
718
+ this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
719
+ this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
720
+ this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
721
+ this.userinfo_old.meterinfo[0].f_meternumber = this.userinfo.meterinfo[0].f_meternumber
722
+ userinfoms.userfiles = []
723
+ this.userinfo_old.meterinfo[0].devicesinfo = this.model
724
+ userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
725
+ //tag)
726
+ let url = 'rs/logic/filemanage_fileSave'
727
+ if(Vue.isv4){
728
+ url ='api/af-revenue/logic/openapi/filemanage_fileSave'
729
+ }
730
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/${url}`, {
731
+ data: {
732
+ userinfo: userinfoms,
733
+ modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
734
+ address: {id: this.userinfo_old.addressinfo.id, oldid: this.userinfo_old.addressinfo.id}
735
+ }
736
+ }, {resolveMsg: null, rejectMsg: null}).then((res1) => {
737
+ //tag+res1.data.status)
738
+ if (res1.data.status == 200) {
739
+ //本次修改信息包含需要审核信息
740
+ if (this.approveChange) {
741
+ //tag
742
+ let res2 = this.$androidUtil.bzLogic('safe_upUserinfoApprove', {
743
+ row: {
744
+ f_time: Util.toStandardTimeString(),
745
+ f_modifier: Vue.user.name,//Vue.user.name
746
+ f_modifier_id: Vue.user.id,//Vue.user.id
747
+ f_modify_type: '用户档案',
748
+ f_userinfoid: this.userinfo.baseinfo.base.f_userinfo_id,
749
+ f_userinfo_code: this.userinfo.baseinfo.base.f_userinfo_code,
750
+ f_approved: '未审核',
751
+ filialestr: Vue.user.orgid,//Vue.user.orgid
752
+ version: 1,
753
+ f_user_name: this.userinfo.baseinfo.base.f_user_name,
754
+ f_user_phone: this.userinfo.baseinfo.base.f_user_phone,
755
+ f_street: this.userinfo.addressinfo.f_street,
756
+ f_building: this.userinfo.addressinfo.f_building,
757
+ f_unit: this.userinfo.addressinfo.f_unit,
758
+ f_floor: this.userinfo.addressinfo.f_floor,
759
+ f_room: this.userinfo.addressinfo.f_room,
760
+ f_building_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_building_suffix,
761
+ f_unit_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_unit_suffix,
762
+ f_floor_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_floor_suffix,
763
+ f_room_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_room_suffix,
764
+ f_residential_area: this.userinfo.addressinfo.f_residential_area,
765
+ f_address: this.userinfo.addressinfo.f_address,
766
+ f_pcd: this.userinfo.addressinfo.f_pcd,
767
+ f_pcd_id: this.userinfo.addressinfo.f_pcd_id,
768
+ f_street_id: this.userinfo.addressinfo.f_street_id,
769
+ f_residential_area_id: this.userinfo.addressinfo.f_residential_area_id,
770
+ f_used_name: this.userinfo.baseinfo.base.f_used_name,
771
+ f_rent_phone: this.userinfo.baseinfo.base.f_rent_phone,
772
+ f_slice_area: this.userinfo.addressinfo.f_slice_area,
773
+ f_remark: this.userinfo.baseinfo.base.f_remark,
774
+ f_source: this.f_source,
775
+ f_meterno_path: this.f_meterno_path,
776
+ f_iscity: this.userinfo.addressinfo.f_iscity,
777
+ f_special: this.userinfo.addressinfo.f_special,
778
+ f_meternumber: this.userinfo.meterinfo[0].f_meternumber,
779
+ changemeterno: this.changemeterno
780
+ },
781
+ tablename: 't_modify_userinfo'
782
+ })
783
+ //tag)
784
+ if (res2.code == 200) {
785
+ this.$showMessage("变更用户信息成功,需要审核的信息已提交审核,等待管理员处理!")
786
+ this.enable = true
787
+ this.excessive = false
788
+ } else {
789
+ this.$showMessage("上传审核信息失败,请检查图片和网络状况是否正常!")
790
+ this.excessive = false
791
+ }
792
+ } else {
793
+ this.$showMessage("修改用户信息成功!")
794
+ this.enable = true
795
+ this.excessive = false
796
+ }
797
+
798
+ }
799
+ }).catch((msg) => {
800
+ this.$showMessage("修改用户信息失败,请检查手机网络状况!")
801
+ this.excessive = false
802
+ })
803
+
804
+ }
805
+ })
806
+ },
807
+ imgback(header) {
808
+ if (this.headername == header) {
809
+ return require('../../../assets/xiangxia1.png')
810
+ } else {
811
+ return require('../../../assets/xiangyou1.png')
812
+ }
813
+ this.headername = header
814
+ },
815
+ selectVal(header) {
816
+ if (this.headername == header) {
817
+ this.headername = ''
818
+ } else {
819
+ this.headername = header
820
+ }
821
+
822
+ },
823
+ changeNewAddress() {
824
+ this.userinfo.addressinfo.f_address = this.addressType == '普通地址' ? this.getAddress : this.getAddressTS
825
+ },
826
+ area_change(val) {
827
+ try {
828
+ this.selectArea = val
829
+ if (this.selectArea) {
830
+ this.areas.forEach((result) => {
831
+ if(result.id == this.selectArea){
832
+ this.selectAreaName = result.f_residential_area
833
+ this.f_slice_area = result.f_slice_area
834
+ }
835
+ })
836
+ this.userinfo.addressinfo.f_residential_area = this.selectAreaName
837
+ this.userinfo.addressinfo.f_residential_area_id = this.selectArea
838
+ this.userinfo.addressinfo.f_slice_area = this.f_slice_area
839
+ this.changeNewAddress()
840
+ }
841
+ } catch (e) {
842
+ console.log(e)
843
+ }
844
+ },
845
+ async street_change(val) {
846
+ try {
847
+ this.selectStreet = val
848
+ //tag
849
+ if (this.selectStreet && this.selectStreet.id) {
850
+ //如果街道改变--给街道赋值!
851
+ this.userinfo.addressinfo.f_street = this.selectStreet.f_street
852
+ this.userinfo.addressinfo.f_street_id = this.selectStreet.id
853
+ this.userinfo.addressinfo.f_iscity = this.selectStreet.f_iscity
854
+ //清空当前选中小区的值
855
+ this.userinfo.addressinfo.f_residential_area = ''
856
+ this.userinfo.addressinfo.f_residential_area_id = ''
857
+ this.userinfo.addressinfo.f_slice_area = ''
858
+ this.selectArea = ''
859
+ this.area = []
860
+ this.areas = []
861
+ let pcdText = ` and f_street_id=${this.selectStreet.id}`
862
+ let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy?pageNo=1&pageSize=999999`, {
863
+ data: {
864
+ items: "id,f_residential_area,f_slice_area",
865
+ tablename: "t_area",
866
+ orderitem: "id",
867
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
868
+ }
869
+ }, {resolveMsg: null, rejectMsg: null})
870
+ ////tag)
871
+ this.areas = res.data
872
+ res.data.forEach((result) => {
873
+ this.area.push({label: result.f_residential_area, value: result.id})
874
+ })
875
+ } else {
876
+ this.area = []
877
+ this.areas= []
878
+ }
879
+
880
+ this.changeNewAddress()
881
+ } catch (e) {
882
+ this.area = []
883
+ console.log(e)
884
+ }
885
+ },
886
+ async pcd_change() {
887
+ try {
888
+ //tag
889
+ if (this.selectPcd && this.selectPcd.id) {
890
+ //tag
891
+ //如果省市区改变-重新赋值
892
+ this.userinfo.addressinfo.f_pcd = this.selectPcd.f_pcd
893
+ this.userinfo.addressinfo.f_pcd_id = this.selectPcd.id
894
+ //清空 选中的街道和集收单位
895
+ this.selectStreet = {id: ''}
896
+ this.userinfo.addressinfo.f_street = ''
897
+ this.userinfo.addressinfo.f_street_id = ''
898
+ this.userinfo.addressinfo.f_iscity = ''
899
+ this.selectArea = ''
900
+ this.userinfo.addressinfo.f_residential_area = ''
901
+ this.userinfo.addressinfo.f_residential_area_id = ''
902
+ this.userinfo.addressinfo.f_slice_area = ''
903
+ this.streets = []
904
+ let pcdText = `and f_pcd_id=${this.selectPcd.id}`
905
+ let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
906
+ data: {
907
+ items: "*",
908
+ tablename: "t_street",
909
+ orderitem: "id",
910
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
911
+ }
912
+ }, {resolveMsg: null, rejectMsg: null})
913
+ streetlist.data.forEach((result) => {
914
+ this.streets.push({label: result.f_street, value: result})
915
+ })
916
+ } else {
917
+ this.streets = []
918
+ }
919
+ this.changeNewAddress()
920
+ } catch (e) {
921
+ this.streets = []
922
+ console.log(e)
923
+ }
924
+ },
925
+ upUserState() {
926
+ //tag)
927
+ if (this.userinfo.meterinfo[0].f_table_state == '正常') {
928
+ let data = {
929
+ f_userfiles_id: {
930
+ f_userfiles_id: this.userinfo.meterinfo[0].f_userfiles_id,
931
+ f_table_state: '停用',
932
+ version: this.userinfo.meterinfo[0].version
933
+ },
934
+ f_userfile_id: this.userinfo.meterinfo[0].f_userfiles_id,
935
+ f_user_id: this.userinfo.meterinfo[0].f_user_id,
936
+ f_userinfo_id: this.userinfo.meterinfo[0].f_userinfo_id,
937
+ f_user_name: this.userinfo.baseinfo.base.f_user_name,
938
+ f_comments: '安检时发现问题关闭阀门',
939
+ f_othereason: '',
940
+ f_operat_type: '停用',
941
+ f_describe: `${Vue.user.name}对客户${this.userinfo.baseinfo.base.f_user_name}进行表具停用操作`,
942
+ f_state: '有效',
943
+ f_operator: Vue.user.name,//${Vue.$login.f.name}
944
+ f_operatorid: Vue.user.id,
945
+ f_orgid: Vue.user.orgid,
946
+ f_orgname: Vue.user.orgs,
947
+ f_depid: Vue.user.depids,
948
+ f_depname: Vue.user.deps,
949
+ f_zoneid: Vue.user.zoneid,
950
+ f_zones: Vue.user.zones
951
+ }
952
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
953
+ data, {resolveMsg: null, rejectMsg: null}).then((row) => {
954
+ this.$showMessage('已成功关阀停气!')
955
+ this.userinfo.meterinfo[0].f_table_state = '停用'
956
+ })
957
+ } else {
958
+ this.$showMessage('该用户已被关阀停用,请勿重复操作!')
959
+ }
960
+
961
+ },
962
+ addDevices() {
963
+ //Vue.user.name
964
+ let obj = {
965
+ "f_operator": Vue.user.name,
966
+ "f_picture": null,
967
+ "f_pipe_type": null,
968
+ "f_pipeinstall_date": null,
969
+ "f_pipe_connection": null,
970
+ "f_expire_date": null,
971
+ "f_pipeexpire_date": null,
972
+ "f_comments": null,
973
+ "f_operate_date": Util.toStandardTimeString(),
974
+ "f_operatorid": Vue.user.id,
975
+ "f_devices_num": null,
976
+ "f_process_id": null,
977
+ "f_devices_type": null,
978
+ "f_make_date": null,
979
+ "f_input_date": null,
980
+ "f_state": "有效",
981
+ "f_brand": null,
982
+ "f_devices_model": null,
983
+ "f_devices_no": null,
984
+ "img": {"content": null, "filename": null}
985
+ }
986
+ this.model.push(obj)
987
+ },
988
+ delDevices(idx) {
989
+ //tag
990
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
991
+ if (res === 'confirm') {
992
+ this.model.splice(idx, 1)
993
+ }
994
+ })
995
+ },
996
+ async getAreaList(text) {
997
+ try {
998
+ if (this.selectStreet.id) {
999
+ this.area = []
1000
+ let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
1001
+ let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy?pageNo=1&pageSize=999999`, {
1002
+ data: {
1003
+ items: "id,f_residential_area",
1004
+ tablename: "t_area",
1005
+ orderitem: "id",
1006
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
1007
+ }
1008
+ }, {resolveMsg: null, rejectMsg: null})
1009
+ ////tag)
1010
+ res.data.forEach((result) => {
1011
+ this.area.push({label: result.f_residential_area, value: result})
1012
+ })
1013
+ //tag
1014
+ this.area.push({
1015
+ label: this.userinfo.addressinfo.f_residential_area,
1016
+ value: {
1017
+ id: this.userinfo.addressinfo.f_residential_area_id,
1018
+ f_residential_area: this.userinfo.addressinfo.f_residential_area
1019
+ }
1020
+ })
1021
+ } else {
1022
+ this.area = []
1023
+ }
1024
+ } catch (e) {
1025
+ this.area = []
1026
+ console.log(e)
1027
+ }
1028
+
1029
+ },
1030
+ async getStreetList() {
1031
+ try {
1032
+ if (this.selectPcd.id) {
1033
+ //tag
1034
+ this.streets = []
1035
+ let pcdText = `and f_pcd_id=${this.selectPcd.id}`
1036
+ let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1037
+ data: {
1038
+ items: "*",
1039
+ tablename: "t_street",
1040
+ orderitem: "id",
1041
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
1042
+ }
1043
+ }, {resolveMsg: null, rejectMsg: null})
1044
+ streetlist.data.forEach((result) => {
1045
+ //如果第一次进来有地址id 就拿下地址区域
1046
+ if (this.selectStreet.id && this.selectStreet.id == result.id) {
1047
+ //tag)
1048
+ this.userinfo.addressinfo.f_iscity = result.f_iscity
1049
+ }
1050
+ this.streets.push({label: result.f_street, value: result})
1051
+ })
1052
+ } else {
1053
+ this.streets = []
1054
+ }
1055
+ }catch (e) {
1056
+ this.streets = []
1057
+ console.log(e)
1058
+ }
1059
+ },
1060
+ changeAddressType(val) {
1061
+ //tag
1062
+ if (this.addressType == '普通地址') {
1063
+ this.userinfo.addressinfo.f_special = null
1064
+ } else if (this.addressType == '特殊地址') {
1065
+ this.userinfo.addressinfo.f_special = 1
1066
+ this.userinfo.addressinfo.f_building = null
1067
+ this.userinfo.addressinfo.f_unit = null
1068
+ this.userinfo.addressinfo.f_floor = null
1069
+ this.userinfo.addressinfo.f_room = null
1070
+ }
1071
+ this.changeNewAddress()
1072
+ }
1073
+
1074
+ },
1075
+ computed: {
1076
+ getAddress() {
1077
+ return (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1078
+ (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '') +
1079
+ (this.userinfo.addressinfo.f_building ? this.userinfo.addressinfo.f_building + (this.userinfo.addressinfo.f_building_suffix ? this.userinfo.addressinfo.f_building_suffix : '') : '') +
1080
+ (this.userinfo.addressinfo.f_unit ? this.userinfo.addressinfo.f_unit + (this.userinfo.addressinfo.f_unit_suffix ? this.userinfo.addressinfo.f_unit_suffix : '') : '') +
1081
+ (this.userinfo.addressinfo.f_floor ? this.userinfo.addressinfo.f_floor + (this.userinfo.addressinfo.f_floor_suffix ? this.userinfo.addressinfo.f_floor_suffix : '') : '') +
1082
+ (this.userinfo.addressinfo.f_room ? this.userinfo.addressinfo.f_room + (this.userinfo.addressinfo.f_room_suffix ? this.userinfo.addressinfo.f_room_suffix : '') : '')
1083
+ },
1084
+ getAddressTS() {
1085
+ return (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1086
+ (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '')
1087
+ }
1088
+ },
1089
+ watch: {
1090
+
1091
+ /*'selectPcd.id' (val) {
1092
+ //tag
1093
+ if(this.selectPcd.id){
1094
+ this.getStreetList()
1095
+ }
1096
+ },
1097
+ 'selectStreet.id' (val) {
1098
+ //tag
1099
+ if(this.selectStreet.id){
1100
+ this.getAreaList()
1101
+ }
1102
+ }*/
1103
+ },
1104
+ async ready() {
1105
+ /*//tag)
1106
+
1107
+ //tag)
1108
+ //tag)*/
1109
+ //this.f_userinfo_id=1102260
1110
+ //this.f_userinfo_id=1997541
1111
+ if (!this.f_userinfo_id) {
1112
+ this.$showMessage("未检测到用户!")
1113
+ this.enable = true
1114
+ return
1115
+ }
1116
+ try {
1117
+
1118
+ this.devices_types = Vue.$appdata.getParam('设备类型')
1119
+ console.log('this.devices_types=', JSON.stringify(this.devices_types))
1120
+ if (this.devices_types){
1121
+ for (const devices_type of this.devices_types) {
1122
+ console.log('Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)=', JSON.stringify(Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)))
1123
+ this.deviceBrandOption[devices_type.label] = Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`) || []
1124
+ }
1125
+ }
1126
+ console.log('this.deviceBrandOption=', JSON.stringify(this.deviceBrandOption))
1127
+ this.wz_types = Vue.$appdata.getParam('安装位置')
1128
+ this.aroundmeters = Vue.$appdata.getParam('左右表')
1129
+
1130
+ ////tag)
1131
+ this.excessive = true
1132
+ //Vue.user.orgid ${this.f_userinfo_id} 10101 ${Vue.user.orgid}
1133
+
1134
+ let pcdlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1135
+ data: {
1136
+ items: "*",
1137
+ tablename: "t_pcd",
1138
+ orderitem: "id",
1139
+ condition: `f_orgid = '${Vue.user.orgid}'`
1140
+ }
1141
+ }, {resolveMsg: null, rejectMsg: null})
1142
+ //tag)
1143
+ pcdlist.data.forEach((result) => {
1144
+ this.pcds.push({label: result.f_pcd, value: result})
1145
+ })
1146
+ let url = 'rs/logic/filemanage_getFilesDetail'
1147
+ if(Vue.isv4){
1148
+ url ='api/af-revenue/logic/openapi/filemanage_getFilesDetail'
1149
+ }
1150
+ let res = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/${url}`, {
1151
+ //f_userinfo_code:'12381344',
1152
+ f_userinfo_id: this.f_userinfo_id
1153
+ }, {resolveMsg: null, rejectMsg: null})
1154
+ //tag
1155
+ //tag
1156
+ this.userinfo = res.data
1157
+ this.userinfo_old = JSON.parse(JSON.stringify(res.data))
1158
+ this.model = this.userinfo.meterinfo[0].devicesinfo
1159
+ this.selectArea = this.userinfo.addressinfo.f_residential_area_id
1160
+ this.selectPcd.id = this.userinfo.addressinfo.f_pcd_id
1161
+ this.selectPcd.f_pcd = this.userinfo.addressinfo.f_pcd
1162
+ this.selectStreet.id = this.userinfo.addressinfo.f_street_id
1163
+ this.selectStreet.f_street = this.userinfo.addressinfo.f_street
1164
+ await this.getStreetList()
1165
+ await this.getAreaList()
1166
+ this.excessive = false
1167
+ this.addressType = this.userinfo.addressinfo.f_special == 1 ? '特殊地址' : '普通地址'
1168
+ //this.userinfo.addressinfo.f_special=1
1169
+ //tag
1170
+ } catch (e) {
1171
+ this.excessive = false
1172
+ this.enable = true
1173
+ this.$showMessage('获取用户信息出错,请检查网络状况!')
1174
+ }
1175
+ new HttpResetClass().load('get', `${this.$androidUtil.getProxyUrl()}/rs/vue/UserAddress.json`, {data: {}}, {
1176
+ resolveMsg: null,
1177
+ rejectMsg: null
1178
+ }).then((addressUnit) => {
1179
+ //tag
1180
+ //tag
1181
+ //tag
1182
+ //tag
1183
+ this.userinfo.addressinfo.f_building_suffix = addressUnit.data.f_building_suffix
1184
+ this.userinfo.addressinfo.f_unit_suffix = addressUnit.data.f_unit_suffix
1185
+ this.userinfo.addressinfo.f_floor_suffix = addressUnit.data.f_floor_suffix
1186
+ this.userinfo.addressinfo.f_room_suffix = addressUnit.data.f_room_suffix
1187
+ }).catch((msg) => {
1188
+ //tag)
1189
+ })
1190
+ this.showBox = this.$appdata.getSingleValue('档案审核是否显示调压箱') == '是'? true : false
1191
+ console.log(this.showBox)
1192
+ if (this.showBox) {
1193
+ // 获取调压箱
1194
+ let url = 'rs/sql/adjustableboxQuery'
1195
+ if(Vue.isv4){
1196
+ url ='api/af-revenue/sql/adjustableboxQuery'
1197
+ }
1198
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/${url}`, {data: {condition: '1 = 1'}}, {
1199
+ resolveMsg: null,
1200
+ rejectMsg: null
1201
+ }).then((res) => {
1202
+ const boxOptions = []
1203
+ for (const data of res.data) {
1204
+ const one = {
1205
+ label: data.f_adjustable_id + data.f_adjustable_name,
1206
+ value: Number(data.f_adjustable_id)
1207
+ }
1208
+ boxOptions.push(one)
1209
+ }
1210
+ this.boxOptions = JSON.parse(JSON.stringify(boxOptions))
1211
+ console.log(this.boxOptions)
1212
+ }).catch((msg) => {
1213
+ //tag)
1214
+ })
1215
+ }
1216
+ }
1217
+ }
1218
+ </script>
1219
+ <style lang="less" scoped>
1220
+ .butt3 {
1221
+ float: right;
1222
+ width: 12px;
1223
+ margin: 1% 2% 0 0;
1224
+ }
1225
+
1226
+ .rightipt {
1227
+ width: 60%;
1228
+ float: left;
1229
+ margin-left: 5%;
1230
+ }
1231
+
1232
+ .righttxt {
1233
+ border: none;
1234
+ margin-left: 5px;
1235
+ /*border-left: 5px solid #A2C2EB;*/
1236
+ float: left;
1237
+ width: 25%;
1238
+ margin-bottom: 3px;
1239
+ text-align: left;
1240
+ word-wrap: break-word;
1241
+ white-space: normal;
1242
+ }
1243
+
1244
+ .tit1 {
1245
+ /*background: #ffffff url('../../../assets/用户姓名.png') no-repeat fixed center;*/
1246
+ background-image: url('../../../assets/用户姓名.png');
1247
+ background-repeat: no-repeat;
1248
+ background-position: center;
1249
+ }
1250
+
1251
+ .spanboder {
1252
+ border-bottom: 2px solid #499edf;
1253
+ padding-bottom: 8px
1254
+ }
1255
+
1256
+ #upuserinfo_sel /deep/ ul {
1257
+ width: 100% !important;
1258
+ left: 0 !important;
1259
+ }
1260
+
1261
+ .btn-photo {
1262
+ border: 0;
1263
+ border-radius: 7px;
1264
+ background-color: #7dc1f4;
1265
+ font: 15px PingFang-SC-Bold;
1266
+ height: 20%;
1267
+ }
1268
+
1269
+ .panel-self {
1270
+ border-radius: 10px;
1271
+ border: 1px solid #499EDF;
1272
+ background-color: #F8F8F8;
1273
+ }
1274
+
1275
+ .div-photo {
1276
+ width: auto;
1277
+ height: auto;
1278
+ /* margin-top: 10px; */
1279
+ position: absolute;
1280
+ bottom: 10px;
1281
+ right: 10px;
1282
+ }
1283
+ </style>
1284
+ <style lang="less">
1285
+ #upuserinfo_sel ul {
1286
+ width: 100% !important;
1287
+ left: 0 !important;
1288
+ }
1289
+ </style>