safecheck-client 3.0.35-31 → 3.0.35-33

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