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