telephone-clients 3.0.104-5 → 3.0.104-50

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 (46) hide show
  1. package/package.json +3 -3
  2. package/src/components/guoxin/Console.vue +42 -14
  3. package/src/components/guoxin/call.state.api.js +3 -1
  4. package/src/components/pc/RecordListLeft.vue +39 -10
  5. package/src/components/pc/RepairsWork.vue +30 -3
  6. package/src/components/pc/SiteSend.vue +36 -1
  7. package/src/components/pc/TelLossList.vue +18 -1
  8. package/src/components/pc/WorkList.vue +2 -1
  9. package/src/components/pc/WorkListAllNew.vue +16 -8
  10. package/src/components/sendsingle/onlinequeryuser.vue +1 -1
  11. package/src/components/telreport/TrafficClassificationReport.vue +10 -9
  12. package/src/components/temp/HandplanInfo.vue +5 -1
  13. package/src/components/temp/InstructInfo.vue +1 -1
  14. package/src/components/workorder/RepairPaperAndroid.vue +351 -0
  15. package/src/components/workorder/ServiceOnlineQuery.vue +306 -0
  16. package/src/filiale/hanzhong/telephone.js +1 -1
  17. package/src/filiale/jiaocheng/android/createQRcode.vue +204 -0
  18. package/src/filiale/jiaocheng/android/onlineBuyGas.vue +637 -0
  19. package/src/filiale/jiaocheng/telephone.js +8 -0
  20. package/src/filiale/jiaocheng/telephoneAndroid.js +15 -0
  21. package/src/filiale/rizhao/pc/WorkListAllNew.vue +9 -5
  22. package/src/filiale/rizhao/telephone.js +1 -1
  23. package/src/filiale/shanxian/pc/TelFindUser.vue +310 -0
  24. package/src/filiale/shanxian/pc/WorkList.vue +2 -2
  25. package/src/filiale/shanxian/telephone.js +1 -0
  26. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +9 -9
  27. package/src/filiale/shexian/pc/WorkList.vue +4 -1
  28. package/src/filiale/shexian/pc/WorkListAllNew.vue +14 -1
  29. package/src/filiale/tongchuan/android/RepairDetails.vue +623 -0
  30. package/src/filiale/tongchuan/pc/AnalysisMain.vue +7 -7
  31. package/src/filiale/tongchuan/telephoneAndroid.js +1 -0
  32. package/src/filiale/wenxi/android/FaultAll.vue +710 -0
  33. package/src/filiale/wenxi/android/RepairOrderV.vue +1 -1
  34. package/src/filiale/wenxi/android/ZHihuanFirst.vue +3 -0
  35. package/src/filiale/wenxi/pc/DistributeWork.vue +1 -1
  36. package/src/filiale/wenxi/pc/RepairsWork.vue +143 -64
  37. package/src/filiale/wenxi/pc/TelAgentVoiceReport.vue +290 -0
  38. package/src/filiale/wenxi/pc/WorkListAll.vue +1 -1
  39. package/src/filiale/wenxi/telephone.js +2 -0
  40. package/src/filiale/wenxi/telephoneAndroid.js +2 -1
  41. package/src/filiale/wuhai/telephone.js +1 -1
  42. package/src/filiale/yuncheng/pc/TelFindUser.vue +14 -1
  43. package/src/filiale/yuncheng/pc/WorkList.vue +823 -0
  44. package/src/filiale/yuncheng/telephone.js +2 -1
  45. package/src/telephone-android.js +6 -0
  46. package/src/telephone.js +1 -1
@@ -37,7 +37,7 @@
37
37
  import RepairDetails from '../../../components/workorder/RepairDetails'
38
38
  import RepairUserInfo from './RepairUserInfo'
39
39
  import Outlay from '../../../components/workorder/Outlay'
40
- import FaultAll from '../../../components/workorder/FaultAll'
40
+ import FaultAll from './FaultAll'
41
41
  import { HttpResetClass } from 'vue-client'
42
42
  import co from 'co'
43
43
  import * as Util from "../../../components/Util";
@@ -61,6 +61,9 @@
61
61
  <div v-show="row.f_remarks" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
62
62
  备注信息: {{row.f_remarks}}
63
63
  </div>
64
+ <div v-show="row.f_single_man" class="col-sm-12 col-xs-12 col-md-12 padd-div-shu">
65
+ 派单人: {{row.f_single_man}}
66
+ </div>
64
67
  </div>
65
68
  </div>
66
69
  <div class="col-sm-12 col-xs-12 col-md-12">
@@ -25,7 +25,7 @@
25
25
  <complain-work v-show="worktype === '投诉单'" v-if="meading == '转站点'" :data='user' :cleantf="cleanstart"
26
26
  :call-obj="callObj" :login-user="loginUser" v-on:commitsus="commit"></complain-work>
27
27
  <repairs-work v-show="worktype === '报修单'" :data='user' :cleantf="cleanstart" :type="type" :call-obj="callObj"
28
- :login-user="loginUser" :meading="'转维修员'" v-on:commitsus="commit"></repairs-work>
28
+ :login-user="loginUser" :meading="'转维修员'" :telsource="meading" v-on:commitsus="commit"></repairs-work>
29
29
  <gas-work v-show="worktype === '置换通气'" :data='user' :cleantf="cleanstart" :type="type" :call-obj="callObj"
30
30
  :login-user="loginUser" :meading="'转维修员'" v-on:saveend="saveend" v-on:saveing="savestart"
31
31
  v-on:commitsus="commit"></gas-work>
@@ -1,3 +1,4 @@
1
+
1
2
  <template xmlns:v-validate="http://www.w3.org/1999/xhtml">
2
3
  <div class="auto select-overspread form-horizontal auto" id="pc-repair-work">
3
4
  <work-busy :is-busy="saveing" v-show="saveing"></work-busy>
@@ -5,7 +6,7 @@
5
6
  <div class="row">
6
7
  <div class="col-sm-6 form-group form-fix-width">
7
8
  <label class="font_normal_body" style="width: 30%">来电电话</label>
8
- <input style="width: 60%" type="text" v-model='model.f_phone' class="form-control"></input>
9
+ <input style="width: 60%" type="text" readonly v-model='model.f_phone' class="form-control"></input>
9
10
  </div>
10
11
  <div class="col-sm-6 form-group form-fix-width" >
11
12
  <label class="font_normal_body" for="f_user_name" :class="model.f_user_name ? '': 'class-error' " style="width: 30%">客户姓名</label>
@@ -27,22 +28,22 @@
27
28
  <label for="f_address" class="font_normal_body" style="width: 15%">详细地址</label>
28
29
  <input style="width: 80%" type="text" class="form-control" v-model="model.f_address" id="f_address" placeholder="详细地址"
29
30
  v-el:address v-next-el="idnumber"
30
- />
31
+ />
31
32
  </div>
32
33
  <span class="col-sm-12" style="color: red;margin-left: 100px;" v-if="serviceList" >工单编号:{{serviceList.f_service_id}}此地址下有工单未处理完成</span>
33
34
  </div>
34
35
 
35
- <div class="col-sm-6 form-group form-fix-width" v-if="selectSendshow && operType != '修改工单'">
36
- <label class="font_normal_body" style="width: 30%">转接方式</label>
37
- <div class="form-control">
38
- <label v-for="handling1 in handling" >
39
- <input style="width: 60%" type="radio"
40
- v-model="model.f_handlingtype"
41
- value="{{handling1.label}}">
42
- {{handling1.label}}
43
- </label>
44
- </div>
36
+ <div class="col-sm-6 form-group form-fix-width" v-if="selectSendshow && operType != '修改工单'">
37
+ <label class="font_normal_body" style="width: 30%">转接方式</label>
38
+ <div class="form-control">
39
+ <label v-for="handling1 in handling" >
40
+ <input style="width: 60%" type="radio"
41
+ v-model="model.f_handlingtype"
42
+ value="{{handling1.label}}">
43
+ {{handling1.label}}
44
+ </label>
45
45
  </div>
46
+ </div>
46
47
  <div class="row">
47
48
  <div class="col-sm-6 form-group form-fix-width">
48
49
  <label for="f_repair" class="font_normal_body" style="width: 30%">报修类型</label>
@@ -63,6 +64,7 @@
63
64
  <input style="width: 60%" type="text" v-show="false" v-model="serviceacitivity.f_reciever"
64
65
  v-validate:f_reciever='{ required: true }'>
65
66
  <right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
67
+
66
68
  </right-tree>
67
69
  </div>
68
70
  <div class="col-sm-6 form-group form-fix-width" :class="[$v.f_reciever.required ? 'select-error' : '']" v-if="meading == '转维修员' && operType != '修改工单'">
@@ -72,22 +74,33 @@
72
74
  close-on-select v-on:change="repiarmancg" style="width: 60%"></v-select>
73
75
  </div>
74
76
  <div class="col-sm-6 form-group form-fix-width">
75
- <label class=" font_normal_body" style="width: 30%">工单来源</label>
76
- <v-select :value="model.f_source" :value-single="true"
77
- :options='sources' placeholder='请选择工单来源'
78
- close-on-select
79
- v-on:change="sourcechange" style="width: 60%"></v-select>
77
+ <label class=" font_normal_body" style="width: 30%">工单来源</label>
78
+ <v-select :value="model.f_source" :value-single="true"
79
+ :options='sources' placeholder='请选择工单来源'
80
+ close-on-select
81
+ v-on:change="sourcechange" style="width: 60%"></v-select>
82
+ </div>
83
+ <div class="col-sm-6 form-group form-fix-width">
84
+ <label class=" font_normal_body" style="width: 30%">截止天数</label>
85
+ <v-select :value="model.day" :value-single="true"
86
+ :options='days' placeholder='请选择截止天数'
87
+ close-on-select
88
+ v-on:change="daychange" style="width: 60%"></v-select>
80
89
  </div>
90
+
81
91
  <div class="col-sm-6 form-group form-fix-width">
82
- <label class=" font_normal_body" style="width: 30%">截止时间</label>
83
- <datepicker placeholder="请选择截至时间"
84
- :value.sync="model.f_finish_date"
85
- v-model="model.f_finish_date"
86
- :format="'yyyy-MM-dd HH:mm:ss'"
87
- style="width: 60%"></datepicker>
92
+ <label class=" font_normal_body" style="width: 30%">截止时间</label>
93
+ <datepicker placeholder="请选择截至时间"
94
+ :value.sync="model.f_finish_date"
95
+ v-model="model.f_finish_date"
96
+ :format="'yyyy-MM-dd HH:mm:ss'"
97
+ style="width: 60%"
98
+ :disabled="flag" ></datepicker>
88
99
  </div>
100
+
89
101
  </div>
90
- <failure-edit v-ref:failureedit :value="model.failure" @input="procFailure"></failure-edit>
102
+ <failure-edit :value="model.failure" @input="procFailure"></failure-edit>
103
+
91
104
  <div class="row">
92
105
  <div class="col-sm-12 form-input-group form-fix-width">
93
106
  <label class="font_normal_body" style="width: 15%">备&emsp;&emsp;注</label>
@@ -111,11 +124,11 @@
111
124
  </template>
112
125
 
113
126
  <script>
114
- import FailureEdit from '../pc/FailureEdit'
115
- import { HttpResetClass } from 'vue-client'
116
- import * as Util from '../../../components/Util'
127
+ import FailureEdit from '../../../components/pc/FailureEdit'
128
+ import { HttpResetClass } from 'vue-client'
129
+ import * as Util from '../../../components/Util'
117
130
 
118
- // 获取派单类型, 类型 : 转站点,转维修员,自选模式
131
+ // 获取派单类型, 类型 : 转站点,转维修员,自选模式
119
132
  let getSendType = async function (self) {
120
133
  try {
121
134
  // 如果初始化为派维修员,则不获取配置文件
@@ -203,7 +216,6 @@ import * as Util from '../../../components/Util'
203
216
  },
204
217
  data() {
205
218
  return {
206
- abc: '',
207
219
  saveing:false,
208
220
  selectSendshow:false,
209
221
  // 选择小区树参数
@@ -214,12 +226,13 @@ import * as Util from '../../../components/Util'
214
226
  addressshow: false,
215
227
  addressselect: false,
216
228
  phoneValid:false,
229
+ flag:true,
217
230
  residential: [],
218
231
  row: {
219
232
  f_residential_area: ''
220
233
  },
221
234
  residentialquery: '',
222
- servicesource:'用户来电', // 工单来源
235
+ servicesource:'话务来电', // 工单来源
223
236
  areacondition: '',
224
237
  testdata: {f_equipment: ''},
225
238
  residentialTemplate: 'f_villagename',
@@ -229,25 +242,26 @@ import * as Util from '../../../components/Util'
229
242
  serviceacitivity: [{
230
243
  f_service_acitivity_type: '派单'
231
244
  }],
232
- failure_str:'',
233
245
  f_finish_date:'',
234
- f_source:'用户来电',
246
+ f_source:'话务来电',
235
247
  f_service_id: '',
236
248
  f_contact_phone: '',
237
249
  f_meetunit: '',
238
250
  f_phone: '',
239
251
  f_user_name: '',
252
+ failure:'',
240
253
  f_address: '',
254
+ f_json: '',
241
255
  f_repair_date: Util.getNowDate(),
242
256
  f_card_id: '',
243
257
  // f_department: '', 站点选择
244
258
  f_reciever:'',
245
259
  f_remarks: '',
246
260
  f_user_type: '',
261
+ failure_str:'',
247
262
  f_area: '',
248
263
  f_unit_name:'',
249
264
  f_street: '',
250
- failure:'',
251
265
  f_residential_area: '',
252
266
  f_building: '',
253
267
  f_unit: '',
@@ -274,18 +288,23 @@ import * as Util from '../../../components/Util'
274
288
  usertypes : this.$appdata.getParam('用户类型'),
275
289
  // stands : this.$appdata.getParam('站点管理员'),
276
290
  sources: this.$appdata.getParam('工单来源'),
277
- handling:[{label:'转维修员',value:'转维修员'}],
291
+ days:this.$appdata.getParam('截止天数'),
292
+ handling:[{label:'转站点',value:'转站点'},{label:'转维修员',value:'转维修员'}],
278
293
  source:
279
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
280
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
294
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
295
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
281
296
  userid: this.$login.f.id,
297
+ is_to_other :false,
282
298
  repairers: [] // 维修员
283
299
  }
284
300
  },
285
301
  ready() {
286
302
  // 获取sendType.json配置信息 获取派单类型 转站点,转维修员,自选模式
287
- getSendType(this)
288
-
303
+ getSendType(this)
304
+ if (this.$appdata.getSingleValue('转班组长') && this.$appdata.getSingleValue('转班组长') == 'true'){
305
+ this.is_to_other = true
306
+ this.source = 'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($班组长$)))'
307
+ }
289
308
  },
290
309
  methods: {
291
310
  // 当维修员发生改变,获取维修员手机号
@@ -314,6 +333,25 @@ import * as Util from '../../../components/Util'
314
333
  this.model.f_source = val
315
334
  this.servicesource = val
316
335
  },
336
+ daychange(val){
337
+ if (val=='其他'){
338
+ this.flag = false
339
+ }else {
340
+ this.flag = true
341
+ var t = new Date();//你已知的时间
342
+ var t1= t.getTime()
343
+ val = val*1000
344
+ t.setTime(t1 + val * 60 * 60 * 24);
345
+ var Y = t.getFullYear() + '-'
346
+ var M = (t.getMonth()+1 < 10 ? '0'+(t.getMonth()+1):t.getMonth()+1) + '-'
347
+ var D = (t.getDate()< 10 ? '0'+t.getDate():t.getDate())+ ' '
348
+ var h = (t.getHours() < 10 ? '0'+t.getHours():t.getHours())+ ':'
349
+ var m = (t.getMinutes() < 10 ? '0'+t.getMinutes():t.getMinutes())+ ':'
350
+ var s = t.getSeconds() < 10 ? '0'+t.getSeconds():t.getSeconds()
351
+ this.model.f_finish_date = Y+M+D+h+m+s
352
+ console.log("当前时间:"+Y+M+D+h+m+s)
353
+ }
354
+ },
317
355
  // 获取维修员
318
356
  getEmp (role) {
319
357
  // let val = {source: 'tool.getChildrenOfResName($维修员$)', userid: `${this.$login.f.id}`}
@@ -323,8 +361,9 @@ import * as Util from '../../../components/Util'
323
361
  http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
324
362
  // let result = res.data.filter(res=>res.orgid==this.$login.f.orgid)
325
363
  res.data.forEach((item) => {
326
- this.repairers.push({label: `${item.name}`, value: item.name})
327
-
364
+ if (item.state == '在职'){
365
+ this.repairers.push({label: `${item.name}`, value: item.name})
366
+ }
328
367
  })
329
368
  })
330
369
  },
@@ -438,7 +477,11 @@ import * as Util from '../../../components/Util'
438
477
  }, {resolveMsg: null, rejectMsg: null}
439
478
  )
440
479
  },
441
- setModifyOrder() {
480
+ async setModifyOrder() {
481
+ this.meading = this.modifyOrder.f_handlingtype
482
+ if(this.meading === '转维修员' ){
483
+ await this.getEmp('维修员')
484
+ }
442
485
  this.model = Object.assign({}, this.model, this.modifyOrder)
443
486
  },
444
487
  assignObj() {
@@ -490,12 +533,13 @@ import * as Util from '../../../components/Util'
490
533
  f_user_name: '',
491
534
  failure: '',
492
535
  f_userinfo_id: '',
536
+ failure_str:'',
493
537
  f_address: '',
538
+ f_json: '',
494
539
  f_repair_date: Util.getNowDate(),
495
540
  f_card_id: '',
496
541
  f_remarks: '',
497
542
  f_user_type: '',
498
- failure_str:'',
499
543
  f_area: '',
500
544
  f_street: '',
501
545
  f_residential_area: '',
@@ -518,16 +562,15 @@ import * as Util from '../../../components/Util'
518
562
 
519
563
  }),
520
564
  this.modifyOrder = {}
521
- this.types = []
522
- this.data = {}
523
-
524
-
565
+ this.types = []
566
+ this.data = {}
525
567
  },
526
568
  save() {
569
+ //tag
527
570
  // 判断是否输入地址
528
- if(this.model.f_address == '' || this.model.f_address == undefined) {
529
- return this.$showAlert('请输入地址!', 'warning', 2000)
530
- }
571
+ if(this.model.f_address == '' || this.model.f_address == undefined) {
572
+ return this.$showAlert('请输入地址!', 'warning', 2000)
573
+ }
531
574
  if(!this.model.f_repairtype) {
532
575
  return this.$showAlert('请输入报修类型!', 'warning', 2000)
533
576
  }
@@ -565,15 +608,15 @@ import * as Util from '../../../components/Util'
565
608
  name: this.loginUser.name,
566
609
  ename: this.loginUser.ename
567
610
  },
568
- user: this.data, callObj: this.callObj
611
+ user: this.data, callObj: this.callObj
569
612
  }
570
613
  // 如果是修改工单,受理人还是原始的 派单人 不做修改
571
614
  if(this.operType == '报修'){
572
615
  data.model.f_attendant = this.loginUser.name
573
616
  }
574
- //tag)
575
- // // 获得数据发送地址
576
- // let url = config[this.operType].url
617
+ if(data.model.failure){
618
+ data.model.f_json = this.trouble(data.model.failure)
619
+ }
577
620
  // 获得数据发送地址
578
621
  let url = ''
579
622
  if(this.meading === '转站点'){
@@ -582,14 +625,20 @@ import * as Util from '../../../components/Util'
582
625
  url = config[this.operType].url
583
626
  data.toRepair = '一级派单'
584
627
  }
628
+ data.model.f_state = null
585
629
  this.saveing = true
630
+
631
+ if (this.is_to_other){
632
+ data.is_to_other = 'true'
633
+ }
634
+
586
635
  return this.$resetpost(url, data).then((data) => {
587
- if(data.data && data.data.id){
588
- this.id = JSON.parse(data.data.id).id
636
+ if(data.data && data.data.id){
637
+ this.id = JSON.parse(data.data.id).id
589
638
 
590
- }
639
+ }
591
640
  // 清空数据
592
- this.$emit('commitsus',this.model.f_phone)
641
+ this.$emit('commitsus',this.model.f_phone,this.model)
593
642
  this.cleardata()
594
643
  if (this.callObj && this.callObj.callNum) {
595
644
  this.callObj.callNum = null
@@ -599,6 +648,8 @@ import * as Util from '../../../components/Util'
599
648
  Util.afterCallBz(this.$login.f.id, this.$login.f.name)
600
649
  }
601
650
  this.saveing = false
651
+ }).catch(error=>{
652
+ this.saveing = false
602
653
  })
603
654
  },
604
655
  address() {
@@ -633,10 +684,36 @@ import * as Util from '../../../components/Util'
633
684
  this.model.failure = value
634
685
  }
635
686
  },
687
+ trouble(val) {
688
+ let failureall = ''
689
+ // val=[{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""},{"f_failure_type":"抽油烟机","failurecase":[],"f_equipment":""}]
690
+
691
+ let failure = JSON.parse(val)
692
+ for (let i = 0; i < failure.length; i++) {
693
+ if (failure[i].failurecase.length > 0) {
694
+ failureall += failure[i].f_failure_type + ":"
695
+ for (let j = 0; j < failure[i].failurecase.length; j++) {
696
+ failureall += failure[i].failurecase[j]
697
+ if (j + 1 != failure[i].failurecase.length) {
698
+ failureall += ","
699
+ }
700
+ }
701
+ } else {
702
+ failureall += failure[i].f_failure_type
703
+ }
704
+ if (i + 1 != failure.length) {
705
+ failureall += ';'
706
+ }
707
+ }
708
+ return failureall
709
+ },
636
710
  },
637
711
  watch: {
638
712
  // 转接类型
639
713
  'model.f_handlingtype'(){
714
+ if(this.operType === '修改工单'){
715
+ return
716
+ }
640
717
  // 清楚上次记录
641
718
  this.model.serviceacitivity[0].f_reciever = ''
642
719
  this.model.serviceacitivity[0].f_meetunit =''
@@ -664,12 +741,13 @@ import * as Util from '../../../components/Util'
664
741
  this.phoneValid = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/.test(this.model.f_contact_phone)
665
742
  },
666
743
  // 话务对象发生变化将来电电话赋值给f_phone
667
- // 'callObj.callNum' () {
668
- // this.cleardata()
669
- // this.model.f_phone = this.callObj.callNum
670
- // // this.model.f_contact_phone = this.callObj.callNum
671
- // this.model.f_repair_date = Util.getNowDate()
672
- // },
744
+ 'callObj.callNum' () {
745
+ this.cleardata()
746
+ this.model.f_phone = this.callObj.callNum
747
+ this.model.f_records_id = this.callObj.RecordsID
748
+ // this.model.f_contact_phone = this.callObj.callNum
749
+ this.model.f_repair_date = Util.getNowDate()
750
+ },
673
751
  'types.length' () {
674
752
  var ev = new Event("resize", {"bubbles": true, "cancelable": false});
675
753
  window.dispatchEvent(ev);
@@ -761,7 +839,8 @@ import * as Util from '../../../components/Util'
761
839
  }
762
840
  },
763
841
  components: {
764
- FailureEdit
842
+ FailureEdit,
843
+ 'failure-edit': FailureEdit
765
844
  }
766
845
  }
767
846