safecheck-client 4.0.1-1 → 4.0.1-11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) 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/App.vue +31 -31
  49. package/src/Widget.vue +13 -13
  50. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  51. package/src/android-bootstrap/less/.csscomb.json +304 -304
  52. package/src/android-bootstrap/less/.csslintrc +19 -19
  53. package/src/android-bootstrap/less/alerts.less +73 -73
  54. package/src/android-bootstrap/less/badges.less +66 -66
  55. package/src/android-bootstrap/less/bootstrap.less +56 -56
  56. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  57. package/src/android-bootstrap/less/button-groups.less +247 -247
  58. package/src/android-bootstrap/less/buttons.less +173 -173
  59. package/src/android-bootstrap/less/carousel.less +269 -269
  60. package/src/android-bootstrap/less/close.less +34 -34
  61. package/src/android-bootstrap/less/code.less +69 -69
  62. package/src/android-bootstrap/less/component-animations.less +33 -33
  63. package/src/android-bootstrap/less/grid.less +84 -84
  64. package/src/android-bootstrap/less/input-groups.less +167 -167
  65. package/src/android-bootstrap/less/jumbotron.less +52 -52
  66. package/src/android-bootstrap/less/labels.less +64 -64
  67. package/src/android-bootstrap/less/list-group.less +141 -141
  68. package/src/android-bootstrap/less/media.less +66 -66
  69. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  70. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  71. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  72. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  73. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  74. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  75. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  76. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  77. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  78. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  79. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  80. package/src/android-bootstrap/less/mixins/image.less +33 -33
  81. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  82. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  83. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  84. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  85. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  86. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  87. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  88. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  89. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  90. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  91. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  92. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  93. package/src/android-bootstrap/less/mixins/size.less +10 -10
  94. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  95. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  96. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  97. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  98. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  99. package/src/android-bootstrap/less/mixins.less +40 -40
  100. package/src/android-bootstrap/less/modals.less +151 -151
  101. package/src/android-bootstrap/less/navbar.less +660 -660
  102. package/src/android-bootstrap/less/navs.less +290 -290
  103. package/src/android-bootstrap/less/normalize.less +424 -424
  104. package/src/android-bootstrap/less/pager.less +76 -76
  105. package/src/android-bootstrap/less/pagination.less +89 -89
  106. package/src/android-bootstrap/less/panels.less +274 -274
  107. package/src/android-bootstrap/less/popovers.less +131 -131
  108. package/src/android-bootstrap/less/print.less +101 -101
  109. package/src/android-bootstrap/less/progress-bars.less +87 -87
  110. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  111. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  112. package/src/android-bootstrap/less/scaffolding.less +161 -161
  113. package/src/android-bootstrap/less/tables.less +262 -262
  114. package/src/android-bootstrap/less/theme.less +291 -291
  115. package/src/android-bootstrap/less/thumbnails.less +36 -36
  116. package/src/android-bootstrap/less/tooltip.less +102 -102
  117. package/src/android-bootstrap/less/type.less +303 -303
  118. package/src/android-bootstrap/less/utilities.less +55 -55
  119. package/src/android-bootstrap/less/variables.less +896 -896
  120. package/src/android-bootstrap/less/wells.less +29 -29
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/grid.less +84 -84
  134. package/src/bootstrap/less/input-groups.less +167 -167
  135. package/src/bootstrap/less/jumbotron.less +52 -52
  136. package/src/bootstrap/less/labels.less +64 -64
  137. package/src/bootstrap/less/list-group.less +141 -141
  138. package/src/bootstrap/less/media.less +66 -66
  139. package/src/bootstrap/less/mixins/alerts.less +14 -14
  140. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  141. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  142. package/src/bootstrap/less/mixins/buttons.less +69 -69
  143. package/src/bootstrap/less/mixins/center-block.less +7 -7
  144. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  145. package/src/bootstrap/less/mixins/forms.less +90 -90
  146. package/src/bootstrap/less/mixins/gradients.less +59 -59
  147. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  148. package/src/bootstrap/less/mixins/grid.less +122 -122
  149. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  150. package/src/bootstrap/less/mixins/image.less +33 -33
  151. package/src/bootstrap/less/mixins/labels.less +12 -12
  152. package/src/bootstrap/less/mixins/list-group.less +30 -30
  153. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  154. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  155. package/src/bootstrap/less/mixins/opacity.less +8 -8
  156. package/src/bootstrap/less/mixins/pagination.less +24 -24
  157. package/src/bootstrap/less/mixins/panels.less +24 -24
  158. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  159. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  160. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  161. package/src/bootstrap/less/mixins/resize.less +6 -6
  162. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  163. package/src/bootstrap/less/mixins/size.less +10 -10
  164. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  165. package/src/bootstrap/less/mixins/table-row.less +44 -44
  166. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  167. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  168. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  169. package/src/bootstrap/less/mixins.less +40 -40
  170. package/src/bootstrap/less/modals.less +151 -151
  171. package/src/bootstrap/less/navbar.less +660 -660
  172. package/src/bootstrap/less/normalize.less +424 -424
  173. package/src/bootstrap/less/pagination.less +89 -89
  174. package/src/bootstrap/less/panels.less +275 -275
  175. package/src/bootstrap/less/popovers.less +131 -131
  176. package/src/bootstrap/less/print.less +101 -101
  177. package/src/bootstrap/less/progress-bars.less +87 -87
  178. package/src/bootstrap/less/responsive-embed.less +35 -35
  179. package/src/bootstrap/less/responsive-utilities.less +194 -194
  180. package/src/bootstrap/less/scaffolding.less +161 -161
  181. package/src/bootstrap/less/theme.less +291 -291
  182. package/src/bootstrap/less/thumbnails.less +36 -36
  183. package/src/bootstrap/less/tooltip.less +102 -102
  184. package/src/bootstrap/less/type.less +303 -303
  185. package/src/bootstrap/less/utilities.less +55 -55
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/FileUpload.vue +696 -696
  188. package/src/components/Hello.vue +39 -39
  189. package/src/components/LeftTree.vue +27 -27
  190. package/src/components/NewDefectList/DefectListNew.vue +3 -0
  191. package/src/components/NewDefectList/DefectPaperNew.vue +1184 -1184
  192. package/src/components/Util/SafecheckUpload.vue +281 -281
  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/PaperAlarm.vue +85 -85
  205. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  206. package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
  207. package/src/components/android/PlumberAnnual.vue +83 -83
  208. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  209. package/src/components/android/PlumberMonthly.vue +84 -84
  210. package/src/components/android/PostMap.vue +83 -83
  211. package/src/components/android/QueryCheckHistory.vue +122 -122
  212. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  213. package/src/components/android/RepairMain.vue +60 -60
  214. package/src/components/android/Repairman.vue +12 -12
  215. package/src/components/android/SafeRightTree.vue +4 -3
  216. package/src/components/android/SafecheckDevices.vue +1340 -1340
  217. package/src/components/android/StationMaster.vue +12 -12
  218. package/src/components/android/SwitchValve.vue +323 -323
  219. package/src/components/defects/DefectModal.vue +101 -101
  220. package/src/components/defects/DevicesAndItem.vue +39 -39
  221. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  222. package/src/components/notice/NoticeForm.vue +100 -100
  223. package/src/components/notice/NoticeIssue.vue +20 -20
  224. package/src/components/paper/PaperList.vue +797 -797
  225. package/src/components/paper/PicViewer.vue +18 -18
  226. package/src/components/pc/CheckBook.vue +303 -303
  227. package/src/components/pc/CheckBookArea.vue +146 -146
  228. package/src/components/pc/CheckBookCompany.vue +144 -144
  229. package/src/components/pc/CheckBookDetails.vue +161 -161
  230. package/src/components/pc/CheckBookEntry.vue +60 -60
  231. package/src/components/pc/CheckBookSearchArea.vue +560 -560
  232. package/src/components/pc/CheckBookSearchUnit.vue +229 -229
  233. package/src/components/pc/CheckBookSearchUser.vue +659 -659
  234. package/src/components/pc/CheckBookSearchUserList.vue +674 -674
  235. package/src/components/pc/CheckBookUser.vue +337 -333
  236. package/src/components/pc/PaperDefectMain.vue +880 -880
  237. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  238. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  239. package/src/components/phonestate/PostMap.vue +82 -82
  240. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  241. package/src/components/userfile/MeterFile.vue +145 -145
  242. package/src/components/userfile/MeterModify.vue +46 -46
  243. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  244. package/src/filiale/jinhong/pc/CheckBookList.vue +2 -2
  245. package/src/filiale/jinhong/pc/DefectPaperNew.vue +10 -10
  246. package/src/filiale/jinhong/pc/checkUserList.vue +1 -2
  247. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  248. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  249. package/src/filiale/meihekou/android/CurrentCreate.vue +1038 -1038
  250. package/src/filiale/meihekou/android/PaperFeedback.vue +1542 -1542
  251. package/src/filiale/meihekou/android/SafecheckDevices.vue +1340 -1340
  252. package/src/filiale/meihekou/android/SafecheckOrderV.vue +2431 -2421
  253. package/src/filiale/meihekou/android.js +22 -22
  254. package/src/filiale/meihekou/pc/NewCheckpaper.vue +2027 -2027
  255. package/src/filiale/minsheng/android/SwitchValve.vue +497 -497
  256. package/src/filiale/qianneng/android/SwitchValve.vue +370 -370
  257. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1 -0
  258. package/src/filiale/taiyuan/android/CurrentCreate.vue +1016 -0
  259. package/src/filiale/taiyuan/android.js +10 -0
  260. package/src/filiale/tongchuan/android/SwitchValve.vue +284 -284
  261. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  262. package/src/filiale/yunchengminsheng/android/SafecheckOrderV.vue +2 -0
  263. package/src/main.js +33 -33
  264. package/src/plugins/LoadData.js +10 -10
  265. package/src/plugins/LoadParams.js +24 -24
  266. package/src/stores/wxconfig.js +10 -10
  267. package/src/utils/getNowDate.js +33 -33
  268. package/test/e2e/custom-assertions/elementCount.js +26 -26
  269. package/test/e2e/nightwatch.conf.js +40 -40
  270. package/test/e2e/runner.js +30 -30
  271. package/test/e2e/specs/test.js +13 -13
  272. package/test/unit/.eslintrc +5 -5
  273. package/test/unit/TestUtil.js +62 -62
  274. package/test/unit/context.html +20 -20
  275. package/test/unit/index.js +13 -13
@@ -1,497 +1,497 @@
1
- <style scoped>
2
- .app-row {
3
- background-color: white;
4
- padding: 10px 10px 0 10px;
5
- border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
- }
7
- .search_input {
8
- border: 0;
9
- outline: none;
10
- }
11
- .font{
12
- font: 15px PingFang-SC-Medium;
13
- color: #666666;
14
- }
15
- .input-font{
16
- font: 15px PingFang-SC-Medium;
17
- color: #333333;
18
- }
19
- .btn-font{
20
- font:600 16px PingFang-SC-Bold;
21
- color: #499EDF;
22
- }
23
- .btn-color{
24
- background-color: #FFFFFF;
25
- border-radius: 10px ;
26
- border: 1px solid #499EDF;
27
- }
28
- .app-text {
29
- font-size: 12px;
30
- }
31
- .panel-self{
32
- border-radius: 10px;
33
- border:1px solid #499EDF;
34
- background-color: #F8F8F8;
35
- }
36
- </style>
37
-
38
- <template>
39
- <div class="auto">
40
- <criteria-paged :model="model" v-ref:paged>
41
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
42
- <div partial>
43
- <p align="center" style="color: maroon" v-if="!$parent.$parent.isHaveJiBiao">只限物联网表进行开关阀操作</p>
44
- <p align="center" style="color: maroon" v-if="$parent.$parent.isHaveJiBiao">只限物联网表和机表进行操作</p>
45
- <form>
46
- <div class="row app-row">
47
- <div class="col-xs-4">
48
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
49
- <label for="f_userinfo_code" class="font text-left">用户编号:</label>
50
- </div>
51
- <div class="col-xs-8" >
52
- <input id="f_userinfo_code" class="search_input input-font" v-model="$parent.$parent.f_userinfo_code" />
53
- </div>
54
- </div>
55
- <div class="row app-row">
56
- <div class="col-xs-4">
57
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
58
- <label for="f_meternumber" class="font text-left">用户表号:</label>
59
- </div>
60
- <div class="col-xs-8" >
61
- <input id="f_meternumber" class="search_input input-font" v-model="$parent.$parent.f_meternumber" />
62
- </div>
63
- </div>
64
- <div class="row app-row" v-if="$parent.$parent.isHaveJiBiao">
65
- <div class="col-xs-4">
66
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
67
- <label for="f_meternumber" class="font text-left">气表类型:</label>
68
- </div>
69
- <div class="col-xs-8" >
70
- <v-select
71
- class="input-font"
72
- placeholder='请选择气表类型'
73
- :value.sync="$parent.$parent.f_meter_type"
74
- v-model="$parent.$parent.f_meter_type"
75
- :options='$parent.$parent.meterTypeOptions'
76
- close-on-select
77
- clear-button>
78
- </v-select>
79
- </div>
80
- </div>
81
- <div class="row app-row">
82
- <div class="col-xs-4">
83
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
84
- <label for="f_meternumber" class="font text-left">阀门状态:</label>
85
- </div>
86
- <div class="col-xs-8" >
87
- <v-select
88
- class="input-font"
89
- placeholder='请选择阀门状态'
90
- :value.sync="$parent.$parent.f_valve_state"
91
- v-model="$parent.$parent.f_valve_state"
92
- :options="[{label: '全部', value: ''}, {label: '开阀', value: '开阀'}, {label: '关阀', value: '关阀'}]"
93
- close-on-select
94
- clear-button>
95
- </v-select>
96
- </div>
97
- </div>
98
- <div class="row app-row" >
99
- <div class="col-xs-4" style="margin-bottom: 6px">
100
- <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
101
- <span class="text-left font">小区</span>
102
- </div>
103
- <div class="col-xs-8">
104
- <v-select style="width:60%" :value.sync="model.f_residential_area" :value-single="true"
105
- @change="$parent.$parent.getbuilding(model.f_residential_area)"
106
- :options='$parent.$parent.residential' placeholder='请选择小区'
107
- close-on-select>
108
- </v-select>
109
-
110
- </div>
111
- </div>
112
-
113
- <div class="row app-row" >
114
- <div class="col-xs-4" style="margin-bottom: 6px">
115
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
116
- <span class="text-left font">楼栋</span>
117
- </div>
118
- <div class="col-xs-8">
119
- <v-select style="width:60%" :value.sync="model.f_building" :value-single="true"
120
- @change="$parent.$parent.getunit(model.f_residential_area,model.f_building)"
121
- :options='$parent.$parent.building' placeholder='请选择楼栋'
122
- close-on-select>
123
- </v-select>
124
-
125
- </div>
126
- </div>
127
- <div class="row app-row" >
128
- <div class="col-xs-4" style="margin-bottom: 6px" >
129
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
130
- <span class="text-left font">单元</span>
131
- </div>
132
- <div class="col-xs-8">
133
- <v-select style="width:60%" :value.sync="model.f_unit" :value-single="true"
134
- :options='$parent.$parent.unit' placeholder='请选择单元'
135
- close-on-select>
136
- </v-select>
137
-
138
- </div>
139
- </div>
140
- <div class="row app-row">
141
- <div class="col-xs-4">
142
- <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
143
- <label class="font text-left">用户地址:</label>
144
- </div>
145
- <div class="col-xs-8" >
146
- <input class="search_input input-font"
147
- v-model=model.f_address condition="f_address like '%{}%'" />
148
- </div>
149
- </div>
150
- <div class="row app-row">
151
- <div class="col-xs-4">
152
- <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
153
- <label class="font text-left">系统余额:</label>
154
- </div>
155
- <div class="col-xs-2" >
156
- <input style="width: 100%" class="input-font" v-model="$parent.$parent.f_system_amount_start" />
157
- </div>
158
- <div class="col-xs-2" style="display: flex; justify-content: center">
159
- ≤ x ≤
160
- </div>
161
- <div class="col-xs-2" >
162
- <input style="width: 100%" class="input-font" v-model="$parent.$parent.f_system_amount_end" />
163
- </div>
164
- </div>
165
- <div class="row text-center" style="margin-top: 20px;">
166
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="search">查询</button>
167
- </div>
168
- <div style="height:30px;"></div>
169
- </form>
170
- </div>
171
- </criteria>
172
- <list :model="model" partial='list'>
173
- <div partial>
174
- <div class="auto app-text" style="margin-top: 5px;">
175
- <div class="panel" style="padding: 10px 10px 5px 10px;">
176
- <div class="panel-body panel-self">
177
- <div class="col-xs-12">
178
- <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户编号:</b></p>
179
- <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_userinfo_code }}</p>
180
- </div>
181
- <div class="col-xs-12">
182
- <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户名称:</b></p>
183
- <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_name }}</p>
184
- </div>
185
- <div class="col-xs-12">
186
- <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
187
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
188
- </p>
189
- </div>
190
- <div class="col-xs-12">
191
- <p class="panel-title col-xs-5 text-left font"><b>用户电话:</b></p>
192
- <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_phone }}
193
- </p>
194
- </div>
195
- <div class="col-xs-12">
196
- <p class="panel-title text-left font" style="float: left"><b>用户地址:</b></p>
197
- <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_address }}</p>
198
- </div>
199
- <div class="col-xs-12">
200
- <p class="panel-title col-xs-5 text-left font"><b>燃气表号:</b></p>
201
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meternumber }}</p>
202
- </div>
203
- <div class="col-xs-12">
204
- <p class="panel-title col-xs-5 text-left font"><b>左右表:</b></p>
205
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_aroundmeter }}</p>
206
- </div>
207
- <div class="col-xs-12">
208
- <p class="panel-title col-xs-5 text-left font"><b>气表品牌:</b></p>
209
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meter_brand }}</p>
210
- </div>
211
- <div class="col-xs-12">
212
- <p class="panel-title col-xs-5 text-left font"><b>气表类型:</b></p>
213
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meter_type }}</p>
214
- </div>
215
- <div class="col-xs-12">
216
- <p class="panel-title col-xs-5 text-left font"><b>最近缴费时间:</b></p>
217
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_operate_date }}</p>
218
- </div>
219
- <div class="col-xs-12">
220
- <p class="panel-title col-xs-5 text-left font"><b>最近缴费金额:</b></p>
221
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_collection ? `${row.f_collection.toFixed(2)}元` : '' }}</p>
222
- </div>
223
- <div class="col-xs-12">
224
- <p class="panel-title col-xs-5 text-left font"><b>系统余额:</b></p>
225
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_system_amount ? row.f_system_amount.toFixed(2) : 0 }}元</p>
226
- </div>
227
- <div class="col-xs-12">
228
- <p class="panel-title col-xs-5 text-left font"><b>阀门状态:</b></p>
229
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_valve_state || '暂无' }}</p>
230
- </div>
231
- <div class="col-xs-12" v-if="row.f_valve_state == '关阀'">
232
- <p class="panel-title col-xs-5 text-left font"><b>关阀原因:</b></p>
233
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_off_valve_reason || '暂无' }}</p>
234
- </div>
235
- <div class="col-xs-12">
236
- <p class="panel-title col-xs-5 text-left font"><b>开关阀时间:</b></p>
237
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_instruct_date || '无' }}</p>
238
- </div>
239
- <div class="col-xs-6" v-if="row.f_meter_type == '物联网表'">
240
- <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_valve_state == '关阀'" @click="$parent.$parent.$parent.openvalve(row)">开阀</button>
241
- <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_valve_state == '开阀'" @click="$parent.$parent.$parent.clonevalve(row)">关阀</button>
242
- <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_meter_brand.includes('西美')" @click="$parent.$parent.$parent.clearBarrier(row)">清除障碍</button>
243
- </div>
244
- <div class="col-xs-6" v-if="row.f_meter_type == '机表'">
245
- <button class="btn btn-font btn-color" type="button" style="width: 50%;padding: 2px 5px;" @click="$parent.$parent.$parent.goVindicate(row)">档案维护</button>
246
- </div>
247
- </div>
248
- </div>
249
- </div>
250
- </div>
251
- </list>
252
- </criteria-paged>
253
- <modal :show.sync="showModal" :backdrop="false">
254
- <div slot="modal-header" class="modal-header">
255
- <h4 class="modal-title">
256
- {{modalTitle}}
257
- </h4>
258
- </div>
259
- <div slot="modal-body" class="modal-body">
260
- <div class="row" style="margin-top: 6px">
261
- <textarea id="el_ca_txt" v-model.trim="f_comments" style="border-radius:4px;width: 100%;" placeholder="请输入开阀原因" v-if="istype == '开阀'" >
262
- </textarea>
263
- <v-select class="rightipt" :value.sync="f_comments_temp"
264
- v-model="f_comments_temp"
265
- placeholder='请选择关阀原因'
266
- :width='"60%"'
267
- v-else
268
- readonly
269
- :options="bqf_states_reasons"
270
- close-on-select value-single></v-select>
271
- <textarea id="el_ca_txt_a" v-model.trim="f_comments" style="border-radius:4px;width: 100%;" placeholder="请输入关阀原因" v-if="f_comments_temp == '其他'" >
272
- </textarea>
273
- </div>
274
- </div>
275
- <div slot="modal-footer" class="modal-footer">
276
- <button type="button" class="btn btn-default" @click="showModal = false">取消</button>
277
- <button type="button" class="btn btn-success" @click="openOrCloneValveMethod(istype)">{{istype}}</button>
278
- </div>
279
- </modal>
280
- </div>
281
- </template>
282
-
283
- <script>
284
- import Vue from 'vue'
285
- import PhoneUpUserinfo from './PhoneUpUserinfo'
286
- import { PagedList,HttpResetClass } from 'vue-client'
287
-
288
- export default {
289
- title: '开关阀',
290
- data () {
291
- return {
292
- model: Vue.android ? new PagedList(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/SwitchValveSeachUser`, 5) : new PagedList( 'AndroidRest/api/af-safecheck/sql/SwitchValveSeachUser',5),
293
- f_meternumber: '',
294
- f_userinfo_code: '',
295
- f_operator: Vue.user.name,
296
- filialeid: Vue.user.orgid,
297
- type: '',
298
- residential:[{label:'全部',value:''}],
299
- unit:[{label:'全部',value:''}],
300
- building:[{label:'全部',value:''}],
301
- showModal: false,
302
- modalTitle: '', //开关阀标题
303
- f_comments: '', //开关阀原因
304
- f_comments_temp:'',
305
- bqf_states_reasons:Vue.$appdata.getParam('关阀原因'),
306
- istype: '', //
307
- thisOneData: '', //当前操作的用户
308
- f_meter_type: '',
309
- condition: '',
310
- isHaveJiBiao: false,
311
- meterTypeOptions: [{label: '全部', value: ''}, {label: '物联网表', value: '物联网表'}, {label: '机表', value: '机表'}],
312
- f_valve_state: '',
313
- f_system_amount_start: '',
314
- f_system_amount_end: ''
315
- }
316
- },
317
- async ready () {
318
- this.isHaveJiBiao = this.$appdata.getSingleValue('开关阀是否查询机表') === '是'
319
- if (this.isHaveJiBiao) {
320
- this.condition = " and f_meter_type in ('物联网表', '机表')"
321
- } else {
322
- this.condition = " and f_meter_type in ('物联网表')"
323
- }
324
- await this.getAreaList()
325
- },
326
- methods: {
327
- getbuilding(area) {
328
- this.building=[{label:'全部',value:''}]
329
- let res = new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
330
- data: {
331
- items: "f_building",
332
- tablename: "t_user_address",
333
- condition: `f_residential_area='${area}'`,
334
- groupitem: "f_building"
335
- }
336
- }, {resolveMsg: null, rejectMsg: null}).then((res)=>{
337
- if (res.data) {
338
- for(let i =0 ;i<res.data.length;i++){
339
- this.building.push({label:res.data[i].f_building,value:res.data[i].f_building})
340
- }
341
- }
342
- })
343
- },
344
- async getAreaList() {
345
- let res =await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
346
- data: {
347
- items: 'f_residential_area',
348
- tablename: 't_area',
349
- condition: 'f_filialeid = '+this.filialeid,
350
- groupitem: 'f_residential_area'
351
- }
352
- }, {resolveMsg: null, rejectMsg: null})
353
- if (res.data) {
354
- for(let i =0 ;i<res.data.length;i++){
355
- this.residential.push({label:res.data[i].f_residential_area,value:res.data[i].f_residential_area})
356
- }
357
- }
358
- },
359
- getunit(f_residential_area,f_building){
360
- this.unit=[{label:'全部',value:''}]
361
- let res = new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
362
- data: {
363
- items: "f_unit",
364
- tablename: "t_user_address",
365
- condition: `f_residential_area='${f_residential_area}' and f_building = '${f_building}'`,
366
- groupitem: "f_unit"
367
- }
368
- }, {resolveMsg: null, rejectMsg: null}).then((res)=>{
369
- if (res.data) {
370
- for(let i =0 ;i<res.data.length;i++){
371
- this.unit.push({label:res.data[i].f_unit,value:res.data[i].f_unit})
372
- }
373
- }
374
- })
375
- },
376
- clearBarrier(val){
377
- let datas = {
378
- moduleName:"XiMeiSystem", // 固定值
379
- content:{
380
- tradeCode:"3015",// 固定值
381
- appid: "yysf", // 固定值
382
- partner: "cqsemay_bcts", // 固定值
383
- version:"v1", // 固定值
384
- tasked:this.getuuid(), // 任务id
385
- notifyUrl:"http://192.168.2.10:8445/webmeter/api/af-safecheck/logic/XiMeiSystemCallBack", // 固定值
386
- meterNo: val.f_meternumber,// 表号
387
- signType:" MD5" //固定值
388
- },
389
- title: "清除异常", // 固定值
390
- type: "清除异常", // 固定值
391
- inputtor:this.f_operator, // 操作人
392
- userId:val.f_userfiles_id, // 表档案ID
393
- dataId: null // 操作记录ID
394
- }
395
- this.$resetpost(`${this.$androidUtil.getProxyUrl()}/webmeter/api/af-safecheck/logic/syncSaveSetParamsTemplate`, {data: datas},{resolveMsg: `清理成功`, rejectMsg: `清理失败`}).then(res => {
396
- })
397
- },
398
- getuuid(){
399
- let uuidA = '';
400
- var s = [];
401
- var hexDigits = '0123456789abcdef';
402
- for (var i = 0; i < 36; i++) {
403
- s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
404
- }
405
- s[14] = '4';
406
- s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
407
- s[8] = s[13] = s[18] = s[23] = '-';
408
- uuidA = s.join('');
409
- return uuidA;
410
- },
411
- selfSearch () {
412
- // let condition = ` uf.f_filialeid = '${this.filialeid}'`
413
- let condition = ` 1=1 `
414
- condition += this.condition
415
- condition += this.f_meternumber ? ` and f_meternumber = '${this.f_meternumber}'` : ""
416
- condition += this.f_userinfo_code ? ` and f_userinfo_code = '${this.f_userinfo_code}'` : ""
417
- condition += this.f_meter_type != '' && this.f_meter_type != [] ? ` and f_meter_type = '${this.f_meter_type}'` : ""
418
- condition += this.f_valve_state != '' && this.f_valve_state != [] ? ` and f_valve_state = '${this.f_valve_state}'` : ""
419
- if (this.f_system_amount_start){
420
- condition += ` and f_system_amount >= ${this.f_system_amount_start}`
421
- }
422
- if (this.f_system_amount_end){
423
- condition += ` and f_system_amount <= ${this.f_system_amount_end}`
424
- }
425
- if (this.$refs.paged.$refs.cri.model.f_building){
426
- condition += ` and f_building = '${this.$refs.paged.$refs.cri.model.f_building}'`
427
- }
428
- if (this.$refs.paged.$refs.cri.model.f_residential_area){
429
- condition += ` and f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}'`
430
- }
431
- if (this.$refs.paged.$refs.cri.model.f_unit){
432
- condition += ` and f_unit = '${this.$refs.paged.$refs.cri.model.f_unit}'`
433
- }
434
- if (this.$refs.paged.$refs.cri.model.f_address){
435
- condition += ` and f_address like '%${this.$refs.paged.$refs.cri.model.f_address}%'`
436
- }
437
- console.log(condition)
438
- this.model.search(condition)
439
- },
440
- openvalve (val) {
441
- this.modalTitle = '对表号为'+ val.f_meternumber+'开阀'
442
- this.istype = '开阀'
443
- this.showModal = true;
444
- this.thisOneData = val;
445
- // this.openOrCloneValveMethod('开阀')
446
- },
447
- clonevalve (val) {
448
- //tag
449
- this.modalTitle = '对表号为'+ val.f_meternumber+'关阀'
450
- this.istype = '关阀'
451
- this.showModal = true;
452
- this.thisOneData = val;
453
- },
454
- openOrCloneValveMethod (msg) {
455
- if(msg === '关阀'){
456
- this.f_comments = this.f_comments_temp !== '其他' ? this.f_comments_temp : this.f_comments
457
- }
458
- if (this.f_comments=='') {
459
- return this.$showMessage("请输入开关阀原因")
460
- }
461
- var data = {
462
- instructType: '阀门控制',
463
- instructTitle: `手动${msg}`,
464
- condition: `t_userfiles.f_userfiles_id='${this.thisOneData.f_userfiles_id}'`,
465
- meterBrandName: this.thisOneData.f_alias, // 气表别名
466
- f_instruct_state: '待发送',
467
- inputtor: this.f_operator,
468
- reasonInfo: this.f_comments, //操作原因
469
- meternumberf: this.thisOneData.f_meternumber, //表号
470
- contentData: {isOpen: msg=='开阀' ? 1 : 0}, // oper 为true 时为开阀 false 为关阀
471
- }
472
- this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/iot_saveInstruct`, {data: data}).then((row) => {
473
- this.$showMessage(`${msg}指令发送成功,请等候2分钟进行查询`)
474
- //tag
475
- this.thisOneData = '';
476
- this.istype = '';
477
- this.f_comments = '';
478
- this.showModal = false
479
- this.selfSearch()
480
- })
481
- },
482
- // 档案维护
483
- goVindicate(row) {
484
- console.log(row)
485
- var pardate = {
486
- title:'档案维护',
487
- safe:true
488
- }
489
- this.$dispatch('gotoson',pardate)
490
- this.$goto('PhoneUpUserinfo', {f_userinfo_id: row.f_userinfo_id},'self')
491
- }
492
- },
493
- components: {
494
- 'PhoneUpUserinfo': PhoneUpUserinfo
495
- }
496
- }
497
- </script>
1
+ <style scoped>
2
+ .app-row {
3
+ background-color: white;
4
+ padding: 10px 10px 0 10px;
5
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
6
+ }
7
+ .search_input {
8
+ border: 0;
9
+ outline: none;
10
+ }
11
+ .font{
12
+ font: 15px PingFang-SC-Medium;
13
+ color: #666666;
14
+ }
15
+ .input-font{
16
+ font: 15px PingFang-SC-Medium;
17
+ color: #333333;
18
+ }
19
+ .btn-font{
20
+ font:600 16px PingFang-SC-Bold;
21
+ color: #499EDF;
22
+ }
23
+ .btn-color{
24
+ background-color: #FFFFFF;
25
+ border-radius: 10px ;
26
+ border: 1px solid #499EDF;
27
+ }
28
+ .app-text {
29
+ font-size: 12px;
30
+ }
31
+ .panel-self{
32
+ border-radius: 10px;
33
+ border:1px solid #499EDF;
34
+ background-color: #F8F8F8;
35
+ }
36
+ </style>
37
+
38
+ <template>
39
+ <div class="auto">
40
+ <criteria-paged :model="model" v-ref:paged>
41
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
42
+ <div partial>
43
+ <p align="center" style="color: maroon" v-if="!$parent.$parent.isHaveJiBiao">只限物联网表进行开关阀操作</p>
44
+ <p align="center" style="color: maroon" v-if="$parent.$parent.isHaveJiBiao">只限物联网表和机表进行操作</p>
45
+ <form>
46
+ <div class="row app-row">
47
+ <div class="col-xs-4">
48
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
49
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
50
+ </div>
51
+ <div class="col-xs-8" >
52
+ <input id="f_userinfo_code" class="search_input input-font" v-model="$parent.$parent.f_userinfo_code" />
53
+ </div>
54
+ </div>
55
+ <div class="row app-row">
56
+ <div class="col-xs-4">
57
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
58
+ <label for="f_meternumber" class="font text-left">用户表号:</label>
59
+ </div>
60
+ <div class="col-xs-8" >
61
+ <input id="f_meternumber" class="search_input input-font" v-model="$parent.$parent.f_meternumber" />
62
+ </div>
63
+ </div>
64
+ <div class="row app-row" v-if="$parent.$parent.isHaveJiBiao">
65
+ <div class="col-xs-4">
66
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
67
+ <label for="f_meternumber" class="font text-left">气表类型:</label>
68
+ </div>
69
+ <div class="col-xs-8" >
70
+ <v-select
71
+ class="input-font"
72
+ placeholder='请选择气表类型'
73
+ :value.sync="$parent.$parent.f_meter_type"
74
+ v-model="$parent.$parent.f_meter_type"
75
+ :options='$parent.$parent.meterTypeOptions'
76
+ close-on-select
77
+ clear-button>
78
+ </v-select>
79
+ </div>
80
+ </div>
81
+ <div class="row app-row">
82
+ <div class="col-xs-4">
83
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
84
+ <label for="f_meternumber" class="font text-left">阀门状态:</label>
85
+ </div>
86
+ <div class="col-xs-8" >
87
+ <v-select
88
+ class="input-font"
89
+ placeholder='请选择阀门状态'
90
+ :value.sync="$parent.$parent.f_valve_state"
91
+ v-model="$parent.$parent.f_valve_state"
92
+ :options="[{label: '全部', value: ''}, {label: '开阀', value: '开阀'}, {label: '关阀', value: '关阀'}]"
93
+ close-on-select
94
+ clear-button>
95
+ </v-select>
96
+ </div>
97
+ </div>
98
+ <div class="row app-row" >
99
+ <div class="col-xs-4" style="margin-bottom: 6px">
100
+ <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
101
+ <span class="text-left font">小区</span>
102
+ </div>
103
+ <div class="col-xs-8">
104
+ <v-select style="width:60%" :value.sync="model.f_residential_area" :value-single="true"
105
+ @change="$parent.$parent.getbuilding(model.f_residential_area)"
106
+ :options='$parent.$parent.residential' placeholder='请选择小区'
107
+ close-on-select>
108
+ </v-select>
109
+
110
+ </div>
111
+ </div>
112
+
113
+ <div class="row app-row" >
114
+ <div class="col-xs-4" style="margin-bottom: 6px">
115
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
116
+ <span class="text-left font">楼栋</span>
117
+ </div>
118
+ <div class="col-xs-8">
119
+ <v-select style="width:60%" :value.sync="model.f_building" :value-single="true"
120
+ @change="$parent.$parent.getunit(model.f_residential_area,model.f_building)"
121
+ :options='$parent.$parent.building' placeholder='请选择楼栋'
122
+ close-on-select>
123
+ </v-select>
124
+
125
+ </div>
126
+ </div>
127
+ <div class="row app-row" >
128
+ <div class="col-xs-4" style="margin-bottom: 6px" >
129
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
130
+ <span class="text-left font">单元</span>
131
+ </div>
132
+ <div class="col-xs-8">
133
+ <v-select style="width:60%" :value.sync="model.f_unit" :value-single="true"
134
+ :options='$parent.$parent.unit' placeholder='请选择单元'
135
+ close-on-select>
136
+ </v-select>
137
+
138
+ </div>
139
+ </div>
140
+ <div class="row app-row">
141
+ <div class="col-xs-4">
142
+ <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
143
+ <label class="font text-left">用户地址:</label>
144
+ </div>
145
+ <div class="col-xs-8" >
146
+ <input class="search_input input-font"
147
+ v-model=model.f_address condition="f_address like '%{}%'" />
148
+ </div>
149
+ </div>
150
+ <div class="row app-row">
151
+ <div class="col-xs-4">
152
+ <img src="../../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
153
+ <label class="font text-left">系统余额:</label>
154
+ </div>
155
+ <div class="col-xs-2" >
156
+ <input style="width: 100%" class="input-font" v-model="$parent.$parent.f_system_amount_start" />
157
+ </div>
158
+ <div class="col-xs-2" style="display: flex; justify-content: center">
159
+ ≤ x ≤
160
+ </div>
161
+ <div class="col-xs-2" >
162
+ <input style="width: 100%" class="input-font" v-model="$parent.$parent.f_system_amount_end" />
163
+ </div>
164
+ </div>
165
+ <div class="row text-center" style="margin-top: 20px;">
166
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="search">查询</button>
167
+ </div>
168
+ <div style="height:30px;"></div>
169
+ </form>
170
+ </div>
171
+ </criteria>
172
+ <list :model="model" partial='list'>
173
+ <div partial>
174
+ <div class="auto app-text" style="margin-top: 5px;">
175
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
176
+ <div class="panel-body panel-self">
177
+ <div class="col-xs-12">
178
+ <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户编号:</b></p>
179
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_userinfo_code }}</p>
180
+ </div>
181
+ <div class="col-xs-12">
182
+ <p class="panel-title col-xs-5 text-left font" style="float: left"><b>用户名称:</b></p>
183
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_name }}</p>
184
+ </div>
185
+ <div class="col-xs-12">
186
+ <p class="panel-title col-xs-5 text-left font"><b>用户类型:</b></p>
187
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_user_type }}
188
+ </p>
189
+ </div>
190
+ <div class="col-xs-12">
191
+ <p class="panel-title col-xs-5 text-left font"><b>用户电话:</b></p>
192
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_user_phone }}
193
+ </p>
194
+ </div>
195
+ <div class="col-xs-12">
196
+ <p class="panel-title text-left font" style="float: left"><b>用户地址:</b></p>
197
+ <p class="panel-title col-xs-7 text-left input-font" >{{ row.f_address }}</p>
198
+ </div>
199
+ <div class="col-xs-12">
200
+ <p class="panel-title col-xs-5 text-left font"><b>燃气表号:</b></p>
201
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meternumber }}</p>
202
+ </div>
203
+ <div class="col-xs-12">
204
+ <p class="panel-title col-xs-5 text-left font"><b>左右表:</b></p>
205
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_aroundmeter }}</p>
206
+ </div>
207
+ <div class="col-xs-12">
208
+ <p class="panel-title col-xs-5 text-left font"><b>气表品牌:</b></p>
209
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meter_brand }}</p>
210
+ </div>
211
+ <div class="col-xs-12">
212
+ <p class="panel-title col-xs-5 text-left font"><b>气表类型:</b></p>
213
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_meter_type }}</p>
214
+ </div>
215
+ <div class="col-xs-12">
216
+ <p class="panel-title col-xs-5 text-left font"><b>最近缴费时间:</b></p>
217
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_operate_date }}</p>
218
+ </div>
219
+ <div class="col-xs-12">
220
+ <p class="panel-title col-xs-5 text-left font"><b>最近缴费金额:</b></p>
221
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_collection ? `${row.f_collection.toFixed(2)}元` : '' }}</p>
222
+ </div>
223
+ <div class="col-xs-12">
224
+ <p class="panel-title col-xs-5 text-left font"><b>系统余额:</b></p>
225
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_system_amount ? row.f_system_amount.toFixed(2) : 0 }}元</p>
226
+ </div>
227
+ <div class="col-xs-12">
228
+ <p class="panel-title col-xs-5 text-left font"><b>阀门状态:</b></p>
229
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_valve_state || '暂无' }}</p>
230
+ </div>
231
+ <div class="col-xs-12" v-if="row.f_valve_state == '关阀'">
232
+ <p class="panel-title col-xs-5 text-left font"><b>关阀原因:</b></p>
233
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_off_valve_reason || '暂无' }}</p>
234
+ </div>
235
+ <div class="col-xs-12">
236
+ <p class="panel-title col-xs-5 text-left font"><b>开关阀时间:</b></p>
237
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_instruct_date || '无' }}</p>
238
+ </div>
239
+ <div class="col-xs-6" v-if="row.f_meter_type == '物联网表'">
240
+ <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_valve_state == '关阀'" @click="$parent.$parent.$parent.openvalve(row)">开阀</button>
241
+ <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_valve_state == '开阀'" @click="$parent.$parent.$parent.clonevalve(row)">关阀</button>
242
+ <button class="btn btn-font btn-color" type="button" style="width: 28%;padding: 2px 5px;" v-if="row.f_meter_brand.includes('西美')" @click="$parent.$parent.$parent.clearBarrier(row)">清除障碍</button>
243
+ </div>
244
+ <div class="col-xs-6" v-if="row.f_meter_type == '机表'">
245
+ <button class="btn btn-font btn-color" type="button" style="width: 50%;padding: 2px 5px;" @click="$parent.$parent.$parent.goVindicate(row)">档案维护</button>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </div>
251
+ </list>
252
+ </criteria-paged>
253
+ <modal :show.sync="showModal" :backdrop="false">
254
+ <div slot="modal-header" class="modal-header">
255
+ <h4 class="modal-title">
256
+ {{modalTitle}}
257
+ </h4>
258
+ </div>
259
+ <div slot="modal-body" class="modal-body">
260
+ <div class="row" style="margin-top: 6px">
261
+ <textarea id="el_ca_txt" v-model.trim="f_comments" style="border-radius:4px;width: 100%;" placeholder="请输入开阀原因" v-if="istype == '开阀'" >
262
+ </textarea>
263
+ <v-select class="rightipt" :value.sync="f_comments_temp"
264
+ v-model="f_comments_temp"
265
+ placeholder='请选择关阀原因'
266
+ :width='"60%"'
267
+ v-else
268
+ readonly
269
+ :options="bqf_states_reasons"
270
+ close-on-select value-single></v-select>
271
+ <textarea id="el_ca_txt_a" v-model.trim="f_comments" style="border-radius:4px;width: 100%;" placeholder="请输入关阀原因" v-if="f_comments_temp == '其他'" >
272
+ </textarea>
273
+ </div>
274
+ </div>
275
+ <div slot="modal-footer" class="modal-footer">
276
+ <button type="button" class="btn btn-default" @click="showModal = false">取消</button>
277
+ <button type="button" class="btn btn-success" @click="openOrCloneValveMethod(istype)">{{istype}}</button>
278
+ </div>
279
+ </modal>
280
+ </div>
281
+ </template>
282
+
283
+ <script>
284
+ import Vue from 'vue'
285
+ import PhoneUpUserinfo from './PhoneUpUserinfo'
286
+ import { PagedList,HttpResetClass } from 'vue-client'
287
+
288
+ export default {
289
+ title: '开关阀',
290
+ data () {
291
+ return {
292
+ model: Vue.android ? new PagedList(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/SwitchValveSeachUser`, 5) : new PagedList( 'AndroidRest/api/af-safecheck/sql/SwitchValveSeachUser',5),
293
+ f_meternumber: '',
294
+ f_userinfo_code: '',
295
+ f_operator: Vue.user.name,
296
+ filialeid: Vue.user.orgid,
297
+ type: '',
298
+ residential:[{label:'全部',value:''}],
299
+ unit:[{label:'全部',value:''}],
300
+ building:[{label:'全部',value:''}],
301
+ showModal: false,
302
+ modalTitle: '', //开关阀标题
303
+ f_comments: '', //开关阀原因
304
+ f_comments_temp:'',
305
+ bqf_states_reasons:Vue.$appdata.getParam('关阀原因'),
306
+ istype: '', //
307
+ thisOneData: '', //当前操作的用户
308
+ f_meter_type: '',
309
+ condition: '',
310
+ isHaveJiBiao: false,
311
+ meterTypeOptions: [{label: '全部', value: ''}, {label: '物联网表', value: '物联网表'}, {label: '机表', value: '机表'}],
312
+ f_valve_state: '',
313
+ f_system_amount_start: '',
314
+ f_system_amount_end: ''
315
+ }
316
+ },
317
+ async ready () {
318
+ this.isHaveJiBiao = this.$appdata.getSingleValue('开关阀是否查询机表') === '是'
319
+ if (this.isHaveJiBiao) {
320
+ this.condition = " and f_meter_type in ('物联网表', '机表')"
321
+ } else {
322
+ this.condition = " and f_meter_type in ('物联网表')"
323
+ }
324
+ await this.getAreaList()
325
+ },
326
+ methods: {
327
+ getbuilding(area) {
328
+ this.building=[{label:'全部',value:''}]
329
+ let res = new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
330
+ data: {
331
+ items: "f_building",
332
+ tablename: "t_user_address",
333
+ condition: `f_residential_area='${area}'`,
334
+ groupitem: "f_building"
335
+ }
336
+ }, {resolveMsg: null, rejectMsg: null}).then((res)=>{
337
+ if (res.data) {
338
+ for(let i =0 ;i<res.data.length;i++){
339
+ this.building.push({label:res.data[i].f_building,value:res.data[i].f_building})
340
+ }
341
+ }
342
+ })
343
+ },
344
+ async getAreaList() {
345
+ let res =await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
346
+ data: {
347
+ items: 'f_residential_area',
348
+ tablename: 't_area',
349
+ condition: 'f_filialeid = '+this.filialeid,
350
+ groupitem: 'f_residential_area'
351
+ }
352
+ }, {resolveMsg: null, rejectMsg: null})
353
+ if (res.data) {
354
+ for(let i =0 ;i<res.data.length;i++){
355
+ this.residential.push({label:res.data[i].f_residential_area,value:res.data[i].f_residential_area})
356
+ }
357
+ }
358
+ },
359
+ getunit(f_residential_area,f_building){
360
+ this.unit=[{label:'全部',value:''}]
361
+ let res = new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_GroupBy`, {
362
+ data: {
363
+ items: "f_unit",
364
+ tablename: "t_user_address",
365
+ condition: `f_residential_area='${f_residential_area}' and f_building = '${f_building}'`,
366
+ groupitem: "f_unit"
367
+ }
368
+ }, {resolveMsg: null, rejectMsg: null}).then((res)=>{
369
+ if (res.data) {
370
+ for(let i =0 ;i<res.data.length;i++){
371
+ this.unit.push({label:res.data[i].f_unit,value:res.data[i].f_unit})
372
+ }
373
+ }
374
+ })
375
+ },
376
+ clearBarrier(val){
377
+ let datas = {
378
+ moduleName:"XiMeiSystem", // 固定值
379
+ content:{
380
+ tradeCode:"3015",// 固定值
381
+ appid: "yysf", // 固定值
382
+ partner: "cqsemay_bcts", // 固定值
383
+ version:"v1", // 固定值
384
+ tasked:this.getuuid(), // 任务id
385
+ notifyUrl:"http://192.168.2.10:8445/webmeter/api/af-safecheck/logic/XiMeiSystemCallBack", // 固定值
386
+ meterNo: val.f_meternumber,// 表号
387
+ signType:" MD5" //固定值
388
+ },
389
+ title: "清除异常", // 固定值
390
+ type: "清除异常", // 固定值
391
+ inputtor:this.f_operator, // 操作人
392
+ userId:val.f_userfiles_id, // 表档案ID
393
+ dataId: null // 操作记录ID
394
+ }
395
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/webmeter/api/af-safecheck/logic/syncSaveSetParamsTemplate`, {data: datas},{resolveMsg: `清理成功`, rejectMsg: `清理失败`}).then(res => {
396
+ })
397
+ },
398
+ getuuid(){
399
+ let uuidA = '';
400
+ var s = [];
401
+ var hexDigits = '0123456789abcdef';
402
+ for (var i = 0; i < 36; i++) {
403
+ s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
404
+ }
405
+ s[14] = '4';
406
+ s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
407
+ s[8] = s[13] = s[18] = s[23] = '-';
408
+ uuidA = s.join('');
409
+ return uuidA;
410
+ },
411
+ selfSearch () {
412
+ // let condition = ` uf.f_filialeid = '${this.filialeid}'`
413
+ let condition = ` 1=1 `
414
+ condition += this.condition
415
+ condition += this.f_meternumber ? ` and f_meternumber = '${this.f_meternumber}'` : ""
416
+ condition += this.f_userinfo_code ? ` and f_userinfo_code = '${this.f_userinfo_code}'` : ""
417
+ condition += this.f_meter_type != '' && this.f_meter_type != [] ? ` and f_meter_type = '${this.f_meter_type}'` : ""
418
+ condition += this.f_valve_state != '' && this.f_valve_state != [] ? ` and f_valve_state = '${this.f_valve_state}'` : ""
419
+ if (this.f_system_amount_start){
420
+ condition += ` and f_system_amount >= ${this.f_system_amount_start}`
421
+ }
422
+ if (this.f_system_amount_end){
423
+ condition += ` and f_system_amount <= ${this.f_system_amount_end}`
424
+ }
425
+ if (this.$refs.paged.$refs.cri.model.f_building){
426
+ condition += ` and f_building = '${this.$refs.paged.$refs.cri.model.f_building}'`
427
+ }
428
+ if (this.$refs.paged.$refs.cri.model.f_residential_area){
429
+ condition += ` and f_residential_area = '${this.$refs.paged.$refs.cri.model.f_residential_area}'`
430
+ }
431
+ if (this.$refs.paged.$refs.cri.model.f_unit){
432
+ condition += ` and f_unit = '${this.$refs.paged.$refs.cri.model.f_unit}'`
433
+ }
434
+ if (this.$refs.paged.$refs.cri.model.f_address){
435
+ condition += ` and f_address like '%${this.$refs.paged.$refs.cri.model.f_address}%'`
436
+ }
437
+ console.log(condition)
438
+ this.model.search(condition)
439
+ },
440
+ openvalve (val) {
441
+ this.modalTitle = '对表号为'+ val.f_meternumber+'开阀'
442
+ this.istype = '开阀'
443
+ this.showModal = true;
444
+ this.thisOneData = val;
445
+ // this.openOrCloneValveMethod('开阀')
446
+ },
447
+ clonevalve (val) {
448
+ //tag
449
+ this.modalTitle = '对表号为'+ val.f_meternumber+'关阀'
450
+ this.istype = '关阀'
451
+ this.showModal = true;
452
+ this.thisOneData = val;
453
+ },
454
+ openOrCloneValveMethod (msg) {
455
+ if(msg === '关阀'){
456
+ this.f_comments = this.f_comments_temp !== '其他' ? this.f_comments_temp : this.f_comments
457
+ }
458
+ if (this.f_comments=='') {
459
+ return this.$showMessage("请输入开关阀原因")
460
+ }
461
+ var data = {
462
+ instructType: '阀门控制',
463
+ instructTitle: `手动${msg}`,
464
+ condition: `t_userfiles.f_userfiles_id='${this.thisOneData.f_userfiles_id}'`,
465
+ meterBrandName: this.thisOneData.f_alias, // 气表别名
466
+ f_instruct_state: '待发送',
467
+ inputtor: this.f_operator,
468
+ reasonInfo: this.f_comments, //操作原因
469
+ meternumberf: this.thisOneData.f_meternumber, //表号
470
+ contentData: {isOpen: msg=='开阀' ? 1 : 0}, // oper 为true 时为开阀 false 为关阀
471
+ }
472
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/iot_saveInstruct`, {data: data}).then((row) => {
473
+ this.$showMessage(`${msg}指令发送成功,请等候2分钟进行查询`)
474
+ //tag
475
+ this.thisOneData = '';
476
+ this.istype = '';
477
+ this.f_comments = '';
478
+ this.showModal = false
479
+ this.selfSearch()
480
+ })
481
+ },
482
+ // 档案维护
483
+ goVindicate(row) {
484
+ console.log(row)
485
+ var pardate = {
486
+ title:'档案维护',
487
+ safe:true
488
+ }
489
+ this.$dispatch('gotoson',pardate)
490
+ this.$goto('PhoneUpUserinfo', {f_userinfo_id: row.f_userinfo_id},'self')
491
+ }
492
+ },
493
+ components: {
494
+ 'PhoneUpUserinfo': PhoneUpUserinfo
495
+ }
496
+ }
497
+ </script>