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