telephone-clients 3.0.104-33 → 3.0.104-34

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telephone-clients",
3
- "version": "3.0.104-33",
3
+ "version": "3.0.104-34",
4
4
  "description": "呼叫模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -652,6 +652,8 @@
652
652
  Util.afterCallBz(this.$login.f.id, this.$login.f.name)
653
653
  }
654
654
  this.saveing = false
655
+ }).catch(error=>{
656
+ this.saveing = false
655
657
  })
656
658
  },
657
659
  address() {
@@ -0,0 +1,351 @@
1
+ <template>
2
+ <div class="basic-main" style="height: 100%">
3
+ <!-- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">-->
4
+ <!-- <div @click="back()">-->
5
+ <!-- <img src="../../assets/back.png" style="margin: 0px"/>-->
6
+ <!-- </div>-->
7
+ <!-- </div>-->
8
+ <work-busy :is-busy="loading"></work-busy>
9
+ <div class="container-fluid" style="overflow: scroll">
10
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
11
+ <div style="width: 100%;margin: auto">
12
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px">
13
+ <thead>
14
+ <tr>
15
+ <th colspan="6" style="text-align: center;background-color: #dfedfb;color:black;">客户工单信息</th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <tr>
20
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
21
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
22
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
23
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_userinfo_code }}</td>
24
+ </tr>
25
+ <tr>
26
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细地址:</td>
27
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ baseuserinfo.f_address }}</td>
28
+ </tr>
29
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
30
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">故障明细:</td>
31
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ changefailure(serviceall.f_new_failure) }}</td>
32
+ </tr>
33
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
34
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">{{usermeter.f_collection_type=='按金额'?'累购金额:':'累购气量:'}}</td>
35
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_collection_type=='按金额'?usermeter.f_total_fee:usermeter.f_total_gas }}</td>
36
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">左右表:</td>
37
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ usermeter.f_aroundmeter }}</td>
38
+ </tr>
39
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
40
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">气表品牌:</td>
41
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_meter_brand }}</td>
42
+ </tr>
43
+ <tr v-if="serviceall.f_workorder_type=='报修单'">
44
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">气表型号:</td>
45
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ usermeter.f_meter_style }}</td>
46
+ </tr>
47
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
48
+
49
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户姓名:</td>
50
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_name }}</td>
51
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用气性质:</td>
52
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_gasproperties }}</td>
53
+ </tr>
54
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
55
+
56
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">联系电话:</td>
57
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_user_phone }}</td>
58
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">住户类型:</td>
59
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ baseuserinfo.f_house_type }}</td>
60
+ </tr>
61
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
62
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">身份证号:</td>
63
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_shenfenzheng}}</td>
64
+ </tr>
65
+ <tr v-if="serviceall.f_workorder_type=='置换通气单'">
66
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">用户地址:</td>
67
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{baseuserinfo.f_address}}</td>
68
+ </tr>
69
+ <!-- <tr>-->
70
+
71
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">派单时间:</td>-->
72
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_created_date }}</td>-->
73
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">完成时间:</td>-->
74
+ <!-- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ service.f_repair_date }}</td>-->
75
+ <!-- </tr>-->
76
+ <tr>
77
+
78
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
79
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_come }}</td>
80
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
81
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ serviceall.f_date_leave }}</td>
82
+ </tr>
83
+ <tr>
84
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">备注:</td>
85
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ serviceall.f_remarks }}</td>
86
+ </tr>
87
+ </tbody>
88
+ </table>
89
+ <table class="table table-striped table-bordered">
90
+ <thead>
91
+ <tr>
92
+ <th style="text-align: center;background-color: #dfedfb;color:black;">燃气设施全景</th>
93
+ </tr>
94
+ </thead>
95
+ <tbody>
96
+ <tr>
97
+ <td style="margin: auto;text-align: center">
98
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
99
+ <div class="img" v-for="img in serviceall.imgs">
100
+ <img-self :src="getimg(img.android_file)" style="float: left" width="150"
101
+ height="200"></img-self>
102
+ </div>
103
+ </div>
104
+ </td>
105
+ </tr>
106
+ </tbody>
107
+ </table>
108
+ <table class="table table-striped table-bordered">
109
+ <thead>
110
+ <tr>
111
+ <th style="text-align: center;background-color: #dfedfb;color:black;">用户签名照片</th>
112
+ </tr>
113
+ </thead>
114
+ <tr>
115
+ <td style="margin: auto;text-align: center">
116
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
117
+ <div class="img" style="float: none">
118
+ <img-self :src="getimg(serviceall.f_signname)" width="200" height="200"></img-self>
119
+ </div>
120
+ </div>
121
+ </td>
122
+ </tr>
123
+ </table>
124
+ </div>
125
+ </div>
126
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
127
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
128
+ <div style="width: 95%;margin-left: 5%">
129
+ <table class="table table-striped table-bordered" v-for=" serviceone in servicerepair">
130
+ <thead>
131
+ <tr>
132
+ <th style="text-align: center;background-color: #dfedfb;color:black;">{{ serviceone.f_type }}</th>
133
+ </tr>
134
+ </thead>
135
+ <tbody>
136
+ <tr v-for="detail in serviceone.details">
137
+ <td>
138
+ <div class="row">
139
+ <div class="col-md-8" style="text-align: center;">{{ detail.f_project }}</div>
140
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type!='picture'">
141
+ {{ detail.f_content?detail.f_content:'无' }}
142
+ </div>
143
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&ispicture(serviceone.imgs,detail.f_project)">
144
+ <button-link style="color: black" type="button" class="btn btn-link"
145
+ @click="showpath(serviceone.imgs,detail.f_project)">查看照片
146
+ </button-link>
147
+ </div>
148
+ <div class="col-md-4" style="text-align: center;" v-if="detail.type=='picture'&&!ispicture(serviceone.imgs,detail.f_project)">
149
+ 无照片
150
+ </div>
151
+ </div>
152
+ </td>
153
+
154
+
155
+ </tr>
156
+ </tbody>
157
+ </table>
158
+
159
+
160
+ </div>
161
+
162
+ </div>
163
+ </div>
164
+ </div>
165
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
166
+ <header slot="modal-header" class="modal-header">
167
+ {{ picturename }}
168
+ </header>
169
+ <article slot="modal-body" class="modal-body">
170
+ <div class="from-group">
171
+ <div class="row">
172
+ <div class="col-md-6" v-for="item in showimgs">
173
+ <img-self :src="getimg(item)" width="300" height="400"></img-self>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </article>
178
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
179
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
180
+ </footer>
181
+ </modal>
182
+ </template>
183
+
184
+ <script>
185
+ import {HttpResetClass} from 'vue-client'
186
+
187
+ export default {
188
+ title: '工单详情',
189
+ props: ['curActivity', 'service'],
190
+ data () {
191
+ return {
192
+ imgshow:false,
193
+ picturename:'',
194
+ showimg:'',
195
+ baseuserinfo: {},
196
+ showimgs:[],
197
+ allimgs: [],
198
+ servicerepair: [],
199
+ serviceall: {},
200
+ usermeter:{},
201
+ loading: false
202
+ }
203
+ },
204
+ ready () {
205
+ this.loading=true
206
+ ////tag
207
+ ////tag)
208
+ let http = new HttpResetClass()
209
+ ////tag
210
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/path/serviceWork`, {data: {id: this.curActivity.id}}, {
211
+ resolveMsg: null,
212
+ rejectMsg: null
213
+ }).then(res => {
214
+ ////tag)
215
+ for (let i = 0; i < res.data.length; i++) {
216
+ if (res.data[i].id == this.curActivity.id) {
217
+ this.serviceall = res.data[i]
218
+ this.baseuserinfo = res.data[i].baseuserinfo
219
+ this.servicerepair = res.data[i].servicerepair
220
+ this.allimgs = res.data[i].imgs
221
+ http.load('post',`${this.$androidUtil.getProxyUrl()}/rs/sql/getBaseMeterInfo`,{data:{f_userinfo_id:this.baseuserinfo.f_userinfo_id}},{
222
+ resolveMsg: null,
223
+ rejectMsg: null
224
+ }).then(res=>{
225
+ this.usermeter=res.data[0]
226
+ })
227
+ }
228
+ }
229
+
230
+ ////tag)
231
+ ////tag)
232
+ ////tag)
233
+ ////tag)
234
+ this.loading=false
235
+ })
236
+ },
237
+ methods: {
238
+ getimg(val){
239
+ console.log(`${this.$androidUtil.getProxyUrl()}/rs/image/file/${val}`)
240
+
241
+ return `${this.$androidUtil.getProxyUrl()}/rs/image/file/${val}`
242
+ },
243
+ changefailure(val){
244
+ let failureall=''
245
+ // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
246
+ let failure = JSON.parse(val)
247
+ for (let i = 0; i <failure.length; i++) {
248
+ if (failure[i].failurecase.length>0){
249
+ failureall+=failure[i].f_failure_type+":"
250
+ for (let j = 0; j < failure[i].failurecase.length; j++) {
251
+ failureall+=failure[i].failurecase[j]
252
+ if (j+1!=failure[i].failurecase.length){
253
+ failureall+=","
254
+ }
255
+ }
256
+
257
+ }else{
258
+ failureall+=failure[i].f_failure_type
259
+ }
260
+ if (i+1!=failure.length){
261
+ failureall+=';'
262
+ }
263
+ }
264
+ return failureall
265
+ },
266
+ imgclose(){
267
+ this.imgshow=false
268
+ },
269
+ ispicture(imgs,imgid){
270
+ let imgstr=''
271
+ let imgpath=''
272
+ for (let i = 0; i < imgs.length; i++) {
273
+ if (imgs[i].imgpath==imgid){
274
+ imgstr=imgs[i].android_file
275
+ imgpath=imgs[i].imgpath
276
+ }
277
+ }
278
+ ////tag
279
+ ////tag
280
+ if (imgstr){
281
+ return true
282
+ }
283
+ return false
284
+ },
285
+ showpath (imgs,imgid) {
286
+ const img = imgs.filter(res => res.imgpath === imgid).map(res => res.android_file)
287
+ if (img.length > 0) {
288
+ this.showimgs = img
289
+ this.picturename = imgid
290
+ this.imgshow = true
291
+ }
292
+ },
293
+ back () {
294
+ this.$back()
295
+ }
296
+ }
297
+ }
298
+ </script>
299
+
300
+ <style scoped>
301
+ .img {
302
+ border: 1px solid #9773ed;
303
+ width: auto;
304
+ height: auto;
305
+ float: left;
306
+ text-align: center;
307
+ margin: 6px;
308
+ }
309
+
310
+ img {
311
+ margin: 6px;
312
+ }
313
+
314
+
315
+ .container {
316
+ margin: 10px auto;
317
+ width: 80%;
318
+ height: auto;
319
+ }
320
+
321
+ div::-webkit-scrollbar {
322
+ width: 0 !important;
323
+ height: 0 !important;
324
+ }
325
+
326
+ div {
327
+ -ms-overflow-style: none;
328
+ overflow: -moz-scrollbars-none;
329
+ }
330
+
331
+ .divmask {
332
+ pointer-events: none;
333
+ }
334
+
335
+ .app-header {
336
+ border-radius: 50%;
337
+ background: rgba(73, 158, 223, 0.4);
338
+ color: #FFF;
339
+ padding: 20px;
340
+ text-align: center;
341
+ font-size: 1.2em;
342
+ z-index: 10;
343
+ opacity: 0.5;
344
+ bottom: 50px;
345
+ margin-top: -20px;
346
+ position: absolute;
347
+ top: 10%;
348
+ right: 2%;
349
+ height: 8%;
350
+ }
351
+ </style>
@@ -0,0 +1,306 @@
1
+ <style scoped>
2
+ .bg {
3
+ background-color: blue;
4
+ height: 1px;
5
+ border: 0;
6
+ }
7
+ .app-row {
8
+ background-color: white;
9
+ padding: 10px 10px 0 10px;
10
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
11
+ }
12
+ .search_input {
13
+ border: 0;
14
+ outline: none;
15
+ }
16
+ .font{
17
+ font: 15px PingFang-SC-Medium;
18
+ color: #666666;
19
+ }
20
+ .input-font{
21
+ font: 15px PingFang-SC-Medium;
22
+ color: #333333;
23
+ }
24
+ .btn-font{
25
+ font:600 16px PingFang-SC-Bold;
26
+ color: #499EDF;
27
+ }
28
+ .btn-color{
29
+ background-color: #FFFFFF;
30
+ border-radius: 10px ;
31
+ border: 1px solid #499EDF;
32
+ }
33
+ .app-text {
34
+ font-size: 12px;
35
+ }
36
+ .panel-self{
37
+ border-radius: 10px;
38
+ border:1px solid #499EDF;
39
+ background-color: #F8F8F8;
40
+ }
41
+ .yybtn-color{
42
+ background-color:#499edf;
43
+ border-radius: 4px ;
44
+ border: 1px solid #499EDF;
45
+ color: #FFFFFF;
46
+ font: 14px PingFang-SC-Bold;
47
+ }
48
+ .qxbtn-color{
49
+ background-color: #FFFFFF;
50
+ border-radius: 4px ;
51
+ color: #499edf;
52
+ font: 14px PingFang-SC-Bold;
53
+ border: 1px solid #499EDF;
54
+ }
55
+
56
+ .button_shrink_top {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_top.png")}
57
+ .button_shrink_bottom {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_bottom.png")}
58
+ .button_shrink_left {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_left.png")}
59
+ .button_shrink_right {width: 35px; height: 35px; background-size:100%;background-image: url("../../../static/newStyle/stretch_right.png")}
60
+ </style>
61
+
62
+ <template>
63
+ <div style="height: auto;width: 100%">
64
+ <criteria-paged :model="model" v-ref:paged>
65
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
66
+ <div partial>
67
+ <form>
68
+ <div class="row app-row">
69
+ <div class="col-xs-4">
70
+ <img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
71
+ <label class="font text-left">用户姓名:</label>
72
+ </div>
73
+ <div class="col-xs-8" >
74
+ <input class="search_input input-font" v-model=model.f_user_name condition="f_user_name like '%{}%'" />
75
+ </div>
76
+ </div>
77
+ <div class="row app-row">
78
+ <div class="col-xs-4">
79
+ <img src="../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
80
+ <label for="f_userinfo_code" class="font text-left">用户编号:</label>
81
+ </div>
82
+ <div class="col-xs-8" >
83
+ <input id="f_userinfo_code" class="search_input input-font"
84
+ v-model=model.f_userinfo_code condition="f_userinfo_code = '%{}%'" />
85
+ </div>
86
+ </div>
87
+ <div class="row app-row" >
88
+ <div class="col-xs-4">
89
+ <img src="../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
90
+ <label class="font text-left">用户地址:</label>
91
+ </div>
92
+ <div class="col-xs-8" >
93
+ <input class="search_input input-font"
94
+ v-model=model.f_address condition="f_address like '%{}%'" />
95
+ </div>
96
+ </div>
97
+ <div class="row app-row">
98
+ <div class="col-xs-4">
99
+ <img src="../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
100
+ <label for="f_state" class="font text-left">起始时间:</label>
101
+ </div>
102
+ <datepicker id="f_start_date"
103
+ placeholder= '起始时间'
104
+ :value.sync="model.f_start_date"
105
+ :disabled-days-of-Week="[]"
106
+ v-model="model.f_start_date"
107
+ class="input-font"
108
+ :width="'60%'"
109
+ condition="f_date > '{}'"
110
+ :format="'yyyy-MM-dd 00:00:00'"
111
+ :show-reset-button="reset">
112
+ </datepicker>
113
+ </div>
114
+ <div class="row app-row">
115
+ <div class="col-xs-4">
116
+ <img src="../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
117
+ <label for="f_state" class="font text-left">结束时间:</label>
118
+ </div>
119
+ <datepicker id="f_end_date"
120
+ placeholder= '结束时间'
121
+ :value.sync="model.f_end_date"
122
+ :disabled-days-of-Week="[]"
123
+ v-model="model.f_end_date"
124
+ class="input-font"
125
+ style="width:60%"
126
+ condition="f_date < '{}'"
127
+ :format="'yyyy-MM-dd 23:59:00'"
128
+ :show-reset-button="reset">
129
+ </datepicker>
130
+ </div>
131
+ <div class="row app-row">
132
+ <div class="col-xs-4">
133
+ <img src="../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
134
+ <label for="safechecktype" class="font text-left">报修类型:</label>
135
+ </div>
136
+ <v-select id="safechecktype" :value.sync="model.f_repairtype" class="input-font"
137
+ :width="'60%'"
138
+ :options='$parent.$parent.repairtypes' placeholder='请选择报修类型'
139
+ v-model="model.f_repairtype" condition="f_repairtype ='{}'" close-on-select clear-button></v-select>
140
+ </div>
141
+ <div class="row app-row">
142
+ <div class="col-xs-4">
143
+ <img src="../../assets/小区蓝色.png" style="width: 20px;margin-bottom: 5px" alt="">
144
+ <label for="checker" class="font text-left">维修员:</label>
145
+ </div>
146
+ <v-select id="checker" :value.sync="model.f_order_man" class="input-font"
147
+ :width="'60%'"
148
+ :options='$parent.$parent.checkerOptions' placeholder='请选择维修员'
149
+ :value-single="true"
150
+ condition="f_order_man ='{}'"
151
+ v-model="model.f_order_man" close-on-select clear-button></v-select>
152
+ </div>
153
+
154
+ <div class="row text-center" style="margin-top: 20px;">
155
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 25%;" @click="search(),$dispatch('search')">查询</button>
156
+ </div>
157
+
158
+ <div class="col-sm-12">
159
+
160
+ </div>
161
+
162
+ <div style="height:30px;"></div>
163
+ </form>
164
+ </div>
165
+ </criteria>
166
+ <list :model="model" partial='list'>
167
+ <div partial>
168
+ <div class="auto app-text" style="margin-top: 5px;" @click="$parent.$parent.$parent.gotocheckpaper(row)">
169
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
170
+ <div class="panel-body panel-self">
171
+
172
+ <div class="col-xs-6">
173
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户编号:</b></p>
174
+ <p class="panel-title col-xs-5 text-left input-font" style="width: 74%">{{ row.f_userinfo_code }}</p>
175
+ </div>
176
+ <div class="col-xs-6">
177
+ <p class="panel-title col-xs-5 text-left font"><b>报修类型:</b></p>
178
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_repairtype }}</p>
179
+ </div>
180
+ <div class="col-xs-12">
181
+ <p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户名称:</b></p>
182
+ <p class="panel-title col-xs-7 text-left input-font" style="width: 79%">{{ row.f_user_name }}</p>
183
+ </div>
184
+ <div class="col-xs-12">
185
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>来电电话:</b></p>
186
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_phone }}
187
+ </p>
188
+ </div>
189
+ <div class="col-xs-12">
190
+ <p class="panel-title text-left font" style="width: 23%;float: left"><b>联系电话:</b></p>
191
+ <p class="panel-title text-left input-font" style="width: 77%">{{ row.f_contact_phone }}
192
+ </p>
193
+ </div>
194
+ <div class="col-xs-12">
195
+ <p class="panel-title text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
196
+ <p class="panel-title text-left input-font" style="width: 79%">{{ row.f_address }}</p>
197
+ </div>
198
+ <div class="col-xs-6">
199
+ <p class="panel-title col-xs-5 text-left font"><b>工单编号:</b></p>
200
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_service_id }}
201
+ </p>
202
+ </div>
203
+ <div class="col-xs-12">
204
+ <p class="panel-title col-xs-5 text-left font"><b>派发时间:</b></p>
205
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_created_date }}</p>
206
+ </div>
207
+ <div class="col-xs-12">
208
+ <p class="panel-title col-xs-5 text-left font"><b>上传时间:</b></p>
209
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_date }}</p>
210
+ </div>
211
+ <div class="col-xs-12">
212
+ <p class="panel-title col-xs-5 text-left font"><b>备注信息:</b></p>
213
+ <p class="panel-title col-xs-7 text-left input-font">{{ row.f_remarks }}</p>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </div>
219
+ </list>
220
+ </criteria-paged>
221
+ </div>
222
+
223
+ </template>
224
+
225
+ <script>
226
+ import Vue from 'vue'
227
+ import { PagedList,HttpResetClass } from 'vue-client'
228
+ import * as Util from '../Util'
229
+
230
+ export default {
231
+ title: '工单在线查询',
232
+ data() {
233
+ return {
234
+ f_filialeids:'',
235
+ model:new PagedList( `${this.$androidUtil.getProxyUrl()}/rs/sql/ServiceOnlineAndroid`,10),
236
+ criteriaShow: false,
237
+ condition:'',
238
+ f_preset_dt : Util.to3339TimeString(),
239
+ checkerOptions: [],
240
+ repairtypes: this.$appdata.getParam('报修类型')
241
+ }
242
+ },
243
+ ready(){
244
+ this.getCheckers()
245
+ this.$refs.paged.$refs.cri.model.f_start_date=`${Util.toStandardDateString()} 00:00:00`
246
+ this.$refs.paged.$refs.cri.model.f_order_man = Vue.user.name
247
+ this.selfSearch()
248
+ },
249
+ methods: {
250
+ gotocheckpaper(row){
251
+ let pardate = {
252
+ _this:this,
253
+ title:'维修信息',
254
+ safe:false
255
+ }
256
+ let curActivity = {
257
+ id:row.id
258
+ }
259
+ this.$dispatch('gotoson',pardate)
260
+ this.$goto('repair-paper-andorid', {service:row,curActivity: curActivity}, 'self')
261
+ },
262
+ async getCheckers() {
263
+ console.log('Vue.user=', JSON.stringify(Vue.user))
264
+ let res = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {
265
+ data: {
266
+ source: `root.getResourceById($${Vue.user.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1)`,
267
+ userid: Vue.user.id + ''
268
+ }
269
+ })
270
+ console.log('res=', JSON.stringify(res))
271
+ console.log('res.data.length=', res.data.length)
272
+ const a = []
273
+ const checkerOptions = []
274
+ for (let item of res.data) {
275
+ if (a.indexOf(item.id) < 0){
276
+ checkerOptions.push({
277
+ label: item.name,
278
+ value: item.name
279
+ })
280
+ a.push(item.id)
281
+ }
282
+ }
283
+ this.checkerOptions = checkerOptions
284
+ console.log('this.checkerOptions=', JSON.stringify(this.checkerOptions))
285
+ },
286
+ search (args) {
287
+ args.condition += ` and f_date is not null and f_filiale_id = '${Vue.user.orgid}'`
288
+ return this.model.search(args.condition, args.model)
289
+ },
290
+ selfSearch () {
291
+ let condition = '1=1'
292
+ if(this.$refs.paged.$refs.cri.model.f_order_man){
293
+ condition += ` and f_order_man = '${this.$refs.paged.$refs.cri.model.f_order_man}'`
294
+ }
295
+ if(this.$refs.paged.$refs.cri.model.f_start_date){
296
+ condition += ` and f_date > '${this.$refs.paged.$refs.cri.model.f_start_date}'`
297
+ }
298
+ condition += ` and f_date is not null and f_filiale_id = '${Vue.user.orgid}'`
299
+ this.model.search(condition)
300
+ },
301
+ hidden() {
302
+ this.criteriaShow = !this.criteriaShow
303
+ }
304
+ }
305
+ }
306
+ </script>