safecheck-client 3.0.34-7 → 3.0.34-71

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. package/package.json +1 -1
  2. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  3. package/src/assets/123.png +0 -0
  4. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  5. package/src/components/LoadData.vue +62 -0
  6. package/src/components/NewDefectList/DefectListNew.vue +1 -0
  7. package/src/components/android/AndroidDefectDeal.vue +1 -0
  8. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  9. package/src/components/android/AreaSelect.vue +198 -0
  10. package/src/components/android/BuildingSelect.vue +192 -0
  11. package/src/components/android/CheckPlanSelect.vue +229 -0
  12. package/src/components/android/PaperFeedback.vue +1514 -1481
  13. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  14. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  15. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  16. package/src/components/android/SafePlanItem.vue +509 -509
  17. package/src/components/android/SafecheckDevices.vue +1298 -1298
  18. package/src/components/android/SafecheckDevicesTemp.vue +1333 -1333
  19. package/src/components/android/SafecheckOrderV.vue +8 -12
  20. package/src/components/android/UserinfoSelect.vue +714 -0
  21. package/src/components/android/examples/SafeListExamples.vue +96 -0
  22. package/src/components/android/examples/UserExamples.vue +130 -0
  23. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  24. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  25. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  26. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  27. package/src/components/rongcheng/PaperStatem.vue +6 -1
  28. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  29. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  30. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  31. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  32. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  33. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  34. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  35. package/src/filiale/baiyin/android.js +1 -0
  36. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  37. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  38. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  39. package/src/filiale/bayan/android/PaperFeedback.vue +1651 -1651
  40. package/src/filiale/bayan/android/SafecheckDevices.vue +1303 -1303
  41. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  42. package/src/filiale/bayan/android/SafecheckUserInfo.vue +863 -863
  43. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  44. package/src/filiale/dexin/android/SafecheckDevices.vue +1305 -1305
  45. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  46. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  47. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1313 -1313
  48. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  49. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  50. package/src/filiale/huaran/android.js +12 -0
  51. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  52. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  53. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  54. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  55. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  56. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  57. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  59. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  60. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  61. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  62. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  63. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  64. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  65. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  66. package/src/filiale/huaran/pc.js +27 -0
  67. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  68. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  69. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  70. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  71. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  72. package/src/filiale/jiaxian/android.js +4 -0
  73. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  74. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  77. package/src/filiale/qingjian/android/SafecheckDevices.vue +1269 -1269
  78. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  79. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  80. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  81. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  82. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  83. package/src/filiale/qingtongxia/android.js +4 -0
  84. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  85. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  86. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  87. package/src/filiale/ruihua/android.js +11 -0
  88. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  89. package/src/filiale/shiquan/android/SafecheckDevices.vue +1269 -1269
  90. package/src/filiale/siyang/android/AddPlanItem.vue +446 -0
  91. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  92. package/src/filiale/siyang/android.js +1 -0
  93. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  94. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  95. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  96. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  97. package/src/filiale/siyang/pc/NewCheckpaper.vue +1938 -1938
  98. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  99. package/src/filiale/siyang/pc/checkUserList.vue +790 -786
  100. package/src/filiale/siyang/pc.js +21 -16
  101. package/src/filiale/tongchuan/android/Select.vue +421 -0
  102. package/src/filiale/tongchuan/android.js +1 -0
  103. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  104. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  105. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  106. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  107. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  108. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  109. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  110. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  111. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  112. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  113. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  114. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  115. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  116. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  117. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  118. package/src/filiale/weinan/pc.js +1 -0
  119. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  120. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  121. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  122. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  123. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  124. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  125. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  126. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  127. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +1128 -1128
  129. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +972 -972
  130. package/src/filiale/yangchunboneng/pc/PaperList.vue +773 -773
  131. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  132. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1294 -1294
  133. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  134. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  135. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  136. package/src/filiale/yuansheng/android.js +17 -17
  137. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  138. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1508 -1508
  139. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  140. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +784 -784
  141. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  142. package/src/safecheck-android.js +9 -0
  143. package/src/safecheck-page.js +10 -0
@@ -1,1938 +1,1938 @@
1
- <style scoped id="printStyle">
2
- .img {
3
- border: 1px solid #9773ed;
4
- width: auto;
5
- height: auto;
6
- float: left;
7
- text-align: center;
8
- margin: 6px;
9
- }
10
-
11
- img {
12
- margin: 6px;
13
- }
14
-
15
-
16
- .container {
17
- margin: 10px auto;
18
- width: 80%;
19
- height: auto;
20
- }
21
-
22
- div::-webkit-scrollbar {
23
- width: 0 !important;
24
- height: 0 !important;
25
- }
26
-
27
- div {
28
- -ms-overflow-style: none;
29
- overflow: -moz-scrollbars-none;
30
- }
31
-
32
- .divmask {
33
- pointer-events: none;
34
- }
35
-
36
- .app-header {
37
- border-radius: 50%;
38
- background: rgba(73, 158, 223, 0.4);
39
- color: #FFF;
40
- padding: 20px;
41
- text-align: center;
42
- font-size: 1.2em;
43
- z-index: 10;
44
- opacity: 0.5;
45
- bottom: 50px;
46
- margin-top: -20px;
47
- position: absolute;
48
- top: 10%;
49
- right: 2%;
50
- height: 8%;
51
- }
52
- </style>
53
-
54
- <template>
55
- <div class="basic-main" style="height: 100%">
56
- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
57
- <div @click="back()">
58
- <img src="../../../assets/back.png" style="margin: 0px"/>
59
- </div>
60
- </div>
61
- <div v-show="showPdfDownload" class="page-header app-header auto"
62
- style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
63
- <div @click="exportToPDF()">
64
- <img src="../../../assets/下载_.png" style="margin: 0px;width: 30px"/>
65
- </div>
66
- </div>
67
- <work-busy :is-busy="loading"></work-busy>
68
- <div class="container-fluid" style="overflow: scroll">
69
- <div class="row">
70
- <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
71
- <div style="width: 100%;margin: auto">
72
- <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
73
- <thead>
74
- <tr>
75
- <th colspan="6" style="text-align: center">用户基本信息</th>
76
- </tr>
77
- </thead>
78
- <tbody>
79
- <tr>
80
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
81
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
82
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
83
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
84
- </tr>
85
- <tr>
86
- <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
87
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
88
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
89
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
90
- </tr>
91
- <tr>
92
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
93
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
94
- <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
95
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
96
- </tr>
97
- <tr>
98
- <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
99
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
100
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
101
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</td>
102
- </tr>
103
- <tr>
104
- <td style="text-align: center;border: #E9E9E9 solid 1px">单 元:</td>
105
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_unit }}</td>
106
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
107
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
108
- </tr>
109
- <tr>
110
- <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
111
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
112
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
113
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
114
- </tr>
115
- <tr>
116
- <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
117
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
118
- <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
119
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
120
- </tr>
121
- <tr>
122
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
123
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
124
- </tr>
125
- </tbody>
126
- </table>
127
- <table class="table table-striped table-bordered" style="margin-top: 40px"
128
- v-show="paperdata.f_entry_status=='入户'">
129
- <thead>
130
- <tr>
131
- <th colspan="4" style="text-align: center">用户安检概况</th>
132
- </tr>
133
- </thead>
134
- <tbody>
135
- <tr>
136
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
137
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
138
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
139
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
140
- </tr>
141
- <tr>
142
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
143
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
144
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
145
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
146
- </tr>
147
- <tr>
148
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
149
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
150
- paperdata.f_client_evaluation
151
- }}
152
- </td>
153
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
154
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
155
- :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
156
- </td>
157
- </tr>
158
- <tr>
159
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
160
- <td colspan="3"
161
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
162
- {{ paperdata.f_repair_approved_note }}
163
- </td>
164
- </tr>
165
- <tr>
166
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
167
- <td colspan="3"
168
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
169
- <span v-for="deviceCollect in deviceCollects">
170
- <span class="li-font">
171
- {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
172
- </span>
173
- <br>
174
- <span v-if="deviceCollect.value == '有隐患'">
175
- <lable>
176
- 隐患:
177
- </lable>
178
- <span v-for="val in deviceCollect.devices">
179
- {{ val }}
180
- </span><br>
181
- </span>
182
-
183
- </span>
184
- </td>
185
- </tr>
186
-
187
- </tbody>
188
- </table>
189
- <table class="table table-striped table-bordered" style="margin-top: 40px"
190
- v-show="paperdata.f_entry_status!='入户'">
191
- <thead>
192
- <tr>
193
- <th colspan="4" style="text-align: center">用户安检概况</th>
194
- </tr>
195
- </thead>
196
- <tbody>
197
- <tr>
198
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
199
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
200
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
201
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
202
- </tr>
203
- <tr>
204
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
205
- <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
206
- {{ paperdata.f_entry_status }}
207
- </td>
208
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
209
- <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
210
- {{ dev.lname }}
211
- 查看{{ data.f_entry_status }}照片
212
- </button-link>
213
- </td>
214
- </tr>
215
-
216
- </tbody>
217
- </table>
218
- <table class="table table-striped table-bordered" style="margin-top: 40px"
219
- v-show="item.f_no_checkplan == '复检'">
220
- <thead>
221
- <tr>
222
- <th colspan="4" style="text-align: center">上次安检情况</th>
223
- </tr>
224
- </thead>
225
- <tbody>
226
- <tr>
227
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
228
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
229
- lastCheckData.f_onsite_time
230
- }}
231
- </td>
232
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
233
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
234
- lastCheckData.f_offsite_time
235
- }}
236
- </td>
237
- </tr>
238
- <tr>
239
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
240
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
241
- {{ lastCheckData.f_checker_name }}
242
- </td>
243
- </tr>
244
- <tr>
245
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
246
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
247
- {{ lastCheckData.f_defect_text }}
248
- </td>
249
- </tr>
250
-
251
- </tbody>
252
- </table>
253
- <table class="table table-striped table-bordered" style="margin-top: 35px"
254
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_usegas == '未用气'">
255
- <thead>
256
- <tr>
257
- <th style="text-align: center">未用气照片</th>
258
- </tr>
259
- </thead>
260
- <tbody>
261
- <tr>
262
- <td style="margin: auto;text-align: center">
263
- <div class="container" style="max-width: 550px;background: #FFFFFF">
264
- <div class="img">
265
- <img-self-plus :src="paperdata.f_nongasuser_path" style="float: left" width="150"
266
- height="200"></img-self-plus>
267
- </div>
268
- </div>
269
- </td>
270
- </tr>
271
- </tbody>
272
- </table>
273
- <table class="table table-striped table-bordered" style="margin-top: 35px"
274
- v-show="paperdata.f_entry_status=='入户'">
275
- <thead>
276
- <tr>
277
- <th style="text-align: center">总体安检照片</th>
278
- </tr>
279
- </thead>
280
- <tbody>
281
- <tr>
282
- <td style="margin: auto;text-align: center">
283
- <div class="container" style="max-width: 550px;background: #FFFFFF">
284
- <div class="img" v-for="img in paperdata.f_overall_imgs">
285
- <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
286
- width="150"
287
- height="200"></img-self-plus>
288
- </div>
289
- </div>
290
-
291
-
292
- </td>
293
-
294
- </tr>
295
- </tbody>
296
- </table>
297
- <table class="table table-striped table-bordered" style="width: 100%"
298
- v-show="paperdata.f_entry_status=='入户' && (paperdata.f_sign_path || f_user_path) ">
299
- <thead>
300
- <tr>
301
- <th style="text-align: center">用户签名照片</th>
302
- </tr>
303
- </thead>
304
- <tbody>
305
- <tr>
306
- <td style="margin: auto;text-align: center" v-if="paperdata.f_sign_path">
307
- <div class="container" style="max-width: 500px;background: #FFFFFF" >
308
- <div class="img" style="float: none">
309
- <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
310
- </div>
311
- </div>
312
- </td>
313
- <td style="margin: auto;text-align: center" v-if="f_user_path">
314
- <div class="container" style="max-width: 550px;background: #FFFFFF" >
315
- <div class="img" style="float: none">
316
- <img-self-plus :src="'rs/image/file/'+f_user_path"
317
- width="200"
318
- height="200"></img-self-plus>
319
- </div>
320
- </div>
321
- </td>
322
- </tr>
323
- </tbody>
324
- </table>
325
- <table class="table table-striped table-bordered"
326
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
327
- <thead>
328
- <tr>
329
- <th style="text-align: center">安检通知书/隐患整改通知书</th>
330
- </tr>
331
- </thead>
332
- <tbody>
333
- <tr>
334
- <td style="margin: auto;text-align: center">
335
- <div class="container" style="max-width: 500px;background: #FFFFFF">
336
- <div class="img" style="float: none">
337
- <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
338
- </div>
339
- </div>
340
- </td>
341
- </tr>
342
- </tbody>
343
- </table>
344
- <table class="table table-striped table-bordered"
345
- v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
346
- <thead>
347
- <tr>
348
- <th style="text-align: center">安检视频</th>
349
- </tr>
350
- </thead>
351
- <tbody>
352
- <tr>
353
- <td style="margin: auto;text-align: center">
354
- <div class="container" style="max-width: 500px;background: #FFFFFF">
355
- <video width="320" height="200" controls v-if="paperdata.f_video_path">
356
- <source :src="paperdata.f_video_path" type="video/mp4">
357
- </video>
358
- </div>
359
- </td>
360
- </tr>
361
- </tbody>
362
- </table>
363
- <table class="table table-striped table-bordered"
364
- v-show="item.f_recording1_path">
365
- <thead>
366
- <tr>
367
- <th style="text-align: center">录音文件</th>
368
- </tr>
369
- </thead>
370
- <tbody>
371
- <tr>
372
- <td style="margin: auto;text-align: center">
373
- <div class="container" style="max-width: 500px;background: #FFFFFF">
374
- <a class="button_spacing button_search-1"
375
- :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
376
- :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
377
- </div>
378
- </td>
379
- </tr>
380
- </tbody>
381
- </table>
382
- </div>
383
- </div>
384
- <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
385
- <div class="col-md-6" style="height: 100%;overflow: scroll">
386
- <div style="width: 95%;margin-left: 5%">
387
- <table class="table table-striped table-bordered" v-for="config in deviceconfig2" style="margin-top: 35px">
388
- <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
389
- <tr>
390
- <th style="text-align: center">{{ config.checkname }}</th>
391
- </tr>
392
- </thead>
393
- <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
394
- <tr v-for="dev in config.items">
395
- <td v-if="dev.type!='text' && dev.isshow != false">
396
- <div class="row">
397
- <div class="col-md-8" style="text-align: center;">
398
- <label>
399
- <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
400
- :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
401
- {{ dev.lname }}
402
- </button-link>
403
- </label>
404
- </div>
405
- <div class="col-md-4" style="text-align: center">
406
- <label style="font-weight: normal"
407
- v-if="dev.type!='picture'">{{
408
- getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
409
- }}</label>
410
- <label style="font-weight: normal" v-if="dev.type=='picture'">
411
- <div v-show="getDevicePath(config.checkname,dev.lname)">
412
- <button-link style="color: black" type="button" class="btn btn-link"
413
- @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
414
- </button-link>
415
- </div>
416
- <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
417
- </label>
418
- </div>
419
- </div>
420
- </td>
421
- <td v-if="dev.type==='text' && dev.isshow != false">
422
- <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
423
- </td>
424
- </tr>
425
- </tbody>
426
- </table>
427
- <div v-show="showButton">
428
- <button class="button_spacing button_search" @click="auditSuccesss()">通过</button>
429
- <button class="button_spacing button_search" @click="auditFail()">不通过</button>
430
- </div>
431
- </div>
432
- </div>
433
-
434
- </div>
435
- </div>
436
- <div v-show="false">
437
- <div class="container-fluid" id="toPdf" style="overflow: scroll">
438
- <div class="row">
439
- <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
440
- <div style="width: 100%;margin: auto">
441
- <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
442
- <thead>
443
- <tr>
444
- <th colspan="6" style="text-align: center">用户基本信息</th>
445
- </tr>
446
- </thead>
447
- <tbody>
448
- <tr>
449
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
450
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
451
- paperdata.f_userinfo_code
452
- }}
453
- </td>
454
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
455
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
456
- </tr>
457
- <tr>
458
- <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
459
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
460
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
461
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
462
- </tr>
463
- <tr>
464
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
465
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
466
- <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
467
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
468
- </tr>
469
- <tr>
470
- <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
471
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
472
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
473
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</td>
474
- </tr>
475
- <tr>
476
- <td style="text-align: center;border: #E9E9E9 solid 1px">单 元:</td>
477
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_unit }}</td>
478
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
479
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
480
- </tr>
481
- <tr>
482
- <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
483
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
484
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
485
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
486
- </tr>
487
- <tr>
488
- <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
489
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
490
- <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
491
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
492
- </tr>
493
- <tr>
494
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
495
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
496
- </tr>
497
- </tbody>
498
- </table>
499
- <table class="table table-striped table-bordered" style="margin-top: 40px"
500
- v-show="paperdata.f_entry_status=='入户'">
501
- <thead>
502
- <tr>
503
- <th colspan="4" style="text-align: center">用户安检概况</th>
504
- </tr>
505
- </thead>
506
- <tbody>
507
- <tr>
508
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
509
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
510
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
511
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
512
- paperdata.f_offsite_time
513
- }}
514
- </td>
515
- </tr>
516
- <tr>
517
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
518
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
519
- paperdata.f_entry_status
520
- }}
521
- </td>
522
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
523
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
524
- </tr>
525
- <tr>
526
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
527
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
528
- paperdata.f_client_evaluation
529
- }}
530
- </td>
531
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
532
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
533
- :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
534
- </td>
535
- </tr>
536
- <tr>
537
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
538
- <td colspan="3"
539
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
540
- {{ paperdata.f_repair_approved_note }}
541
- </td>
542
- </tr>
543
- <tr>
544
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
545
- <td colspan="3"
546
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
547
- <span v-for="deviceCollect in deviceCollects">
548
- <span class="li-font">
549
- {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
550
- </span>
551
- <br>
552
- <span v-if="deviceCollect.value == '有隐患'">
553
- <lable>
554
- 隐患:
555
- </lable>
556
- <span v-for="val in deviceCollect.devices">
557
- {{ val }}
558
- </span><br>
559
- </span>
560
-
561
- </span>
562
- </td>
563
- </tr>
564
-
565
- </tbody>
566
- </table>
567
- <table class="table table-striped table-bordered" style="margin-top: 40px"
568
- v-show="paperdata.f_entry_status!='入户'">
569
- <thead>
570
- <tr>
571
- <th colspan="4" style="text-align: center">用户安检概况</th>
572
- </tr>
573
- </thead>
574
- <tbody>
575
- <tr>
576
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
577
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
578
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
579
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
580
- paperdata.f_offsite_time
581
- }}
582
- </td>
583
- </tr>
584
- <tr>
585
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
586
- <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
587
- {{ paperdata.f_entry_status }}
588
- </td>
589
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
590
- <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
591
- {{ dev.lname }}
592
- 查看{{ data.f_entry_status }}照片
593
- </button-link>
594
- </td>
595
- </tr>
596
-
597
- </tbody>
598
- </table>
599
- <table class="table table-striped table-bordered" style="margin-top: 40px"
600
- v-show="item.f_no_checkplan == '复检'">
601
- <thead>
602
- <tr>
603
- <th colspan="4" style="text-align: center">上次安检情况</th>
604
- </tr>
605
- </thead>
606
- <tbody>
607
- <tr>
608
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
609
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
610
- lastCheckData.f_onsite_time
611
- }}
612
- </td>
613
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
614
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
615
- lastCheckData.f_offsite_time
616
- }}
617
- </td>
618
- </tr>
619
- <tr>
620
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
621
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
622
- {{ lastCheckData.f_checker_name }}
623
- </td>
624
- </tr>
625
- <tr>
626
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
627
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
628
- {{ lastCheckData.f_defect_text }}
629
- </td>
630
- </tr>
631
-
632
- </tbody>
633
- </table>
634
- <table class="table table-striped table-bordered" style="margin-top: 35px"
635
- v-show="paperdata.f_entry_status=='入户'">
636
- <thead>
637
- <tr>
638
- <th style="text-align: center">总体安检照片</th>
639
- </tr>
640
- </thead>
641
- <tbody>
642
- <tr>
643
- <td style="margin: auto;text-align: center">
644
- <div class="container" style="max-width: 550px;background: #FFFFFF">
645
- <div class="img" v-for="img in paperdata.f_overall_imgs">
646
- <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
647
- width="150"
648
- height="200"></img-self-plus>
649
- </div>
650
- </div>
651
-
652
-
653
- </td>
654
-
655
- </tr>
656
- </tbody>
657
- </table>
658
- <table class="table table-striped table-bordered" style="width: 100%"
659
- v-show="paperdata.f_entry_status=='入户'">
660
- <thead>
661
- <tr>
662
- <th style="text-align: center">用户签名照片</th>
663
- </tr>
664
- </thead>
665
- <tbody>
666
- <tr>
667
- <td style="margin: auto;text-align: center">
668
- <div class="container" style="max-width: 500px;background: #FFFFFF">
669
- <div class="img" style="float: none">
670
- <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
671
- </div>
672
- </div>
673
- </td>
674
- <td style="margin: auto;text-align: center">
675
- <div class="container" style="max-width: 550px;background: #FFFFFF" v-if="f_user_path">
676
- <div class="img" style="float: none">
677
- <img-self-plus :src="'rs/image/file/'+f_user_path"
678
- width="200"
679
- height="200"></img-self-plus>
680
- </div>
681
- </div>
682
- </td>
683
- </tr>
684
- </tbody>
685
- </table>
686
- <table class="table table-striped table-bordered"
687
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
688
- <thead>
689
- <tr>
690
- <th style="text-align: center">安检通知书/隐患整改通知书</th>
691
- </tr>
692
- </thead>
693
- <tbody>
694
- <tr>
695
- <td style="margin: auto;text-align: center">
696
- <div class="container" style="max-width: 500px;background: #FFFFFF">
697
- <div class="img" style="float: none">
698
- <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
699
- </div>
700
- </div>
701
- </td>
702
- </tr>
703
- </tbody>
704
- </table>
705
- <table class="table table-striped table-bordered"
706
- v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
707
- <thead>
708
- <tr>
709
- <th style="text-align: center">安检视频</th>
710
- </tr>
711
- </thead>
712
- <tbody>
713
- <tr>
714
- <td style="margin: auto;text-align: center">
715
- <div class="container" style="max-width: 500px;background: #FFFFFF">
716
- <video width="320" height="200" controls v-if="paperdata.f_video_path">
717
- <source :src="paperdata.f_video_path" type="video/mp4">
718
- </video>
719
- </div>
720
- </td>
721
- </tr>
722
- </tbody>
723
- </table>
724
- <table class="table table-striped table-bordered"
725
- v-show="item.f_recording1_path">
726
- <thead>
727
- <tr>
728
- <th style="text-align: center">录音文件</th>
729
- </tr>
730
- </thead>
731
- <tbody>
732
- <tr>
733
- <td style="margin: auto;text-align: center">
734
- <div class="container" style="max-width: 500px;background: #FFFFFF">
735
- <a class="button_spacing button_search-1"
736
- :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
737
- :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
738
- </div>
739
- </td>
740
- </tr>
741
- </tbody>
742
- </table>
743
- </div>
744
- </div>
745
- <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
746
- <div style="width: 95%;margin-left: 5%">
747
- <table class="table table-striped table-bordered" v-for="config in deviceconfig2"
748
- style="margin-top: 35px">
749
- <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
750
- <tr>
751
- <th style="text-align: center">{{ config.checkname }}</th>
752
- </tr>
753
- </thead>
754
- <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
755
- <tr v-for="dev in config.items">
756
- <td v-if="dev.type!='text' && dev.isshow != false">
757
- <div class="row">
758
- <div class="col-md-8" style="text-align: center;">
759
- <label>
760
- <button-link type="button" class="btn btn-link"
761
- @click="showpicture(config.checkname,dev.lname)"
762
- :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
763
- {{ dev.lname }}
764
- </button-link>
765
- </label>
766
- </div>
767
- <div class="col-md-4" style="text-align: center">
768
- <label style="font-weight: normal"
769
- v-if="dev.type!='picture'">{{
770
- getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
771
- }}</label>
772
- <label style="font-weight: normal" v-if="dev.type=='picture'">
773
- <div v-show="getDevicePath(config.checkname,dev.lname)">
774
- <button-link style="color: black" type="button" class="btn btn-link"
775
- @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
776
- </button-link>
777
- </div>
778
- <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
779
- </label>
780
- </div>
781
- </div>
782
- </td>
783
- <td v-if="dev.type==='text' && dev.isshow != false">
784
- <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
785
- </td>
786
- </tr>
787
- </tbody>
788
- </table>
789
- </div>
790
- </div>
791
-
792
- </div>
793
- </div>
794
- </div>
795
- </div>
796
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
797
- <header slot="modal-header" class="modal-header">
798
- {{ picturename }}
799
- </header>
800
- <article slot="modal-body" class="modal-body">
801
- <div class="from-group">
802
- <div class="row">
803
- <div class="col-md-6">
804
- <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
805
- </div>
806
- <div class="col-md-6">
807
- <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
808
- </div>
809
- <div class="col-md-6" v-for="item in otherDarginShowImgs">
810
- <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
811
- </div>
812
- </div>
813
- </div>
814
- </article>
815
- <footer slot="modal-footer" class="modal-footer" v-show="false">
816
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
817
- </footer>
818
- </modal>
819
- <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
820
- <header slot="modal-header" class="modal-header">
821
- {{ paperdata.f_entry_status }}照片
822
- </header>
823
- <article slot="modal-body" class="modal-body">
824
- <div class="from-group">
825
- <div class="row">
826
- <div class="col-md-6">
827
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer_path" :src="showimg3"
828
- width="282"
829
- height="400"></img-self-plus>
830
- </div>
831
- <div class="col-md-6">
832
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer1_path"
833
- :src="showimg5" width="282"
834
- height="400"></img-self-plus>
835
- </div>
836
- <div class="col-md-6">
837
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer2_path"
838
- :src="showimg6" width="282"
839
- height="400"></img-self-plus>
840
- </div>
841
- <div class="col-md-6">
842
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck_path"
843
- :src="showimg4" width="282"
844
- height="400"></img-self-plus>
845
- </div>
846
- <div class="col-md-6">
847
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck1_path"
848
- :src="showimg7" width="282"
849
- height="400"></img-self-plus>
850
- </div>
851
- <div class="col-md-6">
852
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck2_path"
853
- :src="showimg8" width="282"
854
- height="400"></img-self-plus>
855
- </div>
856
- </div>
857
- </div>
858
- </article>
859
- <footer slot="modal-footer" class="modal-footer" v-show="false">
860
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
861
- </footer>
862
- </modal>
863
- <modal :show.sync="showModel" :width="'50%'" :backdrop="false">
864
- <div slot="modal-header" class="modal-header">
865
- <h4 class="modal-title">
866
- 安检审核备注
867
- </h4>
868
- </div>
869
- <div slot="modal-body" class="modal-body">
870
- <div class="row">
871
- <div class="form-group col-sm-4">
872
- <label class="font_normal_body">审核备注:</label>
873
- <textarea v-model="message"></textarea>
874
- </div>
875
- </div>
876
- </div>
877
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
878
- <button class="button_search" style="margin-right: 15px" @click="auditFailOK()">确定</button>
879
- <button class="button_search" style="margin-right: 15px" @click="auditFailCancel()">取消</button>
880
- </div>
881
- </modal>
882
- </template>
883
-
884
- <script>
885
- import html2pdf from 'html2pdf.js'
886
- import ObjConfig from '../../../utils/GerJsonObjectConfig'
887
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
888
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
889
- import Vue from 'vue'
890
- import * as Util from '../../Util'
891
- import {jsonSort} from '../../../utils/LdapHelper'
892
- import {HttpResetClass} from "vue-client";
893
- import {forEach} from "mocha/lib/utils";
894
-
895
- let asyncReady = async function (self) {
896
- // 获取配置信息
897
- try {
898
- let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
899
- data: {
900
- items: 'f_dir',
901
- tablename: 't_organization',
902
- condition: `id = '${self.item.f_filialeid}'`,
903
- orderitem: 'id'
904
- }
905
- })/*.then(res=>{*/
906
- //tag
907
- //tag)
908
- console.log(res)
909
- if (!res.data[0].f_dir) {
910
- self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
911
- } else {
912
- //this.f_dir=res.data[0].f_dir
913
- let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
914
- try {
915
- let res1 = await new HttpResetClass().load('GET', `${url}/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
916
- resolveMsg: '获取居民配置项成功!',
917
- rejectMsg: '获取居民配置项出错!'
918
- })/*.then(res=>{*/
919
- //tag
920
- //this.safeConfig["民用配置项"]=Object.assign({},res.data)
921
- if (!Vue.config.safecheck) {
922
- Vue.config = {safecheck: {}}
923
- }
924
- Vue.config.safecheck.DevicesConfig = res1.data
925
- /*})*/
926
- let res2 = await new HttpResetClass().load('GET', `${url}/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
927
- resolveMsg: '获取非居民配置项成功!',
928
- rejectMsg: '获取非居民配置项出错!'
929
- })/*.then(res=>{*/
930
- //tag
931
- //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
932
- Vue.config.safecheck.DevicesSetConfig = res2.data
933
- /*}).then(res=> {
934
- })*/
935
-
936
- } catch (e) {
937
- self.$showMessage("获取配置文件失败" + e)
938
- self.loading = false
939
- }
940
- }
941
- if (self.data.f_recheck_id) {
942
- let res3 = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
943
- data: {
944
- items: '*',
945
- tablename: 't_check_paper',
946
- condition: `id = '${self.data.f_recheck_id}'`,
947
- orderitem: 'id'
948
- }
949
- })
950
- self.lastCheckData = res3.data[0]
951
- }
952
- } catch (error) {
953
- // 忽略704,文件找不到异常R
954
- if (error.status !== 704) {
955
- throw error
956
- }
957
- this.loading = false
958
- }
959
- }
960
- export default {
961
- title: '安检单',
962
- props: ['f_plan_id', 'item', 'role'],
963
- data() {
964
- return {
965
- f_user_path:'',
966
- message: '',
967
- showButton: false,
968
- showModel: false,
969
- data: {
970
- f_devices: [],
971
- f_defect_content: ''
972
- },
973
- showPdfDownload: this.$appdata.getSingleValue('安检结果pdf下载') ? this.$appdata.getSingleValue('安检结果pdf下载') : false,
974
- lastCheckData: {},
975
- paperdata: {},
976
- picturename: '隐患照片',
977
- defectDevice: {},
978
- hasDevice: false,
979
- deviceCollect: {},
980
- deviceCollects: [],
981
- isshow: false,
982
- ajresult: '',
983
- loading: true,
984
- imgshow: false,
985
- imgshow2: false,
986
- isUpload: false,
987
- livedispose: '',
988
- showimg1: '',
989
- showimg2: '',
990
- showimg3: '',
991
- showimg4: '',
992
- showimg5: '',
993
- showimg6: '',
994
- showimg7: '',
995
- showimg8: '',
996
- hiddenDangerImgNumber: 0, //配置项中隐患照片数
997
- otherDarginShowImgs: [],//其他隐患图片
998
- startClick: false, //开始安检按钮是否可点击
999
- isStrat: false, //是否开始安检
1000
- checkResult: {},//查询结果
1001
- newcheckResult: {},
1002
- timer: null,
1003
- showModal: false,
1004
- pic_to_be_viewed: '',
1005
- showBack: true,
1006
- devices: [],
1007
- devicesAll: [],
1008
- configAJ: [],
1009
- configRQ: [],
1010
- deviceconfig: {},
1011
- newConfig: '',
1012
- deviceconfig2: [],
1013
- f_devices: [],
1014
- config: {
1015
- "燃气表": {
1016
- "checkmust": true,
1017
- "index": 1,
1018
- "items": {
1019
- "基表编号": {"index": 1, "type": "string", "readonly": true},
1020
- "气表型号": {"index": 2, "type": "string", "readonly": true},
1021
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
1022
- "进气方向": {"index": 4, "type": "string", "readonly": true},
1023
- "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1024
- "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1025
- "累购气量": {"index": 7, "type": "number", "readonly": true},
1026
- "已用气量": {"index": 8, "type": "number", "checkmust": false},//基表数
1027
- "剩余气量": {"index": 9, "type": "number", "checkmust": false},//累购-已用
1028
- //显示屏数 --实际剩余气量
1029
- "气量异常差值": {"index": 10, "type": "number", "readonly": true},
1030
- "表箱号": {"index": 11, "type": "string", "readonly": true},
1031
- "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1032
- }
1033
- // 注意,配置项的index必须与上面的固定配置保持'顺序'
1034
- }
1035
- },
1036
- //金额
1037
- config2: {
1038
- "燃气表": {
1039
- "checkmust": true,
1040
- "index": 1,
1041
- "items": {
1042
- "基表编号": {"index": 1, "type": "string", "readonly": true},
1043
- "气表型号": {"index": 2, "type": "string", "readonly": true},
1044
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
1045
- "进气方向": {"index": 4, "type": "string", "readonly": true},
1046
- "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1047
- "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1048
- "累购金额": {"index": 7, "type": "number", "readonly": true},
1049
- "已用金额": {"index": 8, "type": "number", "checkmust": false},
1050
- //显示屏数 --实际剩余气量
1051
- "剩余金额": {"index": 9, "type": "number", "checkmust": false},
1052
- "金额异常差值": {"index": 10, "type": "number", "readonly": true},
1053
- "表箱号": {"index": 11, "type": "string", "readonly": true},
1054
- "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1055
- }
1056
- }
1057
- },
1058
- }
1059
- },
1060
- components: {
1061
- RadioGroup,
1062
- Radio,
1063
- },
1064
- computed: {
1065
- isRecodrDownloadBtn() {
1066
- // 投诉单下派还是处理
1067
- let res = this.$appdata.getSingleValue('无限制录音');
1068
- if (res == 'true') {
1069
- return true;
1070
- } else {
1071
- return false;
1072
- }
1073
- },
1074
- selector: {
1075
- get() {
1076
- return 'paper-state'
1077
- },
1078
- set(val) {
1079
- if (this.isStrat) {
1080
- this.$goto(val, {userinfo: this.data}, 'paper-router')
1081
- } else {
1082
- this.$showMessage('未开始安检!')
1083
- }
1084
- }
1085
- },
1086
- actionEnabled: {
1087
- get() {
1088
- return this.role == 'inspect'
1089
- }
1090
- }
1091
- },
1092
- methods: {
1093
- exportToPDF() {
1094
- const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
1095
- html2pdf(element)
1096
- },
1097
-
1098
- showAudit() {
1099
- var audit = this.$appdata.getSingleValue('安检审核');
1100
- if (audit == '是' && (this.item.f_approved == '未审核' || !this.item.f_approved)) {
1101
- this.showButton = true
1102
- }
1103
- },
1104
- //安检审核成功
1105
- auditSuccesss() {
1106
- this.loading = true;
1107
- var reqdata = {
1108
- audit_result: '通过',
1109
- operator: "success",
1110
- audit_time: Util.getNowDate(),
1111
- user_name: this.$login.f.name,
1112
- id: this.item.id,
1113
- f_check_item_id: this.item.f_check_item_id
1114
- }
1115
- new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1116
- resolveMsg: '安检审核成功!',
1117
- rejectMsg: '安检审核出错!'
1118
- }).then((res) => {
1119
- if (res.data.code == 200) {
1120
- this.loading = false;
1121
- this.$back()
1122
- }
1123
- })
1124
- },
1125
- auditFail() {
1126
- this.showModel = true;
1127
- },
1128
- auditFailOK() {
1129
-
1130
- this.loading = true;
1131
- var reqdata = {
1132
- message: this.message,
1133
- audit_result: '不通过',
1134
- operator: "fail",
1135
- audit_time: Util.getNowDate(),
1136
- user_name: this.$login.f.name,
1137
- id: this.item.id,
1138
- f_check_item_id: this.item.f_check_item_id
1139
- }
1140
- new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1141
- resolveMsg: '安检审核成功!',
1142
- rejectMsg: '安检审核出错!'
1143
- }).then((res) => {
1144
- if (res.data.code == 200) {
1145
- this.loading = false;
1146
- this.message = '';
1147
- this.showModel = false;
1148
- this.$back()
1149
- }
1150
- })
1151
- },
1152
- auditFailCancel() {
1153
- this.showModel = false;
1154
- this.message = '';
1155
- },
1156
-
1157
- devicesCollect() {
1158
- //tag
1159
- //tag)
1160
- //tag)
1161
- //tag
1162
- this.deviceCollects = []
1163
- let checkResult = '正常'
1164
- this.result = '正常'
1165
- let codata = JSON.parse(JSON.stringify(this.data))
1166
- //tag)
1167
- for (let device in this.data) {
1168
- let f_device_type
1169
- if (device.startsWith("device")) {
1170
- for (let item in this.data[device]) {
1171
- if (this.data[device].length > 1) {
1172
- let j = Number.parseInt(item) + 1
1173
- f_device_type = `${this.data[device][item].f_device_type}${j}`
1174
- } else {
1175
- f_device_type = this.data[device][item].f_device_type
1176
- }
1177
- // //tag
1178
- let deviceelse = []
1179
- let deviceInfos = []
1180
- for (let i in this.data[device][item].f_items) {
1181
- let defects = ''
1182
-
1183
- let items = this.data[device][item].f_items[i]
1184
-
1185
-
1186
- if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox' || items.type === 'picture') && items.f_item_value != null && items.f_item_value instanceof Array) {
1187
- for (let i in items.f_item_value) {
1188
- let f_item_value = items.f_item_value[i]
1189
-
1190
- //tag)
1191
- //tag)
1192
- //tag)
1193
- //tag)
1194
-
1195
- if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name] && (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
1196
- continue
1197
- }
1198
- /*if(items.f_is_defect != true && items.f_is_defect != 'true'){
1199
- continue
1200
- }*/
1201
- if (items.f_is_defect == 'true' || items.f_is_defect == true) {
1202
- checkResult = '有隐患'
1203
- this.result = '有隐患'
1204
- defects = `${defects}:${items.f_item_value}/`
1205
- }
1206
- /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
1207
- for (let option in options) {
1208
- if (options[option].data == f_item_value) {
1209
- if (options[option].isdefect == 'true' || options[option].isdefect == true) {
1210
- checkResult = '有隐患'
1211
- this.result = '有隐患'
1212
- defects = `${defects}:${options[option].data}/`
1213
- // let level = options[option].level
1214
- }
1215
- }
1216
- }*/
1217
- //tag)
1218
- }
1219
- if (defects != '') {
1220
- console.log('有隐患items', items)
1221
- deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}${items.f_else ? items.f_else : ''}`)
1222
- }
1223
- } else if ((items.type === 'string' || items.type === 'number') && items.f_is_defect && items.f_item_value[0]) {
1224
- checkResult = '有隐患'
1225
- this.result = '有隐患'
1226
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1227
-
1228
- } else if (items.f_item_name == '金额异常差值') {
1229
- var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
1230
- //tag
1231
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1232
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1233
- checkResult = '有隐患'
1234
- this.result = '有隐患'
1235
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1236
- }
1237
- }
1238
- } else if (items.f_item_name == '气量异常差值') {
1239
- var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
1240
- //tag
1241
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1242
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1243
- checkResult = '有隐患'
1244
- this.result = '有隐患'
1245
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1246
- }
1247
- }
1248
- }
1249
- if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]) {
1250
- // console.log('this.config[this.data[device][item].f_device_type]', this.config[this.data[device][item].f_device_type])
1251
- // console.log('this.deviceconfig2', this.deviceconfig2)
1252
- for (let dev in this.deviceconfig2) {
1253
- if (this.deviceconfig2[dev].checkname == this.data[device][item].f_device_type) {
1254
- this.deviceconfig2[dev].items.push({
1255
- lname: items.f_item_name
1256
- })
1257
- }
1258
- }
1259
- }
1260
- //tag)
1261
- //tag
1262
- //tag
1263
- if (items.type === 'selector') {
1264
- items.selected = []
1265
- } else if (items.type === 'inputSelector') {
1266
- items.selected = ''
1267
- }
1268
- }
1269
-
1270
-
1271
- //tag
1272
- this.$set('deviceCollect.name', f_device_type)
1273
- this.$set('deviceCollect.value', checkResult)
1274
- this.$set('deviceCollect.devices', deviceInfos)
1275
- this.$set('deviceCollect.else', deviceelse)
1276
- console.log('deviceCollect.devices', this.deviceCollect.devices)
1277
- console.log('deviceCollect.else', this.deviceCollect.else)
1278
- //tag)
1279
- if (this.deviceCollect.name) {
1280
- //tag
1281
- this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
1282
- }
1283
-
1284
- checkResult = '正常'
1285
- this.deviceCollect = {}
1286
- }
1287
- }
1288
- }
1289
- if (this.deviceCollects.length > 0) {
1290
- this.hasDevice = true
1291
- }
1292
- this.deviceconfig2 = this.deviceconfig2.filter(row => {
1293
- return !(row.checkname == '$configProp' || row.checkname == '$globalProp');
1294
- })
1295
- this.ajresult = JSON.parse(this.data.f_defect_content).result
1296
- this.showimg3 = this.data.f_noanswer_path
1297
- this.showimg5 = this.data.f_noanswer1_path
1298
- this.showimg6 = this.data.f_noanswer2_path
1299
- this.showimg4 = this.data.f_rejectcheck_path
1300
- this.showimg7 = this.data.f_rejectcheck1_path
1301
- this.showimg8 = this.data.f_rejectcheck2_path
1302
- this.paperdata = this.data
1303
- this.f_user_path = this.paperdata.f_user_pictures ? JSON.parse(this.paperdata.f_user_pictures)[0].f_user_path : ''
1304
- this.loading = false
1305
- },
1306
- imgclose() {
1307
- this.imgshow = false
1308
- },
1309
- putDevices() {
1310
- ////tag
1311
- this.$set('data.approve', "true")
1312
- this.$set('data.writeback', "false")
1313
- if (Vue.config.safecheck.ApproveConfig != undefined) {
1314
- if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1315
- this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1316
- }
1317
- if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1318
- this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1319
- }
1320
- if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1321
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1322
- }
1323
- if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1324
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1325
- this.hiddenDangerImgNumber = 3
1326
- } else {
1327
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1328
- }
1329
- }
1330
- }
1331
- //tag
1332
- //tag)
1333
- if (!this.item.f_safecheck_type && Vue.config.safecheck.SafecheckType) {
1334
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
1335
- } else if (Vue.config.safecheck.SafecheckType){
1336
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
1337
- }else {
1338
- if(this.item.f_check_type == '民用'){
1339
- this.config = this.extend(this.config, Vue.config.safecheck.DevicesConfig)
1340
- }else {
1341
- this.config = this.extend(this.config, Vue.config.safecheck.DevicesSetConfig)
1342
- }
1343
- }
1344
- //遍历安检项配置
1345
- for (let i in this.config) {
1346
- //取得安检项索引值
1347
- let n = this.config[i].index
1348
- this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
1349
- this.$set('data.' + 'device' + n, [])
1350
- let items = []
1351
- for (let it in this.config[i].items) {
1352
- //赋值下拉选项
1353
- if (this.config[i].items[it].type == 'selector') {
1354
- for (let op in this.config[i].items[it].options)
1355
- if (this.config[i].items[it].options[op].isdefault == true) {
1356
- items.push({
1357
- f_defect_level: this.config[i].items[it].options[op].level,
1358
- f_is_defect: this.config[i].items[it].options[op].isdefect,
1359
- f_item_name: it,
1360
- f_item_value: this.config[i].items[it].options[op].data,
1361
- f_path: "",
1362
- type: "selector"
1363
- })
1364
- }
1365
- }
1366
- }
1367
- n = n + 1
1368
- }
1369
-
1370
- },
1371
- showpath(val1, val2) {
1372
- //tag
1373
- //tag
1374
- if (val1) {
1375
- this.showimg1 = val1
1376
- this.picturename = val2
1377
- this.imgshow = true
1378
- }
1379
- },
1380
- showpicture(val1, val2) {
1381
- //tag
1382
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1383
- return
1384
- }
1385
- for (let i = 0; i < this.devicesAll.length; i++) {
1386
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1387
- if (this.devicesAll[i][j].f_device_type == val1) {
1388
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1389
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1390
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1391
- return false
1392
- } else {
1393
- this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
1394
- this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
1395
- this.otherDarginShowImgs = []
1396
- for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
1397
- let img = {path: ''}
1398
- if (this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path']) {
1399
- img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path'] + '?' + Math.random()
1400
- this.otherDarginShowImgs.push(img)
1401
- }
1402
- }
1403
- this.picturename = '隐患照片'
1404
- this.imgshow = true
1405
- return true
1406
- }
1407
- }
1408
- }
1409
-
1410
- }
1411
- }
1412
- }
1413
- },
1414
- isred(val1, val2) {
1415
- //tag
1416
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1417
- return
1418
- }
1419
- for (let i = 0; i < this.devicesAll.length; i++) {
1420
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1421
- if (this.devicesAll[i][j].f_device_type == val1) {
1422
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1423
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1424
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1425
- return false
1426
- } else {
1427
- return true
1428
- }
1429
- }
1430
- }
1431
-
1432
- }
1433
- }
1434
- }
1435
- },
1436
- showpicture2() {
1437
- this.imgshow2 = true
1438
- },
1439
- getDeviceValue(val1, val2) {
1440
- let aa = ''
1441
- for (let i = 0; i < this.devicesAll.length; i++) {
1442
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1443
- if (this.devicesAll[i][j].f_device_type == val1) {
1444
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1445
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1446
- if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
1447
- for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
1448
- let val = this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value
1449
- aa += (val === null ? '空' : val) + ' '
1450
- }
1451
- return aa
1452
- }
1453
- }
1454
- }
1455
-
1456
- }
1457
- }
1458
- }
1459
-
1460
- },
1461
- getDevicePath(val1, val2) {
1462
- for (let i = 0; i < this.devicesAll.length; i++) {
1463
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1464
- if (this.devicesAll[i][j].f_device_type == val1) {
1465
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1466
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1467
- return this.devicesAll[i][j].f_items[k].f_path
1468
- }
1469
- }
1470
-
1471
- }
1472
- }
1473
- }
1474
-
1475
- },
1476
- getDeviceAll() {
1477
- let keyall = Object.keys(this.data)
1478
- for (let i = 0; i < keyall.length; i++) {
1479
- //tag)
1480
- if ((keyall[i].startsWith('f_devices') || keyall[i].startsWith('devices')) && keyall[i] != 'deviceundefined') {
1481
- this.devicesAll.push(this.data[keyall[i]])
1482
- //tag
1483
- }
1484
- }
1485
- //tag
1486
- //tag)
1487
- this.devicesCollect()
1488
-
1489
- },
1490
-
1491
- back() {
1492
- if (this.role == 'inspect') {
1493
- if (!this.isStrat) {
1494
- this.$back()
1495
- return
1496
- } else {
1497
- this.savePaper(true).then(() => {
1498
- this.$back()
1499
- this.isStrat = false
1500
- })
1501
- }
1502
- } else {
1503
- this.$back()
1504
- }
1505
- },
1506
- checkIsStart() {
1507
- alert('asdad')
1508
- return
1509
- },
1510
-
1511
- viewPic(fileName) {
1512
- //tag
1513
- if (this.role == 'view') {
1514
- if (!fileName.endsWith('nopic.png')) {
1515
- this.pic_to_be_viewed = fileName
1516
- this.showModal = true
1517
- }
1518
- } else {
1519
- HostApp.viewPic(fileName)
1520
- }
1521
- },
1522
- tick() {
1523
- this.timer = null
1524
- this.data.f_offsite_time = Util.toStandardTimeString()
1525
- this.timer = window.setTimeout(this.tick, 1000)
1526
- },
1527
- getRepairState() {
1528
- let repaired = true
1529
- this.data.f_defects.forEach((defect) => {
1530
- repaired = repaired & (defect.f_ratification == '已处理')
1531
- })
1532
- return repaired
1533
- },
1534
- verifyRepairDefects() {
1535
- this.data.f_repair_date = Util.toStandardTimeString()
1536
- this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
1537
- },
1538
- genuineSave(saveOnly) {
1539
- HostApp.__this__.save(saveOnly)
1540
- if (!saveOnly)
1541
- HostApp.__this__.disableTimer()
1542
- HostApp.__callback__ = null
1543
- HostApp.__this__ = null
1544
- },
1545
- setUrgency() {
1546
- this.data.f_defect_urgency = 'Z'
1547
- let that = this
1548
- this.data.f_defects.forEach(function (defect) {
1549
- if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
1550
- that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
1551
- })
1552
- if (this.data.f_defect_urgency == 'Z')
1553
- this.data.f_defect_urgency = null
1554
- },
1555
- disableTimer() {
1556
- if (this.timer) {
1557
- window.clearTimeout(this.timer)
1558
- this.timer = null
1559
- }
1560
- },
1561
- loaded(paper) {
1562
- if (!paper.hasOwnProperty('id')) {
1563
- this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1564
- this.init()
1565
- } else {
1566
- Util.booleanFilter(paper)
1567
- HostApp.__this__.$set('data', paper)
1568
- HostApp.__this__.$goto('paper-state', {}, 'paper-router')
1569
- // 如果打回重检则重新计时
1570
- //tag
1571
- if (HostApp.__this__.role == 'inspect'
1572
- && HostApp.__this__.data.f_approved
1573
- && HostApp.__this__.data.f_approved == '打回') {
1574
- //tag
1575
- HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1576
- HostApp.__this__.tick()
1577
- }
1578
- }
1579
- HostApp.__callback__ = null
1580
- HostApp.__this__ = null
1581
- },
1582
- S4() {
1583
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
1584
- },
1585
- init() {
1586
- this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1587
- this.data.ename = Vue.user.ename
1588
- this.data.f_outlets = Vue.user.f_parentname
1589
- this.data.f_meetunit = Vue.user.orgpathnames
1590
- this.data.orgpathstr = Vue.user.orgpathstr
1591
- this.data.f_check_item_id = this.item.id
1592
- this.data.f_check_plan_id = this.f_plan_id
1593
- this.data.f_checker_id = Vue.user.id
1594
- this.data.f_checker_name = Vue.user.name
1595
- this.data.f_check_type = this.item.f_user_type
1596
- this.data.f_subcompany = this.item.f_subcompany
1597
- this.data.f_approved = this.item.f_approved
1598
- this.data.f_repair_approved = this.item.f_repair_approved
1599
- this.data.f_no_checkplan = this.item.f_no_checkplan
1600
- this.data.f_approved = this.item.f_approved
1601
- this.data.f_filialeid = this.item.f_filialeid
1602
- this.data.f_orgstr = this.item.f_orgstr
1603
- this.data.version = this.item.version
1604
- this.$set('data.f_meters', this.item.f_plan_meters)
1605
- this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1606
- // 安检状态
1607
- this.$set('data.f_entry_status', '入户')
1608
- this.$set('data.f_usegas', '已使用')
1609
- this.$set('data.f_state', this.item.f_state)
1610
- // 用户信息
1611
- this.$set('data.f_user_name', this.item.f_user_name)
1612
- this.$set('data.f_user_phone', this.item.f_user_phone)
1613
- this.$set('data.f_userinfoid', this.item.f_userinfoid)
1614
- this.$set('data.f_address', this.item.f_address)
1615
- this.$set('data.f_card_id', this.item.f_card_id)
1616
- this.$set('data.f_area', this.item.f_area)
1617
- this.$set('data.f_street', this.item.f_street)
1618
- this.$set('data.f_room', this.item.f_room)
1619
- this.$set('data.f_building', this.item.f_building)
1620
- this.$set('data.f_unit', this.item.f_unit)
1621
- this.$set('data.f_floor', this.item.f_floor)
1622
- this.$set('data.f_residential_area', this.item.f_residential_area)
1623
- this.$set('data.f_idnumber', this.item.f_idnumber)
1624
- this.$set('data.f_comments', this.item.f_comments)
1625
- this.$set('data.f_userproperties', this.item.f_userproperties)
1626
- // 处置方式
1627
- this.$set('data.f_no_gas_device', false)
1628
- this.$set('data.f_close_valve', false)
1629
- this.$set('data.f_unload_battery', false)
1630
- if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1631
- this.data.f_check_item_id = this.data.f_noplan_item_id
1632
- }
1633
-
1634
- //房屋结构
1635
- // this.$set('data.f_room_style', '多层')
1636
- //供暖方式
1637
- // this.$set('data.f_heating_style', '热力公司集中供暖')
1638
- if (this.item.f_plan_meters) {
1639
- for (let de in this.devices) {
1640
- this.$set('data.device' + this.devices[de].n, [])
1641
- for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1642
- if (this.item.f_plan_meters[i].f_meter_type) {
1643
- if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1644
- delete this.config['燃气表']['items']['累计购气量']
1645
- this.data['device' + this.devices[de].n].push({
1646
- f_device_type: "燃气表",
1647
- f_items: [{
1648
- f_defect_level: null,
1649
- f_device_id: "",
1650
- f_is_defect: "",
1651
- f_item_name: "表品牌",
1652
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1653
- f_path: "",
1654
- type: "string"
1655
- },
1656
- {
1657
- f_defect_level: null,
1658
- f_device_id: "",
1659
- f_is_defect: "",
1660
- f_item_name: "位置",
1661
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1662
- f_path: "",
1663
- type: "selector"
1664
- },
1665
- {
1666
- f_defect_level: null,
1667
- f_device_id: "",
1668
- f_is_defect: "",
1669
- f_item_name: "表号",
1670
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1671
- f_path: "",
1672
- type: "number"
1673
- },
1674
- {
1675
- f_defect_level: null,
1676
- f_device_id: "",
1677
- f_is_defect: "",
1678
- f_item_name: "表封号",
1679
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1680
- f_path: "",
1681
- type: "number"
1682
- },
1683
- {
1684
- f_defect_level: null,
1685
- f_device_id: "",
1686
- f_is_defect: "",
1687
- f_item_name: "表型号",
1688
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1689
- f_path: "",
1690
- type: "selector"
1691
- },
1692
- {
1693
- f_defect_level: null,
1694
- f_device_id: "",
1695
- f_is_defect: "",
1696
- f_item_name: "表底数",
1697
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1698
- f_path: "",
1699
- type: "number"
1700
- }
1701
- ]
1702
- })
1703
- } else if (this.devices[de].device == "燃气表") {
1704
- delete this.config['燃气表']['items']['表底数']
1705
- this.data['device' + this.devices[de].n].push({
1706
- f_device_type: "燃气表",
1707
- f_items: [{
1708
- f_defect_level: null,
1709
- f_device_id: "",
1710
- f_is_defect: "",
1711
- f_item_name: "表品牌",
1712
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1713
- f_path: "",
1714
- type: "string"
1715
- },
1716
- {
1717
- f_defect_level: null,
1718
- f_device_id: "",
1719
- f_is_defect: "",
1720
- f_item_name: "位置",
1721
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1722
- f_path: "",
1723
- type: "selector"
1724
- },
1725
- {
1726
- f_defect_level: null,
1727
- f_device_id: "",
1728
- f_is_defect: "",
1729
- f_item_name: "表号",
1730
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1731
- f_path: "",
1732
- type: "number"
1733
- },
1734
- {
1735
- f_defect_level: null,
1736
- f_device_id: "",
1737
- f_is_defect: "",
1738
- f_item_name: "表封号",
1739
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1740
- f_path: "",
1741
- type: "number"
1742
- },
1743
- {
1744
- f_defect_level: null,
1745
- f_device_id: "",
1746
- f_is_defect: "",
1747
- f_item_name: "表型号",
1748
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1749
- f_path: "",
1750
- type: "selector"
1751
- },
1752
- {
1753
- f_defect_level: null,
1754
- f_device_id: "",
1755
- f_is_defect: "",
1756
- f_item_name: "累计购气量",
1757
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1758
- f_path: "",
1759
- type: "number"
1760
- }
1761
- ]
1762
- })
1763
- }
1764
- }
1765
- }
1766
- }
1767
- }
1768
-
1769
- this.$goto('paper-state', {}, 'paper-router')
1770
- },
1771
- extend(initalObj, finalObj) {
1772
- var obj = finalObj || {};
1773
- for (var i in initalObj) {
1774
- var prop = initalObj[i];
1775
-
1776
- // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1777
- if (prop === obj) {
1778
- continue;
1779
- }
1780
-
1781
- if (typeof prop === 'object') {
1782
- if (obj[i]) {
1783
- this.extend(obj[i], prop)
1784
- } else {
1785
- obj[i] = prop;
1786
- }
1787
- }
1788
- }
1789
- return obj;
1790
- },
1791
- //获取当前时间
1792
- getNowFormatDate() {
1793
- var date = new Date();
1794
- var seperator1 = "-";
1795
- var seperator2 = ":";
1796
- var month = date.getMonth() + 1;
1797
- var strDate = date.getDate();
1798
- if (month >= 1 && month <= 9) {
1799
- month = "0" + month;
1800
- }
1801
- if (strDate >= 0 && strDate <= 9) {
1802
- strDate = "0" + strDate;
1803
- }
1804
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1805
- + " " + date.getHours() + seperator2 + date.getMinutes()
1806
- + seperator2 + date.getSeconds();
1807
- return currentdate;
1808
- }
1809
- },
1810
- ready() {
1811
- setTimeout(() => {
1812
- this.loading = false;
1813
- }, 10000)
1814
- this.putDevices()
1815
- this.showAudit()
1816
- this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '否';
1817
- if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') {
1818
- if (this.role != 'inspect') {
1819
- let that = this
1820
- let id
1821
- if (this.role == 'view') {
1822
- id = this.item.id
1823
- } else if (this.role == 'androidview') {
1824
- id = this.item.f_paper_id
1825
- }
1826
- this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1827
- //tag
1828
- if (respanse.data.length != 0) {
1829
- // 包含 其它 特殊处理的数组
1830
- // 对应位置
1831
- that.data = Object.assign(that.data, respanse.data[0])
1832
- if (respanse.data[0].f_devices) {
1833
- for (let da in that.devices) {
1834
- that.$set('data.device' + that.devices[da].n, [])
1835
- }
1836
- respanse.data[0].f_devices.forEach((item) => {
1837
- for (let de in that.devices) {
1838
- if (that.devices[de].device == item.f_device_type) {
1839
- item.f_items.forEach((f_item) => {
1840
- //tag
1841
- //tag
1842
- let itemValues = []
1843
- f_item.f_item_lists.forEach((tempItem) => {
1844
- //tag
1845
- if (tempItem.f_item_value !== 'null') {
1846
- itemValues.push(tempItem.f_item_value)
1847
- }
1848
- })
1849
- f_item.f_item_value = itemValues
1850
- })
1851
- that.data['device' + that.devices[de].n].push({
1852
- f_device_type: item.f_device_type,
1853
- f_items: item.f_items
1854
- })
1855
- }
1856
- }
1857
- })
1858
- }
1859
- Util.replaceFalse(that.data)
1860
- Util.booleanFilter(that.data)
1861
- if (this.role == 'view') {
1862
- Util.ratifyPics(that.data)
1863
- Util.ratifyPics(that.picture)
1864
- } else {
1865
- Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1866
- }
1867
- //tag
1868
- }
1869
- // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1870
- this.isshow = true
1871
- // asyncReady(this).then(() => {
1872
- //tag
1873
- //tag)
1874
- console.log('Vue.config.safecheck.DevicesConfig', Vue.config.safecheck.DevicesConfig)
1875
- // 如果没有用户类型 默认按民用配置走
1876
- if (this.data.f_check_type == '非民用') {
1877
- this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1878
- if (typeof this.deviceconfig === 'string') {
1879
- this.deviceconfig = JSON.parse(this.deviceconfig)
1880
- }
1881
- }else{
1882
- this.deviceconfig = Vue.config.safecheck.DevicesConfig
1883
- if (typeof this.deviceconfig === 'string') {
1884
- this.deviceconfig = JSON.parse(this.deviceconfig)
1885
- }
1886
- }
1887
- if (this.data.f_collection_type == '按金额') {
1888
- if (this.deviceconfig["燃气表"]){
1889
- let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1890
- this.deviceconfig["燃气表"].items = aaa
1891
- }
1892
- } else {
1893
- if (this.deviceconfig["燃气表"]){
1894
- let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1895
- this.deviceconfig["燃气表"].items = aaa
1896
- }
1897
- }
1898
- this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1899
- this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1900
- this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1901
- this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1902
- this.getDeviceAll()
1903
- // })
1904
- }
1905
- ).catch(
1906
- (respanse) => {
1907
- //tag
1908
- alert('查找安检单失败')
1909
- this.loading = false
1910
- })
1911
- }
1912
- }
1913
-
1914
- },
1915
- watch: {
1916
- // 'isUpload'(val){
1917
- // //tag
1918
- // }
1919
- },
1920
- destroyed() {
1921
- //tag
1922
- this.disableTimer()
1923
- }
1924
- }
1925
-
1926
- </script>
1927
- <style scoped>
1928
- .table-striped thead tr th {
1929
- background-color: rgb(223, 237, 251);
1930
- padding: 10px;
1931
- border-left: solid 0px #dae4f2;
1932
- border-top: solid 1px #dae4f2;
1933
- border-right: none;
1934
- border-bottom: none;
1935
- text-align: center;
1936
- color: black;
1937
- }
1938
- </style>
1
+ <style scoped id="printStyle">
2
+ .img {
3
+ border: 1px solid #9773ed;
4
+ width: auto;
5
+ height: auto;
6
+ float: left;
7
+ text-align: center;
8
+ margin: 6px;
9
+ }
10
+
11
+ img {
12
+ margin: 6px;
13
+ }
14
+
15
+
16
+ .container {
17
+ margin: 10px auto;
18
+ width: 80%;
19
+ height: auto;
20
+ }
21
+
22
+ div::-webkit-scrollbar {
23
+ width: 0 !important;
24
+ height: 0 !important;
25
+ }
26
+
27
+ div {
28
+ -ms-overflow-style: none;
29
+ overflow: -moz-scrollbars-none;
30
+ }
31
+
32
+ .divmask {
33
+ pointer-events: none;
34
+ }
35
+
36
+ .app-header {
37
+ border-radius: 50%;
38
+ background: rgba(73, 158, 223, 0.4);
39
+ color: #FFF;
40
+ padding: 20px;
41
+ text-align: center;
42
+ font-size: 1.2em;
43
+ z-index: 10;
44
+ opacity: 0.5;
45
+ bottom: 50px;
46
+ margin-top: -20px;
47
+ position: absolute;
48
+ top: 10%;
49
+ right: 2%;
50
+ height: 8%;
51
+ }
52
+ </style>
53
+
54
+ <template>
55
+ <div class="basic-main" style="height: 100%">
56
+ <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
57
+ <div @click="back()">
58
+ <img src="../../../assets/back.png" style="margin: 0px"/>
59
+ </div>
60
+ </div>
61
+ <div v-show="showPdfDownload" class="page-header app-header auto"
62
+ style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
63
+ <div @click="exportToPDF()">
64
+ <img src="../../../assets/下载_.png" style="margin: 0px;width: 30px"/>
65
+ </div>
66
+ </div>
67
+ <work-busy :is-busy="loading"></work-busy>
68
+ <div class="container-fluid" style="overflow: scroll">
69
+ <div class="row">
70
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
71
+ <div style="width: 100%;margin: auto">
72
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
73
+ <thead>
74
+ <tr>
75
+ <th colspan="6" style="text-align: center">用户基本信息</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <tr>
80
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
81
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
82
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
83
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
84
+ </tr>
85
+ <tr>
86
+ <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
87
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
88
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
89
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
90
+ </tr>
91
+ <tr>
92
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
93
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
94
+ <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
95
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
96
+ </tr>
97
+ <tr>
98
+ <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
99
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
100
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
101
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</td>
102
+ </tr>
103
+ <tr>
104
+ <td style="text-align: center;border: #E9E9E9 solid 1px">单 元:</td>
105
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_unit }}</td>
106
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
107
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
108
+ </tr>
109
+ <tr>
110
+ <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
111
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
112
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
113
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
114
+ </tr>
115
+ <tr>
116
+ <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
117
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
118
+ <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
119
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
120
+ </tr>
121
+ <tr>
122
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
123
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
124
+ </tr>
125
+ </tbody>
126
+ </table>
127
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
128
+ v-show="paperdata.f_entry_status=='入户'">
129
+ <thead>
130
+ <tr>
131
+ <th colspan="4" style="text-align: center">用户安检概况</th>
132
+ </tr>
133
+ </thead>
134
+ <tbody>
135
+ <tr>
136
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
137
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
138
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
139
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
140
+ </tr>
141
+ <tr>
142
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
143
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
144
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
145
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
146
+ </tr>
147
+ <tr>
148
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
149
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
150
+ paperdata.f_client_evaluation
151
+ }}
152
+ </td>
153
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
154
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
155
+ :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
156
+ </td>
157
+ </tr>
158
+ <tr>
159
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
160
+ <td colspan="3"
161
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
162
+ {{ paperdata.f_repair_approved_note }}
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
167
+ <td colspan="3"
168
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
169
+ <span v-for="deviceCollect in deviceCollects">
170
+ <span class="li-font">
171
+ {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
172
+ </span>
173
+ <br>
174
+ <span v-if="deviceCollect.value == '有隐患'">
175
+ <lable>
176
+ 隐患:
177
+ </lable>
178
+ <span v-for="val in deviceCollect.devices">
179
+ {{ val }}
180
+ </span><br>
181
+ </span>
182
+
183
+ </span>
184
+ </td>
185
+ </tr>
186
+
187
+ </tbody>
188
+ </table>
189
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
190
+ v-show="paperdata.f_entry_status!='入户'">
191
+ <thead>
192
+ <tr>
193
+ <th colspan="4" style="text-align: center">用户安检概况</th>
194
+ </tr>
195
+ </thead>
196
+ <tbody>
197
+ <tr>
198
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
199
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
200
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
201
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
202
+ </tr>
203
+ <tr>
204
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
205
+ <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
206
+ {{ paperdata.f_entry_status }}
207
+ </td>
208
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
209
+ <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
210
+ {{ dev.lname }}
211
+ 查看{{ data.f_entry_status }}照片
212
+ </button-link>
213
+ </td>
214
+ </tr>
215
+
216
+ </tbody>
217
+ </table>
218
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
219
+ v-show="item.f_no_checkplan == '复检'">
220
+ <thead>
221
+ <tr>
222
+ <th colspan="4" style="text-align: center">上次安检情况</th>
223
+ </tr>
224
+ </thead>
225
+ <tbody>
226
+ <tr>
227
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
228
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
229
+ lastCheckData.f_onsite_time
230
+ }}
231
+ </td>
232
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
233
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
234
+ lastCheckData.f_offsite_time
235
+ }}
236
+ </td>
237
+ </tr>
238
+ <tr>
239
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
240
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
241
+ {{ lastCheckData.f_checker_name }}
242
+ </td>
243
+ </tr>
244
+ <tr>
245
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
246
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
247
+ {{ lastCheckData.f_defect_text }}
248
+ </td>
249
+ </tr>
250
+
251
+ </tbody>
252
+ </table>
253
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
254
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_usegas == '未用气'">
255
+ <thead>
256
+ <tr>
257
+ <th style="text-align: center">未用气照片</th>
258
+ </tr>
259
+ </thead>
260
+ <tbody>
261
+ <tr>
262
+ <td style="margin: auto;text-align: center">
263
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
264
+ <div class="img">
265
+ <img-self-plus :src="paperdata.f_nongasuser_path" style="float: left" width="150"
266
+ height="200"></img-self-plus>
267
+ </div>
268
+ </div>
269
+ </td>
270
+ </tr>
271
+ </tbody>
272
+ </table>
273
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
274
+ v-show="paperdata.f_entry_status=='入户'">
275
+ <thead>
276
+ <tr>
277
+ <th style="text-align: center">总体安检照片</th>
278
+ </tr>
279
+ </thead>
280
+ <tbody>
281
+ <tr>
282
+ <td style="margin: auto;text-align: center">
283
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
284
+ <div class="img" v-for="img in paperdata.f_overall_imgs">
285
+ <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
286
+ width="150"
287
+ height="200"></img-self-plus>
288
+ </div>
289
+ </div>
290
+
291
+
292
+ </td>
293
+
294
+ </tr>
295
+ </tbody>
296
+ </table>
297
+ <table class="table table-striped table-bordered" style="width: 100%"
298
+ v-show="paperdata.f_entry_status=='入户' && (paperdata.f_sign_path || f_user_path) ">
299
+ <thead>
300
+ <tr>
301
+ <th style="text-align: center">用户签名照片</th>
302
+ </tr>
303
+ </thead>
304
+ <tbody>
305
+ <tr>
306
+ <td style="margin: auto;text-align: center" v-if="paperdata.f_sign_path">
307
+ <div class="container" style="max-width: 500px;background: #FFFFFF" >
308
+ <div class="img" style="float: none">
309
+ <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
310
+ </div>
311
+ </div>
312
+ </td>
313
+ <td style="margin: auto;text-align: center" v-if="f_user_path">
314
+ <div class="container" style="max-width: 550px;background: #FFFFFF" >
315
+ <div class="img" style="float: none">
316
+ <img-self-plus :src="'rs/image/file/'+f_user_path"
317
+ width="200"
318
+ height="200"></img-self-plus>
319
+ </div>
320
+ </div>
321
+ </td>
322
+ </tr>
323
+ </tbody>
324
+ </table>
325
+ <table class="table table-striped table-bordered"
326
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
327
+ <thead>
328
+ <tr>
329
+ <th style="text-align: center">安检通知书/隐患整改通知书</th>
330
+ </tr>
331
+ </thead>
332
+ <tbody>
333
+ <tr>
334
+ <td style="margin: auto;text-align: center">
335
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
336
+ <div class="img" style="float: none">
337
+ <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
338
+ </div>
339
+ </div>
340
+ </td>
341
+ </tr>
342
+ </tbody>
343
+ </table>
344
+ <table class="table table-striped table-bordered"
345
+ v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
346
+ <thead>
347
+ <tr>
348
+ <th style="text-align: center">安检视频</th>
349
+ </tr>
350
+ </thead>
351
+ <tbody>
352
+ <tr>
353
+ <td style="margin: auto;text-align: center">
354
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
355
+ <video width="320" height="200" controls v-if="paperdata.f_video_path">
356
+ <source :src="paperdata.f_video_path" type="video/mp4">
357
+ </video>
358
+ </div>
359
+ </td>
360
+ </tr>
361
+ </tbody>
362
+ </table>
363
+ <table class="table table-striped table-bordered"
364
+ v-show="item.f_recording1_path">
365
+ <thead>
366
+ <tr>
367
+ <th style="text-align: center">录音文件</th>
368
+ </tr>
369
+ </thead>
370
+ <tbody>
371
+ <tr>
372
+ <td style="margin: auto;text-align: center">
373
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
374
+ <a class="button_spacing button_search-1"
375
+ :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
376
+ :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
377
+ </div>
378
+ </td>
379
+ </tr>
380
+ </tbody>
381
+ </table>
382
+ </div>
383
+ </div>
384
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
385
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
386
+ <div style="width: 95%;margin-left: 5%">
387
+ <table class="table table-striped table-bordered" v-for="config in deviceconfig2" style="margin-top: 35px">
388
+ <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
389
+ <tr>
390
+ <th style="text-align: center">{{ config.checkname }}</th>
391
+ </tr>
392
+ </thead>
393
+ <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
394
+ <tr v-for="dev in config.items">
395
+ <td v-if="dev.type!='text' && dev.isshow != false">
396
+ <div class="row">
397
+ <div class="col-md-8" style="text-align: center;">
398
+ <label>
399
+ <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
400
+ :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
401
+ {{ dev.lname }}
402
+ </button-link>
403
+ </label>
404
+ </div>
405
+ <div class="col-md-4" style="text-align: center">
406
+ <label style="font-weight: normal"
407
+ v-if="dev.type!='picture'">{{
408
+ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
409
+ }}</label>
410
+ <label style="font-weight: normal" v-if="dev.type=='picture'">
411
+ <div v-show="getDevicePath(config.checkname,dev.lname)">
412
+ <button-link style="color: black" type="button" class="btn btn-link"
413
+ @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
414
+ </button-link>
415
+ </div>
416
+ <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
417
+ </label>
418
+ </div>
419
+ </div>
420
+ </td>
421
+ <td v-if="dev.type==='text' && dev.isshow != false">
422
+ <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
423
+ </td>
424
+ </tr>
425
+ </tbody>
426
+ </table>
427
+ <div v-show="showButton">
428
+ <button class="button_spacing button_search" @click="auditSuccesss()">通过</button>
429
+ <button class="button_spacing button_search" @click="auditFail()">不通过</button>
430
+ </div>
431
+ </div>
432
+ </div>
433
+
434
+ </div>
435
+ </div>
436
+ <div v-show="false">
437
+ <div class="container-fluid" id="toPdf" style="overflow: scroll">
438
+ <div class="row">
439
+ <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
440
+ <div style="width: 100%;margin: auto">
441
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
442
+ <thead>
443
+ <tr>
444
+ <th colspan="6" style="text-align: center">用户基本信息</th>
445
+ </tr>
446
+ </thead>
447
+ <tbody>
448
+ <tr>
449
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
450
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
451
+ paperdata.f_userinfo_code
452
+ }}
453
+ </td>
454
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
455
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
456
+ </tr>
457
+ <tr>
458
+ <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
459
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
460
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
461
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
462
+ </tr>
463
+ <tr>
464
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
465
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
466
+ <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
467
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
468
+ </tr>
469
+ <tr>
470
+ <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
471
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
472
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
473
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</td>
474
+ </tr>
475
+ <tr>
476
+ <td style="text-align: center;border: #E9E9E9 solid 1px">单 元:</td>
477
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_unit }}</td>
478
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
479
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
480
+ </tr>
481
+ <tr>
482
+ <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
483
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
484
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
485
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
486
+ </tr>
487
+ <tr>
488
+ <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
489
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
490
+ <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
491
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
492
+ </tr>
493
+ <tr>
494
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
495
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
496
+ </tr>
497
+ </tbody>
498
+ </table>
499
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
500
+ v-show="paperdata.f_entry_status=='入户'">
501
+ <thead>
502
+ <tr>
503
+ <th colspan="4" style="text-align: center">用户安检概况</th>
504
+ </tr>
505
+ </thead>
506
+ <tbody>
507
+ <tr>
508
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
509
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
510
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
511
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
512
+ paperdata.f_offsite_time
513
+ }}
514
+ </td>
515
+ </tr>
516
+ <tr>
517
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
518
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
519
+ paperdata.f_entry_status
520
+ }}
521
+ </td>
522
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
523
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
524
+ </tr>
525
+ <tr>
526
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
527
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
528
+ paperdata.f_client_evaluation
529
+ }}
530
+ </td>
531
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
532
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
533
+ :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
534
+ </td>
535
+ </tr>
536
+ <tr>
537
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
538
+ <td colspan="3"
539
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
540
+ {{ paperdata.f_repair_approved_note }}
541
+ </td>
542
+ </tr>
543
+ <tr>
544
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
545
+ <td colspan="3"
546
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
547
+ <span v-for="deviceCollect in deviceCollects">
548
+ <span class="li-font">
549
+ {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
550
+ </span>
551
+ <br>
552
+ <span v-if="deviceCollect.value == '有隐患'">
553
+ <lable>
554
+ 隐患:
555
+ </lable>
556
+ <span v-for="val in deviceCollect.devices">
557
+ {{ val }}
558
+ </span><br>
559
+ </span>
560
+
561
+ </span>
562
+ </td>
563
+ </tr>
564
+
565
+ </tbody>
566
+ </table>
567
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
568
+ v-show="paperdata.f_entry_status!='入户'">
569
+ <thead>
570
+ <tr>
571
+ <th colspan="4" style="text-align: center">用户安检概况</th>
572
+ </tr>
573
+ </thead>
574
+ <tbody>
575
+ <tr>
576
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
577
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
578
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
579
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
580
+ paperdata.f_offsite_time
581
+ }}
582
+ </td>
583
+ </tr>
584
+ <tr>
585
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
586
+ <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
587
+ {{ paperdata.f_entry_status }}
588
+ </td>
589
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
590
+ <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
591
+ {{ dev.lname }}
592
+ 查看{{ data.f_entry_status }}照片
593
+ </button-link>
594
+ </td>
595
+ </tr>
596
+
597
+ </tbody>
598
+ </table>
599
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
600
+ v-show="item.f_no_checkplan == '复检'">
601
+ <thead>
602
+ <tr>
603
+ <th colspan="4" style="text-align: center">上次安检情况</th>
604
+ </tr>
605
+ </thead>
606
+ <tbody>
607
+ <tr>
608
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
609
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
610
+ lastCheckData.f_onsite_time
611
+ }}
612
+ </td>
613
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
614
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
615
+ lastCheckData.f_offsite_time
616
+ }}
617
+ </td>
618
+ </tr>
619
+ <tr>
620
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
621
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
622
+ {{ lastCheckData.f_checker_name }}
623
+ </td>
624
+ </tr>
625
+ <tr>
626
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
627
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
628
+ {{ lastCheckData.f_defect_text }}
629
+ </td>
630
+ </tr>
631
+
632
+ </tbody>
633
+ </table>
634
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
635
+ v-show="paperdata.f_entry_status=='入户'">
636
+ <thead>
637
+ <tr>
638
+ <th style="text-align: center">总体安检照片</th>
639
+ </tr>
640
+ </thead>
641
+ <tbody>
642
+ <tr>
643
+ <td style="margin: auto;text-align: center">
644
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
645
+ <div class="img" v-for="img in paperdata.f_overall_imgs">
646
+ <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
647
+ width="150"
648
+ height="200"></img-self-plus>
649
+ </div>
650
+ </div>
651
+
652
+
653
+ </td>
654
+
655
+ </tr>
656
+ </tbody>
657
+ </table>
658
+ <table class="table table-striped table-bordered" style="width: 100%"
659
+ v-show="paperdata.f_entry_status=='入户'">
660
+ <thead>
661
+ <tr>
662
+ <th style="text-align: center">用户签名照片</th>
663
+ </tr>
664
+ </thead>
665
+ <tbody>
666
+ <tr>
667
+ <td style="margin: auto;text-align: center">
668
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
669
+ <div class="img" style="float: none">
670
+ <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
671
+ </div>
672
+ </div>
673
+ </td>
674
+ <td style="margin: auto;text-align: center">
675
+ <div class="container" style="max-width: 550px;background: #FFFFFF" v-if="f_user_path">
676
+ <div class="img" style="float: none">
677
+ <img-self-plus :src="'rs/image/file/'+f_user_path"
678
+ width="200"
679
+ height="200"></img-self-plus>
680
+ </div>
681
+ </div>
682
+ </td>
683
+ </tr>
684
+ </tbody>
685
+ </table>
686
+ <table class="table table-striped table-bordered"
687
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
688
+ <thead>
689
+ <tr>
690
+ <th style="text-align: center">安检通知书/隐患整改通知书</th>
691
+ </tr>
692
+ </thead>
693
+ <tbody>
694
+ <tr>
695
+ <td style="margin: auto;text-align: center">
696
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
697
+ <div class="img" style="float: none">
698
+ <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
699
+ </div>
700
+ </div>
701
+ </td>
702
+ </tr>
703
+ </tbody>
704
+ </table>
705
+ <table class="table table-striped table-bordered"
706
+ v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
707
+ <thead>
708
+ <tr>
709
+ <th style="text-align: center">安检视频</th>
710
+ </tr>
711
+ </thead>
712
+ <tbody>
713
+ <tr>
714
+ <td style="margin: auto;text-align: center">
715
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
716
+ <video width="320" height="200" controls v-if="paperdata.f_video_path">
717
+ <source :src="paperdata.f_video_path" type="video/mp4">
718
+ </video>
719
+ </div>
720
+ </td>
721
+ </tr>
722
+ </tbody>
723
+ </table>
724
+ <table class="table table-striped table-bordered"
725
+ v-show="item.f_recording1_path">
726
+ <thead>
727
+ <tr>
728
+ <th style="text-align: center">录音文件</th>
729
+ </tr>
730
+ </thead>
731
+ <tbody>
732
+ <tr>
733
+ <td style="margin: auto;text-align: center">
734
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
735
+ <a class="button_spacing button_search-1"
736
+ :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
737
+ :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
738
+ </div>
739
+ </td>
740
+ </tr>
741
+ </tbody>
742
+ </table>
743
+ </div>
744
+ </div>
745
+ <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
746
+ <div style="width: 95%;margin-left: 5%">
747
+ <table class="table table-striped table-bordered" v-for="config in deviceconfig2"
748
+ style="margin-top: 35px">
749
+ <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
750
+ <tr>
751
+ <th style="text-align: center">{{ config.checkname }}</th>
752
+ </tr>
753
+ </thead>
754
+ <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
755
+ <tr v-for="dev in config.items">
756
+ <td v-if="dev.type!='text' && dev.isshow != false">
757
+ <div class="row">
758
+ <div class="col-md-8" style="text-align: center;">
759
+ <label>
760
+ <button-link type="button" class="btn btn-link"
761
+ @click="showpicture(config.checkname,dev.lname)"
762
+ :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
763
+ {{ dev.lname }}
764
+ </button-link>
765
+ </label>
766
+ </div>
767
+ <div class="col-md-4" style="text-align: center">
768
+ <label style="font-weight: normal"
769
+ v-if="dev.type!='picture'">{{
770
+ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
771
+ }}</label>
772
+ <label style="font-weight: normal" v-if="dev.type=='picture'">
773
+ <div v-show="getDevicePath(config.checkname,dev.lname)">
774
+ <button-link style="color: black" type="button" class="btn btn-link"
775
+ @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
776
+ </button-link>
777
+ </div>
778
+ <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
779
+ </label>
780
+ </div>
781
+ </div>
782
+ </td>
783
+ <td v-if="dev.type==='text' && dev.isshow != false">
784
+ <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
785
+ </td>
786
+ </tr>
787
+ </tbody>
788
+ </table>
789
+ </div>
790
+ </div>
791
+
792
+ </div>
793
+ </div>
794
+ </div>
795
+ </div>
796
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
797
+ <header slot="modal-header" class="modal-header">
798
+ {{ picturename }}
799
+ </header>
800
+ <article slot="modal-body" class="modal-body">
801
+ <div class="from-group">
802
+ <div class="row">
803
+ <div class="col-md-6">
804
+ <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
805
+ </div>
806
+ <div class="col-md-6">
807
+ <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
808
+ </div>
809
+ <div class="col-md-6" v-for="item in otherDarginShowImgs">
810
+ <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
811
+ </div>
812
+ </div>
813
+ </div>
814
+ </article>
815
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
816
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
817
+ </footer>
818
+ </modal>
819
+ <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
820
+ <header slot="modal-header" class="modal-header">
821
+ {{ paperdata.f_entry_status }}照片
822
+ </header>
823
+ <article slot="modal-body" class="modal-body">
824
+ <div class="from-group">
825
+ <div class="row">
826
+ <div class="col-md-6">
827
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer_path" :src="showimg3"
828
+ width="282"
829
+ height="400"></img-self-plus>
830
+ </div>
831
+ <div class="col-md-6">
832
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer1_path"
833
+ :src="showimg5" width="282"
834
+ height="400"></img-self-plus>
835
+ </div>
836
+ <div class="col-md-6">
837
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer2_path"
838
+ :src="showimg6" width="282"
839
+ height="400"></img-self-plus>
840
+ </div>
841
+ <div class="col-md-6">
842
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck_path"
843
+ :src="showimg4" width="282"
844
+ height="400"></img-self-plus>
845
+ </div>
846
+ <div class="col-md-6">
847
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck1_path"
848
+ :src="showimg7" width="282"
849
+ height="400"></img-self-plus>
850
+ </div>
851
+ <div class="col-md-6">
852
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck2_path"
853
+ :src="showimg8" width="282"
854
+ height="400"></img-self-plus>
855
+ </div>
856
+ </div>
857
+ </div>
858
+ </article>
859
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
860
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
861
+ </footer>
862
+ </modal>
863
+ <modal :show.sync="showModel" :width="'50%'" :backdrop="false">
864
+ <div slot="modal-header" class="modal-header">
865
+ <h4 class="modal-title">
866
+ 安检审核备注
867
+ </h4>
868
+ </div>
869
+ <div slot="modal-body" class="modal-body">
870
+ <div class="row">
871
+ <div class="form-group col-sm-4">
872
+ <label class="font_normal_body">审核备注:</label>
873
+ <textarea v-model="message"></textarea>
874
+ </div>
875
+ </div>
876
+ </div>
877
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
878
+ <button class="button_search" style="margin-right: 15px" @click="auditFailOK()">确定</button>
879
+ <button class="button_search" style="margin-right: 15px" @click="auditFailCancel()">取消</button>
880
+ </div>
881
+ </modal>
882
+ </template>
883
+
884
+ <script>
885
+ import html2pdf from 'html2pdf.js'
886
+ import ObjConfig from '../../../utils/GerJsonObjectConfig'
887
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
888
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
889
+ import Vue from 'vue'
890
+ import * as Util from '../../Util'
891
+ import {jsonSort} from '../../../utils/LdapHelper'
892
+ import {HttpResetClass} from "vue-client";
893
+ import {forEach} from "mocha/lib/utils";
894
+
895
+ let asyncReady = async function (self) {
896
+ // 获取配置信息
897
+ try {
898
+ let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
899
+ data: {
900
+ items: 'f_dir',
901
+ tablename: 't_organization',
902
+ condition: `id = '${self.item.f_filialeid}'`,
903
+ orderitem: 'id'
904
+ }
905
+ })/*.then(res=>{*/
906
+ //tag
907
+ //tag)
908
+ console.log(res)
909
+ if (!res.data[0].f_dir) {
910
+ self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
911
+ } else {
912
+ //this.f_dir=res.data[0].f_dir
913
+ let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
914
+ try {
915
+ let res1 = await new HttpResetClass().load('GET', `${url}/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
916
+ resolveMsg: '获取居民配置项成功!',
917
+ rejectMsg: '获取居民配置项出错!'
918
+ })/*.then(res=>{*/
919
+ //tag
920
+ //this.safeConfig["民用配置项"]=Object.assign({},res.data)
921
+ if (!Vue.config.safecheck) {
922
+ Vue.config = {safecheck: {}}
923
+ }
924
+ Vue.config.safecheck.DevicesConfig = res1.data
925
+ /*})*/
926
+ let res2 = await new HttpResetClass().load('GET', `${url}/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
927
+ resolveMsg: '获取非居民配置项成功!',
928
+ rejectMsg: '获取非居民配置项出错!'
929
+ })/*.then(res=>{*/
930
+ //tag
931
+ //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
932
+ Vue.config.safecheck.DevicesSetConfig = res2.data
933
+ /*}).then(res=> {
934
+ })*/
935
+
936
+ } catch (e) {
937
+ self.$showMessage("获取配置文件失败" + e)
938
+ self.loading = false
939
+ }
940
+ }
941
+ if (self.data.f_recheck_id) {
942
+ let res3 = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
943
+ data: {
944
+ items: '*',
945
+ tablename: 't_check_paper',
946
+ condition: `id = '${self.data.f_recheck_id}'`,
947
+ orderitem: 'id'
948
+ }
949
+ })
950
+ self.lastCheckData = res3.data[0]
951
+ }
952
+ } catch (error) {
953
+ // 忽略704,文件找不到异常R
954
+ if (error.status !== 704) {
955
+ throw error
956
+ }
957
+ this.loading = false
958
+ }
959
+ }
960
+ export default {
961
+ title: '安检单',
962
+ props: ['f_plan_id', 'item', 'role'],
963
+ data() {
964
+ return {
965
+ f_user_path:'',
966
+ message: '',
967
+ showButton: false,
968
+ showModel: false,
969
+ data: {
970
+ f_devices: [],
971
+ f_defect_content: ''
972
+ },
973
+ showPdfDownload: this.$appdata.getSingleValue('安检结果pdf下载') ? this.$appdata.getSingleValue('安检结果pdf下载') : false,
974
+ lastCheckData: {},
975
+ paperdata: {},
976
+ picturename: '隐患照片',
977
+ defectDevice: {},
978
+ hasDevice: false,
979
+ deviceCollect: {},
980
+ deviceCollects: [],
981
+ isshow: false,
982
+ ajresult: '',
983
+ loading: true,
984
+ imgshow: false,
985
+ imgshow2: false,
986
+ isUpload: false,
987
+ livedispose: '',
988
+ showimg1: '',
989
+ showimg2: '',
990
+ showimg3: '',
991
+ showimg4: '',
992
+ showimg5: '',
993
+ showimg6: '',
994
+ showimg7: '',
995
+ showimg8: '',
996
+ hiddenDangerImgNumber: 0, //配置项中隐患照片数
997
+ otherDarginShowImgs: [],//其他隐患图片
998
+ startClick: false, //开始安检按钮是否可点击
999
+ isStrat: false, //是否开始安检
1000
+ checkResult: {},//查询结果
1001
+ newcheckResult: {},
1002
+ timer: null,
1003
+ showModal: false,
1004
+ pic_to_be_viewed: '',
1005
+ showBack: true,
1006
+ devices: [],
1007
+ devicesAll: [],
1008
+ configAJ: [],
1009
+ configRQ: [],
1010
+ deviceconfig: {},
1011
+ newConfig: '',
1012
+ deviceconfig2: [],
1013
+ f_devices: [],
1014
+ config: {
1015
+ "燃气表": {
1016
+ "checkmust": true,
1017
+ "index": 1,
1018
+ "items": {
1019
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
1020
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
1021
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
1022
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
1023
+ "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1024
+ "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1025
+ "累购气量": {"index": 7, "type": "number", "readonly": true},
1026
+ "已用气量": {"index": 8, "type": "number", "checkmust": false},//基表数
1027
+ "剩余气量": {"index": 9, "type": "number", "checkmust": false},//累购-已用
1028
+ //显示屏数 --实际剩余气量
1029
+ "气量异常差值": {"index": 10, "type": "number", "readonly": true},
1030
+ "表箱号": {"index": 11, "type": "string", "readonly": true},
1031
+ "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1032
+ }
1033
+ // 注意,配置项的index必须与上面的固定配置保持'顺序'
1034
+ }
1035
+ },
1036
+ //金额
1037
+ config2: {
1038
+ "燃气表": {
1039
+ "checkmust": true,
1040
+ "index": 1,
1041
+ "items": {
1042
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
1043
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
1044
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
1045
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
1046
+ "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1047
+ "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1048
+ "累购金额": {"index": 7, "type": "number", "readonly": true},
1049
+ "已用金额": {"index": 8, "type": "number", "checkmust": false},
1050
+ //显示屏数 --实际剩余气量
1051
+ "剩余金额": {"index": 9, "type": "number", "checkmust": false},
1052
+ "金额异常差值": {"index": 10, "type": "number", "readonly": true},
1053
+ "表箱号": {"index": 11, "type": "string", "readonly": true},
1054
+ "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1055
+ }
1056
+ }
1057
+ },
1058
+ }
1059
+ },
1060
+ components: {
1061
+ RadioGroup,
1062
+ Radio,
1063
+ },
1064
+ computed: {
1065
+ isRecodrDownloadBtn() {
1066
+ // 投诉单下派还是处理
1067
+ let res = this.$appdata.getSingleValue('无限制录音');
1068
+ if (res == 'true') {
1069
+ return true;
1070
+ } else {
1071
+ return false;
1072
+ }
1073
+ },
1074
+ selector: {
1075
+ get() {
1076
+ return 'paper-state'
1077
+ },
1078
+ set(val) {
1079
+ if (this.isStrat) {
1080
+ this.$goto(val, {userinfo: this.data}, 'paper-router')
1081
+ } else {
1082
+ this.$showMessage('未开始安检!')
1083
+ }
1084
+ }
1085
+ },
1086
+ actionEnabled: {
1087
+ get() {
1088
+ return this.role == 'inspect'
1089
+ }
1090
+ }
1091
+ },
1092
+ methods: {
1093
+ exportToPDF() {
1094
+ const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
1095
+ html2pdf(element)
1096
+ },
1097
+
1098
+ showAudit() {
1099
+ var audit = this.$appdata.getSingleValue('安检审核');
1100
+ if (audit == '是' && (this.item.f_approved == '未审核' || !this.item.f_approved)) {
1101
+ this.showButton = true
1102
+ }
1103
+ },
1104
+ //安检审核成功
1105
+ auditSuccesss() {
1106
+ this.loading = true;
1107
+ var reqdata = {
1108
+ audit_result: '通过',
1109
+ operator: "success",
1110
+ audit_time: Util.getNowDate(),
1111
+ user_name: this.$login.f.name,
1112
+ id: this.item.id,
1113
+ f_check_item_id: this.item.f_check_item_id
1114
+ }
1115
+ new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1116
+ resolveMsg: '安检审核成功!',
1117
+ rejectMsg: '安检审核出错!'
1118
+ }).then((res) => {
1119
+ if (res.data.code == 200) {
1120
+ this.loading = false;
1121
+ this.$back()
1122
+ }
1123
+ })
1124
+ },
1125
+ auditFail() {
1126
+ this.showModel = true;
1127
+ },
1128
+ auditFailOK() {
1129
+
1130
+ this.loading = true;
1131
+ var reqdata = {
1132
+ message: this.message,
1133
+ audit_result: '不通过',
1134
+ operator: "fail",
1135
+ audit_time: Util.getNowDate(),
1136
+ user_name: this.$login.f.name,
1137
+ id: this.item.id,
1138
+ f_check_item_id: this.item.f_check_item_id
1139
+ }
1140
+ new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1141
+ resolveMsg: '安检审核成功!',
1142
+ rejectMsg: '安检审核出错!'
1143
+ }).then((res) => {
1144
+ if (res.data.code == 200) {
1145
+ this.loading = false;
1146
+ this.message = '';
1147
+ this.showModel = false;
1148
+ this.$back()
1149
+ }
1150
+ })
1151
+ },
1152
+ auditFailCancel() {
1153
+ this.showModel = false;
1154
+ this.message = '';
1155
+ },
1156
+
1157
+ devicesCollect() {
1158
+ //tag
1159
+ //tag)
1160
+ //tag)
1161
+ //tag
1162
+ this.deviceCollects = []
1163
+ let checkResult = '正常'
1164
+ this.result = '正常'
1165
+ let codata = JSON.parse(JSON.stringify(this.data))
1166
+ //tag)
1167
+ for (let device in this.data) {
1168
+ let f_device_type
1169
+ if (device.startsWith("device")) {
1170
+ for (let item in this.data[device]) {
1171
+ if (this.data[device].length > 1) {
1172
+ let j = Number.parseInt(item) + 1
1173
+ f_device_type = `${this.data[device][item].f_device_type}${j}`
1174
+ } else {
1175
+ f_device_type = this.data[device][item].f_device_type
1176
+ }
1177
+ // //tag
1178
+ let deviceelse = []
1179
+ let deviceInfos = []
1180
+ for (let i in this.data[device][item].f_items) {
1181
+ let defects = ''
1182
+
1183
+ let items = this.data[device][item].f_items[i]
1184
+
1185
+
1186
+ if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox' || items.type === 'picture') && items.f_item_value != null && items.f_item_value instanceof Array) {
1187
+ for (let i in items.f_item_value) {
1188
+ let f_item_value = items.f_item_value[i]
1189
+
1190
+ //tag)
1191
+ //tag)
1192
+ //tag)
1193
+ //tag)
1194
+
1195
+ if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name] && (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
1196
+ continue
1197
+ }
1198
+ /*if(items.f_is_defect != true && items.f_is_defect != 'true'){
1199
+ continue
1200
+ }*/
1201
+ if (items.f_is_defect == 'true' || items.f_is_defect == true) {
1202
+ checkResult = '有隐患'
1203
+ this.result = '有隐患'
1204
+ defects = `${defects}:${items.f_item_value}/`
1205
+ }
1206
+ /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
1207
+ for (let option in options) {
1208
+ if (options[option].data == f_item_value) {
1209
+ if (options[option].isdefect == 'true' || options[option].isdefect == true) {
1210
+ checkResult = '有隐患'
1211
+ this.result = '有隐患'
1212
+ defects = `${defects}:${options[option].data}/`
1213
+ // let level = options[option].level
1214
+ }
1215
+ }
1216
+ }*/
1217
+ //tag)
1218
+ }
1219
+ if (defects != '') {
1220
+ console.log('有隐患items', items)
1221
+ deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}${items.f_else ? items.f_else : ''}`)
1222
+ }
1223
+ } else if ((items.type === 'string' || items.type === 'number') && items.f_is_defect && items.f_item_value[0]) {
1224
+ checkResult = '有隐患'
1225
+ this.result = '有隐患'
1226
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1227
+
1228
+ } else if (items.f_item_name == '金额异常差值') {
1229
+ var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
1230
+ //tag
1231
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1232
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1233
+ checkResult = '有隐患'
1234
+ this.result = '有隐患'
1235
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1236
+ }
1237
+ }
1238
+ } else if (items.f_item_name == '气量异常差值') {
1239
+ var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
1240
+ //tag
1241
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1242
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1243
+ checkResult = '有隐患'
1244
+ this.result = '有隐患'
1245
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1246
+ }
1247
+ }
1248
+ }
1249
+ if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]) {
1250
+ // console.log('this.config[this.data[device][item].f_device_type]', this.config[this.data[device][item].f_device_type])
1251
+ // console.log('this.deviceconfig2', this.deviceconfig2)
1252
+ for (let dev in this.deviceconfig2) {
1253
+ if (this.deviceconfig2[dev].checkname == this.data[device][item].f_device_type) {
1254
+ this.deviceconfig2[dev].items.push({
1255
+ lname: items.f_item_name
1256
+ })
1257
+ }
1258
+ }
1259
+ }
1260
+ //tag)
1261
+ //tag
1262
+ //tag
1263
+ if (items.type === 'selector') {
1264
+ items.selected = []
1265
+ } else if (items.type === 'inputSelector') {
1266
+ items.selected = ''
1267
+ }
1268
+ }
1269
+
1270
+
1271
+ //tag
1272
+ this.$set('deviceCollect.name', f_device_type)
1273
+ this.$set('deviceCollect.value', checkResult)
1274
+ this.$set('deviceCollect.devices', deviceInfos)
1275
+ this.$set('deviceCollect.else', deviceelse)
1276
+ console.log('deviceCollect.devices', this.deviceCollect.devices)
1277
+ console.log('deviceCollect.else', this.deviceCollect.else)
1278
+ //tag)
1279
+ if (this.deviceCollect.name) {
1280
+ //tag
1281
+ this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
1282
+ }
1283
+
1284
+ checkResult = '正常'
1285
+ this.deviceCollect = {}
1286
+ }
1287
+ }
1288
+ }
1289
+ if (this.deviceCollects.length > 0) {
1290
+ this.hasDevice = true
1291
+ }
1292
+ this.deviceconfig2 = this.deviceconfig2.filter(row => {
1293
+ return !(row.checkname == '$configProp' || row.checkname == '$globalProp');
1294
+ })
1295
+ this.ajresult = JSON.parse(this.data.f_defect_content).result
1296
+ this.showimg3 = this.data.f_noanswer_path
1297
+ this.showimg5 = this.data.f_noanswer1_path
1298
+ this.showimg6 = this.data.f_noanswer2_path
1299
+ this.showimg4 = this.data.f_rejectcheck_path
1300
+ this.showimg7 = this.data.f_rejectcheck1_path
1301
+ this.showimg8 = this.data.f_rejectcheck2_path
1302
+ this.paperdata = this.data
1303
+ this.f_user_path = this.paperdata.f_user_pictures ? JSON.parse(this.paperdata.f_user_pictures)[0].f_user_path : ''
1304
+ this.loading = false
1305
+ },
1306
+ imgclose() {
1307
+ this.imgshow = false
1308
+ },
1309
+ putDevices() {
1310
+ ////tag
1311
+ this.$set('data.approve', "true")
1312
+ this.$set('data.writeback', "false")
1313
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1314
+ if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1315
+ this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1316
+ }
1317
+ if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1318
+ this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1319
+ }
1320
+ if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1321
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1322
+ }
1323
+ if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1324
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1325
+ this.hiddenDangerImgNumber = 3
1326
+ } else {
1327
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1328
+ }
1329
+ }
1330
+ }
1331
+ //tag
1332
+ //tag)
1333
+ if (!this.item.f_safecheck_type && Vue.config.safecheck.SafecheckType) {
1334
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
1335
+ } else if (Vue.config.safecheck.SafecheckType){
1336
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
1337
+ }else {
1338
+ if(this.item.f_check_type == '民用'){
1339
+ this.config = this.extend(this.config, Vue.config.safecheck.DevicesConfig)
1340
+ }else {
1341
+ this.config = this.extend(this.config, Vue.config.safecheck.DevicesSetConfig)
1342
+ }
1343
+ }
1344
+ //遍历安检项配置
1345
+ for (let i in this.config) {
1346
+ //取得安检项索引值
1347
+ let n = this.config[i].index
1348
+ this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
1349
+ this.$set('data.' + 'device' + n, [])
1350
+ let items = []
1351
+ for (let it in this.config[i].items) {
1352
+ //赋值下拉选项
1353
+ if (this.config[i].items[it].type == 'selector') {
1354
+ for (let op in this.config[i].items[it].options)
1355
+ if (this.config[i].items[it].options[op].isdefault == true) {
1356
+ items.push({
1357
+ f_defect_level: this.config[i].items[it].options[op].level,
1358
+ f_is_defect: this.config[i].items[it].options[op].isdefect,
1359
+ f_item_name: it,
1360
+ f_item_value: this.config[i].items[it].options[op].data,
1361
+ f_path: "",
1362
+ type: "selector"
1363
+ })
1364
+ }
1365
+ }
1366
+ }
1367
+ n = n + 1
1368
+ }
1369
+
1370
+ },
1371
+ showpath(val1, val2) {
1372
+ //tag
1373
+ //tag
1374
+ if (val1) {
1375
+ this.showimg1 = val1
1376
+ this.picturename = val2
1377
+ this.imgshow = true
1378
+ }
1379
+ },
1380
+ showpicture(val1, val2) {
1381
+ //tag
1382
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1383
+ return
1384
+ }
1385
+ for (let i = 0; i < this.devicesAll.length; i++) {
1386
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1387
+ if (this.devicesAll[i][j].f_device_type == val1) {
1388
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1389
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1390
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1391
+ return false
1392
+ } else {
1393
+ this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
1394
+ this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
1395
+ this.otherDarginShowImgs = []
1396
+ for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
1397
+ let img = {path: ''}
1398
+ if (this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path']) {
1399
+ img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path'] + '?' + Math.random()
1400
+ this.otherDarginShowImgs.push(img)
1401
+ }
1402
+ }
1403
+ this.picturename = '隐患照片'
1404
+ this.imgshow = true
1405
+ return true
1406
+ }
1407
+ }
1408
+ }
1409
+
1410
+ }
1411
+ }
1412
+ }
1413
+ },
1414
+ isred(val1, val2) {
1415
+ //tag
1416
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1417
+ return
1418
+ }
1419
+ for (let i = 0; i < this.devicesAll.length; i++) {
1420
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1421
+ if (this.devicesAll[i][j].f_device_type == val1) {
1422
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1423
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1424
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1425
+ return false
1426
+ } else {
1427
+ return true
1428
+ }
1429
+ }
1430
+ }
1431
+
1432
+ }
1433
+ }
1434
+ }
1435
+ },
1436
+ showpicture2() {
1437
+ this.imgshow2 = true
1438
+ },
1439
+ getDeviceValue(val1, val2) {
1440
+ let aa = ''
1441
+ for (let i = 0; i < this.devicesAll.length; i++) {
1442
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1443
+ if (this.devicesAll[i][j].f_device_type == val1) {
1444
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1445
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1446
+ if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
1447
+ for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
1448
+ let val = this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value
1449
+ aa += (val === null ? '空' : val) + ' '
1450
+ }
1451
+ return aa
1452
+ }
1453
+ }
1454
+ }
1455
+
1456
+ }
1457
+ }
1458
+ }
1459
+
1460
+ },
1461
+ getDevicePath(val1, val2) {
1462
+ for (let i = 0; i < this.devicesAll.length; i++) {
1463
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1464
+ if (this.devicesAll[i][j].f_device_type == val1) {
1465
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1466
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1467
+ return this.devicesAll[i][j].f_items[k].f_path
1468
+ }
1469
+ }
1470
+
1471
+ }
1472
+ }
1473
+ }
1474
+
1475
+ },
1476
+ getDeviceAll() {
1477
+ let keyall = Object.keys(this.data)
1478
+ for (let i = 0; i < keyall.length; i++) {
1479
+ //tag)
1480
+ if ((keyall[i].startsWith('f_devices') || keyall[i].startsWith('devices')) && keyall[i] != 'deviceundefined') {
1481
+ this.devicesAll.push(this.data[keyall[i]])
1482
+ //tag
1483
+ }
1484
+ }
1485
+ //tag
1486
+ //tag)
1487
+ this.devicesCollect()
1488
+
1489
+ },
1490
+
1491
+ back() {
1492
+ if (this.role == 'inspect') {
1493
+ if (!this.isStrat) {
1494
+ this.$back()
1495
+ return
1496
+ } else {
1497
+ this.savePaper(true).then(() => {
1498
+ this.$back()
1499
+ this.isStrat = false
1500
+ })
1501
+ }
1502
+ } else {
1503
+ this.$back()
1504
+ }
1505
+ },
1506
+ checkIsStart() {
1507
+ alert('asdad')
1508
+ return
1509
+ },
1510
+
1511
+ viewPic(fileName) {
1512
+ //tag
1513
+ if (this.role == 'view') {
1514
+ if (!fileName.endsWith('nopic.png')) {
1515
+ this.pic_to_be_viewed = fileName
1516
+ this.showModal = true
1517
+ }
1518
+ } else {
1519
+ HostApp.viewPic(fileName)
1520
+ }
1521
+ },
1522
+ tick() {
1523
+ this.timer = null
1524
+ this.data.f_offsite_time = Util.toStandardTimeString()
1525
+ this.timer = window.setTimeout(this.tick, 1000)
1526
+ },
1527
+ getRepairState() {
1528
+ let repaired = true
1529
+ this.data.f_defects.forEach((defect) => {
1530
+ repaired = repaired & (defect.f_ratification == '已处理')
1531
+ })
1532
+ return repaired
1533
+ },
1534
+ verifyRepairDefects() {
1535
+ this.data.f_repair_date = Util.toStandardTimeString()
1536
+ this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
1537
+ },
1538
+ genuineSave(saveOnly) {
1539
+ HostApp.__this__.save(saveOnly)
1540
+ if (!saveOnly)
1541
+ HostApp.__this__.disableTimer()
1542
+ HostApp.__callback__ = null
1543
+ HostApp.__this__ = null
1544
+ },
1545
+ setUrgency() {
1546
+ this.data.f_defect_urgency = 'Z'
1547
+ let that = this
1548
+ this.data.f_defects.forEach(function (defect) {
1549
+ if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
1550
+ that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
1551
+ })
1552
+ if (this.data.f_defect_urgency == 'Z')
1553
+ this.data.f_defect_urgency = null
1554
+ },
1555
+ disableTimer() {
1556
+ if (this.timer) {
1557
+ window.clearTimeout(this.timer)
1558
+ this.timer = null
1559
+ }
1560
+ },
1561
+ loaded(paper) {
1562
+ if (!paper.hasOwnProperty('id')) {
1563
+ this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1564
+ this.init()
1565
+ } else {
1566
+ Util.booleanFilter(paper)
1567
+ HostApp.__this__.$set('data', paper)
1568
+ HostApp.__this__.$goto('paper-state', {}, 'paper-router')
1569
+ // 如果打回重检则重新计时
1570
+ //tag
1571
+ if (HostApp.__this__.role == 'inspect'
1572
+ && HostApp.__this__.data.f_approved
1573
+ && HostApp.__this__.data.f_approved == '打回') {
1574
+ //tag
1575
+ HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1576
+ HostApp.__this__.tick()
1577
+ }
1578
+ }
1579
+ HostApp.__callback__ = null
1580
+ HostApp.__this__ = null
1581
+ },
1582
+ S4() {
1583
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
1584
+ },
1585
+ init() {
1586
+ this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1587
+ this.data.ename = Vue.user.ename
1588
+ this.data.f_outlets = Vue.user.f_parentname
1589
+ this.data.f_meetunit = Vue.user.orgpathnames
1590
+ this.data.orgpathstr = Vue.user.orgpathstr
1591
+ this.data.f_check_item_id = this.item.id
1592
+ this.data.f_check_plan_id = this.f_plan_id
1593
+ this.data.f_checker_id = Vue.user.id
1594
+ this.data.f_checker_name = Vue.user.name
1595
+ this.data.f_check_type = this.item.f_user_type
1596
+ this.data.f_subcompany = this.item.f_subcompany
1597
+ this.data.f_approved = this.item.f_approved
1598
+ this.data.f_repair_approved = this.item.f_repair_approved
1599
+ this.data.f_no_checkplan = this.item.f_no_checkplan
1600
+ this.data.f_approved = this.item.f_approved
1601
+ this.data.f_filialeid = this.item.f_filialeid
1602
+ this.data.f_orgstr = this.item.f_orgstr
1603
+ this.data.version = this.item.version
1604
+ this.$set('data.f_meters', this.item.f_plan_meters)
1605
+ this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1606
+ // 安检状态
1607
+ this.$set('data.f_entry_status', '入户')
1608
+ this.$set('data.f_usegas', '已使用')
1609
+ this.$set('data.f_state', this.item.f_state)
1610
+ // 用户信息
1611
+ this.$set('data.f_user_name', this.item.f_user_name)
1612
+ this.$set('data.f_user_phone', this.item.f_user_phone)
1613
+ this.$set('data.f_userinfoid', this.item.f_userinfoid)
1614
+ this.$set('data.f_address', this.item.f_address)
1615
+ this.$set('data.f_card_id', this.item.f_card_id)
1616
+ this.$set('data.f_area', this.item.f_area)
1617
+ this.$set('data.f_street', this.item.f_street)
1618
+ this.$set('data.f_room', this.item.f_room)
1619
+ this.$set('data.f_building', this.item.f_building)
1620
+ this.$set('data.f_unit', this.item.f_unit)
1621
+ this.$set('data.f_floor', this.item.f_floor)
1622
+ this.$set('data.f_residential_area', this.item.f_residential_area)
1623
+ this.$set('data.f_idnumber', this.item.f_idnumber)
1624
+ this.$set('data.f_comments', this.item.f_comments)
1625
+ this.$set('data.f_userproperties', this.item.f_userproperties)
1626
+ // 处置方式
1627
+ this.$set('data.f_no_gas_device', false)
1628
+ this.$set('data.f_close_valve', false)
1629
+ this.$set('data.f_unload_battery', false)
1630
+ if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1631
+ this.data.f_check_item_id = this.data.f_noplan_item_id
1632
+ }
1633
+
1634
+ //房屋结构
1635
+ // this.$set('data.f_room_style', '多层')
1636
+ //供暖方式
1637
+ // this.$set('data.f_heating_style', '热力公司集中供暖')
1638
+ if (this.item.f_plan_meters) {
1639
+ for (let de in this.devices) {
1640
+ this.$set('data.device' + this.devices[de].n, [])
1641
+ for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1642
+ if (this.item.f_plan_meters[i].f_meter_type) {
1643
+ if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1644
+ delete this.config['燃气表']['items']['累计购气量']
1645
+ this.data['device' + this.devices[de].n].push({
1646
+ f_device_type: "燃气表",
1647
+ f_items: [{
1648
+ f_defect_level: null,
1649
+ f_device_id: "",
1650
+ f_is_defect: "",
1651
+ f_item_name: "表品牌",
1652
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1653
+ f_path: "",
1654
+ type: "string"
1655
+ },
1656
+ {
1657
+ f_defect_level: null,
1658
+ f_device_id: "",
1659
+ f_is_defect: "",
1660
+ f_item_name: "位置",
1661
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1662
+ f_path: "",
1663
+ type: "selector"
1664
+ },
1665
+ {
1666
+ f_defect_level: null,
1667
+ f_device_id: "",
1668
+ f_is_defect: "",
1669
+ f_item_name: "表号",
1670
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1671
+ f_path: "",
1672
+ type: "number"
1673
+ },
1674
+ {
1675
+ f_defect_level: null,
1676
+ f_device_id: "",
1677
+ f_is_defect: "",
1678
+ f_item_name: "表封号",
1679
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1680
+ f_path: "",
1681
+ type: "number"
1682
+ },
1683
+ {
1684
+ f_defect_level: null,
1685
+ f_device_id: "",
1686
+ f_is_defect: "",
1687
+ f_item_name: "表型号",
1688
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1689
+ f_path: "",
1690
+ type: "selector"
1691
+ },
1692
+ {
1693
+ f_defect_level: null,
1694
+ f_device_id: "",
1695
+ f_is_defect: "",
1696
+ f_item_name: "表底数",
1697
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1698
+ f_path: "",
1699
+ type: "number"
1700
+ }
1701
+ ]
1702
+ })
1703
+ } else if (this.devices[de].device == "燃气表") {
1704
+ delete this.config['燃气表']['items']['表底数']
1705
+ this.data['device' + this.devices[de].n].push({
1706
+ f_device_type: "燃气表",
1707
+ f_items: [{
1708
+ f_defect_level: null,
1709
+ f_device_id: "",
1710
+ f_is_defect: "",
1711
+ f_item_name: "表品牌",
1712
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1713
+ f_path: "",
1714
+ type: "string"
1715
+ },
1716
+ {
1717
+ f_defect_level: null,
1718
+ f_device_id: "",
1719
+ f_is_defect: "",
1720
+ f_item_name: "位置",
1721
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1722
+ f_path: "",
1723
+ type: "selector"
1724
+ },
1725
+ {
1726
+ f_defect_level: null,
1727
+ f_device_id: "",
1728
+ f_is_defect: "",
1729
+ f_item_name: "表号",
1730
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1731
+ f_path: "",
1732
+ type: "number"
1733
+ },
1734
+ {
1735
+ f_defect_level: null,
1736
+ f_device_id: "",
1737
+ f_is_defect: "",
1738
+ f_item_name: "表封号",
1739
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1740
+ f_path: "",
1741
+ type: "number"
1742
+ },
1743
+ {
1744
+ f_defect_level: null,
1745
+ f_device_id: "",
1746
+ f_is_defect: "",
1747
+ f_item_name: "表型号",
1748
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1749
+ f_path: "",
1750
+ type: "selector"
1751
+ },
1752
+ {
1753
+ f_defect_level: null,
1754
+ f_device_id: "",
1755
+ f_is_defect: "",
1756
+ f_item_name: "累计购气量",
1757
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1758
+ f_path: "",
1759
+ type: "number"
1760
+ }
1761
+ ]
1762
+ })
1763
+ }
1764
+ }
1765
+ }
1766
+ }
1767
+ }
1768
+
1769
+ this.$goto('paper-state', {}, 'paper-router')
1770
+ },
1771
+ extend(initalObj, finalObj) {
1772
+ var obj = finalObj || {};
1773
+ for (var i in initalObj) {
1774
+ var prop = initalObj[i];
1775
+
1776
+ // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1777
+ if (prop === obj) {
1778
+ continue;
1779
+ }
1780
+
1781
+ if (typeof prop === 'object') {
1782
+ if (obj[i]) {
1783
+ this.extend(obj[i], prop)
1784
+ } else {
1785
+ obj[i] = prop;
1786
+ }
1787
+ }
1788
+ }
1789
+ return obj;
1790
+ },
1791
+ //获取当前时间
1792
+ getNowFormatDate() {
1793
+ var date = new Date();
1794
+ var seperator1 = "-";
1795
+ var seperator2 = ":";
1796
+ var month = date.getMonth() + 1;
1797
+ var strDate = date.getDate();
1798
+ if (month >= 1 && month <= 9) {
1799
+ month = "0" + month;
1800
+ }
1801
+ if (strDate >= 0 && strDate <= 9) {
1802
+ strDate = "0" + strDate;
1803
+ }
1804
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1805
+ + " " + date.getHours() + seperator2 + date.getMinutes()
1806
+ + seperator2 + date.getSeconds();
1807
+ return currentdate;
1808
+ }
1809
+ },
1810
+ ready() {
1811
+ setTimeout(() => {
1812
+ this.loading = false;
1813
+ }, 10000)
1814
+ this.putDevices()
1815
+ this.showAudit()
1816
+ this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '否';
1817
+ if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') {
1818
+ if (this.role != 'inspect') {
1819
+ let that = this
1820
+ let id
1821
+ if (this.role == 'view') {
1822
+ id = this.item.id
1823
+ } else if (this.role == 'androidview') {
1824
+ id = this.item.f_paper_id
1825
+ }
1826
+ this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1827
+ //tag
1828
+ if (respanse.data.length != 0) {
1829
+ // 包含 其它 特殊处理的数组
1830
+ // 对应位置
1831
+ that.data = Object.assign(that.data, respanse.data[0])
1832
+ if (respanse.data[0].f_devices) {
1833
+ for (let da in that.devices) {
1834
+ that.$set('data.device' + that.devices[da].n, [])
1835
+ }
1836
+ respanse.data[0].f_devices.forEach((item) => {
1837
+ for (let de in that.devices) {
1838
+ if (that.devices[de].device == item.f_device_type) {
1839
+ item.f_items.forEach((f_item) => {
1840
+ //tag
1841
+ //tag
1842
+ let itemValues = []
1843
+ f_item.f_item_lists.forEach((tempItem) => {
1844
+ //tag
1845
+ if (tempItem.f_item_value !== 'null') {
1846
+ itemValues.push(tempItem.f_item_value)
1847
+ }
1848
+ })
1849
+ f_item.f_item_value = itemValues
1850
+ })
1851
+ that.data['device' + that.devices[de].n].push({
1852
+ f_device_type: item.f_device_type,
1853
+ f_items: item.f_items
1854
+ })
1855
+ }
1856
+ }
1857
+ })
1858
+ }
1859
+ Util.replaceFalse(that.data)
1860
+ Util.booleanFilter(that.data)
1861
+ if (this.role == 'view') {
1862
+ Util.ratifyPics(that.data)
1863
+ Util.ratifyPics(that.picture)
1864
+ } else {
1865
+ Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1866
+ }
1867
+ //tag
1868
+ }
1869
+ // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1870
+ this.isshow = true
1871
+ // asyncReady(this).then(() => {
1872
+ //tag
1873
+ //tag)
1874
+ console.log('Vue.config.safecheck.DevicesConfig', Vue.config.safecheck.DevicesConfig)
1875
+ // 如果没有用户类型 默认按民用配置走
1876
+ if (this.data.f_check_type == '非民用') {
1877
+ this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1878
+ if (typeof this.deviceconfig === 'string') {
1879
+ this.deviceconfig = JSON.parse(this.deviceconfig)
1880
+ }
1881
+ }else{
1882
+ this.deviceconfig = Vue.config.safecheck.DevicesConfig
1883
+ if (typeof this.deviceconfig === 'string') {
1884
+ this.deviceconfig = JSON.parse(this.deviceconfig)
1885
+ }
1886
+ }
1887
+ if (this.data.f_collection_type == '按金额') {
1888
+ if (this.deviceconfig["燃气表"]){
1889
+ let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1890
+ this.deviceconfig["燃气表"].items = aaa
1891
+ }
1892
+ } else {
1893
+ if (this.deviceconfig["燃气表"]){
1894
+ let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1895
+ this.deviceconfig["燃气表"].items = aaa
1896
+ }
1897
+ }
1898
+ this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1899
+ this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1900
+ this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1901
+ this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1902
+ this.getDeviceAll()
1903
+ // })
1904
+ }
1905
+ ).catch(
1906
+ (respanse) => {
1907
+ //tag
1908
+ alert('查找安检单失败')
1909
+ this.loading = false
1910
+ })
1911
+ }
1912
+ }
1913
+
1914
+ },
1915
+ watch: {
1916
+ // 'isUpload'(val){
1917
+ // //tag
1918
+ // }
1919
+ },
1920
+ destroyed() {
1921
+ //tag
1922
+ this.disableTimer()
1923
+ }
1924
+ }
1925
+
1926
+ </script>
1927
+ <style scoped>
1928
+ .table-striped thead tr th {
1929
+ background-color: rgb(223, 237, 251);
1930
+ padding: 10px;
1931
+ border-left: solid 0px #dae4f2;
1932
+ border-top: solid 1px #dae4f2;
1933
+ border-right: none;
1934
+ border-bottom: none;
1935
+ text-align: center;
1936
+ color: black;
1937
+ }
1938
+ </style>