telephone-clients 3.0.103 → 3.0.104-11

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 (132) hide show
  1. package/package.json +3 -3
  2. package/src/App.vue +54 -56
  3. package/src/assets//345/210/240/351/231/244.png +0 -0
  4. package/src/components/Util/RightTreeSafe.vue +2 -2
  5. package/src/components/Util/RightTreeSafeDep.vue +350 -0
  6. package/src/components/android/AddMyTask.vue +7 -0
  7. package/src/components/guoxin/Console.vue +9 -0
  8. package/src/components/guoxin/VisitInfo.vue +0 -11
  9. package/src/components/pc/NewRepairPaper.vue +370 -370
  10. package/src/components/pc/RepairsWork.vue +23 -2
  11. package/src/components/pc/RoleSelectorDep.vue +158 -0
  12. package/src/components/pc/TelFindUser.vue +1 -1
  13. package/src/components/pc/TelListener.vue +47 -16
  14. package/src/components/pc/VisitInfo.vue +44 -17
  15. package/src/components/pc/WorkCenter.vue +1 -1
  16. package/src/components/pc/WorkCenterList.vue +1 -1
  17. package/src/components/pc/WorkHistory.vue +20 -2
  18. package/src/components/pc/WorkListAll.vue +1 -1
  19. package/src/components/pc/WorkListAllNew.vue +10 -3
  20. package/src/components/pc/WorkListNew.vue +9 -3
  21. package/src/components/pc/olddata/OldWorkList.vue +193 -0
  22. package/src/components/telreport/RepairsDetailsReport.vue +98 -0
  23. package/src/components/telreport/TableFaultReport.vue +96 -0
  24. package/src/components/telreport/Traffic.vue +3 -3
  25. package/src/components/telreport/TrafficClassificationReport.vue +134 -0
  26. package/src/components/temp/ChangemeterInfo.vue +75 -87
  27. package/src/components/temp/DeviceInfo.vue +80 -82
  28. package/src/components/temp/HandplanInfo.vue +14 -3
  29. package/src/components/temp/InfoTable.vue +5 -2
  30. package/src/components/temp/MetereadInfo.vue +1 -4
  31. package/src/components/temp/OldRepairList.vue +100 -0
  32. package/src/components/temp/RepairList.vue +2 -2
  33. package/src/components/weinan/Console.vue +1 -1
  34. package/src/components/weinan/RecordList.vue +2 -2
  35. package/src/components/weinan/SiteSend.vue +2 -2
  36. package/src/components/weinan/SiteSendWeixiu.vue +7 -16
  37. package/src/components/weinan/StandWorkWeixiu.vue +1 -1
  38. package/src/components/weinan/WorkList.vue +73 -0
  39. package/src/components/weinan/WorkListAll.vue +90 -14
  40. package/src/components/weinan/WorkListWeixiu.vue +1 -1
  41. package/src/components/workorder/CompletedRepair.vue +269 -183
  42. package/src/components/workorder/FaultAll.vue +826 -826
  43. package/src/components/workorder/PhoneStandWork.vue +354 -354
  44. package/src/components/workorder/PhoneUpDetail.vue +3 -0
  45. package/src/components/workorder/RepairDetails.vue +12 -2
  46. package/src/components/workorder/RepairFirstV.vue +1 -1
  47. package/src/components/workorder/RepairOrderV.vue +1446 -1446
  48. package/src/filiale/furuike/pc/ComplainWork.vue +348 -348
  49. package/src/filiale/furuike/pc/Seekwork.vue +352 -352
  50. package/src/filiale/gongyi/android/RepairOrderV.vue +1415 -1415
  51. package/src/filiale/hanzhong/telephone.js +1 -1
  52. package/src/filiale/kelai/android/AppTakePic.vue +143 -0
  53. package/src/filiale/kelai/android/PhoneVentilationLeave.vue +176 -0
  54. package/src/filiale/kelai/pc/WorkCenterList.vue +20 -3
  55. package/src/filiale/kelai/pc/WorkListAllNew.vue +47 -9
  56. package/src/filiale/kelai/pc/serviceDeleteOrder.vue +55 -0
  57. package/src/filiale/kelai/telephone.js +9 -8
  58. package/src/filiale/kelai/telephoneAndroid.js +3 -1
  59. package/src/filiale/liaoyuan/android/RepairOrderV.vue +831 -831
  60. package/src/filiale/qianneng/android/FaultAll.vue +883 -883
  61. package/src/filiale/qianneng/android/MaterIialOne.vue +123 -123
  62. package/src/filiale/qianneng/android/RepairOrderV.vue +874 -874
  63. package/src/filiale/qianneng/android/TemporarySingle.vue +25 -0
  64. package/src/filiale/qianneng/android/chargesList.vue +161 -161
  65. package/src/filiale/qianneng/pc/MaterialDetailed.vue +15 -3
  66. package/src/filiale/qianneng/pc/MaterialStatistics.vue +144 -0
  67. package/src/filiale/qianneng/pc/NewRepairPaper.vue +467 -467
  68. package/src/filiale/qianneng/pc/RepairsWork.vue +992 -982
  69. package/src/filiale/qianneng/pc/WorkHistory.vue +2 -2
  70. package/src/filiale/qianneng/pc/WorkListAllNew.vue +53 -5
  71. package/src/filiale/qianneng/pc/changetable.vue +273 -0
  72. package/src/filiale/qianneng/telephone.js +2 -0
  73. package/src/filiale/rizhao/pc/DispatchMan.vue +3 -3
  74. package/src/filiale/rizhao/pc/DispatchWork.vue +3 -3
  75. package/src/filiale/rizhao/pc/Traffic.vue +3 -3
  76. package/src/filiale/rizhao/pc/WorkListAllNew.vue +8 -3
  77. package/src/filiale/rizhao/telephone.js +1 -1
  78. package/src/filiale/rongcheng/CliWorkListAll.vue +442 -407
  79. package/src/filiale/rongcheng/FaultAll.vue +3 -3
  80. package/src/filiale/rongcheng/RepairOrderV.vue +1445 -0
  81. package/src/filiale/rongcheng/telephoneAndroid.js +3 -1
  82. package/src/filiale/shanxian/android/RepairFirstV.vue +5 -1
  83. package/src/filiale/shanxian/pc/RepairsWork.vue +826 -0
  84. package/src/filiale/shanxian/pc/WorkList.vue +1 -1
  85. package/src/filiale/shanxian/telephone.js +13 -12
  86. package/src/filiale/shexian/android/AddMyTask.vue +7 -0
  87. package/src/filiale/shexian/android/CompletedRepair.vue +280 -0
  88. package/src/filiale/shexian/android/FaultAll.vue +847 -0
  89. package/src/filiale/shexian/android/Outlay.vue +182 -165
  90. package/src/filiale/shexian/android/RepairFirstV.vue +16 -2
  91. package/src/filiale/shexian/android/RepairInfo.vue +1 -0
  92. package/src/filiale/shexian/pc/QueryVisitHistory.vue +237 -0
  93. package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +271 -0
  94. package/src/filiale/shexian/pc/TelByOrderManCount.vue +10 -2
  95. package/src/filiale/shexian/pc/WorkList.vue +782 -740
  96. package/src/filiale/shexian/pc/WorkListAllNew.vue +75 -67
  97. package/src/filiale/shexian/telephone.js +21 -18
  98. package/src/filiale/shexian/telephoneAndroid.js +32 -26
  99. package/src/filiale/tongchuan/android/RepairDetails.vue +623 -0
  100. package/src/filiale/tongchuan/android/TicketDetails.vue +3 -0
  101. package/src/filiale/tongchuan/pc/UserWork.vue +805 -805
  102. package/src/filiale/tongchuan/pc/WorkOrderStatistics.vue +2 -2
  103. package/src/filiale/tongchuan/telephone.js +52 -52
  104. package/src/filiale/tongchuan/telephoneAndroid.js +23 -22
  105. package/src/filiale/wenxi/android/FailureShow.vue +61 -0
  106. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +1053 -0
  107. package/src/filiale/wenxi/android/RepairInfo.vue +158 -74
  108. package/src/filiale/wenxi/android/RepairOrderV.vue +805 -1419
  109. package/src/filiale/wenxi/android/RepairUserInfo.vue +532 -0
  110. package/src/filiale/wenxi/android/ZHihuanFirst.vue +502 -0
  111. package/src/filiale/wenxi/pc/DistributeWork.vue +107 -121
  112. package/src/filiale/wenxi/pc/FailureEdit.vue +1 -1
  113. package/src/filiale/wenxi/pc/GasWork.vue +747 -0
  114. package/src/filiale/wenxi/pc/MetereadInfo.vue +82 -0
  115. package/src/filiale/wenxi/pc/RepairsWork.vue +15 -0
  116. package/src/filiale/wenxi/pc/TelFindUser.vue +213 -116
  117. package/src/filiale/wenxi/pc/WorkListAll.vue +348 -297
  118. package/src/filiale/wenxi/telephone.js +4 -5
  119. package/src/filiale/wenxi/telephoneAndroid.js +4 -1
  120. package/src/filiale/wuan/android/RepairOrderV.vue +1384 -1384
  121. package/src/filiale/wuhai/telephone.js +1 -1
  122. package/src/filiale/yuncheng/pc/TelFindUser.vue +302 -0
  123. package/src/filiale/yuncheng/telephone.js +12 -0
  124. package/src/filiale/zhongsheng/android/FaultAll.vue +741 -0
  125. package/src/filiale/zhongsheng/android/RepairOrderV.vue +1430 -1430
  126. package/src/filiale/zhongsheng/android/RepairUserInfo.vue +241 -214
  127. package/src/filiale/zhongsheng/pc/RepairsWork.vue +775 -775
  128. package/src/filiale/zhongsheng/telephone.js +23 -23
  129. package/src/filiale/zhongsheng/telephoneAndroid.js +2 -1
  130. package/src/main.js +1 -1
  131. package/src/telephone.js +17 -1
  132. package/src/weinan.js +6 -0
@@ -1,348 +1,348 @@
1
- <template>
2
- <div class="container-fluid auto">
3
- <work-busy :is-busy="saveing" v-show="saveing"></work-busy>
4
- <validator name="v">
5
- <div class="row" >
6
- <div class="row form-fix-width">
7
- <label class="font_normal_body" style="width: 15%" title="参数名称:投诉内容">来电内容</label>
8
- <div class="form-control" style="width: 80%;float: left">
9
- <label class="checkbox-inline checkbox-fix-width" style="width:25%" v-for="content in contents" >
10
- <input type="checkbox"
11
- :value="content.value"
12
- v-model="complaintstext">
13
- {{content.value}}
14
- </label>
15
- </div>
16
- </div>
17
- <div class="row" v-if="picked=='done'">
18
- <div class="row form-fix-width">
19
- <label class="font_normal_body" style="width: 15%">处理记录</label>
20
- <div class="form-control" style="width: 80%;float: left">
21
- <!--多选框值 -->
22
- <textarea style="width: 100%" class="form-control ver-textarea" disabled v-model="complaintstext"></textarea>
23
- <!--手动输入值 -->
24
- <textarea style="width: 100%" name="name" rows="3" v-model="complaints" class="form-control ver-textarea" ></textarea>
25
- </div>
26
- </div>
27
- </div>
28
- </div>
29
- <div class="row">
30
- <div class="col-sm-6 form-group form-fix-width">
31
- <label class="font_normal_body" style="width: 30%">来电电话</label>
32
- <input type="text" name="" v-model='model.f_phone' class="form-control" readonly="readonly" style="width: 60%">
33
- </div>
34
- <div class="col-sm-6 form-group form-fix-width">
35
- <label class="font_normal_body" style="width: 30%">联系人</label>
36
- <input type="text" name="" v-model='model.f_user_name' class="form-control" style="width: 60%">
37
- </div>
38
- </div>
39
- <div class="row">
40
- <div class="col-sm-6 form-group form-fix-width">
41
- <label class="font_normal_body" style="width: 30%">联系电话</label>
42
- <input type="text" name="" v-model='model.f_contact_phone' :readonly="is_context_phone" class="form-control" style="width: 60%">
43
- </div>
44
- <div class="col-sm-6 form-group form-fix-width">
45
- <label class=" font_normal_body" style="width: 30%">处理方式</label>
46
- <v-select :value="picked1" :value-single="true"
47
- v-model="picked1"
48
- :options='handling'
49
- close-on-select
50
- v-on:change="sourcechange" style="width: 60%"></v-select>
51
- </div>
52
- <!--<div class="col-sm-6 form-group form-fix-width" style="padding: 0px 50px 0px 15px;" v-if="isComplainSendOrHandle">
53
- <label class="font_normal_body" style="width: 30%">处理方式</label>
54
- <div style="width:60%;border: 1px solid black">
55
- <label class="font_normal_body" for="one"></label>
56
- <input class="" type="radio" id="one" value="wait" v-model="picked">
57
- <label class="font_normal_body" for="two" >处理</label>
58
- <input class="" type="radio" id="two" value="done" v-model="picked">
59
- </div>
60
- </div>-->
61
-
62
- </div>
63
- <!-- <div class="row" v-if="picked=='done'">-->
64
- <!-- <div class="col-sm-12 form-input-group form-fix-width" :class="$v.f_complaint_results.required ? 'has-error' : ''">-->
65
- <!-- <label class="font_normal_body" style="width: 15%">投诉处理</label>-->
66
- <!-- <textarea name="name" rows="3" v-model="model.f_complaint_results" class="form-control ver-textarea" v-validate:f_complaint_results="['required']" style="width: 80%"></textarea>-->
67
- <!-- </div>-->
68
- <!-- </div>-->
69
- <div class="row" v-if="picked=='wait'" >
70
- <div class="col-sm-6 form-group form-fix-width" >
71
- <label class=" font_normal_body" style="width:30%">选择站点</label>
72
- <input style="width: 60%;height:100%" type="text" v-show="false" v-model="model.f_reciever">
73
- <right-tree style="height:auto" :width="'100%'" islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
74
- </right-tree>
75
- </div>
76
- </div>
77
- <!-- <div class="row">
78
- <div class="col-sm-12 form-input-group">
79
- <label class="font_normal_body">用户地址</label>
80
- <input type="text" name="" :value='model.f_address' class="form-control">
81
- </div>
82
- </div>-->
83
- <div class="row">
84
- <div class="col-sm-12 form-input-group form-fix-width">
85
- <label class="font_normal_body" style="width: 15%">备&emsp;&emsp;注</label>
86
- <textarea name="name" rows="3" v-model="model.f_remarks" class="form-control ver-textarea" style="width: 80%"></textarea>
87
- </div>
88
- </div>
89
- <div class="row">
90
- <button type="button" name="button" style="float: left" class="button_spacing button_search" @click="updateSecPhone">
91
- 设置此来电为用户的第二联系电话
92
- </button>
93
- <button type="button" name="button" class="button_spacing button_search" style="float: right" @click="saveComplainData">
94
- 提&nbsp;&nbsp;&nbsp;交
95
- </button>
96
- <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;float: right" class="button_spacing button_search" @click="cleardata()">
97
- 清空
98
- </button>
99
- <!-- <button type="button" name="button" class="btn btn-danger btn-ln fr" data-toggle="dropdown"
100
- @click="print(row)">
101
- 打&nbsp;&nbsp;&nbsp;印
102
- </button>-->
103
- </div>
104
- </validator>
105
- <complain-msg v-if="showcheckmsg" :show="showcheckmsg" :data="model"></complain-msg>
106
- </div>
107
-
108
-
109
- </template>
110
- <script>
111
- import * as Util from '../../../components/Util'
112
- import {HttpResetClass} from "vue-client";
113
-
114
- export default {
115
- title: '投诉单',
116
- props: {
117
- data: {
118
- type: Object
119
- },
120
- callObj: {
121
- type: Object
122
- },
123
- loginUser: {
124
- type: Object
125
- },
126
- cleantf: {
127
- type: Number
128
- }
129
- },
130
- data () {
131
- return {
132
- saveing:false,
133
- picked: 'done', //待办/已办
134
- picked1:'处理',
135
- showcheckmsg: false,
136
- checkInfo: {},
137
- complaintstext: [],
138
- complaints:'',
139
- contents:this.$appdata.getParam('投诉内容')?this.$appdata.getParam('投诉内容'):[],
140
- f_content:'',
141
- is_context_phone: true,
142
- model: {
143
- // 一次派单
144
- serviceacitivity: [{
145
- f_service_acitivity_type: '派单',
146
- f_meetunit:'',
147
- f_reciever:'',
148
- f_complaint_results:''
149
- }],
150
- picked: this.picked, //待办/已办
151
- f_content: '', //投诉内容
152
- f_user_name: '',
153
- f_phone: '',
154
- f_contact_phone: '',
155
- f_remarks: '',
156
- aState: null,
157
- f_source:'用户来电',
158
- f_orgid:this.$login.f.orgid,
159
- f_orgname:this.$login.f.orgs,
160
- f_depname:this.$login.f.dops,
161
- f_depid:this.$login.f.depids,
162
- f_operator:this.$login.f.name,
163
- f_address:'',
164
- f_time:'',
165
- f_operatorid:this.$login.f.id,
166
- f_filiale_id : this.$login.f.orgid,
167
- f_filiale : this.$login.f.orgs,
168
- f_reciever:'',
169
-
170
- f_complaint_results:''
171
- },
172
- handling:[{label:'处理',value:'处理'},{label:'下派',value:'下派'}],
173
- source:
174
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
175
- 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
176
- userid: this.$login.f.id
177
- }
178
- },
179
- ready () {
180
- if (this.data) {
181
- this.assignObj()
182
- }
183
- },
184
- methods: {
185
- updateSecPhone(){
186
- if (!this.model.f_phone){
187
- return this.$showAlert('暂无来电', 'warning', 2000)
188
- }
189
- if (!this.model.f_userinfo_id){
190
- return this.$showAlert('请选择一个用户', 'warning', 2000)
191
- }
192
- if (this.model.f_contact_phone == this.model.f_phone){
193
- return this.$showAlert('用户联系电话与来电相同', 'warning', 2000)
194
- }
195
- const data = {
196
- f_user_phone2: this.model.f_phone,
197
- f_userinfo_id: this.model.f_userinfo_id
198
- }
199
- new HttpResetClass().load('post', '/rs/logic/updateSecPhone', data).then((data) => {})
200
- // this.$resetpost('/rs/logic/updateSecPhone', data).then((data) => {})
201
- },
202
- sourcechange(val){
203
- //tag
204
- this.picked=val=='处理'?'done':'wait'
205
- },
206
- print(row) {
207
- this.showcheckmsg = true
208
- this.checkInfo = row
209
- },
210
- saveComplainData () {
211
- if (this.picked=='done'&&this.complaints==''){
212
- return this.$showAlert('请填写处理记录', 'warning', 2000)
213
- }
214
- if (this.picked=='wait'&&this.model.serviceacitivity[0].f_reciever==''){
215
- return this.$showAlert('请选择站点!', 'warning', 2000)
216
- }
217
- if (this.complaintstext==''){
218
- return this.$showAlert('请填写投诉来电内容', 'warning', 2000)
219
- }
220
- this.saveing = true
221
- if (this.picked=='done'){
222
- this.model.serviceacitivity = [
223
- {f_result_status:'已完成',f_complaint_results:this.model.f_complaint_results}];
224
- }
225
- this.model.picked = this.picked
226
- delete this.model.id
227
- this.model.f_content = this.complaintstext.toString() +','+ this.complaints
228
- //tag
229
- new HttpResetClass().load('post', 'rs/logic/saveComplaint',{model: this.model, loginUser: {name: this.loginUser.name, ename: this.loginUser.ename}, callObj: this.callObj},{resolveMsg: null, rejectMsg: null}).then(() => {
230
- // 清空数据
231
- this.$emit('commitsus',this.model.f_phone)
232
- this.cleardata()
233
- if (this.callObj && this.callObj.callNum) {
234
- this.callObj.callNum = null
235
- this.callObj.RecordsID = null
236
- //tag
237
- Util.afterCallBz(this.$login.f.id, this.$login.f.name)
238
- }
239
- this.saveing = false
240
-
241
- })
242
- },
243
- assignObj () {
244
- this.model = Object.assign(this.model, {}, this.data)
245
- this.model.f_user_name = this.data.f_user_name
246
- this.model.f_contact_phone = this.data.f_user_phone
247
-
248
- this.is_context_phone = !!this.model.f_contact_phone
249
- //tag
250
- },
251
- cleardata () {
252
- let f_meetunit1 = this.model.serviceacitivity[0].f_meetunit;
253
- let f_reciever1 = this.model.serviceacitivity[0].f_reciever;
254
- this.model = {
255
- serviceacitivity: [{
256
- f_service_acitivity_type: '派单',
257
- f_meetunit:f_meetunit1,
258
- f_reciever:f_reciever1,
259
- f_complaint_results:''
260
- }],
261
- f_content: '',
262
- f_user_name: '',
263
- f_phone: '',
264
- f_contact_phone: '',
265
- f_remarks: '',
266
- aState: null,
267
- f_source:'用户来电',
268
- f_orgid:this.$login.f.orgid,
269
- f_orgname:this.$login.f.orgs,
270
- f_depname:this.$login.f.dops,
271
- f_depid:this.$login.f.depids,
272
- f_operator:this.$login.f.name,
273
- f_operatorid:this.$login.f.id,
274
- f_address: '',
275
- f_time:'',
276
- f_filiale_id : this.$login.f.orgid,
277
- f_filiale : this.$login.f.orgs,
278
- picked: this.picked, //待办/已办
279
- f_complaint_results:''
280
- }
281
- this.complaintstext=[]
282
- this.complaints=''
283
- this.data = {}
284
- },
285
- // 选中部门
286
- reres(val){
287
- if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
288
- return
289
- }
290
- this.model.serviceacitivity[0].f_meetunit = val.res[0]
291
- this.model.f_meetunit = val.res[0]
292
- this.model.f_filiale_id = val.orgobj[0].parentid
293
- this.model.f_filiale = val.orgobj[0].parentname
294
- this.model.f_outlets = val.res[0]
295
- this.model.serviceacitivity[0].f_reciever = val.resids[0]
296
- this.model.f_reciever = val.resids[0]
297
- },
298
- },
299
- computed: {
300
- IsClickDisabled: function() {
301
- if (this.$v.valid) {
302
- if ( this.model.aState === null) {
303
- //tag
304
- return false
305
- }
306
- if ( this.model.f_phone && this.model.aState === '正在保存') {
307
- //tag
308
- return false
309
- }
310
- //tag
311
- return true
312
- } else {
313
- //tag
314
- return true
315
- }
316
- },
317
- isComplainSendOrHandle(){
318
- // 投诉单下派还是处理
319
- let res = this.$appdata.getSingleValue('投诉单下派或处理');
320
- if (res == 'true'){
321
- return true;
322
- }else {
323
- return false;
324
- }
325
- }
326
- },
327
- watch: {
328
- // 是否清空
329
- 'cleantf'(){
330
- this.cleardata()
331
- },
332
- 'data' () {
333
- // 组织数据
334
- this.assignObj()
335
- },
336
- // 话务对象发生变化将来电电话赋值给f_phone
337
- 'callObj' () {
338
- this.cleardata()
339
- this.model.f_phone = this.callObj.callNum
340
- this.model.f_contact_phone = this.callObj.callNum
341
- this.model.f_time=Util.toStandardTimeString()
342
- //tag
343
- this.model.aState = this.callObj.aState
344
- //tag
345
- }
346
- }
347
- }
348
- </script>
1
+ <template>
2
+ <div class="container-fluid auto">
3
+ <work-busy :is-busy="saveing" v-show="saveing"></work-busy>
4
+ <validator name="v">
5
+ <div class="row" >
6
+ <div class="row form-fix-width">
7
+ <label class="font_normal_body" style="width: 15%" title="参数名称:投诉内容">来电内容</label>
8
+ <div class="form-control" style="width: 80%;float: left">
9
+ <label class="checkbox-inline checkbox-fix-width" style="width:25%" v-for="content in contents" >
10
+ <input type="checkbox"
11
+ :value="content.value"
12
+ v-model="complaintstext">
13
+ {{content.value}}
14
+ </label>
15
+ </div>
16
+ </div>
17
+ <div class="row" v-if="picked=='done'">
18
+ <div class="row form-fix-width">
19
+ <label class="font_normal_body" style="width: 15%">处理记录</label>
20
+ <div class="form-control" style="width: 80%;float: left">
21
+ <!--多选框值 -->
22
+ <textarea style="width: 100%" class="form-control ver-textarea" disabled v-model="complaintstext"></textarea>
23
+ <!--手动输入值 -->
24
+ <textarea style="width: 100%" name="name" rows="3" v-model="complaints" class="form-control ver-textarea" ></textarea>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ <div class="row">
30
+ <div class="col-sm-6 form-group form-fix-width">
31
+ <label class="font_normal_body" style="width: 30%">来电电话</label>
32
+ <input type="text" name="" v-model='model.f_phone' class="form-control" readonly="readonly" style="width: 60%">
33
+ </div>
34
+ <div class="col-sm-6 form-group form-fix-width">
35
+ <label class="font_normal_body" style="width: 30%">联系人</label>
36
+ <input type="text" name="" v-model='model.f_user_name' class="form-control" style="width: 60%">
37
+ </div>
38
+ </div>
39
+ <div class="row">
40
+ <div class="col-sm-6 form-group form-fix-width">
41
+ <label class="font_normal_body" style="width: 30%">联系电话</label>
42
+ <input type="text" name="" v-model='model.f_contact_phone' :readonly="is_context_phone" class="form-control" style="width: 60%">
43
+ </div>
44
+ <div class="col-sm-6 form-group form-fix-width">
45
+ <label class=" font_normal_body" style="width: 30%">处理方式</label>
46
+ <v-select :value="picked1" :value-single="true"
47
+ v-model="picked1"
48
+ :options='handling'
49
+ close-on-select
50
+ v-on:change="sourcechange" style="width: 60%"></v-select>
51
+ </div>
52
+ <!--<div class="col-sm-6 form-group form-fix-width" style="padding: 0px 50px 0px 15px;" v-if="isComplainSendOrHandle">
53
+ <label class="font_normal_body" style="width: 30%">处理方式</label>
54
+ <div style="width:60%;border: 1px solid black">
55
+ <label class="font_normal_body" for="one"></label>
56
+ <input class="" type="radio" id="one" value="wait" v-model="picked">
57
+ <label class="font_normal_body" for="two" >处理</label>
58
+ <input class="" type="radio" id="two" value="done" v-model="picked">
59
+ </div>
60
+ </div>-->
61
+
62
+ </div>
63
+ <!-- <div class="row" v-if="picked=='done'">-->
64
+ <!-- <div class="col-sm-12 form-input-group form-fix-width" :class="$v.f_complaint_results.required ? 'has-error' : ''">-->
65
+ <!-- <label class="font_normal_body" style="width: 15%">投诉处理</label>-->
66
+ <!-- <textarea name="name" rows="3" v-model="model.f_complaint_results" class="form-control ver-textarea" v-validate:f_complaint_results="['required']" style="width: 80%"></textarea>-->
67
+ <!-- </div>-->
68
+ <!-- </div>-->
69
+ <div class="row" v-if="picked=='wait'" >
70
+ <div class="col-sm-6 form-group form-fix-width" >
71
+ <label class=" font_normal_body" style="width:30%">选择站点</label>
72
+ <input style="width: 60%;height:100%" type="text" v-show="false" v-model="model.f_reciever">
73
+ <right-tree style="height:auto" :width="'100%'" islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择站点管理员" :selectData="" v-ref:f_reciever>
74
+ </right-tree>
75
+ </div>
76
+ </div>
77
+ <!-- <div class="row">
78
+ <div class="col-sm-12 form-input-group">
79
+ <label class="font_normal_body">用户地址</label>
80
+ <input type="text" name="" :value='model.f_address' class="form-control">
81
+ </div>
82
+ </div>-->
83
+ <div class="row">
84
+ <div class="col-sm-12 form-input-group form-fix-width">
85
+ <label class="font_normal_body" style="width: 15%">备&emsp;&emsp;注</label>
86
+ <textarea name="name" rows="3" v-model="model.f_remarks" class="form-control ver-textarea" style="width: 80%"></textarea>
87
+ </div>
88
+ </div>
89
+ <div class="row">
90
+ <button type="button" name="button" style="float: left" class="button_spacing button_search" @click="updateSecPhone">
91
+ 设置此来电为用户的第二联系电话
92
+ </button>
93
+ <button type="button" name="button" class="button_spacing button_search" style="float: right" @click="saveComplainData">
94
+ 提&nbsp;&nbsp;&nbsp;交
95
+ </button>
96
+ <button type="button" name="button" style="background-color: #5ac0d9;border-radius: 4px;float: right" class="button_spacing button_search" @click="cleardata()">
97
+ 清空
98
+ </button>
99
+ <!-- <button type="button" name="button" class="btn btn-danger btn-ln fr" data-toggle="dropdown"
100
+ @click="print(row)">
101
+ 打&nbsp;&nbsp;&nbsp;印
102
+ </button>-->
103
+ </div>
104
+ </validator>
105
+ <complain-msg v-if="showcheckmsg" :show="showcheckmsg" :data="model"></complain-msg>
106
+ </div>
107
+
108
+
109
+ </template>
110
+ <script>
111
+ import * as Util from '../../../components/Util'
112
+ import {HttpResetClass} from "vue-client";
113
+
114
+ export default {
115
+ title: '投诉单',
116
+ props: {
117
+ data: {
118
+ type: Object
119
+ },
120
+ callObj: {
121
+ type: Object
122
+ },
123
+ loginUser: {
124
+ type: Object
125
+ },
126
+ cleantf: {
127
+ type: Number
128
+ }
129
+ },
130
+ data () {
131
+ return {
132
+ saveing:false,
133
+ picked: 'done', //待办/已办
134
+ picked1:'处理',
135
+ showcheckmsg: false,
136
+ checkInfo: {},
137
+ complaintstext: [],
138
+ complaints:'',
139
+ contents:this.$appdata.getParam('投诉内容')?this.$appdata.getParam('投诉内容'):[],
140
+ f_content:'',
141
+ is_context_phone: true,
142
+ model: {
143
+ // 一次派单
144
+ serviceacitivity: [{
145
+ f_service_acitivity_type: '派单',
146
+ f_meetunit:'',
147
+ f_reciever:'',
148
+ f_complaint_results:''
149
+ }],
150
+ picked: this.picked, //待办/已办
151
+ f_content: '', //投诉内容
152
+ f_user_name: '',
153
+ f_phone: '',
154
+ f_contact_phone: '',
155
+ f_remarks: '',
156
+ aState: null,
157
+ f_source:'用户来电',
158
+ f_orgid:this.$login.f.orgid,
159
+ f_orgname:this.$login.f.orgs,
160
+ f_depname:this.$login.f.dops,
161
+ f_depid:this.$login.f.depids,
162
+ f_operator:this.$login.f.name,
163
+ f_address:'',
164
+ f_time:'',
165
+ f_operatorid:this.$login.f.id,
166
+ f_filiale_id : this.$login.f.orgid,
167
+ f_filiale : this.$login.f.orgs,
168
+ f_reciever:'',
169
+
170
+ f_complaint_results:''
171
+ },
172
+ handling:[{label:'处理',value:'处理'},{label:'下派',value:'下派'}],
173
+ source:
174
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
175
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))',
176
+ userid: this.$login.f.id
177
+ }
178
+ },
179
+ ready () {
180
+ if (this.data) {
181
+ this.assignObj()
182
+ }
183
+ },
184
+ methods: {
185
+ updateSecPhone(){
186
+ if (!this.model.f_phone){
187
+ return this.$showAlert('暂无来电', 'warning', 2000)
188
+ }
189
+ if (!this.model.f_userinfo_id){
190
+ return this.$showAlert('请选择一个用户', 'warning', 2000)
191
+ }
192
+ if (this.model.f_contact_phone == this.model.f_phone){
193
+ return this.$showAlert('用户联系电话与来电相同', 'warning', 2000)
194
+ }
195
+ const data = {
196
+ f_user_phone2: this.model.f_phone,
197
+ f_userinfo_id: this.model.f_userinfo_id
198
+ }
199
+ new HttpResetClass().load('post', '/rs/logic/updateSecPhone', data).then((data) => {})
200
+ // this.$resetpost('/rs/logic/updateSecPhone', data).then((data) => {})
201
+ },
202
+ sourcechange(val){
203
+ //tag
204
+ this.picked=val=='处理'?'done':'wait'
205
+ },
206
+ print(row) {
207
+ this.showcheckmsg = true
208
+ this.checkInfo = row
209
+ },
210
+ saveComplainData () {
211
+ if (this.picked=='done'&&this.complaints==''){
212
+ return this.$showAlert('请填写处理记录', 'warning', 2000)
213
+ }
214
+ if (this.picked=='wait'&&this.model.serviceacitivity[0].f_reciever==''){
215
+ return this.$showAlert('请选择站点!', 'warning', 2000)
216
+ }
217
+ if (this.complaintstext==''){
218
+ return this.$showAlert('请填写投诉来电内容', 'warning', 2000)
219
+ }
220
+ this.saveing = true
221
+ if (this.picked=='done'){
222
+ this.model.serviceacitivity = [
223
+ {f_result_status:'已完成',f_complaint_results:this.model.f_complaint_results}];
224
+ }
225
+ this.model.picked = this.picked
226
+ delete this.model.id
227
+ this.model.f_content = this.complaintstext.toString() +','+ this.complaints
228
+ //tag
229
+ new HttpResetClass().load('post', 'rs/logic/saveComplaint',{model: this.model, loginUser: {name: this.loginUser.name, ename: this.loginUser.ename}, callObj: this.callObj},{resolveMsg: null, rejectMsg: null}).then(() => {
230
+ // 清空数据
231
+ this.$emit('commitsus',this.model.f_phone)
232
+ this.cleardata()
233
+ if (this.callObj && this.callObj.callNum) {
234
+ this.callObj.callNum = null
235
+ this.callObj.RecordsID = null
236
+ //tag
237
+ Util.afterCallBz(this.$login.f.id, this.$login.f.name)
238
+ }
239
+ this.saveing = false
240
+
241
+ })
242
+ },
243
+ assignObj () {
244
+ this.model = Object.assign(this.model, {}, this.data)
245
+ this.model.f_user_name = this.data.f_user_name
246
+ this.model.f_contact_phone = this.data.f_user_phone
247
+
248
+ this.is_context_phone = !!this.model.f_contact_phone
249
+ //tag
250
+ },
251
+ cleardata () {
252
+ let f_meetunit1 = this.model.serviceacitivity[0].f_meetunit;
253
+ let f_reciever1 = this.model.serviceacitivity[0].f_reciever;
254
+ this.model = {
255
+ serviceacitivity: [{
256
+ f_service_acitivity_type: '派单',
257
+ f_meetunit:f_meetunit1,
258
+ f_reciever:f_reciever1,
259
+ f_complaint_results:''
260
+ }],
261
+ f_content: '',
262
+ f_user_name: '',
263
+ f_phone: '',
264
+ f_contact_phone: '',
265
+ f_remarks: '',
266
+ aState: null,
267
+ f_source:'用户来电',
268
+ f_orgid:this.$login.f.orgid,
269
+ f_orgname:this.$login.f.orgs,
270
+ f_depname:this.$login.f.dops,
271
+ f_depid:this.$login.f.depids,
272
+ f_operator:this.$login.f.name,
273
+ f_operatorid:this.$login.f.id,
274
+ f_address: '',
275
+ f_time:'',
276
+ f_filiale_id : this.$login.f.orgid,
277
+ f_filiale : this.$login.f.orgs,
278
+ picked: this.picked, //待办/已办
279
+ f_complaint_results:''
280
+ }
281
+ this.complaintstext=[]
282
+ this.complaints=''
283
+ this.data = {}
284
+ },
285
+ // 选中部门
286
+ reres(val){
287
+ if(val.res == undefined || val.res[0] == undefined || val.res[0] == ''){
288
+ return
289
+ }
290
+ this.model.serviceacitivity[0].f_meetunit = val.res[0]
291
+ this.model.f_meetunit = val.res[0]
292
+ this.model.f_filiale_id = val.orgobj[0].parentid
293
+ this.model.f_filiale = val.orgobj[0].parentname
294
+ this.model.f_outlets = val.res[0]
295
+ this.model.serviceacitivity[0].f_reciever = val.resids[0]
296
+ this.model.f_reciever = val.resids[0]
297
+ },
298
+ },
299
+ computed: {
300
+ IsClickDisabled: function() {
301
+ if (this.$v.valid) {
302
+ if ( this.model.aState === null) {
303
+ //tag
304
+ return false
305
+ }
306
+ if ( this.model.f_phone && this.model.aState === '正在保存') {
307
+ //tag
308
+ return false
309
+ }
310
+ //tag
311
+ return true
312
+ } else {
313
+ //tag
314
+ return true
315
+ }
316
+ },
317
+ isComplainSendOrHandle(){
318
+ // 投诉单下派还是处理
319
+ let res = this.$appdata.getSingleValue('投诉单下派或处理');
320
+ if (res == 'true'){
321
+ return true;
322
+ }else {
323
+ return false;
324
+ }
325
+ }
326
+ },
327
+ watch: {
328
+ // 是否清空
329
+ 'cleantf'(){
330
+ this.cleardata()
331
+ },
332
+ 'data' () {
333
+ // 组织数据
334
+ this.assignObj()
335
+ },
336
+ // 话务对象发生变化将来电电话赋值给f_phone
337
+ 'callObj' () {
338
+ this.cleardata()
339
+ this.model.f_phone = this.callObj.callNum
340
+ this.model.f_contact_phone = this.callObj.callNum
341
+ this.model.f_time=Util.toStandardTimeString()
342
+ //tag
343
+ this.model.aState = this.callObj.aState
344
+ //tag
345
+ }
346
+ }
347
+ }
348
+ </script>