safecheck-client 3.0.39-73 → 3.0.39-74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +1 -1
  2. package/src/App.vue +31 -26
  3. package/src/components/android/rejectInspecCheck.vue +322 -322
  4. package/src/components/pc/RoleSelector.vue +172 -172
  5. package/src/components/rongcheng/AddPlanItem.vue +344 -344
  6. package/src/components/rongcheng/CheckCurrentCreate.vue +1081 -1081
  7. package/src/components/rongcheng/PaperDefectMain.vue +828 -828
  8. package/src/filiale/BFshiye/android/AndroidDefectDeal.vue +652 -652
  9. package/src/filiale/BFshiye/pc/DefectListNew.vue +637 -637
  10. package/src/filiale/BFshiye/pc/NewCheckpaper.vue +1962 -1962
  11. package/src/filiale/BFshiye/pc/checkUserList.vue +772 -772
  12. package/src/filiale/BFshiye/pc.js +17 -17
  13. package/src/filiale/baiyin/android/SafecheckUserInfo.vue +775 -775
  14. package/src/filiale/baiyin/android.js +12 -12
  15. package/src/filiale/dexin/pc/PaperList.vue +840 -840
  16. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1357 -1357
  17. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +823 -823
  18. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1919 -1919
  19. package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -1262
  20. package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -398
  21. package/src/filiale/rongchuang/pc.js +18 -18
  22. package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +532 -532
  23. package/src/filiale/tongchuan/android/PhoneUpUserinfo.vue +1340 -1340
  24. package/src/filiale/wensu/android/SafecheckOrderV.vue +2444 -2444
  25. package/src/filiale/wensu/android/SafecheckUserInfo.vue +712 -712
  26. package/src/filiale/wensu/pc/CheckSearchUser.vue +1251 -1251
  27. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1191 -1191
  28. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +913 -913
  29. package/src/filiale/yangchunboneng/android.js +21 -21
  30. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +353 -353
  31. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1197 -1197
  32. package/src/filiale/yangchunboneng/pc/HiddenSituation.vue +171 -171
  33. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +1112 -1112
  34. package/src/filiale/yangchunboneng/pc/PaperList.vue +757 -757
  35. package/src/filiale/yangchunboneng/pc/SelectCheckPlan.vue +331 -331
  36. package/src/filiale/yangchunboneng/pc.js +29 -29
  37. package/src/main.js +1 -1
  38. package/src/rongcheng.js +319 -319
  39. package/src/safecheck-android.js +316 -316
  40. package/yarn-error.log +0 -140
@@ -1,757 +1,757 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged v-ref:paged :model="model" @sort="sort">
5
- <criteria v-ref:criteria class="search_area" partial='criteria' @condition-changed='$parent.selfSearch'>
6
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2">
9
- <label class="font_normal_body">模糊查询</label>
10
- <input v-model="model.f_userinfo" class="input_search"
11
- condition="(f_userinfo_code like '%{}%' or f_user_name like '%{}%' or f_user_phone like '%{}%' or f_meternumber like '%{}%' or f_address like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%')"
12
- placeholder="编号 名称 电话 表号 地址" style="width: 60%" type="text">
13
- </div>
14
- <div class="form-group col-sm-2">
15
- <label class="font_normal_body">客户编号</label>
16
- <input v-model="model.f_userinfo_code" class="input_search" condition="f_userinfo_code='{}'"
17
- placeholder="客户编号" style="width: 60%" type="text">
18
- </div>
19
- <div class="form-group col-sm-2">
20
- <label class="font_normal_body">客户名称</label>
21
- <input v-model="model.f_user_name" class="input_search" condition="f_user_name like '%{}%'"
22
- placeholder="客户名称" style="width: 60%" type="text">
23
- </div>
24
- <div class="form-group col-sm-2">
25
- <label class="font_normal_body">客户电话</label>
26
- <input v-model="model.f_user_phone" class="input_search"
27
- condition=" ( f_user_phone like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%' )"
28
- placeholder="客户电话" style="width: 60%" type="text">
29
- </div>
30
- <div class="form-group col-sm-2">
31
- <label class="font_normal_body">客户表号</label>
32
- <input v-model="model.f_meternumber" class="input_search" condition="f_meternumber like '%{}%'"
33
- placeholder="客户表号" style="width: 60%" type="text">
34
- </div>
35
- <div class="form-group col-sm-2">
36
- <label class="font_normal_body">详细地址</label>
37
- <input v-model="model.f_address" class="input_search" condition="f_address like '%{}%'"
38
- placeholder="详细地址" style="width: 60%" type="text">
39
- </div>
40
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
41
-
42
- <export-excel-safe
43
- v-if="$parent.$parent.excelStart"
44
- :choose-col="true" :data="$parent.$parent.searchData"
45
- :field="$parent.$parent.excelHeaders" sql-name="查找安检单" sqlurl="rs/logic/SafeExportExcel"
46
- template-name='安检结果明细'></export-excel-safe>
47
- <!-- <export-excel :data="$parent.$parent.getCondition" -->
48
- <!-- :field="$parent.$parent.getfield"-->
49
- <!-- sqlurl="rs/logic/exportfile" sql-name="chargeQuery" template-name='收费查询导出'-->
50
- <!-- :choose-col="true"></export-excel>-->
51
- <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
52
- <button v-if="$parent.$parent.audioshow" class="button_spacing button_search"
53
- @click="$parent.$parent.showaudio()">隐藏
54
- </button>
55
-
56
- <button class="button_spacing button_search" @click="search()">查询</button>
57
- <button class="button_spacing button_search" @click="$parent.$parent.clear()">清空</button>
58
- <div
59
- :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
60
- class="button_spacing" style="float: right" @click="$parent.$parent.hidden()"></div>
61
- </div>
62
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
63
- <label class="font_normal_body">小&emsp;&emsp;区</label>
64
- <input v-model="model.f_residential_area" class="input_search"
65
- condition="f_residential_area like '%{}%'" placeholder="小区" style="width: 60%" type="text">
66
- </div>
67
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
68
- <label class="font_normal_body">安检计划</label>
69
- <input v-model="$parent.$parent.model.f_check_plan.f_plan_name" class="input_search" placeholder="安检计划"
70
- readonly="readonly" style="width: 60%" type="text" @click="$parent.$parent.showChooser">
71
- </div>
72
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
73
- <label class="font_normal_body">开始时间</label>
74
- <datepicker v-model="model.f_check_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
75
- :show-rest-button="reset" :value.sync="model.f_check_start"
76
- condition="f_offsite_time > ='{} 00:00:00'" placeholder='开始时间' style="width: 60%">
77
- </datepicker>
78
- <!-- <datepicker-->
79
- <!-- class="select_list select"-->
80
- <!-- :value.sync="model.f_check_start"-->
81
- <!-- placeholder='开始时间' style="width: 60%"-->
82
- <!-- :disabled-days-of-week="[]"-->
83
- <!-- :format="'yyyy-MM-dd'"-->
84
- <!-- :show-rest-button="reset"-->
85
- <!-- v-model="model.f_check_start"-->
86
- <!-- condition="f_offsite_time > ='{} 00:00:00'">-->
87
- <!-- </datepicker>-->
88
- </div>
89
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
90
- <label class="font_normal_body">结束时间</label>
91
- <datepicker v-model="model.f_check_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
92
- :show-rest-button="reset" :value.sync="model.f_check_end" condition="f_offsite_time <= '{} 23:59:59'"
93
- placeholder='结束时间' style="width: 60%">
94
- </datepicker>
95
- </div>
96
-
97
-
98
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
99
-
100
- <label class="font_normal_body">安检类型</label>
101
- <v-select v-model='model.f_safecheck_type' :options='$parent.$parent.safetype' :value-single="true"
102
- :value.sync="model.f_safecheck_type" class="select_list select" close-on-select
103
- condition="f_safecheck_type = '{}'" placeholder='安检类型' style="width: 60%"></v-select>
104
- </div>
105
-
106
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
107
-
108
- <label class="font_normal_body">客户类型</label>
109
- <v-select v-model='model.f_check_type' :options='$parent.$parent.checktype' :value-single="true"
110
- :value.sync="model.f_check_type" class="select_list select" close-on-select
111
- condition="f_check_type = '{}'" placeholder='客户类型' style="width: 60%"></v-select>
112
- </div>
113
-
114
-
115
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
116
- <label class="font_normal_body">安检状态</label>
117
- <v-select id="f_entry" v-model='model.f_entry' :multiple="true"
118
- :options='$parent.$parent.f_entry_status' :value.sync="model.f_entry" class="select_list select"
119
- condition="" placeholder='安检状态' style="width: 60%"></v-select>
120
- </div>
121
-
122
-
123
- <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
124
- <!-- <label class="font_normal_body">安&ensp;检&ensp;员</label>-->
125
- <!-- <v-select :value.sync="model.f_checker_id" v-model='model.f_checker_id'-->
126
- <!-- :value-single="true" style="width: 60%"-->
127
- <!-- class="select_list select"-->
128
- <!-- :options='$parent.$parent.checkersid' placeholder='安检员'-->
129
- <!-- close-on-select-->
130
- <!-- condition="f_checker_id = '{}'"></v-select>-->
131
- <!-- </div>-->
132
- <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
133
- <!-- <label class="font_normal_body" style="margin-right: 2px">公&emsp;&emsp;司</label>-->
134
- <!-- <right-tree @re-res="$parent.$parent.getRes" :initresid="$parent.$parent.$login.f.orgid">-->
135
- <!-- </right-tree>-->
136
- <!-- </div>-->
137
- <div v-show="$parent.$parent.criteriaShow" class="col-sm-4 form-group" style="margin: 0">
138
- <role-selector-safe
139
- v-ref:selector
140
- v-model="model.f_checker_id" :value-close="false" :value-multiple="true"
141
- :value.sync="model.f_checker_id" condition="f_checker_name in {}" role-lable="安&nbsp;检&nbsp;员&nbsp;"
142
- role-name="安检员" @re-res="$parent.$parent.getRes">
143
- </role-selector-safe>
144
- </div>
145
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
146
- <label class="font_normal_body">片&emsp;&emsp;区</label>
147
- <v-select v-model="model.f_slice_area" :options='$parent.$parent.sliceArea' :value-single="true"
148
- :value.sync="model.f_slice_area" class="select_list select" clear-button close-on-select
149
- condition="f_slice_area='{}'" filer-key="name" placeholder='片区/管理站' style="width: 60%"
150
- @change="$parent.$parent.getmeterbook(model.f_slice_area)">
151
- </v-select>
152
- </div>
153
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
154
- <label class="font_normal_body">抄&ensp;表&ensp;册</label>
155
- <v-select v-model="model.f_meter_book_num" :options='$parent.$parent.cbc' :value-single="true"
156
- :value.sync="model.f_meter_book_num" class="select_list select" clear-button close-on-select
157
- condition="f_meter_book_num={}" filer-key="name" placeholder='抄表册' style="width: 60%">
158
- </v-select>
159
- </div>
160
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
161
- <label class="font_normal_body">省&ensp;市&ensp;区</label>
162
- <v-select v-model="model.f_pcd" :options='$parent.$parent.pcds' :value-single="true"
163
- :value.sync="model.f_pcd" class="select_list select" clear-button close-on-select
164
- condition="f_pcd='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
165
- </v-select>
166
- </div>
167
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
168
- <label class="font_normal_body">计划类型</label>
169
- <v-select v-model="model.f_no_checkplan" :options='$parent.$parent.no_checkplans' :value-single="true"
170
- :value.sync="model.f_no_checkplan" class="select_list select" clear-button close-on-select
171
- condition="f_no_checkplan='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
172
- </v-select>
173
- </div>
174
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
175
- <label class="font_normal_body">客户卡号</label>
176
- <input v-model="model.f_card_id" class="input_search" condition="f_card_id like '%{}%'"
177
- placeholder="客户卡号" style="width: 60%" type="text">
178
- </div>
179
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
180
- <label class="font_normal_body">部&emsp;&emsp;门</label>
181
- <v-select v-model="model.f_department_name" :options='$parent.$parent.departmentArr'
182
- :value-single="true" :value.sync="model.f_department_name" class="select_list select" clear-button
183
- close-on-select filer-key="name" placeholder='请选择' style="width: 60%">
184
- </v-select>
185
- </div>
186
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
187
- <label class="font_normal_body">客户评价</label>
188
- <v-select v-model="model.f_client_evaluation" :options='$parent.$parent.evaluations'
189
- :value-single="true" :value.sync="model.f_client_evaluation" class="select_list select" clear-button
190
- close-on-select condition="f_client_evaluation='{}'" placeholder='客户评价' style="width: 60%">
191
- </v-select>
192
- </div>
193
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
194
- <label class="font_normal_body">首次通气开始</label>
195
- <datepicker v-model="model.f_gas_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
196
- :show-rest-button="reset" :value.sync="model.f_gas_start" condition="f_uservent_date >='{} 00:00:00'"
197
- placeholder='首次通气开始时间' style="width: 60%">
198
- </datepicker>
199
- </div>
200
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
201
- <label class="font_normal_body">首次通气结束</label>
202
- <datepicker v-model="model.f_gas_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
203
- :show-rest-button="reset" :value.sync="model.f_gas_end" condition="f_uservent_date <= '{} 23:59:59'"
204
- placeholder='首次通气结束时间' style="width: 60%">
205
- </datepicker>
206
- </div>
207
- </div>
208
- <modal v-ref:modal :show.sync="$parent.$parent.showModal" backdrop="false">
209
- <div slot="modal-header" class="modal-header">
210
- <h4 class="modal-title">
211
- 选择计划
212
- </h4>
213
- </div>
214
- <div slot="modal-body" class="modal-body">
215
- <plan-chooser v-ref:chooser :f.sync="$parent.$parent.fun"></plan-chooser>
216
- </div>
217
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
218
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
219
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
220
- </div>
221
- </modal>
222
- </div>
223
- </criteria>
224
- <data-grid v-ref:grid :model="model" class="list_area table_sy" partial='list' style="overflow: hidden">
225
- <template partial='head'>
226
- <tr>
227
- <th>
228
- <nobr>客户编号</nobr>
229
- </th>
230
- <th>
231
- <nobr>客户名称</nobr>
232
- </th>
233
- <th>
234
- <nobr>客户表号</nobr>
235
- </th>
236
- <th>
237
- <nobr>客户电话</nobr>
238
- </th>
239
- <th>
240
- <nobr>客户类型</nobr>
241
- </th>
242
- <th>
243
- <nobr>客户地址</nobr>
244
- </th>
245
- <th>
246
- <nobr>首次通气时间</nobr>
247
- </th>
248
- <th>
249
- <nobr>安检状态</nobr>
250
- </th>
251
- <th>
252
- <data-order field="f_offsite_time" name="安检时间"></data-order>
253
- </th>
254
- <th>
255
- <nobr>安检员</nobr>
256
- </th>
257
- <th>
258
- <nobr>气表型号</nobr>
259
- </th>
260
- <th>
261
- <nobr>气表品牌</nobr>
262
- </th>
263
- <th>
264
- <nobr>电子读数</nobr>
265
- </th>
266
- <th>
267
- <nobr>机械读数</nobr>
268
- </th>
269
- <th>
270
- <nobr>剩余气量</nobr>
271
- </th>
272
- <th>
273
- <nobr>剩余金额</nobr>
274
- </th>
275
- <th>
276
- <nobr>备注</nobr>
277
- </th>
278
- <th>
279
- <nobr>客户评价</nobr>
280
- </th>
281
- <th>
282
- <nobr>操作</nobr>
283
- </th>
284
- <th v-if="$parent.$parent.$parent.audioshow">
285
- <nobr>录音</nobr>
286
- </th>
287
- </tr>
288
- </template>
289
- <template partial='body'>
290
-
291
- <td style="text-align: center">{{ row.f_userinfo_code }}</td>
292
- <td style="text-align: center">{{ row.f_user_name }}</td>
293
- <td style="text-align: center">{{ row.f_meternumber }}</td>
294
- <td style="text-align: center">{{ row.f_user_phone }}</td>
295
- <td style="text-align: center">{{ row.f_check_type }}</td>
296
-
297
- <td style="text-align: center">{{ row.f_address }}</td>
298
- <td style="text-align: center">{{ row.f_uservent_date }}</td>
299
- <td style="text-align: center">{{ row.f_entry_status }}</td>
300
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
301
- <td style="text-align: center">{{ row.f_checker_name }}</td>
302
- <td style="text-align: center">{{ row.f_diaphgram_size }}</td>
303
- <td style="text-align: center">{{ row.f_aliasname }}</td>
304
- <td style="text-align: center">{{ row.f_electronic_read }}</td>
305
- <td style="text-align: center">{{ row.f_mechanical_read }}</td>
306
- <td style="text-align: center">{{ row.f_remaining_gas_volume }}</td>
307
- <td style="text-align: center">{{ row.f_remaining_amount }}</td>
308
- <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
309
- <td style="text-align: center">{{ row.f_client_evaluation }}</td>
310
- <td style="text-align: center">
311
- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
312
-
313
-
314
- </td>
315
- <td v-if="$parent.$parent.$parent.audioshow" style="text-align: center">
316
- <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
317
- <audio v-if="row.f_recording1_path" controls="controls">
318
- <source :src="'rs/audio/file/' + row.f_recording1_path" type="audio/mpeg">
319
- </audio>
320
- <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
321
- @click="$parent.$parent.$parent.print(row)">
322
- 打印
323
- </button>-->
324
- </td>
325
- </template>
326
- </data-grid>
327
- </criteria-paged>
328
- <check-msg v-if="showcheckmsg" :data="checkInfo" :show="showcheckmsg"></check-msg>
329
- </div>
330
- </div>
331
- </template>
332
-
333
- <script>
334
- import { PagedList } from 'vue-client'
335
- import Vue from 'vue'
336
- import co from 'co'
337
- import AppData from '../../../stores/AppData'
338
- import * as Util from '../../Util'
339
- import getNowDate from "../../../utils/getNowDate";
340
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
341
- import BenzAMRRecorder from 'benz-amr-recorder'
342
-
343
- //获取json配置文件
344
- let asyncReady = async function (self) {
345
- // 获取配置信息
346
- try {
347
- let res = await Vue.resetget(`/phone/rs/vue`, { data: {} }, { resolveMsg: null, rejectMsg: null })
348
- Vue.config = res.data
349
- } catch (error) {
350
- // 忽略704,文件找不到异常R
351
- if (error.status !== 704) {
352
- throw error
353
- }
354
- }
355
- }
356
-
357
- let select = function* (self) {
358
- let http = new HttpResetClass()
359
- let getGasman = yield http.load('POST', '/rs/search', {
360
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
361
- userid: self.$login.f.id
362
- }, { resolveMsg: null, rejectMsg: null })
363
- ////tag
364
- self.checkersid.push({ label: '全部', value: '' })
365
- getGasman.data.forEach((checker) => {
366
- self.checkersid.push({ label: checker.name, value: checker.id })
367
- })
368
- }
369
-
370
- export default {
371
- title: '安检结果查看',
372
- data() {
373
- let model = new PagedList('rs/sql/查找安检单', 20, {
374
- f_plan_id: 'this.f_plan_id',
375
- f_approved: 'this.f_approved',
376
- f_entry_status: 'this.f_entry',
377
- f_no_checkplan: 'this.f_no_checkplan',
378
- f_filialeid: 'this.f_filialeid',
379
- orderitem: "'f_offsite_time desc'"
380
- })
381
- model.f_check_type = ''
382
- model.f_plan_id = ''
383
- model.f_approved = ''
384
- model.f_entry = ''
385
- model.f_no_checkplan = ''
386
- model.f_filialeid = `('${this.$login.f.orgid}')`
387
- //model.f_check_type='民用'
388
- // let searchData={
389
- // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
390
- // f_approved: this.model.f_approved,
391
- // f_entry_status: this.model.f_entry,
392
- // f_no_checkplan:this.model.f_no_checkplan[0],
393
- // f_filialeid: this.model.f_filialeid,
394
- // //orderitem: this.model.f_offsite_time,
395
- // //condition:this.model.condition
396
- // }
397
- // model.f_subcompany = this.$login.f.f_fengongsi
398
- return {
399
- audioshow: false,
400
- searchData: {
401
- condition: "1=1",
402
- orderitem: "f_offsite_time desc",
403
- f_plan_id: "",
404
- f_approved: '',
405
- f_no_checkplan: '',
406
- f_filialeid: `('${this.$login.f.orgid}')`
407
- },
408
- model: model,
409
- excelHeaders: {
410
- //searchData:searchData,
411
- 'f_userinfo_code': '客户编号',
412
- 'f_user_name': '客户姓名',
413
- 'f_meternumber': '客户表号',
414
- 'f_user_phone': '客户电话',
415
- 'f_check_type': '客户类型',
416
- 'f_residential_area': '小区',
417
- 'f_address': '客户地址',
418
- 'f_uservent_date': '首次通气时间',
419
- 'f_entry_status': '安检状态',
420
- 'f_offsite_time': '安检时间',
421
- 'f_checker_name': '安检员',
422
- 'f_diaphgram_size': '气表型号',
423
- 'f_aliasname': '气表品牌',
424
- 'f_electronic_read': '电子读数',
425
- 'f_mechanical_read': '机械读数',
426
- 'f_remaining_gas_volume': '剩余气量',
427
- 'f_remaining_amount': '剩余金额',
428
- 'f_safecheck_type': '安检类型',
429
- 'f_repair_approved_note': '备注',
430
- 'f_client_evaluation': '评价',
431
- 'f_plan_name': '计划名称',
432
- },
433
- fun: this.$login.f,
434
- pcds: [],
435
- departmentArr: [],
436
- checkerArr: [],
437
- checkersid: [],
438
- safetype: this.$appdata.getParam('安检类型') ? [{
439
- label: '全部',
440
- value: ''
441
- }, ...this.$appdata.getParam('安检类型')] : [{ label: '全部', value: '' }],
442
- criteriaShow: false,
443
- checktype: this.$appdata.getParam('用户类型') ? [{
444
- label: '全部',
445
- value: ''
446
- }, ...this.$appdata.getParam('用户类型')] : [{ label: '全部', value: '' }],
447
- f_check_type: [{ label: '全部', value: '' }, { label: '民用', value: '民用' }, { label: '非民用', value: '非民用' }],
448
- showModal: false,
449
- no_checkplans: this.$appdata.getParam('计划类型') ? [{
450
- label: '全部',
451
- value: ''
452
- }, ...this.$appdata.getParam('计划类型')] : [{ label: '全部', value: '' }],
453
- f_approval_states: this.$appdata.getParam('安检单审核状态') ? [{
454
- label: '全部',
455
- value: ''
456
- }, ...this.$appdata.getParam('安检单审核状态')] : [{ label: '全部', value: '' }],
457
- f_entry_status: this.$appdata.getParam('安检状态') ? [{
458
- label: '全部',
459
- value: ''
460
- }, ...this.$appdata.getParam('安检状态')] : [{ label: '全部', value: '' }],
461
- f_checkplans: this.$appdata.getParam('有无计划') ? [{
462
- label: '全部',
463
- value: ''
464
- }, ...this.$appdata.getParam('有无计划')] : [{ label: '全部', value: '' }],
465
- showcheckmsg: false,
466
- evaluations: [{ label: '全部', value: '' }, { label: '满意', value: '满意' }, {
467
- label: '基本满意',
468
- value: '基本满意'
469
- }, { label: '不满意', value: '不满意' }],
470
- checkInfo: {},
471
- orderDefault: "'f_offsite_time'",
472
- orderFields: {
473
- f_offsite_time: 'no'
474
- },
475
- sliceArea: [],
476
- cbc: []
477
- }
478
- },
479
- methods: {
480
- //获取省市区列表
481
- getPcd(val) {
482
- this.pcds = [{ label: '全部', value: '' }]
483
- new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
484
- { data: { items: "*", tablename: "t_pcd", orderitem: "id", condition: `f_orgid in ${val}` } },
485
- { resolveMsg: null, rejectMsg: null }).then((pcdlist) => {
486
- pcdlist.data.forEach((result) => {
487
- this.pcds.push({ label: result.f_pcd, value: result.f_pcd })
488
- })
489
- })
490
- },
491
- getDepartment() {
492
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
493
- data: {
494
- items: '*',
495
- tablename: 't_user',
496
- condition: `rolestr like '%安检员%' and state = '在职'`,
497
- orderitem: '1'
498
- }
499
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
500
- this.checkerArr = res.data
501
- this.departmentArr = []
502
- let tempArr = []
503
- res.data.forEach((user) => {
504
- if (!tempArr.includes(user.f_department_name)) {
505
- tempArr.push(user.f_department_name)
506
- this.departmentArr.push({ label: user.f_department_name, value: user.f_department_name })
507
- }
508
- })
509
- })
510
- },
511
- showaudio() {
512
- //tag
513
- this.audioshow = !this.audioshow
514
- //tag
515
- },
516
- getmeterbook(val) {
517
- this.cbc = []
518
- this.cbc.push({
519
- label: '全部',
520
- value: ''
521
- })
522
- if (val == '') {
523
-
524
- this.cbcs.forEach(res => {
525
- this.cbc.push({
526
- label: res.f_book_name,
527
- value: res.id
528
- })
529
- })
530
- } else {
531
- this.cbcs.forEach(res => {
532
- if (res.f_book_slice_area == val) {
533
- this.cbc.push({
534
- label: res.f_book_name,
535
- value: res.id
536
- })
537
- }
538
- })
539
- }
540
- },
541
- Mreadibook(val) {
542
- ////tag
543
- ////tag
544
- if (val) {
545
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
546
- data: {
547
- items: 'name',
548
- tablename: 't_zone',
549
- condition: `parentid in ${val}`,
550
- orderitem: 'id'
551
- }
552
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
553
- this.sliceArea = []
554
- this.sliceArea.push({
555
- label: '全部',
556
- value: ''
557
- })
558
- res.data.forEach(ress => {
559
- this.sliceArea.push({
560
- label: ress.name,
561
- value: ress.name
562
- })
563
- })
564
-
565
- })
566
- }
567
- },
568
- getAllMeterBook(val) {
569
- ////tag
570
- ////tag
571
- this.cbcs = []
572
- if (val) {
573
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
574
- data: {
575
- items: 'f_book_name,f_book_slice_area,id',
576
- tablename: 't_meter_book',
577
- condition: `f_filiale_id in ${val}`,
578
- orderitem: 'id'
579
- }
580
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
581
- res.data.forEach(ress => {
582
- this.cbcs.push({
583
- id: ress.id,
584
- f_book_name: ress.f_book_name,
585
- f_book_slice_area: ress.f_book_slice_area
586
- })
587
- })
588
- this.cbc = []
589
- this.cbc.push({
590
- label: '全部',
591
- value: ''
592
- })
593
- this.cbcs.forEach(res => {
594
- this.cbc.push({
595
- label: res.f_book_name,
596
- value: res.id
597
- })
598
- })
599
- })
600
- }
601
- },
602
- getRes(obj) {
603
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
604
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
605
- this.Mreadibook(this.model.f_filialeid)
606
- this.getAllMeterBook(this.model.f_filialeid)
607
- this.getPcd(this.model.f_filialeid)
608
- //this.$refs.paged.$refs.criteria.search()
609
- },
610
-
611
- change(row) {
612
- // Vue.$login = {jwt: row.f_checker_id}
613
- asyncReady(this).then(() => {
614
- ////tag)
615
- row.f_upload_state = '已传'
616
- this.$goto('new-check-paper', { f_plan_id: row.f_check_plan_id, item: row, role: 'view' }, 'self')
617
- }).catch(
618
- (respanse) => {
619
- alert('获取配置文件失败')
620
- })
621
- },
622
- readConfig() {
623
- let gen = asyncReady(this)
624
- return co(gen)
625
- },
626
- showChooser() {
627
- this.showModal = true
628
- },
629
- hidden() {
630
- this.criteriaShow = !this.criteriaShow
631
- },
632
- refresh() {
633
- this.$refs.paged.$refs.criteria.search()
634
- },
635
- ok() {
636
- this.showModal = false
637
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
638
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
639
- this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
640
- }
641
- },
642
- cancel() {
643
- this.showModal = false
644
- this.model.f_check_plan = { f_plan_name: '', id: '' }
645
- this.model.f_plan_id = ''
646
- },
647
- print(row) {
648
- this.showcheckmsg = true
649
- this.checkInfo = row
650
- },
651
-
652
- sort(field, rule) {
653
- // 将所有排序方式设为不排序,实现相互排斥
654
- for (let key in this.orderFields) {
655
- if (key === field) {
656
- this.orderFields[key] = rule
657
- } else {
658
- this.orderFields[key] = 'no'
659
- }
660
- }
661
- // 如果新规则不排序,还原为默认排序
662
- if (rule === 'no') {
663
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
664
- } else {
665
- this.model.paramSource.orderitem = `'${field} ${rule}'`
666
- }
667
- this.search()
668
- },
669
- clear() {
670
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
671
- if (Array.isArray(this.$refs.paged.$refs.criteria.model [key])) {
672
- this.$refs.paged.$refs.criteria.model [key] = [];
673
- } else {
674
- this.$refs.paged.$refs.criteria.model[key] = null;
675
- }
676
- })
677
- this.model.f_plan_id = ''
678
- this.searchData.f_plan_id = ''
679
- this.model.f_check_plan = { f_plan_name: '', id: '' }
680
- this.$refs.paged.$refs.criteria.$refs.selector.clear()
681
- },
682
- search() {
683
- this.$refs.paged.$refs.criteria.search()
684
- },
685
- selfSearch(args) {
686
- if (args.model.f_department_name) {
687
- const matchedCheckers = this.checkerArr
688
- .filter(user => user.f_department_name === args.model.f_department_name)
689
- .map(user => `'${user.name}'`)
690
- if (matchedCheckers.length > 0) {
691
- args.condition += ` and f_checker_name in (${matchedCheckers.join()})`
692
- }
693
- }
694
- ////tag
695
- //args.condition+=" and f_check_type='民用'"
696
- if (args.model.f_entry && args.model.f_entry.length > 0) {
697
- let valuesele = `(`
698
- for (let i = 0; i < args.model.f_entry.length; i++) {
699
- valuesele += `'${args.model.f_entry[i]}',`
700
- }
701
- args.condition += ' and f_entry_status in ' + valuesele.substring(0, valuesele.length - 1) + ')'
702
- }
703
- this.model.search(args.condition, args.model, args.condValue)
704
- }
705
- },
706
-
707
- ready() {
708
- ////tag
709
- this.function = this.f
710
- ////tag
711
-
712
- let gen = select(this)
713
- //this.pianqu()
714
- this.Mreadibook(`('${this.$login.f.orgid}')`)
715
- co(gen)
716
- this.getDepartment()
717
- },
718
- watch: {
719
- 'model.f_no_checkplan'(val) {
720
- if (this.model.f_no_checkplan) {
721
- this.searchData.f_no_checkplan = val
722
- }
723
- if (this.model.f_no_checkplan == '有计划安检') {
724
-
725
- this.showChooser()
726
- }
727
- },
728
- 'model.condition'(val) {
729
- if (val) {
730
- this.searchData.condition = val
731
- }
732
-
733
- },
734
- /*'model.f_entry'(val) {
735
- this.searchData.f_entry_status = val
736
- },*/
737
- 'model.f_plan_id'(val) {
738
- if (val) {
739
- this.searchData.f_plan_id = val
740
- }
741
- },
742
- 'model.f_slice_area'(val) {
743
- },
744
- 'model.f_approved'(val) {
745
- if (val) {
746
- this.searchData.f_approved = val
747
- }
748
- },
749
- },
750
- computed: {
751
- excelStart () {
752
- return this.$login.r.includes('安检结果查看导出')
753
- }
754
- }
755
-
756
- }
757
- </script>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged v-ref:paged :model="model" @sort="sort">
5
+ <criteria v-ref:criteria class="search_area" partial='criteria' @condition-changed='$parent.selfSearch'>
6
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2">
9
+ <label class="font_normal_body">模糊查询</label>
10
+ <input v-model="model.f_userinfo" class="input_search"
11
+ condition="(f_userinfo_code like '%{}%' or f_user_name like '%{}%' or f_user_phone like '%{}%' or f_meternumber like '%{}%' or f_address like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%')"
12
+ placeholder="编号 名称 电话 表号 地址" style="width: 60%" type="text">
13
+ </div>
14
+ <div class="form-group col-sm-2">
15
+ <label class="font_normal_body">客户编号</label>
16
+ <input v-model="model.f_userinfo_code" class="input_search" condition="f_userinfo_code='{}'"
17
+ placeholder="客户编号" style="width: 60%" type="text">
18
+ </div>
19
+ <div class="form-group col-sm-2">
20
+ <label class="font_normal_body">客户名称</label>
21
+ <input v-model="model.f_user_name" class="input_search" condition="f_user_name like '%{}%'"
22
+ placeholder="客户名称" style="width: 60%" type="text">
23
+ </div>
24
+ <div class="form-group col-sm-2">
25
+ <label class="font_normal_body">客户电话</label>
26
+ <input v-model="model.f_user_phone" class="input_search"
27
+ condition=" ( f_user_phone like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%' )"
28
+ placeholder="客户电话" style="width: 60%" type="text">
29
+ </div>
30
+ <div class="form-group col-sm-2">
31
+ <label class="font_normal_body">客户表号</label>
32
+ <input v-model="model.f_meternumber" class="input_search" condition="f_meternumber like '%{}%'"
33
+ placeholder="客户表号" style="width: 60%" type="text">
34
+ </div>
35
+ <div class="form-group col-sm-2">
36
+ <label class="font_normal_body">详细地址</label>
37
+ <input v-model="model.f_address" class="input_search" condition="f_address like '%{}%'"
38
+ placeholder="详细地址" style="width: 60%" type="text">
39
+ </div>
40
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
41
+
42
+ <export-excel-safe
43
+ v-if="$parent.$parent.excelStart"
44
+ :choose-col="true" :data="$parent.$parent.searchData"
45
+ :field="$parent.$parent.excelHeaders" sql-name="查找安检单" sqlurl="rs/logic/SafeExportExcel"
46
+ template-name='安检结果明细'></export-excel-safe>
47
+ <!-- <export-excel :data="$parent.$parent.getCondition" -->
48
+ <!-- :field="$parent.$parent.getfield"-->
49
+ <!-- sqlurl="rs/logic/exportfile" sql-name="chargeQuery" template-name='收费查询导出'-->
50
+ <!-- :choose-col="true"></export-excel>-->
51
+ <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
52
+ <button v-if="$parent.$parent.audioshow" class="button_spacing button_search"
53
+ @click="$parent.$parent.showaudio()">隐藏
54
+ </button>
55
+
56
+ <button class="button_spacing button_search" @click="search()">查询</button>
57
+ <button class="button_spacing button_search" @click="$parent.$parent.clear()">清空</button>
58
+ <div
59
+ :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
60
+ class="button_spacing" style="float: right" @click="$parent.$parent.hidden()"></div>
61
+ </div>
62
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
63
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
64
+ <input v-model="model.f_residential_area" class="input_search"
65
+ condition="f_residential_area like '%{}%'" placeholder="小区" style="width: 60%" type="text">
66
+ </div>
67
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
68
+ <label class="font_normal_body">安检计划</label>
69
+ <input v-model="$parent.$parent.model.f_check_plan.f_plan_name" class="input_search" placeholder="安检计划"
70
+ readonly="readonly" style="width: 60%" type="text" @click="$parent.$parent.showChooser">
71
+ </div>
72
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
73
+ <label class="font_normal_body">开始时间</label>
74
+ <datepicker v-model="model.f_check_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
75
+ :show-rest-button="reset" :value.sync="model.f_check_start"
76
+ condition="f_offsite_time > ='{} 00:00:00'" placeholder='开始时间' style="width: 60%">
77
+ </datepicker>
78
+ <!-- <datepicker-->
79
+ <!-- class="select_list select"-->
80
+ <!-- :value.sync="model.f_check_start"-->
81
+ <!-- placeholder='开始时间' style="width: 60%"-->
82
+ <!-- :disabled-days-of-week="[]"-->
83
+ <!-- :format="'yyyy-MM-dd'"-->
84
+ <!-- :show-rest-button="reset"-->
85
+ <!-- v-model="model.f_check_start"-->
86
+ <!-- condition="f_offsite_time > ='{} 00:00:00'">-->
87
+ <!-- </datepicker>-->
88
+ </div>
89
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
90
+ <label class="font_normal_body">结束时间</label>
91
+ <datepicker v-model="model.f_check_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
92
+ :show-rest-button="reset" :value.sync="model.f_check_end" condition="f_offsite_time <= '{} 23:59:59'"
93
+ placeholder='结束时间' style="width: 60%">
94
+ </datepicker>
95
+ </div>
96
+
97
+
98
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
99
+
100
+ <label class="font_normal_body">安检类型</label>
101
+ <v-select v-model='model.f_safecheck_type' :options='$parent.$parent.safetype' :value-single="true"
102
+ :value.sync="model.f_safecheck_type" class="select_list select" close-on-select
103
+ condition="f_safecheck_type = '{}'" placeholder='安检类型' style="width: 60%"></v-select>
104
+ </div>
105
+
106
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
107
+
108
+ <label class="font_normal_body">客户类型</label>
109
+ <v-select v-model='model.f_check_type' :options='$parent.$parent.checktype' :value-single="true"
110
+ :value.sync="model.f_check_type" class="select_list select" close-on-select
111
+ condition="f_check_type = '{}'" placeholder='客户类型' style="width: 60%"></v-select>
112
+ </div>
113
+
114
+
115
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
116
+ <label class="font_normal_body">安检状态</label>
117
+ <v-select id="f_entry" v-model='model.f_entry' :multiple="true"
118
+ :options='$parent.$parent.f_entry_status' :value.sync="model.f_entry" class="select_list select"
119
+ condition="" placeholder='安检状态' style="width: 60%"></v-select>
120
+ </div>
121
+
122
+
123
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
124
+ <!-- <label class="font_normal_body">安&ensp;检&ensp;员</label>-->
125
+ <!-- <v-select :value.sync="model.f_checker_id" v-model='model.f_checker_id'-->
126
+ <!-- :value-single="true" style="width: 60%"-->
127
+ <!-- class="select_list select"-->
128
+ <!-- :options='$parent.$parent.checkersid' placeholder='安检员'-->
129
+ <!-- close-on-select-->
130
+ <!-- condition="f_checker_id = '{}'"></v-select>-->
131
+ <!-- </div>-->
132
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
133
+ <!-- <label class="font_normal_body" style="margin-right: 2px">公&emsp;&emsp;司</label>-->
134
+ <!-- <right-tree @re-res="$parent.$parent.getRes" :initresid="$parent.$parent.$login.f.orgid">-->
135
+ <!-- </right-tree>-->
136
+ <!-- </div>-->
137
+ <div v-show="$parent.$parent.criteriaShow" class="col-sm-4 form-group" style="margin: 0">
138
+ <role-selector-safe
139
+ v-ref:selector
140
+ v-model="model.f_checker_id" :value-close="false" :value-multiple="true"
141
+ :value.sync="model.f_checker_id" condition="f_checker_name in {}" role-lable="安&nbsp;检&nbsp;员&nbsp;"
142
+ role-name="安检员" @re-res="$parent.$parent.getRes">
143
+ </role-selector-safe>
144
+ </div>
145
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
146
+ <label class="font_normal_body">片&emsp;&emsp;区</label>
147
+ <v-select v-model="model.f_slice_area" :options='$parent.$parent.sliceArea' :value-single="true"
148
+ :value.sync="model.f_slice_area" class="select_list select" clear-button close-on-select
149
+ condition="f_slice_area='{}'" filer-key="name" placeholder='片区/管理站' style="width: 60%"
150
+ @change="$parent.$parent.getmeterbook(model.f_slice_area)">
151
+ </v-select>
152
+ </div>
153
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
154
+ <label class="font_normal_body">抄&ensp;表&ensp;册</label>
155
+ <v-select v-model="model.f_meter_book_num" :options='$parent.$parent.cbc' :value-single="true"
156
+ :value.sync="model.f_meter_book_num" class="select_list select" clear-button close-on-select
157
+ condition="f_meter_book_num={}" filer-key="name" placeholder='抄表册' style="width: 60%">
158
+ </v-select>
159
+ </div>
160
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
161
+ <label class="font_normal_body">省&ensp;市&ensp;区</label>
162
+ <v-select v-model="model.f_pcd" :options='$parent.$parent.pcds' :value-single="true"
163
+ :value.sync="model.f_pcd" class="select_list select" clear-button close-on-select
164
+ condition="f_pcd='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
165
+ </v-select>
166
+ </div>
167
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
168
+ <label class="font_normal_body">计划类型</label>
169
+ <v-select v-model="model.f_no_checkplan" :options='$parent.$parent.no_checkplans' :value-single="true"
170
+ :value.sync="model.f_no_checkplan" class="select_list select" clear-button close-on-select
171
+ condition="f_no_checkplan='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
172
+ </v-select>
173
+ </div>
174
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
175
+ <label class="font_normal_body">客户卡号</label>
176
+ <input v-model="model.f_card_id" class="input_search" condition="f_card_id like '%{}%'"
177
+ placeholder="客户卡号" style="width: 60%" type="text">
178
+ </div>
179
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
180
+ <label class="font_normal_body">部&emsp;&emsp;门</label>
181
+ <v-select v-model="model.f_department_name" :options='$parent.$parent.departmentArr'
182
+ :value-single="true" :value.sync="model.f_department_name" class="select_list select" clear-button
183
+ close-on-select filer-key="name" placeholder='请选择' style="width: 60%">
184
+ </v-select>
185
+ </div>
186
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
187
+ <label class="font_normal_body">客户评价</label>
188
+ <v-select v-model="model.f_client_evaluation" :options='$parent.$parent.evaluations'
189
+ :value-single="true" :value.sync="model.f_client_evaluation" class="select_list select" clear-button
190
+ close-on-select condition="f_client_evaluation='{}'" placeholder='客户评价' style="width: 60%">
191
+ </v-select>
192
+ </div>
193
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
194
+ <label class="font_normal_body">首次通气开始</label>
195
+ <datepicker v-model="model.f_gas_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
196
+ :show-rest-button="reset" :value.sync="model.f_gas_start" condition="f_uservent_date >='{} 00:00:00'"
197
+ placeholder='首次通气开始时间' style="width: 60%">
198
+ </datepicker>
199
+ </div>
200
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
201
+ <label class="font_normal_body">首次通气结束</label>
202
+ <datepicker v-model="model.f_gas_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
203
+ :show-rest-button="reset" :value.sync="model.f_gas_end" condition="f_uservent_date <= '{} 23:59:59'"
204
+ placeholder='首次通气结束时间' style="width: 60%">
205
+ </datepicker>
206
+ </div>
207
+ </div>
208
+ <modal v-ref:modal :show.sync="$parent.$parent.showModal" backdrop="false">
209
+ <div slot="modal-header" class="modal-header">
210
+ <h4 class="modal-title">
211
+ 选择计划
212
+ </h4>
213
+ </div>
214
+ <div slot="modal-body" class="modal-body">
215
+ <plan-chooser v-ref:chooser :f.sync="$parent.$parent.fun"></plan-chooser>
216
+ </div>
217
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
218
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
219
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
220
+ </div>
221
+ </modal>
222
+ </div>
223
+ </criteria>
224
+ <data-grid v-ref:grid :model="model" class="list_area table_sy" partial='list' style="overflow: hidden">
225
+ <template partial='head'>
226
+ <tr>
227
+ <th>
228
+ <nobr>客户编号</nobr>
229
+ </th>
230
+ <th>
231
+ <nobr>客户名称</nobr>
232
+ </th>
233
+ <th>
234
+ <nobr>客户表号</nobr>
235
+ </th>
236
+ <th>
237
+ <nobr>客户电话</nobr>
238
+ </th>
239
+ <th>
240
+ <nobr>客户类型</nobr>
241
+ </th>
242
+ <th>
243
+ <nobr>客户地址</nobr>
244
+ </th>
245
+ <th>
246
+ <nobr>首次通气时间</nobr>
247
+ </th>
248
+ <th>
249
+ <nobr>安检状态</nobr>
250
+ </th>
251
+ <th>
252
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
253
+ </th>
254
+ <th>
255
+ <nobr>安检员</nobr>
256
+ </th>
257
+ <th>
258
+ <nobr>气表型号</nobr>
259
+ </th>
260
+ <th>
261
+ <nobr>气表品牌</nobr>
262
+ </th>
263
+ <th>
264
+ <nobr>电子读数</nobr>
265
+ </th>
266
+ <th>
267
+ <nobr>机械读数</nobr>
268
+ </th>
269
+ <th>
270
+ <nobr>剩余气量</nobr>
271
+ </th>
272
+ <th>
273
+ <nobr>剩余金额</nobr>
274
+ </th>
275
+ <th>
276
+ <nobr>备注</nobr>
277
+ </th>
278
+ <th>
279
+ <nobr>客户评价</nobr>
280
+ </th>
281
+ <th>
282
+ <nobr>操作</nobr>
283
+ </th>
284
+ <th v-if="$parent.$parent.$parent.audioshow">
285
+ <nobr>录音</nobr>
286
+ </th>
287
+ </tr>
288
+ </template>
289
+ <template partial='body'>
290
+
291
+ <td style="text-align: center">{{ row.f_userinfo_code }}</td>
292
+ <td style="text-align: center">{{ row.f_user_name }}</td>
293
+ <td style="text-align: center">{{ row.f_meternumber }}</td>
294
+ <td style="text-align: center">{{ row.f_user_phone }}</td>
295
+ <td style="text-align: center">{{ row.f_check_type }}</td>
296
+
297
+ <td style="text-align: center">{{ row.f_address }}</td>
298
+ <td style="text-align: center">{{ row.f_uservent_date }}</td>
299
+ <td style="text-align: center">{{ row.f_entry_status }}</td>
300
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
301
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
302
+ <td style="text-align: center">{{ row.f_diaphgram_size }}</td>
303
+ <td style="text-align: center">{{ row.f_aliasname }}</td>
304
+ <td style="text-align: center">{{ row.f_electronic_read }}</td>
305
+ <td style="text-align: center">{{ row.f_mechanical_read }}</td>
306
+ <td style="text-align: center">{{ row.f_remaining_gas_volume }}</td>
307
+ <td style="text-align: center">{{ row.f_remaining_amount }}</td>
308
+ <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
309
+ <td style="text-align: center">{{ row.f_client_evaluation }}</td>
310
+ <td style="text-align: center">
311
+ <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
312
+
313
+
314
+ </td>
315
+ <td v-if="$parent.$parent.$parent.audioshow" style="text-align: center">
316
+ <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
317
+ <audio v-if="row.f_recording1_path" controls="controls">
318
+ <source :src="'rs/audio/file/' + row.f_recording1_path" type="audio/mpeg">
319
+ </audio>
320
+ <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
321
+ @click="$parent.$parent.$parent.print(row)">
322
+ 打印
323
+ </button>-->
324
+ </td>
325
+ </template>
326
+ </data-grid>
327
+ </criteria-paged>
328
+ <check-msg v-if="showcheckmsg" :data="checkInfo" :show="showcheckmsg"></check-msg>
329
+ </div>
330
+ </div>
331
+ </template>
332
+
333
+ <script>
334
+ import { PagedList } from 'vue-client'
335
+ import Vue from 'vue'
336
+ import co from 'co'
337
+ import AppData from '../../../stores/AppData'
338
+ import * as Util from '../../Util'
339
+ import getNowDate from "../../../utils/getNowDate";
340
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
341
+ import BenzAMRRecorder from 'benz-amr-recorder'
342
+
343
+ //获取json配置文件
344
+ let asyncReady = async function (self) {
345
+ // 获取配置信息
346
+ try {
347
+ let res = await Vue.resetget(`/phone/rs/vue`, { data: {} }, { resolveMsg: null, rejectMsg: null })
348
+ Vue.config = res.data
349
+ } catch (error) {
350
+ // 忽略704,文件找不到异常R
351
+ if (error.status !== 704) {
352
+ throw error
353
+ }
354
+ }
355
+ }
356
+
357
+ let select = function* (self) {
358
+ let http = new HttpResetClass()
359
+ let getGasman = yield http.load('POST', '/rs/search', {
360
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
361
+ userid: self.$login.f.id
362
+ }, { resolveMsg: null, rejectMsg: null })
363
+ ////tag
364
+ self.checkersid.push({ label: '全部', value: '' })
365
+ getGasman.data.forEach((checker) => {
366
+ self.checkersid.push({ label: checker.name, value: checker.id })
367
+ })
368
+ }
369
+
370
+ export default {
371
+ title: '安检结果查看',
372
+ data() {
373
+ let model = new PagedList('rs/sql/查找安检单', 20, {
374
+ f_plan_id: 'this.f_plan_id',
375
+ f_approved: 'this.f_approved',
376
+ f_entry_status: 'this.f_entry',
377
+ f_no_checkplan: 'this.f_no_checkplan',
378
+ f_filialeid: 'this.f_filialeid',
379
+ orderitem: "'f_offsite_time desc'"
380
+ })
381
+ model.f_check_type = ''
382
+ model.f_plan_id = ''
383
+ model.f_approved = ''
384
+ model.f_entry = ''
385
+ model.f_no_checkplan = ''
386
+ model.f_filialeid = `('${this.$login.f.orgid}')`
387
+ //model.f_check_type='民用'
388
+ // let searchData={
389
+ // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
390
+ // f_approved: this.model.f_approved,
391
+ // f_entry_status: this.model.f_entry,
392
+ // f_no_checkplan:this.model.f_no_checkplan[0],
393
+ // f_filialeid: this.model.f_filialeid,
394
+ // //orderitem: this.model.f_offsite_time,
395
+ // //condition:this.model.condition
396
+ // }
397
+ // model.f_subcompany = this.$login.f.f_fengongsi
398
+ return {
399
+ audioshow: false,
400
+ searchData: {
401
+ condition: "1=1",
402
+ orderitem: "f_offsite_time desc",
403
+ f_plan_id: "",
404
+ f_approved: '',
405
+ f_no_checkplan: '',
406
+ f_filialeid: `('${this.$login.f.orgid}')`
407
+ },
408
+ model: model,
409
+ excelHeaders: {
410
+ //searchData:searchData,
411
+ 'f_userinfo_code': '客户编号',
412
+ 'f_user_name': '客户姓名',
413
+ 'f_meternumber': '客户表号',
414
+ 'f_user_phone': '客户电话',
415
+ 'f_check_type': '客户类型',
416
+ 'f_residential_area': '小区',
417
+ 'f_address': '客户地址',
418
+ 'f_uservent_date': '首次通气时间',
419
+ 'f_entry_status': '安检状态',
420
+ 'f_offsite_time': '安检时间',
421
+ 'f_checker_name': '安检员',
422
+ 'f_diaphgram_size': '气表型号',
423
+ 'f_aliasname': '气表品牌',
424
+ 'f_electronic_read': '电子读数',
425
+ 'f_mechanical_read': '机械读数',
426
+ 'f_remaining_gas_volume': '剩余气量',
427
+ 'f_remaining_amount': '剩余金额',
428
+ 'f_safecheck_type': '安检类型',
429
+ 'f_repair_approved_note': '备注',
430
+ 'f_client_evaluation': '评价',
431
+ 'f_plan_name': '计划名称',
432
+ },
433
+ fun: this.$login.f,
434
+ pcds: [],
435
+ departmentArr: [],
436
+ checkerArr: [],
437
+ checkersid: [],
438
+ safetype: this.$appdata.getParam('安检类型') ? [{
439
+ label: '全部',
440
+ value: ''
441
+ }, ...this.$appdata.getParam('安检类型')] : [{ label: '全部', value: '' }],
442
+ criteriaShow: false,
443
+ checktype: this.$appdata.getParam('用户类型') ? [{
444
+ label: '全部',
445
+ value: ''
446
+ }, ...this.$appdata.getParam('用户类型')] : [{ label: '全部', value: '' }],
447
+ f_check_type: [{ label: '全部', value: '' }, { label: '民用', value: '民用' }, { label: '非民用', value: '非民用' }],
448
+ showModal: false,
449
+ no_checkplans: this.$appdata.getParam('计划类型') ? [{
450
+ label: '全部',
451
+ value: ''
452
+ }, ...this.$appdata.getParam('计划类型')] : [{ label: '全部', value: '' }],
453
+ f_approval_states: this.$appdata.getParam('安检单审核状态') ? [{
454
+ label: '全部',
455
+ value: ''
456
+ }, ...this.$appdata.getParam('安检单审核状态')] : [{ label: '全部', value: '' }],
457
+ f_entry_status: this.$appdata.getParam('安检状态') ? [{
458
+ label: '全部',
459
+ value: ''
460
+ }, ...this.$appdata.getParam('安检状态')] : [{ label: '全部', value: '' }],
461
+ f_checkplans: this.$appdata.getParam('有无计划') ? [{
462
+ label: '全部',
463
+ value: ''
464
+ }, ...this.$appdata.getParam('有无计划')] : [{ label: '全部', value: '' }],
465
+ showcheckmsg: false,
466
+ evaluations: [{ label: '全部', value: '' }, { label: '满意', value: '满意' }, {
467
+ label: '基本满意',
468
+ value: '基本满意'
469
+ }, { label: '不满意', value: '不满意' }],
470
+ checkInfo: {},
471
+ orderDefault: "'f_offsite_time'",
472
+ orderFields: {
473
+ f_offsite_time: 'no'
474
+ },
475
+ sliceArea: [],
476
+ cbc: []
477
+ }
478
+ },
479
+ methods: {
480
+ //获取省市区列表
481
+ getPcd(val) {
482
+ this.pcds = [{ label: '全部', value: '' }]
483
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
484
+ { data: { items: "*", tablename: "t_pcd", orderitem: "id", condition: `f_orgid in ${val}` } },
485
+ { resolveMsg: null, rejectMsg: null }).then((pcdlist) => {
486
+ pcdlist.data.forEach((result) => {
487
+ this.pcds.push({ label: result.f_pcd, value: result.f_pcd })
488
+ })
489
+ })
490
+ },
491
+ getDepartment() {
492
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
493
+ data: {
494
+ items: '*',
495
+ tablename: 't_user',
496
+ condition: `rolestr like '%安检员%' and state = '在职'`,
497
+ orderitem: '1'
498
+ }
499
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
500
+ this.checkerArr = res.data
501
+ this.departmentArr = []
502
+ let tempArr = []
503
+ res.data.forEach((user) => {
504
+ if (!tempArr.includes(user.f_department_name)) {
505
+ tempArr.push(user.f_department_name)
506
+ this.departmentArr.push({ label: user.f_department_name, value: user.f_department_name })
507
+ }
508
+ })
509
+ })
510
+ },
511
+ showaudio() {
512
+ //tag
513
+ this.audioshow = !this.audioshow
514
+ //tag
515
+ },
516
+ getmeterbook(val) {
517
+ this.cbc = []
518
+ this.cbc.push({
519
+ label: '全部',
520
+ value: ''
521
+ })
522
+ if (val == '') {
523
+
524
+ this.cbcs.forEach(res => {
525
+ this.cbc.push({
526
+ label: res.f_book_name,
527
+ value: res.id
528
+ })
529
+ })
530
+ } else {
531
+ this.cbcs.forEach(res => {
532
+ if (res.f_book_slice_area == val) {
533
+ this.cbc.push({
534
+ label: res.f_book_name,
535
+ value: res.id
536
+ })
537
+ }
538
+ })
539
+ }
540
+ },
541
+ Mreadibook(val) {
542
+ ////tag
543
+ ////tag
544
+ if (val) {
545
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
546
+ data: {
547
+ items: 'name',
548
+ tablename: 't_zone',
549
+ condition: `parentid in ${val}`,
550
+ orderitem: 'id'
551
+ }
552
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
553
+ this.sliceArea = []
554
+ this.sliceArea.push({
555
+ label: '全部',
556
+ value: ''
557
+ })
558
+ res.data.forEach(ress => {
559
+ this.sliceArea.push({
560
+ label: ress.name,
561
+ value: ress.name
562
+ })
563
+ })
564
+
565
+ })
566
+ }
567
+ },
568
+ getAllMeterBook(val) {
569
+ ////tag
570
+ ////tag
571
+ this.cbcs = []
572
+ if (val) {
573
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
574
+ data: {
575
+ items: 'f_book_name,f_book_slice_area,id',
576
+ tablename: 't_meter_book',
577
+ condition: `f_filiale_id in ${val}`,
578
+ orderitem: 'id'
579
+ }
580
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
581
+ res.data.forEach(ress => {
582
+ this.cbcs.push({
583
+ id: ress.id,
584
+ f_book_name: ress.f_book_name,
585
+ f_book_slice_area: ress.f_book_slice_area
586
+ })
587
+ })
588
+ this.cbc = []
589
+ this.cbc.push({
590
+ label: '全部',
591
+ value: ''
592
+ })
593
+ this.cbcs.forEach(res => {
594
+ this.cbc.push({
595
+ label: res.f_book_name,
596
+ value: res.id
597
+ })
598
+ })
599
+ })
600
+ }
601
+ },
602
+ getRes(obj) {
603
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
604
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
605
+ this.Mreadibook(this.model.f_filialeid)
606
+ this.getAllMeterBook(this.model.f_filialeid)
607
+ this.getPcd(this.model.f_filialeid)
608
+ //this.$refs.paged.$refs.criteria.search()
609
+ },
610
+
611
+ change(row) {
612
+ // Vue.$login = {jwt: row.f_checker_id}
613
+ asyncReady(this).then(() => {
614
+ ////tag)
615
+ row.f_upload_state = '已传'
616
+ this.$goto('new-check-paper', { f_plan_id: row.f_check_plan_id, item: row, role: 'view' }, 'self')
617
+ }).catch(
618
+ (respanse) => {
619
+ alert('获取配置文件失败')
620
+ })
621
+ },
622
+ readConfig() {
623
+ let gen = asyncReady(this)
624
+ return co(gen)
625
+ },
626
+ showChooser() {
627
+ this.showModal = true
628
+ },
629
+ hidden() {
630
+ this.criteriaShow = !this.criteriaShow
631
+ },
632
+ refresh() {
633
+ this.$refs.paged.$refs.criteria.search()
634
+ },
635
+ ok() {
636
+ this.showModal = false
637
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
638
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
639
+ this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
640
+ }
641
+ },
642
+ cancel() {
643
+ this.showModal = false
644
+ this.model.f_check_plan = { f_plan_name: '', id: '' }
645
+ this.model.f_plan_id = ''
646
+ },
647
+ print(row) {
648
+ this.showcheckmsg = true
649
+ this.checkInfo = row
650
+ },
651
+
652
+ sort(field, rule) {
653
+ // 将所有排序方式设为不排序,实现相互排斥
654
+ for (let key in this.orderFields) {
655
+ if (key === field) {
656
+ this.orderFields[key] = rule
657
+ } else {
658
+ this.orderFields[key] = 'no'
659
+ }
660
+ }
661
+ // 如果新规则不排序,还原为默认排序
662
+ if (rule === 'no') {
663
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
664
+ } else {
665
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
666
+ }
667
+ this.search()
668
+ },
669
+ clear() {
670
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
671
+ if (Array.isArray(this.$refs.paged.$refs.criteria.model [key])) {
672
+ this.$refs.paged.$refs.criteria.model [key] = [];
673
+ } else {
674
+ this.$refs.paged.$refs.criteria.model[key] = null;
675
+ }
676
+ })
677
+ this.model.f_plan_id = ''
678
+ this.searchData.f_plan_id = ''
679
+ this.model.f_check_plan = { f_plan_name: '', id: '' }
680
+ this.$refs.paged.$refs.criteria.$refs.selector.clear()
681
+ },
682
+ search() {
683
+ this.$refs.paged.$refs.criteria.search()
684
+ },
685
+ selfSearch(args) {
686
+ if (args.model.f_department_name) {
687
+ const matchedCheckers = this.checkerArr
688
+ .filter(user => user.f_department_name === args.model.f_department_name)
689
+ .map(user => `'${user.name}'`)
690
+ if (matchedCheckers.length > 0) {
691
+ args.condition += ` and f_checker_name in (${matchedCheckers.join()})`
692
+ }
693
+ }
694
+ ////tag
695
+ //args.condition+=" and f_check_type='民用'"
696
+ if (args.model.f_entry && args.model.f_entry.length > 0) {
697
+ let valuesele = `(`
698
+ for (let i = 0; i < args.model.f_entry.length; i++) {
699
+ valuesele += `'${args.model.f_entry[i]}',`
700
+ }
701
+ args.condition += ' and f_entry_status in ' + valuesele.substring(0, valuesele.length - 1) + ')'
702
+ }
703
+ this.model.search(args.condition, args.model, args.condValue)
704
+ }
705
+ },
706
+
707
+ ready() {
708
+ ////tag
709
+ this.function = this.f
710
+ ////tag
711
+
712
+ let gen = select(this)
713
+ //this.pianqu()
714
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
715
+ co(gen)
716
+ this.getDepartment()
717
+ },
718
+ watch: {
719
+ 'model.f_no_checkplan'(val) {
720
+ if (this.model.f_no_checkplan) {
721
+ this.searchData.f_no_checkplan = val
722
+ }
723
+ if (this.model.f_no_checkplan == '有计划安检') {
724
+
725
+ this.showChooser()
726
+ }
727
+ },
728
+ 'model.condition'(val) {
729
+ if (val) {
730
+ this.searchData.condition = val
731
+ }
732
+
733
+ },
734
+ /*'model.f_entry'(val) {
735
+ this.searchData.f_entry_status = val
736
+ },*/
737
+ 'model.f_plan_id'(val) {
738
+ if (val) {
739
+ this.searchData.f_plan_id = val
740
+ }
741
+ },
742
+ 'model.f_slice_area'(val) {
743
+ },
744
+ 'model.f_approved'(val) {
745
+ if (val) {
746
+ this.searchData.f_approved = val
747
+ }
748
+ },
749
+ },
750
+ computed: {
751
+ excelStart () {
752
+ return this.$login.r.includes('安检结果查看导出')
753
+ }
754
+ }
755
+
756
+ }
757
+ </script>