safecheck-client 3.0.34-9 → 3.0.34-90

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) 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/AddPlanItemYy.vue +451 -0
  8. package/src/components/android/AndroidDefectDeal.vue +634 -634
  9. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  10. package/src/components/android/AreaSelect.vue +198 -0
  11. package/src/components/android/BuildingSelect.vue +192 -0
  12. package/src/components/android/CheckPlanSelect.vue +229 -0
  13. package/src/components/android/CurrentCreateYy.vue +1051 -0
  14. package/src/components/android/PaperFeedback.vue +33 -0
  15. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  16. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  17. package/src/components/android/SafecheckDevices.vue +2 -2
  18. package/src/components/android/SafecheckOrderV.vue +8 -12
  19. package/src/components/android/UserinfoSelect.vue +714 -0
  20. package/src/components/android/examples/410.png +0 -0
  21. package/src/components/android/examples/SafeListExamples.vue +279 -0
  22. package/src/components/android/examples/UserExamples.vue +137 -0
  23. package/src/components/android/examples/ViewDetailsExamples.vue +1235 -0
  24. package/src/components/android/examples/touxiang.png +0 -0
  25. package/src/components/pc/SafeVisitInfo.vue +261 -0
  26. package/src/components/rongcheng/AddPlanItem.vue +8 -0
  27. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  28. package/src/components/rongcheng/CheckSearchUser.vue +46 -16
  29. package/src/components/rongcheng/PaperStatem.vue +6 -1
  30. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  31. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  32. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  33. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  34. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  35. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  36. package/src/filiale/baiyin/android.js +1 -0
  37. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  38. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  39. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  40. package/src/filiale/bayan/android/AddPlanItem.vue +8 -0
  41. package/src/filiale/bayan/android/PaperFeedback.vue +63 -49
  42. package/src/filiale/bayan/android/PhoneUpUserinfo.vue +40 -40
  43. package/src/filiale/bayan/android/SafecheckOrderV.vue +58 -58
  44. package/src/filiale/bayan/android/SafecheckUserInfo.vue +5 -0
  45. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  46. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  47. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  48. package/src/filiale/huaran/android.js +12 -0
  49. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  50. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  51. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  52. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  53. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  54. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  55. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  56. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  57. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  59. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  60. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  61. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  62. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  63. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  64. package/src/filiale/huaran/pc.js +27 -0
  65. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  66. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  67. package/src/filiale/jiaxian/android/SafecheckDevices.vue +6 -6
  68. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  69. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  70. package/src/filiale/jiaxian/android.js +4 -0
  71. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  72. package/src/filiale/jingyang/android/CurrentCreate.vue +1080 -1080
  73. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  74. package/src/filiale/jingyang/android.js +15 -15
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/qianneng/android/SafecheckOrderV.vue +1 -1
  77. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  78. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  79. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  80. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  81. package/src/filiale/qingtongxia/android.js +14 -10
  82. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  83. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  84. package/src/filiale/ruihua/android.js +11 -0
  85. package/src/filiale/shanxian/android/SafecheckOrderV.vue +1 -1
  86. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  87. package/src/filiale/siyang/android/AddPlanItem.vue +450 -0
  88. package/src/filiale/siyang/android/AppCheckPlan.vue +246 -0
  89. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -0
  90. package/src/filiale/siyang/android.js +15 -11
  91. package/src/filiale/siyang/pc/CheckBookList.vue +396 -0
  92. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +667 -0
  93. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  94. package/src/filiale/siyang/pc/CheckSearchUser.vue +1035 -0
  95. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  96. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  97. package/src/filiale/siyang/pc/checkUserList.vue +22 -18
  98. package/src/filiale/siyang/pc.js +22 -16
  99. package/src/filiale/tongchuan/android/Select.vue +421 -0
  100. package/src/filiale/tongchuan/android.js +1 -0
  101. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  102. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  103. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  104. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  105. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  106. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  107. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  108. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  109. package/src/filiale/weinan/android/SafecheckDevices.vue +1 -1
  110. package/src/filiale/weinan/android/SafecheckOrderV.vue +6 -2
  111. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  112. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  113. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  114. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  115. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  116. package/src/filiale/weinan/pc.js +1 -0
  117. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  118. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  119. package/src/filiale/xilan/pc/checkUserList.vue +772 -0
  120. package/src/filiale/xilan/pc.js +12 -0
  121. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +10 -6
  122. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +21 -1
  123. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +23 -11
  124. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +6 -6
  125. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  126. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  127. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +84 -10
  129. package/src/filiale/yangchunboneng/pc/PaperList.vue +6 -6
  130. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  131. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  132. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  133. package/src/main.js +34 -33
  134. package/src/safecheck-android.js +11 -0
  135. package/src/safecheck-page.js +12 -0
  136. package/src/safecheck.js +3 -0
@@ -1,634 +1,634 @@
1
- <style scoped>
2
- .bg {
3
- background-color: blue;
4
- height: 1px;
5
- border: 0;
6
- }
7
-
8
- .app-row {
9
- background-color: white;
10
- padding: 10px 10px 0 10px;
11
- border-bottom: 1px solid rgba(235, 235, 235, 0.5);
12
- }
13
-
14
- .search_input {
15
- border: 0;
16
- outline: none;
17
- }
18
-
19
- .font {
20
- font: 15px PingFang-SC-Medium;
21
- color: #666666;
22
- }
23
-
24
- .input-font {
25
- font: 15px PingFang-SC-Medium;
26
- color: #333333;
27
- }
28
-
29
- .btn-font {
30
- font: 600 16px PingFang-SC-Bold;
31
- color: #499EDF;
32
- }
33
-
34
- .btn-color {
35
- background-color: #FFFFFF;
36
- border-radius: 10px;
37
- border: 1px solid #499EDF;
38
- }
39
-
40
- .app-text {
41
- font-size: 12px;
42
- }
43
-
44
- .panel-self {
45
- border-radius: 10px;
46
- border: 1px solid #499EDF;
47
- background-color: #F8F8F8;
48
- }
49
-
50
- .yybtn-color {
51
- background-color: #499edf;
52
- border-radius: 4px;
53
- border: 1px solid #499EDF;
54
- color: #FFFFFF;
55
- font: 14px PingFang-SC-Bold;
56
- }
57
-
58
- .qxbtn-color {
59
- background-color: #FFFFFF;
60
- border-radius: 4px;
61
- color: #499edf;
62
- font: 14px PingFang-SC-Bold;
63
- border: 1px solid #499EDF;
64
- }
65
-
66
- .button_shrink_top {
67
- width: 35px;
68
- height: 35px;
69
- background-size: 100%;
70
- background-image: url("../../../static/newStyle/stretch_top.png")
71
- }
72
-
73
- .button_shrink_bottom {
74
- width: 35px;
75
- height: 35px;
76
- background-size: 100%;
77
- background-image: url("../../../static/newStyle/stretch_bottom.png")
78
- }
79
-
80
- .button_shrink_left {
81
- width: 35px;
82
- height: 35px;
83
- background-size: 100%;
84
- background-image: url("../../../static/newStyle/stretch_left.png")
85
- }
86
-
87
- .button_shrink_right {
88
- width: 35px;
89
- height: 35px;
90
- background-size: 100%;
91
- background-image: url("../../../static/newStyle/stretch_right.png")
92
- }
93
- </style>
94
- <template>
95
- <div style="height: auto;width: 100%">
96
- <criteria-paged :model="model" v-ref:paged>
97
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
98
- <div partial>
99
- <form>
100
- <div class="row app-row">
101
- <div class="col-xs-4">
102
- <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
103
- <label class="font text-left">用户姓名:</label>
104
- </div>
105
- <div class="col-xs-8">
106
- <input class="search_input input-font" v-model=model.f_user_name
107
- condition="tcp.f_user_name like '%{}%'"/>
108
- </div>
109
- </div>
110
- <div class="row app-row">
111
- <div class="col-xs-4">
112
- <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
113
- <label for="f_userinfo_code" class="font text-left">用户编号:</label>
114
- </div>
115
- <div class="col-xs-8">
116
- <input id="f_userinfo_code" class="search_input input-font"
117
- v-model=model.f_userinfo_code condition="tcp.f_userinfo_code like '%{}%'"/>
118
- </div>
119
- </div>
120
- <div class="row app-row">
121
- <div class="col-xs-4">
122
- <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
123
- <label for="f_userinfo_code" class="font text-left">安检人员:</label>
124
- </div>
125
- <div class="col-xs-8">
126
- <input id="f_userinfo_code" class="search_input input-font"
127
- v-model=model.f_checker_name condition="tcp.f_checker_name like '%{}%'"/>
128
- </div>
129
- </div>
130
- <div class="row app-row">
131
- <div class="col-xs-4">
132
- <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
133
- <label class="font text-left">用户地址:</label>
134
- </div>
135
- <div class="col-xs-8">
136
- <input class="search_input input-font"
137
- v-model=model.f_address condition="tcp.f_address like '%{}%'"/>
138
- </div>
139
- </div>
140
- <div class="row app-row">
141
- <div class="col-xs-4">
142
- <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
143
- <label for="f_state" class="font text-left">起始时间:</label>
144
- </div>
145
- <datepicker id="f_start_date"
146
- placeholder='起始时间'
147
- :value.sync="model.f_start_date"
148
- :disabled-days-of-Week="[]"
149
- v-model="model.f_start_date"
150
- class="input-font col-xs-8"
151
- :format="'yyyy-MM-dd 00:00:00'"
152
- :show-reset-button="reset" readonly="readonly">
153
- </datepicker>
154
- </div>
155
- <div class="row app-row">
156
- <div class="col-xs-4">
157
- <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
158
- <label for="f_state" class="font text-left">结束时间:</label>
159
- </div>
160
- <datepicker id="f_end_date"
161
- placeholder='结束时间'
162
- :value.sync="model.f_end_date"
163
- :disabled-days-of-Week="[]"
164
- v-model="model.f_end_date"
165
- class="input-font col-xs-8"
166
- :format="'yyyy-MM-dd 23:59:00'"
167
- :show-reset-button="reset" readonly="readonly">
168
- </datepicker>
169
- </div>
170
- <div class="row app-row">
171
- <div class="col-xs-4">
172
- <img src="../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
173
- <label for="f_user_type" class="font text-left">用户类型:</label>
174
- </div>
175
- <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
176
- :width="'60%'"
177
- :options='$parent.$parent.user_types' placeholder='请选择用户类型'
178
- v-model="model.f_user_type" condition="f_user_type = '{}'" close-on-select
179
- clear-button></v-select>
180
- </div>
181
- <div class="row text-center" style="margin-top: 20px;">
182
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
183
- @click="$parent.$parent.selfSearch">查询
184
- </button>
185
- <div style="float: right;margin-right: 3% " class="button_spacing"
186
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
187
- @click="$parent.$parent.hidden()"></div>
188
- </div>
189
- <div style="height:30px;"></div>
190
- </form>
191
- </div>
192
- </criteria>
193
- <list :model="model" partial='list'>
194
- <div partial>
195
- <div class="auto app-text" style="margin-top: 5px;">
196
- <div class="panel" style="padding: 10px 10px 5px 10px;">
197
- <div class="panel-body panel-self">
198
- <div class="col-xs-12">
199
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
200
- <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
201
- </div>
202
- <div class="col-xs-12">
203
- <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
204
- <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
205
- </div>
206
- <div class="col-xs-12">
207
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
208
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone }}</p>
209
- </div>
210
- <div class="col-xs-12">
211
- <p class="panel-title text-left font" style="width: 23%;float: left"><b>安检时间:</b></p>
212
- <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_create_time }}</p>
213
- </div>
214
- <div class="col-xs-12">
215
- <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
216
- <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
217
- </div>
218
- <div class="col-xs-12">
219
- <p class="panel-title text-left font" style="width: 21%;float: left"><b>所属安检:</b></p>
220
- <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_checker_name }}</p>
221
- </div>
222
- <div class="col-xs-6">
223
- <p class="panel-title col-xs-5 text-left font"><b>检&ensp;查&ensp;项:</b></p>
224
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_device_type }}</p>
225
- </div>
226
- <div class="col-xs-6">
227
- <p class="panel-title col-xs-5 text-left font"><b>隐&ensp;患&ensp;项:</b></p>
228
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_item_name }}</p>
229
- </div>
230
- <div class="col-xs-12">
231
- <p class="panel-title col-xs-5 text-left font"><b>备注:</b></p>
232
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_comments }}</p>
233
- </div>
234
- <div class="col-xs-12">
235
- <p class="panel-title col-xs-5 text-left font"><b>隐患原因:</b></p>
236
- <p class="panel-title col-xs-7 text-left input-font">{{ row.f_item_value }}</p>
237
- </div>
238
-
239
- <div class="col-xs-12">
240
- <button type="button" name="button" class="btn btn-primary"
241
- style="background-color:#499edf;float: right"
242
- @click="$parent.$parent.$parent.openshowModal(row)">查看
243
- </button>
244
- <button type="button" name="button" class="btn btn-primary"
245
- style="background-color:#499edf;float: right;margin-right:10px;"
246
- @click="$parent.$parent.$parent.openshowModal1(row)">处理
247
- </button>
248
- <!--<button type="button" class="btn btn-default" @click="$parent.$parent.$parent.ceshi">确认2</button>-->
249
- </div>
250
- </div>
251
- </div>
252
- </div>
253
- </div>
254
- </list>
255
- </criteria-paged>
256
- </div>
257
- <modal :show.sync="showModal">
258
- <div slot="modal-header" class="modal-header">
259
- <h4 class="modal-title">
260
- 隐患照片
261
- </h4>
262
- </div>
263
- <div slot="modal-body" class="modal-body">
264
- <div class="from-group">
265
- <div class="row">
266
- <div class="col-md-6">
267
- <img-self v-if="row.f_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_path" width="300" height="400"></img-self>
268
- <img-self v-if="row.f_p1_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_p1_path" width="300" height="400"></img-self>
269
- <img-self v-if="row.f_p2_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_p2_path" width="300" height="400"></img-self>
270
- </div>
271
- </div>
272
- </div>
273
- </div>
274
- <div slot="modal-footer" class="modal-footer">
275
- <button type="button" class="btn btn-default" @click="closeshowModal">确认</button>
276
- </div>
277
- </modal>
278
- <modal :show.sync="showModal1">
279
- <div slot="modal-header" class="modal-header">
280
- <h4 class="modal-title">
281
- 处理结果
282
- </h4>
283
- </div>
284
- <div slot="modal-body" class="modal-body">
285
- <div class="row" style="margin-bottom: 10px">
286
- <p class="panel-title col-xs-3 text-left font"><b>隐&ensp;患&ensp;项:</b></p>
287
- <p class="panel-title col-xs-9 text-left input-font">{{ deal.result.f_item_name }}</p>
288
- </div>
289
- <div class="row" style="margin-bottom: 10px">
290
- <p class="panel-title col-xs-3 text-left font"><b>隐患原因:</b></p>
291
- <p class="panel-title col-xs-9 text-left input-font">{{ deal.result.f_item_value }}</p>
292
- </div>
293
- <div class="form-group col-sm-12">
294
- <div class="auto">
295
- <div class="panel" style="padding: 10px 10px 5px 10px;">
296
- <div class="panel-body panel-self"
297
- style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
298
- <img-self :src="deal.f_deal_path" alt="整改照片" :width="140" :height="170" capture="camera"
299
- type="file"></img-self>
300
- <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
301
- <img src="../../assets/remove.png" @click="delfile('f_deal_path', deal.f_deal_path)"></img>
302
- <button type="button" name="button" class="btn btn-primary btn-photo"
303
- @click="takePic('f_deal_path','整改照片')">拍照
304
- </button>
305
- </div>
306
- </div>
307
- <div class="panel-body panel-self"
308
- style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
309
- <img-self :src="deal.f_other_dealpath1" alt="整改照片" :width="140" :height="170" capture="camera"
310
- type="file"></img-self>
311
- <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
312
- <img src="../../assets/remove.png" @click="delfile('f_other_dealpath1', deal.f_other_dealpath1)"></img>
313
- <button type="button" name="button" class="btn btn-primary btn-photo"
314
- @click="takePic('f_other_dealpath1','整改照片')">拍照
315
- </button>
316
- </div>
317
- </div>
318
- <div class="panel-body panel-self"
319
- style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
320
- <img-self :src="deal.f_other_dealpath2" alt="整改照片" :width="140" :height="170" capture="camera"
321
- type="file"></img-self>
322
- <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
323
- <img src="../../assets/remove.png" @click="delfile('f_other_dealpath2', deal.f_other_dealpath2)"></img>
324
- <button type="button" name="button" class="btn btn-primary btn-photo"
325
- @click="takePic('f_other_dealpath2','整改照片')">拍照
326
- </button>
327
- </div>
328
- </div>
329
- </div>
330
- </div>
331
- </div>
332
- <div class="form-group col-sm-12" v-if="isNeedDealSign">
333
- <p class="panel-title text-left font" style="text-align: center">用户签名:</p>
334
- <div class="auto">
335
- <div class="panel" style="padding: 10px 10px 5px 10px;">
336
- <div class="panel-body panel-self"
337
- style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
338
- <img :src="deal.f_dealsign_path" :width="200" :height="150"/>
339
- <div class="row text-right div-photo" style="height: 50px;margin-top: 60px">
340
- <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
341
- </div>
342
- </div>
343
- </div>
344
- </div>
345
- </div>
346
- <div class="row">
347
- <div class="col-xs-2">
348
- <p class="panel-title text-left font" style="text-align: center">处理结果</p>
349
- </div>
350
- <div class="col-xs-9">
351
- <textarea class="input-font " v-model=deal.f_deal_remark style="width: 100%"></textarea>
352
- </div>
353
- </div>
354
- <div v-if="isCancelLimitGas" style="display: flex;align-items: end;height: 30px;gap: 10px;padding-left: 16px;">
355
- <input type="checkbox" v-model="deletebacklistisselect"/>
356
- <div style="height: 18px">取消限制该用户购气</div>
357
- </div>
358
- </div>
359
- <div slot="modal-footer" class="modal-footer">
360
- <button type="button" class="btn btn-default" @click="commitDealDefect">确认</button>
361
- <button type="button" class="btn btn-default" @click="closeshowModal1">取消</button>
362
- </div>
363
- </modal>
364
- </template>
365
-
366
- <script>
367
- import Vue from 'vue'
368
- import {HttpResetClass, PagedList} from 'vue-client'
369
- import * as Util from '../Util'
370
-
371
- export default {
372
- title: '无计划安检查询',
373
- data() {
374
- return {
375
- row:{},
376
- showModal: false,
377
- showModal1: false,
378
- showimg: '',
379
- deal: {
380
- result: {},
381
- f_deal_path: '',
382
- f_other_dealpath1: '',
383
- f_other_dealpath2: '',
384
- f_deal_remark: '',
385
- f_dealsign_path: '', //签名
386
- f_dealer: Vue.user.name,
387
- f_dealer_id: Vue.user.id
388
- },
389
- user_types: [
390
- {label: '请选择用户类型', value: ''},
391
- {label: '民用', value: '民用'},
392
- {label: '非民用', value: '非民用'},
393
- ],
394
- f_filialeids: '',
395
- model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/AndroidDealWith`, 20, {
396
- condition: 'this.condition',
397
- f_filialeids: `'${Vue.user.orgid}'`,
398
- f_checker_id: `'${Vue.user.id}'`
399
- }),
400
- criteriaShow: false,
401
- isNeedDealSign: this.$appdata.getSingleValue('隐患处理是否需要签名') == 'true',
402
- isCancelLimitGas: this.$appdata.getSingleValue('隐患处理-取消限制购气') == '是',
403
- deletebacklistisselect: false
404
- }
405
- },
406
- ready() {
407
- this.selfSearch()
408
- },
409
- methods: {
410
- async deletebacklist() {
411
- ////tag)
412
- let http = new HttpResetClass()
413
- ////tag
414
- let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
415
- data: {
416
- items: "*",
417
- tablename: "t_userinfo",
418
- condition: `f_userinfo_code = ${this.deal.result.f_userinfo_code}`,
419
- orderitem: "f_userinfo_code"
420
- }
421
- }, {resolveMsg: null, rejectMsg: null})
422
- ////tag)
423
- ////tag
424
- let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
425
- data: {
426
- "f_operat_type": "取消拉黑",
427
- "f_state": "有效",
428
- "f_user_name": this.deal.result.f_user_name,
429
- "f_comments": '',
430
- "f_operator": Vue.user.name,
431
- "f_operatorid": Vue.user.id,
432
- "f_orgid": Vue.user.orgid,
433
- "f_orgname": Vue.user.orgs,
434
- "f_depid": Vue.user.depids,
435
- "f_depname": Vue.user.deps,
436
- "f_describe": `${Vue.user.name}对用户${this.deal.result.f_user_name}进行取消拉黑`,
437
- "f_userinfo_id": {
438
- "f_userinfo_id": res1.data[0].f_userinfo_id,
439
- "f_user_state": "正常",
440
- "version": res1.data[0].version
441
- },
442
- "f_limit_times":"",
443
- "f_limit_value":""
444
- }
445
- }, {resolveMsg: null, rejectMsg: null})
446
- },
447
- // 签名回调
448
- signCallback(prop, fileName) {
449
- console.log("签名回调地址" + fileName)
450
- // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
451
- HostApp.__this__.$set('deal.f_dealsign_path', fileName)
452
- HostApp.__callback__ = null
453
- HostApp.__this__ = null
454
- },
455
- // 用户签名
456
- sign() {
457
- if (!this.deal.f_deal_path) {
458
- this.$showMessage('请先拍摄处理后照片!!!')
459
- return
460
- }
461
- this.delAudioFile('f_dealsign_path', this.deal.f_dealsign_path)
462
- let prop = 'f_dealsign_path'
463
- let idx = 'aofeng'
464
- let fileName
465
- if (!this.deal.f_dealsign_path) {
466
- fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
467
- } else {
468
- fileName = Util.getFileName(this.deal.f_dealsign_path)
469
- }
470
- HostApp.__callback__ = this.signCallback
471
- HostApp.__this__ = this
472
- HostApp.getSignature({
473
- file: fileName,
474
- requestCode: 111,
475
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
476
- })
477
- },
478
- delAudioFile(prop, fileName) {
479
- if (!fileName)
480
- return
481
- else {
482
- HostApp.delfile(fileName)
483
- this.deal[prop] = null
484
- }
485
- },
486
- commitDealDefect() {
487
- //tag
488
- //tag)
489
- // if (!this.deal.f_deal_path) {
490
- // this.$showMessage('处理后照片必须上传')
491
- // return
492
- // }
493
- if (this.isNeedDealSign && !this.deal.f_dealsign_path) {
494
- this.$showMessage('签名必须上传')
495
- return
496
- }
497
- if (this.deletebacklistisselect){
498
- this.deletebacklist()
499
- }
500
- this.deal.f_other_dealpath = this.deal.f_deal_path
501
- HostApp.__this__ = this
502
- HostApp.logicWithHint({
503
- 'logic': 'safe_dealWithDefect', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
504
- 'data': this.deal, 'backresult': 1
505
- })
506
- },
507
- commitCallBack(jo) {
508
- //tag
509
- //tag)
510
- if (jo.state == 'ok') {
511
- let ress = JSON.parse(jo.result)
512
- if (ress.code == 200) {
513
- this.$showMessage(ress.msg)
514
- this.closeshowModal1()
515
- } else {
516
- this.$showMessage(ress.msg)
517
- }
518
- } else {
519
- this.$showMessage('本地服务调用失败')
520
- }
521
- },
522
- delfile(prop, fileName) {
523
- if (fileName == Vue.nopic)
524
- return
525
- else {
526
- HostApp.delfile(fileName)
527
- this.deal[prop] = Vue.nopic
528
- }
529
- },
530
- openshowModal(val) {
531
- this.row = val
532
- this.showModal = true
533
- },
534
- closeshowModal() {
535
- this.showimg = ''
536
- this.showModal = false
537
- },
538
- openshowModal1(val) {
539
- this.deal.result = val
540
- //tag
541
- //tag
542
- this.deletebacklistisselect = false
543
- this.showModal1 = true
544
- },
545
- closeshowModal1() {
546
- this.deal = {
547
- result: {},
548
- f_deal_path: '',
549
- f_other_dealpath1: '',
550
- f_other_dealpath2: '',
551
- f_deal_remark: '',
552
- f_dealsign_path: '', //签名
553
- f_dealer: Vue.user.name,
554
- f_dealer_id: Vue.user.id
555
- }
556
- this.showModal1 = false
557
- this.selfSearch()
558
- },
559
- cameraCallBack(prop, fileName) {
560
- HostApp.__this__.$set( 'deal.'+prop+'', fileName)
561
- HostApp.__callback__ = null
562
- HostApp.__this__ = null
563
- },
564
- takePic(prop, title) {
565
- HostApp.__callback__ = this.cameraCallBack
566
- HostApp.__this__ = this
567
- let fileName
568
- if (!this.deal[prop] || this.deal[prop].includes("nopic.png")) {
569
- fileName = Util.guid() + '-' + prop + '.jpg'
570
- } else {
571
- fileName = Util.getFileName(this.deal[prop])
572
- }
573
- //tag
574
- //tag
575
- HostApp._open_a_page({
576
- type: 'boomerang',
577
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
578
- param: {
579
- file: fileName,
580
- requestCode: 111,
581
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
582
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
583
- }
584
- })
585
- },
586
- selfSearch() {
587
-
588
- let condition = "1=1 "
589
- if (this.$refs.paged.$refs.cri.model.f_user_name) {
590
- if (this.$refs.paged.$refs.cri.model.f_user_name.toString().trim()) {
591
- condition += " and tcp.f_user_name like '" + this.$refs.paged.$refs.cri.model.f_user_name + "%'"
592
- }
593
- }
594
- if (this.$refs.paged.$refs.cri.model.f_userinfo_code) {
595
- if (this.$refs.paged.$refs.cri.model.f_userinfo_code.toString().trim()) {
596
- condition += " and tcp.f_userinfo_code = '" + this.$refs.paged.$refs.cri.model.f_userinfo_code + "'"
597
- }
598
- }
599
- if (this.$refs.paged.$refs.cri.model.f_checker_name) {
600
- if (this.$refs.paged.$refs.cri.model.f_checker_name.toString().trim()) {
601
- condition += " and tcp.f_checker_name = '" + this.$refs.paged.$refs.cri.model.f_checker_name + "'"
602
- }
603
- }
604
- if (this.$refs.paged.$refs.cri.model.f_address) {
605
- if (this.$refs.paged.$refs.cri.model.f_address.toString().trim()) {
606
- condition += " and tcp.f_address like '%" + this.$refs.paged.$refs.cri.model.f_address + "%'"
607
- }
608
- }
609
- if (this.$refs.paged.$refs.cri.model.f_start_date) {
610
- if (this.$refs.paged.$refs.cri.model.f_start_date.toString().trim()) {
611
- condition += " and tdl.f_create_time > '" + this.$refs.paged.$refs.cri.model.f_start_date + "'"
612
- }
613
- }
614
- if (this.$refs.paged.$refs.cri.model.f_end_date) {
615
- if (this.$refs.paged.$refs.cri.model.f_end_date.toString().trim()) {
616
- condition += " and tdl.f_create_time < '" + this.$refs.paged.$refs.cri.model.f_end_date + "'"
617
- }
618
- }
619
- if (this.$refs.paged.$refs.cri.model.f_user_type) {
620
- if (this.$refs.paged.$refs.cri.model.f_user_type.toString().trim()) {
621
- condition += " and f_user_type = '" + this.$refs.paged.$refs.cri.model.f_user_type + "'"
622
- }
623
- }
624
-
625
- //tag
626
- this.model.search(condition)
627
- },
628
-
629
- hidden() {
630
- this.criteriaShow = !this.criteriaShow
631
- }
632
- }
633
- }
634
- </script>
1
+ <style scoped>
2
+ .bg {
3
+ background-color: blue;
4
+ height: 1px;
5
+ border: 0;
6
+ }
7
+
8
+ .app-row {
9
+ background-color: white;
10
+ padding: 10px 10px 0 10px;
11
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
12
+ }
13
+
14
+ .search_input {
15
+ border: 0;
16
+ outline: none;
17
+ }
18
+
19
+ .font {
20
+ font: 15px PingFang-SC-Medium;
21
+ color: #666666;
22
+ }
23
+
24
+ .input-font {
25
+ font: 15px PingFang-SC-Medium;
26
+ color: #333333;
27
+ }
28
+
29
+ .btn-font {
30
+ font: 600 16px PingFang-SC-Bold;
31
+ color: #499EDF;
32
+ }
33
+
34
+ .btn-color {
35
+ background-color: #FFFFFF;
36
+ border-radius: 10px;
37
+ border: 1px solid #499EDF;
38
+ }
39
+
40
+ .app-text {
41
+ font-size: 12px;
42
+ }
43
+
44
+ .panel-self {
45
+ border-radius: 10px;
46
+ border: 1px solid #499EDF;
47
+ background-color: #F8F8F8;
48
+ }
49
+
50
+ .yybtn-color {
51
+ background-color: #499edf;
52
+ border-radius: 4px;
53
+ border: 1px solid #499EDF;
54
+ color: #FFFFFF;
55
+ font: 14px PingFang-SC-Bold;
56
+ }
57
+
58
+ .qxbtn-color {
59
+ background-color: #FFFFFF;
60
+ border-radius: 4px;
61
+ color: #499edf;
62
+ font: 14px PingFang-SC-Bold;
63
+ border: 1px solid #499EDF;
64
+ }
65
+
66
+ .button_shrink_top {
67
+ width: 35px;
68
+ height: 35px;
69
+ background-size: 100%;
70
+ background-image: url("../../../static/newStyle/stretch_top.png")
71
+ }
72
+
73
+ .button_shrink_bottom {
74
+ width: 35px;
75
+ height: 35px;
76
+ background-size: 100%;
77
+ background-image: url("../../../static/newStyle/stretch_bottom.png")
78
+ }
79
+
80
+ .button_shrink_left {
81
+ width: 35px;
82
+ height: 35px;
83
+ background-size: 100%;
84
+ background-image: url("../../../static/newStyle/stretch_left.png")
85
+ }
86
+
87
+ .button_shrink_right {
88
+ width: 35px;
89
+ height: 35px;
90
+ background-size: 100%;
91
+ background-image: url("../../../static/newStyle/stretch_right.png")
92
+ }
93
+ </style>
94
+ <template>
95
+ <div style="height: auto;width: 100%">
96
+ <criteria-paged :model="model" v-ref:paged>
97
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
98
+ <div partial>
99
+ <form>
100
+ <div class="row app-row">
101
+ <div class="col-xs-4">
102
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
103
+ <label class="font text-left">用户姓名:</label>
104
+ </div>
105
+ <div class="col-xs-8">
106
+ <input class="search_input input-font" v-model=model.f_user_name
107
+ condition="tcp.f_user_name like '%{}%'"/>
108
+ </div>
109
+ </div>
110
+ <div class="row app-row">
111
+ <div class="col-xs-4">
112
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
113
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
114
+ </div>
115
+ <div class="col-xs-8">
116
+ <input id="f_userinfo_code" class="search_input input-font"
117
+ v-model=model.f_userinfo_code condition="tcp.f_userinfo_code like '%{}%'"/>
118
+ </div>
119
+ </div>
120
+ <div class="row app-row">
121
+ <div class="col-xs-4">
122
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
123
+ <label for="f_userinfo_code" class="font text-left">安检人员:</label>
124
+ </div>
125
+ <div class="col-xs-8">
126
+ <input id="f_userinfo_code" class="search_input input-font"
127
+ v-model=model.f_checker_name condition="tcp.f_checker_name like '%{}%'"/>
128
+ </div>
129
+ </div>
130
+ <div class="row app-row">
131
+ <div class="col-xs-4">
132
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
133
+ <label class="font text-left">用户地址:</label>
134
+ </div>
135
+ <div class="col-xs-8">
136
+ <input class="search_input input-font"
137
+ v-model=model.f_address condition="tcp.f_address like '%{}%'"/>
138
+ </div>
139
+ </div>
140
+ <div class="row app-row">
141
+ <div class="col-xs-4">
142
+ <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
143
+ <label for="f_state" class="font text-left">起始时间:</label>
144
+ </div>
145
+ <datepicker id="f_start_date"
146
+ placeholder='起始时间'
147
+ :value.sync="model.f_start_date"
148
+ :disabled-days-of-Week="[]"
149
+ v-model="model.f_start_date"
150
+ class="input-font col-xs-8"
151
+ :format="'yyyy-MM-dd 00:00:00'"
152
+ :show-reset-button="reset" readonly="readonly">
153
+ </datepicker>
154
+ </div>
155
+ <div class="row app-row">
156
+ <div class="col-xs-4">
157
+ <img src="../../assets/是否已检.png" style="width: 20px;margin-bottom: 5px" alt="">
158
+ <label for="f_state" class="font text-left">结束时间:</label>
159
+ </div>
160
+ <datepicker id="f_end_date"
161
+ placeholder='结束时间'
162
+ :value.sync="model.f_end_date"
163
+ :disabled-days-of-Week="[]"
164
+ v-model="model.f_end_date"
165
+ class="input-font col-xs-8"
166
+ :format="'yyyy-MM-dd 23:59:00'"
167
+ :show-reset-button="reset" readonly="readonly">
168
+ </datepicker>
169
+ </div>
170
+ <div class="row app-row">
171
+ <div class="col-xs-4">
172
+ <img src="../../assets/用户类型.png" style="width: 20px;margin-bottom: 5px" alt="">
173
+ <label for="f_user_type" class="font text-left">用户类型:</label>
174
+ </div>
175
+ <v-select id="f_user_type" :value.sync="model.f_user_type" class="input-font"
176
+ :width="'60%'"
177
+ :options='$parent.$parent.user_types' placeholder='请选择用户类型'
178
+ v-model="model.f_user_type" condition="f_user_type = '{}'" close-on-select
179
+ clear-button></v-select>
180
+ </div>
181
+ <div class="row text-center" style="margin-top: 20px;">
182
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;"
183
+ @click="$parent.$parent.selfSearch">查询
184
+ </button>
185
+ <div style="float: right;margin-right: 3% " class="button_spacing"
186
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
187
+ @click="$parent.$parent.hidden()"></div>
188
+ </div>
189
+ <div style="height:30px;"></div>
190
+ </form>
191
+ </div>
192
+ </criteria>
193
+ <list :model="model" partial='list'>
194
+ <div partial>
195
+ <div class="auto app-text" style="margin-top: 5px;">
196
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
197
+ <div class="panel-body panel-self">
198
+ <div class="col-xs-12">
199
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
200
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
201
+ </div>
202
+ <div class="col-xs-12">
203
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
204
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
205
+ </div>
206
+ <div class="col-xs-12">
207
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>用户电话:</b></p>
208
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_user_phone }}</p>
209
+ </div>
210
+ <div class="col-xs-12">
211
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>安检时间:</b></p>
212
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_create_time }}</p>
213
+ </div>
214
+ <div class="col-xs-12">
215
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
216
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
217
+ </div>
218
+ <div class="col-xs-12">
219
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>所属安检:</b></p>
220
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_checker_name }}</p>
221
+ </div>
222
+ <div class="col-xs-6">
223
+ <p class="panel-title col-xs-5 text-left font"><b>检&ensp;查&ensp;项:</b></p>
224
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_device_type }}</p>
225
+ </div>
226
+ <div class="col-xs-6">
227
+ <p class="panel-title col-xs-5 text-left font"><b>隐&ensp;患&ensp;项:</b></p>
228
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_item_name }}</p>
229
+ </div>
230
+ <div class="col-xs-12">
231
+ <p class="panel-title col-xs-5 text-left font"><b>备注:</b></p>
232
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_comments }}</p>
233
+ </div>
234
+ <div class="col-xs-12">
235
+ <p class="panel-title col-xs-5 text-left font"><b>隐患原因:</b></p>
236
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_item_value }}</p>
237
+ </div>
238
+
239
+ <div class="col-xs-12">
240
+ <button type="button" name="button" class="btn btn-primary"
241
+ style="background-color:#499edf;float: right"
242
+ @click="$parent.$parent.$parent.openshowModal(row)">查看
243
+ </button>
244
+ <button type="button" name="button" class="btn btn-primary"
245
+ style="background-color:#499edf;float: right;margin-right:10px;"
246
+ @click="$parent.$parent.$parent.openshowModal1(row)">处理
247
+ </button>
248
+ <!--<button type="button" class="btn btn-default" @click="$parent.$parent.$parent.ceshi">确认2</button>-->
249
+ </div>
250
+ </div>
251
+ </div>
252
+ </div>
253
+ </div>
254
+ </list>
255
+ </criteria-paged>
256
+ </div>
257
+ <modal :show.sync="showModal">
258
+ <div slot="modal-header" class="modal-header">
259
+ <h4 class="modal-title">
260
+ 隐患照片
261
+ </h4>
262
+ </div>
263
+ <div slot="modal-body" class="modal-body">
264
+ <div class="from-group">
265
+ <div class="row">
266
+ <div class="col-md-6">
267
+ <img-self v-if="row.f_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_path" width="300" height="400"></img-self>
268
+ <img-self v-if="row.f_p1_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_p1_path" width="300" height="400"></img-self>
269
+ <img-self v-if="row.f_p2_path" :src="`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+row.f_p2_path" width="300" height="400"></img-self>
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ <div slot="modal-footer" class="modal-footer">
275
+ <button type="button" class="btn btn-default" @click="closeshowModal">确认</button>
276
+ </div>
277
+ </modal>
278
+ <modal :show.sync="showModal1">
279
+ <div slot="modal-header" class="modal-header">
280
+ <h4 class="modal-title">
281
+ 处理结果
282
+ </h4>
283
+ </div>
284
+ <div slot="modal-body" class="modal-body">
285
+ <div class="row" style="margin-bottom: 10px">
286
+ <p class="panel-title col-xs-3 text-left font"><b>隐&ensp;患&ensp;项:</b></p>
287
+ <p class="panel-title col-xs-9 text-left input-font">{{ deal.result.f_item_name }}</p>
288
+ </div>
289
+ <div class="row" style="margin-bottom: 10px">
290
+ <p class="panel-title col-xs-3 text-left font"><b>隐患原因:</b></p>
291
+ <p class="panel-title col-xs-9 text-left input-font">{{ deal.result.f_item_value }}</p>
292
+ </div>
293
+ <div class="form-group col-sm-12">
294
+ <div class="auto">
295
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
296
+ <div class="panel-body panel-self"
297
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
298
+ <img-self :src="deal.f_deal_path" alt="整改照片" :width="140" :height="170" capture="camera"
299
+ type="file"></img-self>
300
+ <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
301
+ <img src="../../assets/remove.png" @click="delfile('f_deal_path', deal.f_deal_path)"></img>
302
+ <button type="button" name="button" class="btn btn-primary btn-photo"
303
+ @click="takePic('f_deal_path','整改照片')">拍照
304
+ </button>
305
+ </div>
306
+ </div>
307
+ <div class="panel-body panel-self"
308
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
309
+ <img-self :src="deal.f_other_dealpath1" alt="整改照片" :width="140" :height="170" capture="camera"
310
+ type="file"></img-self>
311
+ <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
312
+ <img src="../../assets/remove.png" @click="delfile('f_other_dealpath1', deal.f_other_dealpath1)"></img>
313
+ <button type="button" name="button" class="btn btn-primary btn-photo"
314
+ @click="takePic('f_other_dealpath1','整改照片')">拍照
315
+ </button>
316
+ </div>
317
+ </div>
318
+ <div class="panel-body panel-self"
319
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
320
+ <img-self :src="deal.f_other_dealpath2" alt="整改照片" :width="140" :height="170" capture="camera"
321
+ type="file"></img-self>
322
+ <div class="row text-right div-photo" style="height: 50px;margin-top: -30px">
323
+ <img src="../../assets/remove.png" @click="delfile('f_other_dealpath2', deal.f_other_dealpath2)"></img>
324
+ <button type="button" name="button" class="btn btn-primary btn-photo"
325
+ @click="takePic('f_other_dealpath2','整改照片')">拍照
326
+ </button>
327
+ </div>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ <div class="form-group col-sm-12" v-if="isNeedDealSign">
333
+ <p class="panel-title text-left font" style="text-align: center">用户签名:</p>
334
+ <div class="auto">
335
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
336
+ <div class="panel-body panel-self"
337
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
338
+ <img :src="deal.f_dealsign_path" :width="200" :height="150"/>
339
+ <div class="row text-right div-photo" style="height: 50px;margin-top: 60px">
340
+ <button type="button" name="button" class="btn btn-primary btn-photo" @click="sign">签名</button>
341
+ </div>
342
+ </div>
343
+ </div>
344
+ </div>
345
+ </div>
346
+ <div class="row">
347
+ <div class="col-xs-2">
348
+ <p class="panel-title text-left font" style="text-align: center">处理结果</p>
349
+ </div>
350
+ <div class="col-xs-9">
351
+ <textarea class="input-font " v-model=deal.f_deal_remark style="width: 100%"></textarea>
352
+ </div>
353
+ </div>
354
+ <div v-if="isCancelLimitGas" style="display: flex;align-items: end;height: 30px;gap: 10px;padding-left: 16px;">
355
+ <input type="checkbox" v-model="deletebacklistisselect"/>
356
+ <div style="height: 18px">取消限制该用户购气</div>
357
+ </div>
358
+ </div>
359
+ <div slot="modal-footer" class="modal-footer">
360
+ <button type="button" class="btn btn-default" @click="commitDealDefect">确认</button>
361
+ <button type="button" class="btn btn-default" @click="closeshowModal1">取消</button>
362
+ </div>
363
+ </modal>
364
+ </template>
365
+
366
+ <script>
367
+ import Vue from 'vue'
368
+ import {HttpResetClass, PagedList} from 'vue-client'
369
+ import * as Util from '../Util'
370
+
371
+ export default {
372
+ title: '无计划安检查询',
373
+ data() {
374
+ return {
375
+ row:{},
376
+ showModal: false,
377
+ showModal1: false,
378
+ showimg: '',
379
+ deal: {
380
+ result: {},
381
+ f_deal_path: '',
382
+ f_other_dealpath1: '',
383
+ f_other_dealpath2: '',
384
+ f_deal_remark: '',
385
+ f_dealsign_path: '', //签名
386
+ f_dealer: Vue.user.name,
387
+ f_dealer_id: Vue.user.id
388
+ },
389
+ user_types: [
390
+ {label: '请选择用户类型', value: ''},
391
+ {label: '民用', value: '民用'},
392
+ {label: '非民用', value: '非民用'},
393
+ ],
394
+ f_filialeids: '',
395
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/AndroidDealWith`, 20, {
396
+ condition: 'this.condition',
397
+ f_filialeids: `'${Vue.user.orgid}'`,
398
+ f_checker_id: `'${Vue.user.id}'`
399
+ }),
400
+ criteriaShow: false,
401
+ isNeedDealSign: this.$appdata.getSingleValue('隐患处理是否需要签名') == 'true',
402
+ isCancelLimitGas: this.$appdata.getSingleValue('隐患处理-取消限制购气') == '是',
403
+ deletebacklistisselect: false
404
+ }
405
+ },
406
+ ready() {
407
+ this.selfSearch()
408
+ },
409
+ methods: {
410
+ async deletebacklist() {
411
+ ////tag)
412
+ let http = new HttpResetClass()
413
+ ////tag
414
+ let res1 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
415
+ data: {
416
+ items: "*",
417
+ tablename: "t_userinfo",
418
+ condition: `f_userinfo_code = ${this.deal.result.f_userinfo_code}`,
419
+ orderitem: "f_userinfo_code"
420
+ }
421
+ }, {resolveMsg: null, rejectMsg: null})
422
+ ////tag)
423
+ ////tag
424
+ let res2 = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/backlistOperate`, {
425
+ data: {
426
+ "f_operat_type": "取消拉黑",
427
+ "f_state": "有效",
428
+ "f_user_name": this.deal.result.f_user_name,
429
+ "f_comments": '',
430
+ "f_operator": Vue.user.name,
431
+ "f_operatorid": Vue.user.id,
432
+ "f_orgid": Vue.user.orgid,
433
+ "f_orgname": Vue.user.orgs,
434
+ "f_depid": Vue.user.depids,
435
+ "f_depname": Vue.user.deps,
436
+ "f_describe": `${Vue.user.name}对用户${this.deal.result.f_user_name}进行取消拉黑`,
437
+ "f_userinfo_id": {
438
+ "f_userinfo_id": res1.data[0].f_userinfo_id,
439
+ "f_user_state": "正常",
440
+ "version": res1.data[0].version
441
+ },
442
+ "f_limit_times":"",
443
+ "f_limit_value":""
444
+ }
445
+ }, {resolveMsg: null, rejectMsg: null})
446
+ },
447
+ // 签名回调
448
+ signCallback(prop, fileName) {
449
+ console.log("签名回调地址" + fileName)
450
+ // HostApp.alert('绑定属性:' + prop + ' 文件全路径如file:///storage/sdcard0/safecheck/abc.jpg:' + fullFileName)
451
+ HostApp.__this__.$set('deal.f_dealsign_path', fileName)
452
+ HostApp.__callback__ = null
453
+ HostApp.__this__ = null
454
+ },
455
+ // 用户签名
456
+ sign() {
457
+ if (!this.deal.f_deal_path) {
458
+ this.$showMessage('请先拍摄处理后照片!!!')
459
+ return
460
+ }
461
+ this.delAudioFile('f_dealsign_path', this.deal.f_dealsign_path)
462
+ let prop = 'f_dealsign_path'
463
+ let idx = 'aofeng'
464
+ let fileName
465
+ if (!this.deal.f_dealsign_path) {
466
+ fileName = Util.guid() + '-valve-' + idx + '-' + prop + '.jpg'
467
+ } else {
468
+ fileName = Util.getFileName(this.deal.f_dealsign_path)
469
+ }
470
+ HostApp.__callback__ = this.signCallback
471
+ HostApp.__this__ = this
472
+ HostApp.getSignature({
473
+ file: fileName,
474
+ requestCode: 111,
475
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
476
+ })
477
+ },
478
+ delAudioFile(prop, fileName) {
479
+ if (!fileName)
480
+ return
481
+ else {
482
+ HostApp.delfile(fileName)
483
+ this.deal[prop] = null
484
+ }
485
+ },
486
+ commitDealDefect() {
487
+ //tag
488
+ //tag)
489
+ // if (!this.deal.f_deal_path) {
490
+ // this.$showMessage('处理后照片必须上传')
491
+ // return
492
+ // }
493
+ if (this.isNeedDealSign && !this.deal.f_dealsign_path) {
494
+ this.$showMessage('签名必须上传')
495
+ return
496
+ }
497
+ if (this.deletebacklistisselect){
498
+ this.deletebacklist()
499
+ }
500
+ this.deal.f_other_dealpath = this.deal.f_deal_path
501
+ HostApp.__this__ = this
502
+ HostApp.logicWithHint({
503
+ 'logic': 'safe_dealWithDefect', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
504
+ 'data': this.deal, 'backresult': 1
505
+ })
506
+ },
507
+ commitCallBack(jo) {
508
+ //tag
509
+ //tag)
510
+ if (jo.state == 'ok') {
511
+ let ress = JSON.parse(jo.result)
512
+ if (ress.code == 200) {
513
+ this.$showMessage(ress.msg)
514
+ this.closeshowModal1()
515
+ } else {
516
+ this.$showMessage(ress.msg)
517
+ }
518
+ } else {
519
+ this.$showMessage('本地服务调用失败')
520
+ }
521
+ },
522
+ delfile(prop, fileName) {
523
+ if (fileName == Vue.nopic)
524
+ return
525
+ else {
526
+ HostApp.delfile(fileName)
527
+ this.deal[prop] = Vue.nopic
528
+ }
529
+ },
530
+ openshowModal(val) {
531
+ this.row = val
532
+ this.showModal = true
533
+ },
534
+ closeshowModal() {
535
+ this.showimg = ''
536
+ this.showModal = false
537
+ },
538
+ openshowModal1(val) {
539
+ this.deal.result = val
540
+ //tag
541
+ //tag
542
+ this.deletebacklistisselect = false
543
+ this.showModal1 = true
544
+ },
545
+ closeshowModal1() {
546
+ this.deal = {
547
+ result: {},
548
+ f_deal_path: '',
549
+ f_other_dealpath1: '',
550
+ f_other_dealpath2: '',
551
+ f_deal_remark: '',
552
+ f_dealsign_path: '', //签名
553
+ f_dealer: Vue.user.name,
554
+ f_dealer_id: Vue.user.id
555
+ }
556
+ this.showModal1 = false
557
+ this.selfSearch()
558
+ },
559
+ cameraCallBack(prop, fileName) {
560
+ HostApp.__this__.$set( 'deal.'+prop+'', fileName)
561
+ HostApp.__callback__ = null
562
+ HostApp.__this__ = null
563
+ },
564
+ takePic(prop, title) {
565
+ HostApp.__callback__ = this.cameraCallBack
566
+ HostApp.__this__ = this
567
+ let fileName
568
+ if (!this.deal[prop] || this.deal[prop].includes("nopic.png")) {
569
+ fileName = Util.guid() + '-' + prop + '.jpg'
570
+ } else {
571
+ fileName = Util.getFileName(this.deal[prop])
572
+ }
573
+ //tag
574
+ //tag
575
+ HostApp._open_a_page({
576
+ type: 'boomerang',
577
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
578
+ param: {
579
+ file: fileName,
580
+ requestCode: 111,
581
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
582
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
583
+ }
584
+ })
585
+ },
586
+ selfSearch() {
587
+
588
+ let condition = "1=1 "
589
+ if (this.$refs.paged.$refs.cri.model.f_user_name) {
590
+ if (this.$refs.paged.$refs.cri.model.f_user_name.toString().trim()) {
591
+ condition += " and tcp.f_user_name like '" + this.$refs.paged.$refs.cri.model.f_user_name + "%'"
592
+ }
593
+ }
594
+ if (this.$refs.paged.$refs.cri.model.f_userinfo_code) {
595
+ if (this.$refs.paged.$refs.cri.model.f_userinfo_code.toString().trim()) {
596
+ condition += " and tcp.f_userinfo_code = '" + this.$refs.paged.$refs.cri.model.f_userinfo_code + "'"
597
+ }
598
+ }
599
+ if (this.$refs.paged.$refs.cri.model.f_checker_name) {
600
+ if (this.$refs.paged.$refs.cri.model.f_checker_name.toString().trim()) {
601
+ condition += " and tcp.f_checker_name = '" + this.$refs.paged.$refs.cri.model.f_checker_name + "'"
602
+ }
603
+ }
604
+ if (this.$refs.paged.$refs.cri.model.f_address) {
605
+ if (this.$refs.paged.$refs.cri.model.f_address.toString().trim()) {
606
+ condition += " and tcp.f_address like '%" + this.$refs.paged.$refs.cri.model.f_address + "%'"
607
+ }
608
+ }
609
+ if (this.$refs.paged.$refs.cri.model.f_start_date) {
610
+ if (this.$refs.paged.$refs.cri.model.f_start_date.toString().trim()) {
611
+ condition += " and tdl.f_create_time > '" + this.$refs.paged.$refs.cri.model.f_start_date + "'"
612
+ }
613
+ }
614
+ if (this.$refs.paged.$refs.cri.model.f_end_date) {
615
+ if (this.$refs.paged.$refs.cri.model.f_end_date.toString().trim()) {
616
+ condition += " and tdl.f_create_time < '" + this.$refs.paged.$refs.cri.model.f_end_date + "'"
617
+ }
618
+ }
619
+ if (this.$refs.paged.$refs.cri.model.f_user_type) {
620
+ if (this.$refs.paged.$refs.cri.model.f_user_type.toString().trim()) {
621
+ condition += " and f_user_type = '" + this.$refs.paged.$refs.cri.model.f_user_type + "'"
622
+ }
623
+ }
624
+
625
+ //tag
626
+ this.model.search(condition)
627
+ },
628
+
629
+ hidden() {
630
+ this.criteriaShow = !this.criteriaShow
631
+ }
632
+ }
633
+ }
634
+ </script>