safecheck-client 3.0.33-97 → 3.0.33-99

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 (295) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/build/css-loaders.js +34 -34
  5. package/build/dev-android.js +151 -151
  6. package/build/dev-client.js +8 -8
  7. package/build/release.sh +28 -28
  8. package/build/utils.js +71 -71
  9. package/build/webpack.baseandroid.conf.js +83 -83
  10. package/build/webpack.devandroid.conf.js +33 -33
  11. package/build/webpack.hanwei.conf.js +57 -57
  12. package/build/webpack.hwbase.conf.js +78 -78
  13. package/build/webpack.prodandroid.conf.js +60 -60
  14. package/build/webpack.test.conf.js +31 -31
  15. package/config/dev.env.js +6 -6
  16. package/config/index.js +38 -38
  17. package/config/prod.env.js +3 -3
  18. package/config/test.env.js +6 -6
  19. package/docs/AppBase.md +22 -22
  20. package/docs/Busy.md +14 -14
  21. package/docs/Criteria.md +47 -47
  22. package/docs/CriteriaPaged.md +47 -47
  23. package/docs/DataGrid.md +54 -54
  24. package/docs/DataModel.md +22 -22
  25. package/docs/Dynamic.md +42 -42
  26. package/docs/FormPrint.md +18 -18
  27. package/docs/GetParams.md +11 -11
  28. package/docs/GridTree.md +47 -47
  29. package/docs/HttpBusy.md +13 -13
  30. package/docs/HttpStore.md +29 -29
  31. package/docs/MessageBox.md +28 -28
  32. package/docs/PagedList.md +29 -29
  33. package/docs/Pager.md +21 -21
  34. package/docs/PrintFile.md +38 -38
  35. package/docs/Project.md +23 -23
  36. package/docs/Route.md +105 -105
  37. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  38. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  39. package/docs/Task.md +46 -46
  40. package/docs/TreeList.md +28 -28
  41. package/docs/TreeMixin.md +18 -18
  42. package/docs/all.md +10 -10
  43. package/docs/list.md +42 -42
  44. package/docs/partial.md +75 -75
  45. package/docs/selector.md +82 -82
  46. package/docs/tree.md +40 -40
  47. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  48. 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
  49. 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
  50. 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
  51. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  52. package/examples/AddressList/App.vue +13 -13
  53. package/examples/AddressList/index.html +11 -11
  54. package/examples/DispatchList/App.vue +10 -10
  55. package/examples/DispatchList/BaseTree.vue +13 -13
  56. package/examples/DispatchList/Init.vue +22 -22
  57. package/examples/DispatchList/Test.vue +20 -20
  58. package/examples/DispatchList/index.html +11 -11
  59. package/examples/DispatchList/main.js +18 -18
  60. package/home.html +16 -16
  61. package/package.json +1 -1
  62. package/publish.bat +7 -7
  63. package/release.bat +5 -5
  64. package/src/Widget.vue +13 -13
  65. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  66. package/src/android-bootstrap/less/.csscomb.json +304 -304
  67. package/src/android-bootstrap/less/.csslintrc +19 -19
  68. package/src/android-bootstrap/less/alerts.less +73 -73
  69. package/src/android-bootstrap/less/badges.less +66 -66
  70. package/src/android-bootstrap/less/bootstrap.less +56 -56
  71. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  72. package/src/android-bootstrap/less/button-groups.less +247 -247
  73. package/src/android-bootstrap/less/buttons.less +173 -173
  74. package/src/android-bootstrap/less/carousel.less +269 -269
  75. package/src/android-bootstrap/less/close.less +34 -34
  76. package/src/android-bootstrap/less/code.less +69 -69
  77. package/src/android-bootstrap/less/component-animations.less +33 -33
  78. package/src/android-bootstrap/less/grid.less +84 -84
  79. package/src/android-bootstrap/less/input-groups.less +167 -167
  80. package/src/android-bootstrap/less/jumbotron.less +52 -52
  81. package/src/android-bootstrap/less/labels.less +64 -64
  82. package/src/android-bootstrap/less/list-group.less +141 -141
  83. package/src/android-bootstrap/less/media.less +66 -66
  84. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  85. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  86. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  87. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  88. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  89. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  90. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  91. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  92. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  93. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  94. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  95. package/src/android-bootstrap/less/mixins/image.less +33 -33
  96. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  97. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  98. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  99. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  100. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  101. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  102. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  103. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  104. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  105. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  106. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  107. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  108. package/src/android-bootstrap/less/mixins/size.less +10 -10
  109. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  110. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  111. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  112. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  113. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  114. package/src/android-bootstrap/less/mixins.less +40 -40
  115. package/src/android-bootstrap/less/modals.less +151 -151
  116. package/src/android-bootstrap/less/navbar.less +660 -660
  117. package/src/android-bootstrap/less/navs.less +290 -290
  118. package/src/android-bootstrap/less/normalize.less +424 -424
  119. package/src/android-bootstrap/less/pager.less +76 -76
  120. package/src/android-bootstrap/less/pagination.less +89 -89
  121. package/src/android-bootstrap/less/panels.less +274 -274
  122. package/src/android-bootstrap/less/popovers.less +131 -131
  123. package/src/android-bootstrap/less/print.less +101 -101
  124. package/src/android-bootstrap/less/progress-bars.less +87 -87
  125. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  126. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  127. package/src/android-bootstrap/less/scaffolding.less +161 -161
  128. package/src/android-bootstrap/less/tables.less +262 -262
  129. package/src/android-bootstrap/less/theme.less +291 -291
  130. package/src/android-bootstrap/less/thumbnails.less +36 -36
  131. package/src/android-bootstrap/less/tooltip.less +102 -102
  132. package/src/android-bootstrap/less/type.less +303 -303
  133. package/src/android-bootstrap/less/utilities.less +55 -55
  134. package/src/android-bootstrap/less/variables.less +896 -896
  135. package/src/android-bootstrap/less/wells.less +29 -29
  136. package/src/androidTest.js +20 -20
  137. package/src/bootstrap/less/.csscomb.json +304 -304
  138. package/src/bootstrap/less/.csslintrc +19 -19
  139. package/src/bootstrap/less/alerts.less +73 -73
  140. package/src/bootstrap/less/badges.less +66 -66
  141. package/src/bootstrap/less/breadcrumbs.less +26 -26
  142. package/src/bootstrap/less/button-groups.less +247 -247
  143. package/src/bootstrap/less/buttons.less +172 -172
  144. package/src/bootstrap/less/carousel.less +269 -269
  145. package/src/bootstrap/less/close.less +34 -34
  146. package/src/bootstrap/less/code.less +69 -69
  147. package/src/bootstrap/less/component-animations.less +33 -33
  148. package/src/bootstrap/less/dropdowns.less +216 -216
  149. package/src/bootstrap/less/forms.less +626 -626
  150. package/src/bootstrap/less/grid.less +84 -84
  151. package/src/bootstrap/less/input-groups.less +167 -167
  152. package/src/bootstrap/less/jumbotron.less +52 -52
  153. package/src/bootstrap/less/labels.less +64 -64
  154. package/src/bootstrap/less/list-group.less +141 -141
  155. package/src/bootstrap/less/media.less +66 -66
  156. package/src/bootstrap/less/mixins/alerts.less +14 -14
  157. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  158. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  159. package/src/bootstrap/less/mixins/buttons.less +69 -69
  160. package/src/bootstrap/less/mixins/center-block.less +7 -7
  161. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  162. package/src/bootstrap/less/mixins/forms.less +90 -90
  163. package/src/bootstrap/less/mixins/gradients.less +59 -59
  164. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  165. package/src/bootstrap/less/mixins/grid.less +122 -122
  166. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  167. package/src/bootstrap/less/mixins/image.less +33 -33
  168. package/src/bootstrap/less/mixins/labels.less +12 -12
  169. package/src/bootstrap/less/mixins/list-group.less +30 -30
  170. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  171. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  172. package/src/bootstrap/less/mixins/opacity.less +8 -8
  173. package/src/bootstrap/less/mixins/pagination.less +24 -24
  174. package/src/bootstrap/less/mixins/panels.less +24 -24
  175. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  176. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  177. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  178. package/src/bootstrap/less/mixins/resize.less +6 -6
  179. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  180. package/src/bootstrap/less/mixins/size.less +10 -10
  181. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  182. package/src/bootstrap/less/mixins/table-row.less +44 -44
  183. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  184. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  185. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  186. package/src/bootstrap/less/mixins.less +40 -40
  187. package/src/bootstrap/less/modals.less +151 -151
  188. package/src/bootstrap/less/navbar.less +660 -660
  189. package/src/bootstrap/less/normalize.less +424 -424
  190. package/src/bootstrap/less/pager.less +76 -76
  191. package/src/bootstrap/less/pagination.less +89 -89
  192. package/src/bootstrap/less/panels.less +275 -275
  193. package/src/bootstrap/less/popovers.less +131 -131
  194. package/src/bootstrap/less/print.less +101 -101
  195. package/src/bootstrap/less/progress-bars.less +87 -87
  196. package/src/bootstrap/less/responsive-embed.less +35 -35
  197. package/src/bootstrap/less/responsive-utilities.less +194 -194
  198. package/src/bootstrap/less/scaffolding.less +161 -161
  199. package/src/bootstrap/less/theme.less +291 -291
  200. package/src/bootstrap/less/thumbnails.less +36 -36
  201. package/src/bootstrap/less/tooltip.less +102 -102
  202. package/src/bootstrap/less/type.less +303 -303
  203. package/src/bootstrap/less/utilities.less +55 -55
  204. package/src/bootstrap/less/wells.less +29 -29
  205. package/src/components/FileUpload.vue +696 -696
  206. package/src/components/Hello.vue +39 -39
  207. package/src/components/LeftTree.vue +27 -27
  208. package/src/components/android/AddGas.vue +147 -147
  209. package/src/components/android/AddressList.vue +61 -61
  210. package/src/components/android/AttendanceTally.vue +116 -116
  211. package/src/components/android/Blank.vue +10 -10
  212. package/src/components/android/CheckUnplanPage.vue +56 -56
  213. package/src/components/android/Checker.vue +12 -12
  214. package/src/components/android/CheckerAnnual.vue +81 -81
  215. package/src/components/android/CheckerAvarta.vue +82 -82
  216. package/src/components/android/CheckerMonthly.vue +84 -84
  217. package/src/components/android/EquipmentInspection.vue +348 -348
  218. package/src/components/android/FootprintMap.vue +120 -120
  219. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  220. package/src/components/android/LcheckUnplan.vue +108 -108
  221. package/src/components/android/MasterMain.vue +77 -77
  222. package/src/components/android/Menu.vue +132 -132
  223. package/src/components/android/NavBottom.vue +157 -157
  224. package/src/components/android/PaperAlarm.vue +85 -85
  225. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  226. package/src/components/android/PlumberAnnual.vue +83 -83
  227. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  228. package/src/components/android/PlumberMonthly.vue +84 -84
  229. package/src/components/android/PostMap.vue +83 -83
  230. package/src/components/android/QueryCheckHistory.vue +122 -122
  231. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  232. package/src/components/android/RepairMain.vue +60 -60
  233. package/src/components/android/Repairman.vue +12 -12
  234. package/src/components/android/SafecheckDevices.vue +1296 -1296
  235. package/src/components/android/StationMaster.vue +12 -12
  236. package/src/components/checkerphonestate/Checker.vue +32 -32
  237. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  238. package/src/components/defects/AddDefectModal.vue +120 -120
  239. package/src/components/defects/AddDevice.vue +95 -95
  240. package/src/components/defects/DefectModal.vue +101 -101
  241. package/src/components/defects/DevicesAndItem.vue +39 -39
  242. package/src/components/defects/DevicesSeting.vue +106 -106
  243. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  244. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  245. package/src/components/metterfiles/MetterFiles.vue +104 -104
  246. package/src/components/notice/NoticeForm.vue +100 -100
  247. package/src/components/notice/NoticeIssue.vue +20 -20
  248. package/src/components/notice/NoticeQuery.vue +76 -76
  249. package/src/components/paper/PicViewer.vue +18 -18
  250. package/src/components/paper/PlanChooser.vue +167 -165
  251. package/src/components/paper/RepairVerifyForm.vue +76 -76
  252. package/src/components/phonestate/DailyTraffic.vue +57 -57
  253. package/src/components/phonestate/LastKnownState.vue +74 -74
  254. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  255. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  256. package/src/components/phonestate/PostMap.vue +82 -82
  257. package/src/components/planmanage/PlanManage.vue +836 -834
  258. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  259. package/src/components/task/RepairAnnual.vue +79 -79
  260. package/src/components/task/RepairAnnualDetail.vue +49 -49
  261. package/src/components/task/RepairMonthly.vue +91 -91
  262. package/src/components/task/TaskAnnual.vue +77 -77
  263. package/src/components/task/TaskAnnualDetail.vue +47 -47
  264. package/src/components/task/TaskMonthly.vue +89 -89
  265. package/src/components/userfile/MeterFile.vue +145 -145
  266. package/src/components/userfile/MeterModify.vue +46 -46
  267. package/src/components/userfile/UserFile.vue +118 -118
  268. package/src/components/userfile/UserfileChange.vue +277 -277
  269. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  270. package/src/filiale/liaoyuan/pc/checkPlanList.vue +373 -0
  271. package/src/filiale/liaoyuan/pc.js +18 -17
  272. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2692 -2692
  273. package/src/filiale/tianke/pc/checkScreen.vue +780 -780
  274. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  275. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  276. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +347 -347
  277. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  278. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1192 -1192
  279. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  280. package/src/filiale/yongzhou/pc/PaperDefectMain.vue +872 -872
  281. package/src/filiale/yongzhou/pc/SelectCheckPlan.vue +364 -364
  282. package/src/filiale/yongzhou/pc/communityTypeDetailG.vue +138 -138
  283. package/src/main.js +33 -33
  284. package/src/plugins/LoadData.js +10 -10
  285. package/src/plugins/LoadParams.js +24 -24
  286. package/src/stores/wxconfig.js +10 -10
  287. package/src/utils/getNowDate.js +33 -33
  288. package/test/e2e/custom-assertions/elementCount.js +26 -26
  289. package/test/e2e/nightwatch.conf.js +40 -40
  290. package/test/e2e/runner.js +30 -30
  291. package/test/e2e/specs/test.js +13 -13
  292. package/test/unit/.eslintrc +5 -5
  293. package/test/unit/TestUtil.js +62 -62
  294. package/test/unit/context.html +20 -20
  295. package/test/unit/index.js +13 -13
@@ -1,1295 +1,1295 @@
1
- <template>
2
- <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
- <!--<div class="bq-parent" v-if="shutype == 'heng'">-->
4
- <!--<blockquote class="blockquote">-->
5
- <!--<p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="#" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>-->
6
- <!--</blockquote>-->
7
- <!--</div>-->
8
- <div class="panel panel-default auto repair-info-content">
9
- <div class="panel-body" style="padding: 0">
10
- <!-- 安检项内容 -->
11
- <div class="auto repair-info-content compatible" style="padding: 0">
12
- <div class="row auto" style="padding: 0">
13
- <div v-if=" device.device != '燃气表'" v-show="false" class="{{shuclass}}">
14
- <button :disabled="issee" class="btn btn-primary" name="button" type="button" @click='adddetails()'>增加
15
- </button>
16
- </div>
17
- <!--<div class="{{shuclass}}" v-if="device.device != '燃气表' && candelete">-->
18
- <!--<button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>-->
19
- <!--</div>-->
20
- <div v-for="(idxs,row) in f_items" v-show="row.isshow" class="shuclass1"
21
- style="padding: 4px; border:1px solid #D4D4D4;border-bottom: 0">
22
- <label v-if="row.type != 'radio' && row.type != 'text' && row.type != 'picture' && row.type != 'checkbox'"
23
- v-show="row.isshow" class="fivelabel">{{ row.f_item_name }}<span
24
- v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
25
- <label v-if="row.type == 'radio' && row.f_item_name!='连接方式'" v-show="row.isshow"
26
- class="radiolabel">{{ row.f_item_name }}<span
27
- v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
28
- <label v-if="row.type == 'text'" v-show="row.isshow" class="textlabel1">{{ row.f_item_name }}<span
29
- v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
30
- <label v-if="row.type == 'picture' || (row.type == 'radio' && row.f_item_name=='连接方式')"
31
- v-show="row.isshow" class="textlabel1">{{ row.f_item_name }}<br/>{{ row.remark }}</label>
32
- <label v-if="row.type == 'checkbox'" v-show="row.isshow"
33
- class="radiolabel">{{ row.f_item_name }}<br/>{{ row.remark }}</label>
34
- <!--<span v-if="show" style="font-weight:bold">{{row.f_content}}</span>-->
35
- <!--<datepicker placeholder="请选择时间"-->
36
- <!--:value.sync="row.f_content"-->
37
- <!--v-model="row.f_content"-->
38
- <!--:format="'yyyy-MM-dd'"-->
39
- <!--v-if="!show && row.type == 'date'"-->
40
- <!--:readonly="true"-->
41
- <!--&gt;</datepicker>-->
42
- <div v-if="row.type == 'picture'" class="form-group col-sm-12" style="clear: both">
43
- <div class="auto">
44
- <div class="panel">
45
- <div class="panel-body panel-self"
46
- style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
47
- <div class="row" style="height: 160px;width:160px;overflow: scroll;top: 1px">
48
- <div v-show="row.f_path" class="col-sm-4">
49
- <img-self :alt="row.f_item_name" :src="row.f_path" height="140" width="140"></img-self>
50
- </div>
51
- <div v-show="!row.f_path" class="col-sm-4" @click="takePic(idxs, row.f_item_name)">
52
- <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
53
- </div>
54
- <img v-if="role!='androidview'" v-show="row.f_path" :class="style__"
55
- src="../../../assets/remove.png"
56
- style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
57
- @click="delfile(idxs, row.f_path)"></img>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- <div v-if="row.type == 'string'" v-show="row.isshow" class="form-group" style="float: left;width:60%">
64
- <input v-model="row.f_item_value" :readonly="role == 'androidview' || row.readonly" class="form-control"
65
- maxlength="100"
66
- type="text">
67
- </div>
68
- <div v-if="row.type == 'date'" v-show="row.isshow" class="form-group col-sm-12"
69
- style="float: left;width:60%">
70
- <datepicker v-if="row.type == 'date'" v-show="row.isshow"
71
- id="f_making_date"
72
- :disabled-days-of-Week="[]"
73
- :format="'yyyy-MM-dd 00:00:00'"
74
- :placeholder=row.f_item_name
75
- :show-reset-button="reset"
76
- :value.sync="row.f_item_value" readonly="readonly">
77
- </datepicker>
78
- </div>
79
-
80
- <div v-if="!show && row.type == 'number'" v-show="row.isshow" class="form-group"
81
- style="float: left;width:60%">
82
- <input v-model="row.f_item_value" :readonly="row.readonly" class="form-control" maxlength="100"
83
- onkeyup="value=value.replace(/[^\d\.]/g,'')" type="number">
84
- </div>
85
- <!--<input type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project != '表号'" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">-->
86
- <!--<input type="text" class="form-control" v-model="meternum" v-if="!show && row.type == 'string' && row.f_project == '表号' " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >-->
87
- <!--<button type="button" name="button" class="btn btn-primary" @click="scan" v-if="!show && row.f_project == '表号' ">扫码</button>-->
88
- <input-select v-if="row.type == 'inputSelector'"
89
- v-show="row.isshow"
90
- v-model="row.selected"
91
- :options="row.options"
92
- :readonly="false"
93
- :value.sync="row.selected"
94
- @change="changse"
95
- @click="transelation(idxs)"></input-select>
96
- <v-select v-if="row.type == 'selector'" v-show="row.isshow"
97
- v-model="row.selected"
98
- :close-on-select="!row.multiple"
99
- :disabled="role == 'androidview' || row.readonly"
100
- :multiple="row.multiple"
101
- :options="row.options"
102
- :search="false"
103
- :value.sync="row.selected"
104
- clear-button
105
- placeholder='请选择'
106
- style="float: left"
107
- @change="changse" @click="transelation(idxs)"></v-select>
108
- <div v-if="!show && row.type == 'radio'" class="form-group" style="float: left;width: 30%">
109
- <div v-for="item in row.options" class=" col-sm-6 col-md-6">
110
- <!-- <input type="radio" :name="row.f_item_name" @click="disSelect($parent.idxs,item.value)" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >-->
111
- <input v-model="row.f_item_value" :disabled="(!(ischecked == '有')) || issee" :name="row.f_item_name"
112
- :value="item.value" type="radio">
113
- <span>{{ item.label }}</span>
114
- </div>
115
- </div>
116
- <div v-if="!show && row.type == 'checkbox'" style="white-space: nowrap">
117
- <div v-for="item in row.options" style="">
118
- <input v-model="row.f_item_value" :disabled="(!(ischecked == '有')) || issee" :name="row.f_item_name"
119
- :value="item.value" type="checkbox">
120
- <span>{{ item.label }}</span>
121
- </div>
122
- </div>
123
- <div style="clear: both">
124
- <label v-if="row.f_item_value.indexOf('其他') >-1" class="fivelabel">其他</label>
125
- <div v-if="row.f_item_value.indexOf('其他') >-1" class="form-group" style="float: left;width:60%">
126
- <input v-model="row.f_else" :readonly="role == 'androidview' || row.readonly" class="form-control"
127
- maxlength="100"
128
- type="text">
129
- </div>
130
- </div>
131
- <div
132
- v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')"
133
- style="clear: both">
134
- <label class="fivelabel">隐患备注</label>
135
- <div class="form-group" style="float: left;width:60%">
136
- <input v-model="row.f_defect_remark" class="form-control" maxlength="100" type="text">
137
- </div>
138
- </div>
139
- <div style="clear: both">
140
- <!--<div class="form-group" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (livedispose == 'true' || livedispose == true) " >
141
- <label class="fivelabel">现场已处理</label>
142
- <v-select :value="row.f_live_dispose"
143
- :value-single="true"
144
- :options="lives"
145
- :disabled="role == 'androidview'"
146
- @change="changlive"
147
- @click="transelation(idxs)"
148
- close-on-select clear-button></v-select>
149
- </div>-->
150
- <div
151
- v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (dealdispose == 'true' || dealdispose == true) "
152
- class="form-group"
153
- style="display: flex;flex-wrap: wrap">
154
- <label class="fivelabel">处理方式</label>
155
- <v-select :disabled="role == 'androidview'"
156
- :options="deals"
157
- :value="row.f_deal_dispose"
158
- :value-single="true"
159
- clear-button
160
- close-on-select
161
- @change="changdeal" @click="transelation(idxs)"></v-select>
162
- </div>
163
- <div v-if="(row.f_deal_dispose == '自行处理' || row.f_deal_dispose == '限时整改') && row.f_is_defect != '' " style="display: flex;flex-wrap: wrap">
164
- <label class="fivelabel">处理时效:</label>
165
- <!-- <datepicker-->
166
- <!-- :value.sync="row.f_handle_date"-->
167
- <!-- v-model="row.f_handle_date"-->
168
- <!-- :format="'yyyy-MM-dd 00:00:00'"-->
169
- <!-- placeholder="请选择"-->
170
- <!-- style="width: 60%">-->
171
- <!-- </datepicker>-->
172
- <div class="form-group" style="float: left;width:60%">
173
- <input v-model="row.f_lose_efficacy" class="form-control" maxlength="100" placeholder="单位:天"
174
- type="text">
175
- </div>
176
- </div>
177
- <div
178
- v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && row.tooltip != undefined && row.tooltip != '' "
179
- class="form-group col-sm-10"
180
- style="margin-left: 10px">
181
- ☆{{ row.tooltip }}
182
- </div>
183
- <div
184
- v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')"
185
- class="form-group col-sm-12"
186
- style="display: flex;flex-wrap: wrap">
187
- <div class="auto" style="margin:1px;">
188
- <div class="panel">
189
- <div class="panel-body panel-self"
190
- style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
191
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
192
- <div v-show="row.f_path" class="col-sm-4">
193
- <img-self :alt="row.f_item_name" :src="row.f_path" height="140" width="140"></img-self>
194
- </div>
195
- <div v-show="!row.f_path" class="col-sm-4" @click="takePic(idxs, row.f_item_name)">
196
- <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
197
- </div>
198
- <img v-if="role!='androidview'" v-show="row.f_path" :class="style__"
199
- src="../../../assets/remove.png"
200
- style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
201
- @click="delfile(idxs, row.f_path)"></img>
202
- </div>
203
- </div>
204
- </div>
205
- </div>
206
- <!--多张隐患照片-->
207
- <div v-for="itemIndex in hiddenDangerImgNumber" class="auto" style="margin: 1px;">
208
- <div class="panel">
209
- <div class="panel-body panel-self"
210
- style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
211
- <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
212
- <div v-show="row['f_p' + (itemIndex+1) + '_path']" class="col-sm-4">
213
- <img-self :alt="row.f_item_name" :src="row['f_p' + (itemIndex+1) + '_path']" height="140"
214
- width="140"></img-self>
215
- </div>
216
- <div v-show="!row['f_p' + (itemIndex+1) + '_path']" class="col-sm-4"
217
- @click="takePic(idxs, row.f_item_name,'f_p' + (itemIndex+1)+ '_path')">
218
- <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
219
- </div>
220
- <img v-if="role!='androidview'" v-show="row['f_p' + (itemIndex+1)+'_path']"
221
- :class="style__"
222
- src="../../../assets/remove.png"
223
- style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
224
- @click="delfile(idxs,row['f_p' + (itemIndex+1)+'_path'],'f_p' + (itemIndex+1)+ '_path')"></img>
225
- </div>
226
- </div>
227
- </div>
228
- </div>
229
- </div>
230
- </div>
231
-
232
- <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌'"-->
233
- <!--&gt;</v-select>-->
234
- <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' @change="getgasmodel" placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"-->
235
- <!--&gt;</v-select>-->
236
- <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
237
- <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
238
- <!-- :checked="row.f_content == '有'"-->
239
- <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
240
- <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
241
- <!-- </div>-->
242
- <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
243
- </div>
244
- </div>
245
- </div>
246
- <div style="border-top: 1px solid #D4D4D4"></div>
247
- </div>
248
- </div>
249
- </div>
250
- </template>
251
- <script>
252
- import Vue from 'vue'
253
- import * as Util from '../../Util'
254
-
255
- export default {
256
- title: '维修列表信息',
257
- data() {
258
- return {
259
- // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
260
- // meterstyle:[],
261
- hiddenDangerImgNumber: 0,//隐患图片数
262
- shuclass: 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
263
- shuclass1: 'col-xs-12 col-sm-12 col-md-12 mg8',
264
- // labels:[],
265
- meternum: '',
266
- ischecked: '有',
267
- gasmodel: '',
268
- textstyle: 'color: red',
269
- paper: this.$parent.$parent.data,
270
- f_items: [],
271
- page: {},
272
- selectindex: null,
273
- lives: [{label: '是', value: '是'}, {label: '否', value: '否'}],
274
- deals: [{label: '现场整改', value: '现场整改'}, {label: '自行处理', value: '自行处理'}, {
275
- label: '报修',
276
- value: '报修'
277
- }, {label: '限时整改', value: '限时整改'}, {label: '跟踪处置', value: '跟踪处置'}],
278
- f_live_dispose: '否',
279
- f_deal_dispose: '报修',
280
- // 初始表底
281
- f_initial_base: {},
282
- // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
283
- f_gas_aberrant_number: {},
284
- // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
285
- f_fee_aberrant_number: {},
286
- // 气表累购
287
- f_total_gas: {},
288
- // 累购金额
289
- f_total_fee: {},
290
- // 已用气量
291
- f_meter_base: {},
292
- // 表内剩余
293
- f_fee_base: {},
294
- //本次基数
295
- f_bc_jishu: {},
296
- //上次基数
297
- f_metergasnums: {},
298
- //周期用气
299
- f_sy_jishu: {},
300
- // 剩余气量
301
- f_gas_balance: {},
302
- // 系统金额
303
- f_balance_amount: {},
304
- f_balance_amount1: {},//物联网表现场录入的表上剩余金额
305
- f_meter_base1: {},//物联网表现场录入的表字轮数
306
- f_meter_aberrant_number1: {},//物联网表 表数异常差值
307
- f_fee_aberrant_number1: {},//物联网 表金额异常差值
308
- gasDeviation: (
309
- function (_this) {
310
- let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
311
- if (deviation && !isNaN(deviation)) {
312
- return deviation
313
- } else {
314
- return 0
315
- }
316
- }
317
- )(this),
318
- // 金额异常差值允许误差
319
- feeDeviation: (
320
- function (_this) {
321
- let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
322
- if (deviation && !isNaN(deviation)) {
323
- return deviation
324
- } else {
325
- return 0
326
- }
327
- }
328
- )(this),
329
- // 字轮异常差值允许误差
330
- meterbase: (
331
- function (_this) {
332
- let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
333
- if (deviation && !isNaN(deviation)) {
334
- return deviation
335
- } else {
336
- return 0
337
- }
338
- }
339
- )(this),
340
- showElse: false, //控制其他选项是否显示
341
- }
342
- },
343
- props: ['config', 'device', 'idx', 'operation', 'role'],
344
- // props: {
345
- // // 维修对应的用户数据收集
346
- // model: {
347
- // type: Object
348
- // },
349
- // service:{
350
- // type: Object
351
- // },
352
- // show: {
353
- // type: Boolean,
354
- // default: false
355
- // },
356
- // repairitem:{
357
- // type: Object
358
- // },
359
- // shutype:'heng',
360
- // tabs:{
361
- // type: Object
362
- // },
363
- // repairdetails:{
364
- // type: Object
365
- // },
366
- // faultshow:{
367
- // type: Object
368
- // },
369
- // issee:''
370
- // },
371
- methods: {
372
- changse(val) {
373
- if (val == undefined) {
374
- return
375
- }
376
- if (this.selectindex != null) {
377
- if (this.f_items[this.selectindex].type == 'selector') {
378
- this.f_items[this.selectindex].f_item_value = val
379
- } else if (this.f_items[this.selectindex].type == 'inputSelector') {
380
- this.f_items[this.selectindex].f_item_value = val.target.value
381
- }
382
- }
383
- },
384
- changlive(val) {
385
- if (val == undefined) {
386
- return
387
- }
388
- if (this.selectindex != null) {
389
- this.f_items[this.selectindex].f_live_dispose = val
390
- }
391
- },
392
- changdeal(val) {
393
- if (val == undefined) {
394
- return
395
- }
396
- if (this.selectindex != null) {
397
- this.f_items[this.selectindex].f_deal_dispose = val
398
- }
399
- },
400
- switchDetails(detailsType, event) {
401
- if (event.srcElement.checked) {
402
- for (var i = 0; i < this.Detail.details.length; i++) {
403
- if (this.Detail.details[i].f_project == detailsType) {
404
- this.Detail.details[i].f_content = '有'
405
- this.ischecked = '有'
406
- return
407
- }
408
- }
409
- } else {
410
- this.Detail.imgs = []
411
- for (var i = 0; i < this.Detail.details.length; i++) {
412
- if (this.Detail.details[i].f_project == detailsType) {
413
- this.Detail.details[i].f_content = '无'
414
- this.ischecked = '无'
415
- } else {
416
- this.Detail.details[i].f_content = ''
417
- }
418
- }
419
- }
420
- },
421
- getgasmodel(val) {
422
- this.gasmodel = val
423
- },
424
- getradios(val, flag) {
425
- let Reoptions = []
426
- for (let i = 0; i < this.repairdetails.length; i++) {
427
- var t = false
428
- if (this.repairdetails[i].f_type == this.repairitem.header) {
429
- for (var j = 0; j < this.repairdetails[i].details.length; j++) {
430
- if (this.repairdetails[i].details[j].f_project == val) {
431
- Reoptions = this.repairdetails[i].details[j].options
432
- t = true
433
- break
434
- }
435
- }
436
- }
437
- if (t) {
438
- break
439
- }
440
- }
441
- for (let j = 0; j < Reoptions.length; j++) {
442
- if (Reoptions[j].data == flag) {
443
- for (var e = 0; e < this.Detail.details.length; e++) {
444
- if (this.Detail.details[e].f_project == val) {
445
- this.Detail.details[e].f_status = Reoptions[j].f_status
446
- return
447
- }
448
- }
449
- break
450
- }
451
- }
452
- },
453
- deletedetails() {
454
- this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
455
- if (res === 'confirm') {
456
- for (var i = 0; i < this.tabs.length; i++) {
457
- if (this.tabs[i].number == this.repairitem.number) {
458
- this.tabs.splice(i, 1)
459
- this.model.servicerepair.splice(this.repairitem.number, 1)
460
- for (let t = i; t < this.tabs.length; t++) {
461
- this.tabs[t].number -= 1
462
- }
463
- return
464
- }
465
- }
466
- }
467
- })
468
- },
469
- takePic(prop, title, pathname = 'null') {
470
- if (this.role == 'androidview') {
471
- return
472
- }
473
- HostApp.__callback__ = this.cameraCallBack
474
- HostApp.__this__ = this
475
- //tag
476
- let fileName
477
- if (pathname == 'null') {
478
- if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
479
- fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
480
- } else {
481
- fileName = Util.getFileName(this.f_items[prop].f_path)
482
- }
483
- } else {
484
- if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
485
- fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
486
- } else {
487
- fileName = Util.getFileName(this.f_items[prop][pathname])
488
- }
489
- }
490
- console.log('fileName === >' + fileName)
491
- console.log('prop === >' + prop)
492
- let addressA = "未获取到地址";
493
- try {
494
- let posaddress = HostApp.getGpsDetailAddress(); //获取当前地址信息
495
- console.log("---------地址:" + JSON.stringify(addressA))
496
- addressA = posaddress.address
497
- this.f_items[prop].f_longitude = posaddress.longitude
498
- this.f_items[prop].f_latitude = posaddress.latitude
499
- } catch (e) {
500
- console.error('拍照时调用android端获取地址信息错误')
501
- }
502
- HostApp._open_a_page({
503
- type: 'boomerang',
504
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
505
- param: {
506
- file: fileName,
507
- requestCode: 111,
508
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s","' + pathname + '");',
509
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
510
- }
511
- })
512
- },
513
- cameraCallBack(prop, fileName, pathname) {
514
- //tag
515
- if (pathname == 'null') {
516
- //tag
517
- HostApp.__this__.$set('f_items[' + prop + '].f_path', fileName + '?' + Math.random())
518
- //tag
519
- HostApp.__callback__ = null
520
- HostApp.__this__ = null
521
- } else {
522
- //tag
523
-
524
- HostApp.__this__.$set('f_items[' + prop + '].' + pathname + '', fileName + '?' + Math.random())
525
- HostApp.__callback__ = null
526
- HostApp.__this__ = null
527
- }
528
- },
529
- delfile(prop, fileName, pathname = 'null') {
530
- if (pathname == 'null') {
531
- //tag
532
-
533
- if (fileName == Vue.nopic) {
534
-
535
- } else {
536
- HostApp.delfile(fileName)
537
- this.f_items[prop].f_path = Vue.nopic
538
- }
539
- } else {
540
- //tag
541
-
542
- if (fileName == Vue.nopic) {
543
-
544
- } else {
545
- HostApp.delfile(fileName)
546
- this.f_items[prop][pathname] = Vue.nopic
547
- }
548
- }
549
- },
550
- adddetails() {
551
- // 下标作为序号,取值用。 增加 序号得依次增加
552
- if (this.tabs.length > 0) {
553
- for (let i = this.tabs.length - 1; i > 0; i--) {
554
- if (this.tabs[i].header == this.repairitem.header) {
555
- if (this.model.servicerepair.length > 0) {
556
- for (let j = this.model.servicerepair.length - 1; j > -1; j--) {
557
- if (this.model.servicerepair[j].f_type == this.repairitem.header) {
558
- this.model.servicerepair.splice(j + 1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
559
- this.tabs.splice(i + 1, 0, {
560
- header: `${this.repairitem.header}`,
561
- details: this.tabs[i].details,
562
- complete: 'repair-details',
563
- class: 'repair-details-class',
564
- number: j + 1,
565
- items: this.tabs[i].items
566
- })
567
- for (let t = i + 2; t < this.tabs.length; t++) {
568
- this.tabs[t].number += 1
569
- }
570
- this.faultshow.number += this.faultshow.number + 1
571
- return
572
- }
573
- }
574
- }
575
- }
576
- }
577
- }
578
- },
579
- transelation(val) {
580
- this.selectindex = val
581
- },
582
- towatch() {
583
- for (let n in this.f_items) {
584
- if (typeof this.f_items[n] == 'function') {
585
- continue
586
- }
587
- if (this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector') {
588
- // 监听下拉框,如果有隐患,需要拍照
589
- this.$watch('f_items[' + n + '].selected', function (val) {
590
- // 下拉框值
591
-
592
- // 下拉框所属设备
593
- //tag
594
- // 下拉框所属项
595
- //tag
596
- let shImage = false
597
- if (val.indexOf('其他') == -1) {
598
- this.f_items[n].f_else = ''
599
- }
600
- // if(this.config[this.device.device].items[item].type == 'selector'){
601
- // this.f_items[n].f_item_value = val
602
- // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
603
- // this.f_items[n].f_item_value = val[0]
604
- // }
605
- // 在配置中查找该项
606
- for (let item in this.config[this.device.device].items) {
607
- if (typeof this.config[this.device.device].items[item] == 'function') {
608
- continue
609
- }
610
- let type = this.config[this.device.device].items[item].type
611
- let multiple = this.config[this.device.device].items[item].multiple ? this.config[this.device.device].items[item].multiple : false
612
- let options = this.config[this.device.device].items[item].options
613
- if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && item == this.f_items[n].f_item_name) {
614
- for (let i in options) {
615
- if (typeof options[i] == 'function') {
616
- continue
617
- }
618
- let value
619
- if (this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false) {
620
- value = val[0]
621
- } else if (this.config[this.device.device].items[item].type == 'inputSelector') {
622
- value = val
623
- }
624
-
625
- // 如果未选择,清空图片、隐患信息等
626
- if ((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')) {
627
- this.f_items[n].f_path = ''
628
- this.f_items[n].f_is_defect = ''
629
- this.f_items[n].f_defect_level = ''
630
- this.f_items[n].f_live_dispose = ''
631
- this.f_items[n].f_deal_dispose = ''
632
- this.f_items[n].tooltip = ''
633
- }
634
- if ((type == 'selector' && multiple == false && options[i].data == val[0]) || (type == 'inputSelector' && options[i].data == val) || (type == 'selector' && multiple == true && val.indexOf(options[i].data) > -1)) {
635
- // 找到选中的项了
636
- //tag
637
- if (options[i].isdefect == true) {
638
- shImage = true
639
- }
640
- if (options[i].isdefect == false || this.f_items[n].f_item_value == '') {
641
- shImage = false
642
- }
643
- //tag
644
- if (shImage) {
645
- this.f_items[n].f_is_defect = true
646
- this.f_items[n].f_defect_level = options[i].level
647
- this.f_items[n].f_path = Vue.nopic
648
- this.f_items[n].f_live_dispose = '否'
649
- this.f_items[n].f_deal_dispose = options[i].deal ? options[i].deal : '报修'
650
- //tag
651
- this.f_items[n].tooltip = options[i].tooltip
652
- //todo
653
- this.takePic(n, this.f_items[n].f_item_name)
654
- } else {
655
- this.f_items[n].f_path = ''
656
- this.f_items[n].f_is_defect = ''
657
- this.f_items[n].f_defect_level = ''
658
- this.f_items[n].f_live_dispose = ''
659
- this.f_items[n].f_deal_dispose = ''
660
- this.f_items[n].tooltip = ''
661
- }
662
- }
663
- }
664
- }
665
- }
666
- }
667
- )
668
- // this.$watch('other',function(val){
669
- // //tag
670
- // if(this.selectindex != null) {
671
- // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
672
- // if(index > -1){
673
- // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
674
- // }
675
- // }
676
- //
677
- // })
678
- } else if (this.f_items[n].type == 'radio') {
679
- // 监听单选框,如果有隐患,需要拍照
680
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
681
-
682
- let options = this.f_items[n].options
683
-
684
- for (let i = 0; i < options.length; i++) {
685
-
686
- // 找到选中的项了
687
- if (options[i].value == val) {
688
- // 如果有隐患,拍图片
689
- if (options[i].isdefect) {
690
- this.f_items[n].f_is_defect = true
691
- this.f_items[n].f_defect_level = options[i].level
692
- this.f_items[n].f_path = Vue.nopic
693
- this.f_items[n].f_live_dispose = '否'
694
- this.f_items[n].f_deal_dispose = options[i].deal ? options[i].deal : '报修'
695
- this.f_items[n].tooltip = options[i].tooltip
696
- //todo
697
- this.takePic(n, this.f_items[n].f_item_name)
698
- return
699
- }
700
- }
701
- }
702
- this.f_items[n].f_path = ''
703
- this.f_items[n].f_is_defect = ''
704
- this.f_items[n].f_defect_level = ''
705
- this.f_items[n].f_live_dispose = ''
706
- this.f_items[n].f_deal_dispose = ''
707
- this.f_items[n].tooltip = ''
708
- })
709
- } else if (this.f_items[n].type == 'checkbox') {
710
- // 监听单选框,如果有隐患,需要拍照
711
- this.$watch('f_items[' + n + '].f_item_value', function (val) {
712
-
713
- // 如果是手动赋值,不执行下面逻辑
714
- if (this.f_items[n].isReSet) {
715
- this.f_items[n].isReSet = false
716
- return
717
- }
718
- let options = this.f_items[n].options
719
-
720
- // 取出选中项中有隐患的详细信息
721
- let selected = options.filter(item => {
722
- return val.indexOf(item.value) != -1 && item.isdefect
723
- })
724
-
725
- if (selected.length > 0) {
726
- // 防止赋值无限调用
727
- this.f_items[n].isReSet = true
728
- let selectList = selected.map(item => {
729
- return item.value
730
- })
731
- // 如果选中的是非隐患项,取消选中isdefect为true的
732
- if (selectList.indexOf(val[val.length - 1]) == -1) {
733
- this.f_items[n].f_item_value = val.filter(item => {
734
- return selectList.indexOf(item) == -1
735
- })
736
- this.f_items[n].f_path = ''
737
- this.f_items[n].f_is_defect = ''
738
- this.f_items[n].f_defect_level = ''
739
- this.f_items[n].f_live_dispose = ''
740
- this.f_items[n].f_deal_dispose = ''
741
- this.f_items[n].tooltip = ''
742
- return
743
- }
744
- // 如果选中的是隐患项,取消选中isdefect为false的
745
- this.f_items[n].f_item_value = selectList
746
- // 如果第一次选择隐患项,初始化
747
- if (!this.f_items[n].f_is_defect) {
748
- this.f_items[n].f_is_defect = true
749
- this.f_items[n].f_defect_level = selected[0].level
750
- this.f_items[n].f_path = Vue.nopic
751
- this.f_items[n].f_live_dispose = '否'
752
- this.f_items[n].f_deal_dispose = selected[0].deal ? selected[0].deal : '报修'
753
- //tag
754
- this.f_items[n].tooltip = selected[0].tooltip
755
- this.takePic(n, this.f_items[n].f_item_name)
756
- }
757
-
758
- return
759
- }
760
- this.f_items[n].f_path = ''
761
- this.f_items[n].f_is_defect = ''
762
- this.f_items[n].f_defect_level = ''
763
- this.f_items[n].f_live_dispose = ''
764
- this.f_items[n].f_deal_dispose = ''
765
- this.f_items[n].tooltip = ''
766
- })
767
- }
768
- }
769
-
770
- },
771
- getjishuNumber(val) {
772
- if (!this.f_bc_jishu.index || !this.f_metergasnums.index) {
773
- return
774
- }
775
- // 先清空
776
- this.f_items[this.f_sy_jishu.index].f_item_value = null
777
- if (val == '本次基数') {
778
- //周期用气 = 本次基数-上次基数
779
- this.f_items[this.f_sy_jishu.index].f_item_value = this.f_items[this.f_bc_jishu.index].f_item_value - this.f_items[this.f_metergasnums.index].f_item_value
780
- if (isNaN(this.f_items[this.f_sy_jishu.index].f_item_value)) {
781
- this.f_items[this.f_sy_jishu.index].f_item_value = null
782
- }
783
- }
784
- },
785
- getGasAberrantNumber(val) {
786
- //tag
787
- if (!this.f_meter_base.index || !this.f_gas_balance.index) {
788
- //tag
789
- return
790
- }
791
- // 先清空
792
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
793
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
794
- if (val == '已用气量') {
795
- //剩余气量 = 累购-已用
796
- this.f_items[this.f_gas_balance.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
797
- if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
798
- this.f_items[this.f_gas_balance.index].f_item_value = null
799
- }
800
- }
801
-
802
- // 只有两个值都填了才会计算
803
- if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
804
- return
805
- }
806
-
807
- //tag
808
- //tag
809
-
810
- // 计算公式 => 气量异常差值 = 剩余气量 - 表内剩余
811
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_balance.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
812
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
813
- // 如果数值有误,清空结果s
814
- if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
815
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
816
- }
817
- //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
818
- //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
819
- // 计算差值是否在范围内
820
- // if (Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) > Number(this.gasDeviation)) {
821
- // this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
822
- // }
823
-
824
-
825
- },
826
- getFeeAberrantNumber(val) {
827
- //tag
828
- // 只有两个值都填了才会计算
829
- if (!this.f_fee_base.index || !this.f_balance_amount.index) {
830
- //tag
831
- if (this.f_meter_base.index || this.f_gas_balance.index || this.f_fee_base.index) {
832
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
833
- this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
834
- // if(val=='已用气量'){
835
- // //剩余气量 = 累购-已用
836
- // this.f_items[this.f_gas_balance.index].f_item_value= this.f_items[this.f_total_gas.index].f_item_value-this.f_items[this.f_prior_reading.index].f_item_value
837
- // if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
838
- // this.f_items[this.f_gas_balance.index].f_item_value = null
839
- // }
840
- // }
841
- // 只有两个值都填了才会计算
842
- // if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
843
- // return
844
- // }
845
- // 计算公式 => 气量异常差值 = 剩余气量 - 表内剩余
846
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
847
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
848
- // 如果数值有误,清空结果s
849
- if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
850
- this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
851
- }
852
- return
853
- } else {
854
- return
855
- }
856
- }
857
- // 先清空
858
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
859
- this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
860
- //
861
- // if(val=='表内剩余'){
862
- // this.f_items[this.f_fee_balance.index].f_item_value=this.f_items[this.f_total_fee.index].f_item_value-this.f_items[this.f_fee_base.index].f_item_value
863
- // if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
864
- // this.f_items[this.f_fee_balance.index].f_item_value = null
865
- // }
866
- // }
867
- //
868
- // if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
869
- // return
870
- // }
871
-
872
- // 计算公式 => 金额异常差值 = 系统金额 (f_balance_amount 系统已有)- 表内剩余(f_fee_base 客户填)
873
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_balance_amount.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
874
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_aberrant_number.index].f_item_value.toFixed(3)
875
- if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
876
- this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
877
- }
878
- //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
879
- //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
880
- // 计算差值是否在范围内
881
- // if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
882
- // this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
883
- // }
884
-
885
-
886
- },
887
- //物联网表字轮数改变触发
888
- getmeteraberrantnumber() {
889
- //tag
890
-
891
- // 先清空
892
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
893
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
894
- //tag
895
- // 只有两个值都填了才会计算
896
- if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
897
- return
898
- }
899
- //tag
900
- // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
901
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_base1.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
902
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_aberrant_number1.index].f_item_value.toFixed(3)
903
- if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
904
- this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
905
- }
906
- //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
907
- // 计算差值是否在范围内
908
-
909
- if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)) {
910
- this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
911
- }
912
-
913
-
914
- },
915
-
916
- disSelect(index, itemValue) {
917
-
918
-
919
- if (this.f_items[index].f_item_value == itemValue) {
920
- this.$set(`f_items[${index}].f_item_value`, '')
921
- }
922
- }
923
- },
924
- ready() {
925
- //tag
926
- //tag
927
- if (Vue.config.safecheck != undefined) {
928
- if (Vue.config.safecheck.ApproveConfig != undefined) {
929
- if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
930
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
931
- }
932
- if (Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
933
- this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
934
- }
935
- if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
936
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
937
- this.hiddenDangerImgNumber = 3
938
- } else {
939
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
940
- }
941
- }
942
- }
943
- }
944
- //创建页面所需数据
945
- this.$set('piece', this.paper['device' + this.device.n][this.idx])
946
- let n = 0
947
- for (let item in this.config[this.device.device].items) {
948
- if (typeof this.config[this.device.device].items[item] == 'function') {
949
- continue
950
- }
951
- let index = this.config[this.device.device].items[item].index - 1
952
- this.$set('page.options' + index, [])
953
- // 先根据配置组接页面
954
- let f_item_value
955
- if (this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox') {
956
- f_item_value = []
957
- // 判断选项的默认值
958
- for (let defitem in this.config[this.device.device].items[item].options) {
959
- if (typeof this.config[this.device.device].items[item].options[defitem] == 'function') {
960
- continue
961
- }
962
- let defopt = this.config[this.device.device].items[item].options[defitem]
963
- if (defopt.isdefault) {
964
- //tag
965
- f_item_value[0] = defopt.data
966
- }
967
- }
968
- // if(this.config[this.device.device].items[item].data){
969
- // f_item_value.push(this.config[this.device.device].items[item].data)
970
- // }
971
- } else if (this.config[this.device.device].items[item].type == 'radio') {
972
- //为radio添加默认值
973
- f_item_value = ''
974
-
975
- for (let defitem in this.config[this.device.device].items[item].options) {
976
- if (typeof this.config[this.device.device].items[item].options[defitem] == 'function') {
977
- continue
978
- }
979
-
980
- let defopt = this.config[this.device.device].items[item].options[defitem]
981
- if (defopt.isdefault) {
982
-
983
- f_item_value = defopt.data
984
- }
985
- }
986
- } else {
987
- f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
988
- }
989
-
990
- let it = {
991
- type: this.config[this.device.device].items[item].type,
992
- f_item_name: item,
993
- checkmust: this.config[this.device.device].items[item].checkmust,
994
- f_item_value: f_item_value,
995
- f_is_defect: '',
996
- multiple: this.config[this.device.device].items[item].multiple == true ? this.config[this.device.device].items[item].multiple : false,
997
- f_repair_department: this.config[this.device.device].items[item].repairDepartment ? this.config[this.device.device].items[item].repairDepartment : '',
998
- f_deal_dispose: this.config[this.device.device].items[item].dealDispose ? this.config[this.device.device].items[item].dealDispose : '',
999
- f_handle_date: '',
1000
- f_block_pitfall: this.config[this.device.device].items[item].blockPitfall ? this.config[this.device.device].items[item].blockPitfall : false,
1001
- f_lose_efficacy: this.config[this.device.device].items[item].loseEfficacy ? this.config[this.device.device].items[item].loseEfficacy : '',
1002
- isshow: this.config[this.device.device].items[item].isshow == false ? this.config[this.device.device].items[item].isshow : true,
1003
- readonly: this.config[this.device.device].items[item].readonly == true ? true : false,
1004
- remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
1005
- f_path: '',
1006
- unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
1007
- tooltip: '',
1008
- f_live_dispose: '',
1009
- f_else: '',
1010
- f_p1_path: '',
1011
- f_p2_path: '',
1012
- f_p3_path: '',
1013
- f_longitude: '',
1014
- f_defect_remark: '',
1015
- f_latitude: ''
1016
- }
1017
- this.$set('f_items[' + index + ']', it)
1018
- if (this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') {
1019
- if (this.config[this.device.device].items[item].type == 'selector') {
1020
- this.page['options' + index].push({
1021
- label: "请选择",
1022
- value: ''
1023
- })
1024
- }
1025
- for (let i in this.config[this.device.device].items[item].options) {
1026
- if (typeof this.config[this.device.device].items[item].options[i] == 'function') {
1027
- continue
1028
- }
1029
- this.page['options' + index].push({
1030
- label: this.config[this.device.device].items[item].options[i].data,
1031
- value: this.config[this.device.device].items[item].options[i].data,
1032
- tooltip: this.config[this.device.device].items[item].options[i].tooltip,
1033
- deal: this.config[this.device.device].items[item].options[i].deal
1034
- })
1035
- }
1036
- if (this.config[this.device.device].items[item].type == 'selector') {
1037
- this.$set('f_items[' + index + '].selected', f_item_value)
1038
- } else if (this.config[this.device.device].items[item].type == 'inputSelector') {
1039
- this.$set('f_items[' + index + '].selected', f_item_value)
1040
- }
1041
- this.$set('f_items[' + index + '].options', this.page['options' + index])
1042
- } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
1043
- for (let i in this.config[this.device.device].items[item].options) {
1044
- if (typeof this.config[this.device.device].items[item].options[i] == 'function') {
1045
- continue
1046
- }
1047
- this.page['options' + index].push({
1048
- label: this.config[this.device.device].items[item].options[i].data,
1049
- value: this.config[this.device.device].items[item].options[i].data,
1050
- isdefect: this.config[this.device.device].items[item].options[i].isdefect,
1051
- level: this.config[this.device.device].items[item].options[i].level,
1052
- tooltip: this.config[this.device.device].items[item].options[i].tooltip,
1053
- deal: this.config[this.device.device].items[item].options[i].deal
1054
- })
1055
- }
1056
- this.$set('f_items[' + index + '].options', this.page['options' + index])
1057
- this.$set('f_items[' + index + '].f_item_value', f_item_value)
1058
- }
1059
- n = n + 1
1060
- }
1061
- if (JSON.stringify(this.piece) == '{}') {
1062
- // 如果没有,则新建
1063
- this.$set('piece.f_items', this.f_items)
1064
- this.$set('piece.f_device_type', this.device.device)
1065
- } else {
1066
- // 已经存在,把之前的数据重新填入
1067
- for (let f in this.f_items) {
1068
- if (typeof this.f_items[f] == 'function') {
1069
- continue
1070
- }
1071
- for (let p in this.piece.f_items) {
1072
- if (typeof this.piece.f_items[p] == 'function') {
1073
- continue
1074
- }
1075
- if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1076
- this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1077
- if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1078
- this.f_items[f].selected = this.piece.f_items[p].f_item_value
1079
- }
1080
- // 取出特殊值
1081
- if (this.f_items[f].f_item_name == '初始表底') {
1082
-
1083
- this.f_initial_base.index = f
1084
- } else if (this.f_items[f].f_item_name == '气表累购') {
1085
-
1086
- this.f_total_gas.index = f
1087
- } else if (this.f_items[f].f_item_name == '上次基数') {
1088
-
1089
- this.f_metergasnums.index = f
1090
- } else if (this.f_items[f].f_item_name == '本次基数') {
1091
-
1092
- this.f_bc_jishu.index = f
1093
- this.$watch('f_items[' + f + '].f_item_value', function () {
1094
- this.getjishuNumber('本次基数')
1095
- })
1096
- } else if (this.f_items[f].f_item_name == '周期用气') {
1097
-
1098
- this.f_sy_jishu.index = f
1099
- } else if (this.f_items[f].f_item_name == '已用气量') {
1100
-
1101
- this.f_meter_base.index = f
1102
- this.$watch('f_items[' + f + '].f_item_value', function () {
1103
- this.getGasAberrantNumber('已用气量')
1104
- })
1105
- } else if (this.f_items[f].f_item_name == '剩余气量') {
1106
-
1107
- this.f_gas_balance.index = f
1108
- this.$watch('f_items[' + f + '].f_item_value', function () {
1109
- this.getGasAberrantNumber('')
1110
- })
1111
- } else if (this.f_items[f].f_item_name == '气量异常差值') {
1112
-
1113
- this.f_gas_aberrant_number.index = f
1114
- } else if (this.f_items[f].f_item_name == '累购金额') {
1115
-
1116
- this.f_total_fee.index = f
1117
- } else if (this.f_items[f].f_item_name == '表内剩余') {
1118
-
1119
- this.f_fee_base.index = f
1120
- this.$watch('f_items[' + f + '].f_item_value', function () {
1121
- this.getFeeAberrantNumber('表内剩余')
1122
- })
1123
- } else if (this.f_items[f].f_item_name == '系统金额') {
1124
-
1125
- this.f_balance_amount.index = f
1126
- this.$watch('f_items[' + f + '].f_item_value', function () {
1127
- this.getFeeAberrantNumber('')
1128
- })
1129
- } else if (this.f_items[f].f_item_name == '金额异常差值') {
1130
-
1131
- this.f_fee_aberrant_number.index = f
1132
- } else if (this.f_items[f].f_item_name == '表读数') {
1133
-
1134
- this.f_meter_base.index = f
1135
- } else if (this.f_items[f].f_item_name == '表剩余金额') {
1136
-
1137
- this.f_balance_amount.index = f
1138
- } else if (this.f_items[f].f_item_name == '字轮数') {
1139
-
1140
- this.f_meter_base1.index = f
1141
- this.$watch('f_items[' + f + '].f_item_value', function () {
1142
- this.getmeteraberrantnumber()
1143
- })
1144
- } else if (this.f_items[f].f_item_name == '表余额') {
1145
-
1146
- this.f_balance_amount1.index = f
1147
- this.$watch('f_items[' + f + '].f_item_value', function () {
1148
- this.getfeeaberrantnumber1()
1149
- })
1150
- } else if (this.f_items[f].f_item_name == '表数异常差值') {
1151
-
1152
- this.f_meter_aberrant_number1.index = f
1153
- } else if (this.f_items[f].f_item_name == '表金额异常差值') {
1154
-
1155
- this.f_fee_aberrant_number1.index = f
1156
- }
1157
- }
1158
- }
1159
- for (let em in this.config[this.device.device].items) {
1160
- if (typeof this.config[this.device.device].items[em] == 'function') {
1161
- continue
1162
- }
1163
- if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1164
- this.f_items[f].options = []
1165
- for (let k in this.config[this.device.device].items[em].options) {
1166
- if (typeof this.config[this.device.device].items[em].options[k] == 'function') {
1167
- continue
1168
- }
1169
- this.f_items[f].options.push({
1170
- label: this.config[this.device.device].items[em].options[k].data,
1171
- value: this.config[this.device.device].items[em].options[k].data
1172
- })
1173
- }
1174
- }
1175
- }
1176
- }
1177
-
1178
- this.$set('piece.f_items', this.f_items)
1179
- }
1180
- this.towatch()
1181
- // for (let i = 0; i < this.f_items.length; i++) {
1182
- // if (this.f_items[i].f_item_name == '连接方式'){
1183
- // this.f_items[i].type = 'radio'
1184
- // }
1185
- // }
1186
- },
1187
- destroyed() {
1188
- let nullCount = 0
1189
- let metertitles
1190
- //判断当前是否有选中项
1191
- for (let row in this.f_items) {
1192
- if (typeof this.f_items[row] == 'function') {
1193
- continue
1194
- }
1195
- if (this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array) {
1196
- //tag
1197
- this.f_items[row].f_item_value = this.f_items[row].selected
1198
- } else if (this.f_items[row].selected && this.f_items[row].selected != '') {
1199
- //tag
1200
- this.f_items[row].f_item_value = this.f_items[row].selected
1201
- }
1202
- // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1203
- // nullCount = nullCount+1
1204
- // }else if(this.f_items[row].f_item_value != ''){
1205
- // nullCount = nullCount+1
1206
- // }
1207
- }
1208
- let picture = []
1209
- // for (let row in this.f_items){
1210
- // let a={}
1211
- // a.f_path = this.f_items[row].f_path
1212
- // a.name = this.f_items[row].f_item_name
1213
- // }
1214
- // picture.push(a)
1215
- this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1216
- //tag
1217
- },
1218
- computed: {}
1219
- }
1220
- </script>
1221
- <style lang="less" scoped>
1222
- .class-erro {
1223
- color: #a94442;
1224
- }
1225
-
1226
- .fivelabel {
1227
- border: none;
1228
- border-left: 5px solid #A2C2EB;
1229
- float: left;
1230
- width: 35%;
1231
- margin-bottom: 3px;
1232
- text-align: left;
1233
- word-wrap: break-word;
1234
- white-space: normal;
1235
- }
1236
-
1237
- .radiolabel {
1238
- border: none;
1239
- border-left: 5px solid #A2C2EB;
1240
- float: left;
1241
- width: 65%;
1242
- margin-bottom: 3px;
1243
- text-align: left;
1244
- word-wrap: break-word;
1245
- white-space: normal;
1246
- }
1247
-
1248
- .textlabel {
1249
- border: none;
1250
- border-left: 5px solid #A2C2EB;
1251
- width: 100%;
1252
- margin-bottom: 3px;
1253
- text-align: left;
1254
- word-wrap: break-word;
1255
- white-space: normal;
1256
- }
1257
-
1258
- .textlabel1 {
1259
- border: none;
1260
- border-left: 5px solid #f7cb32;
1261
- width: 100%;
1262
- margin-bottom: 3px;
1263
- text-align: left;
1264
- word-wrap: break-word;
1265
- white-space: normal;
1266
- }
1267
-
1268
- .spanrodio {
1269
- margin-right: 10px;
1270
- }
1271
-
1272
- .div-photo {
1273
- width: auto;
1274
- height: auto;
1275
- /* margin-top: 10px; */
1276
- position: absolute;
1277
- bottom: 10px;
1278
- right: 10px;
1279
- }
1280
-
1281
- .panel-self {
1282
- border-radius: 5px;
1283
- border: 1px solid #c5e1f7;
1284
- //background-color: #F2F6FA;
1285
- }
1286
-
1287
- .btn-photo {
1288
- border: 0;
1289
- border-radius: 7px;
1290
- background-color: #7dc1f4;
1291
- font: 15px PingFang-SC-Bold;
1292
- height: 20%;
1293
- }
1294
- </style>
1295
-
1
+ <template>
2
+ <div class="select-overspread repair-bg auto" style="padding-bottom:5px;">
3
+ <!--<div class="bq-parent" v-if="shutype == 'heng'">-->
4
+ <!--<blockquote class="blockquote">-->
5
+ <!--<p><span>{{repairitem.header}}</span><a @click="mute()" style="float:right" href="#" class="repair-mute-class"><img src="../../assets/novoice.png" width="25px;" alt=""><span style="margin-left:10px;color: #304A66">关闭声音</span></a></p>-->
6
+ <!--</blockquote>-->
7
+ <!--</div>-->
8
+ <div class="panel panel-default auto repair-info-content">
9
+ <div class="panel-body" style="padding: 0">
10
+ <!-- 安检项内容 -->
11
+ <div class="auto repair-info-content compatible" style="padding: 0">
12
+ <div class="row auto" style="padding: 0">
13
+ <div v-if=" device.device != '燃气表'" v-show="false" class="{{shuclass}}">
14
+ <button :disabled="issee" class="btn btn-primary" name="button" type="button" @click='adddetails()'>增加
15
+ </button>
16
+ </div>
17
+ <!--<div class="{{shuclass}}" v-if="device.device != '燃气表' && candelete">-->
18
+ <!--<button type="button" name="button" class="btn btn-primary" @click='deletedetails()' :disabled="issee">删除</button>-->
19
+ <!--</div>-->
20
+ <div v-for="(idxs,row) in f_items" v-show="row.isshow" class="shuclass1"
21
+ style="padding: 4px; border:1px solid #D4D4D4;border-bottom: 0">
22
+ <label v-if="row.type != 'radio' && row.type != 'text' && row.type != 'picture' && row.type != 'checkbox'"
23
+ v-show="row.isshow" class="fivelabel">{{ row.f_item_name }}<span
24
+ v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
25
+ <label v-if="row.type == 'radio' && row.f_item_name!='连接方式'" v-show="row.isshow"
26
+ class="radiolabel">{{ row.f_item_name }}<span
27
+ v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
28
+ <label v-if="row.type == 'text'" v-show="row.isshow" class="textlabel1">{{ row.f_item_name }}<span
29
+ v-if="row.unit">({{ row.unit }})</span><br/>{{ row.remark }}</label>
30
+ <label v-if="row.type == 'picture' || (row.type == 'radio' && row.f_item_name=='连接方式')"
31
+ v-show="row.isshow" class="textlabel1">{{ row.f_item_name }}<br/>{{ row.remark }}</label>
32
+ <label v-if="row.type == 'checkbox'" v-show="row.isshow"
33
+ class="radiolabel">{{ row.f_item_name }}<br/>{{ row.remark }}</label>
34
+ <!--<span v-if="show" style="font-weight:bold">{{row.f_content}}</span>-->
35
+ <!--<datepicker placeholder="请选择时间"-->
36
+ <!--:value.sync="row.f_content"-->
37
+ <!--v-model="row.f_content"-->
38
+ <!--:format="'yyyy-MM-dd'"-->
39
+ <!--v-if="!show && row.type == 'date'"-->
40
+ <!--:readonly="true"-->
41
+ <!--&gt;</datepicker>-->
42
+ <div v-if="row.type == 'picture'" class="form-group col-sm-12" style="clear: both">
43
+ <div class="auto">
44
+ <div class="panel">
45
+ <div class="panel-body panel-self"
46
+ style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
47
+ <div class="row" style="height: 160px;width:160px;overflow: scroll;top: 1px">
48
+ <div v-show="row.f_path" class="col-sm-4">
49
+ <img-self :alt="row.f_item_name" :src="row.f_path" height="140" width="140"></img-self>
50
+ </div>
51
+ <div v-show="!row.f_path" class="col-sm-4" @click="takePic(idxs, row.f_item_name)">
52
+ <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
53
+ </div>
54
+ <img v-if="role!='androidview'" v-show="row.f_path" :class="style__"
55
+ src="../../../assets/remove.png"
56
+ style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
57
+ @click="delfile(idxs, row.f_path)"></img>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div v-if="row.type == 'string'" v-show="row.isshow" class="form-group" style="float: left;width:60%">
64
+ <input v-model="row.f_item_value" :readonly="role == 'androidview' || row.readonly" class="form-control"
65
+ maxlength="100"
66
+ type="text">
67
+ </div>
68
+ <div v-if="row.type == 'date'" v-show="row.isshow" class="form-group col-sm-12"
69
+ style="float: left;width:60%">
70
+ <datepicker v-if="row.type == 'date'" v-show="row.isshow"
71
+ id="f_making_date"
72
+ :disabled-days-of-Week="[]"
73
+ :format="'yyyy-MM-dd 00:00:00'"
74
+ :placeholder=row.f_item_name
75
+ :show-reset-button="reset"
76
+ :value.sync="row.f_item_value" readonly="readonly">
77
+ </datepicker>
78
+ </div>
79
+
80
+ <div v-if="!show && row.type == 'number'" v-show="row.isshow" class="form-group"
81
+ style="float: left;width:60%">
82
+ <input v-model="row.f_item_value" :readonly="row.readonly" class="form-control" maxlength="100"
83
+ onkeyup="value=value.replace(/[^\d\.]/g,'')" type="number">
84
+ </div>
85
+ <!--<input type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project != '表号'" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">-->
86
+ <!--<input type="text" class="form-control" v-model="meternum" v-if="!show && row.type == 'string' && row.f_project == '表号' " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >-->
87
+ <!--<button type="button" name="button" class="btn btn-primary" @click="scan" v-if="!show && row.f_project == '表号' ">扫码</button>-->
88
+ <input-select v-if="row.type == 'inputSelector'"
89
+ v-show="row.isshow"
90
+ v-model="row.selected"
91
+ :options="row.options"
92
+ :readonly="false"
93
+ :value.sync="row.selected"
94
+ @change="changse"
95
+ @click="transelation(idxs)"></input-select>
96
+ <v-select v-if="row.type == 'selector'" v-show="row.isshow"
97
+ v-model="row.selected"
98
+ :close-on-select="!row.multiple"
99
+ :disabled="role == 'androidview' || row.readonly"
100
+ :multiple="row.multiple"
101
+ :options="row.options"
102
+ :search="false"
103
+ :value.sync="row.selected"
104
+ clear-button
105
+ placeholder='请选择'
106
+ style="float: left"
107
+ @change="changse" @click="transelation(idxs)"></v-select>
108
+ <div v-if="!show && row.type == 'radio'" class="form-group" style="float: left;width: 30%">
109
+ <div v-for="item in row.options" class=" col-sm-6 col-md-6">
110
+ <!-- <input type="radio" :name="row.f_item_name" @click="disSelect($parent.idxs,item.value)" :value="item.value" :disabled="(!(ischecked == '有')) || issee" v-model="row.f_item_value" >-->
111
+ <input v-model="row.f_item_value" :disabled="(!(ischecked == '有')) || issee" :name="row.f_item_name"
112
+ :value="item.value" type="radio">
113
+ <span>{{ item.label }}</span>
114
+ </div>
115
+ </div>
116
+ <div v-if="!show && row.type == 'checkbox'" style="white-space: nowrap">
117
+ <div v-for="item in row.options" style="">
118
+ <input v-model="row.f_item_value" :disabled="(!(ischecked == '有')) || issee" :name="row.f_item_name"
119
+ :value="item.value" type="checkbox">
120
+ <span>{{ item.label }}</span>
121
+ </div>
122
+ </div>
123
+ <div style="clear: both">
124
+ <label v-if="row.f_item_value.indexOf('其他') >-1" class="fivelabel">其他</label>
125
+ <div v-if="row.f_item_value.indexOf('其他') >-1" class="form-group" style="float: left;width:60%">
126
+ <input v-model="row.f_else" :readonly="role == 'androidview' || row.readonly" class="form-control"
127
+ maxlength="100"
128
+ type="text">
129
+ </div>
130
+ </div>
131
+ <div
132
+ v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')"
133
+ style="clear: both">
134
+ <label class="fivelabel">隐患备注</label>
135
+ <div class="form-group" style="float: left;width:60%">
136
+ <input v-model="row.f_defect_remark" class="form-control" maxlength="100" type="text">
137
+ </div>
138
+ </div>
139
+ <div style="clear: both">
140
+ <!--<div class="form-group" style="display: flex;flex-wrap: wrap" v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (livedispose == 'true' || livedispose == true) " >
141
+ <label class="fivelabel">现场已处理</label>
142
+ <v-select :value="row.f_live_dispose"
143
+ :value-single="true"
144
+ :options="lives"
145
+ :disabled="role == 'androidview'"
146
+ @change="changlive"
147
+ @click="transelation(idxs)"
148
+ close-on-select clear-button></v-select>
149
+ </div>-->
150
+ <div
151
+ v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '') && (dealdispose == 'true' || dealdispose == true) "
152
+ class="form-group"
153
+ style="display: flex;flex-wrap: wrap">
154
+ <label class="fivelabel">处理方式</label>
155
+ <v-select :disabled="role == 'androidview'"
156
+ :options="deals"
157
+ :value="row.f_deal_dispose"
158
+ :value-single="true"
159
+ clear-button
160
+ close-on-select
161
+ @change="changdeal" @click="transelation(idxs)"></v-select>
162
+ </div>
163
+ <div v-if="(row.f_deal_dispose == '自行处理' || row.f_deal_dispose == '限时整改') && row.f_is_defect != '' " style="display: flex;flex-wrap: wrap">
164
+ <label class="fivelabel">处理时效:</label>
165
+ <!-- <datepicker-->
166
+ <!-- :value.sync="row.f_handle_date"-->
167
+ <!-- v-model="row.f_handle_date"-->
168
+ <!-- :format="'yyyy-MM-dd 00:00:00'"-->
169
+ <!-- placeholder="请选择"-->
170
+ <!-- style="width: 60%">-->
171
+ <!-- </datepicker>-->
172
+ <div class="form-group" style="float: left;width:60%">
173
+ <input v-model="row.f_lose_efficacy" class="form-control" maxlength="100" placeholder="单位:天"
174
+ type="text">
175
+ </div>
176
+ </div>
177
+ <div
178
+ v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && row.tooltip != undefined && row.tooltip != '' "
179
+ class="form-group col-sm-10"
180
+ style="margin-left: 10px">
181
+ ☆{{ row.tooltip }}
182
+ </div>
183
+ <div
184
+ v-if="(row.type == 'selector' || row.type == 'radio' || row.type =='checkbox') && (row.f_path != '' || row.f_is_defect != '')"
185
+ class="form-group col-sm-12"
186
+ style="display: flex;flex-wrap: wrap">
187
+ <div class="auto" style="margin:1px;">
188
+ <div class="panel">
189
+ <div class="panel-body panel-self"
190
+ style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
191
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
192
+ <div v-show="row.f_path" class="col-sm-4">
193
+ <img-self :alt="row.f_item_name" :src="row.f_path" height="140" width="140"></img-self>
194
+ </div>
195
+ <div v-show="!row.f_path" class="col-sm-4" @click="takePic(idxs, row.f_item_name)">
196
+ <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
197
+ </div>
198
+ <img v-if="role!='androidview'" v-show="row.f_path" :class="style__"
199
+ src="../../../assets/remove.png"
200
+ style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
201
+ @click="delfile(idxs, row.f_path)"></img>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ <!--多张隐患照片-->
207
+ <div v-for="itemIndex in hiddenDangerImgNumber" class="auto" style="margin: 1px;">
208
+ <div class="panel">
209
+ <div class="panel-body panel-self"
210
+ style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
211
+ <div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
212
+ <div v-show="row['f_p' + (itemIndex+1) + '_path']" class="col-sm-4">
213
+ <img-self :alt="row.f_item_name" :src="row['f_p' + (itemIndex+1) + '_path']" height="140"
214
+ width="140"></img-self>
215
+ </div>
216
+ <div v-show="!row['f_p' + (itemIndex+1) + '_path']" class="col-sm-4"
217
+ @click="takePic(idxs, row.f_item_name,'f_p' + (itemIndex+1)+ '_path')">
218
+ <img :alt="点击拍摄照片" height="140" src="../../../assets/tackpic.png" width="140"></img>
219
+ </div>
220
+ <img v-if="role!='androidview'" v-show="row['f_p' + (itemIndex+1)+'_path']"
221
+ :class="style__"
222
+ src="../../../assets/remove.png"
223
+ style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"
224
+ @click="delfile(idxs,row['f_p' + (itemIndex+1)+'_path'],'f_p' + (itemIndex+1)+ '_path')"></img>
225
+ </div>
226
+ </div>
227
+ </div>
228
+ </div>
229
+ </div>
230
+ </div>
231
+
232
+ <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project != '气表品牌'"-->
233
+ <!--&gt;</v-select>-->
234
+ <!--<v-select :value.sync="row.f_content" :options='getOptions(row.f_project)' @change="getgasmodel" placeholder='请选择' :disabled="(!(ischecked == '有')) || issee" close-on-select :value-single="true" v-if="!show && row.type == 'selector' && row.f_project == '气表品牌'"-->
235
+ <!--&gt;</v-select>-->
236
+ <!-- <div class="auto" v-if="!show && row.type == 'checkbox' ">-->
237
+ <!-- <input class="magic-checkbox" type="checkbox" id="shebeicheckbox"-->
238
+ <!-- :checked="row.f_content == '有'"-->
239
+ <!-- @click="switchDetails(row.f_project, $event)" :disabled="issee"/>-->
240
+ <!-- <label for="shebeicheckbox" style="width:150px;padding-bottom: 10px">{{row.f_project}}</label>-->
241
+ <!-- </div>-->
242
+ <!--<img-area :model="Detail.imgs" :sutitle="row.f_project" v-if="row.type == 'picture'" :disabled="issee"></img-area>-->
243
+ </div>
244
+ </div>
245
+ </div>
246
+ <div style="border-top: 1px solid #D4D4D4"></div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </template>
251
+ <script>
252
+ import Vue from 'vue'
253
+ import * as Util from '../../Util'
254
+
255
+ export default {
256
+ title: '维修列表信息',
257
+ data() {
258
+ return {
259
+ // telphoneValid: '/^((0\\d{2,3}-\\d{7,8})|(1[3584]\\d{9}))$/',
260
+ // meterstyle:[],
261
+ hiddenDangerImgNumber: 0,//隐患图片数
262
+ shuclass: 'col-xs-12 col-sm-12 col-md-12 form-input-group mg8',
263
+ shuclass1: 'col-xs-12 col-sm-12 col-md-12 mg8',
264
+ // labels:[],
265
+ meternum: '',
266
+ ischecked: '有',
267
+ gasmodel: '',
268
+ textstyle: 'color: red',
269
+ paper: this.$parent.$parent.data,
270
+ f_items: [],
271
+ page: {},
272
+ selectindex: null,
273
+ lives: [{label: '是', value: '是'}, {label: '否', value: '否'}],
274
+ deals: [{label: '现场整改', value: '现场整改'}, {label: '自行处理', value: '自行处理'}, {
275
+ label: '报修',
276
+ value: '报修'
277
+ }, {label: '限时整改', value: '限时整改'}, {label: '跟踪处置', value: '跟踪处置'}],
278
+ f_live_dispose: '否',
279
+ f_deal_dispose: '报修',
280
+ // 初始表底
281
+ f_initial_base: {},
282
+ // 气量异常差值 计算公式 => 气量异常差值 = 累计购气量 - (已用气量 - 初始表底) - 剩余气量
283
+ f_gas_aberrant_number: {},
284
+ // 金额异常差值 计算公式 => 金额异常差值 = 累计购金额 - 已用金额 - 剩余金额
285
+ f_fee_aberrant_number: {},
286
+ // 气表累购
287
+ f_total_gas: {},
288
+ // 累购金额
289
+ f_total_fee: {},
290
+ // 已用气量
291
+ f_meter_base: {},
292
+ // 表内剩余
293
+ f_fee_base: {},
294
+ //本次基数
295
+ f_bc_jishu: {},
296
+ //上次基数
297
+ f_metergasnums: {},
298
+ //周期用气
299
+ f_sy_jishu: {},
300
+ // 剩余气量
301
+ f_gas_balance: {},
302
+ // 系统金额
303
+ f_balance_amount: {},
304
+ f_balance_amount1: {},//物联网表现场录入的表上剩余金额
305
+ f_meter_base1: {},//物联网表现场录入的表字轮数
306
+ f_meter_aberrant_number1: {},//物联网表 表数异常差值
307
+ f_fee_aberrant_number1: {},//物联网 表金额异常差值
308
+ gasDeviation: (
309
+ function (_this) {
310
+ let deviation = _this.$appdata.getSingleValue('气量异常差值允许误差')
311
+ if (deviation && !isNaN(deviation)) {
312
+ return deviation
313
+ } else {
314
+ return 0
315
+ }
316
+ }
317
+ )(this),
318
+ // 金额异常差值允许误差
319
+ feeDeviation: (
320
+ function (_this) {
321
+ let deviation = _this.$appdata.getSingleValue('金额异常差值允许误差')
322
+ if (deviation && !isNaN(deviation)) {
323
+ return deviation
324
+ } else {
325
+ return 0
326
+ }
327
+ }
328
+ )(this),
329
+ // 字轮异常差值允许误差
330
+ meterbase: (
331
+ function (_this) {
332
+ let deviation = _this.$appdata.getSingleValue('字轮异常差值允许误差')
333
+ if (deviation && !isNaN(deviation)) {
334
+ return deviation
335
+ } else {
336
+ return 0
337
+ }
338
+ }
339
+ )(this),
340
+ showElse: false, //控制其他选项是否显示
341
+ }
342
+ },
343
+ props: ['config', 'device', 'idx', 'operation', 'role'],
344
+ // props: {
345
+ // // 维修对应的用户数据收集
346
+ // model: {
347
+ // type: Object
348
+ // },
349
+ // service:{
350
+ // type: Object
351
+ // },
352
+ // show: {
353
+ // type: Boolean,
354
+ // default: false
355
+ // },
356
+ // repairitem:{
357
+ // type: Object
358
+ // },
359
+ // shutype:'heng',
360
+ // tabs:{
361
+ // type: Object
362
+ // },
363
+ // repairdetails:{
364
+ // type: Object
365
+ // },
366
+ // faultshow:{
367
+ // type: Object
368
+ // },
369
+ // issee:''
370
+ // },
371
+ methods: {
372
+ changse(val) {
373
+ if (val == undefined) {
374
+ return
375
+ }
376
+ if (this.selectindex != null) {
377
+ if (this.f_items[this.selectindex].type == 'selector') {
378
+ this.f_items[this.selectindex].f_item_value = val
379
+ } else if (this.f_items[this.selectindex].type == 'inputSelector') {
380
+ this.f_items[this.selectindex].f_item_value = val.target.value
381
+ }
382
+ }
383
+ },
384
+ changlive(val) {
385
+ if (val == undefined) {
386
+ return
387
+ }
388
+ if (this.selectindex != null) {
389
+ this.f_items[this.selectindex].f_live_dispose = val
390
+ }
391
+ },
392
+ changdeal(val) {
393
+ if (val == undefined) {
394
+ return
395
+ }
396
+ if (this.selectindex != null) {
397
+ this.f_items[this.selectindex].f_deal_dispose = val
398
+ }
399
+ },
400
+ switchDetails(detailsType, event) {
401
+ if (event.srcElement.checked) {
402
+ for (var i = 0; i < this.Detail.details.length; i++) {
403
+ if (this.Detail.details[i].f_project == detailsType) {
404
+ this.Detail.details[i].f_content = '有'
405
+ this.ischecked = '有'
406
+ return
407
+ }
408
+ }
409
+ } else {
410
+ this.Detail.imgs = []
411
+ for (var i = 0; i < this.Detail.details.length; i++) {
412
+ if (this.Detail.details[i].f_project == detailsType) {
413
+ this.Detail.details[i].f_content = '无'
414
+ this.ischecked = '无'
415
+ } else {
416
+ this.Detail.details[i].f_content = ''
417
+ }
418
+ }
419
+ }
420
+ },
421
+ getgasmodel(val) {
422
+ this.gasmodel = val
423
+ },
424
+ getradios(val, flag) {
425
+ let Reoptions = []
426
+ for (let i = 0; i < this.repairdetails.length; i++) {
427
+ var t = false
428
+ if (this.repairdetails[i].f_type == this.repairitem.header) {
429
+ for (var j = 0; j < this.repairdetails[i].details.length; j++) {
430
+ if (this.repairdetails[i].details[j].f_project == val) {
431
+ Reoptions = this.repairdetails[i].details[j].options
432
+ t = true
433
+ break
434
+ }
435
+ }
436
+ }
437
+ if (t) {
438
+ break
439
+ }
440
+ }
441
+ for (let j = 0; j < Reoptions.length; j++) {
442
+ if (Reoptions[j].data == flag) {
443
+ for (var e = 0; e < this.Detail.details.length; e++) {
444
+ if (this.Detail.details[e].f_project == val) {
445
+ this.Detail.details[e].f_status = Reoptions[j].f_status
446
+ return
447
+ }
448
+ }
449
+ break
450
+ }
451
+ }
452
+ },
453
+ deletedetails() {
454
+ this.$showMessage('该操作会删除所填信息,是否继续!', ['confirm', 'cancel']).then((res) => {
455
+ if (res === 'confirm') {
456
+ for (var i = 0; i < this.tabs.length; i++) {
457
+ if (this.tabs[i].number == this.repairitem.number) {
458
+ this.tabs.splice(i, 1)
459
+ this.model.servicerepair.splice(this.repairitem.number, 1)
460
+ for (let t = i; t < this.tabs.length; t++) {
461
+ this.tabs[t].number -= 1
462
+ }
463
+ return
464
+ }
465
+ }
466
+ }
467
+ })
468
+ },
469
+ takePic(prop, title, pathname = 'null') {
470
+ if (this.role == 'androidview') {
471
+ return
472
+ }
473
+ HostApp.__callback__ = this.cameraCallBack
474
+ HostApp.__this__ = this
475
+ //tag
476
+ let fileName
477
+ if (pathname == 'null') {
478
+ if (!this.f_items[prop].f_path || this.f_items[prop].f_path.includes("nopic.png")) {
479
+ fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
480
+ } else {
481
+ fileName = Util.getFileName(this.f_items[prop].f_path)
482
+ }
483
+ } else {
484
+ if (!this.f_items[prop][pathname] || this.f_items[prop][pathname].includes("nopic.png")) {
485
+ fileName = Util.guid() + '-' + 'device' + this.device.n + '-' + this.idx + '-' + 'f_items' + prop + '.jpg'
486
+ } else {
487
+ fileName = Util.getFileName(this.f_items[prop][pathname])
488
+ }
489
+ }
490
+ console.log('fileName === >' + fileName)
491
+ console.log('prop === >' + prop)
492
+ let addressA = "未获取到地址";
493
+ try {
494
+ let posaddress = HostApp.getGpsDetailAddress(); //获取当前地址信息
495
+ console.log("---------地址:" + JSON.stringify(addressA))
496
+ addressA = posaddress.address
497
+ this.f_items[prop].f_longitude = posaddress.longitude
498
+ this.f_items[prop].f_latitude = posaddress.latitude
499
+ } catch (e) {
500
+ console.error('拍照时调用android端获取地址信息错误')
501
+ }
502
+ HostApp._open_a_page({
503
+ type: 'boomerang',
504
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
505
+ param: {
506
+ file: fileName,
507
+ requestCode: 111,
508
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s","' + pathname + '");',
509
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
510
+ }
511
+ })
512
+ },
513
+ cameraCallBack(prop, fileName, pathname) {
514
+ //tag
515
+ if (pathname == 'null') {
516
+ //tag
517
+ HostApp.__this__.$set('f_items[' + prop + '].f_path', fileName + '?' + Math.random())
518
+ //tag
519
+ HostApp.__callback__ = null
520
+ HostApp.__this__ = null
521
+ } else {
522
+ //tag
523
+
524
+ HostApp.__this__.$set('f_items[' + prop + '].' + pathname + '', fileName + '?' + Math.random())
525
+ HostApp.__callback__ = null
526
+ HostApp.__this__ = null
527
+ }
528
+ },
529
+ delfile(prop, fileName, pathname = 'null') {
530
+ if (pathname == 'null') {
531
+ //tag
532
+
533
+ if (fileName == Vue.nopic) {
534
+
535
+ } else {
536
+ HostApp.delfile(fileName)
537
+ this.f_items[prop].f_path = Vue.nopic
538
+ }
539
+ } else {
540
+ //tag
541
+
542
+ if (fileName == Vue.nopic) {
543
+
544
+ } else {
545
+ HostApp.delfile(fileName)
546
+ this.f_items[prop][pathname] = Vue.nopic
547
+ }
548
+ }
549
+ },
550
+ adddetails() {
551
+ // 下标作为序号,取值用。 增加 序号得依次增加
552
+ if (this.tabs.length > 0) {
553
+ for (let i = this.tabs.length - 1; i > 0; i--) {
554
+ if (this.tabs[i].header == this.repairitem.header) {
555
+ if (this.model.servicerepair.length > 0) {
556
+ for (let j = this.model.servicerepair.length - 1; j > -1; j--) {
557
+ if (this.model.servicerepair[j].f_type == this.repairitem.header) {
558
+ this.model.servicerepair.splice(j + 1, 0, Object.assign({}, JSON.parse(JSON.stringify(this.tabs[i].details))))
559
+ this.tabs.splice(i + 1, 0, {
560
+ header: `${this.repairitem.header}`,
561
+ details: this.tabs[i].details,
562
+ complete: 'repair-details',
563
+ class: 'repair-details-class',
564
+ number: j + 1,
565
+ items: this.tabs[i].items
566
+ })
567
+ for (let t = i + 2; t < this.tabs.length; t++) {
568
+ this.tabs[t].number += 1
569
+ }
570
+ this.faultshow.number += this.faultshow.number + 1
571
+ return
572
+ }
573
+ }
574
+ }
575
+ }
576
+ }
577
+ }
578
+ },
579
+ transelation(val) {
580
+ this.selectindex = val
581
+ },
582
+ towatch() {
583
+ for (let n in this.f_items) {
584
+ if (typeof this.f_items[n] == 'function') {
585
+ continue
586
+ }
587
+ if (this.f_items[n].type == 'selector' || this.f_items[n].type == 'inputSelector') {
588
+ // 监听下拉框,如果有隐患,需要拍照
589
+ this.$watch('f_items[' + n + '].selected', function (val) {
590
+ // 下拉框值
591
+
592
+ // 下拉框所属设备
593
+ //tag
594
+ // 下拉框所属项
595
+ //tag
596
+ let shImage = false
597
+ if (val.indexOf('其他') == -1) {
598
+ this.f_items[n].f_else = ''
599
+ }
600
+ // if(this.config[this.device.device].items[item].type == 'selector'){
601
+ // this.f_items[n].f_item_value = val
602
+ // }else if(this.config[this.device.device].items[item].type == 'inputSelector'){
603
+ // this.f_items[n].f_item_value = val[0]
604
+ // }
605
+ // 在配置中查找该项
606
+ for (let item in this.config[this.device.device].items) {
607
+ if (typeof this.config[this.device.device].items[item] == 'function') {
608
+ continue
609
+ }
610
+ let type = this.config[this.device.device].items[item].type
611
+ let multiple = this.config[this.device.device].items[item].multiple ? this.config[this.device.device].items[item].multiple : false
612
+ let options = this.config[this.device.device].items[item].options
613
+ if ((this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') && item == this.f_items[n].f_item_name) {
614
+ for (let i in options) {
615
+ if (typeof options[i] == 'function') {
616
+ continue
617
+ }
618
+ let value
619
+ if (this.config[this.device.device].items[item].type == 'selector' && this.config[this.device.device].items[item].multiple == false) {
620
+ value = val[0]
621
+ } else if (this.config[this.device.device].items[item].type == 'inputSelector') {
622
+ value = val
623
+ }
624
+
625
+ // 如果未选择,清空图片、隐患信息等
626
+ if ((type == 'selector' && val.length == 0) || (type == 'inputSelector' && val == '')) {
627
+ this.f_items[n].f_path = ''
628
+ this.f_items[n].f_is_defect = ''
629
+ this.f_items[n].f_defect_level = ''
630
+ this.f_items[n].f_live_dispose = ''
631
+ this.f_items[n].f_deal_dispose = ''
632
+ this.f_items[n].tooltip = ''
633
+ }
634
+ if ((type == 'selector' && multiple == false && options[i].data == val[0]) || (type == 'inputSelector' && options[i].data == val) || (type == 'selector' && multiple == true && val.indexOf(options[i].data) > -1)) {
635
+ // 找到选中的项了
636
+ //tag
637
+ if (options[i].isdefect == true) {
638
+ shImage = true
639
+ }
640
+ if (options[i].isdefect == false || this.f_items[n].f_item_value == '') {
641
+ shImage = false
642
+ }
643
+ //tag
644
+ if (shImage) {
645
+ this.f_items[n].f_is_defect = true
646
+ this.f_items[n].f_defect_level = options[i].level
647
+ this.f_items[n].f_path = Vue.nopic
648
+ this.f_items[n].f_live_dispose = '否'
649
+ this.f_items[n].f_deal_dispose = options[i].deal ? options[i].deal : '报修'
650
+ //tag
651
+ this.f_items[n].tooltip = options[i].tooltip
652
+ //todo
653
+ this.takePic(n, this.f_items[n].f_item_name)
654
+ } else {
655
+ this.f_items[n].f_path = ''
656
+ this.f_items[n].f_is_defect = ''
657
+ this.f_items[n].f_defect_level = ''
658
+ this.f_items[n].f_live_dispose = ''
659
+ this.f_items[n].f_deal_dispose = ''
660
+ this.f_items[n].tooltip = ''
661
+ }
662
+ }
663
+ }
664
+ }
665
+ }
666
+ }
667
+ )
668
+ // this.$watch('other',function(val){
669
+ // //tag
670
+ // if(this.selectindex != null) {
671
+ // let index = this.f_items[this.selectindex].f_item_value.indexOf('其他')
672
+ // if(index > -1){
673
+ // this.f_items[this.selectindex].f_item_value.splice(index,1,this.other)
674
+ // }
675
+ // }
676
+ //
677
+ // })
678
+ } else if (this.f_items[n].type == 'radio') {
679
+ // 监听单选框,如果有隐患,需要拍照
680
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
681
+
682
+ let options = this.f_items[n].options
683
+
684
+ for (let i = 0; i < options.length; i++) {
685
+
686
+ // 找到选中的项了
687
+ if (options[i].value == val) {
688
+ // 如果有隐患,拍图片
689
+ if (options[i].isdefect) {
690
+ this.f_items[n].f_is_defect = true
691
+ this.f_items[n].f_defect_level = options[i].level
692
+ this.f_items[n].f_path = Vue.nopic
693
+ this.f_items[n].f_live_dispose = '否'
694
+ this.f_items[n].f_deal_dispose = options[i].deal ? options[i].deal : '报修'
695
+ this.f_items[n].tooltip = options[i].tooltip
696
+ //todo
697
+ this.takePic(n, this.f_items[n].f_item_name)
698
+ return
699
+ }
700
+ }
701
+ }
702
+ this.f_items[n].f_path = ''
703
+ this.f_items[n].f_is_defect = ''
704
+ this.f_items[n].f_defect_level = ''
705
+ this.f_items[n].f_live_dispose = ''
706
+ this.f_items[n].f_deal_dispose = ''
707
+ this.f_items[n].tooltip = ''
708
+ })
709
+ } else if (this.f_items[n].type == 'checkbox') {
710
+ // 监听单选框,如果有隐患,需要拍照
711
+ this.$watch('f_items[' + n + '].f_item_value', function (val) {
712
+
713
+ // 如果是手动赋值,不执行下面逻辑
714
+ if (this.f_items[n].isReSet) {
715
+ this.f_items[n].isReSet = false
716
+ return
717
+ }
718
+ let options = this.f_items[n].options
719
+
720
+ // 取出选中项中有隐患的详细信息
721
+ let selected = options.filter(item => {
722
+ return val.indexOf(item.value) != -1 && item.isdefect
723
+ })
724
+
725
+ if (selected.length > 0) {
726
+ // 防止赋值无限调用
727
+ this.f_items[n].isReSet = true
728
+ let selectList = selected.map(item => {
729
+ return item.value
730
+ })
731
+ // 如果选中的是非隐患项,取消选中isdefect为true的
732
+ if (selectList.indexOf(val[val.length - 1]) == -1) {
733
+ this.f_items[n].f_item_value = val.filter(item => {
734
+ return selectList.indexOf(item) == -1
735
+ })
736
+ this.f_items[n].f_path = ''
737
+ this.f_items[n].f_is_defect = ''
738
+ this.f_items[n].f_defect_level = ''
739
+ this.f_items[n].f_live_dispose = ''
740
+ this.f_items[n].f_deal_dispose = ''
741
+ this.f_items[n].tooltip = ''
742
+ return
743
+ }
744
+ // 如果选中的是隐患项,取消选中isdefect为false的
745
+ this.f_items[n].f_item_value = selectList
746
+ // 如果第一次选择隐患项,初始化
747
+ if (!this.f_items[n].f_is_defect) {
748
+ this.f_items[n].f_is_defect = true
749
+ this.f_items[n].f_defect_level = selected[0].level
750
+ this.f_items[n].f_path = Vue.nopic
751
+ this.f_items[n].f_live_dispose = '否'
752
+ this.f_items[n].f_deal_dispose = selected[0].deal ? selected[0].deal : '报修'
753
+ //tag
754
+ this.f_items[n].tooltip = selected[0].tooltip
755
+ this.takePic(n, this.f_items[n].f_item_name)
756
+ }
757
+
758
+ return
759
+ }
760
+ this.f_items[n].f_path = ''
761
+ this.f_items[n].f_is_defect = ''
762
+ this.f_items[n].f_defect_level = ''
763
+ this.f_items[n].f_live_dispose = ''
764
+ this.f_items[n].f_deal_dispose = ''
765
+ this.f_items[n].tooltip = ''
766
+ })
767
+ }
768
+ }
769
+
770
+ },
771
+ getjishuNumber(val) {
772
+ if (!this.f_bc_jishu.index || !this.f_metergasnums.index) {
773
+ return
774
+ }
775
+ // 先清空
776
+ this.f_items[this.f_sy_jishu.index].f_item_value = null
777
+ if (val == '本次基数') {
778
+ //周期用气 = 本次基数-上次基数
779
+ this.f_items[this.f_sy_jishu.index].f_item_value = this.f_items[this.f_bc_jishu.index].f_item_value - this.f_items[this.f_metergasnums.index].f_item_value
780
+ if (isNaN(this.f_items[this.f_sy_jishu.index].f_item_value)) {
781
+ this.f_items[this.f_sy_jishu.index].f_item_value = null
782
+ }
783
+ }
784
+ },
785
+ getGasAberrantNumber(val) {
786
+ //tag
787
+ if (!this.f_meter_base.index || !this.f_gas_balance.index) {
788
+ //tag
789
+ return
790
+ }
791
+ // 先清空
792
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
793
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
794
+ if (val == '已用气量') {
795
+ //剩余气量 = 累购-已用
796
+ this.f_items[this.f_gas_balance.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
797
+ if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
798
+ this.f_items[this.f_gas_balance.index].f_item_value = null
799
+ }
800
+ }
801
+
802
+ // 只有两个值都填了才会计算
803
+ if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
804
+ return
805
+ }
806
+
807
+ //tag
808
+ //tag
809
+
810
+ // 计算公式 => 气量异常差值 = 剩余气量 - 表内剩余
811
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_balance.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
812
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
813
+ // 如果数值有误,清空结果s
814
+ if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
815
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
816
+ }
817
+ //tag ===> ' + Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value))
818
+ //tag ===> ' + JSON.stringify(Number(this.gasDeviation)))
819
+ // 计算差值是否在范围内
820
+ // if (Math.abs(this.f_items[this.f_gas_aberrant_number.index].f_item_value) > Number(this.gasDeviation)) {
821
+ // this.f_items[this.f_gas_aberrant_number.index].f_is_defect = true
822
+ // }
823
+
824
+
825
+ },
826
+ getFeeAberrantNumber(val) {
827
+ //tag
828
+ // 只有两个值都填了才会计算
829
+ if (!this.f_fee_base.index || !this.f_balance_amount.index) {
830
+ //tag
831
+ if (this.f_meter_base.index || this.f_gas_balance.index || this.f_fee_base.index) {
832
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
833
+ this.f_items[this.f_gas_aberrant_number.index].f_is_defect = false
834
+ // if(val=='已用气量'){
835
+ // //剩余气量 = 累购-已用
836
+ // this.f_items[this.f_gas_balance.index].f_item_value= this.f_items[this.f_total_gas.index].f_item_value-this.f_items[this.f_prior_reading.index].f_item_value
837
+ // if (isNaN(this.f_items[this.f_gas_balance.index].f_item_value)) {
838
+ // this.f_items[this.f_gas_balance.index].f_item_value = null
839
+ // }
840
+ // }
841
+ // 只有两个值都填了才会计算
842
+ // if (!this.f_items[this.f_table_base.index].f_item_value || !this.f_items[this.f_gas_balance.index].f_item_value) {
843
+ // return
844
+ // }
845
+ // 计算公式 => 气量异常差值 = 剩余气量 - 表内剩余
846
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_total_gas.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
847
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = this.f_items[this.f_gas_aberrant_number.index].f_item_value.toFixed(3)
848
+ // 如果数值有误,清空结果s
849
+ if (isNaN(this.f_items[this.f_gas_aberrant_number.index].f_item_value)) {
850
+ this.f_items[this.f_gas_aberrant_number.index].f_item_value = null
851
+ }
852
+ return
853
+ } else {
854
+ return
855
+ }
856
+ }
857
+ // 先清空
858
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
859
+ this.f_items[this.f_fee_aberrant_number.index].f_is_defect = false
860
+ //
861
+ // if(val=='表内剩余'){
862
+ // this.f_items[this.f_fee_balance.index].f_item_value=this.f_items[this.f_total_fee.index].f_item_value-this.f_items[this.f_fee_base.index].f_item_value
863
+ // if (isNaN(this.f_items[this.f_fee_balance.index].f_item_value)) {
864
+ // this.f_items[this.f_fee_balance.index].f_item_value = null
865
+ // }
866
+ // }
867
+ //
868
+ // if (!this.f_items[this.f_fee_base.index].f_item_value || !this.f_items[this.f_fee_balance.index].f_item_value) {
869
+ // return
870
+ // }
871
+
872
+ // 计算公式 => 金额异常差值 = 系统金额 (f_balance_amount 系统已有)- 表内剩余(f_fee_base 客户填)
873
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_balance_amount.index].f_item_value - this.f_items[this.f_fee_base.index].f_item_value
874
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = this.f_items[this.f_fee_aberrant_number.index].f_item_value.toFixed(3)
875
+ if (isNaN(this.f_items[this.f_fee_aberrant_number.index].f_item_value)) {
876
+ this.f_items[this.f_fee_aberrant_number.index].f_item_value = null
877
+ }
878
+ //tag ===> ' + Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value))
879
+ //tag ===> ' + JSON.stringify(Number(this.feeDeviation)))
880
+ // 计算差值是否在范围内
881
+ // if (Math.abs(this.f_items[this.f_fee_aberrant_number.index].f_item_value) > Number(this.feeDeviation)) {
882
+ // this.f_items[this.f_fee_aberrant_number.index].f_is_defect = true
883
+ // }
884
+
885
+
886
+ },
887
+ //物联网表字轮数改变触发
888
+ getmeteraberrantnumber() {
889
+ //tag
890
+
891
+ // 先清空
892
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
893
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = false
894
+ //tag
895
+ // 只有两个值都填了才会计算
896
+ if (!this.f_items[this.f_meter_base.index].f_item_value || !this.f_items[this.f_meter_base1.index].f_item_value) {
897
+ return
898
+ }
899
+ //tag
900
+ // 计算公式 => 表数异常差值= - 字轮数 - 后台表读数
901
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_base1.index].f_item_value - this.f_items[this.f_meter_base.index].f_item_value
902
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = this.f_items[this.f_meter_aberrant_number1.index].f_item_value.toFixed(3)
903
+ if (isNaN(this.f_items[this.f_meter_aberrant_number1.index].f_item_value)) {
904
+ this.f_items[this.f_meter_aberrant_number1.index].f_item_value = null
905
+ }
906
+ //tag ===> ' + Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value))
907
+ // 计算差值是否在范围内
908
+
909
+ if (Math.abs(this.f_items[this.f_meter_aberrant_number1.index].f_item_value) > Number(this.meterbase)) {
910
+ this.f_items[this.f_meter_aberrant_number1.index].f_is_defect = true
911
+ }
912
+
913
+
914
+ },
915
+
916
+ disSelect(index, itemValue) {
917
+
918
+
919
+ if (this.f_items[index].f_item_value == itemValue) {
920
+ this.$set(`f_items[${index}].f_item_value`, '')
921
+ }
922
+ }
923
+ },
924
+ ready() {
925
+ //tag
926
+ //tag
927
+ if (Vue.config.safecheck != undefined) {
928
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
929
+ if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
930
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
931
+ }
932
+ if (Vue.config.safecheck.ApproveConfig.dealdispose != undefined) {
933
+ this.dealdispose = Vue.config.safecheck.ApproveConfig.dealdispose
934
+ }
935
+ if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
936
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
937
+ this.hiddenDangerImgNumber = 3
938
+ } else {
939
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
940
+ }
941
+ }
942
+ }
943
+ }
944
+ //创建页面所需数据
945
+ this.$set('piece', this.paper['device' + this.device.n][this.idx])
946
+ let n = 0
947
+ for (let item in this.config[this.device.device].items) {
948
+ if (typeof this.config[this.device.device].items[item] == 'function') {
949
+ continue
950
+ }
951
+ let index = this.config[this.device.device].items[item].index - 1
952
+ this.$set('page.options' + index, [])
953
+ // 先根据配置组接页面
954
+ let f_item_value
955
+ if (this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'checkbox') {
956
+ f_item_value = []
957
+ // 判断选项的默认值
958
+ for (let defitem in this.config[this.device.device].items[item].options) {
959
+ if (typeof this.config[this.device.device].items[item].options[defitem] == 'function') {
960
+ continue
961
+ }
962
+ let defopt = this.config[this.device.device].items[item].options[defitem]
963
+ if (defopt.isdefault) {
964
+ //tag
965
+ f_item_value[0] = defopt.data
966
+ }
967
+ }
968
+ // if(this.config[this.device.device].items[item].data){
969
+ // f_item_value.push(this.config[this.device.device].items[item].data)
970
+ // }
971
+ } else if (this.config[this.device.device].items[item].type == 'radio') {
972
+ //为radio添加默认值
973
+ f_item_value = ''
974
+
975
+ for (let defitem in this.config[this.device.device].items[item].options) {
976
+ if (typeof this.config[this.device.device].items[item].options[defitem] == 'function') {
977
+ continue
978
+ }
979
+
980
+ let defopt = this.config[this.device.device].items[item].options[defitem]
981
+ if (defopt.isdefault) {
982
+
983
+ f_item_value = defopt.data
984
+ }
985
+ }
986
+ } else {
987
+ f_item_value = this.config[this.device.device].items[item].data ? this.config[this.device.device].items[item].data : ''
988
+ }
989
+
990
+ let it = {
991
+ type: this.config[this.device.device].items[item].type,
992
+ f_item_name: item,
993
+ checkmust: this.config[this.device.device].items[item].checkmust,
994
+ f_item_value: f_item_value,
995
+ f_is_defect: '',
996
+ multiple: this.config[this.device.device].items[item].multiple == true ? this.config[this.device.device].items[item].multiple : false,
997
+ f_repair_department: this.config[this.device.device].items[item].repairDepartment ? this.config[this.device.device].items[item].repairDepartment : '',
998
+ f_deal_dispose: this.config[this.device.device].items[item].dealDispose ? this.config[this.device.device].items[item].dealDispose : '',
999
+ f_handle_date: '',
1000
+ f_block_pitfall: this.config[this.device.device].items[item].blockPitfall ? this.config[this.device.device].items[item].blockPitfall : false,
1001
+ f_lose_efficacy: this.config[this.device.device].items[item].loseEfficacy ? this.config[this.device.device].items[item].loseEfficacy : '',
1002
+ isshow: this.config[this.device.device].items[item].isshow == false ? this.config[this.device.device].items[item].isshow : true,
1003
+ readonly: this.config[this.device.device].items[item].readonly == true ? true : false,
1004
+ remark: this.config[this.device.device].items[item].remark ? this.config[this.device.device].items[item].remark : '',
1005
+ f_path: '',
1006
+ unit: this.config[this.device.device].items[item].unit ? this.config[this.device.device].items[item].unit : '',
1007
+ tooltip: '',
1008
+ f_live_dispose: '',
1009
+ f_else: '',
1010
+ f_p1_path: '',
1011
+ f_p2_path: '',
1012
+ f_p3_path: '',
1013
+ f_longitude: '',
1014
+ f_defect_remark: '',
1015
+ f_latitude: ''
1016
+ }
1017
+ this.$set('f_items[' + index + ']', it)
1018
+ if (this.config[this.device.device].items[item].type == 'selector' || this.config[this.device.device].items[item].type == 'inputSelector') {
1019
+ if (this.config[this.device.device].items[item].type == 'selector') {
1020
+ this.page['options' + index].push({
1021
+ label: "请选择",
1022
+ value: ''
1023
+ })
1024
+ }
1025
+ for (let i in this.config[this.device.device].items[item].options) {
1026
+ if (typeof this.config[this.device.device].items[item].options[i] == 'function') {
1027
+ continue
1028
+ }
1029
+ this.page['options' + index].push({
1030
+ label: this.config[this.device.device].items[item].options[i].data,
1031
+ value: this.config[this.device.device].items[item].options[i].data,
1032
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip,
1033
+ deal: this.config[this.device.device].items[item].options[i].deal
1034
+ })
1035
+ }
1036
+ if (this.config[this.device.device].items[item].type == 'selector') {
1037
+ this.$set('f_items[' + index + '].selected', f_item_value)
1038
+ } else if (this.config[this.device.device].items[item].type == 'inputSelector') {
1039
+ this.$set('f_items[' + index + '].selected', f_item_value)
1040
+ }
1041
+ this.$set('f_items[' + index + '].options', this.page['options' + index])
1042
+ } else if (this.config[this.device.device].items[item].type == 'radio' || this.config[this.device.device].items[item].type == 'checkbox') {
1043
+ for (let i in this.config[this.device.device].items[item].options) {
1044
+ if (typeof this.config[this.device.device].items[item].options[i] == 'function') {
1045
+ continue
1046
+ }
1047
+ this.page['options' + index].push({
1048
+ label: this.config[this.device.device].items[item].options[i].data,
1049
+ value: this.config[this.device.device].items[item].options[i].data,
1050
+ isdefect: this.config[this.device.device].items[item].options[i].isdefect,
1051
+ level: this.config[this.device.device].items[item].options[i].level,
1052
+ tooltip: this.config[this.device.device].items[item].options[i].tooltip,
1053
+ deal: this.config[this.device.device].items[item].options[i].deal
1054
+ })
1055
+ }
1056
+ this.$set('f_items[' + index + '].options', this.page['options' + index])
1057
+ this.$set('f_items[' + index + '].f_item_value', f_item_value)
1058
+ }
1059
+ n = n + 1
1060
+ }
1061
+ if (JSON.stringify(this.piece) == '{}') {
1062
+ // 如果没有,则新建
1063
+ this.$set('piece.f_items', this.f_items)
1064
+ this.$set('piece.f_device_type', this.device.device)
1065
+ } else {
1066
+ // 已经存在,把之前的数据重新填入
1067
+ for (let f in this.f_items) {
1068
+ if (typeof this.f_items[f] == 'function') {
1069
+ continue
1070
+ }
1071
+ for (let p in this.piece.f_items) {
1072
+ if (typeof this.piece.f_items[p] == 'function') {
1073
+ continue
1074
+ }
1075
+ if (this.f_items[f].f_item_name == this.piece.f_items[p].f_item_name) {
1076
+ this.f_items[f] = Object.assign(this.f_items[f], this.piece.f_items[p])
1077
+ if (this.f_items[f].type == 'selector' || this.f_items[f].type == 'inputSelector') {
1078
+ this.f_items[f].selected = this.piece.f_items[p].f_item_value
1079
+ }
1080
+ // 取出特殊值
1081
+ if (this.f_items[f].f_item_name == '初始表底') {
1082
+
1083
+ this.f_initial_base.index = f
1084
+ } else if (this.f_items[f].f_item_name == '气表累购') {
1085
+
1086
+ this.f_total_gas.index = f
1087
+ } else if (this.f_items[f].f_item_name == '上次基数') {
1088
+
1089
+ this.f_metergasnums.index = f
1090
+ } else if (this.f_items[f].f_item_name == '本次基数') {
1091
+
1092
+ this.f_bc_jishu.index = f
1093
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1094
+ this.getjishuNumber('本次基数')
1095
+ })
1096
+ } else if (this.f_items[f].f_item_name == '周期用气') {
1097
+
1098
+ this.f_sy_jishu.index = f
1099
+ } else if (this.f_items[f].f_item_name == '已用气量') {
1100
+
1101
+ this.f_meter_base.index = f
1102
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1103
+ this.getGasAberrantNumber('已用气量')
1104
+ })
1105
+ } else if (this.f_items[f].f_item_name == '剩余气量') {
1106
+
1107
+ this.f_gas_balance.index = f
1108
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1109
+ this.getGasAberrantNumber('')
1110
+ })
1111
+ } else if (this.f_items[f].f_item_name == '气量异常差值') {
1112
+
1113
+ this.f_gas_aberrant_number.index = f
1114
+ } else if (this.f_items[f].f_item_name == '累购金额') {
1115
+
1116
+ this.f_total_fee.index = f
1117
+ } else if (this.f_items[f].f_item_name == '表内剩余') {
1118
+
1119
+ this.f_fee_base.index = f
1120
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1121
+ this.getFeeAberrantNumber('表内剩余')
1122
+ })
1123
+ } else if (this.f_items[f].f_item_name == '系统金额') {
1124
+
1125
+ this.f_balance_amount.index = f
1126
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1127
+ this.getFeeAberrantNumber('')
1128
+ })
1129
+ } else if (this.f_items[f].f_item_name == '金额异常差值') {
1130
+
1131
+ this.f_fee_aberrant_number.index = f
1132
+ } else if (this.f_items[f].f_item_name == '表读数') {
1133
+
1134
+ this.f_meter_base.index = f
1135
+ } else if (this.f_items[f].f_item_name == '表剩余金额') {
1136
+
1137
+ this.f_balance_amount.index = f
1138
+ } else if (this.f_items[f].f_item_name == '字轮数') {
1139
+
1140
+ this.f_meter_base1.index = f
1141
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1142
+ this.getmeteraberrantnumber()
1143
+ })
1144
+ } else if (this.f_items[f].f_item_name == '表余额') {
1145
+
1146
+ this.f_balance_amount1.index = f
1147
+ this.$watch('f_items[' + f + '].f_item_value', function () {
1148
+ this.getfeeaberrantnumber1()
1149
+ })
1150
+ } else if (this.f_items[f].f_item_name == '表数异常差值') {
1151
+
1152
+ this.f_meter_aberrant_number1.index = f
1153
+ } else if (this.f_items[f].f_item_name == '表金额异常差值') {
1154
+
1155
+ this.f_fee_aberrant_number1.index = f
1156
+ }
1157
+ }
1158
+ }
1159
+ for (let em in this.config[this.device.device].items) {
1160
+ if (typeof this.config[this.device.device].items[em] == 'function') {
1161
+ continue
1162
+ }
1163
+ if (this.config[this.device.device].items[em].type == 'selector' && em == this.f_items[f].f_item_name) {
1164
+ this.f_items[f].options = []
1165
+ for (let k in this.config[this.device.device].items[em].options) {
1166
+ if (typeof this.config[this.device.device].items[em].options[k] == 'function') {
1167
+ continue
1168
+ }
1169
+ this.f_items[f].options.push({
1170
+ label: this.config[this.device.device].items[em].options[k].data,
1171
+ value: this.config[this.device.device].items[em].options[k].data
1172
+ })
1173
+ }
1174
+ }
1175
+ }
1176
+ }
1177
+
1178
+ this.$set('piece.f_items', this.f_items)
1179
+ }
1180
+ this.towatch()
1181
+ // for (let i = 0; i < this.f_items.length; i++) {
1182
+ // if (this.f_items[i].f_item_name == '连接方式'){
1183
+ // this.f_items[i].type = 'radio'
1184
+ // }
1185
+ // }
1186
+ },
1187
+ destroyed() {
1188
+ let nullCount = 0
1189
+ let metertitles
1190
+ //判断当前是否有选中项
1191
+ for (let row in this.f_items) {
1192
+ if (typeof this.f_items[row] == 'function') {
1193
+ continue
1194
+ }
1195
+ if (this.f_items[row].selected && this.f_items[row].selected != '' && this.f_items[row].selected instanceof Array) {
1196
+ //tag
1197
+ this.f_items[row].f_item_value = this.f_items[row].selected
1198
+ } else if (this.f_items[row].selected && this.f_items[row].selected != '') {
1199
+ //tag
1200
+ this.f_items[row].f_item_value = this.f_items[row].selected
1201
+ }
1202
+ // if(this.f_items[row].f_item_value instanceof Array && this.f_items[row].f_item_value.length != 0 ){
1203
+ // nullCount = nullCount+1
1204
+ // }else if(this.f_items[row].f_item_value != ''){
1205
+ // nullCount = nullCount+1
1206
+ // }
1207
+ }
1208
+ let picture = []
1209
+ // for (let row in this.f_items){
1210
+ // let a={}
1211
+ // a.f_path = this.f_items[row].f_path
1212
+ // a.name = this.f_items[row].f_item_name
1213
+ // }
1214
+ // picture.push(a)
1215
+ this.$set(`paper['device${this.device.n}'][${this.idx}]`, this.piece)
1216
+ //tag
1217
+ },
1218
+ computed: {}
1219
+ }
1220
+ </script>
1221
+ <style lang="less" scoped>
1222
+ .class-erro {
1223
+ color: #a94442;
1224
+ }
1225
+
1226
+ .fivelabel {
1227
+ border: none;
1228
+ border-left: 5px solid #A2C2EB;
1229
+ float: left;
1230
+ width: 35%;
1231
+ margin-bottom: 3px;
1232
+ text-align: left;
1233
+ word-wrap: break-word;
1234
+ white-space: normal;
1235
+ }
1236
+
1237
+ .radiolabel {
1238
+ border: none;
1239
+ border-left: 5px solid #A2C2EB;
1240
+ float: left;
1241
+ width: 65%;
1242
+ margin-bottom: 3px;
1243
+ text-align: left;
1244
+ word-wrap: break-word;
1245
+ white-space: normal;
1246
+ }
1247
+
1248
+ .textlabel {
1249
+ border: none;
1250
+ border-left: 5px solid #A2C2EB;
1251
+ width: 100%;
1252
+ margin-bottom: 3px;
1253
+ text-align: left;
1254
+ word-wrap: break-word;
1255
+ white-space: normal;
1256
+ }
1257
+
1258
+ .textlabel1 {
1259
+ border: none;
1260
+ border-left: 5px solid #f7cb32;
1261
+ width: 100%;
1262
+ margin-bottom: 3px;
1263
+ text-align: left;
1264
+ word-wrap: break-word;
1265
+ white-space: normal;
1266
+ }
1267
+
1268
+ .spanrodio {
1269
+ margin-right: 10px;
1270
+ }
1271
+
1272
+ .div-photo {
1273
+ width: auto;
1274
+ height: auto;
1275
+ /* margin-top: 10px; */
1276
+ position: absolute;
1277
+ bottom: 10px;
1278
+ right: 10px;
1279
+ }
1280
+
1281
+ .panel-self {
1282
+ border-radius: 5px;
1283
+ border: 1px solid #c5e1f7;
1284
+ //background-color: #F2F6FA;
1285
+ }
1286
+
1287
+ .btn-photo {
1288
+ border: 0;
1289
+ border-radius: 7px;
1290
+ background-color: #7dc1f4;
1291
+ font: 15px PingFang-SC-Bold;
1292
+ height: 20%;
1293
+ }
1294
+ </style>
1295
+