safecheck-client 4.0.0-21 → 4.0.0-23

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 (251) hide show
  1. package/package.json +1 -1
  2. package/src/components/CheckerCount/CheckCountUserList.vue +144 -144
  3. package/src/components/DefectDealMain/DefectListNew.vue +642 -642
  4. package/src/components/android/AddPlanItem.vue +447 -447
  5. package/src/components/android/AddPlanItemYy.vue +451 -451
  6. package/src/components/android/AddSpecialPlanItem.vue +426 -426
  7. package/src/components/android/BlackUserOnLine.vue +318 -318
  8. package/src/components/android/CurrentCreateYy.vue +1051 -1051
  9. package/src/components/android/Devices.vue +327 -327
  10. package/src/components/android/Devicesm.vue +327 -327
  11. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  12. package/src/components/android/PaperFeedbackm.vue +1026 -1026
  13. package/src/components/android/PhoneRecordInfo.vue +113 -113
  14. package/src/components/android/PhoneSellInfo.vue +113 -113
  15. package/src/components/android/PhoneUpDetail.vue +1040 -1040
  16. package/src/components/android/QRCode/QRCodeBinding.vue +300 -300
  17. package/src/components/android/QRCode/QRCodePage.vue +212 -212
  18. package/src/components/android/SafePlanItem.vue +509 -509
  19. package/src/components/android/SafecheckDevices.vue +1337 -1337
  20. package/src/components/android/UserinfoSelect.vue +714 -714
  21. package/src/components/android/examples/SafeListExamples.vue +296 -296
  22. package/src/components/android/old/PaperFeedback.vue +1015 -1015
  23. package/src/components/android/recheck/Recheck.vue +402 -402
  24. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  25. package/src/components/checkplan/checkmsg.vue +459 -459
  26. package/src/components/defect/DefectList.vue +507 -507
  27. package/src/components/defect/DefectListWeixiu.vue +484 -484
  28. package/src/components/filialCircle/CircleList.vue +139 -139
  29. package/src/components/inspections/AddInspectPlanItem.vue +325 -325
  30. package/src/components/inspections/AddInspectPlanItems.vue +325 -325
  31. package/src/components/inspections/AddInspectPlanItemss.vue +317 -317
  32. package/src/components/inspections/DisplayInspectionList.vue +1224 -1224
  33. package/src/components/inspections/inspectionFeedback.vue +720 -720
  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/pc/AnnouncementPC.vue +524 -524
  39. package/src/components/pc/DefectList.vue +742 -742
  40. package/src/components/pc/DeviceChange.vue +1068 -1068
  41. package/src/components/pc/SafeVisitInfo.vue +261 -261
  42. package/src/components/planmanage/PlanManage.vue +886 -888
  43. package/src/components/planmanage/checkPlanList.vue +368 -368
  44. package/src/components/querycheckpaper/CheckPaperList.vue +130 -130
  45. package/src/components/report/HiddenSituation.vue +165 -165
  46. package/src/components/rongcheng/AspPaperFeedback.vue +1179 -1179
  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/PaperFeedback.vue +1318 -1318
  51. package/src/components/rongcheng/SafecheckOrderVCli.vue +2641 -2641
  52. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -419
  53. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -1050
  54. package/src/components/safecheckNew/android/Recheck.vue +379 -379
  55. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  56. package/src/components/sendsingle/EquipmentManagement.vue +727 -727
  57. package/src/components/shaoguan/DefectList.vue +473 -473
  58. package/src/components/shaoguan/SafecheckOrderV.vue +2140 -2140
  59. package/src/components/tongcheng/PaperFeedback.vue +1061 -1061
  60. package/src/components/userfile/SecurityAudit.vue +243 -243
  61. package/src/components/userfileNew/UserInfoAuditNew.vue +274 -274
  62. package/src/filiale/ALshan/pc/DefectListWeixiu.vue +476 -476
  63. package/src/filiale/ancheng/android/PaperFeedback.vue +1489 -1489
  64. package/src/filiale/ancheng/android/SafecheckOrderV.vue +2703 -2703
  65. package/src/filiale/ancheng/android/SafecheckUserInfo.vue +737 -737
  66. package/src/filiale/ancheng/pc/checkScreen.vue +923 -923
  67. package/src/filiale/ankangyihua/android/AddPlanItem.vue +446 -446
  68. package/src/filiale/ankangyihua/android/SafecheckOrderV.vue +2908 -2908
  69. package/src/filiale/ankangyihua/pc/DefectListWeixiu.vue +491 -491
  70. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  71. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  72. package/src/filiale/bayan/android/Edit.vue +132 -132
  73. package/src/filiale/bayan/android/PaperFeedback.vue +1669 -1669
  74. package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
  75. package/src/filiale/bayan/pc/DeviceChange.vue +1838 -1838
  76. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  77. package/src/filiale/dexin/android/CasualSave.vue +1050 -1050
  78. package/src/filiale/dexin/android/SafecheckOrderV.vue +2950 -2950
  79. package/src/filiale/fugou/android/AddPlanItem.vue +413 -413
  80. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -2796
  81. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +830 -830
  82. package/src/filiale/fugu/android/SafecheckOrderV.vue +2484 -2484
  83. package/src/filiale/fugu/pc/NewCheckpaper.vue +1287 -1287
  84. package/src/filiale/ganquan/android/AddPlanItem.vue +444 -444
  85. package/src/filiale/ganquan/android/SafecheckOrderV.vue +2485 -2485
  86. package/src/filiale/ganquan/pc/NewCheckpaper.vue +1354 -1354
  87. package/src/filiale/guangxi/pc/DefectListNew.vue +518 -518
  88. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  89. package/src/filiale/hanzhong/android/SafecheckOrderV.vue +2683 -2683
  90. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  91. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -2803
  92. package/src/filiale/huatong/android/PaperFeedback.vue +1433 -1433
  93. package/src/filiale/huatong/android/SafecheckOrderV.vue +2426 -2426
  94. package/src/filiale/huatong/android/SafecheckUserInfo.vue +749 -749
  95. package/src/filiale/huayin/android/PaperFeedback.vue +1422 -1422
  96. package/src/filiale/huayin/android/SafecheckOrderV.vue +2712 -2712
  97. package/src/filiale/huayin/pc/NewCheckpaper.vue +1307 -1307
  98. package/src/filiale/jiaocheng/android/AddPlanItem.vue +435 -435
  99. package/src/filiale/jiaocheng/android/PaperFeedback.vue +1308 -1308
  100. package/src/filiale/jiaocheng/android/SafecheckUserInfo.vue +737 -737
  101. package/src/filiale/jiaocheng/pc/DefectListNew.vue +576 -576
  102. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -447
  103. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  104. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -784
  105. package/src/filiale/jinbin/pc/DefectListWeixiu.vue +478 -478
  106. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  107. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  108. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  109. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  110. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +26 -9
  111. package/src/filiale/kelai/android/AddPlanItem.vue +488 -488
  112. package/src/filiale/kelai/android/AndroidDefectDeal.vue +747 -747
  113. package/src/filiale/kelai/android/PaperFeedback.vue +1539 -1539
  114. package/src/filiale/kelai/android/SafecheckOrderV.vue +2448 -2448
  115. package/src/filiale/kelai/android/SafecheckUserInfo.vue +774 -774
  116. package/src/filiale/kelai/android/SafecheckUserInfo1.vue +618 -618
  117. package/src/filiale/kelai/pc/DefectListNew.vue +688 -688
  118. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasList.vue +518 -518
  119. package/src/filiale/kelai/pc/NewCheckpaper.vue +1454 -1454
  120. package/src/filiale/liaoyuan/android/AddPlanItem.vue +412 -412
  121. package/src/filiale/liaoyuan/android/CurrentCreate.vue +1066 -1066
  122. package/src/filiale/liaoyuan/android/SafecheckOrderV.vue +2388 -2388
  123. package/src/filiale/liaoyuan/android/SafecheckUserInfo.vue +557 -557
  124. package/src/filiale/liaoyuan/pc/DefectListWeixiu.vue +489 -489
  125. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +1020 -1020
  126. package/src/filiale/lixian/android/SafecheckOrderV.vue +2404 -2404
  127. package/src/filiale/lixian/android/SafecheckUserInfo.vue +578 -578
  128. package/src/filiale/lixian/pc/NewCheckpaper.vue +1211 -1211
  129. package/src/filiale/minsheng/android/SafecheckUserInfo.vue +754 -754
  130. package/src/filiale/minsheng/pc/DefectListNew.vue +535 -535
  131. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  132. package/src/filiale/pingxiang/android/SafecheckOrderV.vue +2424 -2424
  133. package/src/filiale/pingxiang/android/SafecheckUserInfo.vue +600 -600
  134. package/src/filiale/pingxiang/pc/DefectListNew.vue +519 -519
  135. package/src/filiale/pingxiang/pc/NewCheckpaper.vue +1294 -1294
  136. package/src/filiale/qianneng/android/AddPlanItem.vue +482 -482
  137. package/src/filiale/qianneng/android/PaperFeedback.vue +1434 -1434
  138. package/src/filiale/qianneng/android/SafecheckOrderV.vue +2785 -2785
  139. package/src/filiale/qianneng/android/SafecheckUserInfo.vue +775 -775
  140. package/src/filiale/qianneng/pc/DefectListNew.vue +576 -576
  141. package/src/filiale/qianneng/pc/NewCheckpaper.vue +1546 -1546
  142. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2844
  143. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  144. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -450
  145. package/src/filiale/qingtongxia/android/SafecheckOrderV.vue +2726 -2726
  146. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -782
  147. package/src/filiale/qingtongxia/pc/DefectListNew.vue +594 -594
  148. package/src/filiale/rizhao/android/AddPlanItem.vue +446 -446
  149. package/src/filiale/rizhao/android/PaperFeedback.vue +1510 -1510
  150. package/src/filiale/rizhao/android/SafecheckOrderV.vue +2430 -2430
  151. package/src/filiale/rizhao/android/SafecheckUserInfo.vue +640 -640
  152. package/src/filiale/rizhao/pc/DefectList.vue +489 -489
  153. package/src/filiale/rongchuang/android/PaperFeedback.vue +1455 -1455
  154. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  155. package/src/filiale/rongchuang/android/checkpapermsg.vue +209 -209
  156. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -2747
  157. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -804
  158. package/src/filiale/shanggao/android/PaperFeedback.vue +1422 -1422
  159. package/src/filiale/shanggao/android/SafecheckOrderV.vue +2426 -2426
  160. package/src/filiale/shanxian/android/PaperFeedback.vue +1445 -1445
  161. package/src/filiale/shanxian/android/SafecheckUserInfo.vue +749 -749
  162. package/src/filiale/shanxian/pc/HiddenSituation.vue +121 -121
  163. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  164. package/src/filiale/shexian/android/AddPlanItem.vue +444 -444
  165. package/src/filiale/shexian/android/PaperFeedback.vue +1448 -1448
  166. package/src/filiale/shexian/android/SafecheckOrderV.vue +2879 -2879
  167. package/src/filiale/shexian/pc/DefectListNew.vue +593 -593
  168. package/src/filiale/shexian/pc/NewCheckpaper.vue +1469 -1469
  169. package/src/filiale/shimen/android/PaperFeedback.vue +1341 -1341
  170. package/src/filiale/shimen/android/SafecheckUserInfo.vue +547 -547
  171. package/src/filiale/shimen/pc/DefectList.vue +473 -473
  172. package/src/filiale/shimen/pc/NewCheckpaper.vue +1275 -1275
  173. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  174. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -1051
  175. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -214
  176. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -2796
  177. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  178. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -167
  179. package/src/filiale/tianke/android/AddPlanItem.vue +455 -455
  180. package/src/filiale/tianke/android/SafecheckOrderV.vue +2431 -2431
  181. package/src/filiale/tianke/android/SafecheckUserInfo.vue +744 -744
  182. package/src/filiale/tongchuan/android/AddPlanItem.vue +483 -483
  183. package/src/filiale/tongchuan/android/PaperFeedback.vue +1316 -1316
  184. package/src/filiale/tongchuan/android/PhoneRecordInfo.vue +191 -191
  185. package/src/filiale/tongchuan/android/PhoneSellInfo.vue +113 -113
  186. package/src/filiale/tongchuan/android/SafecheckUserInfo.vue +720 -720
  187. package/src/filiale/tongchuan/pc/CheckBookDetails.vue +209 -209
  188. package/src/filiale/tongchuan/pc/DefectListWeixiu.vue +484 -484
  189. package/src/filiale/tongchuan/pc/HiddenSituation.vue +166 -166
  190. package/src/filiale/weinan/android/AddPlanItem.vue +438 -438
  191. package/src/filiale/weinan/android/CurrentCreate.vue +1171 -1171
  192. package/src/filiale/weinan/android/CurrentCreateOnline.vue +911 -911
  193. package/src/filiale/weinan/android/SafePlanItem.vue +440 -440
  194. package/src/filiale/weinan/android/SafecheckUserInfo.vue +778 -778
  195. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  196. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -1088
  197. package/src/filiale/weinan/pc/HiddenSituation.vue +167 -167
  198. package/src/filiale/weinan/pc/checkScreen.vue +1094 -1094
  199. package/src/filiale/weinanct/android/SafecheckOrderV.vue +2730 -2730
  200. package/src/filiale/weinanct/pc/NewCheckpaper.vue +1315 -1315
  201. package/src/filiale/wensu/android/AddPlanItem.vue +495 -495
  202. package/src/filiale/wensu/android/AndroidDefectDeal.vue +464 -464
  203. package/src/filiale/wensu/android/PaperFeedback.vue +1358 -1358
  204. package/src/filiale/wensu/android/SafecheckOrderV.vue +2430 -2430
  205. package/src/filiale/wensu/android/SafecheckUserInfo.vue +627 -627
  206. package/src/filiale/wensu/pc/DefectListNew.vue +735 -735
  207. package/src/filiale/wenxi/android/AddPlanItem.vue +431 -431
  208. package/src/filiale/wenxi/android/PaperFeedback.vue +1607 -1607
  209. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2671 -2671
  210. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +673 -673
  211. package/src/filiale/wenxi/pc/DefectList.vue +653 -653
  212. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1358 -1358
  213. package/src/filiale/wuan/android/PaperFeedback.vue +1433 -1433
  214. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2241
  215. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -596
  216. package/src/filiale/wuan/pc/DefectListWeixiu.vue +506 -506
  217. package/src/filiale/wuan/pc/NewCheckpaper.vue +1169 -1169
  218. package/src/filiale/wuhai/android/PaperFeedback.vue +1350 -1350
  219. package/src/filiale/wuhai/android/SafecheckOrderV.vue +2456 -2456
  220. package/src/filiale/wuhai/android/SafecheckUserInfo.vue +573 -573
  221. package/src/filiale/wuhai/pc/NewCheckpaper.vue +1281 -1281
  222. package/src/filiale/xinkang/android/SafecheckOrderV.vue +2732 -2732
  223. package/src/filiale/xinkang/android/SafecheckUserInfo.vue +747 -747
  224. package/src/filiale/xinkang/pc/DefectListWeixiu.vue +475 -475
  225. package/src/filiale/xinkang/pc/NewCheckpaper.vue +1498 -1498
  226. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +496 -496
  227. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  228. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2865 -2865
  229. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  230. package/src/filiale/yangchunboneng/pc/DefectListNew.vue +576 -576
  231. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  232. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  233. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  234. package/src/filiale/yuansheng/android/PaperFeedback.vue +1488 -1488
  235. package/src/filiale/yuansheng/android/SafecheckOrderV.vue +2758 -2758
  236. package/src/filiale/yuansheng/android/SafecheckUserInfo.vue +797 -797
  237. package/src/filiale/yuansheng/pc/DefectListNew.vue +524 -524
  238. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +1371 -1371
  239. package/src/filiale/yuansheng/pc/checkmsg.vue +464 -464
  240. package/src/filiale/zhongsheng/android/BuyRecords.vue +122 -122
  241. package/src/filiale/zhongsheng/android/PaperFeedback.vue +1341 -1341
  242. package/src/filiale/zhongsheng/android/SafecheckOrderV.vue +2461 -2461
  243. package/src/filiale/zhongsheng/android/SafecheckUserInfo.vue +690 -690
  244. package/src/filiale/zhongsheng/pc/DefectListWeixiu.vue +514 -514
  245. package/src/filiale/zhongsheng/pc/NewCheckpaper.vue +1322 -1322
  246. package/src/filiale/zhongyi/android/SafecheckOrderV.vue +2431 -2431
  247. package/src/filiale/zhongyi/pc/DefectListNew.vue +514 -514
  248. package/src/filiale/zhoukou/android/PaperFeedback.vue +1367 -1367
  249. package/src/filiale/zhoukou/android/SafecheckOrderV.vue +2502 -2502
  250. package/src/filiale/zhoukou/android/SafecheckUserInfo.vue +588 -588
  251. package/src/main.js +32 -33
@@ -1,688 +1,688 @@
1
- <template>
2
- <div>
3
- <div :style="{'height':needRepair?'60%':'100%'}">
4
- <criteria-paged :model="model" :pager="false" v-ref:paged>
5
- <criteria partial='criteria'>
6
- <div partial>
7
- <ul class="nav nav-tabs">
8
- <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
9
- </ul>
10
- </div>
11
- </criteria>
12
- <data-grid :model="model" partial='list' class="table_sy">
13
- <template partial='head'>
14
- <tr>
15
- <!-- <th>-->
16
- <!-- <nobr>隐患设备</nobr>-->
17
- <!-- </th>-->
18
- <th>
19
- <nobr>隐患项</nobr>
20
- </th>
21
- <th>
22
- <nobr>隐患原因</nobr>
23
- </th>
24
- <th>
25
- <nobr>隐患处理方式</nobr>
26
- </th>
27
- <th>
28
- <nobr>处理结果</nobr>
29
- </th>
30
- <th v-if="$parent.$parent.$parent.checkDefect=='是'">
31
- <nobr>审核结果</nobr>
32
- </th>
33
- <th>
34
- <nobr>操作</nobr>
35
- </th>
36
- </tr>
37
- </template>
38
- <template partial='body'>
39
- <!-- <td style="text-align: center">-->
40
- <!-- <nobr>{{row.f_device_type}}</nobr>-->
41
- <!-- </td>-->
42
- <td style="text-align: center">
43
- <nobr>{{row.f_item_name}}</nobr>
44
- </td>
45
- <td style="text-align: center">
46
- <nobr>{{row.f_item_value}}</nobr>
47
- </td>
48
- <td style="text-align: center">
49
- <nobr>{{row.f_repaire_type}}</nobr>
50
- </td>
51
- <td style="text-align: center">
52
- <nobr>{{row.f_repaire_state}}</nobr>
53
- </td>
54
- <td style="text-align: center" v-if="$parent.$parent.$parent.checkDefect=='是'">
55
- <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>
56
- </td>
57
- <td style="text-align: center">
58
- <div>
59
- <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '维修已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
60
- <!-- <button style="margin-top: 3px" v-if="row.f_repaire_type == '维修已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>-->
61
- <button style="margin-top: 3px" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect(row, row.f_repaire_type)">处理详情</button>
62
- <button style="margin-top: 3px" v-if="row.f_repaire_type == '隐患未处理' && $parent.$parent.$parent.showHandleDefectButton === '是'" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect(row, 'solve')">处理隐患</button>
63
- </div>
64
- </td>
65
- </template>
66
- </data-grid>
67
- </criteria-paged>
68
- </div>
69
-
70
- <div style="overflow-y: scroll;height: 40%" v-if="needRepair">
71
- <div class="form-horizontal auto">
72
- <ul class="nav nav-tabs">
73
- <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>
74
- </ul>
75
- <validator name='v' @valid="valid = true" @invalid="valid = false">
76
- <div class="row">
77
- <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">
78
- <label for="dispatchtype" class="font_normal_body">派发类型</label>
79
- <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>
80
- <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"
81
- :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'
82
- close-on-select v-ref:dispatchtype>
83
- </v-select>
84
- </div>
85
- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">
86
- <label class="font_normal_body">站&nbsp;&nbsp;点</label>
87
- <right-tree
88
- islist
89
- :userid="$login.f.id"
90
- :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
91
- @re-res="getSiteRes">
92
- </right-tree>
93
- </div>
94
- <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">
95
- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>
96
- <label class="font_normal_body">维修员</label>
97
- <v-select
98
- :value.sync="toRepairModal.preData.f_repairman"
99
- :value-single="true"
100
- :options='toRepairModal.preData.repairers'
101
- placeholder='请选择维修员'
102
- close-on-select></v-select>
103
- </div>
104
- <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">
105
- <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>
106
- <label class="font_normal_body">报修类型</label>
107
- <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"
108
- class="select select_list"
109
- :value-single="true"
110
- :options='toRepairModal.preData.repairTypeOptions'
111
- close-on-select>
112
- </v-select>
113
- </div>
114
- </div>
115
- <div class="row">
116
- <div class="col-sm-8 form-group">
117
- <label class="font_normal_body" >备&emsp;&emsp;注</label>
118
- <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">
119
-
120
- </div>
121
- <div class="col-sm-4" style="margin-top: 1%">
122
- <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>
123
- </div>
124
- </div>
125
- </validator>
126
- </div>
127
- </div>
128
- <modal :show.sync="showSolveModal" v-ref:solveModal>
129
- <div slot="modal-header" class="modal-header">
130
- <h4 class="modal-title">
131
- {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
132
- </h4>
133
- </div>
134
- <div slot="modal-body" class="modal-body">
135
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
136
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
137
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
138
- </div>
139
-
140
- <div class="col-sm-6" style="margin-top: 10px">
141
- <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
142
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
143
- </div>
144
- <div class="col-sm-6" style="margin-top: 10px">
145
- <label class="font_normal_body">安检时间</label>
146
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
147
- </div>
148
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg" >
149
- <label class="font_normal_body">隐患图片</label>
150
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
151
- </div>
152
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg1">
153
- <label class="font_normal_body">隐患图片</label>
154
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
155
- </div>
156
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg2">
157
- <label class="font_normal_body">隐患图片</label>
158
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
159
- </div>
160
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg3">
161
- <label class="font_normal_body">隐患图片</label>
162
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
163
- </div>
164
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg4">
165
- <label class="font_normal_body">隐患图片</label>
166
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg4"></img-self>
167
- </div>
168
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg5">
169
- <label class="font_normal_body">隐患图片</label>
170
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg5"></img-self>
171
- </div>
172
- <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg6">
173
- <label class="font_normal_body">隐患图片</label>
174
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg6"></img-self>
175
- </div>
176
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left" v-show="solveModal.preData.state == '已处理' || solveModal.preData.type != 'solve'">
177
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
178
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
179
- </div>
180
- <div class="col-sm-6" style="margin-top: 10px" v-show="solveModal.preData.state == '已处理'">
181
- <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
182
- <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
183
- <v-select
184
- v-if="solveModal.preData.type == 'solve'"
185
- :value.sync="solveModal.uploadData.f_repairman"
186
- :value-single="true"
187
- :options='toRepairModal.preData.repairers'
188
- placeholder='请选择维修员'
189
- close-on-select></v-select>
190
- </div>
191
- <div class="col-sm-6" style="margin-top: 10px" v-show="solveModal.preData.state == '已处理'">
192
- <label class="font_normal_body">处理时间</label>
193
- <datepicker
194
- :disabled="solveModal.preData.type == 'view'"
195
- placeholder='处理时间' style="width:60%"
196
- :disabled-days-of-week="[]"
197
- :format="'yyyy-MM-dd'"
198
- :show-rest-button="reset"
199
- :value.sync="solveModal.uploadData.f_repair_date">
200
- </datepicker>
201
- </div>
202
- <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
203
- <label class="font_normal_body">处理后图片</label>
204
- <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
205
- </div>
206
- <div v-if="solveModal.preData.state == '已处理' && (solveModal.preData.repairedImg || solveModal.preData.repairedImg1 || solveModal.preData.repairedImg2) " class="col-sm-12" style="margin-bottom: 10px">
207
- <p> <label class="font_normal_body">处理后图片</label></p>
208
- <P></P>
209
- <div class="col-sm-12">
210
- <div class="col-sm-6" v-if="solveModal.preData.repairedImg">
211
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg" style="margin-left: 10px"></img-self>
212
- </div>
213
- <div class="col-sm-6" v-if="solveModal.preData.repairedImg1">
214
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg1" style="margin-left: 10px"></img-self>
215
- </div>
216
- <div class="col-sm-6" v-if="solveModal.preData.repairedImg2">
217
- <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2" style="margin-left: 10px"></img-self>
218
- </div>
219
- </div>
220
- </div>
221
- </div>
222
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
223
- <button class="button_search" v-if="checkDefect=='是' && solveModal.preData.type == 'view'" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>
224
- <button class="button_search" v-if="checkDefect=='是' && solveModal.preData.type == 'view'" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>
225
- <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
226
- <button class="button_search" @click="cancel">取消</button>
227
- <button class="button_search" @click="showRectificationHistory(solveModal.uploadData.id)">历史整改记录</button>
228
- </div>
229
- </modal>
230
- <modal :show.sync="rectificationHistory" v-ref:solveModal>
231
- <div slot="modal-header" class="modal-header">
232
- <h4 class="modal-title">
233
- 历史记录
234
- </h4>
235
- </div>
236
- <div slot="modal-body" class="modal-body">
237
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
238
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
239
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
240
- </div>
241
- <div class="col-sm-6" style="margin-top: 10px">
242
- <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
243
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
244
- </div>
245
- <div class="col-sm-6" style="margin-top: 10px">
246
- <label class="font_normal_body">安检时间</label>
247
- <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
248
- </div>
249
- <div class="col-sm-12" style="margin-bottom: 10px" v-if="solveModal.preData.defectImg">
250
- <label class="font_normal_body">隐患图片</label>
251
- <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
252
- </div>
253
-
254
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
255
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
256
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
257
- </div>
258
- <div v-for="item in repair_data" v-show="solveModal.preData.state == '已处理'">
259
- <div class="col-sm-6" style="margin-top: 10px">
260
- <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
261
- <input class="input_search" style="width: 60%" disabled="true" type="text" v-model="item.f_dealer" placeholder="处理人">
262
- </div>
263
- <div class="col-sm-6" style="margin-top: 10px">
264
- <label class="font_normal_body">处理时间</label>
265
- <input class="input_search" style="width: 60%" disabled="true" type="text" v-model="item.f_repair_date" placeholder="处理时间">
266
- </div>
267
- <div v-if="(item.f_dealpath || item.f_other_dealpath1 || item.f_other_dealpath2) " class="col-sm-12" style="margin-bottom: 10px">
268
- <p> <label class="font_normal_body">处理后图片</label></p>
269
- <P></P>
270
- <div class="col-sm-12">
271
- <div class="col-sm-6" v-if="item.f_dealpath">
272
- <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_dealpath" style="margin-left: 10px"></img-self>
273
- </div>
274
- <div class="col-sm-6" v-if="item.f_other_dealpath1">
275
- <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_other_dealpath1" style="margin-left: 10px"></img-self>
276
- </div>
277
- <div class="col-sm-6" v-if="item.f_other_dealpath2">
278
- <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_other_dealpath2" style="margin-left: 10px"></img-self>
279
- </div>
280
- </div>
281
- </div>
282
- </div>
283
- </div>
284
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
285
- <button class="button_search" @click="rectificationHistory = false">关闭</button>
286
- </div>
287
- </modal>
288
- </div>
289
- </template>
290
-
291
- <script>
292
- import {PagedList, HttpResetClass} from 'vue-client'
293
- import * as Util from '../../../components/Util'
294
- import co from 'co'
295
- import Vue from "vue";
296
-
297
- const upSolveDefect = function * (self) {
298
- let uploadData = self.solveModal.uploadData
299
- //tag)
300
- self.$resetpost('/api/af-safecheck/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
301
- .then(res => {
302
- if (res.data.code === 200) {
303
- self.$showMessage('隐患已处理。')
304
- self.showSolveModal = false
305
- self.model.search('f_repaire_type != \'无隐患\'', {})
306
- self.solveModal.uploadData={
307
- id: '',
308
- f_repairman: self.$login.f.name,
309
- f_repair_date: Util.getNowDate().substr(0, 10),
310
- f_repair_path: '',
311
- imgSrc: '',
312
- filename: '',
313
- f_defect_remark:''
314
- }
315
- }
316
- })
317
- }
318
-
319
- const sendRepair = function* (self) {
320
- let preData = self.toRepairModal.preData
321
- let uploadData = self.toRepairModal.uploadData
322
-
323
- if (preData.dispatchType == '派发给站点') {
324
- uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
325
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
326
- uploadData.model.f_meetunit = preData.f_meetunit
327
- uploadData.model.f_orgstr = preData.f_reciever
328
- uploadData.model.f_outlets = preData.f_outlets
329
- } else if (preData.dispatchType == '派发给维修员') {
330
- uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
331
- // uploadData.model.f_meetunit = self.$login.f.orgpathnames
332
- // uploadData.model.f_orgstr = self.$login.f.orgpathstr
333
- // uploadData.model.f_outlets = self.$login.f.f_parentname
334
- uploadData.model.f_meetunit = self.$login.f.deps
335
- uploadData.model.f_orgid = self.$login.f.orgid
336
- uploadData.model.f_filiale = self.$login.f.org
337
- uploadData.model.f_outlets = self.$login.f.deps
338
- uploadData.model.f_filiale_id = self.$login.f.orgid
339
- uploadData.toRepair = '一级派单'
340
- }
341
- let res = yield self.$resetpost('/api/af-safecheck/sql/GetUserForRepaireNew', {data: {f_userinfo_id: self.check.f_userinfo_id}})
342
- preData.userInfo = res.data[0]
343
- uploadData.model = Object.assign(uploadData.model, preData.userInfo)
344
- uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
345
- uploadData.model.f_repair_date = Util.getNowDate()
346
- uploadData.model.f_repairtype = preData.f_repairtype
347
- uploadData.model.f_remarks = preData.f_remarks
348
- // 拼接failure
349
- let failure = []
350
- self.model.rows.forEach(row => {
351
- if (row.f_repaire_type == '隐患未处理') {
352
- failure.push({
353
- f_failure_type: row.f_item_name,
354
- failurecase: row.f_item_value?row.f_item_value.split(','):''
355
- })
356
- }
357
- })
358
- uploadData.model.failure = failure
359
- // 拼接repairitems
360
- let rows = JSON.parse(JSON.stringify(self.model.rows))
361
- let repairitems = {
362
- data: []
363
- }
364
- let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
365
- // 取隐患未处理的
366
- rows = rows.filter(row => row.f_repaire_type == '隐患未处理')
367
- //tag)
368
- // 开始拼接
369
- rows.forEach(row => {
370
- let existIndex = -1
371
- // 判断该设备是否已经存在
372
- for (let i = 0; i < repairitems.data.length; i++) {
373
- if (repairitems.data[i].f_type == row.f_device_type) {
374
- existIndex = i
375
- break
376
- }
377
- }
378
- if (existIndex == -1) {
379
- // 不存在则新建
380
- let newItem = {
381
- f_type: row.f_device_type,
382
- details: [{
383
- f_defect_id: row.id,
384
- f_project: `${row.f_item_name}:${row.f_item_value}`,
385
- type: 'selector',
386
- options: safecheckOptions
387
- }]
388
- }
389
- repairitems.data.push(newItem)
390
- } else {
391
- // 存在则追加
392
- repairitems.data[existIndex].details.push({
393
- f_defect_id: row.id,
394
- f_project: `${row.f_item_name}:${row.f_item_value}`,
395
- type: 'selector',
396
- options: safecheckOptions
397
- })
398
- }
399
- })
400
- uploadData.model.f_repairitems = repairitems
401
- //tag)
402
- // 调工单接口
403
- let result = yield self.$resetpost('/api/af-safecheck/logic/callerSend', uploadData)
404
- //tag)
405
- if (result.data.f_service_id) {
406
- const data = {
407
- f_paper_id: rows[0].f_paper_id,
408
- f_service_id: result.data.f_service_id,
409
- itemsId: self.$login.convertToIn(rows.map(row => row.id))
410
- }
411
- //tag
412
- let updateRes = yield self.$resetpost('/api/af-safecheck/logic/updateDefectStateNew', data)
413
- if (updateRes.data.code == 200) {
414
- self.$showMessage('隐患已转维修。')
415
- self.model.search(`f_repaire_type != '无隐患'`, {})
416
- }
417
- }
418
- }
419
-
420
- export default {
421
- title: '隐患项列表',
422
- data() {
423
- return {
424
- repair_data:[],
425
- rectificationHistory:false,
426
- model: new PagedList('api/af-safecheck/sql/GetDefectByPaperIdNew', 100, {
427
- f_paper_id: 'this.f_paper_id',f_item_value: 'this.f_item_value'
428
- }),
429
- showSolveModal: false,
430
- showToRepairModal: false,
431
- showDefectModal: false,
432
- valid: false,
433
- checkDefect:null,
434
- needRepair: false,
435
- solveModal: {
436
- preData: {
437
- type: '',
438
- defectImg: '',
439
- defectImg1: '',
440
- defectImg2: '',
441
- defectImg3: '',
442
- defectImg4: '',
443
- defectImg5: '',
444
- defectImg6: '',
445
- repairedImg: '',
446
- repairedImg1: '',
447
- repairedImg2: '',
448
- state: ''
449
- },
450
- uploadData: {
451
- id: '',
452
- f_repairman: this.$login.f.name,
453
- f_repair_date: Util.getNowDate().substr(0, 10),
454
- f_repair_path: '',
455
- imgSrc: '',
456
- filename: ''
457
- }
458
- },
459
- toRepairModal: {
460
- preData: {
461
- dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {label: '派发给维修员', value: '派发给维修员'}],
462
- repairTypeOptions: this.$appdata.getParam('报修类型'),
463
- dispatchType: '',
464
- f_repairman: '',
465
- f_repairtype: '',
466
- f_remarks: '',
467
- f_meetunit: '',
468
- f_reciever: '',
469
- f_outlets: '',
470
- userInfo: {},
471
- repairers: []
472
- },
473
- uploadData: {
474
- model: {
475
- serviceacitivity: [{
476
- f_service_acitivity_type: '派单'
477
- }],
478
- f_repairitems: {},
479
- failure: '',
480
- f_source: '安检',
481
- f_service_id: '',
482
- f_contact_phone: '',
483
- f_meetunit: '',
484
- f_phone: '',
485
- f_user_name: '',
486
- f_address: '',
487
- f_repair_date: '',
488
- f_reciever: '',
489
- f_remarks: '',
490
- f_user_type: '',
491
- f_area: '',
492
- f_unit_name: '',
493
- f_street: '',
494
- f_residential_area: '',
495
- f_building: '',
496
- f_unit: '',
497
- f_floor: '',
498
- f_room: '',
499
- aState: '',
500
- f_repairtype: '',
501
- f_userinfo_id: '',
502
- f_userinfo_code: '',
503
- f_orgstr: '',
504
- f_outlets: '',
505
- f_attendant: this.$login.f.name
506
- },
507
- loginUser: {
508
- name: this.$login.f.name,
509
- ename: this.$login.f.ename
510
- },
511
- user: {
512
- f_userinfo_id: ''
513
- },
514
- callObj: null
515
- }
516
- },
517
- showHandleDefectButton: null
518
- }
519
- },
520
- props: ['check'],
521
- ready() {
522
- this.checkDefect=Vue.$appdata.getSingleValue('安检隐患维修后审核')
523
- this.showHandleDefectButton = Vue.$appdata.getSingleValue('隐患查看处理隐患')
524
- this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
525
- if (this.check) {
526
- this.model.f_paper_id = this.check.id
527
- this.model.search(`f_repaire_type != '无隐患'`, {})
528
- }
529
- this.getEmp()
530
- },
531
- methods: {
532
- showRectificationHistory(id){
533
- new HttpResetClass().load('POST','api/af-safecheck/sql/safe_singleTable_OrderBy', {data: {
534
- items: '*',
535
- tablename: 't_check_repair_records',
536
- condition: `f_item_id = '${id}'`,
537
- orderitem: 'f_repair_date'
538
- }}, {resolveMsg: null, rejectMsg: null}).then(response=>{
539
- this.repair_data=response.data
540
- })
541
- this.rectificationHistory = true
542
- },
543
- //审核通过
544
- auditsure(info){
545
- // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
546
- var data = {
547
- id: this.solveModal.uploadData.id,
548
- info:info
549
- }
550
- let http = new HttpResetClass()
551
- http.load('POST', 'api/af-safecheck/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
552
- if(res.data.code == 200){
553
- this.model.search(`f_repaire_type != '无隐患'`, {})
554
- this.showSolveModal = false
555
- this.showToRepairModal = false
556
- this.$showMessage('提交成功')
557
- }else{
558
- this.$showMessage('提交失败,请重试')
559
- }
560
- })
561
- },
562
- solveDefect(row, type) {
563
- console.log(row)
564
- this.solveModal.preData.defectImg = ''
565
- this.solveModal.preData.defectImg1 = ''
566
- this.solveModal.preData.defectImg2 = ''
567
- this.solveModal.preData.defectImg3 = ''
568
- this.solveModal.preData.defectImg4 = ''
569
- this.solveModal.preData.defectImg5 = ''
570
- this.solveModal.preData.defectImg6 = ''
571
- this.solveModal.preData.f_repair_path = ''
572
- this.solveModal.preData.repairedImg = ''
573
- this.solveModal.preData.repairedImg1 = ''
574
- this.solveModal.preData.repairedImg2 = ''
575
- this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:null
576
- this.solveModal.preData.defectImg1 =row.f_path?'/rs/image/file/' + row.f_p1_path:null
577
- this.solveModal.preData.defectImg2 = row.f_path?'/rs/image/file/' + row.f_p2_path:null
578
- this.solveModal.preData.defectImg3 = row.f_path?'/rs/image/file/' + row.f_p3_path:null
579
- this.solveModal.preData.defectImg4 = row.f_path?'/rs/image/file/' + row.f_p4_path:null
580
- this.solveModal.preData.defectImg5 = row.f_path?'/rs/image/file/' + row.f_p5_path:null
581
- this.solveModal.preData.defectImg6 = row.f_path?'/rs/image/file/' + row.f_p6_path:null
582
- this.solveModal.uploadData.id = row.id
583
- this.solveModal.preData.type = type
584
- this.solveModal.preData.state = row.f_repaire_state
585
- this.solveModal.preData.source = row.f_repair_path_source
586
- if (row.f_repaire_state === '已处理') {
587
- if (row.f_repair_path_source === '微信') {
588
- this.solveModal.preData.f_repair_path = row.f_repair_path
589
- this.solveModal.preData.repairedImg = row.f_repair_path
590
- this.solveModal.preData.repairedImg1 = row.f_repair1_path
591
- } else {
592
- this.solveModal.preData.f_repair_path = row.f_repair_path? '/rs/image/file/' + row.f_repair_path:null
593
- this.solveModal.preData.repairedImg = row.f_repair_path? '/rs/image/file/' + row.f_repair_path:null
594
- this.solveModal.preData.repairedImg1 = row.f_other_dealpath1? '/rs/image/file/' + row.f_other_dealpath1:null
595
- this.solveModal.preData.repairedImg2 = row.f_other_dealpath2? '/rs/image/file/' + row.f_other_dealpath2:null
596
- }
597
- if (type === '现场已处理') {
598
- this.solveModal.uploadData.f_repairman = this.check.f_checker_name
599
- this.solveModal.uploadData.f_repair_date = this.check.f_offsite_time
600
- } else {
601
- this.solveModal.uploadData.f_repairman = row.f_repairman
602
- this.solveModal.uploadData.f_repair_date = row.f_repair_date
603
- this.$set('solveModal.f_audit_results',row.f_audit_results)
604
- }
605
- } else {
606
- this.solveModal.uploadData.f_repairman = this.$login.f.name
607
- this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
608
- }
609
- this.showSolveModal = !this.showSolveModal
610
- },
611
- ok() {
612
- if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
613
- this.$showMessage('请录入处理后照片')
614
- return
615
- }
616
- co(upSolveDefect(this))
617
- },
618
- cancel() {
619
- this.showSolveModal = false
620
- this.showToRepairModal = false
621
- },
622
- toRepair() {
623
- this.showToRepairModal = !this.showToRepairModal
624
- },
625
- getSiteRes(obj) {
626
- //tag
627
- //tag
628
- if(obj.resids[0]){
629
- this.toRepairModal.preData.f_meetunit = obj.res.join('.')
630
- this.toRepairModal.preData.f_reciever = obj.resids.join('.')
631
- }else {
632
- this.toRepairModal.preData.f_meetunit = ''
633
- this.toRepairModal.preData.f_reciever = ''
634
- this.toRepairModal.preData.f_outlets = ''
635
- }
636
- },
637
- // 获取维修员
638
- getEmp() {
639
- let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
640
- let http = new HttpResetClass()
641
- http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
642
- res.data.forEach((item) => {
643
- let http1 = new HttpResetClass()
644
- http1.load('POST', 'api/af-safecheck/sql/safe_singleTable_OrderBy', {
645
- data: {
646
- items: 'f_user_telephone',
647
- tablename: 't_user',
648
- condition: `id = ${item.id}`,
649
- orderitem: 'id'
650
- }
651
- }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
652
- this.toRepairModal.preData.repairers.push({label: `${item.name}:${ress.data[0].f_user_telephone}`, value: item.name})
653
- })
654
- })
655
- })
656
- },
657
- confirm() {
658
- if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
659
- this.$showMessage('请选择站点。')
660
- return
661
- }
662
- co(sendRepair(this))
663
- }
664
- },
665
- watch: {
666
- 'check'() {
667
- this.model.f_paper_id = this.check.id
668
- this.model.search(`f_repaire_type != '无隐患'`, {})
669
- },
670
- /*'model.rows'() {
671
- if (this.model.rows.length > 0) {
672
- if (this.model.rows[0].f_repaire_type == '隐患未处理') {
673
- this.needRepair = true
674
- return
675
- }
676
- }
677
- this.needRepair = false
678
- }*/
679
- }
680
- }
681
- </script>
682
- <style lang="less" scoped>
683
- .select-error {
684
- button {
685
- border-bottom: 1px solid #a94442 !important;
686
- }
687
- }
688
- </style>
1
+ <template>
2
+ <div>
3
+ <div :style="{'height':needRepair?'60%':'100%'}">
4
+ <criteria-paged :model="model" :pager="false" v-ref:paged>
5
+ <criteria partial='criteria'>
6
+ <div partial>
7
+ <ul class="nav nav-tabs">
8
+ <li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">隐患明细</a></li>
9
+ </ul>
10
+ </div>
11
+ </criteria>
12
+ <data-grid :model="model" partial='list' class="table_sy">
13
+ <template partial='head'>
14
+ <tr>
15
+ <!-- <th>-->
16
+ <!-- <nobr>隐患设备</nobr>-->
17
+ <!-- </th>-->
18
+ <th>
19
+ <nobr>隐患项</nobr>
20
+ </th>
21
+ <th>
22
+ <nobr>隐患原因</nobr>
23
+ </th>
24
+ <th>
25
+ <nobr>隐患处理方式</nobr>
26
+ </th>
27
+ <th>
28
+ <nobr>处理结果</nobr>
29
+ </th>
30
+ <th v-if="$parent.$parent.$parent.checkDefect=='是'">
31
+ <nobr>审核结果</nobr>
32
+ </th>
33
+ <th>
34
+ <nobr>操作</nobr>
35
+ </th>
36
+ </tr>
37
+ </template>
38
+ <template partial='body'>
39
+ <!-- <td style="text-align: center">-->
40
+ <!-- <nobr>{{row.f_device_type}}</nobr>-->
41
+ <!-- </td>-->
42
+ <td style="text-align: center">
43
+ <nobr>{{row.f_item_name}}</nobr>
44
+ </td>
45
+ <td style="text-align: center">
46
+ <nobr>{{row.f_item_value}}</nobr>
47
+ </td>
48
+ <td style="text-align: center">
49
+ <nobr>{{row.f_repaire_type}}</nobr>
50
+ </td>
51
+ <td style="text-align: center">
52
+ <nobr>{{row.f_repaire_state}}</nobr>
53
+ </td>
54
+ <td style="text-align: center" v-if="$parent.$parent.$parent.checkDefect=='是'">
55
+ <nobr>{{row.f_audit_results?row.f_audit_results:'暂无审核结果'}}</nobr>
56
+ </td>
57
+ <td style="text-align: center">
58
+ <div>
59
+ <!-- <img-button v-if="row.f_repaire_type != '无隐患' && row.f_repaire_type != '维修已处理' && row.f_path" :src="'/rs/image/file/'+row.f_path" :value="'隐患图片'"></img-button>-->
60
+ <!-- <button style="margin-top: 3px" v-if="row.f_repaire_type == '维修已处理'" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect( row, 'view')">处理详情</button>-->
61
+ <button style="margin-top: 3px" class="button_new-1 button_spacing" @click="$parent.$parent.$parent.solveDefect(row, row.f_repaire_type)">处理详情</button>
62
+ <button style="margin-top: 3px" v-if="row.f_repaire_type == '隐患未处理' && $parent.$parent.$parent.showHandleDefectButton === '是'" class="button_spacing button_search-1" @click="$parent.$parent.$parent.solveDefect(row, 'solve')">处理隐患</button>
63
+ </div>
64
+ </td>
65
+ </template>
66
+ </data-grid>
67
+ </criteria-paged>
68
+ </div>
69
+
70
+ <div style="overflow-y: scroll;height: 40%" v-if="needRepair">
71
+ <div class="form-horizontal auto">
72
+ <ul class="nav nav-tabs">
73
+ <li role="presentation" class="active"><a style=" color: #000 !important;font-size: 14px">转维修</a></li>
74
+ </ul>
75
+ <validator name='v' @valid="valid = true" @invalid="valid = false">
76
+ <div class="row">
77
+ <div class="col-sm-4" :class="[$v.dispatchtype.required ? 'select-error' : '']">
78
+ <label for="dispatchtype" class="font_normal_body">派发类型</label>
79
+ <input id="dispatchtype" type="text" v-show="false" v-model="$refs.dispatchtype.selectedItems" v-validate:dispatchtype='{required: true }'>
80
+ <v-select :value.sync="toRepairModal.preData.dispatchType" v-model="toRepairModal.preData.dispatchType"
81
+ :options='toRepairModal.preData.dispatchTypeOptions' placeholder='派发类型'
82
+ close-on-select v-ref:dispatchtype>
83
+ </v-select>
84
+ </div>
85
+ <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给站点'">
86
+ <label class="font_normal_body">站&nbsp;&nbsp;点</label>
87
+ <right-tree
88
+ islist
89
+ :userid="$login.f.id"
90
+ :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
91
+ @re-res="getSiteRes">
92
+ </right-tree>
93
+ </div>
94
+ <div class="col-sm-4 " v-if="toRepairModal.preData.dispatchType == '派发给维修员'" :class="[$v.f_repairman.required ? 'select-error' : '']">
95
+ <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairman" v-validate:f_repairman='{required: true }'>
96
+ <label class="font_normal_body">维修员</label>
97
+ <v-select
98
+ :value.sync="toRepairModal.preData.f_repairman"
99
+ :value-single="true"
100
+ :options='toRepairModal.preData.repairers'
101
+ placeholder='请选择维修员'
102
+ close-on-select></v-select>
103
+ </div>
104
+ <div class="col-sm-4" :class="[$v.f_repairtype.required ? 'select-error' : '']">
105
+ <input type="text" v-show="false" v-model="toRepairModal.preData.f_repairtype" v-validate:f_repairtype='{required: true }'>
106
+ <label class="font_normal_body">报修类型</label>
107
+ <v-select :value.sync="toRepairModal.preData.f_repairtype" style="width:60%"
108
+ class="select select_list"
109
+ :value-single="true"
110
+ :options='toRepairModal.preData.repairTypeOptions'
111
+ close-on-select>
112
+ </v-select>
113
+ </div>
114
+ </div>
115
+ <div class="row">
116
+ <div class="col-sm-8 form-group">
117
+ <label class="font_normal_body" >备&emsp;&emsp;注</label>
118
+ <input class="input_search" style="width: 60%" type="text" v-model="toRepairModal.preData.f_remarks" placeholder="备注">
119
+
120
+ </div>
121
+ <div class="col-sm-4" style="margin-top: 1%">
122
+ <button class="button_search" :disabled="!valid" @click="confirm">转维修</button>
123
+ </div>
124
+ </div>
125
+ </validator>
126
+ </div>
127
+ </div>
128
+ <modal :show.sync="showSolveModal" v-ref:solveModal>
129
+ <div slot="modal-header" class="modal-header">
130
+ <h4 class="modal-title">
131
+ {{solveModal.preData.type == 'view'?'处理详情':'处理隐患'}}
132
+ </h4>
133
+ </div>
134
+ <div slot="modal-body" class="modal-body">
135
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
136
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
137
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
138
+ </div>
139
+
140
+ <div class="col-sm-6" style="margin-top: 10px">
141
+ <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
142
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
143
+ </div>
144
+ <div class="col-sm-6" style="margin-top: 10px">
145
+ <label class="font_normal_body">安检时间</label>
146
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
147
+ </div>
148
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg" >
149
+ <label class="font_normal_body">隐患图片</label>
150
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
151
+ </div>
152
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg1">
153
+ <label class="font_normal_body">隐患图片</label>
154
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg1"></img-self>
155
+ </div>
156
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg2">
157
+ <label class="font_normal_body">隐患图片</label>
158
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg2"></img-self>
159
+ </div>
160
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg3">
161
+ <label class="font_normal_body">隐患图片</label>
162
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg3"></img-self>
163
+ </div>
164
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg4">
165
+ <label class="font_normal_body">隐患图片</label>
166
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg4"></img-self>
167
+ </div>
168
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg5">
169
+ <label class="font_normal_body">隐患图片</label>
170
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg5"></img-self>
171
+ </div>
172
+ <div class="col-sm-12" style="margin-bottom: 10px ;display:inline-block;width: 200px" v-if="solveModal.preData.defectImg6">
173
+ <label class="font_normal_body">隐患图片</label>
174
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg6"></img-self>
175
+ </div>
176
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left" v-show="solveModal.preData.state == '已处理' || solveModal.preData.type != 'solve'">
177
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
178
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
179
+ </div>
180
+ <div class="col-sm-6" style="margin-top: 10px" v-show="solveModal.preData.state == '已处理'">
181
+ <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
182
+ <input v-if="solveModal.preData.type != 'solve'" class="input_search" style="width: 60%" disabled="true" type="text" v-model="solveModal.uploadData.f_repairman" placeholder="处理人">
183
+ <v-select
184
+ v-if="solveModal.preData.type == 'solve'"
185
+ :value.sync="solveModal.uploadData.f_repairman"
186
+ :value-single="true"
187
+ :options='toRepairModal.preData.repairers'
188
+ placeholder='请选择维修员'
189
+ close-on-select></v-select>
190
+ </div>
191
+ <div class="col-sm-6" style="margin-top: 10px" v-show="solveModal.preData.state == '已处理'">
192
+ <label class="font_normal_body">处理时间</label>
193
+ <datepicker
194
+ :disabled="solveModal.preData.type == 'view'"
195
+ placeholder='处理时间' style="width:60%"
196
+ :disabled-days-of-week="[]"
197
+ :format="'yyyy-MM-dd'"
198
+ :show-rest-button="reset"
199
+ :value.sync="solveModal.uploadData.f_repair_date">
200
+ </datepicker>
201
+ </div>
202
+ <div v-if="solveModal.preData.type == 'solve'" class="col-sm-12" style="margin-bottom: 10px">
203
+ <label class="font_normal_body">处理后图片</label>
204
+ <avatar-upload :width="200" :height="200" :img-src.sync="solveModal.uploadData.imgSrc" :filename.sync="solveModal.uploadData.filename" v-ref:imginfo></avatar-upload>
205
+ </div>
206
+ <div v-if="solveModal.preData.state == '已处理' && (solveModal.preData.repairedImg || solveModal.preData.repairedImg1 || solveModal.preData.repairedImg2) " class="col-sm-12" style="margin-bottom: 10px">
207
+ <p> <label class="font_normal_body">处理后图片</label></p>
208
+ <P></P>
209
+ <div class="col-sm-12">
210
+ <div class="col-sm-6" v-if="solveModal.preData.repairedImg">
211
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg" style="margin-left: 10px"></img-self>
212
+ </div>
213
+ <div class="col-sm-6" v-if="solveModal.preData.repairedImg1">
214
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg1" style="margin-left: 10px"></img-self>
215
+ </div>
216
+ <div class="col-sm-6" v-if="solveModal.preData.repairedImg2">
217
+ <img-self :width="200" :height="200" :src="solveModal.preData.repairedImg2" style="margin-left: 10px"></img-self>
218
+ </div>
219
+ </div>
220
+ </div>
221
+ </div>
222
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
223
+ <button class="button_search" v-if="checkDefect=='是' && solveModal.preData.type == 'view'" @click="auditsure('通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核通过</button>
224
+ <button class="button_search" v-if="checkDefect=='是' && solveModal.preData.type == 'view'" @click="auditsure('不通过')" v-if="solveModal.preData.type == 'view' && !solveModal.f_audit_results">审核不通过</button>
225
+ <button class="button_search" v-if="solveModal.preData.type == 'solve'" @click="ok">确认</button>
226
+ <button class="button_search" @click="cancel">取消</button>
227
+ <button class="button_search" @click="showRectificationHistory(solveModal.uploadData.id)">历史整改记录</button>
228
+ </div>
229
+ </modal>
230
+ <modal :show.sync="rectificationHistory" v-ref:solveModal>
231
+ <div slot="modal-header" class="modal-header">
232
+ <h4 class="modal-title">
233
+ 历史记录
234
+ </h4>
235
+ </div>
236
+ <div slot="modal-body" class="modal-body">
237
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
238
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
239
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理前</p></div>
240
+ </div>
241
+ <div class="col-sm-6" style="margin-top: 10px">
242
+ <label class="font_normal_body">安&nbsp;检&nbsp;员</label>
243
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_checker_name" placeholder="安检员">
244
+ </div>
245
+ <div class="col-sm-6" style="margin-top: 10px">
246
+ <label class="font_normal_body">安检时间</label>
247
+ <input class="input_search" style="width: 60%" type="text" disabled="true" v-model="check.f_offsite_time" placeholder="安检时间">
248
+ </div>
249
+ <div class="col-sm-12" style="margin-bottom: 10px" v-if="solveModal.preData.defectImg">
250
+ <label class="font_normal_body">隐患图片</label>
251
+ <img-self :width="200" :height="200" :src="solveModal.preData.defectImg"></img-self>
252
+ </div>
253
+
254
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
255
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
256
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后</p></div>
257
+ </div>
258
+ <div v-for="item in repair_data" v-show="solveModal.preData.state == '已处理'">
259
+ <div class="col-sm-6" style="margin-top: 10px">
260
+ <label class="font_normal_body">处&nbsp;理&nbsp;人</label>
261
+ <input class="input_search" style="width: 60%" disabled="true" type="text" v-model="item.f_dealer" placeholder="处理人">
262
+ </div>
263
+ <div class="col-sm-6" style="margin-top: 10px">
264
+ <label class="font_normal_body">处理时间</label>
265
+ <input class="input_search" style="width: 60%" disabled="true" type="text" v-model="item.f_repair_date" placeholder="处理时间">
266
+ </div>
267
+ <div v-if="(item.f_dealpath || item.f_other_dealpath1 || item.f_other_dealpath2) " class="col-sm-12" style="margin-bottom: 10px">
268
+ <p> <label class="font_normal_body">处理后图片</label></p>
269
+ <P></P>
270
+ <div class="col-sm-12">
271
+ <div class="col-sm-6" v-if="item.f_dealpath">
272
+ <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_dealpath" style="margin-left: 10px"></img-self>
273
+ </div>
274
+ <div class="col-sm-6" v-if="item.f_other_dealpath1">
275
+ <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_other_dealpath1" style="margin-left: 10px"></img-self>
276
+ </div>
277
+ <div class="col-sm-6" v-if="item.f_other_dealpath2">
278
+ <img-self :width="200" :height="200" :src="'/rs/image/file/'+item.f_other_dealpath2" style="margin-left: 10px"></img-self>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </div>
284
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
285
+ <button class="button_search" @click="rectificationHistory = false">关闭</button>
286
+ </div>
287
+ </modal>
288
+ </div>
289
+ </template>
290
+
291
+ <script>
292
+ import {PagedList, HttpResetClass} from 'vue-client'
293
+ import * as Util from '../../../components/Util'
294
+ import co from 'co'
295
+ import Vue from "vue";
296
+
297
+ const upSolveDefect = function * (self) {
298
+ let uploadData = self.solveModal.uploadData
299
+ //tag)
300
+ self.$resetpost('/api/af-safecheck/logic/pcRepairDefectNew', self.solveModal.uploadData, {resolveMsg: null, rejectMsg: null})
301
+ .then(res => {
302
+ if (res.data.code === 200) {
303
+ self.$showMessage('隐患已处理。')
304
+ self.showSolveModal = false
305
+ self.model.search('f_repaire_type != \'无隐患\'', {})
306
+ self.solveModal.uploadData={
307
+ id: '',
308
+ f_repairman: self.$login.f.name,
309
+ f_repair_date: Util.getNowDate().substr(0, 10),
310
+ f_repair_path: '',
311
+ imgSrc: '',
312
+ filename: '',
313
+ f_defect_remark:''
314
+ }
315
+ }
316
+ })
317
+ }
318
+
319
+ const sendRepair = function* (self) {
320
+ let preData = self.toRepairModal.preData
321
+ let uploadData = self.toRepairModal.uploadData
322
+
323
+ if (preData.dispatchType == '派发给站点') {
324
+ uploadData.model.serviceacitivity[0].f_meetunit = preData.f_meetunit
325
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_reciever
326
+ uploadData.model.f_meetunit = preData.f_meetunit
327
+ uploadData.model.f_orgstr = preData.f_reciever
328
+ uploadData.model.f_outlets = preData.f_outlets
329
+ } else if (preData.dispatchType == '派发给维修员') {
330
+ uploadData.model.serviceacitivity[0].f_reciever = preData.f_repairman
331
+ // uploadData.model.f_meetunit = self.$login.f.orgpathnames
332
+ // uploadData.model.f_orgstr = self.$login.f.orgpathstr
333
+ // uploadData.model.f_outlets = self.$login.f.f_parentname
334
+ uploadData.model.f_meetunit = self.$login.f.deps
335
+ uploadData.model.f_orgid = self.$login.f.orgid
336
+ uploadData.model.f_filiale = self.$login.f.org
337
+ uploadData.model.f_outlets = self.$login.f.deps
338
+ uploadData.model.f_filiale_id = self.$login.f.orgid
339
+ uploadData.toRepair = '一级派单'
340
+ }
341
+ let res = yield self.$resetpost('/api/af-safecheck/sql/GetUserForRepaireNew', {data: {f_userinfo_id: self.check.f_userinfo_id}})
342
+ preData.userInfo = res.data[0]
343
+ uploadData.model = Object.assign(uploadData.model, preData.userInfo)
344
+ uploadData.user.f_userinfo_id = preData.userInfo.f_userinfo_id
345
+ uploadData.model.f_repair_date = Util.getNowDate()
346
+ uploadData.model.f_repairtype = preData.f_repairtype
347
+ uploadData.model.f_remarks = preData.f_remarks
348
+ // 拼接failure
349
+ let failure = []
350
+ self.model.rows.forEach(row => {
351
+ if (row.f_repaire_type == '隐患未处理') {
352
+ failure.push({
353
+ f_failure_type: row.f_item_name,
354
+ failurecase: row.f_item_value?row.f_item_value.split(','):''
355
+ })
356
+ }
357
+ })
358
+ uploadData.model.failure = failure
359
+ // 拼接repairitems
360
+ let rows = JSON.parse(JSON.stringify(self.model.rows))
361
+ let repairitems = {
362
+ data: []
363
+ }
364
+ let safecheckOptions = [{"data": "已处理"}, {"data": "未处理"}]
365
+ // 取隐患未处理的
366
+ rows = rows.filter(row => row.f_repaire_type == '隐患未处理')
367
+ //tag)
368
+ // 开始拼接
369
+ rows.forEach(row => {
370
+ let existIndex = -1
371
+ // 判断该设备是否已经存在
372
+ for (let i = 0; i < repairitems.data.length; i++) {
373
+ if (repairitems.data[i].f_type == row.f_device_type) {
374
+ existIndex = i
375
+ break
376
+ }
377
+ }
378
+ if (existIndex == -1) {
379
+ // 不存在则新建
380
+ let newItem = {
381
+ f_type: row.f_device_type,
382
+ details: [{
383
+ f_defect_id: row.id,
384
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
385
+ type: 'selector',
386
+ options: safecheckOptions
387
+ }]
388
+ }
389
+ repairitems.data.push(newItem)
390
+ } else {
391
+ // 存在则追加
392
+ repairitems.data[existIndex].details.push({
393
+ f_defect_id: row.id,
394
+ f_project: `${row.f_item_name}:${row.f_item_value}`,
395
+ type: 'selector',
396
+ options: safecheckOptions
397
+ })
398
+ }
399
+ })
400
+ uploadData.model.f_repairitems = repairitems
401
+ //tag)
402
+ // 调工单接口
403
+ let result = yield self.$resetpost('/api/af-safecheck/logic/callerSend', uploadData)
404
+ //tag)
405
+ if (result.data.f_service_id) {
406
+ const data = {
407
+ f_paper_id: rows[0].f_paper_id,
408
+ f_service_id: result.data.f_service_id,
409
+ itemsId: self.$login.convertToIn(rows.map(row => row.id))
410
+ }
411
+ //tag
412
+ let updateRes = yield self.$resetpost('/api/af-safecheck/logic/updateDefectStateNew', data)
413
+ if (updateRes.data.code == 200) {
414
+ self.$showMessage('隐患已转维修。')
415
+ self.model.search(`f_repaire_type != '无隐患'`, {})
416
+ }
417
+ }
418
+ }
419
+
420
+ export default {
421
+ title: '隐患项列表',
422
+ data() {
423
+ return {
424
+ repair_data:[],
425
+ rectificationHistory:false,
426
+ model: new PagedList('api/af-safecheck/sql/GetDefectByPaperIdNew', 100, {
427
+ f_paper_id: 'this.f_paper_id',f_item_value: 'this.f_item_value'
428
+ }),
429
+ showSolveModal: false,
430
+ showToRepairModal: false,
431
+ showDefectModal: false,
432
+ valid: false,
433
+ checkDefect:null,
434
+ needRepair: false,
435
+ solveModal: {
436
+ preData: {
437
+ type: '',
438
+ defectImg: '',
439
+ defectImg1: '',
440
+ defectImg2: '',
441
+ defectImg3: '',
442
+ defectImg4: '',
443
+ defectImg5: '',
444
+ defectImg6: '',
445
+ repairedImg: '',
446
+ repairedImg1: '',
447
+ repairedImg2: '',
448
+ state: ''
449
+ },
450
+ uploadData: {
451
+ id: '',
452
+ f_repairman: this.$login.f.name,
453
+ f_repair_date: Util.getNowDate().substr(0, 10),
454
+ f_repair_path: '',
455
+ imgSrc: '',
456
+ filename: ''
457
+ }
458
+ },
459
+ toRepairModal: {
460
+ preData: {
461
+ dispatchTypeOptions: [{label: '派发给站点', value: '派发给站点'}, {label: '派发给维修员', value: '派发给维修员'}],
462
+ repairTypeOptions: this.$appdata.getParam('报修类型'),
463
+ dispatchType: '',
464
+ f_repairman: '',
465
+ f_repairtype: '',
466
+ f_remarks: '',
467
+ f_meetunit: '',
468
+ f_reciever: '',
469
+ f_outlets: '',
470
+ userInfo: {},
471
+ repairers: []
472
+ },
473
+ uploadData: {
474
+ model: {
475
+ serviceacitivity: [{
476
+ f_service_acitivity_type: '派单'
477
+ }],
478
+ f_repairitems: {},
479
+ failure: '',
480
+ f_source: '安检',
481
+ f_service_id: '',
482
+ f_contact_phone: '',
483
+ f_meetunit: '',
484
+ f_phone: '',
485
+ f_user_name: '',
486
+ f_address: '',
487
+ f_repair_date: '',
488
+ f_reciever: '',
489
+ f_remarks: '',
490
+ f_user_type: '',
491
+ f_area: '',
492
+ f_unit_name: '',
493
+ f_street: '',
494
+ f_residential_area: '',
495
+ f_building: '',
496
+ f_unit: '',
497
+ f_floor: '',
498
+ f_room: '',
499
+ aState: '',
500
+ f_repairtype: '',
501
+ f_userinfo_id: '',
502
+ f_userinfo_code: '',
503
+ f_orgstr: '',
504
+ f_outlets: '',
505
+ f_attendant: this.$login.f.name
506
+ },
507
+ loginUser: {
508
+ name: this.$login.f.name,
509
+ ename: this.$login.f.ename
510
+ },
511
+ user: {
512
+ f_userinfo_id: ''
513
+ },
514
+ callObj: null
515
+ }
516
+ },
517
+ showHandleDefectButton: null
518
+ }
519
+ },
520
+ props: ['check'],
521
+ ready() {
522
+ this.checkDefect=Vue.$appdata.getSingleValue('安检隐患维修后审核')
523
+ this.showHandleDefectButton = Vue.$appdata.getSingleValue('隐患查看处理隐患')
524
+ this.model.f_item_value = `(SELECT stuff(( SELECT ',' + f_item_value FROM t_devices_items_lists WHERE ( f_is_defect = 'true' OR di.f_is_defect = 'true') AND f_item_id = di.id FOR xml path ( '' ) ),1,1,'' ) )`
525
+ if (this.check) {
526
+ this.model.f_paper_id = this.check.id
527
+ this.model.search(`f_repaire_type != '无隐患'`, {})
528
+ }
529
+ this.getEmp()
530
+ },
531
+ methods: {
532
+ showRectificationHistory(id){
533
+ new HttpResetClass().load('POST','api/af-safecheck/sql/safe_singleTable_OrderBy', {data: {
534
+ items: '*',
535
+ tablename: 't_check_repair_records',
536
+ condition: `f_item_id = '${id}'`,
537
+ orderitem: 'f_repair_date'
538
+ }}, {resolveMsg: null, rejectMsg: null}).then(response=>{
539
+ this.repair_data=response.data
540
+ })
541
+ this.rectificationHistory = true
542
+ },
543
+ //审核通过
544
+ auditsure(info){
545
+ // 拿到t_devices_items 的ID,给f_audit_results中存入通过 如果未通过,需要可以再次派单,对隐患进行处理
546
+ var data = {
547
+ id: this.solveModal.uploadData.id,
548
+ info:info
549
+ }
550
+ let http = new HttpResetClass()
551
+ http.load('POST', 'api/af-safecheck/logic/DefectAuditUpdate', data, {resolveMsg: null, rejectMsg: null}).then((res) => {
552
+ if(res.data.code == 200){
553
+ this.model.search(`f_repaire_type != '无隐患'`, {})
554
+ this.showSolveModal = false
555
+ this.showToRepairModal = false
556
+ this.$showMessage('提交成功')
557
+ }else{
558
+ this.$showMessage('提交失败,请重试')
559
+ }
560
+ })
561
+ },
562
+ solveDefect(row, type) {
563
+ console.log(row)
564
+ this.solveModal.preData.defectImg = ''
565
+ this.solveModal.preData.defectImg1 = ''
566
+ this.solveModal.preData.defectImg2 = ''
567
+ this.solveModal.preData.defectImg3 = ''
568
+ this.solveModal.preData.defectImg4 = ''
569
+ this.solveModal.preData.defectImg5 = ''
570
+ this.solveModal.preData.defectImg6 = ''
571
+ this.solveModal.preData.f_repair_path = ''
572
+ this.solveModal.preData.repairedImg = ''
573
+ this.solveModal.preData.repairedImg1 = ''
574
+ this.solveModal.preData.repairedImg2 = ''
575
+ this.solveModal.preData.defectImg = row.f_path?'/rs/image/file/' + row.f_path:null
576
+ this.solveModal.preData.defectImg1 =row.f_path?'/rs/image/file/' + row.f_p1_path:null
577
+ this.solveModal.preData.defectImg2 = row.f_path?'/rs/image/file/' + row.f_p2_path:null
578
+ this.solveModal.preData.defectImg3 = row.f_path?'/rs/image/file/' + row.f_p3_path:null
579
+ this.solveModal.preData.defectImg4 = row.f_path?'/rs/image/file/' + row.f_p4_path:null
580
+ this.solveModal.preData.defectImg5 = row.f_path?'/rs/image/file/' + row.f_p5_path:null
581
+ this.solveModal.preData.defectImg6 = row.f_path?'/rs/image/file/' + row.f_p6_path:null
582
+ this.solveModal.uploadData.id = row.id
583
+ this.solveModal.preData.type = type
584
+ this.solveModal.preData.state = row.f_repaire_state
585
+ this.solveModal.preData.source = row.f_repair_path_source
586
+ if (row.f_repaire_state === '已处理') {
587
+ if (row.f_repair_path_source === '微信') {
588
+ this.solveModal.preData.f_repair_path = row.f_repair_path
589
+ this.solveModal.preData.repairedImg = row.f_repair_path
590
+ this.solveModal.preData.repairedImg1 = row.f_repair1_path
591
+ } else {
592
+ this.solveModal.preData.f_repair_path = row.f_repair_path? '/rs/image/file/' + row.f_repair_path:null
593
+ this.solveModal.preData.repairedImg = row.f_repair_path? '/rs/image/file/' + row.f_repair_path:null
594
+ this.solveModal.preData.repairedImg1 = row.f_other_dealpath1? '/rs/image/file/' + row.f_other_dealpath1:null
595
+ this.solveModal.preData.repairedImg2 = row.f_other_dealpath2? '/rs/image/file/' + row.f_other_dealpath2:null
596
+ }
597
+ if (type === '现场已处理') {
598
+ this.solveModal.uploadData.f_repairman = this.check.f_checker_name
599
+ this.solveModal.uploadData.f_repair_date = this.check.f_offsite_time
600
+ } else {
601
+ this.solveModal.uploadData.f_repairman = row.f_repairman
602
+ this.solveModal.uploadData.f_repair_date = row.f_repair_date
603
+ this.$set('solveModal.f_audit_results',row.f_audit_results)
604
+ }
605
+ } else {
606
+ this.solveModal.uploadData.f_repairman = this.$login.f.name
607
+ this.solveModal.uploadData.f_repair_date = Util.getNowDate().substr(0, 10)
608
+ }
609
+ this.showSolveModal = !this.showSolveModal
610
+ },
611
+ ok() {
612
+ if (!(this.solveModal.uploadData.filename && this.solveModal.uploadData.filename.length > 0)) {
613
+ this.$showMessage('请录入处理后照片')
614
+ return
615
+ }
616
+ co(upSolveDefect(this))
617
+ },
618
+ cancel() {
619
+ this.showSolveModal = false
620
+ this.showToRepairModal = false
621
+ },
622
+ toRepair() {
623
+ this.showToRepairModal = !this.showToRepairModal
624
+ },
625
+ getSiteRes(obj) {
626
+ //tag
627
+ //tag
628
+ if(obj.resids[0]){
629
+ this.toRepairModal.preData.f_meetunit = obj.res.join('.')
630
+ this.toRepairModal.preData.f_reciever = obj.resids.join('.')
631
+ }else {
632
+ this.toRepairModal.preData.f_meetunit = ''
633
+ this.toRepairModal.preData.f_reciever = ''
634
+ this.toRepairModal.preData.f_outlets = ''
635
+ }
636
+ },
637
+ // 获取维修员
638
+ getEmp() {
639
+ let val = {source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()', userid: `${this.$login.f.id}`}
640
+ let http = new HttpResetClass()
641
+ http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
642
+ res.data.forEach((item) => {
643
+ let http1 = new HttpResetClass()
644
+ http1.load('POST', 'api/af-safecheck/sql/safe_singleTable_OrderBy', {
645
+ data: {
646
+ items: 'f_user_telephone',
647
+ tablename: 't_user',
648
+ condition: `id = ${item.id}`,
649
+ orderitem: 'id'
650
+ }
651
+ }, {resolveMsg: null, rejectMsg: null}).then((ress) => {
652
+ this.toRepairModal.preData.repairers.push({label: `${item.name}:${ress.data[0].f_user_telephone}`, value: item.name})
653
+ })
654
+ })
655
+ })
656
+ },
657
+ confirm() {
658
+ if (this.toRepairModal.preData.dispatchType == '派发给站点' && !this.toRepairModal.preData.f_meetunit) {
659
+ this.$showMessage('请选择站点。')
660
+ return
661
+ }
662
+ co(sendRepair(this))
663
+ }
664
+ },
665
+ watch: {
666
+ 'check'() {
667
+ this.model.f_paper_id = this.check.id
668
+ this.model.search(`f_repaire_type != '无隐患'`, {})
669
+ },
670
+ /*'model.rows'() {
671
+ if (this.model.rows.length > 0) {
672
+ if (this.model.rows[0].f_repaire_type == '隐患未处理') {
673
+ this.needRepair = true
674
+ return
675
+ }
676
+ }
677
+ this.needRepair = false
678
+ }*/
679
+ }
680
+ }
681
+ </script>
682
+ <style lang="less" scoped>
683
+ .select-error {
684
+ button {
685
+ border-bottom: 1px solid #a94442 !important;
686
+ }
687
+ }
688
+ </style>