telephone-clients 3.0.97 → 3.0.98-2
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 +1 -1
- package/src/components/android/AddMyTask.vue +75 -33
- package/src/filiale/shexian/android/RepairFirstV.vue +1 -11
- package/src/filiale/shexian/android/RepairInfo.vue +171 -0
- package/src/filiale/shexian/android/RepairOrderV.vue +10 -8
- package/src/filiale/shexian/telephoneAndroid.js +9 -3
package/package.json
CHANGED
|
@@ -103,13 +103,13 @@
|
|
|
103
103
|
</div>
|
|
104
104
|
<div class="col-xs-8" >
|
|
105
105
|
<v-select
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
:value.sync="model.f_repairtype"
|
|
107
|
+
v-model="model.f_repairtype"
|
|
108
|
+
:options='$parent.$parent.repairTypeOptions'
|
|
109
|
+
placeholder='请选择'
|
|
110
|
+
close-on-select
|
|
111
|
+
:value-single="true"
|
|
112
|
+
condition="f_repairtype like '%{}%'"
|
|
113
113
|
></v-select>
|
|
114
114
|
</div>
|
|
115
115
|
</div>
|
|
@@ -162,6 +162,13 @@
|
|
|
162
162
|
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>用户地址:</b></p>
|
|
163
163
|
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_address }} {{row.f_contact_name}} </p>
|
|
164
164
|
</div>
|
|
165
|
+
<div class="col-xs-12">
|
|
166
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>联系电话:</b></p>
|
|
167
|
+
<p class="panel-title col-xs-7 text-left input-font">{{ row.f_contact_phone || '无' }}
|
|
168
|
+
<img src="../../assets/telphonesend.png" style="width: 12px;"
|
|
169
|
+
@click.stop.prevent='$parent.$parent.$parent.makeAPhoneCall(row.f_contact_phone)'>
|
|
170
|
+
</p>
|
|
171
|
+
</div>
|
|
165
172
|
<div class="col-xs-6">
|
|
166
173
|
<p class="panel-title col-xs-5 text-left font" style="float: left"><b>派单员:</b></p>
|
|
167
174
|
<p class="panel-title col-xs-7 text-left input-font">{{row.f_attendant}} </p>
|
|
@@ -170,6 +177,10 @@
|
|
|
170
177
|
<p class="panel-title col-xs-5 text-left font" style="float: left"><b>故障明细:</b></p>
|
|
171
178
|
<p class="panel-title col-xs-7 text-left input-font">{{$parent.$parent.$parent.getfailure(row.failure)}} </p>
|
|
172
179
|
</div>
|
|
180
|
+
<div class="col-xs-12" v-show="row.f_remarks">
|
|
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">{{ row.f_remarks }}</p>
|
|
183
|
+
</div>
|
|
173
184
|
<div class="col-xs-12">
|
|
174
185
|
<button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;float: right" @click="$parent.$parent.$parent.inspect(row)">接单</button>
|
|
175
186
|
</div>
|
|
@@ -200,11 +211,16 @@ export default {
|
|
|
200
211
|
// userid: Vue.user.ename
|
|
201
212
|
},
|
|
202
213
|
repairTypeOptions: [{label: '全部', value: ''}],
|
|
203
|
-
typeData: []
|
|
214
|
+
typeData: [],
|
|
215
|
+
showMessage: true
|
|
204
216
|
}
|
|
205
217
|
},
|
|
206
218
|
ready(){
|
|
207
219
|
this.$refs.paged.$refs.cri.search()
|
|
220
|
+
if (this.$appdata.getSingleValue('取消在线接单二次确定') === '是') {
|
|
221
|
+
this.showMessage = false
|
|
222
|
+
}
|
|
223
|
+
console.log(this.showMessage)
|
|
208
224
|
},
|
|
209
225
|
mounted(){
|
|
210
226
|
|
|
@@ -216,7 +232,7 @@ export default {
|
|
|
216
232
|
// 获取现有的报修类型对应的数量
|
|
217
233
|
async initRepairTypeNum() {
|
|
218
234
|
this.typeData = []
|
|
219
|
-
this.repairTypeOptions = []
|
|
235
|
+
this.repairTypeOptions = [{label: '全部', value: ''}]
|
|
220
236
|
const http = new HttpResetClass()
|
|
221
237
|
const res = await http.load('post',`${this.$androidUtil.getProxyUrl()}/rs/sql/getOperatorServiceTypeNum`,{data: {condition: `tswo.f_filiale_id = '${Vue.user.orgid}'`}},{resolveMsg: null, rejectMsg: null})
|
|
222
238
|
const plainArray = res.data.map(item => Object.assign({}, item))
|
|
@@ -261,32 +277,58 @@ export default {
|
|
|
261
277
|
return this.model.search(data, args.model)
|
|
262
278
|
},
|
|
263
279
|
inspect(row){
|
|
264
|
-
this
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
let HttpReset = new HttpResetClass()
|
|
278
|
-
HttpReset.load("POST",`${this.$androidUtil.getProxyUrl()}/rs/logic/siteSend`,data).then((res)=>{
|
|
279
|
-
if (res.data.code==300){
|
|
280
|
-
this.$refs.paged.$refs.cri.search()
|
|
281
|
-
return this.$showMessage('没有抢到该单哦!')
|
|
282
|
-
}else {
|
|
283
|
-
this.$refs.paged.$refs.cri.search()
|
|
284
|
-
return this.$showMessage('接单成功!请及时处理。')
|
|
280
|
+
if (this.showMessage) {
|
|
281
|
+
this.$showMessage(`确定要接编号为${row.f_service_id}的单子吗?`, ['confirm', 'cancel']).then((isconfirm)=>{
|
|
282
|
+
//tag)
|
|
283
|
+
if (isconfirm === 'confirm') {
|
|
284
|
+
let userdata = Object.assign({}, userdata, row)
|
|
285
|
+
userdata.f_advice = '自我接单'
|
|
286
|
+
userdata.serviceacitivity = [] //Vue.user.name
|
|
287
|
+
userdata.serviceacitivity.push({f_reciever: Vue.user.name})
|
|
288
|
+
let data = ''
|
|
289
|
+
data = {
|
|
290
|
+
model: userdata,
|
|
291
|
+
// loginUser: {name: '何文强', ename: 'hwq'}
|
|
292
|
+
loginUser: {name: Vue.user.name, ename: Vue.user.ename}
|
|
285
293
|
}
|
|
286
|
-
|
|
294
|
+
let HttpReset = new HttpResetClass()
|
|
295
|
+
HttpReset.load("POST",`${this.$androidUtil.getProxyUrl()}/rs/logic/siteSend`,data).then((res)=>{
|
|
296
|
+
if (res.data.code==300){
|
|
297
|
+
this.$refs.paged.$refs.cri.search()
|
|
298
|
+
return this.$showMessage('没有抢到该单哦!')
|
|
299
|
+
}else {
|
|
300
|
+
this.$refs.paged.$refs.cri.search()
|
|
301
|
+
return this.$showMessage('接单成功!请及时处理。')
|
|
302
|
+
}
|
|
303
|
+
})
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
} else {
|
|
307
|
+
let userdata = Object.assign({}, userdata, row)
|
|
308
|
+
userdata.f_advice = '自我接单'
|
|
309
|
+
userdata.serviceacitivity = [] //Vue.user.name
|
|
310
|
+
userdata.serviceacitivity.push({f_reciever: Vue.user.name})
|
|
311
|
+
let data = ''
|
|
312
|
+
data = {
|
|
313
|
+
model: userdata,
|
|
314
|
+
// loginUser: {name: '何文强', ename: 'hwq'}
|
|
315
|
+
loginUser: {name: Vue.user.name, ename: Vue.user.ename}
|
|
287
316
|
}
|
|
288
|
-
|
|
289
|
-
|
|
317
|
+
let HttpReset = new HttpResetClass()
|
|
318
|
+
HttpReset.load("POST",`${this.$androidUtil.getProxyUrl()}/rs/logic/siteSend`,data).then((res)=>{
|
|
319
|
+
if (res.data.code==300){
|
|
320
|
+
this.$refs.paged.$refs.cri.search()
|
|
321
|
+
return this.$showMessage('没有抢到该单哦!')
|
|
322
|
+
}else {
|
|
323
|
+
this.$refs.paged.$refs.cri.search()
|
|
324
|
+
return this.$showMessage('接单成功!请及时处理。')
|
|
325
|
+
}
|
|
326
|
+
})
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
makeAPhoneCall(phoneNumber) {
|
|
330
|
+
this.$androidUtil.makeAPhoneCall(phoneNumber)
|
|
331
|
+
},
|
|
290
332
|
},
|
|
291
333
|
computed:{
|
|
292
334
|
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
</div>
|
|
135
135
|
<div class="col-sm-12 col-xs-12 col-md-12">
|
|
136
136
|
<button type="button" name="button" class="btn btn-primary btn-sm" style="float: right"
|
|
137
|
-
@click="
|
|
137
|
+
@click="selected(row,false)">处理
|
|
138
138
|
</button>
|
|
139
139
|
|
|
140
140
|
<button type="button" name="button" class="btn btn-primary btn-sm"
|
|
@@ -406,7 +406,6 @@ export default {
|
|
|
406
406
|
} else {
|
|
407
407
|
this.$showMessage(`转单失败,请检查网络异常!`, ['confirm'])
|
|
408
408
|
}
|
|
409
|
-
|
|
410
409
|
},
|
|
411
410
|
undo() {
|
|
412
411
|
this.orderman = ''
|
|
@@ -487,15 +486,6 @@ export default {
|
|
|
487
486
|
this.$goto('repair-orderV', {row: row, worktype: this.worktype, isRecord: isRecord}, 'self', this.ifsearch)
|
|
488
487
|
}
|
|
489
488
|
},
|
|
490
|
-
isRecord(row) {
|
|
491
|
-
this.$showMessage('是否开启无限制录音?', ['confirm', 'cancel'], {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
492
|
-
if (res === 'confirm') {
|
|
493
|
-
this.selected(row, true)
|
|
494
|
-
} else {
|
|
495
|
-
this.selected(row, false)
|
|
496
|
-
}
|
|
497
|
-
})
|
|
498
|
-
},
|
|
499
489
|
sendback(row) {
|
|
500
490
|
this.$showMessage('退回后数据不可恢复,确认退回操作吗?', ['confirm', 'cancel'], {
|
|
501
491
|
resolveMsg: null,
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="repair-bg" id="work-history">
|
|
3
|
+
<div class="bq-parent" v-if="shutype == 'heng'">
|
|
4
|
+
<blockquote class="blockquote">
|
|
5
|
+
<p>工单基本信息</p>
|
|
6
|
+
</blockquote>
|
|
7
|
+
</div>
|
|
8
|
+
<!-- 工单的基本信息 -->
|
|
9
|
+
<div class="panel panel-default auto repair-info-content">
|
|
10
|
+
<div class="panel-body">
|
|
11
|
+
<p v-if="service.f_userinfo_id" >用户编号: <span style="text-decoration:underline">{{service.f_userinfo_code}}</span><!--  <span style="color: blue" @click="goOtherCharge(service.f_userinfo_id)">其他收费</span>--></p>
|
|
12
|
+
<!--<p v-if="service.f_userinfo_id" >用户编号: <span style="color: blue;text-decoration:underline" @click="searchHistory()">{{service.f_userinfo_code}}</span></p>-->
|
|
13
|
+
<!--<p>工单编号: {{service.f_service_id}}</p>-->
|
|
14
|
+
<!--<p>生成时间: {{service.f_created_date}}</p>-->
|
|
15
|
+
<!--<p>预约时间: {{service.f_repair_date}}</p>-->
|
|
16
|
+
<p>来电电话: {{service.f_phone}}<img src="../../../assets/telphonesend.png" style="width: 12px;" @click.stop.prevent='makeAPhoneCall(service.f_phone)'></p>
|
|
17
|
+
<p>开启录音:<button type="button" class="btn btn-default" @click="openRecord()">开启</button>
|
|
18
|
+
</p>
|
|
19
|
+
<!--<p>用户姓名: {{service.f_user_name}}</p>-->
|
|
20
|
+
<!--<p>用户地址: {{service.f_address}}</p>-->
|
|
21
|
+
<p>备注信息: {{service.f_remarks}}</p>
|
|
22
|
+
<!--<p>指导建议: {{service.f_advice}}</p>-->
|
|
23
|
+
<failure-show :value='service.failure'>
|
|
24
|
+
</failure-show>
|
|
25
|
+
<div style="clear:both;">
|
|
26
|
+
<phone-sell-info-lite v-if="showSellInfo" :user="{}" :f_userinfo_id="service.f_userinfo_id"></phone-sell-info-lite>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="from-group">
|
|
29
|
+
<img-self v-if="service.f_single_path" :src="imgfilename" width="200" height="200"></img-self>
|
|
30
|
+
<img-self v-if="service.f_singlea_path" :src="imgfilenamea" width="200" height="200"></img-self>
|
|
31
|
+
<img-self v-if="service.f_singleb_path" :src="imgfilenameb" width="200" height="200"></img-self>
|
|
32
|
+
</div>
|
|
33
|
+
<route name="info-route" ></route>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</template>
|
|
38
|
+
<script>
|
|
39
|
+
import FailureShow from '../../../components/pc/FailureShow'
|
|
40
|
+
import {HttpResetClass} from "vue-client";
|
|
41
|
+
import Vue from "vue";
|
|
42
|
+
|
|
43
|
+
export default {
|
|
44
|
+
title: '工单历史记录',
|
|
45
|
+
data () {
|
|
46
|
+
return {
|
|
47
|
+
// service: null
|
|
48
|
+
imgfilename:'',
|
|
49
|
+
imgfilenamea:'',
|
|
50
|
+
imgfilenameb:'',
|
|
51
|
+
f_userinfo_code : '测试文本',
|
|
52
|
+
showSellInfo: false
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
props: {
|
|
56
|
+
|
|
57
|
+
service: { // 传入一条报修单信息
|
|
58
|
+
type: Object
|
|
59
|
+
},
|
|
60
|
+
issee:'',
|
|
61
|
+
worktype:{
|
|
62
|
+
type: String,
|
|
63
|
+
default: '报修单'
|
|
64
|
+
},
|
|
65
|
+
// userinfo: {
|
|
66
|
+
// type: Object
|
|
67
|
+
// },
|
|
68
|
+
// 维修对应的用户数据收集
|
|
69
|
+
model: {
|
|
70
|
+
type: Object
|
|
71
|
+
},
|
|
72
|
+
// 工单信息
|
|
73
|
+
repair:{
|
|
74
|
+
type: Object
|
|
75
|
+
},
|
|
76
|
+
savevalid:{
|
|
77
|
+
|
|
78
|
+
},
|
|
79
|
+
sum:{
|
|
80
|
+
|
|
81
|
+
},
|
|
82
|
+
user:{
|
|
83
|
+
type: Object
|
|
84
|
+
},
|
|
85
|
+
show: {
|
|
86
|
+
type: Boolean,
|
|
87
|
+
default: false
|
|
88
|
+
},
|
|
89
|
+
// 本次维修, 用于编辑
|
|
90
|
+
data: {
|
|
91
|
+
type: Object
|
|
92
|
+
},
|
|
93
|
+
shutype:'heng'
|
|
94
|
+
},
|
|
95
|
+
ready () {
|
|
96
|
+
//tag)
|
|
97
|
+
//tag)
|
|
98
|
+
//tag)
|
|
99
|
+
//tag
|
|
100
|
+
this.imgfilename=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_single_path
|
|
101
|
+
this.imgfilenamea=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_singlea_path
|
|
102
|
+
this.imgfilenameb=`${this.$androidUtil.getProxyUrl()}/rs/image/file/`+this.service.f_singleb_path
|
|
103
|
+
//tag
|
|
104
|
+
//tag
|
|
105
|
+
//tag
|
|
106
|
+
for (let i in this.service) {
|
|
107
|
+
//tag + ':' + JSON.stringify(this.service[i]))
|
|
108
|
+
}
|
|
109
|
+
this.$goto('repair-user-info',{
|
|
110
|
+
model: this.model,
|
|
111
|
+
data: this.data,
|
|
112
|
+
savevalid: this.savevalid,
|
|
113
|
+
repair: this.repair,
|
|
114
|
+
show: this.show,
|
|
115
|
+
// userinfo: this.userinfo
|
|
116
|
+
shutype:this.shutype,
|
|
117
|
+
worktype:this.worktype,
|
|
118
|
+
issee:this.issee},'info-route')
|
|
119
|
+
},
|
|
120
|
+
methods: {
|
|
121
|
+
openRecord(){
|
|
122
|
+
this.$parent.$parent.openRecord()
|
|
123
|
+
},
|
|
124
|
+
makeAPhoneCall(phoneNumber) {
|
|
125
|
+
this.$androidUtil.makeAPhoneCall(phoneNumber)
|
|
126
|
+
},
|
|
127
|
+
goOtherCharge(userinfoid){
|
|
128
|
+
//tag
|
|
129
|
+
new HttpResetClass().load("POST",`${this.$androidUtil.getProxyUrl()}/rs/sql/onlinequeryuser`,{data:{condition : ` uf.f_orgid = '${Vue.user.orgid}' and (ui.f_user_state = '正常' or ui.f_user_state = '预备') and ui.f_userinfo_id = '${userinfoid}'`}}).then((res)=>{
|
|
130
|
+
//tag)
|
|
131
|
+
if(res.data.length==1){
|
|
132
|
+
let _this = this
|
|
133
|
+
var pardate = {
|
|
134
|
+
_this:_this,
|
|
135
|
+
title:'其他收费',
|
|
136
|
+
safe:false
|
|
137
|
+
}
|
|
138
|
+
_this.$dispatch('gotoson',pardate)
|
|
139
|
+
//tag
|
|
140
|
+
_this.$parent.$goto('other_charge', {row: res.data[0]}, 'self')
|
|
141
|
+
}else if(res.data.length>1){
|
|
142
|
+
this.$showMessage('查询到了多条用户表信息,请让管理员核实用户信息是否正常!')
|
|
143
|
+
}else{
|
|
144
|
+
this.$showMessage('未查询到用户有正常状态的表具信息,请让管理员核实用户表档案信息是否正常!')
|
|
145
|
+
}
|
|
146
|
+
}).catch((msg)=>{
|
|
147
|
+
this.$showMessage('获取用户信息失败,请检查手机网络!')
|
|
148
|
+
})
|
|
149
|
+
},
|
|
150
|
+
selfSearch () {
|
|
151
|
+
if(!this.rowOne) {
|
|
152
|
+
return
|
|
153
|
+
}
|
|
154
|
+
// let gen = getGen(this)
|
|
155
|
+
// co(gen)
|
|
156
|
+
},
|
|
157
|
+
searchHistory() {
|
|
158
|
+
this.showSellInfo = !this.showSellInfo
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
watch: {
|
|
162
|
+
'rowOne' () {
|
|
163
|
+
this.selfSearch()
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
components: {
|
|
167
|
+
FailureShow,
|
|
168
|
+
'failure-show': FailureShow
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
</script>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<script>
|
|
34
34
|
// 户内维修
|
|
35
35
|
import Vue from 'vue'
|
|
36
|
-
import RepairInfo from '
|
|
36
|
+
import RepairInfo from './RepairInfo'
|
|
37
37
|
import RepairDetails from './../../../components/workorder/RepairDetails'
|
|
38
38
|
import RepairUserInfo from './../../../components/workorder/RepairUserInfo'
|
|
39
39
|
import Outlay from './../../../components/workorder/Outlay'
|
|
@@ -506,6 +506,15 @@ export default {
|
|
|
506
506
|
issee:this.issee,
|
|
507
507
|
parentPage:'CurrentCreate'
|
|
508
508
|
}, 'upload')
|
|
509
|
+
},
|
|
510
|
+
openRecord(){
|
|
511
|
+
let isRecodr = this.$appdata.getSingleValue('呼叫无限制录音'); //单值参数,为true则是开启全程录音
|
|
512
|
+
if (isRecodr) {
|
|
513
|
+
if (isRecodr == 'true') {
|
|
514
|
+
this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
|
|
515
|
+
this.record()
|
|
516
|
+
}
|
|
517
|
+
}
|
|
509
518
|
}
|
|
510
519
|
},
|
|
511
520
|
watch: {
|
|
@@ -569,13 +578,6 @@ export default {
|
|
|
569
578
|
if (this.show || this.repair) {
|
|
570
579
|
this.faultshow.number = this.tabs.length
|
|
571
580
|
}
|
|
572
|
-
let isRecodr = this.$appdata.getSingleValue('呼叫无限制录音'); //单值参数,为true则是开启全程录音
|
|
573
|
-
if (isRecodr) {
|
|
574
|
-
if (isRecodr == 'true' && this.isRecord) {
|
|
575
|
-
this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
|
|
576
|
-
this.record()
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
581
|
},
|
|
580
582
|
components: {
|
|
581
583
|
'repair-info': RepairInfo,
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
// 分公司特殊组件页面注册
|
|
2
|
-
import Vue from "vue";
|
|
3
2
|
|
|
4
3
|
//pc和手机端重写组件较多的话 建议将cp和android分到两个文件中 蓉城较少,所以我就合并到一起
|
|
5
4
|
let specialComp = {
|
|
6
5
|
// 竖屏待办工单新
|
|
7
|
-
'repair-first': (resolve) => {
|
|
8
|
-
|
|
6
|
+
'repair-first': (resolve) => {
|
|
7
|
+
require(['./android/RepairFirstV'], resolve)
|
|
8
|
+
},
|
|
9
|
+
'repair-orderV': (resolve) => {
|
|
10
|
+
require(['./android/RepairOrderV'], resolve)
|
|
11
|
+
},
|
|
12
|
+
'repair-info': (resolve) => {
|
|
13
|
+
require(['./android/RepairInfo'], resolve)
|
|
14
|
+
},
|
|
9
15
|
}
|
|
10
16
|
exports.specialComp = specialComp
|
|
11
17
|
|