safecheck-client 3.0.35-41 → 3.0.35-42

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