safecheck-client 3.0.34-6 → 3.0.34-7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/FormPrint.md +18 -18
  15. package/docs/GetParams.md +11 -11
  16. package/docs/GridTree.md +47 -47
  17. package/docs/HttpBusy.md +13 -13
  18. package/docs/HttpStore.md +29 -29
  19. package/docs/MessageBox.md +28 -28
  20. package/docs/PagedList.md +29 -29
  21. package/docs/Pager.md +21 -21
  22. package/docs/PrintFile.md +38 -38
  23. package/docs/Project.md +23 -23
  24. package/docs/Route.md +105 -105
  25. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  26. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  27. package/docs/Task.md +46 -46
  28. package/docs/TreeList.md +28 -28
  29. package/docs/TreeMixin.md +18 -18
  30. package/docs/all.md +10 -10
  31. package/docs/list.md +42 -42
  32. package/docs/partial.md +75 -75
  33. package/docs/selector.md +82 -82
  34. package/docs/tree.md +40 -40
  35. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  36. 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
  37. 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
  38. 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
  39. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  40. package/examples/AddressList/App.vue +13 -13
  41. package/examples/AddressList/index.html +11 -11
  42. package/examples/DispatchList/App.vue +10 -10
  43. package/examples/DispatchList/BaseTree.vue +13 -13
  44. package/examples/DispatchList/Init.vue +22 -22
  45. package/examples/DispatchList/Test.vue +20 -20
  46. package/examples/DispatchList/index.html +11 -11
  47. package/examples/DispatchList/main.js +18 -18
  48. package/home.html +16 -16
  49. package/package.json +1 -1
  50. package/publish.bat +7 -7
  51. package/release.bat +5 -5
  52. package/src/Widget.vue +13 -13
  53. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  54. package/src/android-bootstrap/less/.csscomb.json +304 -304
  55. package/src/android-bootstrap/less/.csslintrc +19 -19
  56. package/src/android-bootstrap/less/alerts.less +73 -73
  57. package/src/android-bootstrap/less/badges.less +66 -66
  58. package/src/android-bootstrap/less/bootstrap.less +56 -56
  59. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  60. package/src/android-bootstrap/less/button-groups.less +247 -247
  61. package/src/android-bootstrap/less/buttons.less +173 -173
  62. package/src/android-bootstrap/less/carousel.less +269 -269
  63. package/src/android-bootstrap/less/close.less +34 -34
  64. package/src/android-bootstrap/less/code.less +69 -69
  65. package/src/android-bootstrap/less/component-animations.less +33 -33
  66. package/src/android-bootstrap/less/grid.less +84 -84
  67. package/src/android-bootstrap/less/input-groups.less +167 -167
  68. package/src/android-bootstrap/less/jumbotron.less +52 -52
  69. package/src/android-bootstrap/less/labels.less +64 -64
  70. package/src/android-bootstrap/less/list-group.less +141 -141
  71. package/src/android-bootstrap/less/media.less +66 -66
  72. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  73. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  74. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  75. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  76. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  77. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  78. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  79. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  80. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  81. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  82. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  83. package/src/android-bootstrap/less/mixins/image.less +33 -33
  84. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  85. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  86. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  87. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  88. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  89. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  90. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  91. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  92. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  93. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  94. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  95. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  96. package/src/android-bootstrap/less/mixins/size.less +10 -10
  97. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  98. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  99. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  100. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  101. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  102. package/src/android-bootstrap/less/mixins.less +40 -40
  103. package/src/android-bootstrap/less/modals.less +151 -151
  104. package/src/android-bootstrap/less/navbar.less +660 -660
  105. package/src/android-bootstrap/less/navs.less +290 -290
  106. package/src/android-bootstrap/less/normalize.less +424 -424
  107. package/src/android-bootstrap/less/pager.less +76 -76
  108. package/src/android-bootstrap/less/pagination.less +89 -89
  109. package/src/android-bootstrap/less/panels.less +274 -274
  110. package/src/android-bootstrap/less/popovers.less +131 -131
  111. package/src/android-bootstrap/less/print.less +101 -101
  112. package/src/android-bootstrap/less/progress-bars.less +87 -87
  113. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  114. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  115. package/src/android-bootstrap/less/scaffolding.less +161 -161
  116. package/src/android-bootstrap/less/tables.less +262 -262
  117. package/src/android-bootstrap/less/theme.less +291 -291
  118. package/src/android-bootstrap/less/thumbnails.less +36 -36
  119. package/src/android-bootstrap/less/tooltip.less +102 -102
  120. package/src/android-bootstrap/less/type.less +303 -303
  121. package/src/android-bootstrap/less/utilities.less +55 -55
  122. package/src/android-bootstrap/less/variables.less +896 -896
  123. package/src/android-bootstrap/less/wells.less +29 -29
  124. package/src/androidTest.js +20 -20
  125. package/src/bootstrap/less/.csscomb.json +304 -304
  126. package/src/bootstrap/less/.csslintrc +19 -19
  127. package/src/bootstrap/less/alerts.less +73 -73
  128. package/src/bootstrap/less/badges.less +66 -66
  129. package/src/bootstrap/less/breadcrumbs.less +26 -26
  130. package/src/bootstrap/less/button-groups.less +247 -247
  131. package/src/bootstrap/less/buttons.less +172 -172
  132. package/src/bootstrap/less/carousel.less +269 -269
  133. package/src/bootstrap/less/close.less +34 -34
  134. package/src/bootstrap/less/code.less +69 -69
  135. package/src/bootstrap/less/component-animations.less +33 -33
  136. package/src/bootstrap/less/dropdowns.less +216 -216
  137. package/src/bootstrap/less/forms.less +626 -626
  138. package/src/bootstrap/less/grid.less +84 -84
  139. package/src/bootstrap/less/input-groups.less +167 -167
  140. package/src/bootstrap/less/jumbotron.less +52 -52
  141. package/src/bootstrap/less/labels.less +64 -64
  142. package/src/bootstrap/less/list-group.less +141 -141
  143. package/src/bootstrap/less/media.less +66 -66
  144. package/src/bootstrap/less/mixins/alerts.less +14 -14
  145. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  146. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  147. package/src/bootstrap/less/mixins/buttons.less +69 -69
  148. package/src/bootstrap/less/mixins/center-block.less +7 -7
  149. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  150. package/src/bootstrap/less/mixins/forms.less +90 -90
  151. package/src/bootstrap/less/mixins/gradients.less +59 -59
  152. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  153. package/src/bootstrap/less/mixins/grid.less +122 -122
  154. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  155. package/src/bootstrap/less/mixins/image.less +33 -33
  156. package/src/bootstrap/less/mixins/labels.less +12 -12
  157. package/src/bootstrap/less/mixins/list-group.less +30 -30
  158. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  159. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  160. package/src/bootstrap/less/mixins/opacity.less +8 -8
  161. package/src/bootstrap/less/mixins/pagination.less +24 -24
  162. package/src/bootstrap/less/mixins/panels.less +24 -24
  163. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  164. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  165. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  166. package/src/bootstrap/less/mixins/resize.less +6 -6
  167. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  168. package/src/bootstrap/less/mixins/size.less +10 -10
  169. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  170. package/src/bootstrap/less/mixins/table-row.less +44 -44
  171. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  172. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  173. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  174. package/src/bootstrap/less/mixins.less +40 -40
  175. package/src/bootstrap/less/modals.less +151 -151
  176. package/src/bootstrap/less/navbar.less +660 -660
  177. package/src/bootstrap/less/normalize.less +424 -424
  178. package/src/bootstrap/less/pager.less +76 -76
  179. package/src/bootstrap/less/pagination.less +89 -89
  180. package/src/bootstrap/less/panels.less +275 -275
  181. package/src/bootstrap/less/popovers.less +131 -131
  182. package/src/bootstrap/less/print.less +101 -101
  183. package/src/bootstrap/less/progress-bars.less +87 -87
  184. package/src/bootstrap/less/responsive-embed.less +35 -35
  185. package/src/bootstrap/less/responsive-utilities.less +194 -194
  186. package/src/bootstrap/less/scaffolding.less +161 -161
  187. package/src/bootstrap/less/theme.less +291 -291
  188. package/src/bootstrap/less/thumbnails.less +36 -36
  189. package/src/bootstrap/less/tooltip.less +102 -102
  190. package/src/bootstrap/less/type.less +303 -303
  191. package/src/bootstrap/less/utilities.less +55 -55
  192. package/src/bootstrap/less/wells.less +29 -29
  193. package/src/components/FileUpload.vue +696 -696
  194. package/src/components/Hello.vue +39 -39
  195. package/src/components/LeftTree.vue +27 -27
  196. package/src/components/android/AddGas.vue +147 -147
  197. package/src/components/android/AddressList.vue +61 -61
  198. package/src/components/android/AreaPlan.vue +566 -566
  199. package/src/components/android/AttendanceTally.vue +116 -116
  200. package/src/components/android/Blank.vue +10 -10
  201. package/src/components/android/CheckUnplanPage.vue +56 -56
  202. package/src/components/android/Checker.vue +12 -12
  203. package/src/components/android/CheckerAnnual.vue +81 -81
  204. package/src/components/android/CheckerAvarta.vue +82 -82
  205. package/src/components/android/CheckerMonthly.vue +84 -84
  206. package/src/components/android/EquipmentInspection.vue +348 -348
  207. package/src/components/android/FootprintMap.vue +120 -120
  208. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  209. package/src/components/android/LcheckUnplan.vue +108 -108
  210. package/src/components/android/MasterMain.vue +77 -77
  211. package/src/components/android/Menu.vue +132 -132
  212. package/src/components/android/NavBottom.vue +157 -157
  213. package/src/components/android/PaperAlarm.vue +85 -85
  214. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  215. package/src/components/android/PaperFeedback.vue +1481 -1481
  216. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  217. package/src/components/android/PlumberAnnual.vue +83 -83
  218. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  219. package/src/components/android/PlumberMonthly.vue +84 -84
  220. package/src/components/android/PostMap.vue +83 -83
  221. package/src/components/android/QueryCheckHistory.vue +122 -122
  222. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  223. package/src/components/android/RepairMain.vue +60 -60
  224. package/src/components/android/Repairman.vue +12 -12
  225. package/src/components/android/SafePlanItem.vue +509 -509
  226. package/src/components/android/SafecheckDevices.vue +1298 -1298
  227. package/src/components/android/SafecheckDevicesTemp.vue +1333 -1333
  228. package/src/components/android/SafecheckOrderV.vue +2809 -2809
  229. package/src/components/android/StationMaster.vue +12 -12
  230. package/src/components/android/SwitchValve.vue +323 -323
  231. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  232. package/src/components/checkerphonestate/Checker.vue +32 -32
  233. package/src/components/checkerphonestate/CheckerState.vue +97 -97
  234. package/src/components/defects/AddDefectModal.vue +120 -120
  235. package/src/components/defects/AddDevice.vue +95 -95
  236. package/src/components/defects/DefectModal.vue +101 -101
  237. package/src/components/defects/DevicesAndItem.vue +39 -39
  238. package/src/components/defects/DevicesSeting.vue +106 -106
  239. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  240. package/src/components/metterfiles/AddUserfiles.vue +246 -246
  241. package/src/components/metterfiles/MetterFiles.vue +104 -104
  242. package/src/components/notice/NoticeForm.vue +100 -100
  243. package/src/components/notice/NoticeIssue.vue +20 -20
  244. package/src/components/notice/NoticeQuery.vue +76 -76
  245. package/src/components/paper/PicViewer.vue +18 -18
  246. package/src/components/paper/RepairVerifyForm.vue +76 -76
  247. package/src/components/phonestate/DailyTraffic.vue +57 -57
  248. package/src/components/phonestate/LastKnownState.vue +74 -74
  249. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  250. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  251. package/src/components/phonestate/PostMap.vue +82 -82
  252. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  253. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  254. package/src/components/task/RepairAnnual.vue +79 -79
  255. package/src/components/task/RepairAnnualDetail.vue +49 -49
  256. package/src/components/task/RepairMonthly.vue +91 -91
  257. package/src/components/task/TaskAnnual.vue +77 -77
  258. package/src/components/task/TaskAnnualDetail.vue +47 -47
  259. package/src/components/task/TaskMonthly.vue +89 -89
  260. package/src/components/userfile/MeterFile.vue +145 -145
  261. package/src/components/userfile/MeterModify.vue +46 -46
  262. package/src/components/userfile/UserfileChange.vue +277 -277
  263. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  264. package/src/filiale/baiyin/pc/checkUserList.vue +771 -771
  265. package/src/filiale/baiyin/pc.js +21 -21
  266. package/src/filiale/bayan/android/PaperFeedback.vue +1651 -1651
  267. package/src/filiale/bayan/android/SafecheckDevices.vue +1303 -1303
  268. package/src/filiale/bayan/android/SafecheckUserInfo.vue +863 -863
  269. package/src/filiale/dexin/android/SafecheckDevices.vue +1305 -1305
  270. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  271. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1313 -1313
  272. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  273. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  274. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  275. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  276. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  277. package/src/filiale/qingjian/android/SafecheckDevices.vue +1269 -1269
  278. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  279. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  280. package/src/filiale/shiquan/android/SafecheckDevices.vue +1269 -1269
  281. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  282. package/src/filiale/siyang/pc/NewCheckpaper.vue +1938 -1938
  283. package/src/filiale/siyang/pc/checkUserList.vue +786 -786
  284. package/src/filiale/siyang/pc.js +16 -16
  285. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  286. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  287. package/src/filiale/weinan/pc/DefectMainNew.vue +63 -63
  288. package/src/filiale/weinan/pc.js +46 -46
  289. package/src/filiale/wuan/android/SafecheckOrderV.vue +2240 -2240
  290. package/src/filiale/wuan/android/SafecheckUserInfo.vue +592 -592
  291. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1192 -1192
  292. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +472 -472
  293. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  294. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  295. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  296. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +473 -473
  297. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  298. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +1128 -1128
  299. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +972 -972
  300. package/src/filiale/yangchunboneng/pc/PaperList.vue +773 -773
  301. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  302. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1294 -1294
  303. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  304. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  305. package/src/filiale/yuansheng/android.js +17 -17
  306. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1508 -1508
  307. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  308. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +784 -784
  309. package/src/plugins/LoadData.js +10 -10
  310. package/src/plugins/LoadParams.js +24 -24
  311. package/src/stores/wxconfig.js +10 -10
  312. package/src/utils/getNowDate.js +33 -33
  313. package/test/e2e/custom-assertions/elementCount.js +26 -26
  314. package/test/e2e/nightwatch.conf.js +40 -40
  315. package/test/e2e/runner.js +30 -30
  316. package/test/e2e/specs/test.js +13 -13
  317. package/test/unit/.eslintrc +5 -5
  318. package/test/unit/TestUtil.js +62 -62
  319. package/test/unit/context.html +20 -20
  320. package/test/unit/index.js +13 -13
@@ -1,1477 +1,1477 @@
1
- <template>
2
- <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
- <div class="col-md-12 col-sm-12 col-xs-12">
7
- <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
- </div>
9
- </div>
10
- </div>
11
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
- <div class="text-center">
13
- <label class="font">总体安检照片请依次拍摄:</label>
14
- </div>
15
- <div class="col-md-12 col-sm-12 col-xs-12">
16
- <ol class="showIi">
17
- <li>1.燃气设施全景(含灶具)</li>
18
- <li>2.其他照片</li>
19
- </ol>
20
- </div>
21
- </div>
22
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
23
- <label class="text-left font">总体安检照片</label>
24
-
25
- <div class="auto" :class="style__">
26
- <div class="panel" style="padding: 10px 10px 5px 10px;">
27
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
28
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
29
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
30
- <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
31
- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
32
- </div>
33
- </div>
34
- <div class="row text-right div-photo">
35
- <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
36
- <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
37
- <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
38
- </div>
39
- </div>
40
- </div>
41
- </div>
42
- </div>
43
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="isvideo == 'true'">
44
- <label class="text-left font">安检视频</label>
45
-
46
- <div class="auto" :class="style__">
47
- <div class="panel" style="padding: 10px 10px 5px 10px;">
48
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
49
- <div class="row">
50
- <video width="320" height="200" controls v-if="paper.f_video_path">
51
- <source :src="paper.f_video_path" type="video/mp4">
52
- </video>
53
- </div>
54
- <div class="row text-right div-photo">
55
- <button type="button" name="button" class="btn btn-photo" @click="takeVideo()">拍摄</button>
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- </div>
61
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
62
- <label class="text-left font">总体隐患照片</label>
63
- <div class="auto" :class="style__">
64
- <div class="panel" style="padding: 10px 10px 5px 10px;">
65
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
66
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
67
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
68
- <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
69
- <!-- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
70
- </div>
71
- </div>
72
- </div>
73
- </div>
74
- </div>
75
- </div>
76
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
77
- <div class="text-center">
78
- <label class="font">隐患汇总:</label>
79
- </div>
80
- <div class="col-md-12 col-sm-12 col-xs-12">
81
- <ol class="showIi">
82
- <li v-for="item in defectReason">{{ item.deviceitem }}</li>
83
- </ol>
84
- </div>
85
- </div>
86
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
87
- <div class="text-center">
88
- <label class="font">整改建议汇总:</label>
89
- </div>
90
- <div class="col-md-12 col-sm-12 col-xs-12">
91
- <ol class="showIi">
92
- <li v-for="item in defectToolTip">{{ item }}</li>
93
- </ol>
94
- </div>
95
- </div>
96
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
97
- <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
98
-
99
- </div>
100
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
101
- <label class="text-left font">用户签名</label>
102
- <div class="auto">
103
- <div class="panel">
104
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
105
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
106
- <div class="col-sm-4">
107
- <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
108
- </div>
109
- </div>
110
- <div class="row text-right div-photo">
111
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
112
- </div>
113
- </div>
114
- </div>
115
- </div>
116
- </div>
117
- <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">
118
- <label>请输入超期原因:</label><br/>
119
- <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
120
- </div>
121
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
122
- <div class="col-xs-6 col-sm-6">
123
- <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
124
- </div>
125
- <div class="col-xs-6 col-sm-6">
126
- <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>
127
- </div>
128
- </div>
129
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
130
- <div class="col-xs-12 col-sm-12">
131
- <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
132
- </div>
133
- <div class="col-xs-12 col-sm-12">
134
- <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
135
- </div>
136
- <div class="col-xs-12 col-sm-12">
137
- <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
138
- </div>
139
- </div>
140
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
141
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
142
- <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
143
- </div>
144
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
145
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
146
- <button type="button" @click="print()">打印隐患整改单</button>
147
- </div>
148
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
149
- <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
150
- <div class="auto" >
151
- <div class="panel" style="padding: 10px 10px 5px 10px;">
152
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
153
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
154
- <div class="col-sm-4">
155
- <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
156
- </div>
157
- </div>
158
- <div class="row text-right div-photo">
159
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
160
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
161
- </div>
162
- </div>
163
- </div>
164
- </div>
165
- </div>
166
- </div>
167
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
168
- <div class="row">
169
- <label class="text-left">请对我们的服务做出评价:</label>
170
- </div>
171
- <div class="col-xs-4 col-sm-4" v-for="item in radios">
172
- <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
173
- </div>
174
-
175
- <!--<div class="col-sm-4">-->
176
- <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
177
- <!--<radio value="满意">满意</radio>-->
178
- <!--<radio value="基本满意">基本满意</radio>-->
179
- <!--<radio value="不满意">不满意</radio>-->
180
- <!--</radio-group>-->
181
- <!--</div>-->
182
- </div>
183
-
184
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
185
- <label class="text-left font">反馈录音:</label>
186
- <div class="col-md-12 col-sm-12 col-xs-12">
187
- <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
188
- <img src="../../../assets/录音.png" style="width: 14%;">
189
- <span v-if="!paper.f_recording1_path">开始录音</span>
190
- <span v-if="paper.f_recording1_path">已录音</span>
191
- </button>
192
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
193
- </div>
194
- </div>
195
-
196
- <div v-if="false">
197
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
198
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
199
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
200
- </div>
201
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
202
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
203
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
204
- </div>
205
-
206
- </div>
207
- </form>
208
- <!-- <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">-->
209
- <!-- <div slot="modal-header" class="modal-header">-->
210
- <!-- <h4 class="modal-title">-->
211
- <!-- 安检转维修-->
212
- <!-- </h4>-->
213
- <!-- </div>-->
214
- <!-- <div slot="modal-body" class="modal-body">-->
215
- <!-- <div v-if="showrepair">-->
216
- <!-- <div class="row">-->
217
- <!-- <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>-->
218
- <!-- <div class="col-xs-8 col-md-8">-->
219
- <!-- <label v-for="handling1 in handling" >-->
220
- <!-- <input type="radio"-->
221
- <!-- v-model="meading"-->
222
- <!-- value="{{handling1.label}}">-->
223
- <!-- {{handling1.label}}-->
224
- <!-- </label>-->
225
- <!-- </div>-->
226
- <!-- </div>-->
227
- <!-- <div class="row" v-if="meading == '转站点'">-->
228
- <!-- <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>-->
229
- <!-- &lt;!&ndash;<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"&ndash;&gt;-->
230
- <!-- &lt;!&ndash;v-validate:f_reciever='{ required: true }'>&ndash;&gt;-->
231
- <!-- <div class="col-xs-8 col-md-8">-->
232
- <!-- <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>-->
233
- <!-- </right-tree>-->
234
- <!-- </div>-->
235
- <!-- </div>-->
236
-
237
- <!-- <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">-->
238
- <!-- <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>-->
239
- <!-- <div class="col-xs-8">-->
240
- <!-- <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"-->
241
- <!-- :options='f_repair_person' placeholder='请选择维修员'-->
242
- <!-- close-on-select v-on:change="repiarmancg"></v-select>-->
243
- <!-- </div>-->
244
-
245
- <!-- </div>-->
246
- <!-- <div class="row" style="margin-top: 6px">-->
247
- <!-- <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>-->
248
- <!-- <div class="col-xs-8 col-md-8">-->
249
- <!-- <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"-->
250
- <!-- :options='repairstypes' placeholder='报修类型'-->
251
- <!-- close-on-select>-->
252
- <!-- </v-select>-->
253
- <!-- </div>-->
254
- <!-- </div>-->
255
-
256
- <!-- <div class="row" style="margin-top: 6px">-->
257
- <!-- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>-->
258
- <!-- <div class="col-xs-8 col-md-8">-->
259
- <!-- <input type="text" v-model="$parent.$parent.model.f_remarks"/>-->
260
- <!-- </div>-->
261
-
262
- <!-- </div>-->
263
-
264
- <!-- </div>-->
265
- <!-- <div v-if="!showrepair">-->
266
- <!-- 暂无隐患设备信息-->
267
- <!-- </div>-->
268
- <!-- </div>-->
269
- <!-- <div slot="modal-footer" class="modal-footer">-->
270
- <!-- <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>-->
271
- <!-- <button type="button" class="btn btn-default" @click="undo()">取消</button>-->
272
- <!-- </div>-->
273
- <!-- </modal>-->
274
- <!--拉黑框-->
275
- <modal :show.sync="showmodel" v-ref:modal>
276
- <div slot="modal-header" class="modal-header">
277
- <h4 class="modal-title">
278
- 限制用户购气
279
- </h4>
280
- </div>
281
- <div slot="modal-body" class="modal-body">
282
- <!-- <div class="row" style="margin-top: 6px">-->
283
- <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
284
- <!-- </div>-->
285
- <div class="row" style="margin-top: 6px">
286
- <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
287
- </textarea>
288
- </div>
289
- </div>
290
- <div slot="modal-footer" class="modal-footer">
291
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
292
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
293
- </div>
294
- </modal>
295
-
296
- <modal :show.sync="showmodelthree" v-ref:modal>
297
- <div slot="modal-header" class="modal-header">
298
- <h4 class="modal-title">
299
- 取消限制用户购气
300
- </h4>
301
- </div>
302
- <div slot="modal-body" class="modal-body">
303
- <!-- <div class="row" style="margin-top: 6px">-->
304
- <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
305
- <!-- </div>-->
306
- <div class="row" style="margin-top: 6px">
307
- <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
308
- </textarea>
309
- </div>
310
- </div>
311
- <div slot="modal-footer" class="modal-footer">
312
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
313
- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
314
- </div>
315
- </modal>
316
- </template>
317
-
318
- <script>
319
- import Vue from 'vue'
320
- import * as Util from '../../Util'
321
- import { HttpResetClass } from 'vue-client'
322
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
323
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
324
- import co from 'co'
325
-
326
- // let getRepairParam = function * (self){
327
- // let data = {
328
- // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
329
- // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
330
- // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
331
- // }, user: self.user, callObj: self.callObj
332
- // }
333
- // if(self.$parent.$parent.meading == '转维修员'){
334
- // data.toRepair = '一级派单'
335
- // }
336
- // data.$parent.$parent.model.f_attendant = data.loginUser.name
337
- // ////tag
338
- // ////tag
339
- // let res
340
- // let errString = self.$parent. $parent.errorVerify()
341
- // if(errString){
342
- // ////tag
343
- // if (Vue.android)
344
- // self.undo()
345
- // this.$showMessage(errString)
346
- // return
347
- // } else {
348
- // if(self.role == 'inspect'){
349
- // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
350
- // this.$showMessage("请选择维修员!")
351
- // return
352
- // }
353
- // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
354
- // HostApp.alert()
355
- // this.$showMessage("请选择站点!")
356
- // return
357
- // }
358
- // if(self.$parent.$parent.model.f_repairtype == ''){
359
- // this.$showMessage("请选择报修类型!")
360
- // return
361
- // }
362
- // ////tag)
363
- // let checkResult = '正常'
364
- // let options = [{"data": "已处理"},{"data": "未处理"}]
365
- // let value = ''
366
- // let codata = JSON.parse(JSON.stringify(self.paper))
367
- // for(let device in codata){
368
- // ////tag)
369
- // let f_device_type
370
- // if(device.startsWith("device")){
371
- // for(let item in codata[device]) {
372
- // if(codata[device].length > 1 ){
373
- // let j = Number.parseInt(item)+1
374
- // f_device_type = `${codata[device][item].f_device_type}${j}`
375
- // }else{
376
- // f_device_type = codata[device][item].f_device_type
377
- // }
378
- // // ////tag
379
- // let details = []
380
- // for(let i in codata[device][item].f_items){
381
- // let items = codata[device][item].f_items[i]
382
- // ////tag
383
- // if(items.f_is_defect == true || items.f_is_defect == 'true'){
384
- // checkResult = '有隐患'
385
- // ////tag
386
- // let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
387
- // ////tag)
388
- // self.$set('detail.f_defect_id', res.data[0].id)
389
- // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
390
- // self.$set('detail.type',items.type)
391
- // self.$set('detail.options',options)
392
- // details.push(JSON.parse(JSON.stringify(self.detail)))
393
- // }
394
- // if(items.type == 'selector'){
395
- // items.selected = ''
396
- // }
397
- // self.detail = {}
398
- // }
399
- // ////tag
400
- // self.$set('defectDevice.f_type',f_device_type)
401
- // self.$set('defectDevice.details',details)
402
- // if(self.defectDevice.details.length >0 ){
403
- // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
404
- // }
405
- // self.defectDevice = {}
406
- // ////tag
407
- // }
408
- // }
409
- // }
410
- // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
411
- //
412
- //
413
- // ////tag)
414
- // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
415
- // ////tag
416
- // ////tag
417
- // ////tag
418
- // if(res.code == 200){
419
- // self.$parent.$parent.isSafeCheckToRepair = true
420
- // self.undo()
421
- // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
422
- // ////tag
423
- // self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
424
- // ////tag
425
- // if(ret.data.code ==200){
426
- // ////tag
427
- // self.$parent.$parent.$back()
428
- // }else{
429
- // self.$showMessage('安检转维修失败!')
430
- // }
431
- // }).catch(v=>{
432
- // ////tag)
433
- // self.$showMessage('安检转维修失败!')
434
- // })
435
- // }else{
436
- // self.$showMessage('安检转维修失败!')
437
- // }
438
- // }
439
- // }
440
- // }
441
-
442
-
443
-
444
- // let getRepairs = async function(self,url) {
445
- // // 获取配置信息
446
- // try {
447
- // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
448
- // let repairs =[]
449
- // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
450
- // res.data.forEach((item) => {
451
- // repairs.push({label: item.name, value: item})
452
- // })
453
- // self.f_repair_person = repairs
454
- // if(self.$parent.$parent.role == 'inspect'){
455
- // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
456
- // if(res.code == 200){
457
- // self.$parent.$parent.user = res.data[0]
458
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
459
- // }
460
- // }else{
461
- // ////tag
462
- // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
463
- // ////tag
464
- // if(res.data.length != 0){
465
- // self.$parent.$parent.user = res.data[0]
466
- // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
467
- // }
468
- // })
469
- // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
470
- // }
471
- // } catch (error) {
472
- // ////tag
473
- // }
474
- // }
475
-
476
- export default {
477
- title: '用户反馈',
478
- data() {
479
- return {
480
- isvideo:'false',
481
- defectImgs: [],
482
- defectToolTip: [],
483
- defectReason: [],
484
- images: [],
485
- showmodelthree: false,
486
- isneedDate: this.$parent.$parent.isneedDate,
487
- plan: this.$parent.$parent.item,
488
- meading: this.$parent.$parent.meading,
489
- paper: this.$parent.$parent.data,
490
- printContent: [],
491
- upload_state: this.$parent.$parent.item.f_upload_state,
492
- enabled: false,//控制限制购气是否可选
493
- deleteenabled: false,
494
- showmodel: false,
495
- showbacklist:'是',
496
- backlistisselect: false,
497
- deletebacklistisselect: false,
498
- radios: [
499
- {
500
- label: '满意',
501
- value: 0,
502
- isChecked: false,
503
- },
504
- {
505
- label: '基本满意',
506
- value: 1,
507
- isChecked: false,
508
- },
509
- {
510
- label: '不满意',
511
- value: 2,
512
- isChecked: false,
513
- },
514
- ],
515
- repairitems: [],
516
- repairstypes: this.$appdata.getParam('报修类型'),
517
- // f_repair_person: this.readRepair(),
518
- showrepair: false,
519
- safeCheckToRepair: '',
520
- showCheckToRepair: false,
521
- userid: '',
522
- source:
523
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
524
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
525
- isback: false,
526
- defectDevice: {},
527
- detail: {},
528
- callObj: null,
529
- user: {},
530
- role: this.$parent.$parent.role,
531
- handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
532
- Url: this.$androidUtil.getProxyUrl(),
533
- cause: "",
534
- deletecause: "",
535
- isRecodr: "false", //单值参数,为true则是开启全程录音
536
- }
537
- },
538
- props: ['idx'],
539
- components: {
540
- RadioGroup,
541
- Radio
542
- },
543
- methods: {
544
- timeSet(val) {
545
- //////tag
546
- if (!val) {
547
- return
548
- }
549
- let time = new Date(val).getTime()
550
- let time2 = new Date().getTime()
551
- if (time2 > time) {
552
- return true
553
- }
554
- },
555
- // async isoverDate(){
556
- // ////tag
557
- // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
558
- // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
559
- // }
560
- // })
561
- // this.isneedDate=res.data[0]["f_subscribe_date"]
562
- // ////tag
563
- // },
564
- check(index) {
565
- ////tag
566
- // 先取消所有选中项
567
- for (let item of this.radios) {
568
- item.isChecked = false;
569
- }
570
- //再设置当前点击项选中
571
- this.paper.f_client_evaluation = this.radios[index].label;
572
- // 设置值,以供传递
573
- this.radios[index].isChecked = true;
574
- ////tag;
575
- },
576
- getSignValue(fileName) {
577
- this.f_signname = fileName
578
- },
579
- videoCallBack(fileName) {
580
- this.$set('paper.f_video_path', fileName)
581
- HostApp.__callback__ = null
582
- HostApp.__this__ = null
583
- },
584
- takeVideo() {
585
- HostApp.__callback__ = this.videoCallBack
586
- HostApp.__this__ = this
587
- let fileName = Util.guid() + '.mp4'
588
- HostApp._open_a_page({
589
- type: 'boomerang',
590
- page: 'com.aofeng.hybrid.android.peripheral.VideoActivity',
591
- param: {
592
- file: fileName,
593
- requestCode: 111,
594
- callback: 'javascript:HostApp.__callback__("%s");'
595
- }
596
- })
597
- },
598
- cameraCallBack(prop, fileName) {
599
- if (prop == 'f_overall_path') {
600
- let f_overall_path = fileName + '?' + Math.random()
601
- HostApp.__this__.paper.f_overall_imgs.push({
602
- f_overall_path: f_overall_path
603
- })
604
- } else {
605
- HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
606
- }
607
- HostApp.__callback__ = null
608
- HostApp.__this__ = null
609
- },
610
- takePic(prop, title, index) {
611
- HostApp.__callback__ = this.cameraCallBack
612
- HostApp.__this__ = this
613
- ////tag
614
- ////tag
615
- let fileName
616
- if (prop == 'f_overall_path') {
617
- if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
618
- fileName = Util.guid() + '-' + prop + '.jpg'
619
- } else {
620
- fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
621
- }
622
- } else {
623
- if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
624
- fileName = Util.guid() + '-' + prop + '.jpg'
625
- } else {
626
- fileName = Util.getFileName(this.paper[prop])
627
- }
628
- }
629
- let jingweidu = ''
630
- if (this.$parent.$parent.is_has_jingweidu == 'true'){
631
- const obj = HostApp.getGpsDetailAddress()
632
- jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
633
- }
634
- HostApp._open_a_page({
635
- type: 'boomerang',
636
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
637
- param: {
638
- file: fileName,
639
- requestCode: 111,
640
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
641
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
642
- +jingweidu
643
- }
644
- })
645
- },
646
- amrCallBack(fileName) {
647
- HostApp.__this__.$set('paper.f_recording1_path', fileName)
648
- HostApp.__callback__ = null
649
- HostApp.__this__ = null
650
- },
651
- record() {
652
- if (this.$parent.$parent.role != 'inspect') {
653
- if (this.paper.f_recording1_path != '') {
654
- window.location = this.paper.f_recording1_path
655
- }
656
- } else {
657
- HostApp.__callback__ = this.amrCallBack
658
- HostApp.__this__ = this
659
- let fileName
660
- if (!this.paper.f_recording1_path) {
661
- fileName = Util.guid() + '.amr'
662
- } else {
663
- fileName = Util.getFileName(this.paper.f_recording1_path)
664
- }
665
- HostApp._open_a_page({
666
- type: 'boomerang',
667
- page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
668
- param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
669
- })
670
- }
671
- },
672
- // 签名回调
673
- signCallback(prop, fileName) {
674
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
675
- HostApp.__this__.$set('paper.f_sign_path', fileName)
676
- HostApp.__callback__ = null
677
- HostApp.__this__ = null
678
- },
679
- // 用户签名
680
- sign() {
681
- if (!this.paper.f_read_instructions) {
682
- this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
683
- return
684
- }
685
- this.delAudioFile('f_sign_path', this.paper.f_sign_path)
686
- let prop = 'f_sign_path'
687
- let idx = 'aofeng'
688
- let fileName
689
- if (!this.paper.f_sign_path) {
690
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
691
- } else {
692
- fileName = Util.getFileName(this.paper.f_sign_path)
693
- }
694
- HostApp.__callback__ = this.signCallback
695
- HostApp.__this__ = this
696
- HostApp.getSignature({
697
- file: fileName,
698
- requestCode: 111,
699
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
700
- })
701
- },
702
- delfile(prop, fileName, index) {
703
- if (fileName == Vue.nopic)
704
- return
705
- else {
706
- if (prop == 'f_overall_path') {
707
- this.paper.f_overall_imgs.splice(index, 1)
708
- HostApp.delfile(fileName)
709
- } else {
710
- HostApp.delfile(fileName)
711
- this.paper[prop] = Vue.nopic
712
- }
713
- }
714
- },
715
- delAudioFile(prop, fileName) {
716
- if (!fileName)
717
- return
718
- else {
719
- HostApp.delfile(fileName)
720
- this.paper[prop] = null
721
- }
722
- },
723
- //获取打印用户信息
724
- getUser() {
725
- if (this.paper.f_user_name == undefined)
726
- this.paper.f_user_name = ''
727
- this.printContent.push({
728
- type: 3,
729
- text: '用户名称:' + this.paper.f_user_name,
730
- fontsize: 2,
731
- isbold: false,
732
- align: 'left'
733
- })
734
- if (this.paper.f_userinfo_code == undefined)
735
- this.paper.f_userinfo_code = ''
736
- this.printContent.push({
737
- type: 3,
738
- text: '用户编号:' + this.paper.f_userinfo_code,
739
- fontsize: 2,
740
- isbold: false,
741
- align: 'left'
742
- })
743
- if (this.paper.f_address == undefined)
744
- this.paper.f_address = ''
745
- this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
746
- if (this.paper.f_user_phone == undefined)
747
- this.paper.f_user_phone = ''
748
- this.printContent.push({
749
- type: 3,
750
- text: '电话:' + this.paper.f_user_phone,
751
- fontsize: 2,
752
- isbold: false,
753
- align: 'left'
754
- })
755
- },
756
- verify() {
757
- let hasError = this.$parent.$parent.verifyUser()
758
- if (hasError)
759
- return hasError
760
- hasError = this.$parent.$parent.verifyDevices()
761
- if (hasError)
762
- return hasError
763
- },
764
- print() {
765
- let errString = this.verify()
766
- if (errString) {
767
- ////tag
768
- if (Vue.android)
769
- this.$showMessage(errString)
770
- return
771
- }
772
- // 文本
773
- let templatename = '安检结果单'
774
- if (Vue.config.safecheck != undefined) {
775
- if (Vue.config.safecheck.ApproveConfig != undefined) {
776
- if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
777
- templatename = Vue.config.safecheck.ApproveConfig.templatename
778
- }
779
- }
780
- }
781
- let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
782
- let feedPageHead = {type: 4, value: 2, unit: 'line'}
783
- let feedPageEnd = {type: 4, value: 4, unit: 'line'}
784
- this.printContent.push(textHead)
785
- this.printContent.push(feedPageHead)
786
- this.getUser()
787
- this.getDefect()
788
- this.getCheck()
789
- this.printContent.push(feedPageEnd)
790
- let arrstr = JSON.stringify(this.printContent)
791
- ////tag
792
- this.$androidUtil.print(arrstr)
793
- this.$set('printContent', [])
794
- },
795
- //打印安检信息
796
- getCheck() {
797
- let telephone = '96777'
798
- if (Vue.config.safecheck != undefined) {
799
- if (Vue.config.safecheck.ApproveConfig != undefined) {
800
- if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
801
- telephone = Vue.config.safecheck.ApproveConfig.checkphone
802
- }
803
- }
804
- }
805
- this.printContent.push({
806
- type: 3,
807
- text: '*******************************',
808
- fontsize: 3,
809
- isbold: false,
810
- align: 'center'
811
- })
812
- this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
813
- this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
814
- this.printContent.push({
815
- type: 3,
816
- text: '安检时间:' + this.getNowFormatDate(),
817
- fontsize: 2,
818
- isbold: false,
819
- align: 'left'
820
- })
821
- this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
822
- this.printContent.push({type: 4, value: 4, unit: 'line'})
823
- },
824
-
825
- getDefect() {
826
- let showmore = false
827
- if (Vue.config.safecheck != undefined) {
828
- if (Vue.config.safecheck.ApproveConfig != undefined) {
829
- if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
830
- showmore = Vue.config.safecheck.ApproveConfig.showmore
831
- }
832
- }
833
- }
834
-
835
- let backData = this.$parent.$parent.getAllDefect()
836
- // 对隐患信息进行遍历
837
- let res = JSON.parse(backData.f_defect_content)
838
- this.printContent.push({
839
- type: 3,
840
- text: '安检结果:' + res.result,
841
- fontsize: 2,
842
- isbold: false,
843
- align: 'left'
844
- })
845
- this.printContent.push({
846
- type: 3,
847
- text: '*******************************',
848
- fontsize: 3,
849
- isbold: false,
850
- align: 'center'
851
- })
852
-
853
-
854
- if (showmore) {
855
- //全部打印
856
- for (let dev in this.$parent.$parent.config) {
857
- for (let device in backData) {
858
- if (device.startsWith("device")) {
859
- for (let item in backData[device]) {
860
- //遍历结果
861
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
862
- let error = true
863
- for (let i in backData[device][item].f_items) {
864
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
865
- error = false
866
- }
867
- }
868
- if (error) {
869
- this.printContent.push({
870
- type: 3,
871
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
872
- fontsize: 2,
873
- isbold: false,
874
- align: 'left'
875
- })
876
- } else {
877
- this.printContent.push({
878
- type: 3,
879
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
880
- fontsize: 2,
881
- isbold: true,
882
- align: 'left'
883
- })
884
- }
885
-
886
- for (let i in backData[device][item].f_items) {
887
- if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
888
- this.printContent.push({
889
- type: 3,
890
- text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
891
- fontsize: 2,
892
- isbold: false,
893
- align: 'left'
894
- })
895
- }
896
- }
897
- this.printContent.push({type: 4, value: 2, unit: 'line'})
898
- }
899
- }
900
- }
901
- }
902
- }
903
-
904
- for (let dev in this.$parent.$parent.config) {
905
- for (let device in backData) {
906
- if (device.startsWith("device")) {
907
- for (let item in backData[device]) {
908
- //遍历结果
909
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
910
- let error = true
911
- for (let i in backData[device][item].f_items) {
912
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
913
- error = false
914
- }
915
- }
916
- if (!error) {
917
- this.printContent.push({
918
- type: 3,
919
- text: '隐患:',
920
- fontsize: 2,
921
- isbold: true,
922
- align: 'left'
923
- })
924
- }
925
- }
926
- }
927
- }
928
- }
929
- for (let device in backData) {
930
- if (device.startsWith("device")) {
931
- for (let item in backData[device]) {
932
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
933
- for (let i in backData[device][item].f_items) {
934
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
935
- this.printContent.push({
936
- type: 3,
937
- text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
938
- fontsize: 2,
939
- isbold: true,
940
- align: 'left'
941
- })
942
- }
943
- }
944
- }
945
- }
946
- }
947
- }
948
-
949
- }
950
- } else {
951
- for (let dev in this.$parent.$parent.config) {
952
- for (let device in backData) {
953
- if (device.startsWith("device")) {
954
- for (let item in backData[device]) {
955
- //遍历结果
956
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
957
- let error = true
958
- for (let i in backData[device][item].f_items) {
959
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
960
- error = false
961
- }
962
- }
963
- if (error) {
964
- this.printContent.push({
965
- type: 3,
966
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
967
- fontsize: 2,
968
- isbold: false,
969
- align: 'left'
970
- })
971
- } else {
972
- this.printContent.push({
973
- type: 3,
974
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
975
- fontsize: 2,
976
- isbold: false,
977
- align: 'left'
978
- })
979
- }
980
-
981
- for (let i in backData[device][item].f_items) {
982
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
983
- this.printContent.push({
984
- type: 3,
985
- text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
986
- fontsize: 2,
987
- isbold: false,
988
- align: 'left'
989
- })
990
- }
991
- }
992
- this.printContent.push({type: 4, value: 2, unit: 'line'})
993
- }
994
- }
995
- }
996
- }
997
- }
998
- }
999
- },
1000
- //获取当前时间
1001
- getNowFormatDate() {
1002
- var date = new Date();
1003
- var seperator1 = "-";
1004
- var seperator2 = ":";
1005
- var month = date.getMonth() + 1;
1006
- var strDate = date.getDate();
1007
- if (month >= 1 && month <= 9) {
1008
- month = "0" + month;
1009
- }
1010
- if (strDate >= 0 && strDate <= 9) {
1011
- strDate = "0" + strDate;
1012
- }
1013
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1014
- + " " + date.getHours() + seperator2 + date.getMinutes()
1015
- + seperator2 + date.getSeconds();
1016
- return currentdate;
1017
- },
1018
- readRepair() {
1019
- let url = this.$androidUtil.getProxyUrl()
1020
- let gen = getRepairs(this, url)
1021
- return co(gen)
1022
- },
1023
- showToRepair() {
1024
- let res = this.hasDefect()
1025
- ////tag
1026
- ////tag
1027
- if (res == '正常') {
1028
- this.showrepair = false
1029
- } else {
1030
- this.showrepair = true
1031
- this.assignObj()
1032
- }
1033
- this.showCheckToRepair = !this.showCheckToRepair
1034
- },
1035
- // 选中部门
1036
- reres(val) {
1037
- if (val.res == undefined) {
1038
- return
1039
- }
1040
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
1041
- this.$parent.$parent.model.f_meetunit = val.res
1042
- this.$parent.$parent.model.f_orgstr = val.resids
1043
- var arr = val.res.split('.')
1044
- this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
1045
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
1046
- },
1047
- assignObj() {
1048
- this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
1049
- this.$parent.$parent.model.f_user_name = this.paper.f_user_name
1050
- this.$parent.$parent.model.f_address = this.paper.f_address
1051
- this.$parent.$parent.model.f_user_type = this.paper.f_check_type
1052
- this.$parent.$parent.model.f_street = this.paper.f_street
1053
- this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
1054
- this.$parent.$parent.model.f_building = this.paper.f_building
1055
- this.$parent.$parent.model.f_unit = this.paper.f_unit
1056
- this.$parent.$parent.model.f_floor = this.paper.f_floor
1057
- this.$parent.$parent.model.f_room = this.paper.f_room
1058
- this.$parent.$parent.model.f_floor = this.paper.f_floor
1059
- this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
1060
- this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
1061
- },
1062
- hasDefect() {
1063
- let checkResult = '正常'
1064
- let codata = JSON.parse(JSON.stringify(this.paper))
1065
- for (let device in this.paper) {
1066
- if (device.startsWith("device")) {
1067
- for (let item in this.paper[device]) {
1068
- for (let i in this.paper[device][item].f_items) {
1069
- let items = this.paper[device][item].f_items[i]
1070
- ////tag
1071
- if (items.f_is_defect == true || items.f_is_defect == 'true') {
1072
- checkResult = '有隐患'
1073
- }
1074
- }
1075
- }
1076
- }
1077
- }
1078
- return checkResult
1079
- },
1080
- uploadPaper() {
1081
- if (this.showrepair) {
1082
- ////tag
1083
- ////tag
1084
- ////tag
1085
- ////tag
1086
-
1087
- if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1088
- this.$showMessage("请选择维修员!")
1089
- return
1090
- }
1091
- if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1092
- this.$showMessage("请选择站点!")
1093
- return
1094
- }
1095
- if (this.$parent.$parent.model.f_repairtype == '') {
1096
- this.$showMessage("请选择报修类型!")
1097
- return
1098
- }
1099
- this.$parent.$parent.isToRepair = true
1100
- this.$parent.$parent.uploadCheckPaper()
1101
- // this.$parent.$parent.savePaper(false).then((res) => {
1102
- // ////tag
1103
- // if(res != true){
1104
- // ////tag
1105
- // return
1106
- // }else{
1107
- // this.$parent.$parent.todo()
1108
- // }
1109
- // })
1110
- } else {
1111
- this.$parent.$parent.undo()
1112
- }
1113
-
1114
- },
1115
- //确认安检转维修
1116
-
1117
- undo() {
1118
- this.showCheckToRepair = !this.showCheckToRepair
1119
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1120
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1121
- this.$parent.$parent.model.f_repairtype = ''
1122
- this.meading = '转站点'
1123
- },
1124
- //取消拉黑
1125
- async deletebacklist() {
1126
- if (!this.deletecause) {
1127
- this.$showMessage("请填写取消拉黑原因!")
1128
- return
1129
- }
1130
- this.paper.f_blocking_cause = this.deletecause
1131
- ////tag)
1132
- let http = new HttpResetClass()
1133
- ////tag
1134
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1135
- data: {
1136
- items: "version",
1137
- tablename: "t_userinfo",
1138
- condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1139
- orderitem: "f_userinfo_id"
1140
- }
1141
- }, {resolveMsg: null, rejectMsg: null})
1142
- ////tag)
1143
- ////tag
1144
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1145
- data: {
1146
- "f_operat_type": "取消拉黑",
1147
- "f_state": "有效",
1148
- "f_user_name": this.paper.f_user_name,
1149
- "f_comments": this.paper.f_blocking_cause,
1150
- "f_operator": Vue.user.name,
1151
- "f_operatorid": Vue.user.id,
1152
- "f_orgid": Vue.user.orgid,
1153
- "f_orgname": Vue.user.orgs,
1154
- "f_depid": Vue.user.depids,
1155
- "f_depname": Vue.user.deps,
1156
- "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1157
- "f_userinfo_id": {
1158
- "f_userinfo_id": this.paper.f_userinfoid,
1159
- "f_user_state": "正常",
1160
- "version": res1.data[0].version
1161
- },
1162
- "f_limit_times":"",
1163
- "f_limit_value":""
1164
- }
1165
- }, {resolveMsg: null, rejectMsg: null})
1166
-
1167
- ////tag)
1168
- if (res2.data.code == 200) {
1169
- this.showmodelthree = false
1170
- this.deleteenabled = true
1171
- this.paper.f_blacklist = "否"
1172
- this.$showMessage("取消该用户限制购气成功!")
1173
- } else {
1174
- this.$showMessage("网络异常,请稍后再试!")
1175
- }
1176
- },
1177
- async backlist() {
1178
- if (!this.cause) {
1179
- this.$showMessage("请填写拉黑原因!")
1180
- return
1181
- }
1182
- this.paper.f_blocking_cause = this.cause
1183
- ////tag)
1184
- let http = new HttpResetClass()
1185
- ////tag
1186
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1187
- data: {
1188
- items: "version",
1189
- tablename: "t_userinfo",
1190
- condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1191
- orderitem: "f_userinfo_id"
1192
- }
1193
- }, {resolveMsg: null, rejectMsg: null})
1194
- ////tag)
1195
- ////tag
1196
- let limit_times=1
1197
- let limit_value=3
1198
- if(Vue.config.safecheck && Vue.config.safecheck.ApproveConfig.limit_times && Vue.config.safecheck.ApproveConfig.limit_value){
1199
- limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1200
- limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1201
- }
1202
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1203
- data: {
1204
- data:this.$parent.$parent.data,
1205
- item:this.$parent.$parent.data.item,
1206
- "f_operat_type": "拉黑",
1207
- "f_state": "有效",
1208
- "f_user_name": this.paper.f_user_name,
1209
- "f_comments": this.paper.f_blocking_cause,
1210
- "f_operator": Vue.user.name,
1211
- "f_operate_date":Util.toStandardTimeString(),
1212
- "f_operatorid": Vue.user.id,
1213
- "f_orgid": Vue.user.orgid,
1214
- "f_orgname": Vue.user.orgs,
1215
- "f_depid": Vue.user.depids,
1216
- "f_depname": Vue.user.deps,
1217
- "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行拉黑`,
1218
- "f_userinfo_id": {
1219
- "f_userinfo_id": this.paper.f_userinfoid
1220
- },
1221
- "f_limit_times":limit_times,
1222
- "f_limit_value":limit_value,
1223
- "f_limit_amount":'',
1224
- 'f_limit_type':'气量'
1225
- }
1226
- }, {resolveMsg: null, rejectMsg: null})
1227
-
1228
- ////tag)
1229
- if (res2.data.code == 200) {
1230
- this.showmodel = false
1231
- this.enabled = true
1232
- this.paper.f_blacklist = "是"
1233
- this.$showMessage("将该用户限制购气成功!")
1234
- } else if (res2.data.msg == '数据增加重复') {
1235
- this.showmodel = false
1236
- this.enabled = true
1237
- this.$showMessage("该用户已被限制购气,请勿重复提交!")
1238
- } else {
1239
- this.$showMessage("网络异常,请稍后再试!")
1240
- }
1241
- },
1242
- cancel() {
1243
- this.backlistisselect = false
1244
- this.showmodel = false
1245
- },
1246
- deletecancel() {
1247
- this.deletebacklistisselect = false
1248
- this.showmodelthree = false
1249
- },
1250
- repiarmancg(val) {
1251
- if (val) {
1252
- ////tag
1253
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1254
- let http1 = new HttpResetClass()
1255
- http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1256
- data: {
1257
- items: 'f_user_telephone',
1258
- tablename: 't_user',
1259
- condition: `name = '${val}'`,
1260
- orderitem: 'id'
1261
- }
1262
- }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1263
- this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1264
- })
1265
- }
1266
- },
1267
- },
1268
- async ready() {
1269
- this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1270
- this.isvideo = this.$appdata.getSingleValue('安检录视频')
1271
- if(this.$appdata.getSingleValue('安检时显示拉黑')){
1272
- this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1273
- }
1274
- // await this.isoverDate()
1275
- ////tag
1276
- ////tag
1277
- ////tag)
1278
- ////tag))
1279
- if (this.$parent.$parent.role == 'repair') {
1280
- this.$set('style__', 'divmask')
1281
- this.$set('style_view_', '')
1282
- } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1283
- this.$set('style__', 'divmask')
1284
- this.$set('style_view_', 'divmask')
1285
- ////tag
1286
- } else {
1287
- this.$set('style__', '')
1288
- this.$set('style_view_', '')
1289
- }
1290
-
1291
- for (let item of this.radios) {
1292
- if (this.paper.f_client_evaluation == item.label) {
1293
- item.isChecked = true;
1294
- }
1295
- }
1296
- if (!this.paper.f_notified_path)
1297
- this.$set('paper.f_notified_path', Vue.nopic)
1298
- if (!this.paper.f_sign_path)
1299
- this.$set('paper.f_sign_path', Vue.nopic)
1300
- ////tag
1301
- if (!this.paper.f_overall_imgs) {
1302
- let imgs = []
1303
- // imgs.push({f_overall_path:Vue.nopic})
1304
- this.$set('paper.f_overall_imgs', imgs)
1305
- ////tag
1306
- }
1307
- if (!this.paper.f_overall2_path)
1308
- this.$set('paper.f_overall2_path', Vue.nopic)
1309
-
1310
- this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1311
- if (Vue.config.safecheck != undefined) {
1312
- if (Vue.config.safecheck.ApproveConfig != undefined) {
1313
- if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1314
- this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1315
- }
1316
- }
1317
- }
1318
- let device = this.$parent.$parent.data
1319
- for (const deviceitem in device) {
1320
- if (deviceitem.startsWith('device')){
1321
- //tag)
1322
- if(device[deviceitem].length == 0){
1323
- continue
1324
- }
1325
- let items = device[deviceitem][0].f_items
1326
- let deviceType = device[deviceitem][0].f_device_type
1327
- for (let i = 0; i < items.length; i++) {
1328
- if (items[i].f_is_defect){
1329
- let reason = items[i].f_item_name+":"
1330
- if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1331
- for (let j = 0; j < items[i].f_item_value.length; j++) {
1332
- if (j+1 === items[i].f_item_value.length){
1333
- reason += items[i].f_item_value[j]
1334
- }else{
1335
- reason += items[i].f_item_value[j] + ","
1336
- }
1337
- }
1338
- }else{
1339
- reason += items[i].f_item_value
1340
- }
1341
- if (items[i].f_path){
1342
- this.defectImgs.push(items[i].f_path)
1343
- }
1344
- if (items[i].f_p1_path){
1345
- this.defectImgs.push(items[i].f_p1_path)
1346
- }
1347
- if (items[i].f_p2_path){
1348
- this.defectImgs.push(items[i].f_p2_path)
1349
- }
1350
- if (items[i].f_p3_path){
1351
- this.defectImgs.push(items[i].f_p3_path)
1352
- }
1353
- if (items[i].tooltip){
1354
- this.defectToolTip.push(items[i].tooltip)
1355
- }
1356
- this.defectReason.push({device:deviceType,deviceitem:reason})
1357
- }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1358
- let reason = items[i].f_item_name+":" + items[i].f_item_value
1359
- this.defectReason.push({device:deviceType,deviceitem:reason})
1360
- }
1361
-
1362
- }
1363
- }
1364
- }
1365
- ////tag
1366
- ////tag
1367
- //tag
1368
- ////tag
1369
- //tag)
1370
- //tag)
1371
- //tag)
1372
- ////tag
1373
- ////tag
1374
- ////tag
1375
- },
1376
- watch: {
1377
- '$parent.$parent.isUpload'(val) {
1378
- ////tag
1379
- },
1380
- 'meading'(val) {
1381
- ////tag
1382
- this.$parent.$parent.meading = val
1383
- },
1384
- 'backlistisselect'(val) {
1385
- if (val == true) {
1386
- this.showmodel = true
1387
- this.deletebacklistisselect=false
1388
- }
1389
- },
1390
- 'deletebacklistisselect'(val) {
1391
- if (val == true) {
1392
- this.showmodelthree = true
1393
- this.backlistisselect=false
1394
- }
1395
- },
1396
- 'isRecodr'(val) {
1397
- if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1398
- this.isRecodr = "false";
1399
- }
1400
- }
1401
- }
1402
- }
1403
- </script>
1404
- <style scoped>
1405
- .panel-self{
1406
- border-radius: 5px;
1407
- border:1px solid #c5e1f7;
1408
- background-color: #F2F6FA;
1409
- }
1410
- .text-left{
1411
- text-align:left;
1412
- }
1413
- .font{
1414
- font: 15px PingFang-SC-Medium;
1415
- color: #333333;
1416
- }
1417
- .showIi{
1418
- font: 14px PingFang-SC-Medium;
1419
- color: #666666;
1420
- }
1421
- .info{
1422
- margin-top: 15px;
1423
- border-radius: 5px;
1424
- background-color: #f3faff;
1425
- }
1426
- .btn-photo{
1427
- border: 0;
1428
- border-radius: 7px;
1429
- background-color: #7dc1f4;
1430
- font: 15px PingFang-SC-Bold;
1431
- height: 20%;
1432
- }
1433
- .div-photo{
1434
- width: auto;
1435
- height: auto;
1436
- /* margin-top: 10px; */
1437
- position: absolute;
1438
- bottom: 10px;
1439
- right: 10px;
1440
- }
1441
- .btn-voice{
1442
- border-radius: 7px;
1443
- border: 1px solid #dedede;
1444
- background-color: #f5fbff;
1445
- font: 15px PingFang-SC-Bold;
1446
- color: #499edf;
1447
- }
1448
- .save-btn{
1449
- width: 25%;
1450
- background-color:#499edf;
1451
- border-radius: 6px;
1452
- color: #FFFFFF;
1453
- font: 15px PingFang-SC-Bold;
1454
- }
1455
- .upload-btn{
1456
- width: 25%;
1457
- background-color:#ffffff;
1458
- border: 1px solid #499edf;
1459
- border-radius: 6px;
1460
- color: #499edf;
1461
- font: 15px PingFang-SC-Bold;
1462
- }
1463
- .repair-btn{
1464
- width: 25%;
1465
- border: 1px solid #499edf;
1466
- border-radius: 6px;
1467
- font: 15px PingFang-SC-Bold;
1468
- }
1469
- #el_ca_tx{
1470
- width: 100%;
1471
- margin: 5px;
1472
- }
1473
- #el_ca_txt{
1474
- width: 100%;
1475
- margin: 5px;
1476
- }
1477
- </style>
1
+ <template>
2
+ <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
4
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
5
+ <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
6
+ <div class="col-md-12 col-sm-12 col-xs-12">
7
+ <textarea v-model="paper.f_repair_approved_note" class="form-control"></textarea>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
12
+ <div class="text-center">
13
+ <label class="font">总体安检照片请依次拍摄:</label>
14
+ </div>
15
+ <div class="col-md-12 col-sm-12 col-xs-12">
16
+ <ol class="showIi">
17
+ <li>1.燃气设施全景(含灶具)</li>
18
+ <li>2.其他照片</li>
19
+ </ol>
20
+ </div>
21
+ </div>
22
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
23
+ <label class="text-left font">总体安检照片</label>
24
+
25
+ <div class="auto" :class="style__">
26
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
27
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
28
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
29
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
30
+ <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
31
+ <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
32
+ </div>
33
+ </div>
34
+ <div class="row text-right div-photo">
35
+ <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
36
+ <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
37
+ <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__" v-if="isvideo == 'true'">
44
+ <label class="text-left font">安检视频</label>
45
+
46
+ <div class="auto" :class="style__">
47
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
48
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
49
+ <div class="row">
50
+ <video width="320" height="200" controls v-if="paper.f_video_path">
51
+ <source :src="paper.f_video_path" type="video/mp4">
52
+ </video>
53
+ </div>
54
+ <div class="row text-right div-photo">
55
+ <button type="button" name="button" class="btn btn-photo" @click="takeVideo()">拍摄</button>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
62
+ <label class="text-left font">总体隐患照片</label>
63
+ <div class="auto" :class="style__">
64
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
65
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
66
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
67
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in defectImgs">
68
+ <img-self :src="img" alt="总体隐患照片" :width="140" :height="170"></img-self>
69
+ <!-- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">-->
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
77
+ <div class="text-center">
78
+ <label class="font">隐患汇总:</label>
79
+ </div>
80
+ <div class="col-md-12 col-sm-12 col-xs-12">
81
+ <ol class="showIi">
82
+ <li v-for="item in defectReason">{{ item.deviceitem }}</li>
83
+ </ol>
84
+ </div>
85
+ </div>
86
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
87
+ <div class="text-center">
88
+ <label class="font">整改建议汇总:</label>
89
+ </div>
90
+ <div class="col-md-12 col-sm-12 col-xs-12">
91
+ <ol class="showIi">
92
+ <li v-for="item in defectToolTip">{{ item }}</li>
93
+ </ol>
94
+ </div>
95
+ </div>
96
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
97
+ <input type="checkbox" v-model="paper.f_read_instructions"/><label class="text-left font">我已阅读须知内容</label>
98
+
99
+ </div>
100
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :class="style__">
101
+ <label class="text-left font">用户签名</label>
102
+ <div class="auto">
103
+ <div class="panel">
104
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
105
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
106
+ <div class="col-sm-4">
107
+ <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
108
+ </div>
109
+ </div>
110
+ <div class="row text-right div-photo">
111
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 " :style="timeSet(this.isneedDate)?'':'display:none'">
118
+ <label>请输入超期原因:</label><br/>
119
+ <textarea style="width: 100%;" v-model="paper.f_exceed_reason"></textarea>
120
+ </div>
121
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-show="showbacklist=='是'">
122
+ <div class="col-xs-6 col-sm-6">
123
+ <input type="checkbox" v-model="backlistisselect" :readonly="enabled"/><label class="text-left font" >限制该用户购气</label>
124
+ </div>
125
+ <div class="col-xs-6 col-sm-6">
126
+ <input type="checkbox" v-model="deletebacklistisselect" :readonly="deleteenabled"/><label class="text-left font" >取消该用户购气</label>
127
+ </div>
128
+ </div>
129
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__" v-if="Vue.$appdata.getParam('安检天然气安全使用须知检查')=='是'">
130
+ <div class="col-xs-12 col-sm-12">
131
+ <input type="checkbox" v-model="paper.f_gas_guidelines" /><label class="text-left font" >天然气安全使用须知</label>
132
+ </div>
133
+ <div class="col-xs-12 col-sm-12">
134
+ <input type="checkbox" v-model="paper.f_safety_warning" /><label class="text-left font" >天然气室内使用安全警示</label>
135
+ </div>
136
+ <div class="col-xs-12 col-sm-12">
137
+ <input type="checkbox" v-model="paper.f_gas_manual" /><label class="text-left font" >安全用气手册</label>
138
+ </div>
139
+ </div>
140
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
141
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
142
+ <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
143
+ </div>
144
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
145
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
146
+ <button type="button" @click="print()">打印隐患整改单</button>
147
+ </div>
148
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
149
+ <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
150
+ <div class="auto" >
151
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
152
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
153
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
154
+ <div class="col-sm-4">
155
+ <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
156
+ </div>
157
+ </div>
158
+ <div class="row text-right div-photo">
159
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
160
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_notified_path', this.paper.f_notified_path)" style="width: 25%;"></img>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
168
+ <div class="row">
169
+ <label class="text-left">请对我们的服务做出评价:</label>
170
+ </div>
171
+ <div class="col-xs-4 col-sm-4" v-for="item in radios">
172
+ <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
173
+ </div>
174
+
175
+ <!--<div class="col-sm-4">-->
176
+ <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
177
+ <!--<radio value="满意">满意</radio>-->
178
+ <!--<radio value="基本满意">基本满意</radio>-->
179
+ <!--<radio value="不满意">不满意</radio>-->
180
+ <!--</radio-group>-->
181
+ <!--</div>-->
182
+ </div>
183
+
184
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="isRecodr=='false'">
185
+ <label class="text-left font">反馈录音:</label>
186
+ <div class="col-md-12 col-sm-12 col-xs-12">
187
+ <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
188
+ <img src="../../../assets/录音.png" style="width: 14%;">
189
+ <span v-if="!paper.f_recording1_path">开始录音</span>
190
+ <span v-if="paper.f_recording1_path">已录音</span>
191
+ </button>
192
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
193
+ </div>
194
+ </div>
195
+
196
+ <div v-if="false">
197
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
198
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' &&(paper.f_complete != '已完成' || paper.back_f_entry_status != '入户') " class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
199
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
200
+ </div>
201
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
202
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled && upload_state !='已传' && (paper.f_complete != '已完成' || paper.back_f_entry_status != '入户')" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
203
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" v-if="(safeCheckToRepair == true || safeCheckToRepair == 'true') && $parent.$parent.actionEnabled" class="btn repair-btn btn-warning " type="button" @click="showToRepair">转维修</button> </div>
204
+ </div>
205
+
206
+ </div>
207
+ </form>
208
+ <!-- <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">-->
209
+ <!-- <div slot="modal-header" class="modal-header">-->
210
+ <!-- <h4 class="modal-title">-->
211
+ <!-- 安检转维修-->
212
+ <!-- </h4>-->
213
+ <!-- </div>-->
214
+ <!-- <div slot="modal-body" class="modal-body">-->
215
+ <!-- <div v-if="showrepair">-->
216
+ <!-- <div class="row">-->
217
+ <!-- <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>-->
218
+ <!-- <div class="col-xs-8 col-md-8">-->
219
+ <!-- <label v-for="handling1 in handling" >-->
220
+ <!-- <input type="radio"-->
221
+ <!-- v-model="meading"-->
222
+ <!-- value="{{handling1.label}}">-->
223
+ <!-- {{handling1.label}}-->
224
+ <!-- </label>-->
225
+ <!-- </div>-->
226
+ <!-- </div>-->
227
+ <!-- <div class="row" v-if="meading == '转站点'">-->
228
+ <!-- <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>-->
229
+ <!-- &lt;!&ndash;<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"&ndash;&gt;-->
230
+ <!-- &lt;!&ndash;v-validate:f_reciever='{ required: true }'>&ndash;&gt;-->
231
+ <!-- <div class="col-xs-8 col-md-8">-->
232
+ <!-- <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>-->
233
+ <!-- </right-tree>-->
234
+ <!-- </div>-->
235
+ <!-- </div>-->
236
+
237
+ <!-- <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">-->
238
+ <!-- <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>-->
239
+ <!-- <div class="col-xs-8">-->
240
+ <!-- <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"-->
241
+ <!-- :options='f_repair_person' placeholder='请选择维修员'-->
242
+ <!-- close-on-select v-on:change="repiarmancg"></v-select>-->
243
+ <!-- </div>-->
244
+
245
+ <!-- </div>-->
246
+ <!-- <div class="row" style="margin-top: 6px">-->
247
+ <!-- <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>-->
248
+ <!-- <div class="col-xs-8 col-md-8">-->
249
+ <!-- <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"-->
250
+ <!-- :options='repairstypes' placeholder='报修类型'-->
251
+ <!-- close-on-select>-->
252
+ <!-- </v-select>-->
253
+ <!-- </div>-->
254
+ <!-- </div>-->
255
+
256
+ <!-- <div class="row" style="margin-top: 6px">-->
257
+ <!-- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>-->
258
+ <!-- <div class="col-xs-8 col-md-8">-->
259
+ <!-- <input type="text" v-model="$parent.$parent.model.f_remarks"/>-->
260
+ <!-- </div>-->
261
+
262
+ <!-- </div>-->
263
+
264
+ <!-- </div>-->
265
+ <!-- <div v-if="!showrepair">-->
266
+ <!-- 暂无隐患设备信息-->
267
+ <!-- </div>-->
268
+ <!-- </div>-->
269
+ <!-- <div slot="modal-footer" class="modal-footer">-->
270
+ <!-- <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>-->
271
+ <!-- <button type="button" class="btn btn-default" @click="undo()">取消</button>-->
272
+ <!-- </div>-->
273
+ <!-- </modal>-->
274
+ <!--拉黑框-->
275
+ <modal :show.sync="showmodel" v-ref:modal>
276
+ <div slot="modal-header" class="modal-header">
277
+ <h4 class="modal-title">
278
+ 限制用户购气
279
+ </h4>
280
+ </div>
281
+ <div slot="modal-body" class="modal-body">
282
+ <!-- <div class="row" style="margin-top: 6px">-->
283
+ <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
284
+ <!-- </div>-->
285
+ <div class="row" style="margin-top: 6px">
286
+ <textarea id="el_ca_tx" v-model.trim="cause" style="border-radius:4px;width: 100%;" placeholder="请输入限制用户购气原因" >
287
+ </textarea>
288
+ </div>
289
+ </div>
290
+ <div slot="modal-footer" class="modal-footer">
291
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="backlist()">确认</button>
292
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">取消</button>
293
+ </div>
294
+ </modal>
295
+
296
+ <modal :show.sync="showmodelthree" v-ref:modal>
297
+ <div slot="modal-header" class="modal-header">
298
+ <h4 class="modal-title">
299
+ 取消限制用户购气
300
+ </h4>
301
+ </div>
302
+ <div slot="modal-body" class="modal-body">
303
+ <!-- <div class="row" style="margin-top: 6px">-->
304
+ <!-- <label style="color: red;">注:当前页面无法取消对用户的限制购气</label>-->
305
+ <!-- </div>-->
306
+ <div class="row" style="margin-top: 6px">
307
+ <textarea id="el_ca_txt" v-model.trim="deletecause" style="border-radius:4px;width: 100%;" placeholder="请输入取消限制用户购气原因" >
308
+ </textarea>
309
+ </div>
310
+ </div>
311
+ <div slot="modal-footer" class="modal-footer">
312
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletebacklist()">确认</button>
313
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="deletecancel()">取消</button>
314
+ </div>
315
+ </modal>
316
+ </template>
317
+
318
+ <script>
319
+ import Vue from 'vue'
320
+ import * as Util from '../../Util'
321
+ import { HttpResetClass } from 'vue-client'
322
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
323
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
324
+ import co from 'co'
325
+
326
+ // let getRepairParam = function * (self){
327
+ // let data = {
328
+ // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
329
+ // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
330
+ // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
331
+ // }, user: self.user, callObj: self.callObj
332
+ // }
333
+ // if(self.$parent.$parent.meading == '转维修员'){
334
+ // data.toRepair = '一级派单'
335
+ // }
336
+ // data.$parent.$parent.model.f_attendant = data.loginUser.name
337
+ // ////tag
338
+ // ////tag
339
+ // let res
340
+ // let errString = self.$parent. $parent.errorVerify()
341
+ // if(errString){
342
+ // ////tag
343
+ // if (Vue.android)
344
+ // self.undo()
345
+ // this.$showMessage(errString)
346
+ // return
347
+ // } else {
348
+ // if(self.role == 'inspect'){
349
+ // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
350
+ // this.$showMessage("请选择维修员!")
351
+ // return
352
+ // }
353
+ // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
354
+ // HostApp.alert()
355
+ // this.$showMessage("请选择站点!")
356
+ // return
357
+ // }
358
+ // if(self.$parent.$parent.model.f_repairtype == ''){
359
+ // this.$showMessage("请选择报修类型!")
360
+ // return
361
+ // }
362
+ // ////tag)
363
+ // let checkResult = '正常'
364
+ // let options = [{"data": "已处理"},{"data": "未处理"}]
365
+ // let value = ''
366
+ // let codata = JSON.parse(JSON.stringify(self.paper))
367
+ // for(let device in codata){
368
+ // ////tag)
369
+ // let f_device_type
370
+ // if(device.startsWith("device")){
371
+ // for(let item in codata[device]) {
372
+ // if(codata[device].length > 1 ){
373
+ // let j = Number.parseInt(item)+1
374
+ // f_device_type = `${codata[device][item].f_device_type}${j}`
375
+ // }else{
376
+ // f_device_type = codata[device][item].f_device_type
377
+ // }
378
+ // // ////tag
379
+ // let details = []
380
+ // for(let i in codata[device][item].f_items){
381
+ // let items = codata[device][item].f_items[i]
382
+ // ////tag
383
+ // if(items.f_is_defect == true || items.f_is_defect == 'true'){
384
+ // checkResult = '有隐患'
385
+ // ////tag
386
+ // let res = yield self.$resetpost(`${self.Url}/rs/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
387
+ // ////tag)
388
+ // self.$set('detail.f_defect_id', res.data[0].id)
389
+ // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
390
+ // self.$set('detail.type',items.type)
391
+ // self.$set('detail.options',options)
392
+ // details.push(JSON.parse(JSON.stringify(self.detail)))
393
+ // }
394
+ // if(items.type == 'selector'){
395
+ // items.selected = ''
396
+ // }
397
+ // self.detail = {}
398
+ // }
399
+ // ////tag
400
+ // self.$set('defectDevice.f_type',f_device_type)
401
+ // self.$set('defectDevice.details',details)
402
+ // if(self.defectDevice.details.length >0 ){
403
+ // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
404
+ // }
405
+ // self.defectDevice = {}
406
+ // ////tag
407
+ // }
408
+ // }
409
+ // }
410
+ // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
411
+ //
412
+ //
413
+ // ////tag)
414
+ // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
415
+ // ////tag
416
+ // ////tag
417
+ // ////tag
418
+ // if(res.code == 200){
419
+ // self.$parent.$parent.isSafeCheckToRepair = true
420
+ // self.undo()
421
+ // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
422
+ // ////tag
423
+ // self.$resetpost(`${self.Url}/rs/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
424
+ // ////tag
425
+ // if(ret.data.code ==200){
426
+ // ////tag
427
+ // self.$parent.$parent.$back()
428
+ // }else{
429
+ // self.$showMessage('安检转维修失败!')
430
+ // }
431
+ // }).catch(v=>{
432
+ // ////tag)
433
+ // self.$showMessage('安检转维修失败!')
434
+ // })
435
+ // }else{
436
+ // self.$showMessage('安检转维修失败!')
437
+ // }
438
+ // }
439
+ // }
440
+ // }
441
+
442
+
443
+
444
+ // let getRepairs = async function(self,url) {
445
+ // // 获取配置信息
446
+ // try {
447
+ // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
448
+ // let repairs =[]
449
+ // let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
450
+ // res.data.forEach((item) => {
451
+ // repairs.push({label: item.name, value: item})
452
+ // })
453
+ // self.f_repair_person = repairs
454
+ // if(self.$parent.$parent.role == 'inspect'){
455
+ // let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
456
+ // if(res.code == 200){
457
+ // self.$parent.$parent.user = res.data[0]
458
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
459
+ // }
460
+ // }else{
461
+ // ////tag
462
+ // self.$resetpost(`${self.Url}/rs/sql/safeCheckgetUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
463
+ // ////tag
464
+ // if(res.data.length != 0){
465
+ // self.$parent.$parent.user = res.data[0]
466
+ // self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
467
+ // }
468
+ // })
469
+ // // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
470
+ // }
471
+ // } catch (error) {
472
+ // ////tag
473
+ // }
474
+ // }
475
+
476
+ export default {
477
+ title: '用户反馈',
478
+ data() {
479
+ return {
480
+ isvideo:'false',
481
+ defectImgs: [],
482
+ defectToolTip: [],
483
+ defectReason: [],
484
+ images: [],
485
+ showmodelthree: false,
486
+ isneedDate: this.$parent.$parent.isneedDate,
487
+ plan: this.$parent.$parent.item,
488
+ meading: this.$parent.$parent.meading,
489
+ paper: this.$parent.$parent.data,
490
+ printContent: [],
491
+ upload_state: this.$parent.$parent.item.f_upload_state,
492
+ enabled: false,//控制限制购气是否可选
493
+ deleteenabled: false,
494
+ showmodel: false,
495
+ showbacklist:'是',
496
+ backlistisselect: false,
497
+ deletebacklistisselect: false,
498
+ radios: [
499
+ {
500
+ label: '满意',
501
+ value: 0,
502
+ isChecked: false,
503
+ },
504
+ {
505
+ label: '基本满意',
506
+ value: 1,
507
+ isChecked: false,
508
+ },
509
+ {
510
+ label: '不满意',
511
+ value: 2,
512
+ isChecked: false,
513
+ },
514
+ ],
515
+ repairitems: [],
516
+ repairstypes: this.$appdata.getParam('报修类型'),
517
+ // f_repair_person: this.readRepair(),
518
+ showrepair: false,
519
+ safeCheckToRepair: '',
520
+ showCheckToRepair: false,
521
+ userid: '',
522
+ source:
523
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
524
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
525
+ isback: false,
526
+ defectDevice: {},
527
+ detail: {},
528
+ callObj: null,
529
+ user: {},
530
+ role: this.$parent.$parent.role,
531
+ handling: [{label: '转站点', value: '转站点'}, {label: '转维修员', value: '转维修员'}],
532
+ Url: this.$androidUtil.getProxyUrl(),
533
+ cause: "",
534
+ deletecause: "",
535
+ isRecodr: "false", //单值参数,为true则是开启全程录音
536
+ }
537
+ },
538
+ props: ['idx'],
539
+ components: {
540
+ RadioGroup,
541
+ Radio
542
+ },
543
+ methods: {
544
+ timeSet(val) {
545
+ //////tag
546
+ if (!val) {
547
+ return
548
+ }
549
+ let time = new Date(val).getTime()
550
+ let time2 = new Date().getTime()
551
+ if (time2 > time) {
552
+ return true
553
+ }
554
+ },
555
+ // async isoverDate(){
556
+ // ////tag
557
+ // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
558
+ // condition:"f_plan_item_id='"+this.$parent.$parent.item.id+"'"
559
+ // }
560
+ // })
561
+ // this.isneedDate=res.data[0]["f_subscribe_date"]
562
+ // ////tag
563
+ // },
564
+ check(index) {
565
+ ////tag
566
+ // 先取消所有选中项
567
+ for (let item of this.radios) {
568
+ item.isChecked = false;
569
+ }
570
+ //再设置当前点击项选中
571
+ this.paper.f_client_evaluation = this.radios[index].label;
572
+ // 设置值,以供传递
573
+ this.radios[index].isChecked = true;
574
+ ////tag;
575
+ },
576
+ getSignValue(fileName) {
577
+ this.f_signname = fileName
578
+ },
579
+ videoCallBack(fileName) {
580
+ this.$set('paper.f_video_path', fileName)
581
+ HostApp.__callback__ = null
582
+ HostApp.__this__ = null
583
+ },
584
+ takeVideo() {
585
+ HostApp.__callback__ = this.videoCallBack
586
+ HostApp.__this__ = this
587
+ let fileName = Util.guid() + '.mp4'
588
+ HostApp._open_a_page({
589
+ type: 'boomerang',
590
+ page: 'com.aofeng.hybrid.android.peripheral.VideoActivity',
591
+ param: {
592
+ file: fileName,
593
+ requestCode: 111,
594
+ callback: 'javascript:HostApp.__callback__("%s");'
595
+ }
596
+ })
597
+ },
598
+ cameraCallBack(prop, fileName) {
599
+ if (prop == 'f_overall_path') {
600
+ let f_overall_path = fileName + '?' + Math.random()
601
+ HostApp.__this__.paper.f_overall_imgs.push({
602
+ f_overall_path: f_overall_path
603
+ })
604
+ } else {
605
+ HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
606
+ }
607
+ HostApp.__callback__ = null
608
+ HostApp.__this__ = null
609
+ },
610
+ takePic(prop, title, index) {
611
+ HostApp.__callback__ = this.cameraCallBack
612
+ HostApp.__this__ = this
613
+ ////tag
614
+ ////tag
615
+ let fileName
616
+ if (prop == 'f_overall_path') {
617
+ if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
618
+ fileName = Util.guid() + '-' + prop + '.jpg'
619
+ } else {
620
+ fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
621
+ }
622
+ } else {
623
+ if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
624
+ fileName = Util.guid() + '-' + prop + '.jpg'
625
+ } else {
626
+ fileName = Util.getFileName(this.paper[prop])
627
+ }
628
+ }
629
+ let jingweidu = ''
630
+ if (this.$parent.$parent.is_has_jingweidu == 'true'){
631
+ const obj = HostApp.getGpsDetailAddress()
632
+ jingweidu = '\t经度:' + obj.longitude+ '\t纬度:' + obj.latitude
633
+ }
634
+ HostApp._open_a_page({
635
+ type: 'boomerang',
636
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
637
+ param: {
638
+ file: fileName,
639
+ requestCode: 111,
640
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
641
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name + '\t' + this.paper.f_userinfo_code+ '\t' + this.paper.f_user_name+ '\t' + this.paper.f_address
642
+ +jingweidu
643
+ }
644
+ })
645
+ },
646
+ amrCallBack(fileName) {
647
+ HostApp.__this__.$set('paper.f_recording1_path', fileName)
648
+ HostApp.__callback__ = null
649
+ HostApp.__this__ = null
650
+ },
651
+ record() {
652
+ if (this.$parent.$parent.role != 'inspect') {
653
+ if (this.paper.f_recording1_path != '') {
654
+ window.location = this.paper.f_recording1_path
655
+ }
656
+ } else {
657
+ HostApp.__callback__ = this.amrCallBack
658
+ HostApp.__this__ = this
659
+ let fileName
660
+ if (!this.paper.f_recording1_path) {
661
+ fileName = Util.guid() + '.amr'
662
+ } else {
663
+ fileName = Util.getFileName(this.paper.f_recording1_path)
664
+ }
665
+ HostApp._open_a_page({
666
+ type: 'boomerang',
667
+ page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
668
+ param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
669
+ })
670
+ }
671
+ },
672
+ // 签名回调
673
+ signCallback(prop, fileName) {
674
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
675
+ HostApp.__this__.$set('paper.f_sign_path', fileName)
676
+ HostApp.__callback__ = null
677
+ HostApp.__this__ = null
678
+ },
679
+ // 用户签名
680
+ sign() {
681
+ if (!this.paper.f_read_instructions) {
682
+ this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
683
+ return
684
+ }
685
+ this.delAudioFile('f_sign_path', this.paper.f_sign_path)
686
+ let prop = 'f_sign_path'
687
+ let idx = 'aofeng'
688
+ let fileName
689
+ if (!this.paper.f_sign_path) {
690
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
691
+ } else {
692
+ fileName = Util.getFileName(this.paper.f_sign_path)
693
+ }
694
+ HostApp.__callback__ = this.signCallback
695
+ HostApp.__this__ = this
696
+ HostApp.getSignature({
697
+ file: fileName,
698
+ requestCode: 111,
699
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
700
+ })
701
+ },
702
+ delfile(prop, fileName, index) {
703
+ if (fileName == Vue.nopic)
704
+ return
705
+ else {
706
+ if (prop == 'f_overall_path') {
707
+ this.paper.f_overall_imgs.splice(index, 1)
708
+ HostApp.delfile(fileName)
709
+ } else {
710
+ HostApp.delfile(fileName)
711
+ this.paper[prop] = Vue.nopic
712
+ }
713
+ }
714
+ },
715
+ delAudioFile(prop, fileName) {
716
+ if (!fileName)
717
+ return
718
+ else {
719
+ HostApp.delfile(fileName)
720
+ this.paper[prop] = null
721
+ }
722
+ },
723
+ //获取打印用户信息
724
+ getUser() {
725
+ if (this.paper.f_user_name == undefined)
726
+ this.paper.f_user_name = ''
727
+ this.printContent.push({
728
+ type: 3,
729
+ text: '用户名称:' + this.paper.f_user_name,
730
+ fontsize: 2,
731
+ isbold: false,
732
+ align: 'left'
733
+ })
734
+ if (this.paper.f_userinfo_code == undefined)
735
+ this.paper.f_userinfo_code = ''
736
+ this.printContent.push({
737
+ type: 3,
738
+ text: '用户编号:' + this.paper.f_userinfo_code,
739
+ fontsize: 2,
740
+ isbold: false,
741
+ align: 'left'
742
+ })
743
+ if (this.paper.f_address == undefined)
744
+ this.paper.f_address = ''
745
+ this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
746
+ if (this.paper.f_user_phone == undefined)
747
+ this.paper.f_user_phone = ''
748
+ this.printContent.push({
749
+ type: 3,
750
+ text: '电话:' + this.paper.f_user_phone,
751
+ fontsize: 2,
752
+ isbold: false,
753
+ align: 'left'
754
+ })
755
+ },
756
+ verify() {
757
+ let hasError = this.$parent.$parent.verifyUser()
758
+ if (hasError)
759
+ return hasError
760
+ hasError = this.$parent.$parent.verifyDevices()
761
+ if (hasError)
762
+ return hasError
763
+ },
764
+ print() {
765
+ let errString = this.verify()
766
+ if (errString) {
767
+ ////tag
768
+ if (Vue.android)
769
+ this.$showMessage(errString)
770
+ return
771
+ }
772
+ // 文本
773
+ let templatename = '安检结果单'
774
+ if (Vue.config.safecheck != undefined) {
775
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
776
+ if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
777
+ templatename = Vue.config.safecheck.ApproveConfig.templatename
778
+ }
779
+ }
780
+ }
781
+ let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
782
+ let feedPageHead = {type: 4, value: 2, unit: 'line'}
783
+ let feedPageEnd = {type: 4, value: 4, unit: 'line'}
784
+ this.printContent.push(textHead)
785
+ this.printContent.push(feedPageHead)
786
+ this.getUser()
787
+ this.getDefect()
788
+ this.getCheck()
789
+ this.printContent.push(feedPageEnd)
790
+ let arrstr = JSON.stringify(this.printContent)
791
+ ////tag
792
+ this.$androidUtil.print(arrstr)
793
+ this.$set('printContent', [])
794
+ },
795
+ //打印安检信息
796
+ getCheck() {
797
+ let telephone = '96777'
798
+ if (Vue.config.safecheck != undefined) {
799
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
800
+ if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
801
+ telephone = Vue.config.safecheck.ApproveConfig.checkphone
802
+ }
803
+ }
804
+ }
805
+ this.printContent.push({
806
+ type: 3,
807
+ text: '*******************************',
808
+ fontsize: 3,
809
+ isbold: false,
810
+ align: 'center'
811
+ })
812
+ this.printContent.push({type: 3, text: '咨询电话;' + telephone, fontsize: 2, isbold: false, align: 'left'})
813
+ this.printContent.push({type: 3, text: '安检人:' + Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
814
+ this.printContent.push({
815
+ type: 3,
816
+ text: '安检时间:' + this.getNowFormatDate(),
817
+ fontsize: 2,
818
+ isbold: false,
819
+ align: 'left'
820
+ })
821
+ this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
822
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
823
+ },
824
+
825
+ getDefect() {
826
+ let showmore = false
827
+ if (Vue.config.safecheck != undefined) {
828
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
829
+ if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
830
+ showmore = Vue.config.safecheck.ApproveConfig.showmore
831
+ }
832
+ }
833
+ }
834
+
835
+ let backData = this.$parent.$parent.getAllDefect()
836
+ // 对隐患信息进行遍历
837
+ let res = JSON.parse(backData.f_defect_content)
838
+ this.printContent.push({
839
+ type: 3,
840
+ text: '安检结果:' + res.result,
841
+ fontsize: 2,
842
+ isbold: false,
843
+ align: 'left'
844
+ })
845
+ this.printContent.push({
846
+ type: 3,
847
+ text: '*******************************',
848
+ fontsize: 3,
849
+ isbold: false,
850
+ align: 'center'
851
+ })
852
+
853
+
854
+ if (showmore) {
855
+ //全部打印
856
+ for (let dev in this.$parent.$parent.config) {
857
+ for (let device in backData) {
858
+ if (device.startsWith("device")) {
859
+ for (let item in backData[device]) {
860
+ //遍历结果
861
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
862
+ let error = true
863
+ for (let i in backData[device][item].f_items) {
864
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
865
+ error = false
866
+ }
867
+ }
868
+ if (error) {
869
+ this.printContent.push({
870
+ type: 3,
871
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
872
+ fontsize: 2,
873
+ isbold: false,
874
+ align: 'left'
875
+ })
876
+ } else {
877
+ this.printContent.push({
878
+ type: 3,
879
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
880
+ fontsize: 2,
881
+ isbold: true,
882
+ align: 'left'
883
+ })
884
+ }
885
+
886
+ for (let i in backData[device][item].f_items) {
887
+ if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
888
+ this.printContent.push({
889
+ type: 3,
890
+ text: backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
891
+ fontsize: 2,
892
+ isbold: false,
893
+ align: 'left'
894
+ })
895
+ }
896
+ }
897
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
898
+ }
899
+ }
900
+ }
901
+ }
902
+ }
903
+
904
+ for (let dev in this.$parent.$parent.config) {
905
+ for (let device in backData) {
906
+ if (device.startsWith("device")) {
907
+ for (let item in backData[device]) {
908
+ //遍历结果
909
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
910
+ let error = true
911
+ for (let i in backData[device][item].f_items) {
912
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
913
+ error = false
914
+ }
915
+ }
916
+ if (!error) {
917
+ this.printContent.push({
918
+ type: 3,
919
+ text: '隐患:',
920
+ fontsize: 2,
921
+ isbold: true,
922
+ align: 'left'
923
+ })
924
+ }
925
+ }
926
+ }
927
+ }
928
+ }
929
+ for (let device in backData) {
930
+ if (device.startsWith("device")) {
931
+ for (let item in backData[device]) {
932
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
933
+ for (let i in backData[device][item].f_items) {
934
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
935
+ this.printContent.push({
936
+ type: 3,
937
+ text: backData[device][item].f_items[i].f_item_name + ' ' + backData[device][item].f_items[i].f_item_value,
938
+ fontsize: 2,
939
+ isbold: true,
940
+ align: 'left'
941
+ })
942
+ }
943
+ }
944
+ }
945
+ }
946
+ }
947
+ }
948
+
949
+ }
950
+ } else {
951
+ for (let dev in this.$parent.$parent.config) {
952
+ for (let device in backData) {
953
+ if (device.startsWith("device")) {
954
+ for (let item in backData[device]) {
955
+ //遍历结果
956
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
957
+ let error = true
958
+ for (let i in backData[device][item].f_items) {
959
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
960
+ error = false
961
+ }
962
+ }
963
+ if (error) {
964
+ this.printContent.push({
965
+ type: 3,
966
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
967
+ fontsize: 2,
968
+ isbold: false,
969
+ align: 'left'
970
+ })
971
+ } else {
972
+ this.printContent.push({
973
+ type: 3,
974
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
975
+ fontsize: 2,
976
+ isbold: false,
977
+ align: 'left'
978
+ })
979
+ }
980
+
981
+ for (let i in backData[device][item].f_items) {
982
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
983
+ this.printContent.push({
984
+ type: 3,
985
+ text: '隐患:' + backData[device][item].f_items[i].f_item_name + backData[device][item].f_items[i].f_item_value,
986
+ fontsize: 2,
987
+ isbold: false,
988
+ align: 'left'
989
+ })
990
+ }
991
+ }
992
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
993
+ }
994
+ }
995
+ }
996
+ }
997
+ }
998
+ }
999
+ },
1000
+ //获取当前时间
1001
+ getNowFormatDate() {
1002
+ var date = new Date();
1003
+ var seperator1 = "-";
1004
+ var seperator2 = ":";
1005
+ var month = date.getMonth() + 1;
1006
+ var strDate = date.getDate();
1007
+ if (month >= 1 && month <= 9) {
1008
+ month = "0" + month;
1009
+ }
1010
+ if (strDate >= 0 && strDate <= 9) {
1011
+ strDate = "0" + strDate;
1012
+ }
1013
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1014
+ + " " + date.getHours() + seperator2 + date.getMinutes()
1015
+ + seperator2 + date.getSeconds();
1016
+ return currentdate;
1017
+ },
1018
+ readRepair() {
1019
+ let url = this.$androidUtil.getProxyUrl()
1020
+ let gen = getRepairs(this, url)
1021
+ return co(gen)
1022
+ },
1023
+ showToRepair() {
1024
+ let res = this.hasDefect()
1025
+ ////tag
1026
+ ////tag
1027
+ if (res == '正常') {
1028
+ this.showrepair = false
1029
+ } else {
1030
+ this.showrepair = true
1031
+ this.assignObj()
1032
+ }
1033
+ this.showCheckToRepair = !this.showCheckToRepair
1034
+ },
1035
+ // 选中部门
1036
+ reres(val) {
1037
+ if (val.res == undefined) {
1038
+ return
1039
+ }
1040
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
1041
+ this.$parent.$parent.model.f_meetunit = val.res
1042
+ this.$parent.$parent.model.f_orgstr = val.resids
1043
+ var arr = val.res.split('.')
1044
+ this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
1045
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
1046
+ },
1047
+ assignObj() {
1048
+ this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
1049
+ this.$parent.$parent.model.f_user_name = this.paper.f_user_name
1050
+ this.$parent.$parent.model.f_address = this.paper.f_address
1051
+ this.$parent.$parent.model.f_user_type = this.paper.f_check_type
1052
+ this.$parent.$parent.model.f_street = this.paper.f_street
1053
+ this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
1054
+ this.$parent.$parent.model.f_building = this.paper.f_building
1055
+ this.$parent.$parent.model.f_unit = this.paper.f_unit
1056
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
1057
+ this.$parent.$parent.model.f_room = this.paper.f_room
1058
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
1059
+ this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
1060
+ this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
1061
+ },
1062
+ hasDefect() {
1063
+ let checkResult = '正常'
1064
+ let codata = JSON.parse(JSON.stringify(this.paper))
1065
+ for (let device in this.paper) {
1066
+ if (device.startsWith("device")) {
1067
+ for (let item in this.paper[device]) {
1068
+ for (let i in this.paper[device][item].f_items) {
1069
+ let items = this.paper[device][item].f_items[i]
1070
+ ////tag
1071
+ if (items.f_is_defect == true || items.f_is_defect == 'true') {
1072
+ checkResult = '有隐患'
1073
+ }
1074
+ }
1075
+ }
1076
+ }
1077
+ }
1078
+ return checkResult
1079
+ },
1080
+ uploadPaper() {
1081
+ if (this.showrepair) {
1082
+ ////tag
1083
+ ////tag
1084
+ ////tag
1085
+ ////tag
1086
+
1087
+ if (this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1088
+ this.$showMessage("请选择维修员!")
1089
+ return
1090
+ }
1091
+ if (this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)) {
1092
+ this.$showMessage("请选择站点!")
1093
+ return
1094
+ }
1095
+ if (this.$parent.$parent.model.f_repairtype == '') {
1096
+ this.$showMessage("请选择报修类型!")
1097
+ return
1098
+ }
1099
+ this.$parent.$parent.isToRepair = true
1100
+ this.$parent.$parent.uploadCheckPaper()
1101
+ // this.$parent.$parent.savePaper(false).then((res) => {
1102
+ // ////tag
1103
+ // if(res != true){
1104
+ // ////tag
1105
+ // return
1106
+ // }else{
1107
+ // this.$parent.$parent.todo()
1108
+ // }
1109
+ // })
1110
+ } else {
1111
+ this.$parent.$parent.undo()
1112
+ }
1113
+
1114
+ },
1115
+ //确认安检转维修
1116
+
1117
+ undo() {
1118
+ this.showCheckToRepair = !this.showCheckToRepair
1119
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
1120
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
1121
+ this.$parent.$parent.model.f_repairtype = ''
1122
+ this.meading = '转站点'
1123
+ },
1124
+ //取消拉黑
1125
+ async deletebacklist() {
1126
+ if (!this.deletecause) {
1127
+ this.$showMessage("请填写取消拉黑原因!")
1128
+ return
1129
+ }
1130
+ this.paper.f_blocking_cause = this.deletecause
1131
+ ////tag)
1132
+ let http = new HttpResetClass()
1133
+ ////tag
1134
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1135
+ data: {
1136
+ items: "version",
1137
+ tablename: "t_userinfo",
1138
+ condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1139
+ orderitem: "f_userinfo_id"
1140
+ }
1141
+ }, {resolveMsg: null, rejectMsg: null})
1142
+ ////tag)
1143
+ ////tag
1144
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1145
+ data: {
1146
+ "f_operat_type": "取消拉黑",
1147
+ "f_state": "有效",
1148
+ "f_user_name": this.paper.f_user_name,
1149
+ "f_comments": this.paper.f_blocking_cause,
1150
+ "f_operator": Vue.user.name,
1151
+ "f_operatorid": Vue.user.id,
1152
+ "f_orgid": Vue.user.orgid,
1153
+ "f_orgname": Vue.user.orgs,
1154
+ "f_depid": Vue.user.depids,
1155
+ "f_depname": Vue.user.deps,
1156
+ "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行取消拉黑`,
1157
+ "f_userinfo_id": {
1158
+ "f_userinfo_id": this.paper.f_userinfoid,
1159
+ "f_user_state": "正常",
1160
+ "version": res1.data[0].version
1161
+ },
1162
+ "f_limit_times":"",
1163
+ "f_limit_value":""
1164
+ }
1165
+ }, {resolveMsg: null, rejectMsg: null})
1166
+
1167
+ ////tag)
1168
+ if (res2.data.code == 200) {
1169
+ this.showmodelthree = false
1170
+ this.deleteenabled = true
1171
+ this.paper.f_blacklist = "否"
1172
+ this.$showMessage("取消该用户限制购气成功!")
1173
+ } else {
1174
+ this.$showMessage("网络异常,请稍后再试!")
1175
+ }
1176
+ },
1177
+ async backlist() {
1178
+ if (!this.cause) {
1179
+ this.$showMessage("请填写拉黑原因!")
1180
+ return
1181
+ }
1182
+ this.paper.f_blocking_cause = this.cause
1183
+ ////tag)
1184
+ let http = new HttpResetClass()
1185
+ ////tag
1186
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1187
+ data: {
1188
+ items: "version",
1189
+ tablename: "t_userinfo",
1190
+ condition: "f_userinfo_id=" + this.paper.f_userinfoid,
1191
+ orderitem: "f_userinfo_id"
1192
+ }
1193
+ }, {resolveMsg: null, rejectMsg: null})
1194
+ ////tag)
1195
+ ////tag
1196
+ let limit_times=1
1197
+ let limit_value=3
1198
+ if(Vue.config.safecheck && Vue.config.safecheck.ApproveConfig.limit_times && Vue.config.safecheck.ApproveConfig.limit_value){
1199
+ limit_times = Vue.config.safecheck.ApproveConfig.limit_times
1200
+ limit_value = Vue.config.safecheck.ApproveConfig.limit_value
1201
+ }
1202
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
1203
+ data: {
1204
+ data:this.$parent.$parent.data,
1205
+ item:this.$parent.$parent.data.item,
1206
+ "f_operat_type": "拉黑",
1207
+ "f_state": "有效",
1208
+ "f_user_name": this.paper.f_user_name,
1209
+ "f_comments": this.paper.f_blocking_cause,
1210
+ "f_operator": Vue.user.name,
1211
+ "f_operate_date":Util.toStandardTimeString(),
1212
+ "f_operatorid": Vue.user.id,
1213
+ "f_orgid": Vue.user.orgid,
1214
+ "f_orgname": Vue.user.orgs,
1215
+ "f_depid": Vue.user.depids,
1216
+ "f_depname": Vue.user.deps,
1217
+ "f_describe": `${Vue.user.name}对用户${this.paper.f_user_name}进行拉黑`,
1218
+ "f_userinfo_id": {
1219
+ "f_userinfo_id": this.paper.f_userinfoid
1220
+ },
1221
+ "f_limit_times":limit_times,
1222
+ "f_limit_value":limit_value,
1223
+ "f_limit_amount":'',
1224
+ 'f_limit_type':'气量'
1225
+ }
1226
+ }, {resolveMsg: null, rejectMsg: null})
1227
+
1228
+ ////tag)
1229
+ if (res2.data.code == 200) {
1230
+ this.showmodel = false
1231
+ this.enabled = true
1232
+ this.paper.f_blacklist = "是"
1233
+ this.$showMessage("将该用户限制购气成功!")
1234
+ } else if (res2.data.msg == '数据增加重复') {
1235
+ this.showmodel = false
1236
+ this.enabled = true
1237
+ this.$showMessage("该用户已被限制购气,请勿重复提交!")
1238
+ } else {
1239
+ this.$showMessage("网络异常,请稍后再试!")
1240
+ }
1241
+ },
1242
+ cancel() {
1243
+ this.backlistisselect = false
1244
+ this.showmodel = false
1245
+ },
1246
+ deletecancel() {
1247
+ this.deletebacklistisselect = false
1248
+ this.showmodelthree = false
1249
+ },
1250
+ repiarmancg(val) {
1251
+ if (val) {
1252
+ ////tag
1253
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
1254
+ let http1 = new HttpResetClass()
1255
+ http1.load('POST', `${this.Url}/rs/sql/tel_singleTable_OrderBy`, {
1256
+ data: {
1257
+ items: 'f_user_telephone',
1258
+ tablename: 't_user',
1259
+ condition: `name = '${val}'`,
1260
+ orderitem: 'id'
1261
+ }
1262
+ }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
1263
+ this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
1264
+ })
1265
+ }
1266
+ },
1267
+ },
1268
+ async ready() {
1269
+ this.isRecodr = this.$appdata.getSingleValue('无限制录音')
1270
+ this.isvideo = this.$appdata.getSingleValue('安检录视频')
1271
+ if(this.$appdata.getSingleValue('安检时显示拉黑')){
1272
+ this.showbacklist = this.$appdata.getSingleValue('安检时显示拉黑');
1273
+ }
1274
+ // await this.isoverDate()
1275
+ ////tag
1276
+ ////tag
1277
+ ////tag)
1278
+ ////tag))
1279
+ if (this.$parent.$parent.role == 'repair') {
1280
+ this.$set('style__', 'divmask')
1281
+ this.$set('style_view_', '')
1282
+ } else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
1283
+ this.$set('style__', 'divmask')
1284
+ this.$set('style_view_', 'divmask')
1285
+ ////tag
1286
+ } else {
1287
+ this.$set('style__', '')
1288
+ this.$set('style_view_', '')
1289
+ }
1290
+
1291
+ for (let item of this.radios) {
1292
+ if (this.paper.f_client_evaluation == item.label) {
1293
+ item.isChecked = true;
1294
+ }
1295
+ }
1296
+ if (!this.paper.f_notified_path)
1297
+ this.$set('paper.f_notified_path', Vue.nopic)
1298
+ if (!this.paper.f_sign_path)
1299
+ this.$set('paper.f_sign_path', Vue.nopic)
1300
+ ////tag
1301
+ if (!this.paper.f_overall_imgs) {
1302
+ let imgs = []
1303
+ // imgs.push({f_overall_path:Vue.nopic})
1304
+ this.$set('paper.f_overall_imgs', imgs)
1305
+ ////tag
1306
+ }
1307
+ if (!this.paper.f_overall2_path)
1308
+ this.$set('paper.f_overall2_path', Vue.nopic)
1309
+
1310
+ this.userid = this.role == 'view' ? this.$login.f.id : Vue.user.id
1311
+ if (Vue.config.safecheck != undefined) {
1312
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1313
+ if (Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
1314
+ this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
1315
+ }
1316
+ }
1317
+ }
1318
+ let device = this.$parent.$parent.data
1319
+ for (const deviceitem in device) {
1320
+ if (deviceitem.startsWith('device')){
1321
+ //tag)
1322
+ if(device[deviceitem].length == 0){
1323
+ continue
1324
+ }
1325
+ let items = device[deviceitem][0].f_items
1326
+ let deviceType = device[deviceitem][0].f_device_type
1327
+ for (let i = 0; i < items.length; i++) {
1328
+ if (items[i].f_is_defect){
1329
+ let reason = items[i].f_item_name+":"
1330
+ if (items[i].type === 'selector' || items[i].type === 'radio' || items[i].type === 'checkbox'){
1331
+ for (let j = 0; j < items[i].f_item_value.length; j++) {
1332
+ if (j+1 === items[i].f_item_value.length){
1333
+ reason += items[i].f_item_value[j]
1334
+ }else{
1335
+ reason += items[i].f_item_value[j] + ","
1336
+ }
1337
+ }
1338
+ }else{
1339
+ reason += items[i].f_item_value
1340
+ }
1341
+ if (items[i].f_path){
1342
+ this.defectImgs.push(items[i].f_path)
1343
+ }
1344
+ if (items[i].f_p1_path){
1345
+ this.defectImgs.push(items[i].f_p1_path)
1346
+ }
1347
+ if (items[i].f_p2_path){
1348
+ this.defectImgs.push(items[i].f_p2_path)
1349
+ }
1350
+ if (items[i].f_p3_path){
1351
+ this.defectImgs.push(items[i].f_p3_path)
1352
+ }
1353
+ if (items[i].tooltip){
1354
+ this.defectToolTip.push(items[i].tooltip)
1355
+ }
1356
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1357
+ }else if(items[i].type === 'errorstring' && items[i].f_item_value ){
1358
+ let reason = items[i].f_item_name+":" + items[i].f_item_value
1359
+ this.defectReason.push({device:deviceType,deviceitem:reason})
1360
+ }
1361
+
1362
+ }
1363
+ }
1364
+ }
1365
+ ////tag
1366
+ ////tag
1367
+ //tag
1368
+ ////tag
1369
+ //tag)
1370
+ //tag)
1371
+ //tag)
1372
+ ////tag
1373
+ ////tag
1374
+ ////tag
1375
+ },
1376
+ watch: {
1377
+ '$parent.$parent.isUpload'(val) {
1378
+ ////tag
1379
+ },
1380
+ 'meading'(val) {
1381
+ ////tag
1382
+ this.$parent.$parent.meading = val
1383
+ },
1384
+ 'backlistisselect'(val) {
1385
+ if (val == true) {
1386
+ this.showmodel = true
1387
+ this.deletebacklistisselect=false
1388
+ }
1389
+ },
1390
+ 'deletebacklistisselect'(val) {
1391
+ if (val == true) {
1392
+ this.showmodelthree = true
1393
+ this.backlistisselect=false
1394
+ }
1395
+ },
1396
+ 'isRecodr'(val) {
1397
+ if (val == 'false' || val == undefined || val == null || val == '' || val == 'undefined') {
1398
+ this.isRecodr = "false";
1399
+ }
1400
+ }
1401
+ }
1402
+ }
1403
+ </script>
1404
+ <style scoped>
1405
+ .panel-self{
1406
+ border-radius: 5px;
1407
+ border:1px solid #c5e1f7;
1408
+ background-color: #F2F6FA;
1409
+ }
1410
+ .text-left{
1411
+ text-align:left;
1412
+ }
1413
+ .font{
1414
+ font: 15px PingFang-SC-Medium;
1415
+ color: #333333;
1416
+ }
1417
+ .showIi{
1418
+ font: 14px PingFang-SC-Medium;
1419
+ color: #666666;
1420
+ }
1421
+ .info{
1422
+ margin-top: 15px;
1423
+ border-radius: 5px;
1424
+ background-color: #f3faff;
1425
+ }
1426
+ .btn-photo{
1427
+ border: 0;
1428
+ border-radius: 7px;
1429
+ background-color: #7dc1f4;
1430
+ font: 15px PingFang-SC-Bold;
1431
+ height: 20%;
1432
+ }
1433
+ .div-photo{
1434
+ width: auto;
1435
+ height: auto;
1436
+ /* margin-top: 10px; */
1437
+ position: absolute;
1438
+ bottom: 10px;
1439
+ right: 10px;
1440
+ }
1441
+ .btn-voice{
1442
+ border-radius: 7px;
1443
+ border: 1px solid #dedede;
1444
+ background-color: #f5fbff;
1445
+ font: 15px PingFang-SC-Bold;
1446
+ color: #499edf;
1447
+ }
1448
+ .save-btn{
1449
+ width: 25%;
1450
+ background-color:#499edf;
1451
+ border-radius: 6px;
1452
+ color: #FFFFFF;
1453
+ font: 15px PingFang-SC-Bold;
1454
+ }
1455
+ .upload-btn{
1456
+ width: 25%;
1457
+ background-color:#ffffff;
1458
+ border: 1px solid #499edf;
1459
+ border-radius: 6px;
1460
+ color: #499edf;
1461
+ font: 15px PingFang-SC-Bold;
1462
+ }
1463
+ .repair-btn{
1464
+ width: 25%;
1465
+ border: 1px solid #499edf;
1466
+ border-radius: 6px;
1467
+ font: 15px PingFang-SC-Bold;
1468
+ }
1469
+ #el_ca_tx{
1470
+ width: 100%;
1471
+ margin: 5px;
1472
+ }
1473
+ #el_ca_txt{
1474
+ width: 100%;
1475
+ margin: 5px;
1476
+ }
1477
+ </style>