telephone-clients 3.0.103 → 3.0.104-1
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 +3 -3
- package/src/App.vue +7 -9
- package/src/assets//345/210/240/351/231/244.png +0 -0
- package/src/components/Util/RightTreeSafe.vue +2 -2
- package/src/components/Util/RightTreeSafeDep.vue +350 -0
- package/src/components/android/AddMyTask.vue +7 -0
- package/src/components/guoxin/VisitInfo.vue +0 -11
- package/src/components/pc/NewRepairPaper.vue +3 -3
- package/src/components/pc/RepairsWork.vue +22 -2
- package/src/components/pc/RoleSelectorDep.vue +158 -0
- package/src/components/pc/TelFindUser.vue +1 -1
- package/src/components/pc/TelListener.vue +47 -16
- package/src/components/pc/VisitInfo.vue +0 -10
- package/src/components/pc/WorkCenter.vue +1 -1
- package/src/components/pc/WorkCenterList.vue +1 -1
- package/src/components/pc/WorkHistory.vue +20 -2
- package/src/components/pc/WorkListAll.vue +1 -1
- package/src/components/pc/WorkListAllNew.vue +10 -3
- package/src/components/pc/WorkListNew.vue +712 -706
- package/src/components/pc/olddata/OldWorkList.vue +193 -0
- package/src/components/telreport/RepairsDetailsReport.vue +98 -0
- package/src/components/telreport/TableFaultReport.vue +96 -0
- package/src/components/telreport/Traffic.vue +3 -3
- package/src/components/telreport/TrafficClassificationReport.vue +134 -0
- package/src/components/temp/ChangemeterInfo.vue +75 -87
- package/src/components/temp/DeviceInfo.vue +80 -82
- package/src/components/temp/HandplanInfo.vue +2 -2
- package/src/components/temp/InfoTable.vue +5 -2
- package/src/components/temp/MetereadInfo.vue +1 -4
- package/src/components/temp/OldRepairList.vue +100 -0
- package/src/components/temp/RepairList.vue +2 -2
- package/src/components/weinan/Console.vue +1 -1
- package/src/components/weinan/RecordList.vue +2 -2
- package/src/components/weinan/SiteSend.vue +2 -2
- package/src/components/weinan/SiteSendWeixiu.vue +7 -16
- package/src/components/weinan/StandWorkWeixiu.vue +1 -1
- package/src/components/weinan/WorkList.vue +73 -0
- package/src/components/weinan/WorkListAll.vue +90 -14
- package/src/components/weinan/WorkListWeixiu.vue +1 -1
- package/src/components/workorder/CompletedRepair.vue +269 -183
- package/src/components/workorder/FaultAll.vue +826 -826
- package/src/components/workorder/PhoneStandWork.vue +354 -354
- package/src/components/workorder/PhoneUpDetail.vue +3 -0
- package/src/components/workorder/RepairDetails.vue +12 -2
- package/src/components/workorder/RepairFirstV.vue +1 -1
- package/src/components/workorder/RepairOrderV.vue +1446 -1446
- package/src/filiale/furuike/pc/ComplainWork.vue +348 -348
- package/src/filiale/furuike/pc/Seekwork.vue +352 -352
- package/src/filiale/furuike/pc/WorkHistory.vue +576 -576
- package/src/filiale/gongyi/android/RepairOrderV.vue +1415 -1415
- package/src/filiale/kelai/android/AppTakePic.vue +143 -0
- package/src/filiale/kelai/android/PhoneVentilationLeave.vue +176 -0
- package/src/filiale/kelai/pc/WorkCenterList.vue +20 -3
- package/src/filiale/kelai/pc/WorkListAllNew.vue +47 -9
- package/src/filiale/kelai/pc/serviceDeleteOrder.vue +55 -0
- package/src/filiale/kelai/telephone.js +9 -8
- package/src/filiale/kelai/telephoneAndroid.js +3 -1
- package/src/filiale/liaoyuan/android/RepairOrderV.vue +831 -831
- package/src/filiale/qianneng/android/FaultAll.vue +883 -883
- package/src/filiale/qianneng/android/MaterIialOne.vue +123 -123
- package/src/filiale/qianneng/android/RepairOrderV.vue +874 -874
- package/src/filiale/qianneng/android/TemporarySingle.vue +537 -512
- package/src/filiale/qianneng/android/chargesList.vue +161 -161
- package/src/filiale/qianneng/pc/MaterialDetailed.vue +260 -248
- package/src/filiale/qianneng/pc/MaterialStatistics.vue +144 -0
- package/src/filiale/qianneng/pc/NewRepairPaper.vue +4 -4
- package/src/filiale/qianneng/pc/RepairsWork.vue +12 -2
- package/src/filiale/qianneng/pc/WorkHistory.vue +2 -2
- package/src/filiale/qianneng/pc/WorkListAllNew.vue +53 -5
- package/src/filiale/qianneng/pc/changetable.vue +273 -0
- package/src/filiale/qianneng/telephone.js +22 -20
- package/src/filiale/rizhao/pc/DispatchMan.vue +3 -3
- package/src/filiale/rizhao/pc/DispatchWork.vue +3 -3
- package/src/filiale/rizhao/pc/Traffic.vue +3 -3
- package/src/filiale/rizhao/pc/WorkListAllNew.vue +8 -3
- package/src/filiale/rongcheng/CliWorkListAll.vue +442 -407
- package/src/filiale/rongcheng/FaultAll.vue +3 -3
- package/src/filiale/rongcheng/RepairOrderV.vue +1445 -0
- package/src/filiale/rongcheng/telephoneAndroid.js +3 -1
- package/src/filiale/shanxian/android/RepairFirstV.vue +5 -1
- package/src/filiale/shanxian/pc/RepairsWork.vue +826 -0
- package/src/filiale/shanxian/pc/WorkList.vue +1 -1
- package/src/filiale/shanxian/telephone.js +13 -12
- package/src/filiale/shexian/android/AddMyTask.vue +7 -0
- package/src/filiale/shexian/android/CompletedRepair.vue +280 -0
- package/src/filiale/shexian/android/FaultAll.vue +847 -0
- package/src/filiale/shexian/android/Outlay.vue +182 -165
- package/src/filiale/shexian/android/RepairFirstV.vue +16 -2
- package/src/filiale/shexian/android/RepairInfo.vue +1 -0
- package/src/filiale/shexian/pc/QueryVisitHistory.vue +237 -0
- package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +271 -0
- package/src/filiale/shexian/pc/TelByOrderManCount.vue +10 -2
- package/src/filiale/shexian/pc/WorkList.vue +782 -740
- package/src/filiale/shexian/pc/WorkListAllNew.vue +75 -67
- package/src/filiale/shexian/telephone.js +21 -18
- package/src/filiale/shexian/telephoneAndroid.js +32 -26
- package/src/filiale/tongchuan/android/TicketDetails.vue +3 -0
- package/src/filiale/tongchuan/pc/UserWork.vue +805 -805
- package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +2 -2
- package/src/filiale/wenxi/android/FailureShow.vue +61 -0
- package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +1053 -0
- package/src/filiale/wenxi/android/RepairInfo.vue +158 -74
- package/src/filiale/wenxi/android/RepairOrderV.vue +805 -1419
- package/src/filiale/wenxi/android/RepairUserInfo.vue +532 -0
- package/src/filiale/wenxi/android/ZHihuanFirst.vue +502 -0
- package/src/filiale/wenxi/pc/DistributeWork.vue +107 -121
- package/src/filiale/wenxi/pc/FailureEdit.vue +1 -1
- package/src/filiale/wenxi/pc/GasWork.vue +747 -0
- package/src/filiale/wenxi/pc/MetereadInfo.vue +82 -0
- package/src/filiale/wenxi/pc/RepairsWork.vue +15 -0
- package/src/filiale/wenxi/pc/TelFindUser.vue +213 -116
- package/src/filiale/wenxi/telephone.js +4 -6
- package/src/filiale/wenxi/telephoneAndroid.js +4 -1
- package/src/filiale/wuan/android/RepairOrderV.vue +1384 -1384
- package/src/filiale/yuncheng/pc/TelFindUser.vue +302 -0
- package/src/filiale/yuncheng/telephone.js +12 -0
- package/src/filiale/zhongsheng/android/FaultAll.vue +741 -0
- package/src/filiale/zhongsheng/android/RepairOrderV.vue +1430 -1430
- package/src/filiale/zhongsheng/android/RepairUserInfo.vue +241 -214
- package/src/filiale/zhongsheng/pc/RepairsWork.vue +775 -775
- package/src/filiale/zhongsheng/telephone.js +23 -23
- package/src/filiale/zhongsheng/telephoneAndroid.js +2 -1
- package/src/main.js +1 -1
- package/src/telephone.js +16 -0
- package/src/weinan.js +6 -0
- package/src/filiale/wenxi/pc/WorkListAll.vue +0 -647
|
@@ -256,6 +256,7 @@
|
|
|
256
256
|
f_reciever:'',
|
|
257
257
|
f_remarks: '',
|
|
258
258
|
f_user_type: '',
|
|
259
|
+
failure_str:'',
|
|
259
260
|
f_area: '',
|
|
260
261
|
f_unit_name:'',
|
|
261
262
|
f_street: '',
|
|
@@ -354,8 +355,9 @@
|
|
|
354
355
|
http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
355
356
|
// let result = res.data.filter(res=>res.orgid==this.$login.f.orgid)
|
|
356
357
|
res.data.forEach((item) => {
|
|
357
|
-
|
|
358
|
-
|
|
358
|
+
if (item.state == '在职'){
|
|
359
|
+
this.repairers.push({label: `${item.name}`, value: item.name})
|
|
360
|
+
}
|
|
359
361
|
})
|
|
360
362
|
})
|
|
361
363
|
},
|
|
@@ -478,6 +480,7 @@
|
|
|
478
480
|
},
|
|
479
481
|
assignObj() {
|
|
480
482
|
if (this.data) {
|
|
483
|
+
this.model.failure_str = ''
|
|
481
484
|
this.model.f_address = this.data.f_address
|
|
482
485
|
this.model.f_user_name = this.data.f_user_name
|
|
483
486
|
this.model.f_user_type = this.data.f_user_type
|
|
@@ -524,6 +527,7 @@
|
|
|
524
527
|
f_user_name: '',
|
|
525
528
|
failure: '',
|
|
526
529
|
f_userinfo_id: '',
|
|
530
|
+
failure_str:'',
|
|
527
531
|
f_address: '',
|
|
528
532
|
f_json: '',
|
|
529
533
|
f_repair_date: Util.getNowDate(),
|
|
@@ -581,6 +585,18 @@
|
|
|
581
585
|
this.model.f_outlets = this.$login.f.deps
|
|
582
586
|
this.model.f_filiale_id = this.$login.f.orgid
|
|
583
587
|
}
|
|
588
|
+
let failureStr = ''
|
|
589
|
+
if(this.model.failure.startsWith("[")){
|
|
590
|
+
const failureData = JSON.parse(this.model.failure)
|
|
591
|
+
failureData.forEach(item=>{
|
|
592
|
+
if (item.failurecase.length>0){
|
|
593
|
+
failureStr+=item.f_failure_type+":"+item.failurecase.toString()+";"
|
|
594
|
+
}else {
|
|
595
|
+
failureStr+=item.f_failure_type+";"
|
|
596
|
+
}
|
|
597
|
+
})
|
|
598
|
+
this.model.failure_str = failureStr
|
|
599
|
+
}
|
|
584
600
|
let data = {
|
|
585
601
|
model: this.model, loginUser: {
|
|
586
602
|
name: this.loginUser.name,
|
|
@@ -603,6 +619,7 @@
|
|
|
603
619
|
url = config[this.operType].url
|
|
604
620
|
data.toRepair = '一级派单'
|
|
605
621
|
}
|
|
622
|
+
data.model.f_state = null
|
|
606
623
|
this.saveing = true
|
|
607
624
|
return this.$resetpost(url, data).then((data) => {
|
|
608
625
|
if(data.data && data.data.id){
|
|
@@ -681,6 +698,9 @@
|
|
|
681
698
|
watch: {
|
|
682
699
|
// 转接类型
|
|
683
700
|
'model.f_handlingtype'(){
|
|
701
|
+
if(this.operType === '修改工单'){
|
|
702
|
+
return
|
|
703
|
+
}
|
|
684
704
|
// 清楚上次记录
|
|
685
705
|
this.model.serviceacitivity[0].f_reciever = ''
|
|
686
706
|
this.model.serviceacitivity[0].f_meetunit =''
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div style="width: 100%;height: 100%">
|
|
3
|
+
<div class="col-sm-6 form-group" style="margin-bottom: 0px">
|
|
4
|
+
<label class="font_normal_body">所属部门</label>
|
|
5
|
+
<right-tree-safe-dep :width="leftWidth" @re-res="getRes" :resobjprop.sync="resobjprop"></right-tree-safe-dep>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="col-sm-6 form-group" style="margin-bottom: 0px">
|
|
8
|
+
<label class="font_normal_body">{{ roleLable }}</label>
|
|
9
|
+
<v-select :value="selVal" v-model='selVal'
|
|
10
|
+
:value-single="!valueMultiple"
|
|
11
|
+
class="select_list select"
|
|
12
|
+
:options='users' :placeholder='roleName'
|
|
13
|
+
:close-on-select = 'valueClose'
|
|
14
|
+
:multiple="valueMultiple"
|
|
15
|
+
:width="rightWidth"
|
|
16
|
+
@change="valuechange">
|
|
17
|
+
</v-select>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import {HttpResetClass} from 'vue-client'
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
name: "RoleSelector",
|
|
27
|
+
props: {
|
|
28
|
+
valueMultiple: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
32
|
+
roleName: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: '安检员'
|
|
35
|
+
},
|
|
36
|
+
roleLable: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: '安检员'
|
|
39
|
+
},
|
|
40
|
+
leftWidth: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: '60%'
|
|
43
|
+
},
|
|
44
|
+
rightWidth: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: '60%'
|
|
47
|
+
},
|
|
48
|
+
value: {
|
|
49
|
+
default: ''
|
|
50
|
+
},
|
|
51
|
+
resobjprop: {
|
|
52
|
+
default: {}
|
|
53
|
+
},
|
|
54
|
+
valueClose: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
// source: `tool.getChildrenOfResName($${this.roleName}$)`,
|
|
62
|
+
source: `root.getResourceById($${this.$login.f.depids}$,$department$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($${this.roleName}$) != -1)`,
|
|
63
|
+
allUsers: [],
|
|
64
|
+
users: [],
|
|
65
|
+
selVal: '',
|
|
66
|
+
organizationname:this.$login.f.organizationname,
|
|
67
|
+
resids: [],
|
|
68
|
+
changeval: ''
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
watch: {
|
|
72
|
+
'value'(val) {
|
|
73
|
+
console.log("969696", val)
|
|
74
|
+
if (val) {
|
|
75
|
+
if (this.valueMultiple) {
|
|
76
|
+
|
|
77
|
+
} else {
|
|
78
|
+
this.selVal = val
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
async ready() {
|
|
85
|
+
await this.search()
|
|
86
|
+
await this.filterUser(this.resids)
|
|
87
|
+
},
|
|
88
|
+
methods: {
|
|
89
|
+
async search() {
|
|
90
|
+
let http = new HttpResetClass()
|
|
91
|
+
const res = await http.load('POST', '/rs/search', {
|
|
92
|
+
data: {
|
|
93
|
+
source: this.source,
|
|
94
|
+
userid: this.$login.f.id
|
|
95
|
+
}
|
|
96
|
+
}, {resolveMsg: null, rejectMsg: null})
|
|
97
|
+
this.allUsers = res.data
|
|
98
|
+
},
|
|
99
|
+
valuechange(val) {
|
|
100
|
+
console.log(`val instanceof Array======${!val instanceof Array}`)
|
|
101
|
+
if ((typeof val === 'object' && !val instanceof Array) || (val instanceof Event)) {
|
|
102
|
+
return
|
|
103
|
+
}
|
|
104
|
+
if (this.valueMultiple && Array.isArray(val)) {
|
|
105
|
+
if (val && val.length > 0) {
|
|
106
|
+
let valuesele = `(`
|
|
107
|
+
for (let i = 0; i < val.length; i++) {
|
|
108
|
+
valuesele += `'${val[i]}',`
|
|
109
|
+
}
|
|
110
|
+
this.value = valuesele.substring(0, valuesele.length - 1) + ')'
|
|
111
|
+
} else {
|
|
112
|
+
this.value = ''
|
|
113
|
+
}
|
|
114
|
+
} else {
|
|
115
|
+
this.value = val
|
|
116
|
+
}
|
|
117
|
+
// this.changeval = val
|
|
118
|
+
},
|
|
119
|
+
getRes(obj) {
|
|
120
|
+
this.resids = obj.resids
|
|
121
|
+
this.organizationname = obj.res[0]
|
|
122
|
+
this.filterUser(this.resids)
|
|
123
|
+
this.$dispatch('re-res', obj)
|
|
124
|
+
},
|
|
125
|
+
async filterUser(resids) {
|
|
126
|
+
// 处理第一次进入页面值异常问题
|
|
127
|
+
if (resids.length > 0 && typeof resids[0] == "object") {
|
|
128
|
+
resids = resids[0]
|
|
129
|
+
}
|
|
130
|
+
if (resids[0]) {
|
|
131
|
+
this.source = `root.getResourceById($${resids[0]}$,$department$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($${this.roleName}$) != -1)`
|
|
132
|
+
await this.search()
|
|
133
|
+
}
|
|
134
|
+
this.users = []
|
|
135
|
+
this.allUsers.forEach(user => {
|
|
136
|
+
this.users.push({label: user.name, value: user.name})
|
|
137
|
+
})
|
|
138
|
+
if (!this.valueMultiple && this.users.length > 0) {
|
|
139
|
+
this.users = [{label: '全部', value: ''}, ...this.users]
|
|
140
|
+
}
|
|
141
|
+
let temp = []
|
|
142
|
+
this.users = this.users.filter(item => {
|
|
143
|
+
if (!temp.includes(item.label)) {
|
|
144
|
+
temp.push(item.label)
|
|
145
|
+
return true
|
|
146
|
+
}
|
|
147
|
+
return false
|
|
148
|
+
})
|
|
149
|
+
this.$emit('alluser', this.allUsers)
|
|
150
|
+
//tag
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
</script>
|
|
155
|
+
|
|
156
|
+
<style scoped>
|
|
157
|
+
|
|
158
|
+
</style>
|
|
@@ -206,7 +206,7 @@ export default {
|
|
|
206
206
|
}else if(this.$login.f.orgid == 46997 && this.$login.f.fullnames.indexOf("铜川市天然气")!= -1){
|
|
207
207
|
args.condition += ` and ti.f_user_state = '正常'`
|
|
208
208
|
}else {
|
|
209
|
-
args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}' and ti.f_user_state
|
|
209
|
+
args.condition += ` and ti.f_filialeid = '${this.$login.f.orgid}' and ti.f_user_state in('正常','停用','预备')`
|
|
210
210
|
}
|
|
211
211
|
this.model.search(args.condition, args.model)
|
|
212
212
|
},
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<td style="text-align: center;">{{inlinemodel1.aState}}</td>
|
|
25
25
|
<td style="text-align: center;">{{inlinemodel1.callingNo}}</td>
|
|
26
26
|
<td style="text-align: center;">
|
|
27
|
-
<button-link type="button" class="btn btn-link" @click="listen(inlinemodel1
|
|
27
|
+
<button-link type="button" class="btn btn-link" @click="listen(inlinemodel1)">监听</button-link>
|
|
28
28
|
</td>
|
|
29
29
|
</tr>
|
|
30
30
|
<tr v-for="outlinemodel1 in outlinemodel" >
|
|
@@ -39,6 +39,25 @@
|
|
|
39
39
|
</table>
|
|
40
40
|
</div>
|
|
41
41
|
</div>
|
|
42
|
+
<modal :show.sync="showlisten" width="50%" backdrop="false">
|
|
43
|
+
<header slot="modal-header" class="modal-header">
|
|
44
|
+
<center><h4 class="modal-title ">话务监听信息</h4></center>
|
|
45
|
+
</header>
|
|
46
|
+
<article slot="modal-body" class="modal-body" style="height: 100px;padding-top: 15px!important;">
|
|
47
|
+
<div class="row auto">
|
|
48
|
+
<label>坐席号码</label><span>{{lisachanl.aChannel}}</span>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row auto">
|
|
51
|
+
<label>话务人员</label><span>{{lisachanl.aName}}</span>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="row auto">
|
|
54
|
+
<label>通话号码</label><span>{{lisachanl.callingNo}}</span>
|
|
55
|
+
</div>
|
|
56
|
+
</article>
|
|
57
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
58
|
+
<button type="button" class="btn btn-success" @click='canal'>取消</button>
|
|
59
|
+
</footer>
|
|
60
|
+
</modal>
|
|
42
61
|
</template>
|
|
43
62
|
|
|
44
63
|
<script>
|
|
@@ -68,6 +87,12 @@
|
|
|
68
87
|
},
|
|
69
88
|
data () {
|
|
70
89
|
return {
|
|
90
|
+
showlisten:false,
|
|
91
|
+
lisachanl:{
|
|
92
|
+
aChannel:0,
|
|
93
|
+
aName:'',
|
|
94
|
+
callingNo:''
|
|
95
|
+
},
|
|
71
96
|
interval: null, // 循环函数返回值,用来停止循环
|
|
72
97
|
inlinemodel:{
|
|
73
98
|
type: Object,
|
|
@@ -81,18 +106,6 @@
|
|
|
81
106
|
}
|
|
82
107
|
},
|
|
83
108
|
ready () {
|
|
84
|
-
// 循环读取通道状态
|
|
85
|
-
// let sql = 'tel_singleTable_OrderBy'
|
|
86
|
-
// let condition = {
|
|
87
|
-
// items: 'tongdao',
|
|
88
|
-
// tablename: 'T_IPTONGDAO',
|
|
89
|
-
// condition: `loginip = '${this.$login.f.loginip}'`,
|
|
90
|
-
// orderitem: 'id'
|
|
91
|
-
// }
|
|
92
|
-
// let http = new HttpResetClass()
|
|
93
|
-
// http.load('POST', `rs/logic/tel_getOneData`, {data: {sql: sql, params: condition}}, {resolveMsg: null, rejectMsg: null}).then((req) => {
|
|
94
|
-
// this.aChannel = parseInt(req.data.tongdao);
|
|
95
|
-
// })
|
|
96
109
|
if(this.aChannel) {
|
|
97
110
|
let gen = stateGen(this)
|
|
98
111
|
co(gen)
|
|
@@ -105,13 +118,31 @@
|
|
|
105
118
|
|
|
106
119
|
},
|
|
107
120
|
methods: {
|
|
121
|
+
canal(){
|
|
122
|
+
this.lisachanl = {
|
|
123
|
+
aChannel:0,
|
|
124
|
+
aName:'',
|
|
125
|
+
callingNo:''
|
|
126
|
+
}
|
|
127
|
+
this.showlisten = false
|
|
128
|
+
},
|
|
108
129
|
// 所有控制函数
|
|
109
130
|
// 循环获取通道状态
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
listen(val){
|
|
132
|
+
let valaChannel = val.aChannel + ''
|
|
112
133
|
let http1 = new HttpResetClass()
|
|
113
|
-
http1.load('POST', data.voiceUrl, {aId:
|
|
134
|
+
http1.load('POST', data.voiceUrl, {aId: this.$login.f.id,aName: this.$login.f.name,aChannel:this.aChannel, aModule:1, aBzType:"listen", bzExtra: valaChannel, bzId: "1",RoleId:"话务员"}, {resolveMsg: null, rejectMsg: null}).then((req) => {
|
|
114
135
|
//tag
|
|
136
|
+
if(req.data && req.data.msg == '开始监听'){
|
|
137
|
+
this.showlisten = true
|
|
138
|
+
this.lisachanl = {
|
|
139
|
+
aChannel:val.aChannel,
|
|
140
|
+
aName:val.aName,
|
|
141
|
+
callingNo:val.callingNo
|
|
142
|
+
}
|
|
143
|
+
}else{
|
|
144
|
+
this.$showMessage(`操作结果:${req.data.msg}`)
|
|
145
|
+
}
|
|
115
146
|
})
|
|
116
147
|
},
|
|
117
148
|
|
|
@@ -90,7 +90,6 @@
|
|
|
90
90
|
title: '回访单',
|
|
91
91
|
props: {
|
|
92
92
|
contextxianshi:null,
|
|
93
|
-
show: false,
|
|
94
93
|
row:Object,
|
|
95
94
|
phone:'',
|
|
96
95
|
idwavfile:'',
|
|
@@ -191,14 +190,12 @@
|
|
|
191
190
|
f_visitdate:this.getNowFormatDate(),
|
|
192
191
|
f_record_sound:''
|
|
193
192
|
})
|
|
194
|
-
this.show=false
|
|
195
193
|
this.$emit('visitback','commit')
|
|
196
194
|
})
|
|
197
195
|
},
|
|
198
196
|
// 取消
|
|
199
197
|
clearVisit () {
|
|
200
198
|
this.$emit('visitback','nodo')
|
|
201
|
-
this.show=false
|
|
202
199
|
},
|
|
203
200
|
callout(telnum){
|
|
204
201
|
if(telnum){
|
|
@@ -229,13 +226,6 @@
|
|
|
229
226
|
},
|
|
230
227
|
},
|
|
231
228
|
watch: {
|
|
232
|
-
'show' () {
|
|
233
|
-
this.$emit('show-obj', {showVisit: this.show})
|
|
234
|
-
},
|
|
235
|
-
'row' () {
|
|
236
|
-
this.show=this.row;
|
|
237
|
-
this.$emit('show-obj', {showVisit: this.show})
|
|
238
|
-
},
|
|
239
229
|
'phone'(val){
|
|
240
230
|
this.model.f_phone = val
|
|
241
231
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<reminder-order :call-obj="callObj" :login-user="loginUser" :row="row" @success="component = 'list'" @cancel="component = 'list'"></reminder-order>
|
|
15
15
|
</div>
|
|
16
16
|
<!-- 撤销-->
|
|
17
|
-
<div class="" v-if="component === '结案'"
|
|
17
|
+
<div class="" v-if="component === '结案' || component == 'serviceDelete'" style="height: 200px;">
|
|
18
18
|
<service-delete-order :call-obj="callObj" :login-user="loginUser" :row="row" @success="sucs" @cancel="component = 'list'" ></service-delete-order>
|
|
19
19
|
</div>
|
|
20
20
|
<div class="" v-if="component === 'modify'">
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
</div>
|
|
123
123
|
<div v-show="$parent.$parent.$parent.canRemindChange(row) && row.f_workorder_type == '报修单' && row.f_state!='完成' ">
|
|
124
124
|
<button type="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.$emit('do', 'remind', row)" style="min-width: 30px;">催单</button>
|
|
125
|
-
<button type="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.$emit('do', 'modify', row)" style="min-width: 30px;">修改</button>
|
|
125
|
+
<button type="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.$emit('do', 'modify', row)" v-show="row.f_source != '安检'" style="min-width: 30px;">修改</button>
|
|
126
126
|
</div>
|
|
127
127
|
<div v-show="$parent.$parent.$parent.canRemindChange(row) && row.f_workorder_type == '置换通气单' && row.f_state!='完成' ">
|
|
128
128
|
<button type="button" class="btn btn-link" @click.stop="$parent.$parent.$parent.$emit('do', 'remind', row)" style="min-width: 30px;">催单</button>
|
|
@@ -114,12 +114,30 @@
|
|
|
114
114
|
<p>{{ activity.f_operator }}将工单{{activity.f_back_type}}</p>
|
|
115
115
|
<p v-if="activity.f_remarks">原因:{{ activity.f_remarks }}</p>
|
|
116
116
|
</div>
|
|
117
|
+
<!-- 工单打回 工单打回旧版使用t_site_back,兼容之前的逻辑。新版本无需调整此项-->
|
|
118
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_site_back'">
|
|
119
|
+
<p>{{ activity.f_site_back_date }}</p>
|
|
120
|
+
<p>{{ activity.f_site_back_name }}将工单打回</p>
|
|
121
|
+
<p>原因:{{ activity.f_site_back_reason }}</p>
|
|
122
|
+
</div>
|
|
123
|
+
<!-- 未维修,属于维修员打回 兼容之前的逻辑。新版本无需调整此项 -->
|
|
124
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_notwork'">
|
|
125
|
+
<p>{{ activity.f_date }}</p>
|
|
126
|
+
<p>{{ activity.f_name }}未处理</p>
|
|
127
|
+
<p>原因:{{ activity.f_reason }}</p>
|
|
128
|
+
</div>
|
|
117
129
|
<!-- 用户催单 -->
|
|
118
130
|
<div style="margin-top: 5px" v-if="activity.type === 't_reminder'">
|
|
119
131
|
<p>{{ activity.f_reminder_date }}</p>
|
|
120
132
|
<p>用户催单</p>
|
|
121
133
|
<p>催单内容:{{ activity.f_content }}</p>
|
|
122
134
|
</div>
|
|
135
|
+
<!-- 工单撤回 -->
|
|
136
|
+
<div style="margin-top: 5px" v-if="activity.type === 't_recall'">
|
|
137
|
+
<p>{{ activity.f_recall_date }}</p>
|
|
138
|
+
<p>{{ activity.f_recall_name }}撤回工单</p>
|
|
139
|
+
<p>备注:{{ activity.f_remarks }}</p>
|
|
140
|
+
</div>
|
|
123
141
|
<!-- 工单信息补充 -->
|
|
124
142
|
<div style="margin-top: 5px" v-if="activity.type === 't_telinformation'">
|
|
125
143
|
<p>{{ activity.f_information_date }}</p>
|
|
@@ -270,7 +288,7 @@
|
|
|
270
288
|
<div class="col-sm-12 form-input-group" >
|
|
271
289
|
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '咨询单'">咨询内容</label>
|
|
272
290
|
<label class="font_normal_body" style="width: 10%" v-if="rowOne.f_workorder_type === '投诉单'">投诉内容</label>
|
|
273
|
-
<textarea name="name" rows="3" v-model="rowOne.f_content"
|
|
291
|
+
<textarea name="name" rows="3" v-model="rowOne.f_content || service.f_content"
|
|
274
292
|
class="form-control ver-textarea" id="f_content" name="f_content" readonly="readonly"></textarea>
|
|
275
293
|
</div>
|
|
276
294
|
<div class="col-sm-4 form-group form-input-group" >
|
|
@@ -295,7 +313,7 @@
|
|
|
295
313
|
</div>
|
|
296
314
|
<div class="col-sm-12 form-input-group">
|
|
297
315
|
<label class="font_normal_body" style="width: 10%">处理结果</label>
|
|
298
|
-
<textarea name="name" rows="3" v-model="complanResult.f_complaint_results"
|
|
316
|
+
<textarea name="name" rows="3" v-model="complanResult.f_complaint_results || '已处理'"
|
|
299
317
|
class="form-control ver-textarea" readonly="readonly"></textarea>
|
|
300
318
|
</div>
|
|
301
319
|
</div>
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
<header slot="modal-header" class="modal-header">
|
|
268
268
|
</header>
|
|
269
269
|
<article slot="modal-body" class="modal-body">
|
|
270
|
-
<visit-info
|
|
270
|
+
<visit-info v-if="showVisit" :row="visitrow" :phone="wavflie" :outltime="outltime" @show-obj="watchShow"></visit-info>
|
|
271
271
|
</article>
|
|
272
272
|
<footer slot="modal-footer" class="modal-footer">
|
|
273
273
|
</footer>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
9
9
|
<label class="font_normal_body" style="width: 40%">工单编号</label>
|
|
10
10
|
<input type="text" class="input_search" v-model="model.f_service_id" placeholder='工单编号'
|
|
11
|
-
condition="f_service_id like '%{}%'"
|
|
11
|
+
condition="tswo.f_service_id like '%{}%'"
|
|
12
12
|
:size="model.f_service_id ? model.f_service_id.length : 6">
|
|
13
13
|
</div>
|
|
14
14
|
<div class="col-sm-3 form-group form-input-group" style="width: 20%">
|
|
@@ -248,6 +248,9 @@
|
|
|
248
248
|
<th>
|
|
249
249
|
<nobr>工单结果</nobr>
|
|
250
250
|
</th>
|
|
251
|
+
<th>
|
|
252
|
+
<nobr>维护信息</nobr>
|
|
253
|
+
</th>
|
|
251
254
|
</tr>
|
|
252
255
|
</template>
|
|
253
256
|
<template partial='body'>
|
|
@@ -321,6 +324,9 @@
|
|
|
321
324
|
<td style="text-align: center;">
|
|
322
325
|
<nobr>{{ row.f_result_status }}</nobr>
|
|
323
326
|
</td>
|
|
327
|
+
<td style="text-align: center;">
|
|
328
|
+
<nobr>{{ row.f_content }}</nobr>
|
|
329
|
+
</td>
|
|
324
330
|
|
|
325
331
|
|
|
326
332
|
</template>
|
|
@@ -415,10 +421,10 @@ export default {
|
|
|
415
421
|
tfoot: '',
|
|
416
422
|
zhihuans: [{label: '全部', value: ''}, {label: '正常', value: '正常'}, {label: '异常', value: '异常'}],
|
|
417
423
|
headData: ['工单类型', '工单编号', '派单时间','客户信息', '联系电话', '故障明细', '工单来源', '工单状态', '派单人', '话务员','接单员',
|
|
418
|
-
'结单时间','到达时间', '离开时间','逾期状态','截止时间','工单结果'],
|
|
424
|
+
'结单时间','到达时间', '离开时间','逾期状态','截止时间','工单结果','维护信息'],
|
|
419
425
|
bodyData: ['f_workorder_type', 'f_service_id', 'f_created_date', 'f_customer_info_show','f_contact_phone', 'f_json', 'f_source',
|
|
420
426
|
'f_state_show', 'f_single_man','f_attendant','f_order_man','f_date','f_date_come','f_date_leave',
|
|
421
|
-
'f_overdue_show','f_finish_time_show','f_result_status'],
|
|
427
|
+
'f_overdue_show','f_finish_time_show','f_result_status','f_content'],
|
|
422
428
|
searchData: {
|
|
423
429
|
condition: '1=1'
|
|
424
430
|
},
|
|
@@ -440,6 +446,7 @@ export default {
|
|
|
440
446
|
'f_overdue_show': '逾期状态',
|
|
441
447
|
'f_finish_time_show': '截止时间',
|
|
442
448
|
'f_result_status': '工单结果',
|
|
449
|
+
'f_content': '维护信息'
|
|
443
450
|
},
|
|
444
451
|
criteriaShow: false
|
|
445
452
|
}
|