telephone-clients 3.0.103-7 → 3.0.103-71

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 (77) hide show
  1. package/package.json +3 -3
  2. package/src/App.vue +5 -3
  3. package/src/components/Util/RightTreeSafe.vue +2 -2
  4. package/src/components/Util/RightTreeSafeDep.vue +350 -0
  5. package/src/components/android/AddMyTask.vue +7 -0
  6. package/src/components/pc/RepairsWork.vue +19 -0
  7. package/src/components/pc/RoleSelectorDep.vue +158 -0
  8. package/src/components/pc/TelFindUser.vue +1 -1
  9. package/src/components/pc/TelListener.vue +47 -16
  10. package/src/components/pc/WorkCenter.vue +1 -1
  11. package/src/components/pc/WorkCenterList.vue +1 -1
  12. package/src/components/pc/WorkHistory.vue +560 -548
  13. package/src/components/pc/WorkListAllNew.vue +1 -1
  14. package/src/components/pc/WorkListNew.vue +9 -3
  15. package/src/components/pc/olddata/OldWorkList.vue +193 -0
  16. package/src/components/telreport/RepairsDetailsReport.vue +98 -0
  17. package/src/components/telreport/TableFaultReport.vue +96 -0
  18. package/src/components/telreport/Traffic.vue +3 -3
  19. package/src/components/temp/InfoTable.vue +5 -2
  20. package/src/components/temp/OldRepairList.vue +100 -0
  21. package/src/components/weinan/SiteSend.vue +2 -2
  22. package/src/components/weinan/SiteSendWeixiu.vue +7 -16
  23. package/src/components/weinan/StandWorkWeixiu.vue +1 -1
  24. package/src/components/weinan/WorkList.vue +73 -0
  25. package/src/components/weinan/WorkListAll.vue +90 -14
  26. package/src/components/weinan/WorkListWeixiu.vue +1 -1
  27. package/src/components/workorder/CompletedRepair.vue +269 -183
  28. package/src/components/workorder/FaultAll.vue +9 -9
  29. package/src/components/workorder/PhoneUpDetail.vue +3 -0
  30. package/src/components/workorder/RepairFirstV.vue +1 -1
  31. package/src/filiale/kelai/pc/WorkCenterList.vue +20 -3
  32. package/src/filiale/kelai/pc/WorkListAllNew.vue +47 -9
  33. package/src/filiale/kelai/pc/serviceDeleteOrder.vue +55 -0
  34. package/src/filiale/kelai/telephone.js +9 -8
  35. package/src/filiale/qianneng/android/FaultAll.vue +1 -1
  36. package/src/filiale/qianneng/android/TemporarySingle.vue +25 -0
  37. package/src/filiale/qianneng/pc/MaterialDetailed.vue +10 -0
  38. package/src/filiale/qianneng/pc/MaterialStatistics.vue +144 -0
  39. package/src/filiale/qianneng/pc/NewRepairPaper.vue +2 -2
  40. package/src/filiale/qianneng/pc/RepairsWork.vue +12 -2
  41. package/src/filiale/qianneng/pc/WorkHistory.vue +2 -2
  42. package/src/filiale/qianneng/pc/WorkListAllNew.vue +53 -5
  43. package/src/filiale/qianneng/telephone.js +1 -0
  44. package/src/filiale/rizhao/pc/DispatchMan.vue +3 -3
  45. package/src/filiale/rizhao/pc/DispatchWork.vue +3 -3
  46. package/src/filiale/rizhao/pc/Traffic.vue +3 -3
  47. package/src/filiale/rizhao/pc/WorkListAllNew.vue +8 -3
  48. package/src/filiale/rongcheng/CliWorkListAll.vue +440 -407
  49. package/src/filiale/rongcheng/FaultAll.vue +3 -3
  50. package/src/filiale/rongcheng/RepairOrderV.vue +1445 -0
  51. package/src/filiale/rongcheng/telephoneAndroid.js +3 -1
  52. package/src/filiale/shanxian/android/RepairFirstV.vue +5 -1
  53. package/src/filiale/shanxian/pc/RepairsWork.vue +826 -0
  54. package/src/filiale/shanxian/telephone.js +2 -1
  55. package/src/filiale/shexian/android/AddMyTask.vue +7 -0
  56. package/src/filiale/shexian/android/CompletedRepair.vue +280 -0
  57. package/src/filiale/shexian/android/FaultAll.vue +16 -0
  58. package/src/filiale/shexian/android/Outlay.vue +182 -165
  59. package/src/filiale/shexian/android/RepairFirstV.vue +16 -2
  60. package/src/filiale/shexian/android/RepairInfo.vue +1 -0
  61. package/src/filiale/shexian/pc/TelByOrderManCount.vue +10 -2
  62. package/src/filiale/shexian/pc/WorkList.vue +25 -1
  63. package/src/filiale/shexian/pc/WorkListAllNew.vue +65 -61
  64. package/src/filiale/shexian/telephoneAndroid.js +3 -0
  65. package/src/filiale/tongchuan/android/TicketDetails.vue +3 -0
  66. package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +2 -2
  67. package/src/filiale/wenxi/pc/FailureEdit.vue +1 -1
  68. package/src/filiale/wenxi/pc/RepairsWork.vue +15 -0
  69. package/src/filiale/wenxi/pc/WorkListAll.vue +5 -2
  70. package/src/filiale/wenxi/telephone.js +1 -7
  71. package/src/filiale/yuncheng/pc/TelFindUser.vue +302 -0
  72. package/src/filiale/yuncheng/telephone.js +12 -0
  73. package/src/filiale/zhongsheng/android/FaultAll.vue +830 -0
  74. package/src/filiale/zhongsheng/telephoneAndroid.js +2 -1
  75. package/src/main.js +1 -1
  76. package/src/telephone.js +746 -733
  77. package/src/weinan.js +6 -0
@@ -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.aChannel)">监听</button-link>
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
- listen(val){
111
- val = val + ''
131
+ listen(val){
132
+ let valaChannel = val.aChannel + ''
112
133
  let http1 = new HttpResetClass()
113
- http1.load('POST', data.voiceUrl, {aId: Util.f.id, RecordsID:'',aChannel:this.aChannel, aModule:1, aBzType:"listen", bzExtra: val, bzId: "1", aName: Util.f.name,RoleId:"话务员"}, {resolveMsg: null, rejectMsg: null}).then((req) => {
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
 
@@ -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 === '结案'" style="height: 200px;">
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>