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