safecheck-client 3.0.35-15 → 3.0.35-16

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