safecheck-client 4.0.1-61 → 4.0.1-62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/package.json +1 -1
  2. package/src/App.vue +31 -31
  3. package/src/components/CheckerCount/CheckCountUserList.vue +144 -144
  4. package/src/components/DefectDealMain/DefectListNew.vue +642 -642
  5. package/src/components/NewDefectList/DefectListNew.vue +682 -682
  6. package/src/components/android/AddPlanItem.vue +447 -447
  7. package/src/components/android/AddPlanItemYy.vue +451 -451
  8. package/src/components/android/AddSpecialPlanItem.vue +426 -426
  9. package/src/components/android/AndroidDefectDeal.vue +667 -667
  10. package/src/components/android/CurrentCreateYy.vue +1051 -1051
  11. package/src/components/android/DailyworkloadQuery.vue +473 -473
  12. package/src/components/android/Devices.vue +327 -327
  13. package/src/components/android/Devicesm.vue +327 -327
  14. package/src/components/android/NewCheckpaperAndroid.vue +1343 -1343
  15. package/src/components/android/PaperFeedbackm.vue +1026 -1026
  16. package/src/components/android/PhoneRecordInfo.vue +113 -113
  17. package/src/components/android/PhoneSellInfo.vue +113 -113
  18. package/src/components/android/PhoneUpDetail.vue +1040 -1040
  19. package/src/components/android/QRCode/QRCodeBinding.vue +300 -300
  20. package/src/components/android/QRCode/QRCodePage.vue +212 -212
  21. package/src/components/android/SafePlanItem.vue +509 -509
  22. package/src/components/android/examples/SafeListExamples.vue +296 -296
  23. package/src/components/android/old/PaperFeedback.vue +1015 -1015
  24. package/src/components/android/recheck/Recheck.vue +402 -402
  25. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  26. package/src/components/checkplan/checkmsg.vue +459 -459
  27. package/src/components/defect/DefectList.vue +507 -507
  28. package/src/components/defect/DefectListWeixiu.vue +484 -484
  29. package/src/components/filialCircle/CircleList.vue +139 -139
  30. package/src/components/inspections/AddInspectPlanItem.vue +325 -325
  31. package/src/components/inspections/AddInspectPlanItems.vue +325 -325
  32. package/src/components/inspections/AddInspectPlanItemss.vue +317 -317
  33. package/src/components/inspections/DisplayInspectionList.vue +1224 -1224
  34. package/src/components/inspections/inspectionOrderV.vue +1853 -1853
  35. package/src/components/inspections/inspectionOrderVs.vue +1853 -1853
  36. package/src/components/inspections/inspectionOrderVss.vue +1856 -1856
  37. package/src/components/inspections/inspectionUserInfo.vue +398 -398
  38. package/src/components/map/PersonTrack.vue +226 -226
  39. package/src/components/paper/RegionalList.vue +220 -220
  40. package/src/components/pc/AnnouncementPC.vue +524 -524
  41. package/src/components/pc/DefectList.vue +742 -742
  42. package/src/components/pc/DefectMaterialLook.vue +98 -98
  43. package/src/components/pc/DeviceChange.vue +1068 -1068
  44. package/src/components/pc/PaperDefectMain.vue +905 -905
  45. package/src/components/pc/SafeVisitInfo.vue +261 -261
  46. package/src/components/report/HiddenSituation.vue +165 -165
  47. package/src/components/rongcheng/AspiratedOrderV.vue +2377 -2377
  48. package/src/components/rongcheng/CurrentCreateOnline.vue +906 -906
  49. package/src/components/rongcheng/DefectList.vue +560 -560
  50. package/src/components/rongcheng/SafecheckOrderVCli.vue +2641 -2641
  51. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -419
  52. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -1050
  53. package/src/components/safecheckNew/android/Recheck.vue +379 -379
  54. package/src/components/sendsingle/EquipmentManagement.vue +727 -727
  55. package/src/components/shaoguan/DefectList.vue +473 -473
  56. package/src/components/shaoguan/SafecheckOrderV.vue +2140 -2140
  57. package/src/components/tongcheng/PaperFeedback.vue +1061 -1061
  58. package/src/components/userfile/SecurityAudit.vue +243 -243
  59. package/src/filiale/ALshan/pc/DefectListWeixiu.vue +476 -476
  60. package/src/filiale/ancheng/android/SafecheckOrderV.vue +2703 -2703
  61. package/src/filiale/ancheng/android/SafecheckUserInfo.vue +737 -737
  62. package/src/filiale/ancheng/pc/checkScreen.vue +923 -923
  63. package/src/filiale/ankangyihua/android/AddPlanItem.vue +446 -446
  64. package/src/filiale/ankangyihua/android/SafecheckOrderV.vue +2908 -2908
  65. package/src/filiale/ankangyihua/pc/DefectListWeixiu.vue +491 -491
  66. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  67. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  68. package/src/filiale/bayan/android/Edit.vue +132 -132
  69. package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
  70. package/src/filiale/bayan/pc/DeviceChange.vue +1838 -1838
  71. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  72. package/src/filiale/dexin/android/CasualSave.vue +1050 -1050
  73. package/src/filiale/dexin/android/SafecheckOrderV.vue +2950 -2950
  74. package/src/filiale/fugou/android/AddPlanItem.vue +413 -413
  75. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -2796
  76. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +830 -830
  77. package/src/filiale/fugu/android/SafecheckOrderV.vue +2484 -2484
  78. package/src/filiale/fugu/pc/NewCheckpaper.vue +1287 -1287
  79. package/src/filiale/ganquan/android/AddPlanItem.vue +444 -444
  80. package/src/filiale/ganquan/android/SafecheckOrderV.vue +2485 -2485
  81. package/src/filiale/ganquan/pc/NewCheckpaper.vue +1354 -1354
  82. package/src/filiale/guangxi/pc/DefectListNew.vue +518 -518
  83. package/src/filiale/hanzhong/android/SafecheckOrderV.vue +2683 -2683
  84. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  85. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -2803
  86. package/src/filiale/huatong/android/SafecheckOrderV.vue +2426 -2426
  87. package/src/filiale/huatong/android/SafecheckUserInfo.vue +749 -749
  88. package/src/filiale/huayin/pc/NewCheckpaper.vue +1307 -1307
  89. package/src/filiale/jiaocheng/android/AddPlanItem.vue +435 -435
  90. package/src/filiale/jiaocheng/android/SafecheckUserInfo.vue +737 -737
  91. package/src/filiale/jiaocheng/pc/DefectListNew.vue +576 -576
  92. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -447
  93. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  94. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -784
  95. package/src/filiale/jinbin/pc/DefectListWeixiu.vue +478 -478
  96. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  97. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  98. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  99. package/src/filiale/kelai/android/AddPlanItem.vue +488 -488
  100. package/src/filiale/kelai/android/SafecheckUserInfo.vue +774 -774
  101. package/src/filiale/kelai/android/SafecheckUserInfo1.vue +618 -618
  102. package/src/filiale/kelai/pc/DefectListNew.vue +688 -688
  103. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasList.vue +518 -518
  104. package/src/filiale/kelai/pc/NewCheckpaper.vue +1454 -1454
  105. package/src/filiale/liaoyuan/android/AddPlanItem.vue +412 -412
  106. package/src/filiale/liaoyuan/android/CurrentCreate.vue +1066 -1066
  107. package/src/filiale/liaoyuan/android/SafecheckOrderV.vue +2388 -2388
  108. package/src/filiale/liaoyuan/android/SafecheckUserInfo.vue +557 -557
  109. package/src/filiale/liaoyuan/pc/DefectListWeixiu.vue +489 -489
  110. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +1020 -1020
  111. package/src/filiale/lixian/android/SafecheckOrderV.vue +2404 -2404
  112. package/src/filiale/lixian/android/SafecheckUserInfo.vue +578 -578
  113. package/src/filiale/lixian/pc/NewCheckpaper.vue +1211 -1211
  114. package/src/filiale/meihekou/android/AreaPlan.vue +577 -577
  115. package/src/filiale/meihekou/android/MeterReading.vue +110 -110
  116. package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +1307 -1307
  117. package/src/filiale/meihekou/android/SafecheckUserInfo.vue +785 -785
  118. package/src/filiale/meihekou/pc/NewCheckpaperTemp.vue +1288 -1288
  119. package/src/filiale/minsheng/android/SafecheckUserInfo.vue +754 -754
  120. package/src/filiale/minsheng/pc/DefectListNew.vue +535 -535
  121. package/src/filiale/pingxiang/android/SafecheckOrderV.vue +2424 -2424
  122. package/src/filiale/pingxiang/android/SafecheckUserInfo.vue +600 -600
  123. package/src/filiale/pingxiang/pc/DefectListNew.vue +519 -519
  124. package/src/filiale/pingxiang/pc/NewCheckpaper.vue +1294 -1294
  125. package/src/filiale/qianneng/android/AddPlanItem.vue +482 -482
  126. package/src/filiale/qianneng/android/SafecheckOrderV.vue +2785 -2785
  127. package/src/filiale/qianneng/android/SafecheckUserInfo.vue +775 -775
  128. package/src/filiale/qianneng/pc/DefectListNew.vue +576 -576
  129. package/src/filiale/qianneng/pc/NewCheckpaper.vue +1546 -1546
  130. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2844
  131. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  132. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1871 -1871
  133. package/src/filiale/qingjian/pc.js +15 -15
  134. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -450
  135. package/src/filiale/qingtongxia/android/SafecheckOrderV.vue +2726 -2726
  136. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -782
  137. package/src/filiale/qingtongxia/pc/DefectListNew.vue +594 -594
  138. package/src/filiale/rizhao/android/AddPlanItem.vue +446 -446
  139. package/src/filiale/rizhao/android/SafecheckOrderV.vue +2430 -2430
  140. package/src/filiale/rizhao/android/SafecheckUserInfo.vue +640 -640
  141. package/src/filiale/rizhao/pc/DefectList.vue +489 -489
  142. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  143. package/src/filiale/rongchuang/android/checkpapermsg.vue +209 -209
  144. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -2747
  145. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -804
  146. package/src/filiale/shanggao/android/SafecheckOrderV.vue +2426 -2426
  147. package/src/filiale/shanxian/android/SafecheckUserInfo.vue +749 -749
  148. package/src/filiale/shanxian/pc/HiddenSituation.vue +121 -121
  149. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  150. package/src/filiale/shexian/android/AddPlanItem.vue +444 -444
  151. package/src/filiale/shexian/android/SafecheckOrderV.vue +2879 -2879
  152. package/src/filiale/shexian/pc/DefectListNew.vue +593 -593
  153. package/src/filiale/shexian/pc/NewCheckpaper.vue +1469 -1469
  154. package/src/filiale/shimen/android/SafecheckUserInfo.vue +547 -547
  155. package/src/filiale/shimen/pc/DefectList.vue +473 -473
  156. package/src/filiale/shimen/pc/NewCheckpaper.vue +1275 -1275
  157. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  158. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -1051
  159. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -214
  160. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -2796
  161. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  162. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -167
  163. package/src/filiale/taiyuan/pc/DefectDeal.vue +1033 -1033
  164. package/src/filiale/taiyuan/pc/NewCheckpaper.vue +1976 -1976
  165. package/src/filiale/taiyuan/pc/PlanManage.vue +891 -891
  166. package/src/filiale/taiyuan/pc/checkUserList.vue +798 -798
  167. package/src/filiale/taiyuan/pc.js +15 -15
  168. package/src/filiale/tianke/android/AddPlanItem.vue +455 -455
  169. package/src/filiale/tianke/android/SafecheckOrderV.vue +2431 -2431
  170. package/src/filiale/tianke/android/SafecheckUserInfo.vue +744 -744
  171. package/src/filiale/tongchuan/android/AddPlanItem.vue +483 -483
  172. package/src/filiale/tongchuan/android/PhoneRecordInfo.vue +191 -191
  173. package/src/filiale/tongchuan/android/PhoneSellInfo.vue +113 -113
  174. package/src/filiale/tongchuan/android/SafecheckUserInfo.vue +720 -720
  175. package/src/filiale/tongchuan/pc/CheckBookDetails.vue +209 -209
  176. package/src/filiale/tongchuan/pc/DefectListWeixiu.vue +484 -484
  177. package/src/filiale/tongchuan/pc/HiddenSituation.vue +166 -166
  178. package/src/filiale/weinan/android/AddPlanItem.vue +438 -438
  179. package/src/filiale/weinan/android/CurrentCreate.vue +1171 -1171
  180. package/src/filiale/weinan/android/CurrentCreateOnline.vue +911 -911
  181. package/src/filiale/weinan/android/SafePlanItem.vue +440 -440
  182. package/src/filiale/weinan/android/SafecheckUserInfo.vue +778 -778
  183. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  184. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -1088
  185. package/src/filiale/weinan/pc/HiddenSituation.vue +167 -167
  186. package/src/filiale/weinan/pc/checkScreen.vue +1094 -1094
  187. package/src/filiale/weinanct/android/SafecheckOrderV.vue +2730 -2730
  188. package/src/filiale/weinanct/pc/NewCheckpaper.vue +1315 -1315
  189. package/src/filiale/wensu/android/AddPlanItem.vue +495 -495
  190. package/src/filiale/wensu/android/AndroidDefectDeal.vue +464 -464
  191. package/src/filiale/wensu/android/PaperFeedback.vue +1358 -1358
  192. package/src/filiale/wensu/android/SafecheckOrderV.vue +2430 -2430
  193. package/src/filiale/wensu/android/SafecheckUserInfo.vue +627 -627
  194. package/src/filiale/wensu/pc/DefectListNew.vue +735 -735
  195. package/src/filiale/wenxi/android/AddPlanItem.vue +431 -431
  196. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2671 -2671
  197. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +673 -673
  198. package/src/filiale/wenxi/pc/DefectList.vue +653 -653
  199. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1358 -1358
  200. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2241
  201. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -596
  202. package/src/filiale/wuan/pc/DefectListWeixiu.vue +506 -506
  203. package/src/filiale/wuan/pc/NewCheckpaper.vue +1169 -1169
  204. package/src/filiale/wuhai/android/SafecheckOrderV.vue +2456 -2456
  205. package/src/filiale/wuhai/android/SafecheckUserInfo.vue +573 -573
  206. package/src/filiale/wuhai/pc/NewCheckpaper.vue +1281 -1281
  207. package/src/filiale/xiangyuanzhongai/android/PhoneUpUserinfo.vue +1251 -1251
  208. package/src/filiale/xinkang/android/AddPlanItem.vue +447 -447
  209. package/src/filiale/xinkang/android/AndroidDefectDeal.vue +450 -449
  210. package/src/filiale/xinkang/pc/CheckSearchUser.vue +1026 -1026
  211. package/src/filiale/xinkang/pc/DefectListWeixiu.vue +475 -475
  212. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +496 -496
  213. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2865 -2865
  214. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  215. package/src/filiale/yangchunboneng/pc/DefectListNew.vue +576 -576
  216. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  217. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  218. package/src/filiale/yuansheng/android/SafecheckOrderV.vue +2758 -2758
  219. package/src/filiale/yuansheng/android/SafecheckUserInfo.vue +797 -797
  220. package/src/filiale/yuansheng/pc/DefectListNew.vue +524 -524
  221. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +1371 -1371
  222. package/src/filiale/yuansheng/pc/checkmsg.vue +464 -464
  223. package/src/filiale/yunchengminsheng/android/DailyworkloadQuery.vue +491 -491
  224. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1509 -1509
  225. package/src/filiale/yunchengminsheng/android/PhoneSellInfo.vue +113 -113
  226. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  227. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +785 -785
  228. package/src/filiale/yunchengminsheng/android.js +15 -15
  229. package/src/filiale/yunchengminsheng/pc/PaperList.vue +811 -811
  230. package/src/filiale/yunchengminsheng/pc.js +15 -15
  231. package/src/filiale/zhongsheng/android/BuyRecords.vue +122 -122
  232. package/src/filiale/zhongsheng/android/SafecheckOrderV.vue +2461 -2461
  233. package/src/filiale/zhongsheng/android/SafecheckUserInfo.vue +690 -690
  234. package/src/filiale/zhongsheng/pc/DefectListWeixiu.vue +514 -514
  235. package/src/filiale/zhongsheng/pc/NewCheckpaper.vue +1322 -1322
  236. package/src/filiale/zhongyi/android/SafecheckOrderV.vue +2431 -2431
  237. package/src/filiale/zhongyi/pc/DefectListNew.vue +514 -514
  238. package/src/filiale/zhoukou/android/SafecheckOrderV.vue +2502 -2502
  239. package/src/filiale/zhoukou/android/SafecheckUserInfo.vue +588 -588
  240. package/src/main.js +33 -32
  241. package/src/safecheck.js +924 -924
@@ -1,1061 +1,1061 @@
1
- <template>
2
- <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
- <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
4
- <div class="text-center">
5
- <label class="font">总体安检照片请依次拍摄:</label>
6
- </div>
7
- <div class="col-md-12 col-sm-12 col-xs-12">
8
- <ol class="showIi">
9
- <li>1.燃气设施全景</li>
10
- <li>2.燃气表照片</li>
11
- <li>3.灶具照片</li>
12
- <li>4.其他照片</li>
13
- </ol>
14
- </div>
15
- </div>
16
- <div class="form-group col-sm-12" :class="style__">
17
- <label class="text-left font">总体安检照片</label>
18
-
19
- <div class="auto" :class="style__">
20
- <div class="panel" style="padding: 10px 10px 5px 10px;">
21
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
22
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
23
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
24
- <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
25
- <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
26
- </div>
27
- </div>
28
- <div class="row text-right div-photo">
29
- <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
30
- <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
31
- <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
32
- </div>
33
- </div>
34
- </div>
35
- </div>
36
- </div>
37
-
38
- <!--<div class="form-group col-sm-12">-->
39
- <!--<label class="text-left font">总体安检照片2</label>-->
40
- <!--<div class="auto">-->
41
- <!--<div class="panel">-->
42
- <!--<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">-->
43
- <!--<div class="row" style="height: 240px;overflow: scroll;top: 1px">-->
44
- <!--<div class="col-sm-4">-->
45
- <!--<img-self :src="paper.f_overall2_path" alt="总体安检照片2" width="150" height="200"></img-self>-->
46
- <!--</div>-->
47
- <!--</div>-->
48
- <!--<div class="row text-right div-photo">-->
49
- <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall2_path', '总体安检照片2')">拍照</button>-->
50
- <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall2_path', paper.f_overall2_path)" style="width: 25%;"></img>-->
51
- <!--</div>-->
52
- <!--</div>-->
53
- <!--</div>-->
54
- <!--</div>-->
55
- <!--</div>-->
56
- <div class="form-group col-sm-12" :class="style__">
57
- <label class="text-left font">用户签名</label>
58
- <div class="auto">
59
- <div class="panel">
60
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
61
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
62
- <div class="col-sm-4">
63
- <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
64
- </div>
65
- </div>
66
- <div class="row text-right div-photo">
67
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
68
- </div>
69
- </div>
70
- </div>
71
- </div>
72
- </div>
73
-
74
- <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
75
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
76
- <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
77
- </div>
78
- <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
79
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
80
- <button type="button" @click="print()">打印隐患整改单</button>
81
- </div>
82
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
83
- <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
84
- <div class="auto" >
85
- <div class="panel" style="padding: 10px 10px 5px 10px;">
86
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
87
- <div class="row" style="height: 240px;overflow: scroll;top: 1px">
88
- <div class="col-sm-4">
89
- <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
90
- </div>
91
- </div>
92
- <div class="row text-right div-photo">
93
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
94
- &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>
95
- </div>
96
- </div>
97
- </div>
98
- </div>
99
- </div>
100
- </div>
101
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
102
- <div class="row">
103
- <label class="text-left">请对我们的服务做出评价:</label>
104
- </div>
105
- <div class="col-xs-4 col-sm-4" v-for="item in radios">
106
- <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
107
- </div>
108
-
109
- <!--<div class="col-sm-4">-->
110
- <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
111
- <!--<radio value="满意">满意</radio>-->
112
- <!--<radio value="基本满意">基本满意</radio>-->
113
- <!--<radio value="不满意">不满意</radio>-->
114
- <!--</radio-group>-->
115
- <!--</div>-->
116
- </div>
117
- <div class="form-group col-md-12 col-sm-12 col-xs-12">
118
- <label class="text-left font">反馈录音:</label>
119
- <div class="col-md-12 col-sm-12 col-xs-12">
120
- <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
121
- <img src="../../assets/录音.png" style="width: 14%;">
122
- <span v-if="!paper.f_recording1_path">开始录音</span>
123
- <span v-if="paper.f_recording1_path">已录音</span>
124
- </button>
125
- &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
126
- </div>
127
- </div>
128
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
129
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled" class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
130
- <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
131
- </div>
132
- <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
133
- <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
134
- <!--<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>-->
135
- </div>
136
- </form>
137
- <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">
138
- <div slot="modal-header" class="modal-header">
139
- <h4 class="modal-title">
140
- 安检转维修
141
- </h4>
142
- </div>
143
- <div slot="modal-body" class="modal-body">
144
- <div v-if="showrepair">
145
- <div class="row">
146
- <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>
147
- <div class="col-xs-8 col-md-8">
148
- <label v-for="handling1 in handling" >
149
- <input type="radio"
150
- v-model="meading"
151
- value="{{handling1.label}}">
152
- {{handling1.label}}
153
- </label>
154
- </div>
155
- </div>
156
- <div class="row" v-if="meading == '转站点'">
157
- <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>
158
- <!--<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"-->
159
- <!--v-validate:f_reciever='{ required: true }'>-->
160
- <div class="col-xs-8 col-md-8">
161
- <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
162
- </right-tree>
163
- </div>
164
- </div>
165
-
166
- <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">
167
- <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>
168
- <div class="col-xs-8">
169
- <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"
170
- :options='f_repair_person' placeholder='请选择维修员'
171
- close-on-select v-on:change="repiarmancg"></v-select>
172
- </div>
173
-
174
- </div>
175
- <div class="row" style="margin-top: 6px">
176
- <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>
177
- <div class="col-xs-8 col-md-8">
178
- <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"
179
- :options='repairstypes' placeholder='报修类型'
180
- close-on-select>
181
- </v-select>
182
- </div>
183
- </div>
184
-
185
- <div class="row" style="margin-top: 6px">
186
- <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
187
- <div class="col-xs-8 col-md-8">
188
- <input type="text" v-model="$parent.$parent.model.f_remarks"/>
189
- </div>
190
-
191
- </div>
192
-
193
- </div>
194
- <div v-if="!showrepair">
195
- 暂无隐患设备信息
196
- </div>
197
- </div>
198
- <div slot="modal-footer" class="modal-footer">
199
- <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>
200
- <button type="button" class="btn btn-default" @click="undo()">取消</button>
201
- </div>
202
- </modal>
203
- </template>
204
-
205
- <script>
206
- import Vue from 'vue'
207
- import * as Util from '../Util'
208
- import { HttpResetClass } from 'vue-client'
209
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
210
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
211
- import co from 'co'
212
-
213
- // let getRepairParam = function * (self){
214
- // let data = {
215
- // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
216
- // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
217
- // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
218
- // }, user: self.user, callObj: self.callObj
219
- // }
220
- // if(self.$parent.$parent.meading == '转维修员'){
221
- // data.toRepair = '一级派单'
222
- // }
223
- // data.$parent.$parent.model.f_attendant = data.loginUser.name
224
- // //tag
225
- // //tag
226
- // let res
227
- // let errString = self.$parent.$parent.errorVerify()
228
- // if(errString){
229
- // //tag
230
- // if (Vue.android)
231
- // self.undo()
232
- // this.$showMessage(errString)
233
- // return
234
- // } else {
235
- // if(self.role == 'inspect'){
236
- // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
237
- // this.$showMessage("请选择维修员!")
238
- // return
239
- // }
240
- // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
241
- // HostApp.alert()
242
- // this.$showMessage("请选择站点!")
243
- // return
244
- // }
245
- // if(self.$parent.$parent.model.f_repairtype == ''){
246
- // this.$showMessage("请选择报修类型!")
247
- // return
248
- // }
249
- // //tag)
250
- // let checkResult = '正常'
251
- // let options = [{"data": "已处理"},{"data": "未处理"}]
252
- // let value = ''
253
- // let codata = JSON.parse(JSON.stringify(self.paper))
254
- // for(let device in codata){
255
- // //tag)
256
- // let f_device_type
257
- // if(device.startsWith("device")){
258
- // for(let item in codata[device]) {
259
- // if(codata[device].length > 1 ){
260
- // let j = Number.parseInt(item)+1
261
- // f_device_type = `${codata[device][item].f_device_type}${j}`
262
- // }else{
263
- // f_device_type = codata[device][item].f_device_type
264
- // }
265
- // // //tag
266
- // let details = []
267
- // for(let i in codata[device][item].f_items){
268
- // let items = codata[device][item].f_items[i]
269
- // //tag
270
- // if(items.f_is_defect == true || items.f_is_defect == 'true'){
271
- // checkResult = '有隐患'
272
- // //tag
273
- // let res = yield self.$resetpost(`${self.Url}/api/af-safecheck/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
274
- // //tag)
275
- // self.$set('detail.f_defect_id', res.data[0].id)
276
- // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
277
- // self.$set('detail.type',items.type)
278
- // self.$set('detail.options',options)
279
- // details.push(JSON.parse(JSON.stringify(self.detail)))
280
- // }
281
- // if(items.type == 'selector'){
282
- // items.selected = ''
283
- // }
284
- // self.detail = {}
285
- // }
286
- // //tag
287
- // self.$set('defectDevice.f_type',f_device_type)
288
- // self.$set('defectDevice.details',details)
289
- // if(self.defectDevice.details.length >0 ){
290
- // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
291
- // }
292
- // self.defectDevice = {}
293
- // //tag
294
- // }
295
- // }
296
- // }
297
- // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
298
- //
299
- //
300
- // //tag)
301
- // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
302
- // //tag
303
- // //tag
304
- // //tag
305
- // if(res.code == 200){
306
- // self.$parent.$parent.isSafeCheckToRepair = true
307
- // self.undo()
308
- // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
309
- // //tag
310
- // self.$resetpost(`${self.Url}/api/af-safecheck/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
311
- // //tag
312
- // if(ret.data.code ==200){
313
- // //tag
314
- // self.$parent.$parent.$back()
315
- // }else{
316
- // self.$showMessage('安检转维修失败!')
317
- // }
318
- // }).catch(v=>{
319
- // //tag)
320
- // self.$showMessage('安检转维修失败!')
321
- // })
322
- // }else{
323
- // self.$showMessage('安检转维修失败!')
324
- // }
325
- // }
326
- // }
327
- // }
328
-
329
-
330
-
331
- let getRepairs = async function(self,url) {
332
- // 获取配置信息
333
- try {
334
- let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
335
- let repairs =[]
336
- let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
337
- res.data.forEach((item) => {
338
- repairs.push({label: item.name, value: item})
339
- })
340
- self.f_repair_person = repairs
341
- if(self.$parent.$parent.role == 'inspect'){
342
- let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
343
- if(res.code == 200){
344
- self.$parent.$parent.user = res.data[0]
345
- self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
346
- }
347
- }else{
348
- //tag
349
- self.$resetpost(`${self.Url}/api/af-safecheck/sql/getUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
350
- //tag
351
- if(res.data.length != 0){
352
- self.$parent.$parent.user = res.data[0]
353
- self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
354
- }
355
- })
356
- // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
357
- }
358
- } catch (error) {
359
- //tag
360
- }
361
- }
362
-
363
- export default {
364
- title: '用户反馈',
365
- data() {
366
- return {
367
- images:[],
368
- meading:this.$parent.$parent.meading,
369
- paper:this.$parent.$parent.data,
370
- printContent:[],
371
- upload_state: this.$parent.$parent.item.f_upload_state,
372
- radios:[
373
- {
374
- label: '满意',
375
- value: 0,
376
- isChecked: false,
377
- },
378
- {
379
- label: '基本满意',
380
- value:1,
381
- isChecked: false,
382
- },
383
- {
384
- label: '不满意',
385
- value:2,
386
- isChecked: false,
387
- },
388
- ],
389
- repairitems:[],
390
- repairstypes:this.$appdata.getParam('报修类型'),
391
- f_repair_person: this.readRepair(),
392
- showrepair: false,
393
- safeCheckToRepair:'',
394
- showCheckToRepair:false,
395
- userid: '',
396
- source:
397
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
398
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
399
- isback:false,
400
- defectDevice:{},
401
- detail:{},
402
- callObj:null,
403
- user:{},
404
- role:this.$parent.$parent.role,
405
- handling:[{label:'转站点',value:'转站点'},{label:'转维修员',value:'转维修员'}],
406
- Url:this.$androidUtil.getProxyUrl()
407
- }
408
- },
409
- props: ['idx'],
410
- components: {
411
- RadioGroup,
412
- Radio
413
- },
414
- methods: {
415
- check(index) {
416
- //tag
417
- // 先取消所有选中项
418
- for (let item of this.radios){
419
- item.isChecked = false;
420
- }
421
- //再设置当前点击项选中
422
- this.paper.f_client_evaluation = this.radios[index].label;
423
- // 设置值,以供传递
424
- this.radios[index].isChecked = true;
425
- //tag;
426
- },
427
- getSignValue(fileName) {
428
- this.f_signname = fileName
429
- },
430
- cameraCallBack(prop, fileName) {
431
- if(prop == 'f_overall_path'){
432
- let f_overall_path = fileName + '?' + Math.random()
433
- HostApp.__this__.paper.f_overall_imgs.push({
434
- f_overall_path:f_overall_path
435
- })
436
- }else{
437
- HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
438
- }
439
- HostApp.__callback__ = null
440
- HostApp.__this__ = null
441
- },
442
- takePic(prop, title,index) {
443
- HostApp.__callback__ = this.cameraCallBack
444
- HostApp.__this__ = this
445
- //tag
446
- //tag
447
- let fileName
448
- if(prop == 'f_overall_path'){
449
- if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
450
- fileName = Util.guid() + '-' + prop + '.jpg'
451
- } else {
452
- fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
453
- }
454
- }else{
455
- if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
456
- fileName = Util.guid() + '-' + prop + '.jpg'
457
- } else {
458
- fileName = Util.getFileName(this.paper[prop])
459
- }
460
- }
461
-
462
- HostApp._open_a_page({
463
- type: 'boomerang',
464
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
465
- param: {
466
- file: fileName,
467
- requestCode: 111,
468
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
469
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
470
- }
471
- })
472
- },
473
- amrCallBack(fileName) {
474
- HostApp.__this__.$set('paper.f_recording1_path', fileName)
475
- HostApp.__callback__ = null
476
- HostApp.__this__ = null
477
- },
478
- record() {
479
- if (this.$parent.$parent.role != 'inspect') {
480
- if (this.paper.f_recording1_path != '') {
481
- window.location = this.paper.f_recording1_path
482
- }
483
- } else {
484
- HostApp.__callback__ = this.amrCallBack
485
- HostApp.__this__ = this
486
- let fileName
487
- if (!this.paper.f_recording1_path) {
488
- fileName = Util.guid() + '.amr'
489
- } else {
490
- fileName = Util.getFileName(this.paper.f_recording1_path)
491
- }
492
- HostApp._open_a_page({
493
- type: 'boomerang',
494
- page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
495
- param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
496
- })
497
- }
498
- },
499
- // 签名回调
500
- signCallback(prop, fileName) {
501
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
502
- HostApp.__this__.$set('paper.f_sign_path', fileName)
503
- HostApp.__callback__ = null
504
- HostApp.__this__ = null
505
- },
506
- // 用户签名
507
- sign() {
508
- this.delAudioFile('f_sign_path', this.paper.f_sign_path)
509
- let prop = 'f_sign_path'
510
- let idx = 'aofeng'
511
- let fileName
512
- if (!this.paper.f_sign_path) {
513
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
514
- } else {
515
- fileName = Util.getFileName(this.paper.f_sign_path)
516
- }
517
- HostApp.__callback__ = this.signCallback
518
- HostApp.__this__ = this
519
- HostApp.getSignature({
520
- file: fileName,
521
- requestCode: 111,
522
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
523
- })
524
- },
525
- delfile(prop, fileName,index) {
526
- if (fileName == Vue.nopic)
527
- return
528
- else {
529
- if(prop == 'f_overall_path'){
530
- this.paper.f_overall_imgs.splice(index,1)
531
- HostApp.delfile(fileName)
532
- }else{
533
- HostApp.delfile(fileName)
534
- this.paper[prop] = Vue.nopic
535
- }
536
- }
537
- },
538
- delAudioFile(prop, fileName) {
539
- if (!fileName)
540
- return
541
- else {
542
- HostApp.delfile(fileName)
543
- this.paper[prop] = null
544
- }
545
- },
546
- //获取打印用户信息
547
- getUser() {
548
- if (this.paper.f_user_name == undefined)
549
- this.paper.f_user_name = ''
550
- this.printContent.push({type: 3, text: '用户名称:' + this.paper.f_user_name, fontsize: 2, isbold: false, align: 'left'})
551
- if (this.paper.f_userinfo_code == undefined)
552
- this.paper.f_userinfo_code = ''
553
- this.printContent.push({type: 3, text: '用户编号:' + this.paper.f_userinfo_code, fontsize: 2, isbold: false, align: 'left'})
554
- if (this.paper.f_address == undefined)
555
- this.paper.f_address = ''
556
- this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
557
- if (this.paper.f_user_phone == undefined)
558
- this.paper.f_user_phone = ''
559
- this.printContent.push({type: 3, text: '电话:' + this.paper.f_user_phone, fontsize: 2, isbold: false, align: 'left'})
560
- },
561
- verify(){
562
- let hasError = this.$parent.$parent.verifyUser()
563
- if(hasError)
564
- return hasError
565
- hasError = this.$parent.$parent.verifyDevices()
566
- if(hasError)
567
- return hasError
568
- },
569
- print() {
570
- let errString = this.verify()
571
- if (errString) {
572
- //tag
573
- if (Vue.android)
574
- this.$showMessage(errString)
575
- return
576
- }
577
- // 文本
578
- let templatename = '安检结果单'
579
- if(Vue.config.safecheck != undefined) {
580
- if (Vue.config.safecheck.ApproveConfig != undefined) {
581
- if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
582
- templatename = Vue.config.safecheck.ApproveConfig.templatename
583
- }
584
- }
585
- }
586
- let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
587
- let feedPageHead = {type: 4, value: 2, unit: 'line'}
588
- let feedPageEnd = {type: 4, value: 4, unit: 'line'}
589
- this.printContent.push(textHead)
590
- this.printContent.push(feedPageHead)
591
- this.getUser()
592
- this.getDefect()
593
- this.getCheck()
594
- this.printContent.push(feedPageEnd)
595
- let arrstr = JSON.stringify(this.printContent)
596
- //tag
597
- this.$androidUtil.print(arrstr)
598
- this.$set('printContent', [])
599
- },
600
- //打印安检信息
601
- getCheck() {
602
- let telephone = '96777'
603
- if(Vue.config.safecheck != undefined) {
604
- if (Vue.config.safecheck.ApproveConfig != undefined) {
605
- if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
606
- telephone = Vue.config.safecheck.ApproveConfig.checkphone
607
- }
608
- }
609
- }
610
- this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
611
- this.printContent.push({type: 3, text: '24小时抢修电话:'+telephone, fontsize: 2, isbold: false, align: 'left'})
612
- this.printContent.push({type: 3, text: '安检人:'+Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
613
- this.printContent.push({type: 3, text: '安检时间:' + this.getNowFormatDate(), fontsize: 2, isbold: false, align: 'left'})
614
- this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
615
- this.printContent.push({type: 4, value: 4, unit: 'line'})
616
- this.printContent.push({type: 4, value: 4, unit: 'line'})
617
- this.printContent.push({type: 4, value: 4, unit: 'line'})
618
- this.printContent.push({type: 4, value: 4, unit: 'line'})
619
- this.printContent.push({type: 4, value: 4, unit: 'line'})
620
- },
621
-
622
- getDefect() {
623
- let showmore = false
624
- if(Vue.config.safecheck != undefined) {
625
- if (Vue.config.safecheck.ApproveConfig != undefined) {
626
- if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
627
- showmore = Vue.config.safecheck.ApproveConfig.showmore
628
- }
629
- }
630
- }
631
-
632
- let backData = this.$parent.$parent.getAllDefect()
633
- // 对隐患信息进行遍历
634
- let res = JSON.parse(backData.f_defect_content)
635
- this.printContent.push({
636
- type: 3,
637
- text: '安检结果:' + res.result,
638
- fontsize: 2,
639
- isbold: false,
640
- align: 'left'
641
- })
642
- this.printContent.push({
643
- type: 3,
644
- text: '安检类型:' + this.paper.f_safecheck_type,
645
- fontsize: 2,
646
- isbold: false,
647
- align: 'left'
648
- })
649
- this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
650
-
651
-
652
- if(showmore) {
653
- //全部打印
654
- for (let dev in this.$parent.$parent.config) {
655
- for (let device in backData) {
656
- if (device.startsWith("device")) {
657
- for (let item in backData[device]) {
658
- //遍历结果
659
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
660
- let error = true
661
- for (let i in backData[device][item].f_items) {
662
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
663
- error = false
664
- }
665
- }
666
- if (error) {
667
- this.printContent.push({
668
- type: 3,
669
- // 这个checkmust还没存
670
- text: backData[device][item].checkmust ? "*" : "" + dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
671
- fontsize: 2,
672
- isbold: false,
673
- align: 'left'
674
- })
675
- } else {
676
- this.printContent.push({
677
- type: 3,
678
- text: backData[device][item].checkmust ? "*" : "" + dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
679
- fontsize: 2,
680
- isbold: true,
681
- align: 'left'
682
- })
683
- }
684
- //tag)
685
- for (let i in backData[device][item].f_items) {
686
- //tag)
687
- if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
688
- this.printContent.push({
689
- type: 3,
690
- text: backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ":" + backData[device][item].f_items[i].f_item_value,
691
- fontsize: 2,
692
- isbold: false,
693
- align: 'left'
694
- })
695
- }
696
- }
697
- this.printContent.push({type: 4, value: 2, unit: 'line'})
698
- }
699
- }
700
- }
701
- }
702
- }
703
-
704
- for (let dev in this.$parent.$parent.config) {
705
- for (let device in backData) {
706
- if (device.startsWith("device")) {
707
- for (let item in backData[device]) {
708
- //遍历结果
709
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
710
- let error = true
711
- for (let i in backData[device][item].f_items) {
712
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
713
- error = false
714
- }
715
- }
716
- if (!error) {
717
- this.printContent.push({
718
- type: 3,
719
- text: '隐患:',
720
- fontsize: 2,
721
- isbold: true,
722
- align: 'left'
723
- })
724
- }
725
- }
726
- }
727
- }
728
- }
729
- for (let device in backData) {
730
- if (device.startsWith("device")) {
731
- for (let item in backData[device]) {
732
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
733
- for (let i in backData[device][item].f_items) {
734
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
735
- this.printContent.push({
736
- type: 3,
737
- text: backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ':' + backData[device][item].f_items[i].f_item_value,
738
- fontsize: 2,
739
- isbold: true,
740
- align: 'left'
741
- })
742
- }
743
- }
744
- }
745
- }
746
- }
747
- }
748
-
749
- }
750
- }else {
751
- for (let dev in this.$parent.$parent.config) {
752
- for (let device in backData) {
753
- if (device.startsWith("device")) {
754
- for (let item in backData[device]) {
755
- //遍历结果
756
- if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
757
- let error = true
758
- for (let i in backData[device][item].f_items) {
759
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
760
- error = false
761
- }
762
- }
763
- if (error) {
764
- this.printContent.push({
765
- type: 3,
766
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
767
- fontsize: 2,
768
- isbold: false,
769
- align: 'left'
770
- })
771
- } else {
772
- this.printContent.push({
773
- type: 3,
774
- text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
775
- fontsize: 2,
776
- isbold: false,
777
- align: 'left'
778
- })
779
- }
780
-
781
- for (let i in backData[device][item].f_items) {
782
- if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
783
- this.printContent.push({
784
- type: 3,
785
- text: '隐患:' + backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ":" + backData[device][item].f_items[i].f_item_value,
786
- fontsize: 2,
787
- isbold: false,
788
- align: 'left'
789
- })
790
- }
791
- }
792
- this.printContent.push({type: 4, value: 2, unit: 'line'})
793
- }
794
- }
795
- }
796
- }
797
- }
798
- }
799
- },
800
- //获取当前时间
801
- getNowFormatDate(){
802
- var date = new Date();
803
- var seperator1 = "-";
804
- var seperator2 = ":";
805
- var month = date.getMonth() + 1;
806
- var strDate = date.getDate();
807
- if (month >= 1 && month <= 9) {
808
- month = "0" + month;
809
- }
810
- if (strDate >= 0 && strDate <= 9) {
811
- strDate = "0" + strDate;
812
- }
813
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
814
- + " " + date.getHours() + seperator2 + date.getMinutes()
815
- + seperator2 + date.getSeconds();
816
- return currentdate;
817
- },
818
- readRepair () {
819
- let url = this.$androidUtil.getProxyUrl()
820
- let gen = getRepairs(this,url)
821
- return co(gen)
822
- },
823
- showToRepair(){
824
- let res = this.hasDefect()
825
- //tag
826
- //tag
827
- if(res == '正常'){
828
- this.showrepair = false
829
- }else{
830
- this.showrepair = true
831
- this.assignObj()
832
- }
833
- this.showCheckToRepair = !this.showCheckToRepair
834
- },
835
- // 选中部门
836
- reres(val){
837
- if(val.res == undefined){
838
- return
839
- }
840
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
841
- this.$parent.$parent.model.f_meetunit = val.res
842
- this.$parent.$parent.model.f_orgstr = val.resids
843
- var arr = val.res.split('.')
844
- this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
845
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
846
- },
847
- assignObj(){
848
- this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
849
- this.$parent.$parent.model.f_user_name = this.paper.f_user_name
850
- this.$parent.$parent.model.f_address = this.paper.f_address
851
- this.$parent.$parent.model.f_user_type = this.paper.f_check_type
852
- this.$parent.$parent.model.f_street = this.paper.f_street
853
- this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
854
- this.$parent.$parent.model.f_building = this.paper.f_building
855
- this.$parent.$parent.model.f_unit = this.paper.f_unit
856
- this.$parent.$parent.model.f_floor = this.paper.f_floor
857
- this.$parent.$parent.model.f_room = this.paper.f_room
858
- this.$parent.$parent.model.f_floor = this.paper.f_floor
859
- this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
860
- this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
861
- },
862
- hasDefect(){
863
- let checkResult = '正常'
864
- let codata = JSON.parse(JSON.stringify(this.paper))
865
- for(let device in this.paper){
866
- if(device.startsWith("device")){
867
- for(let item in this.paper[device]) {
868
- for(let i in this.paper[device][item].f_items){
869
- let items = this.paper[device][item].f_items[i]
870
- //tag
871
- if(items.f_is_defect == true || items.f_is_defect == 'true'){
872
- checkResult = '有隐患'
873
- }
874
- }
875
- }
876
- }
877
- }
878
- return checkResult
879
- },
880
- uploadPaper() {
881
- if(this.showrepair){
882
- //tag
883
- //tag
884
- //tag
885
- //tag
886
-
887
- if(this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
888
- this.$showMessage("请选择维修员!")
889
- return
890
- }
891
- if(this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
892
- this.$showMessage("请选择站点!")
893
- return
894
- }
895
- if(this.$parent.$parent.model.f_repairtype == ''){
896
- this.$showMessage("请选择报修类型!")
897
- return
898
- }
899
- this.$parent.$parent.isToRepair = true
900
- this.$parent.$parent.uploadCheckPaper()
901
- // this.$parent.$parent.savePaper(false).then((res) => {
902
- // //tag
903
- // if(res != true){
904
- // //tag
905
- // return
906
- // }else{
907
- // this.$parent.$parent.todo()
908
- // }
909
- // })
910
- }else{
911
- this.$parent.$parent.undo()
912
- }
913
-
914
- },
915
- //确认安检转维修
916
-
917
- undo(){
918
- this.showCheckToRepair = !this.showCheckToRepair
919
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
920
- this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
921
- this.$parent.$parent.model.f_repairtype = ''
922
- this.meading = '转站点'
923
- },
924
- repiarmancg(val){
925
- if(val){
926
- //tag
927
- this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
928
- let http1 = new HttpResetClass()
929
- http1.load('POST',`${this.Url}/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
930
- items: 'f_user_telephone',
931
- tablename: 't_user',
932
- condition: `name = '${val}'`,
933
- orderitem: 'id'
934
- }}, {resolveMsg: null, rejectMsg: null}).then((ress) => {
935
- this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
936
- })
937
- }
938
- },
939
- },
940
- ready() {
941
- //tag)
942
- if (this.$parent.$parent.role == 'repair') {
943
- this.$set('style__', 'divmask')
944
- this.$set('style_view_', '')
945
- }
946
- else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
947
- this.$set('style__', 'divmask')
948
- this.$set('style_view_', 'divmask')
949
- //tag
950
- } else {
951
- this.$set('style__', '')
952
- this.$set('style_view_', '')
953
- }
954
-
955
- for (let item of this.radios){
956
- if(this.paper.f_client_evaluation == item.label){
957
- item.isChecked = true;
958
- }
959
- }
960
- if (!this.paper.f_notified_path)
961
- this.$set('paper.f_notified_path', Vue.nopic)
962
- if (!this.paper.f_sign_path)
963
- this.$set('paper.f_sign_path', Vue.nopic)
964
- //tag
965
- if (!this.paper.f_overall_imgs){
966
- let imgs = []
967
- // imgs.push({f_overall_path:Vue.nopic})
968
- this.$set('paper.f_overall_imgs', imgs)
969
- //tag
970
- }
971
- if (!this.paper.f_overall2_path)
972
- this.$set('paper.f_overall2_path', Vue.nopic)
973
-
974
- this.userid = this.role == 'view'? this.$login.f.id:Vue.user.id
975
- if(Vue.config.safecheck != undefined){
976
- if(Vue.config.safecheck.ApproveConfig != undefined){
977
- if(Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
978
- this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
979
- }
980
- }
981
- }
982
- //tag
983
- //tag
984
- },
985
- watch:{
986
- '$parent.$parent.isUpload'(val){
987
- //tag
988
- },
989
- 'meading'(val){
990
- //tag
991
- this.$parent.$parent.meading = val
992
- }
993
- }
994
- }
995
- </script>
996
- <style>
997
- .panel-self{
998
- border-radius: 5px;
999
- border:1px solid #c5e1f7;
1000
- background-color: #F2F6FA;
1001
- }
1002
- .text-left{
1003
- text-align:left;
1004
- }
1005
- .font{
1006
- font: 15px PingFang-SC-Medium;
1007
- color: #333333;
1008
- }
1009
- .showIi{
1010
- font: 14px PingFang-SC-Medium;
1011
- color: #666666;
1012
- }
1013
- .info{
1014
- margin-top: 15px;
1015
- border-radius: 5px;
1016
- background-color: #f3faff;
1017
- }
1018
- .btn-photo{
1019
- border: 0;
1020
- border-radius: 7px;
1021
- background-color: #7dc1f4;
1022
- font: 15px PingFang-SC-Bold;
1023
- height: 20%;
1024
- }
1025
- .div-photo{
1026
- width: auto;
1027
- height: auto;
1028
- /* margin-top: 10px; */
1029
- position: absolute;
1030
- bottom: 10px;
1031
- right: 10px;
1032
- }
1033
- .btn-voice{
1034
- border-radius: 7px;
1035
- border: 1px solid #dedede;
1036
- background-color: #f5fbff;
1037
- font: 15px PingFang-SC-Bold;
1038
- color: #499edf;
1039
- }
1040
- .save-btn{
1041
- width: 25%;
1042
- background-color:#499edf;
1043
- border-radius: 6px;
1044
- color: #FFFFFF;
1045
- font: 15px PingFang-SC-Bold;
1046
- }
1047
- .upload-btn{
1048
- width: 25%;
1049
- background-color:#ffffff;
1050
- border: 1px solid #499edf;
1051
- border-radius: 6px;
1052
- color: #499edf;
1053
- font: 15px PingFang-SC-Bold;
1054
- }
1055
- .repair-btn{
1056
- width: 25%;
1057
- border: 1px solid #499edf;
1058
- border-radius: 6px;
1059
- font: 15px PingFang-SC-Bold;
1060
- }
1061
- </style>
1
+ <template>
2
+ <form novalidate class="form-horizontal" style="width: 95%;margin: auto">
3
+ <div class="form-group col-sm-12 col-xs-12 col-md-12 info" :class="style__">
4
+ <div class="text-center">
5
+ <label class="font">总体安检照片请依次拍摄:</label>
6
+ </div>
7
+ <div class="col-md-12 col-sm-12 col-xs-12">
8
+ <ol class="showIi">
9
+ <li>1.燃气设施全景</li>
10
+ <li>2.燃气表照片</li>
11
+ <li>3.灶具照片</li>
12
+ <li>4.其他照片</li>
13
+ </ol>
14
+ </div>
15
+ </div>
16
+ <div class="form-group col-sm-12" :class="style__">
17
+ <label class="text-left font">总体安检照片</label>
18
+
19
+ <div class="auto" :class="style__">
20
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
21
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
22
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
23
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in paper.f_overall_imgs">
24
+ <img-self :src="img.f_overall_path" alt="总体安检照片" :width="140" :height="170"></img-self>
25
+ <img src="../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
26
+ </div>
27
+ </div>
28
+ <div class="row text-right div-photo">
29
+ <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '总体安检照片')">拍照</button>
30
+ <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
31
+ <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+
38
+ <!--<div class="form-group col-sm-12">-->
39
+ <!--<label class="text-left font">总体安检照片2</label>-->
40
+ <!--<div class="auto">-->
41
+ <!--<div class="panel">-->
42
+ <!--<div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">-->
43
+ <!--<div class="row" style="height: 240px;overflow: scroll;top: 1px">-->
44
+ <!--<div class="col-sm-4">-->
45
+ <!--<img-self :src="paper.f_overall2_path" alt="总体安检照片2" width="150" height="200"></img-self>-->
46
+ <!--</div>-->
47
+ <!--</div>-->
48
+ <!--<div class="row text-right div-photo">-->
49
+ <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall2_path', '总体安检照片2')">拍照</button>-->
50
+ <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall2_path', paper.f_overall2_path)" style="width: 25%;"></img>-->
51
+ <!--</div>-->
52
+ <!--</div>-->
53
+ <!--</div>-->
54
+ <!--</div>-->
55
+ <!--</div>-->
56
+ <div class="form-group col-sm-12" :class="style__">
57
+ <label class="text-left font">用户签名</label>
58
+ <div class="auto">
59
+ <div class="panel">
60
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
61
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
62
+ <div class="col-sm-4">
63
+ <img :class="style__" :src="paper.f_sign_path" :width="200" :height="150" />
64
+ </div>
65
+ </div>
66
+ <div class="row text-right div-photo">
67
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" :class="style__">
75
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
76
+ <input type="checkbox" v-model="paper.f_defect_notified" class="showIi" />安检通知书/隐患整改通知书
77
+ </div>
78
+ <div class="form-group col-md-12 col-sm-12 col-xs-12" v-if="paper.f_defect_notified">
79
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
80
+ <button type="button" @click="print()">打印隐患整改单</button>
81
+ </div>
82
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
83
+ <label class="text-left font">安检通知书/隐患整改通知书照片(要求能清晰反应安检通知单和用户签字内容):</label>
84
+ <div class="auto" >
85
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
86
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
87
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
88
+ <div class="col-sm-4">
89
+ <img-self :src="paper.f_notified_path" alt="安检通知书/隐患整改通知书照片" width="150" height="200"></img-self>
90
+ </div>
91
+ </div>
92
+ <div class="row text-right div-photo">
93
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_notified_path', '安检通知书/隐患整改通知书照片')">拍照</button>
94
+ &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>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
102
+ <div class="row">
103
+ <label class="text-left">请对我们的服务做出评价:</label>
104
+ </div>
105
+ <div class="col-xs-4 col-sm-4" v-for="item in radios">
106
+ <input v-model="paper.f_client_evaluation" :value="item.label" :checked='item.isChecked' @click="check(item.value)" type="radio">{{item.label}}
107
+ </div>
108
+
109
+ <!--<div class="col-sm-4">-->
110
+ <!--<radio-group :value.sync="paper.f_client_evaluation" type="success" buttons="false">-->
111
+ <!--<radio value="满意">满意</radio>-->
112
+ <!--<radio value="基本满意">基本满意</radio>-->
113
+ <!--<radio value="不满意">不满意</radio>-->
114
+ <!--</radio-group>-->
115
+ <!--</div>-->
116
+ </div>
117
+ <div class="form-group col-md-12 col-sm-12 col-xs-12">
118
+ <label class="text-left font">反馈录音:</label>
119
+ <div class="col-md-12 col-sm-12 col-xs-12">
120
+ <button type="button" name="button" class="btn btn-primary btn-voice" @click="record">
121
+ <img src="../../assets/录音.png" style="width: 14%;">
122
+ <span v-if="!paper.f_recording1_path">开始录音</span>
123
+ <span v-if="paper.f_recording1_path">已录音</span>
124
+ </button>
125
+ &nbsp;&nbsp;&nbsp;&nbsp;<img src="../../assets/remove.png" style="width: 15px;" :class="style__" @click="delAudioFile('f_recording1_path', paper.f_recording1_path)"></img>
126
+ </div>
127
+ </div>
128
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
129
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled" class="btn save-btn" @click="$parent.$parent.save('temp')">临时保存</button>
130
+ <button style="width: 30%;margin:3%;margin-bottom: 0%" type="button" v-show="$parent.$parent.actionEnabled" class="btn save-btn " @click="$parent.$parent.save('finish')">完成安检</button>
131
+ </div>
132
+ <div class="text-center form-group col-md-12 col-sm-12 col-xs-12">
133
+ <button style="width: 30%;margin:3%;margin-bottom: 0%;margin-top: 0%" id="upload" type="button" v-show="$parent.$parent.actionEnabled" class="btn upload-btn " @click="$parent.$parent.uploadCheckPaper" >上传</button>
134
+ <!--<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>-->
135
+ </div>
136
+ </form>
137
+ <modal :show.sync="showCheckToRepair" v-ref:modal :backdrop="isback">
138
+ <div slot="modal-header" class="modal-header">
139
+ <h4 class="modal-title">
140
+ 安检转维修
141
+ </h4>
142
+ </div>
143
+ <div slot="modal-body" class="modal-body">
144
+ <div v-if="showrepair">
145
+ <div class="row">
146
+ <label class="col-xs-4 col-md-4 control-label text-left">派单方式</label>
147
+ <div class="col-xs-8 col-md-8">
148
+ <label v-for="handling1 in handling" >
149
+ <input type="radio"
150
+ v-model="meading"
151
+ value="{{handling1.label}}">
152
+ {{handling1.label}}
153
+ </label>
154
+ </div>
155
+ </div>
156
+ <div class="row" v-if="meading == '转站点'">
157
+ <label class="col-xs-4 col-md-4 control-label font text-left" for="f_reciever">站点</label>
158
+ <!--<input type="text" v-show="false" v-model="serviceacitivity.f_reciever"-->
159
+ <!--v-validate:f_reciever='{ required: true }'>-->
160
+ <div class="col-xs-8 col-md-8">
161
+ <right-tree @ready="onReady" islist :Url="Url" :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
162
+ </right-tree>
163
+ </div>
164
+ </div>
165
+
166
+ <div class="row" style="margin-top: 6px" v-if="meading == '转维修员'">
167
+ <label class="col-xs-4 col-md-4 control-label font text-left">维修人</label>
168
+ <div class="col-xs-8">
169
+ <v-select :value="$parent.$parent.model.serviceacitivity[0].f_reciever" :value-single="true"
170
+ :options='f_repair_person' placeholder='请选择维修员'
171
+ close-on-select v-on:change="repiarmancg"></v-select>
172
+ </div>
173
+
174
+ </div>
175
+ <div class="row" style="margin-top: 6px">
176
+ <label for="f_repair" class="col-xs-4 col-md-4 control-label font text-left">报修类型</label>
177
+ <div class="col-xs-8 col-md-8">
178
+ <v-select :value.sync="$parent.$parent.model.f_repairtype" :value-single="true"
179
+ :options='repairstypes' placeholder='报修类型'
180
+ close-on-select>
181
+ </v-select>
182
+ </div>
183
+ </div>
184
+
185
+ <div class="row" style="margin-top: 6px">
186
+ <label class="control-label font text-left col-md-4 col-xs-4">备注</label>
187
+ <div class="col-xs-8 col-md-8">
188
+ <input type="text" v-model="$parent.$parent.model.f_remarks"/>
189
+ </div>
190
+
191
+ </div>
192
+
193
+ </div>
194
+ <div v-if="!showrepair">
195
+ 暂无隐患设备信息
196
+ </div>
197
+ </div>
198
+ <div slot="modal-footer" class="modal-footer">
199
+ <button type="button" class="btn btn-default" @click="uploadPaper()">确定</button>
200
+ <button type="button" class="btn btn-default" @click="undo()">取消</button>
201
+ </div>
202
+ </modal>
203
+ </template>
204
+
205
+ <script>
206
+ import Vue from 'vue'
207
+ import * as Util from '../Util'
208
+ import { HttpResetClass } from 'vue-client'
209
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
210
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
211
+ import co from 'co'
212
+
213
+ // let getRepairParam = function * (self){
214
+ // let data = {
215
+ // $parent.$parent.model: self.$parent.$parent.model, loginUser: {
216
+ // name: self.role == 'view'?self.$login.f.name:Vue.user.name,
217
+ // ename: self.role == 'view'?self.$login.f.ename:Vue.user.ename
218
+ // }, user: self.user, callObj: self.callObj
219
+ // }
220
+ // if(self.$parent.$parent.meading == '转维修员'){
221
+ // data.toRepair = '一级派单'
222
+ // }
223
+ // data.$parent.$parent.model.f_attendant = data.loginUser.name
224
+ // //tag
225
+ // //tag
226
+ // let res
227
+ // let errString = self.$parent.$parent.errorVerify()
228
+ // if(errString){
229
+ // //tag
230
+ // if (Vue.android)
231
+ // self.undo()
232
+ // this.$showMessage(errString)
233
+ // return
234
+ // } else {
235
+ // if(self.role == 'inspect'){
236
+ // if(self.$parent.$parent.meading == '转维修员' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
237
+ // this.$showMessage("请选择维修员!")
238
+ // return
239
+ // }
240
+ // if(self.$parent.$parent.meading == '转站点' && (self.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || self.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
241
+ // HostApp.alert()
242
+ // this.$showMessage("请选择站点!")
243
+ // return
244
+ // }
245
+ // if(self.$parent.$parent.model.f_repairtype == ''){
246
+ // this.$showMessage("请选择报修类型!")
247
+ // return
248
+ // }
249
+ // //tag)
250
+ // let checkResult = '正常'
251
+ // let options = [{"data": "已处理"},{"data": "未处理"}]
252
+ // let value = ''
253
+ // let codata = JSON.parse(JSON.stringify(self.paper))
254
+ // for(let device in codata){
255
+ // //tag)
256
+ // let f_device_type
257
+ // if(device.startsWith("device")){
258
+ // for(let item in codata[device]) {
259
+ // if(codata[device].length > 1 ){
260
+ // let j = Number.parseInt(item)+1
261
+ // f_device_type = `${codata[device][item].f_device_type}${j}`
262
+ // }else{
263
+ // f_device_type = codata[device][item].f_device_type
264
+ // }
265
+ // // //tag
266
+ // let details = []
267
+ // for(let i in codata[device][item].f_items){
268
+ // let items = codata[device][item].f_items[i]
269
+ // //tag
270
+ // if(items.f_is_defect == true || items.f_is_defect == 'true'){
271
+ // checkResult = '有隐患'
272
+ // //tag
273
+ // let res = yield self.$resetpost(`${self.Url}/api/af-safecheck/sql/getDeviceItem`,{data:{f_device_id:codata[device][item].f_device_id,f_item_name:items.f_item_name}})
274
+ // //tag)
275
+ // self.$set('detail.f_defect_id', res.data[0].id)
276
+ // self.$set('detail.f_project',`${items.f_item_name}:${items.f_item_value}`)
277
+ // self.$set('detail.type',items.type)
278
+ // self.$set('detail.options',options)
279
+ // details.push(JSON.parse(JSON.stringify(self.detail)))
280
+ // }
281
+ // if(items.type == 'selector'){
282
+ // items.selected = ''
283
+ // }
284
+ // self.detail = {}
285
+ // }
286
+ // //tag
287
+ // self.$set('defectDevice.f_type',f_device_type)
288
+ // self.$set('defectDevice.details',details)
289
+ // if(self.defectDevice.details.length >0 ){
290
+ // self.repairitems.push(JSON.parse(JSON.stringify(self.defectDevice)))
291
+ // }
292
+ // self.defectDevice = {}
293
+ // //tag
294
+ // }
295
+ // }
296
+ // }
297
+ // self.$set('$parent.$parent.model.f_repairitems.data',self.repairitems)
298
+ //
299
+ //
300
+ // //tag)
301
+ // res = self.$androidUtil.bzLogic('safecheckToRepair',data)
302
+ // //tag
303
+ // //tag
304
+ // //tag
305
+ // if(res.code == 200){
306
+ // self.$parent.$parent.isSafeCheckToRepair = true
307
+ // self.undo()
308
+ // self.$set('paper.f_SafeToRepair_id',res.data.f_service_id)
309
+ // //tag
310
+ // self.$resetpost(`${self.Url}/api/af-safecheck/logic/updatePaperRepair`,{data:{f_paper_id:self.paper.f_paper_id,f_SafeToRepair_id:res.data.f_service_id}}).then((ret)=>{
311
+ // //tag
312
+ // if(ret.data.code ==200){
313
+ // //tag
314
+ // self.$parent.$parent.$back()
315
+ // }else{
316
+ // self.$showMessage('安检转维修失败!')
317
+ // }
318
+ // }).catch(v=>{
319
+ // //tag)
320
+ // self.$showMessage('安检转维修失败!')
321
+ // })
322
+ // }else{
323
+ // self.$showMessage('安检转维修失败!')
324
+ // }
325
+ // }
326
+ // }
327
+ // }
328
+
329
+
330
+
331
+ let getRepairs = async function(self,url) {
332
+ // 获取配置信息
333
+ try {
334
+ let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1 ))', userid: `${Vue.user.id}`}
335
+ let repairs =[]
336
+ let res = await Vue.resetpost(`${url}/rs/search`,{data: val},{resolveMsg: null, rejectMsg: null})
337
+ res.data.forEach((item) => {
338
+ repairs.push({label: item.name, value: item})
339
+ })
340
+ self.f_repair_person = repairs
341
+ if(self.$parent.$parent.role == 'inspect'){
342
+ let res = self.$androidUtil.bzLogic('getUserInfo',{id:self.paper.f_userinfoid})
343
+ if(res.code == 200){
344
+ self.$parent.$parent.user = res.data[0]
345
+ self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
346
+ }
347
+ }else{
348
+ //tag
349
+ self.$resetpost(`${self.Url}/api/af-safecheck/sql/getUserInfo`,{data:{id:self.paper.f_userinfoid}},{resolveMsg: null, rejectMsg: null}).then((res)=>{
350
+ //tag
351
+ if(res.data.length != 0){
352
+ self.$parent.$parent.user = res.data[0]
353
+ self.$parent.$parent.model.f_area = self.$parent.$parent.user.f_area
354
+ }
355
+ })
356
+ // path({alias:'getUserInfo',data:{id:this.paper.f_userinfoid}})
357
+ }
358
+ } catch (error) {
359
+ //tag
360
+ }
361
+ }
362
+
363
+ export default {
364
+ title: '用户反馈',
365
+ data() {
366
+ return {
367
+ images:[],
368
+ meading:this.$parent.$parent.meading,
369
+ paper:this.$parent.$parent.data,
370
+ printContent:[],
371
+ upload_state: this.$parent.$parent.item.f_upload_state,
372
+ radios:[
373
+ {
374
+ label: '满意',
375
+ value: 0,
376
+ isChecked: false,
377
+ },
378
+ {
379
+ label: '基本满意',
380
+ value:1,
381
+ isChecked: false,
382
+ },
383
+ {
384
+ label: '不满意',
385
+ value:2,
386
+ isChecked: false,
387
+ },
388
+ ],
389
+ repairitems:[],
390
+ repairstypes:this.$appdata.getParam('报修类型'),
391
+ f_repair_person: this.readRepair(),
392
+ showrepair: false,
393
+ safeCheckToRepair:'',
394
+ showCheckToRepair:false,
395
+ userid: '',
396
+ source:
397
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
398
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
399
+ isback:false,
400
+ defectDevice:{},
401
+ detail:{},
402
+ callObj:null,
403
+ user:{},
404
+ role:this.$parent.$parent.role,
405
+ handling:[{label:'转站点',value:'转站点'},{label:'转维修员',value:'转维修员'}],
406
+ Url:this.$androidUtil.getProxyUrl()
407
+ }
408
+ },
409
+ props: ['idx'],
410
+ components: {
411
+ RadioGroup,
412
+ Radio
413
+ },
414
+ methods: {
415
+ check(index) {
416
+ //tag
417
+ // 先取消所有选中项
418
+ for (let item of this.radios){
419
+ item.isChecked = false;
420
+ }
421
+ //再设置当前点击项选中
422
+ this.paper.f_client_evaluation = this.radios[index].label;
423
+ // 设置值,以供传递
424
+ this.radios[index].isChecked = true;
425
+ //tag;
426
+ },
427
+ getSignValue(fileName) {
428
+ this.f_signname = fileName
429
+ },
430
+ cameraCallBack(prop, fileName) {
431
+ if(prop == 'f_overall_path'){
432
+ let f_overall_path = fileName + '?' + Math.random()
433
+ HostApp.__this__.paper.f_overall_imgs.push({
434
+ f_overall_path:f_overall_path
435
+ })
436
+ }else{
437
+ HostApp.__this__.paper[prop] = fileName + '?' + Math.random()
438
+ }
439
+ HostApp.__callback__ = null
440
+ HostApp.__this__ = null
441
+ },
442
+ takePic(prop, title,index) {
443
+ HostApp.__callback__ = this.cameraCallBack
444
+ HostApp.__this__ = this
445
+ //tag
446
+ //tag
447
+ let fileName
448
+ if(prop == 'f_overall_path'){
449
+ if (!this.paper.f_overall_imgs[index] || this.paper.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
450
+ fileName = Util.guid() + '-' + prop + '.jpg'
451
+ } else {
452
+ fileName = Util.getFileName(this.paper.f_overall_imgs[index].f_overall_path)
453
+ }
454
+ }else{
455
+ if (!this.paper[prop] || this.paper[prop].includes("nopic.png")) {
456
+ fileName = Util.guid() + '-' + prop + '.jpg'
457
+ } else {
458
+ fileName = Util.getFileName(this.paper[prop])
459
+ }
460
+ }
461
+
462
+ HostApp._open_a_page({
463
+ type: 'boomerang',
464
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
465
+ param: {
466
+ file: fileName,
467
+ requestCode: 111,
468
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
469
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
470
+ }
471
+ })
472
+ },
473
+ amrCallBack(fileName) {
474
+ HostApp.__this__.$set('paper.f_recording1_path', fileName)
475
+ HostApp.__callback__ = null
476
+ HostApp.__this__ = null
477
+ },
478
+ record() {
479
+ if (this.$parent.$parent.role != 'inspect') {
480
+ if (this.paper.f_recording1_path != '') {
481
+ window.location = this.paper.f_recording1_path
482
+ }
483
+ } else {
484
+ HostApp.__callback__ = this.amrCallBack
485
+ HostApp.__this__ = this
486
+ let fileName
487
+ if (!this.paper.f_recording1_path) {
488
+ fileName = Util.guid() + '.amr'
489
+ } else {
490
+ fileName = Util.getFileName(this.paper.f_recording1_path)
491
+ }
492
+ HostApp._open_a_page({
493
+ type: 'boomerang',
494
+ page: 'com.aofeng.hybrid.android.peripheral.AudioClipActivity',
495
+ param: {file: fileName, requestCode: 111, callback: 'javascript:HostApp.__callback__("%s");'}
496
+ })
497
+ }
498
+ },
499
+ // 签名回调
500
+ signCallback(prop, fileName) {
501
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
502
+ HostApp.__this__.$set('paper.f_sign_path', fileName)
503
+ HostApp.__callback__ = null
504
+ HostApp.__this__ = null
505
+ },
506
+ // 用户签名
507
+ sign() {
508
+ this.delAudioFile('f_sign_path', this.paper.f_sign_path)
509
+ let prop = 'f_sign_path'
510
+ let idx = 'aofeng'
511
+ let fileName
512
+ if (!this.paper.f_sign_path) {
513
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
514
+ } else {
515
+ fileName = Util.getFileName(this.paper.f_sign_path)
516
+ }
517
+ HostApp.__callback__ = this.signCallback
518
+ HostApp.__this__ = this
519
+ HostApp.getSignature({
520
+ file: fileName,
521
+ requestCode: 111,
522
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
523
+ })
524
+ },
525
+ delfile(prop, fileName,index) {
526
+ if (fileName == Vue.nopic)
527
+ return
528
+ else {
529
+ if(prop == 'f_overall_path'){
530
+ this.paper.f_overall_imgs.splice(index,1)
531
+ HostApp.delfile(fileName)
532
+ }else{
533
+ HostApp.delfile(fileName)
534
+ this.paper[prop] = Vue.nopic
535
+ }
536
+ }
537
+ },
538
+ delAudioFile(prop, fileName) {
539
+ if (!fileName)
540
+ return
541
+ else {
542
+ HostApp.delfile(fileName)
543
+ this.paper[prop] = null
544
+ }
545
+ },
546
+ //获取打印用户信息
547
+ getUser() {
548
+ if (this.paper.f_user_name == undefined)
549
+ this.paper.f_user_name = ''
550
+ this.printContent.push({type: 3, text: '用户名称:' + this.paper.f_user_name, fontsize: 2, isbold: false, align: 'left'})
551
+ if (this.paper.f_userinfo_code == undefined)
552
+ this.paper.f_userinfo_code = ''
553
+ this.printContent.push({type: 3, text: '用户编号:' + this.paper.f_userinfo_code, fontsize: 2, isbold: false, align: 'left'})
554
+ if (this.paper.f_address == undefined)
555
+ this.paper.f_address = ''
556
+ this.printContent.push({type: 3, text: '地址:' + this.paper.f_address, fontsize: 2, isbold: false, align: 'left'})
557
+ if (this.paper.f_user_phone == undefined)
558
+ this.paper.f_user_phone = ''
559
+ this.printContent.push({type: 3, text: '电话:' + this.paper.f_user_phone, fontsize: 2, isbold: false, align: 'left'})
560
+ },
561
+ verify(){
562
+ let hasError = this.$parent.$parent.verifyUser()
563
+ if(hasError)
564
+ return hasError
565
+ hasError = this.$parent.$parent.verifyDevices()
566
+ if(hasError)
567
+ return hasError
568
+ },
569
+ print() {
570
+ let errString = this.verify()
571
+ if (errString) {
572
+ //tag
573
+ if (Vue.android)
574
+ this.$showMessage(errString)
575
+ return
576
+ }
577
+ // 文本
578
+ let templatename = '安检结果单'
579
+ if(Vue.config.safecheck != undefined) {
580
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
581
+ if (Vue.config.safecheck.ApproveConfig.templatename != undefined) {
582
+ templatename = Vue.config.safecheck.ApproveConfig.templatename
583
+ }
584
+ }
585
+ }
586
+ let textHead = {type: 3, text: templatename, fontsize: 3, isbold: true, align: 'center'}
587
+ let feedPageHead = {type: 4, value: 2, unit: 'line'}
588
+ let feedPageEnd = {type: 4, value: 4, unit: 'line'}
589
+ this.printContent.push(textHead)
590
+ this.printContent.push(feedPageHead)
591
+ this.getUser()
592
+ this.getDefect()
593
+ this.getCheck()
594
+ this.printContent.push(feedPageEnd)
595
+ let arrstr = JSON.stringify(this.printContent)
596
+ //tag
597
+ this.$androidUtil.print(arrstr)
598
+ this.$set('printContent', [])
599
+ },
600
+ //打印安检信息
601
+ getCheck() {
602
+ let telephone = '96777'
603
+ if(Vue.config.safecheck != undefined) {
604
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
605
+ if (Vue.config.safecheck.ApproveConfig.checkphone != undefined) {
606
+ telephone = Vue.config.safecheck.ApproveConfig.checkphone
607
+ }
608
+ }
609
+ }
610
+ this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
611
+ this.printContent.push({type: 3, text: '24小时抢修电话:'+telephone, fontsize: 2, isbold: false, align: 'left'})
612
+ this.printContent.push({type: 3, text: '安检人:'+Vue.user.name, fontsize: 2, isbold: false, align: 'left'})
613
+ this.printContent.push({type: 3, text: '安检时间:' + this.getNowFormatDate(), fontsize: 2, isbold: false, align: 'left'})
614
+ this.printContent.push({type: 3, text: '用户签字:', fontsize: 2, isbold: false, align: 'left'})
615
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
616
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
617
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
618
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
619
+ this.printContent.push({type: 4, value: 4, unit: 'line'})
620
+ },
621
+
622
+ getDefect() {
623
+ let showmore = false
624
+ if(Vue.config.safecheck != undefined) {
625
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
626
+ if (Vue.config.safecheck.ApproveConfig.showmore != undefined) {
627
+ showmore = Vue.config.safecheck.ApproveConfig.showmore
628
+ }
629
+ }
630
+ }
631
+
632
+ let backData = this.$parent.$parent.getAllDefect()
633
+ // 对隐患信息进行遍历
634
+ let res = JSON.parse(backData.f_defect_content)
635
+ this.printContent.push({
636
+ type: 3,
637
+ text: '安检结果:' + res.result,
638
+ fontsize: 2,
639
+ isbold: false,
640
+ align: 'left'
641
+ })
642
+ this.printContent.push({
643
+ type: 3,
644
+ text: '安检类型:' + this.paper.f_safecheck_type,
645
+ fontsize: 2,
646
+ isbold: false,
647
+ align: 'left'
648
+ })
649
+ this.printContent.push({type: 3, text: '*******************************', fontsize: 3, isbold: false, align: 'center'})
650
+
651
+
652
+ if(showmore) {
653
+ //全部打印
654
+ for (let dev in this.$parent.$parent.config) {
655
+ for (let device in backData) {
656
+ if (device.startsWith("device")) {
657
+ for (let item in backData[device]) {
658
+ //遍历结果
659
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
660
+ let error = true
661
+ for (let i in backData[device][item].f_items) {
662
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
663
+ error = false
664
+ }
665
+ }
666
+ if (error) {
667
+ this.printContent.push({
668
+ type: 3,
669
+ // 这个checkmust还没存
670
+ text: backData[device][item].checkmust ? "*" : "" + dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
671
+ fontsize: 2,
672
+ isbold: false,
673
+ align: 'left'
674
+ })
675
+ } else {
676
+ this.printContent.push({
677
+ type: 3,
678
+ text: backData[device][item].checkmust ? "*" : "" + dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
679
+ fontsize: 2,
680
+ isbold: true,
681
+ align: 'left'
682
+ })
683
+ }
684
+ //tag)
685
+ for (let i in backData[device][item].f_items) {
686
+ //tag)
687
+ if (backData[device][item].f_items[i].f_item_value != '' && backData[device][item].f_items[i].f_item_value != null) {
688
+ this.printContent.push({
689
+ type: 3,
690
+ text: backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ":" + backData[device][item].f_items[i].f_item_value,
691
+ fontsize: 2,
692
+ isbold: false,
693
+ align: 'left'
694
+ })
695
+ }
696
+ }
697
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
698
+ }
699
+ }
700
+ }
701
+ }
702
+ }
703
+
704
+ for (let dev in this.$parent.$parent.config) {
705
+ for (let device in backData) {
706
+ if (device.startsWith("device")) {
707
+ for (let item in backData[device]) {
708
+ //遍历结果
709
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
710
+ let error = true
711
+ for (let i in backData[device][item].f_items) {
712
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
713
+ error = false
714
+ }
715
+ }
716
+ if (!error) {
717
+ this.printContent.push({
718
+ type: 3,
719
+ text: '隐患:',
720
+ fontsize: 2,
721
+ isbold: true,
722
+ align: 'left'
723
+ })
724
+ }
725
+ }
726
+ }
727
+ }
728
+ }
729
+ for (let device in backData) {
730
+ if (device.startsWith("device")) {
731
+ for (let item in backData[device]) {
732
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
733
+ for (let i in backData[device][item].f_items) {
734
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
735
+ this.printContent.push({
736
+ type: 3,
737
+ text: backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ':' + backData[device][item].f_items[i].f_item_value,
738
+ fontsize: 2,
739
+ isbold: true,
740
+ align: 'left'
741
+ })
742
+ }
743
+ }
744
+ }
745
+ }
746
+ }
747
+ }
748
+
749
+ }
750
+ }else {
751
+ for (let dev in this.$parent.$parent.config) {
752
+ for (let device in backData) {
753
+ if (device.startsWith("device")) {
754
+ for (let item in backData[device]) {
755
+ //遍历结果
756
+ if (backData[device].length != 0 && backData[device][item].f_device_type == dev) {
757
+ let error = true
758
+ for (let i in backData[device][item].f_items) {
759
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
760
+ error = false
761
+ }
762
+ }
763
+ if (error) {
764
+ this.printContent.push({
765
+ type: 3,
766
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':正常',
767
+ fontsize: 2,
768
+ isbold: false,
769
+ align: 'left'
770
+ })
771
+ } else {
772
+ this.printContent.push({
773
+ type: 3,
774
+ text: dev + (backData[device].indexOf(backData[device][item]) + 1) + ':有隐患',
775
+ fontsize: 2,
776
+ isbold: false,
777
+ align: 'left'
778
+ })
779
+ }
780
+
781
+ for (let i in backData[device][item].f_items) {
782
+ if (backData[device][item].f_items[i].f_is_defect == true || backData[device][item].f_items[i].f_is_defect == 'true') {
783
+ this.printContent.push({
784
+ type: 3,
785
+ text: '隐患:' + backData[device][item].f_items[i].checkmust?"*":"" + backData[device][item].f_items[i].f_item_name + ":" + backData[device][item].f_items[i].f_item_value,
786
+ fontsize: 2,
787
+ isbold: false,
788
+ align: 'left'
789
+ })
790
+ }
791
+ }
792
+ this.printContent.push({type: 4, value: 2, unit: 'line'})
793
+ }
794
+ }
795
+ }
796
+ }
797
+ }
798
+ }
799
+ },
800
+ //获取当前时间
801
+ getNowFormatDate(){
802
+ var date = new Date();
803
+ var seperator1 = "-";
804
+ var seperator2 = ":";
805
+ var month = date.getMonth() + 1;
806
+ var strDate = date.getDate();
807
+ if (month >= 1 && month <= 9) {
808
+ month = "0" + month;
809
+ }
810
+ if (strDate >= 0 && strDate <= 9) {
811
+ strDate = "0" + strDate;
812
+ }
813
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
814
+ + " " + date.getHours() + seperator2 + date.getMinutes()
815
+ + seperator2 + date.getSeconds();
816
+ return currentdate;
817
+ },
818
+ readRepair () {
819
+ let url = this.$androidUtil.getProxyUrl()
820
+ let gen = getRepairs(this,url)
821
+ return co(gen)
822
+ },
823
+ showToRepair(){
824
+ let res = this.hasDefect()
825
+ //tag
826
+ //tag
827
+ if(res == '正常'){
828
+ this.showrepair = false
829
+ }else{
830
+ this.showrepair = true
831
+ this.assignObj()
832
+ }
833
+ this.showCheckToRepair = !this.showCheckToRepair
834
+ },
835
+ // 选中部门
836
+ reres(val){
837
+ if(val.res == undefined){
838
+ return
839
+ }
840
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = val.res
841
+ this.$parent.$parent.model.f_meetunit = val.res
842
+ this.$parent.$parent.model.f_orgstr = val.resids
843
+ var arr = val.res.split('.')
844
+ this.$parent.$parent.model.f_outlets = arr[arr.length - 1]
845
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.resids
846
+ },
847
+ assignObj(){
848
+ this.$parent.$parent.model.f_contact_phone = this.paper.f_user_phone
849
+ this.$parent.$parent.model.f_user_name = this.paper.f_user_name
850
+ this.$parent.$parent.model.f_address = this.paper.f_address
851
+ this.$parent.$parent.model.f_user_type = this.paper.f_check_type
852
+ this.$parent.$parent.model.f_street = this.paper.f_street
853
+ this.$parent.$parent.model.f_residential_area = this.paper.f_residential_area
854
+ this.$parent.$parent.model.f_building = this.paper.f_building
855
+ this.$parent.$parent.model.f_unit = this.paper.f_unit
856
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
857
+ this.$parent.$parent.model.f_room = this.paper.f_room
858
+ this.$parent.$parent.model.f_floor = this.paper.f_floor
859
+ this.$parent.$parent.model.f_userinfo_id = this.paper.f_userinfoid
860
+ this.$parent.$parent.model.f_userinfo_code = this.paper.f_userinfo_code
861
+ },
862
+ hasDefect(){
863
+ let checkResult = '正常'
864
+ let codata = JSON.parse(JSON.stringify(this.paper))
865
+ for(let device in this.paper){
866
+ if(device.startsWith("device")){
867
+ for(let item in this.paper[device]) {
868
+ for(let i in this.paper[device][item].f_items){
869
+ let items = this.paper[device][item].f_items[i]
870
+ //tag
871
+ if(items.f_is_defect == true || items.f_is_defect == 'true'){
872
+ checkResult = '有隐患'
873
+ }
874
+ }
875
+ }
876
+ }
877
+ }
878
+ return checkResult
879
+ },
880
+ uploadPaper() {
881
+ if(this.showrepair){
882
+ //tag
883
+ //tag
884
+ //tag
885
+ //tag
886
+
887
+ if(this.meading == '转维修员' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
888
+ this.$showMessage("请选择维修员!")
889
+ return
890
+ }
891
+ if(this.$parent.$parent.meading == '转站点' && (this.$parent.$parent.model.serviceacitivity[0].f_reciever == '' || this.$parent.$parent.model.serviceacitivity[0].f_reciever == undefined)){
892
+ this.$showMessage("请选择站点!")
893
+ return
894
+ }
895
+ if(this.$parent.$parent.model.f_repairtype == ''){
896
+ this.$showMessage("请选择报修类型!")
897
+ return
898
+ }
899
+ this.$parent.$parent.isToRepair = true
900
+ this.$parent.$parent.uploadCheckPaper()
901
+ // this.$parent.$parent.savePaper(false).then((res) => {
902
+ // //tag
903
+ // if(res != true){
904
+ // //tag
905
+ // return
906
+ // }else{
907
+ // this.$parent.$parent.todo()
908
+ // }
909
+ // })
910
+ }else{
911
+ this.$parent.$parent.undo()
912
+ }
913
+
914
+ },
915
+ //确认安检转维修
916
+
917
+ undo(){
918
+ this.showCheckToRepair = !this.showCheckToRepair
919
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = ''
920
+ this.$parent.$parent.model.serviceacitivity[0].f_meetunit = ''
921
+ this.$parent.$parent.model.f_repairtype = ''
922
+ this.meading = '转站点'
923
+ },
924
+ repiarmancg(val){
925
+ if(val){
926
+ //tag
927
+ this.$parent.$parent.model.serviceacitivity[0].f_reciever = val.name
928
+ let http1 = new HttpResetClass()
929
+ http1.load('POST',`${this.Url}/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
930
+ items: 'f_user_telephone',
931
+ tablename: 't_user',
932
+ condition: `name = '${val}'`,
933
+ orderitem: 'id'
934
+ }}, {resolveMsg: null, rejectMsg: null}).then((ress) => {
935
+ this.$parent.$parent.model.f_repairman_phone = ress.data[0].f_user_telephone
936
+ })
937
+ }
938
+ },
939
+ },
940
+ ready() {
941
+ //tag)
942
+ if (this.$parent.$parent.role == 'repair') {
943
+ this.$set('style__', 'divmask')
944
+ this.$set('style_view_', '')
945
+ }
946
+ else if (this.$parent.$parent.role == 'view' || this.$parent.$parent.item.f_upload_state == '已传') {
947
+ this.$set('style__', 'divmask')
948
+ this.$set('style_view_', 'divmask')
949
+ //tag
950
+ } else {
951
+ this.$set('style__', '')
952
+ this.$set('style_view_', '')
953
+ }
954
+
955
+ for (let item of this.radios){
956
+ if(this.paper.f_client_evaluation == item.label){
957
+ item.isChecked = true;
958
+ }
959
+ }
960
+ if (!this.paper.f_notified_path)
961
+ this.$set('paper.f_notified_path', Vue.nopic)
962
+ if (!this.paper.f_sign_path)
963
+ this.$set('paper.f_sign_path', Vue.nopic)
964
+ //tag
965
+ if (!this.paper.f_overall_imgs){
966
+ let imgs = []
967
+ // imgs.push({f_overall_path:Vue.nopic})
968
+ this.$set('paper.f_overall_imgs', imgs)
969
+ //tag
970
+ }
971
+ if (!this.paper.f_overall2_path)
972
+ this.$set('paper.f_overall2_path', Vue.nopic)
973
+
974
+ this.userid = this.role == 'view'? this.$login.f.id:Vue.user.id
975
+ if(Vue.config.safecheck != undefined){
976
+ if(Vue.config.safecheck.ApproveConfig != undefined){
977
+ if(Vue.config.safecheck.ApproveConfig.safeCheckToRepair != undefined) {
978
+ this.safeCheckToRepair = Vue.config.safecheck.ApproveConfig.safeCheckToRepair
979
+ }
980
+ }
981
+ }
982
+ //tag
983
+ //tag
984
+ },
985
+ watch:{
986
+ '$parent.$parent.isUpload'(val){
987
+ //tag
988
+ },
989
+ 'meading'(val){
990
+ //tag
991
+ this.$parent.$parent.meading = val
992
+ }
993
+ }
994
+ }
995
+ </script>
996
+ <style>
997
+ .panel-self{
998
+ border-radius: 5px;
999
+ border:1px solid #c5e1f7;
1000
+ background-color: #F2F6FA;
1001
+ }
1002
+ .text-left{
1003
+ text-align:left;
1004
+ }
1005
+ .font{
1006
+ font: 15px PingFang-SC-Medium;
1007
+ color: #333333;
1008
+ }
1009
+ .showIi{
1010
+ font: 14px PingFang-SC-Medium;
1011
+ color: #666666;
1012
+ }
1013
+ .info{
1014
+ margin-top: 15px;
1015
+ border-radius: 5px;
1016
+ background-color: #f3faff;
1017
+ }
1018
+ .btn-photo{
1019
+ border: 0;
1020
+ border-radius: 7px;
1021
+ background-color: #7dc1f4;
1022
+ font: 15px PingFang-SC-Bold;
1023
+ height: 20%;
1024
+ }
1025
+ .div-photo{
1026
+ width: auto;
1027
+ height: auto;
1028
+ /* margin-top: 10px; */
1029
+ position: absolute;
1030
+ bottom: 10px;
1031
+ right: 10px;
1032
+ }
1033
+ .btn-voice{
1034
+ border-radius: 7px;
1035
+ border: 1px solid #dedede;
1036
+ background-color: #f5fbff;
1037
+ font: 15px PingFang-SC-Bold;
1038
+ color: #499edf;
1039
+ }
1040
+ .save-btn{
1041
+ width: 25%;
1042
+ background-color:#499edf;
1043
+ border-radius: 6px;
1044
+ color: #FFFFFF;
1045
+ font: 15px PingFang-SC-Bold;
1046
+ }
1047
+ .upload-btn{
1048
+ width: 25%;
1049
+ background-color:#ffffff;
1050
+ border: 1px solid #499edf;
1051
+ border-radius: 6px;
1052
+ color: #499edf;
1053
+ font: 15px PingFang-SC-Bold;
1054
+ }
1055
+ .repair-btn{
1056
+ width: 25%;
1057
+ border: 1px solid #499edf;
1058
+ border-radius: 6px;
1059
+ font: 15px PingFang-SC-Bold;
1060
+ }
1061
+ </style>