safecheck-client 3.0.35-5 → 3.0.35-50

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