Explorar el Código

中航呼叫类型,callid修复

miaofuhao %!s(int64=2) %!d(string=hace) años
padre
commit
ebb4203443

+ 251 - 203
CallCenterWeb.UI/src/components/Teloperation/index.vue

@@ -5,24 +5,24 @@
5 5
         <transition-group type="transition" name="slide-list">
6 6
           <svg-icon v-show="!telIsLogin" key="0" icon-class="guaduan" />
7 7
           <i
8
-            v-show="telIsLogin && (telSeatState===2 && telLineState===1)"
8
+            v-show="telIsLogin && telSeatState === 2 && telLineState === 1"
9 9
             key="1"
10 10
             class="calli free"
11 11
           />
12 12
           <!-- <svg-icon v-show="telIsLogin && (telSeatState===2 && telLineState===1)" icon-class="xiuxi" /> -->
13 13
           <svg-icon
14
-            v-show="telIsLogin && (telSeatState===5 && telLineState===1)"
14
+            v-show="telIsLogin && telSeatState === 5 && telLineState === 1"
15 15
             key="2"
16 16
             icon-class="manglu01"
17 17
           />
18 18
           <svg-icon
19
-            v-show="telIsLogin && (telLineState===2)"
19
+            v-show="telIsLogin && telLineState === 2"
20 20
             key="3"
21 21
             icon-class="fenji"
22 22
             class="ringing"
23 23
           />
24 24
           <svg-icon
25
-            v-show="telIsLogin && (telLineState===3)"
25
+            v-show="telIsLogin && telLineState === 3"
26 26
             key="4"
27 27
             icon-class="huchu"
28 28
             class="ringing"
@@ -30,60 +30,97 @@
30 30
           <!-- <svg-icon v-show="telIsLogin && (telLineState===4)" icon-class="zhenling" class="ringing" /> -->
31 31
           <!-- <svg-icon v-show="telIsLogin && (telLineState===6)" icon-class="tonghuazhong01" class="incall" /> -->
32 32
           <!-- <svg-icon v-show="telIsLogin && (telLineState===10)" icon-class="tonghuazhong01" class="incall" /> -->
33
-          <i v-show="telIsLogin && (telLineState===4)" key="5" class="calli callringing" />
34
-          <i v-show="telIsLogin && (telLineState===6)" key="6" class="calli incalling" />
35
-          <i v-show="telIsLogin && (telLineState===10)" key="7" class="calli incalling" />
33
+          <i
34
+            v-show="telIsLogin && telLineState === 4"
35
+            key="5"
36
+            class="calli callringing"
37
+          />
38
+          <i
39
+            v-show="telIsLogin && telLineState === 6"
40
+            key="6"
41
+            class="calli incalling"
42
+          />
43
+          <i
44
+            v-show="telIsLogin && telLineState === 10"
45
+            key="7"
46
+            class="calli incalling"
47
+          />
36 48
         </transition-group>
37 49
       </div>
38 50
       <div class="call_content">
39 51
         <p class="call_text">
40 52
           <!-- <transition-group type="transition" name="fade-text"> -->
41 53
           <span v-show="!telIsLogin" key="8">还未开始工作</span>
42
-          <span v-show="telIsLogin && (telSeatState===2 && telLineState===1)" key="9">空闲中</span>
43
-          <span v-show="telIsLogin && (telSeatState===5 && telLineState===1)" key="10">忙碌中</span>
44
-          <span v-show="telIsLogin && (telLineState===2)" key="11">摘机中</span>
45
-          <span v-show="telIsLogin && (telLineState===3)" key="12">拨号中</span>
46
-          <span v-show="telIsLogin && (telLineState===4)" key="13">振铃中</span>
47
-          <span v-show="telIsLogin && (telLineState===6)" key="14">通话中</span>
48
-          <span v-show="telIsLogin && (telLineState===10)" key="15">保持中</span>
54
+          <span
55
+            v-show="telIsLogin && telSeatState === 2 && telLineState === 1"
56
+            key="9"
57
+            >空闲中</span
58
+          >
59
+          <span
60
+            v-show="telIsLogin && telSeatState === 5 && telLineState === 1"
61
+            key="10"
62
+            >忙碌中</span
63
+          >
64
+          <span v-show="telIsLogin && telLineState === 2" key="11">摘机中</span>
65
+          <span v-show="telIsLogin && telLineState === 3" key="12">拨号中</span>
66
+          <span v-show="telIsLogin && telLineState === 4" key="13">振铃中</span>
67
+          <span v-show="telIsLogin && telLineState === 6" key="14">通话中</span>
68
+          <span v-show="telIsLogin && telLineState === 10" key="15"
69
+            >保持中</span
70
+          >
49 71
           <!-- </transition-group>	 -->
50 72
           <svg-icon v-show="telIsLogin" icon-class="xinhao" />
51 73
         </p>
52 74
         <p
53
-          v-show="(telSeatState===2 && telLineState < 6)|| (telSeatState === 5 && telLineState < 6)"
75
+          v-show="
76
+            (telSeatState === 2 && telLineState < 6) ||
77
+            (telSeatState === 5 && telLineState < 6)
78
+          "
54 79
           class="call_time"
55
-        >--:--:--</p>
56
-        <p v-show="telIsLogin && (telLineState===6 || telLineState===10)" class="call_time">
57
-          <span v-show="Number(telCallTime.hh) === 0">{{ telCallTime.hh }}</span>
58
-          <span v-show="Number(telCallTime.hh) > 0 && Number(telCallTime.hh) < 10">
59
-            <span>{{ telCallTime.hh.substr(0,1) }}</span>
80
+        >
81
+          --:--:--
82
+        </p>
83
+        <p
84
+          v-show="telIsLogin && (telLineState === 6 || telLineState === 10)"
85
+          class="call_time"
86
+        >
87
+          <span v-show="Number(telCallTime.hh) === 0">{{
88
+            telCallTime.hh
89
+          }}</span>
90
+          <span
91
+            v-show="Number(telCallTime.hh) > 0 && Number(telCallTime.hh) < 10"
92
+          >
93
+            <span>{{ telCallTime.hh.substr(0, 1) }}</span>
60 94
             <span class="blue_color">{{ telCallTime.hh.substr(1) }}</span>
61 95
           </span>
62
-          <span v-show="Number(telCallTime.hh) > 9" class="blue_color">{{ telCallTime.hh }}</span>
63
-          <span v-show="Number(telCallTime.mm) === 0">:{{ telCallTime.mm }}</span>
64
-          <span v-show="Number(telCallTime.mm) > 0 && Number(telCallTime.mm) < 10">
65
-            <span>:{{ telCallTime.mm.substr(0,1) }}</span>
96
+          <span v-show="Number(telCallTime.hh) > 9" class="blue_color">{{
97
+            telCallTime.hh
98
+          }}</span>
99
+          <span v-show="Number(telCallTime.mm) === 0"
100
+            >:{{ telCallTime.mm }}</span
101
+          >
102
+          <span
103
+            v-show="Number(telCallTime.mm) > 0 && Number(telCallTime.mm) < 10"
104
+          >
105
+            <span>:{{ telCallTime.mm.substr(0, 1) }}</span>
66 106
             <span class="blue_color">{{ telCallTime.mm.substr(1) }}</span>
67 107
           </span>
68
-          <span v-show="Number(telCallTime.mm) > 9" class="blue_color">:{{ telCallTime.mm }}</span>
108
+          <span v-show="Number(telCallTime.mm) > 9" class="blue_color"
109
+            >:{{ telCallTime.mm }}</span
110
+          >
69 111
           <span class="blue_color ft16">:{{ telCallTime.ss }}</span>
70 112
         </p>
71 113
       </div>
72 114
     </div>
73 115
     <div v-show="telIsLogin" class="call_middle">
74 116
       <el-input
75
-        :class="{no_write: true}"
117
+        :class="{ no_write: true }"
76 118
         :readonly="true"
77 119
         v-model="telCallNum"
78 120
         size="small"
79 121
         placeholder
80 122
       />
81
-      <button
82
-
83
-        slot="reference"
84
-        class="call_btn"
85
-        @click="makeCall"
86
-      >外呼</button>
123
+      <button slot="reference" class="call_btn" @click="makeCall">外呼</button>
87 124
       <el-popover
88 125
         :value="telIsVisCallout"
89 126
         :disabled="false"
@@ -107,7 +144,7 @@
107 144
         @after-leave="afterLeave"
108 145
       >
109 146
         <!-- <Transfer /> -->
110
-        <Dialplate ref="waihu"/>
147
+        <Dialplate ref="waihu" />
111 148
       </el-popover>
112 149
     </div>
113 150
     <div class="call_right">
@@ -122,36 +159,34 @@
122 159
         >开始工作</button> -->
123 160
         <button
124 161
           v-waves
125
-
126 162
           key="17"
127 163
           type="button"
128 164
           class="call_btn"
129 165
           @click="setBusy"
130
-        >置忙</button>
166
+        >
167
+          置忙
168
+        </button>
131 169
         <button
132 170
           v-waves
133
-
134 171
           key="18"
135 172
           type="button"
136 173
           class="call_btn"
137 174
           @click="setFree"
138
-        >置闲</button>
175
+        >
176
+          置闲
177
+        </button>
139 178
         <button
140 179
           v-waves
141
-
142 180
           key="19"
143 181
           type="button"
144 182
           class="call_btn"
145 183
           @click="signOut"
146
-        >签出</button>
147
-        <button
148
-          v-waves
149
-
150
-          key="27"
151
-          type="button"
152
-          class="call_btn"
153
-          @click="signIn"
154
-        >签入</button>
184
+        >
185
+          签出
186
+        </button>
187
+        <button v-waves key="27" type="button" class="call_btn" @click="signIn">
188
+          签入
189
+        </button>
155 190
         <!-- <button
156 191
           v-waves
157 192
           v-show="telIsLogin && (telLineState===6)"
@@ -162,37 +197,45 @@
162 197
         >保持通话</button> -->
163 198
         <button
164 199
           v-waves
165
-          v-show="telIsLogin && (telLineState===6)"
200
+          v-show="telIsLogin && telLineState === 6"
166 201
           key="20"
167 202
           type="button"
168 203
           class="call_btn yellow_bg"
169 204
           @click="holdBack"
170
-        >保持通话</button>
205
+        >
206
+          保持通话
207
+        </button>
171 208
 
172 209
         <button
173 210
           v-waves
174
-          v-show="telIsLogin && (telLineState===10)"
211
+          v-show="telIsLogin && telLineState === 10"
175 212
           key="21"
176 213
           type="button"
177 214
           class="call_btn green_bg"
178 215
           @click="retrieveBack"
179
-        >接回通话</button>
216
+        >
217
+          接回通话
218
+        </button>
180 219
         <button
181 220
           v-waves
182
-          v-show="telIsLogin && (telLineState===6 || telLineState===10)"
221
+          v-show="telIsLogin && (telLineState === 6 || telLineState === 10)"
183 222
           key="24"
184 223
           type="button"
185 224
           class="call_btn"
186 225
           @click="transferCall"
187
-        >转移</button>
226
+        >
227
+          转移
228
+        </button>
188 229
         <button
189 230
           v-waves
190
-          v-show="telIsLogin && (telLineState===6 || telLineState===10)"
231
+          v-show="telIsLogin && (telLineState === 6 || telLineState === 10)"
191 232
           key="25"
192 233
           type="button"
193 234
           class="call_btn"
194 235
           @click="meetingCall"
195
-        >多方通话</button>
236
+        >
237
+          多方通话
238
+        </button>
196 239
         <!--
197 240
         <button
198 241
           v-waves
@@ -204,230 +247,236 @@
204 247
         >转IVR</button> -->
205 248
         <button
206 249
           v-waves
207
-          v-show="telIsLogin && (telLineState>2 && telLineState!==5)"
250
+          v-show="telIsLogin && telLineState > 2 && telLineState !== 5"
208 251
           key="23"
209 252
           type="button"
210 253
           class="call_btn red_bg"
211 254
           @click="dropCall"
212
-        >挂断</button>
255
+        >
256
+          挂断
257
+        </button>
213 258
       </transition-group>
214 259
     </div>
215 260
     <div v-if="telIsVisCallout" class="mask" @click="maskshow"></div>
216 261
   </div>
217
-
218 262
 </template>
219 263
 
220 264
 <script>
221
-import { mapGetters } from 'vuex'
222
-import store from '@/store'
223
-import { Send } from '@/utils/telWebsocket'
224
-import Dialplate from '@/components/Dialplate'
225
-import Transfer from '@/components/Transfer'
265
+import { mapGetters } from "vuex";
266
+import store from "@/store";
267
+import { Send } from "@/utils/telWebsocket";
268
+import Dialplate from "@/components/Dialplate";
269
+import Transfer from "@/components/Transfer";
226 270
 export default {
227
-  name: 'Teloperation',
271
+  name: "Teloperation",
228 272
   components: {
229 273
     Dialplate,
230
-    Transfer
274
+    Transfer,
231 275
   },
232 276
   data() {
233 277
     return {
234 278
       // maskshow: false,
235 279
       scoketDatas: {}, // 发送的数据
236
-      telNumber: '',
237
-      telTimer: null // 时间定时器
238
-    }
280
+      telNumber: "",
281
+      telTimer: null, // 时间定时器
282
+    };
239 283
   },
240 284
   computed: {
241 285
     ...mapGetters([
242
-      'usercode', // 工号
243
-      'extension', // 分机号
244
-      'groupcode', // 坐席组code
245
-      'telIsLogin', // 是否签入
246
-      'telSeatState', // 坐席状态
247
-      'telLineState', // 线路状态
248
-      'telCallNum', // 电话号码
249
-      'telIsVisCallout', // 外呼操作面板是否显示
250
-      'telCallTime', // 通话时间
251
-      'telMessageData', // telwebsocket 接收的数据
252
-      'telIsVisTransfer' // 转移操作面板
253
-    ])
286
+      "usercode", // 工号
287
+      "extension", // 分机号
288
+      "groupcode", // 坐席组code
289
+      "telIsLogin", // 是否签入
290
+      "telSeatState", // 坐席状态
291
+      "telLineState", // 线路状态
292
+      "telCallNum", // 电话号码
293
+      "telIsVisCallout", // 外呼操作面板是否显示
294
+      "telCallTime", // 通话时间
295
+      "telMessageData", // telwebsocket 接收的数据
296
+      "telIsVisTransfer", // 转移操作面板
297
+    ]),
254 298
   },
255 299
   watch: {
256 300
     // 如果 `telLineState` 发生改变,这个函数就会运行
257
-    telLineState: function(newT, oldT) {
301
+    telLineState: function (newT, oldT) {
258 302
       // console.log(newT, oldT);
259
-      this.watchTelLineState(newT, oldT)
260
-    }
303
+      this.watchTelLineState(newT, oldT);
304
+    },
261 305
   },
262 306
   methods: {
263 307
     // 签入
264 308
     signIn() {
265
-      console.log(this.groupcode)
266
-      console.log(this.extension)
309
+      console.log(this.groupcode);
310
+      console.log(this.extension);
267 311
       // if(!this.groupcode){
268 312
       //   this.$message.error('分机号不存在')
269 313
       //   return false
270 314
       // }
271 315
       if (!this.extension) {
272
-        this.$confirm('如果您想进行话务操作,请重新登录并且输入分机号, 是否重新登录?', '提示', {
273
-          confirmButtonText: '是',
274
-          cancelButtonText: '否',
275
-          type: 'warning'
276
-        }).then(() => {
277
-          this.$store.dispatch('FedLogOut').then(() => {
278
-            location.reload() // 为了重新实例化vue-router对象 避免bug
316
+        this.$confirm(
317
+          "如果您想进行话务操作,请重新登录并且输入分机号, 是否重新登录?",
318
+          "提示",
319
+          {
320
+            confirmButtonText: "是",
321
+            cancelButtonText: "否",
322
+            type: "warning",
323
+          }
324
+        )
325
+          .then(() => {
326
+            this.$store.dispatch("FedLogOut").then(() => {
327
+              location.reload(); // 为了重新实例化vue-router对象 避免bug
328
+            });
279 329
           })
280
-        }).catch(() => {
281
-        })
282
-        return
330
+          .catch(() => {});
331
+        return;
283 332
       }
284 333
       this.scoketDatas = {
285
-        'Type': 'Login',
286
-        'AgentID': this.usercode,
287
-        'AgentExten': this.extension,
288
-        'AgentGroup': window.localStorage.getItem('groupCode'), // 坐席组id
289
-        'AgentType': '0',
290
-        'DisposeTime': '0' // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
291
-      }
292
-      Send(this.scoketDatas)
334
+        Type: "Login",
335
+        AgentID: this.usercode,
336
+        AgentExten: this.extension,
337
+        AgentGroup: window.localStorage.getItem("groupCode"), // 坐席组id  window.localStorage.getItem('groupCode')
338
+        AgentType: "0",
339
+        DisposeTime: "0", // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
340
+      };
341
+      Send(this.scoketDatas);
293 342
     },
294 343
     // 签出
295 344
     signOut() {
296 345
       this.scoketDatas = {
297
-        'Type': 'Logout',
298
-        'AgentID': this.usercode,
299
-        'AgentExten': this.extension
300
-      }
301
-      Send(this.scoketDatas)
302
-      store.dispatch('UpdateCalloutScreen', false)
346
+        Type: "Logout",
347
+        AgentID: this.usercode,
348
+        AgentExten: this.extension,
349
+      };
350
+      Send(this.scoketDatas);
351
+      store.dispatch("UpdateCalloutScreen", false);
303 352
     },
304 353
     // 置忙
305 354
     setBusy() {
306 355
       this.scoketDatas = {
307
-        'Type': 'SayBusy',
308
-        'AgentID': this.usercode,
309
-        'AgentExten': this.extension
310
-      }
311
-      Send(this.scoketDatas)
356
+        Type: "SayBusy",
357
+        AgentID: this.usercode,
358
+        AgentExten: this.extension,
359
+      };
360
+      Send(this.scoketDatas);
312 361
     },
313 362
     // 置闲
314 363
     setFree() {
315 364
       this.scoketDatas = {
316
-        'Type': 'SayFree',
317
-        'AgentID': this.usercode,
318
-        'AgentExten': this.extension
319
-      }
320
-      Send(this.scoketDatas)
365
+        Type: "SayFree",
366
+        AgentID: this.usercode,
367
+        AgentExten: this.extension,
368
+      };
369
+      Send(this.scoketDatas);
321 370
     },
322 371
     // 转IVR
323 372
     btn_IVR() {
324 373
       this.scoketDatas = {
325
-        'Type': 'TurnIvr',
326
-        'AgentID': this.usercode,
327
-        'AgentExten': this.extension,
328
-        'IvrName': 'MYD_ZXZ',
329
-        'IvrPos': '1'
330
-      }
331
-      Send(this.scoketDatas)
374
+        Type: "TurnIvr",
375
+        AgentID: this.usercode,
376
+        AgentExten: this.extension,
377
+        IvrName: "MYD_ZXZ",
378
+        IvrPos: "1",
379
+      };
380
+      Send(this.scoketDatas);
332 381
     },
333 382
     // 挂断
334 383
     dropCall() {
335 384
       this.scoketDatas = {
336
-        'Type': 'DropCall',
337
-        'AgentID': this.usercode,
338
-        'AgentExten': this.extension
339
-      }
340
-      Send(this.scoketDatas)
341
-      store.dispatch('UpdateCalloutScreen', false)
385
+        Type: "DropCall",
386
+        AgentID: this.usercode,
387
+        AgentExten: this.extension,
388
+      };
389
+      Send(this.scoketDatas);
390
+      store.dispatch("UpdateCalloutScreen", false);
342 391
     },
343 392
     // 保持通话
344 393
     holdBack() {
345 394
       this.scoketDatas = {
346
-        'Type': 'Hold',
347
-        'AgentID': this.usercode,
348
-        'AgentExten': this.extension
349
-      }
350
-      Send(this.scoketDatas)
395
+        Type: "Hold",
396
+        AgentID: this.usercode,
397
+        AgentExten: this.extension,
398
+      };
399
+      Send(this.scoketDatas);
351 400
     },
352 401
     // 接回通话
353 402
     retrieveBack() {
354 403
       this.scoketDatas = {
355
-        'Type': 'Retrieve',
356
-        'AgentID': this.usercode,
357
-        'AgentExten': this.extension
358
-      }
359
-      Send(this.scoketDatas)
404
+        Type: "Retrieve",
405
+        AgentID: this.usercode,
406
+        AgentExten: this.extension,
407
+      };
408
+      Send(this.scoketDatas);
360 409
     },
361 410
     // 外呼
362 411
     makeCall() {
363 412
       // this.maskshow = true
364
-      store.dispatch('ChangeCallType', 'MakeCall')
365
-      store.dispatch('UpdateCalloutScreen', !this.telIsVisCallout)
413
+      store.dispatch("ChangeCallType", "MakeCall");
414
+      store.dispatch("UpdateCalloutScreen", !this.telIsVisCallout);
366 415
     },
367 416
     // 转移
368 417
     transferCall() {
369
-      store.dispatch('ChangeCallType', 'Transfer')
370
-      store.dispatch('UpdatetelIsVisCallout', !this.telIsVisCallout)
418
+      store.dispatch("ChangeCallType", "Transfer");
419
+      store.dispatch("UpdatetelIsVisCallout", !this.telIsVisCallout);
371 420
     },
372 421
     // 多方通话
373 422
     meetingCall() {
374
-      store.dispatch('ChangeCallType', 'Meeting')
375
-      store.dispatch('UpdateCalloutScreen', !this.telIsVisCallout)
423
+      store.dispatch("ChangeCallType", "Meeting");
424
+      store.dispatch("UpdateCalloutScreen", !this.telIsVisCallout);
376 425
     },
377 426
     maskshow() {
378
-      store.dispatch('UpdatetelIsVisCallout', !this.telIsVisCallout)
379
-      this.$refs.waihu.clearcontent()
380
-      this.$refs.waihu.getList()
427
+      store.dispatch("UpdatetelIsVisCallout", !this.telIsVisCallout);
428
+      this.$refs.waihu.clearcontent();
429
+      this.$refs.waihu.getList();
381 430
     },
382 431
     // 外呼操作面板 关闭后
383 432
     afterLeave() {
384
-      store.dispatch('ChangeCallType', 'MakeCall')
433
+      store.dispatch("ChangeCallType", "MakeCall");
385 434
     },
386 435
     // 通话时间
387 436
     callTime() {
388 437
       // 通话时间重置为00:00:00
389
-      store.dispatch('UpdateCallTime', {
390
-        hh: '00',
391
-        mm: '00',
392
-        ss: '00'
393
-      })
438
+      store.dispatch("UpdateCallTime", {
439
+        hh: "00",
440
+        mm: "00",
441
+        ss: "00",
442
+      });
394 443
       // 时间 计时
395
-      let _n = 0
444
+      let _n = 0;
396 445
       if (this.telTimer) {
397
-        clearInterval(this.telTimer)
446
+        clearInterval(this.telTimer);
398 447
       }
399 448
       this.telTimer = setInterval(() => {
400
-        _n++
401
-
402
-        store.dispatch('UpdateCallTime', {
403
-          hh: this.toDub(parseInt(_n / 60 / 60 % 60)), // 小时
404
-          mm: this.toDub(parseInt(_n / 60 % 60)), // 分钟
405
-          ss: this.toDub(parseInt(_n % 60)) // 秒
406
-        })
407
-      }, 1000)
449
+        _n++;
450
+
451
+        store.dispatch("UpdateCallTime", {
452
+          hh: this.toDub(parseInt((_n / 60 / 60) % 60)), // 小时
453
+          mm: this.toDub(parseInt((_n / 60) % 60)), // 分钟
454
+          ss: this.toDub(parseInt(_n % 60)), // 秒
455
+        });
456
+      }, 1000);
408 457
     },
409 458
     // 清除定时器
410 459
     clearInter() {
411
-      clearInterval(this.telTimer)
460
+      clearInterval(this.telTimer);
412 461
     },
413 462
     // 小于10补0
414 463
     toDub(i) {
415
-      return i < 10 ? '0' + i : '' + i
464
+      return i < 10 ? "0" + i : "" + i;
416 465
     },
417 466
     // 监听 线路状态
418 467
     watchTelLineState(newT, oldT) {
419 468
       // 外呼
420 469
       if (newT === 6 && oldT === 4) {
421
-        this.callTime()
470
+        this.callTime();
422 471
       }
423 472
       // 来电
424 473
       if (newT === 6 && oldT === 5) {
425
-        this.callTime()
474
+        this.callTime();
426 475
       }
427 476
       if (newT === 1) {
428 477
         if (this.telTimer) {
429
-          clearInterval(this.telTimer)
430
-          this.telTimer = null
478
+          clearInterval(this.telTimer);
479
+          this.telTimer = null;
431 480
           // 						//通话时间重置为00:00:00
432 481
           // 						store.dispatch('UpdateCallTime', {
433 482
           // 							hh: '00',
@@ -436,9 +485,9 @@ export default {
436 485
           // 						});
437 486
         }
438 487
       }
439
-    }
440
-  }
441
-}
488
+    },
489
+  },
490
+};
442 491
 </script>
443 492
 
444 493
 <style rel="stylesheet/scss" lang="scss">
@@ -479,18 +528,18 @@ export default {
479 528
 </style>
480 529
 
481 530
 <style rel="stylesheet/scss" lang="scss" scoped>
482
- .call_btn {
483
-      outline: none;
484
-      cursor: pointer;
485
-      background-color: #42484d;
486
-      border: 2px solid #191c26;
487
-      height: 26px;
488
-      padding: 0 6px;
489
-      margin-right: 2px;
490
-      border-radius: 11px;
491
-      font-size: 12px;
492
-      color: #ffffff;
493
-    }
531
+.call_btn {
532
+  outline: none;
533
+  cursor: pointer;
534
+  background-color: #42484d;
535
+  border: 2px solid #191c26;
536
+  height: 26px;
537
+  padding: 0 6px;
538
+  margin-right: 2px;
539
+  border-radius: 11px;
540
+  font-size: 12px;
541
+  color: #ffffff;
542
+}
494 543
 .tel_operation {
495 544
   position: absolute;
496 545
   left: 185px;
@@ -607,10 +656,10 @@ export default {
607 656
       vertical-align: text-bottom;
608 657
     }
609 658
   }
610
-.call_middle .el-input__inner{
611
-    background-color: #fff!important;
612
-    color:#282b36!important;
613
-}
659
+  .call_middle .el-input__inner {
660
+    background-color: #fff !important;
661
+    color: #282b36 !important;
662
+  }
614 663
   .call_right {
615 664
     margin-left: 0px;
616 665
 
@@ -661,15 +710,14 @@ export default {
661 710
 }
662 711
 </style>
663 712
 <style >
664
-   .mask{
665
-    width: 1920px;
666
-    height: 900px;
667
-    position: absolute;
668
-    z-index: -99;
669
-   background-color:#000000;
670
-    opacity:0.5;
671
-    -moz-opacity:0.5;
672
-    filter:alpha(opacity=50);
673
-
674
-  }
713
+.mask {
714
+  width: 1920px;
715
+  height: 900px;
716
+  position: absolute;
717
+  z-index: -99;
718
+  background-color: #000000;
719
+  opacity: 0.5;
720
+  -moz-opacity: 0.5;
721
+  filter: alpha(opacity=50);
722
+}
675 723
 </style>

+ 4 - 6
CallCenterWeb.UI/src/utils/telWebsocket.js

@@ -218,7 +218,7 @@ function signIn() {
218 218
     Type: "Login",
219 219
     AgentID: store.getters.usercode,
220 220
     AgentExten: store.getters.extension,
221
-    AgentGroup: window.localStorage.getItem("groupCode"), // 坐席组id
221
+    AgentGroup: window.localStorage.getItem("groupCode"), // 坐席组id window.localStorage.getItem("groupCode"),
222 222
     AgentType: "0",
223 223
     DisposeTime: "0" // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
224 224
   };
@@ -431,13 +431,12 @@ function LineStateAgentBack(linedata) {
431 431
 }
432 432
 function callidBack(data) {
433 433
   callidValue = data.CurrID;
434
-  store.dispatch("screenCallidValue", callidValue);
435 434
 }
436 435
 // 来电
437 436
 function IncomingBack(inComingData) {
438 437
   let inComingNumber = inComingData.Number;
439
-  callidValue = inComingData.CallID;
440
-  store.dispatch("screenCallidValue", callidValue);
438
+
439
+  store.dispatch("screenCallidValue", inComingData.CallID);
441 440
   store.dispatch("screenPopUpBoole", 1);
442 441
   if (inComingNumber.length > 11) {
443 442
     inComingNumber = inComingNumber.substr(1);
@@ -450,7 +449,6 @@ function IncomingBack(inComingData) {
450 449
       title: "来电弹屏"
451 450
     }
452 451
   });
453
-  callidValue = 0;
454 452
   store.dispatch("ChangeCallNum", inComingNumber);
455 453
 }
456 454
 // 外呼 结果 弹出来电弹屏
@@ -458,7 +456,7 @@ function MakeCallBack(callBackData) {
458 456
   const inComingNumber = store.getters.telCallNum;
459 457
   store.dispatch("makeCallState", 1);
460 458
   store.dispatch("screenPopUpBoole", 2);
461
-
459
+  store.dispatch("screenCallidValue", callidValue);
462 460
   // 点击外呼弹屏
463 461
   router.push({
464 462
     name: "callScreen",

+ 63 - 66
CallCenterWeb.UI/src/views/callComplainType/complainList/index.vue

@@ -2,7 +2,6 @@
2 2
   <div class="app-container">
3 3
     <el-row :gutter="20">
4 4
       <el-col :md="24">
5
-
6 5
         <div class="filter-container">
7 6
           <el-input
8 7
             v-model="searchData.cusCode"
@@ -61,7 +60,7 @@
61 60
             class="filter-item"
62 61
             icon="el-icon-search"
63 62
             @click="btn_search_task"
64
-          >搜索</el-button
63
+            >搜索</el-button
65 64
           >
66 65
         </div>
67 66
         <el-table
@@ -153,65 +152,64 @@
153 152
 </template>
154 153
 
155 154
 <script>
156
-import { getComplainList } from '@/api/callComplainType/callComplainType'
157
-import { pickerOptions, formatterContent } from '@/utils'
158
-import Pagination from '@/components/Pagination' // 对el-pagination 二次封装
159
-import { mapGetters } from 'vuex'
160
-import { getDictionary } from '@/api/commonAPI'
161
-import detail from './detail'
155
+import { getComplainList } from "@/api/callComplainType/callComplainType";
156
+import { pickerOptions, formatterContent } from "@/utils";
157
+import Pagination from "@/components/Pagination"; // 对el-pagination 二次封装
158
+import { mapGetters } from "vuex";
159
+import { getDictionary } from "@/api/commonAPI";
160
+import detail from "./detail";
162 161
 export default {
163
-  name: 'MyTask',
162
+  name: "MyTask",
164 163
   components: {
165
-    Pagination
164
+    Pagination,
166 165
   },
167 166
   filters: {
168 167
     isCloseFilter(status) {
169 168
       const statusMap = {
170
-        0: '关闭',
171
-        1: '不关闭'
172
-      }
173
-      return statusMap[status]
174
-    }
169
+        0: "关闭",
170
+        1: "不关闭",
171
+      };
172
+      return statusMap[status];
173
+    },
175 174
   },
176 175
   data() {
177 176
     return {
178
-      searchTime: '', // 时间
177
+      searchTime: "", // 时间
179 178
       pickerOptions,
180 179
       makeType: [],
181 180
       consultType: [],
182
-      slType: '', // 咨询类型
181
+      slType: "", // 咨询类型
183 182
       loading: false,
184 183
       searchData: {
185
-        cusCode: '', // 客户代码
186
-        cusName: '', // 客户名称
187
-        salMan: '', // 售后经理
188
-        callsort: '', // 咨询类型
189
-        linkName: '', // 联系人
190
-        workId: '' // 工单编号
191
-
184
+        cusCode: "", // 客户代码
185
+        cusName: "", // 客户名称
186
+        salMan: "", // 售后经理
187
+        callsort: "", // 咨询类型
188
+        linkName: "", // 联系人
189
+        workId: "", // 工单编号
192 190
       },
193 191
       pageParams: {
194 192
         pageindex: 1, // 当前第几页
195 193
         pagesize: Number(this.$store.getters.serverConfig.PAGESIZE), // 每页几条数据
196
-        total: 0 // 总共多少数据
194
+        total: 0, // 总共多少数据
197 195
       },
198 196
       consultList: [], // 咨询信息列表数据
199
-      taskRowClickId: '', // 选中客户代码
200
-      contactId: '' // 联系人id
201
-    }
197
+      taskRowClickId: "", // 选中客户代码
198
+      contactId: "", // 联系人id
199
+    };
202 200
   },
203 201
   computed: {
204
-    ...mapGetters(['userid', 'zxbh'])
202
+    ...mapGetters(["userid", "zxbh"]),
205 203
   },
206 204
   created() {
207
-    this.getConsultType()
208
-    this.getList()
209
-    console.log(this.userid, this.zxbh)
205
+    this.getConsultType();
206
+    this.getList();
207
+    console.log(this.userid, this.zxbh);
210 208
     document.onkeyup = (e) => {
211 209
       if (e.keyCode === 13) {
212
-        this.getList()
210
+        this.getList();
213 211
       }
214
-    }
212
+    };
215 213
   },
216 214
   methods: {
217 215
     // 获取投诉类型下拉数据
@@ -221,21 +219,21 @@ export default {
221 219
           f_IsLeaf: 1,
222 220
           parentId: 69,
223 221
           pageindex: 1,
224
-          pagesize: 10
225
-        }
222
+          pagesize: 10,
223
+        };
226 224
         getDictionary(params).then((response) => {
227
-          if (response.state.toLowerCase() === 'success') {
228
-            this.consultType = response.data
225
+          if (response.state.toLowerCase() === "success") {
226
+            this.consultType = response.data;
229 227
           }
230
-        })
231
-      })
228
+        });
229
+      });
232 230
     },
233 231
     // 受理类型
234 232
     changeType(event, item) {
235
-      this.slType = event
233
+      this.slType = event;
236 234
     },
237 235
     getList() {
238
-      this.loading = true
236
+      this.loading = true;
239 237
       return new Promise((resolve) => {
240 238
         const params = {
241 239
           pageindex: this.pageParams.pageindex, // 第几页
@@ -246,31 +244,31 @@ export default {
246 244
           // callsort:this.slType,
247 245
           cusCode: this.searchData.cusCode,
248 246
           cusName: this.searchData.cusName, // 客户名称
249
-          salMan: this.searchData.salMan,	// 销售经理
250
-          linkName: this.searchData.linkName,	// 联系人
247
+          salMan: this.searchData.salMan, // 销售经理
248
+          linkName: this.searchData.linkName, // 联系人
251 249
           workId: this.searchData.workId, // 工单编号
252 250
           callName: this.slType,
253 251
           beginTime: this.searchTime && this.searchTime[0], // 添加开始时间
254
-          endTime: this.searchTime && this.searchTime[1] // 添加结束时间
255
-        }
252
+          endTime: this.searchTime && this.searchTime[1], // 添加结束时间
253
+        };
256 254
         getComplainList(params).then((response) => {
257
-          this.loading = false
258
-          if (response.state.toLowerCase() === 'success') {
255
+          this.loading = false;
256
+          if (response.state.toLowerCase() === "success") {
259 257
             if (response.total == null) {
260
-              this.pageParams.total = 0
258
+              this.pageParams.total = 0;
261 259
             } else {
262
-              this.pageParams.total = response.total
260
+              this.pageParams.total = response.total;
263 261
             }
264
-            this.consultList = response.data
262
+            this.consultList = response.data;
265 263
           }
266
-        })
267
-        resolve()
268
-      })
264
+        });
265
+        resolve();
266
+      });
269 267
     },
270 268
     // 搜索
271 269
     btn_search_task() {
272
-      this.pageParams.pageindex = 1
273
-      this.getList()
270
+      this.pageParams.pageindex = 1;
271
+      this.getList();
274 272
     },
275 273
 
276 274
     // 点击某一行
@@ -279,16 +277,15 @@ export default {
279 277
         content: {
280 278
           content: detail, // 传递的组件对象
281 279
           parent: this, // 当前的vue对象
282
-          data: { rowid: row.id, workId: row.workId } // props
280
+          data: { rowid: row.id, workId: row.workId }, // props
283 281
         },
284
-        area: ['60%', '40%'],
285
-        title: '工单详情'
286
-      })
287
-      console.log(row)
288
-    }
289
-
290
-  }
291
-}
282
+        area: ["60%", "40%"],
283
+        title: "工单详情",
284
+      });
285
+      console.log(row);
286
+    },
287
+  },
288
+};
292 289
 </script>
293 290
 
294 291
 <style rel="stylesheet/scss" lang="scss" scoped>
@@ -305,7 +302,7 @@ export default {
305 302
   background-color: #00a1cb !important;
306 303
   color: #fff;
307 304
 }
308
-.el-table{
305
+.el-table {
309 306
   color: #000;
310 307
 }
311 308
 </style>

+ 7 - 0
CallCenterWeb.UI/src/views/callConsultType/consultList/index.vue

@@ -199,6 +199,10 @@ export default {
199 199
           value: 1,
200 200
           label: "呼出",
201 201
         },
202
+        {
203
+          value: 2,
204
+          label: "手制工单",
205
+        },
202 206
       ],
203 207
       slType: "", // 咨询类型
204 208
       loading: false,
@@ -277,6 +281,9 @@ export default {
277 281
             this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
278 282
           endTime: this.searchData.searchTime && this.searchData.searchTime[1], // 添加结束时间
279 283
         };
284
+        if (params.callType === "") {
285
+          delete params.callType;
286
+        }
280 287
         getConsultList(params).then((response) => {
281 288
           this.loading = false;
282 289
           if (response.state.toLowerCase() === "success") {

+ 7 - 0
CallCenterWeb.UI/src/views/callConsultType/isDeal/index.vue

@@ -231,6 +231,10 @@ export default {
231 231
           value: 1,
232 232
           label: "呼出",
233 233
         },
234
+        {
235
+          value: 2,
236
+          label: "手制工单",
237
+        },
234 238
       ],
235 239
       loading: false,
236 240
       searchData: {
@@ -406,6 +410,9 @@ export default {
406 410
             this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
407 411
           endTime: this.searchData.searchTime && this.searchData.searchTime[1], // 添加结束时间
408 412
         };
413
+        if (params.callType === "") {
414
+          delete params.callType;
415
+        }
409 416
         getConsult(params).then((response) => {
410 417
           if (response.state.toLowerCase() === "success") {
411 418
             this.dataListsExport = [];

+ 7 - 0
CallCenterWeb.UI/src/views/callConsultType/toDeal/index.vue

@@ -200,6 +200,10 @@ export default {
200 200
           value: 1,
201 201
           label: "呼出",
202 202
         },
203
+        {
204
+          value: 2,
205
+          label: "手制工单",
206
+        },
203 207
       ],
204 208
       pageParams: {
205 209
         pageindex: 1, // 当前第几页
@@ -354,6 +358,9 @@ export default {
354 358
             this.searchData.searchTime && this.searchData.searchTime[0], // 添加开始时间
355 359
           endTime: this.searchData.searchTime && this.searchData.searchTime[1], // 添加结束时间
356 360
         };
361
+        if (params.callType === "") {
362
+          delete params.callType;
363
+        }
357 364
         getConsult(params).then((response) => {
358 365
           if (response.state.toLowerCase() === "success") {
359 366
             this.dataListsExport = [];

+ 15 - 1
CallCenterWeb.UI/src/views/callScreen/components/callScreen.vue

@@ -347,6 +347,10 @@ export default {
347 347
       callid: 0,
348 348
       deptOptions: [
349 349
         {
350
+          value: "客服室",
351
+          label: "客服室",
352
+        },
353
+        {
350 354
           value: "计划室",
351 355
           label: "计划室",
352 356
         },
@@ -412,6 +416,7 @@ export default {
412 416
         dutydept: "", // 责任部门
413 417
         dutyman: "", // 责任人
414 418
         userType: "1",
419
+        callType: 2,
415 420
         rate: "临时性", // 频率
416 421
       },
417 422
       rules: {},
@@ -457,6 +462,10 @@ export default {
457 462
     telLineState: function (newT, oldT) {
458 463
       this.watchTelLineState(newT, oldT);
459 464
     },
465
+    // screenCallid: function () {
466
+    //   this.callid = this.screenCallid;
467
+    //   console.log(this.callid);
468
+    // },
460 469
   },
461 470
   created() {
462 471
     this.getAddWorkOrderType();
@@ -466,8 +475,10 @@ export default {
466 475
     this.callinNum = this.telCallNum; // 来电号码  $route.params.telInNumber
467 476
     if (this.screenState === 1) {
468 477
       this.callinText = "呼入:" + this.callinNum;
478
+      this.ruleForm.callType = 0;
469 479
     } else if (this.screenState === 2) {
470 480
       this.callinText = "呼出:" + this.callinNum;
481
+      this.ruleForm.callType = 1;
471 482
     }
472 483
     if (this.callinNum) {
473 484
       this.calladdress();
@@ -694,9 +705,12 @@ export default {
694 705
                 dutydept: this.ruleForm.dutydept,
695 706
                 dutyman: this.ruleForm.dutyman,
696 707
                 userType: this.ruleForm.userType,
708
+                callType: this.ruleForm.callType,
697 709
                 rate: this.ruleForm.rate,
698 710
               };
699
-
711
+              if (params.isClose === 0) {
712
+                this.$emit("childByValue", this.callinText);
713
+              }
700 714
               // 添加
701 715
               if (this.vipid === 0) {
702 716
                 addWork(params)

+ 285 - 248
CallCenterWeb.UI/src/views/telCall/makeByHand/index.vue

@@ -73,19 +73,31 @@
73 73
                     placeholder="请输入客户名称"
74 74
                   ></el-input>
75 75
                 </el-form-item>
76
-
77 76
               </el-col>
78 77
               <el-col :span="1">
79
-
80
-                <el-button style="background:none;border:none;color:#409eff" size="mini" type="primary" icon="el-icon-search" @click="see_fax">传真</el-button>
81
-
78
+                <el-button
79
+                  style="background: none; border: none; color: #409eff"
80
+                  size="mini"
81
+                  type="primary"
82
+                  icon="el-icon-search"
83
+                  @click="see_fax"
84
+                  >传真</el-button
85
+                >
86
+              </el-col>
87
+              <el-col :span="6">
88
+                <el-form-item label="客户类型" prop="userType">
89
+                  <el-radio v-model="ruleForm.userType" label="1"
90
+                    >客户</el-radio
91
+                  >
92
+                  <el-radio v-model="ruleForm.userType" label="2"
93
+                    >销售经理</el-radio
94
+                  >
95
+                </el-form-item>
82 96
               </el-col>
83
-
84 97
             </el-row>
85 98
             <el-row>
86 99
               <el-col v-if="slType == '1'" :span="5">
87 100
                 <el-form-item label="咨询类型" prop="callsort">
88
-
89 101
                   <el-cascader
90 102
                     ref="cascaderAddr"
91 103
                     v-model="ruleForm.callsort"
@@ -97,11 +109,9 @@
97 109
               </el-col>
98 110
               <el-col v-else-if="slType == '2'" :span="5">
99 111
                 <el-form-item label="投诉类型" prop="callsort">
100
-
101 112
                   <el-cascader
102 113
                     v-model="ruleForm.callsort"
103 114
                     :options="options2"
104
-
105 115
                     clearable
106 116
                     @change="complainChange"
107 117
                   ></el-cascader>
@@ -126,30 +136,39 @@
126 136
                     filterable
127 137
                     allow-create
128 138
                     default-first-option
129
-                    placeholder="请选择责任科室">
139
+                    placeholder="请选择责任科室"
140
+                  >
130 141
                     <el-option
131 142
                       v-for="item in deptOptions"
132 143
                       :key="item.value"
133 144
                       :label="item.label"
134
-                      :value="item.value">
145
+                      :value="item.value"
146
+                    >
135 147
                     </el-option>
136 148
                   </el-select>
137 149
                 </el-form-item>
138 150
               </el-col>
139 151
               <el-col :span="5">
140 152
                 <el-form-item label="责任人" prop="dutyman">
141
-                  <el-input v-model="ruleForm.dutyman" placeholder="请输入责任人"></el-input>
153
+                  <el-input
154
+                    v-model="ruleForm.dutyman"
155
+                    placeholder="请输入责任人"
156
+                  ></el-input>
142 157
                 </el-form-item>
143 158
               </el-col>
144 159
               <el-col :span="2">
145
-                <el-form-item style="visibility:hidden" label="责任人" >
146
-                  <el-input ></el-input>
160
+                <el-form-item style="visibility: hidden" label="责任人">
161
+                  <el-input></el-input>
147 162
                 </el-form-item>
148 163
               </el-col>
149 164
               <el-col :span="5">
150 165
                 <el-form-item label="发生频率" prop="rate">
151
-                  <el-radio v-model="ruleForm.rate" label="临时性">临时性</el-radio>
152
-                  <el-radio v-model="ruleForm.rate" label="重复性">重复性</el-radio>
166
+                  <el-radio v-model="ruleForm.rate" label="临时性"
167
+                    >临时性</el-radio
168
+                  >
169
+                  <el-radio v-model="ruleForm.rate" label="重复性"
170
+                    >重复性</el-radio
171
+                  >
153 172
                 </el-form-item>
154 173
               </el-col>
155 174
             </el-row>
@@ -162,17 +181,14 @@
162 181
                   ></el-input>
163 182
                 </el-form-item>
164 183
               </el-col>
165
-
166 184
             </el-row>
167 185
             <el-row>
168 186
               <el-col :xl="24" :md="24">
169 187
                 <el-form-item v-show="resulBtn">
170 188
                   <el-button type="primary" @click="submitForm">保存</el-button>
171 189
                   <el-col :offset="0" :span="4">
172
-                    <el-checkbox
173
-                      v-model="closeOrder"
174
-                      style="line-height: 32px"
175
-                    >关闭工单</el-checkbox
190
+                    <el-checkbox v-model="closeOrder" style="line-height: 32px"
191
+                      >关闭工单</el-checkbox
176 192
                     >
177 193
                   </el-col>
178 194
                 </el-form-item>
@@ -186,61 +202,75 @@
186 202
 </template>
187 203
 
188 204
 <script>
189
-import MdInput from '@/components/MDinput'
190
-import AddOrCelBlack from './components/addOrCelBlack'
191
-import AddOrEditCustomer from './components/AddOrEditCustomer'
192
-import { getDictionary } from '@/api/commonAPI'
193
-import { addWork } from '@/api/telCall/makeByHand'
194
-import { validateTel } from '@/utils/validate'
195
-import { filterContent, pickerOptions } from '@/utils'
196
-import { mapGetters } from 'vuex'
197
-import msg from './components/sms'
198
-import faxlist from './components/faxlist'
205
+import MdInput from "@/components/MDinput";
206
+import AddOrCelBlack from "./components/addOrCelBlack";
207
+import AddOrEditCustomer from "./components/AddOrEditCustomer";
208
+import { getDictionary } from "@/api/commonAPI";
209
+import { addWork } from "@/api/telCall/makeByHand";
210
+import { validateTel } from "@/utils/validate";
211
+import { filterContent, pickerOptions } from "@/utils";
212
+import { mapGetters } from "vuex";
213
+import msg from "./components/sms";
214
+import faxlist from "./components/faxlist";
199 215
 export default {
200 216
   components: {
201 217
     MdInput,
202 218
     AddOrCelBlack,
203
-    AddOrEditCustomer
219
+    AddOrEditCustomer,
204 220
   },
205 221
   data() {
206 222
     return {
207
-      deptOptions: [{
208
-        value: '计划室',
209
-        label: '计划室'
210
-      }, {
211
-        value: '报价室',
212
-        label: '报价室'
213
-      }, {
214
-        value: '交付室',
215
-        label: '交付室'
216
-      }, {
217
-        value: '项目室',
218
-        label: '项目室'
219
-      }, {
220
-        value: '合同室',
221
-        label: '合同室'
222
-      }, {
223
-        value: '库房',
224
-        label: '库房'
225
-      }, {
226
-        value: '管理室',
227
-        label: '管理室'
228
-      }, {
229
-        value: '信用管理室',
230
-        label: '信用管理室'
231
-      }, {
232
-        value: '其他',
233
-        label: '其他'
234
-      }],
223
+      deptOptions: [
224
+        {
225
+          value: "客服室",
226
+          label: "客服室",
227
+        },
228
+        {
229
+          value: "计划室",
230
+          label: "计划室",
231
+        },
232
+        {
233
+          value: "报价室",
234
+          label: "报价室",
235
+        },
236
+        {
237
+          value: "交付室",
238
+          label: "交付室",
239
+        },
240
+        {
241
+          value: "项目室",
242
+          label: "项目室",
243
+        },
244
+        {
245
+          value: "合同室",
246
+          label: "合同室",
247
+        },
248
+        {
249
+          value: "库房",
250
+          label: "库房",
251
+        },
252
+        {
253
+          value: "管理室",
254
+          label: "管理室",
255
+        },
256
+        {
257
+          value: "信用管理室",
258
+          label: "信用管理室",
259
+        },
260
+        {
261
+          value: "其他",
262
+          label: "其他",
263
+        },
264
+      ],
235 265
       // 咨询类型级联
236 266
       options: [
237 267
         {
238
-          value: '',
239
-          label: ''
268
+          value: "",
269
+          label: "",
240 270
         },
241 271
         {
242
-          value: '',
243
-          label: ''
272
+          value: "",
273
+          label: "",
244 274
           // children: [
245 275
           //   {
246 276
           //     value: '',
@@ -255,58 +285,58 @@ export default {
255 285
           // ]
256 286
         },
257 287
         {
258
-          value: '',
259
-          label: ''
288
+          value: "",
289
+          label: "",
260 290
         },
261 291
         {
262
-          value: '',
263
-          label: ''
292
+          value: "",
293
+          label: "",
264 294
         },
265 295
         {
266
-          value: '',
267
-          label: ''
296
+          value: "",
297
+          label: "",
268 298
         },
269 299
         {
270
-          value: '',
271
-          label: ''
300
+          value: "",
301
+          label: "",
272 302
         },
273 303
         {
274
-          value: '',
275
-          label: ''
304
+          value: "",
305
+          label: "",
276 306
         },
277 307
         {
278
-          value: '',
279
-          label: ''
308
+          value: "",
309
+          label: "",
280 310
         },
281 311
         {
282
-          value: '',
283
-          label: ''
284
-        }
312
+          value: "",
313
+          label: "",
314
+        },
285 315
       ],
286 316
       // 投诉类型级联
287 317
       options2: [
288 318
         {
289
-          value: '',
290
-          label: ''
319
+          value: "",
320
+          label: "",
291 321
         },
292 322
         {
293
-          value: '',
294
-          label: ''
323
+          value: "",
324
+          label: "",
295 325
         },
296 326
         {
297
-          value: '',
298
-          label: ''
327
+          value: "",
328
+          label: "",
299 329
         },
300 330
         {
301
-          value: '',
302
-          label: ''
331
+          value: "",
332
+          label: "",
303 333
         },
304 334
         {
305
-          value: '',
306
-          label: ''
307
-        }
335
+          value: "",
336
+          label: "",
337
+        },
308 338
       ],
309
-      typeId: '', // 字典项id
339
+      typeId: "", // 字典项id
310 340
       resulBtn: true,
311 341
       vipid: 0,
312 342
       workOrderType: [], // 新增工单类型下拉数据
@@ -316,44 +346,46 @@ export default {
316 346
       tzdbType: [], // 投资担保类型下拉数据
317 347
       ruleForm: {
318 348
         // 新增工单
319
-        workId: '', // 工单id
320
-        callNum: '', // 呼入号码
321
-        zxbh: '', // 坐席编号
322
-        answerTime: '', // 处理时间
323
-        addTime: '', // 添加时间
324
-        closedTime: '', // 关闭时间
325
-        name: '', // 客户姓名
326
-        linkName: '', // 联系人姓名
327
-        clientId: '', // 客户id
328
-        contactId: '', // 联系人id
329
-        workType: '1', // 工单种类
330
-        gdzl: '', // 工单种类
331
-        callsort: '', // 详细分类
332
-        btsr: '', // 被投诉人
333
-        shifter: '', // 转移人
334
-        content: '', // 内容
335
-        remarks: '', // 备注
336
-        cusCode: '', // 客户代码
337
-        cusName: '', // 客户名称
338
-        cusFax: '', // 传真
339
-        cusCc: '', // 付款方式
340
-        cusPname: '', // 联系人
341
-        impSign: '', // 是否关键客户
342
-        cusTrade: '', // 所属行业
343
-        salMan: '', // 销售经理
344
-        cusServicer: '', // 客服专员
345
-        area: '', // 片区
346
-        cusAdd: '', // 客户地址
347
-        sourceType: '', // 客户数据来源类型
348
-        cusTel: '', // 联系电话
349
-        cusServicerTel: '', // 客服电话
350
-        salManTel: '', // 经理电话
351
-        cusAsk: '', // 特殊要求
352
-        cusLevel: '', // 客户等级
353
-        typeCode: 'DHZX', // 类型简拼
354
-        dutydept: '', // 责任部门
355
-        dutyman: '', // 责任人
356
-        rate: 0// 频率
349
+        workId: "", // 工单id
350
+        userType: "1",
351
+        callNum: "", // 呼入号码
352
+        zxbh: "", // 坐席编号
353
+        answerTime: "", // 处理时间
354
+        addTime: "", // 添加时间
355
+        closedTime: "", // 关闭时间
356
+        name: "", // 客户姓名
357
+        linkName: "", // 联系人姓名
358
+        clientId: "", // 客户id
359
+        contactId: "", // 联系人id
360
+        workType: "1", // 工单种类
361
+        gdzl: "", // 工单种类
362
+        callsort: "", // 详细分类
363
+        btsr: "", // 被投诉人
364
+        shifter: "", // 转移人
365
+        content: "", // 内容
366
+        remarks: "", // 备注
367
+        cusCode: "", // 客户代码
368
+        cusName: "", // 客户名称
369
+        cusFax: "", // 传真
370
+        cusCc: "", // 付款方式
371
+        cusPname: "", // 联系人
372
+        impSign: "", // 是否关键客户
373
+        cusTrade: "", // 所属行业
374
+        salMan: "", // 销售经理
375
+        cusServicer: "", // 客服专员
376
+        area: "", // 片区
377
+        cusAdd: "", // 客户地址
378
+        sourceType: "", // 客户数据来源类型
379
+        cusTel: "", // 联系电话
380
+        cusServicerTel: "", // 客服电话
381
+        salManTel: "", // 经理电话
382
+        cusAsk: "", // 特殊要求
383
+        cusLevel: "", // 客户等级
384
+        typeCode: "DHZX", // 类型简拼
385
+        dutydept: "", // 责任部门
386
+        dutyman: "", // 责任人
387
+        callType: 2,
388
+        rate: "临时性", // 频率
357 389
       },
358 390
       rules: {
359 391
         // cusName: [
@@ -366,10 +398,10 @@ export default {
366 398
         callNum: [
367 399
           {
368 400
             required: true,
369
-            trigger: 'blur',
370
-            message: '请输入来电号码'
371
-          }
372
-        ]
401
+            trigger: "blur",
402
+            message: "请输入来电号码",
403
+          },
404
+        ],
373 405
         // linkName: [
374 406
         //   {
375 407
         //     required: true,
@@ -378,24 +410,24 @@ export default {
378 410
         //   }
379 411
         // ]
380 412
       },
381
-      slType: '1',
382
-      csType: '',
383
-      cpType: '',
413
+      slType: "1",
414
+      csType: "",
415
+      cpType: "",
384 416
       makeType: [], // 受理类型数据
385
-      activeName: 'first', // tab切换默认显示来电历史工单
417
+      activeName: "first", // tab切换默认显示来电历史工单
386 418
       checked: false, // 拉黑
387 419
 
388
-      closeOrder: false // 是否关闭工单
389
-    }
420
+      closeOrder: false, // 是否关闭工单
421
+    };
390 422
   },
391 423
   computed: {
392
-    ...mapGetters(['zxbh'])
424
+    ...mapGetters(["zxbh"]),
393 425
   },
394 426
   created() {
395
-    this.getAddWorkOrderType()
427
+    this.getAddWorkOrderType();
396 428
     // this.getsalemanType()
397 429
     // this.gettzdbType()
398
-    this.getConsultType()
430
+    this.getConsultType();
399 431
   },
400 432
   methods: {
401 433
     // 获取咨询类型下拉数据
@@ -405,54 +437,55 @@ export default {
405 437
           f_IsLeaf: 1,
406 438
           parentId: 67,
407 439
           pageindex: 1,
408
-          pagesize: 10
409
-        }
440
+          pagesize: 10,
441
+        };
410 442
         getDictionary(params).then((response) => {
411
-          if (response.state.toLowerCase() === 'success') {
412
-            this.makeType = response.data
413
-            console.log(this.makeType)
443
+          if (response.state.toLowerCase() === "success") {
444
+            this.makeType = response.data;
445
+            console.log(this.makeType);
414 446
           }
415
-        })
416
-      })
447
+        });
448
+      });
417 449
     },
418 450
     // 改变受理类型
419 451
     changeType(event) {
420
-      this.slType = Number(event)
421
-      this.getConsultType()
422
-      this.getComplainType()
452
+      this.slType = Number(event);
453
+      this.getConsultType();
454
+      this.getComplainType();
423 455
     },
424 456
     changeGateway(data) {
425
-      this.ruleForm.typeCode = data.f_ValueCode
457
+      this.ruleForm.typeCode = data.f_ValueCode;
426 458
     },
427 459
     // 选择咨询、投诉类型
428 460
     consultChange(value) {
429
-      this.csType = value[value.length - 1]
430
-      console.log(this.csType)
461
+      this.csType = value[value.length - 1];
462
+      console.log(this.csType);
431 463
     },
432 464
     complainChange(value) {
433
-      this.csType = value[0]
434
-      console.log(this.csType)
465
+      this.csType = value[0];
466
+      console.log(this.csType);
435 467
     },
436 468
     // 获取毫秒数
437 469
     getTime() {
438
-      const timer = new Date()
439
-      const timer2 = timer.getTime()
440
-      return timer2
470
+      const timer = new Date();
471
+      const timer2 = timer.getTime();
472
+      return timer2;
441 473
     },
442 474
     // 新增订单
443 475
     submitForm() {
444
-      if (this.ruleForm.workType === '') {
445
-        this.$message.error('请选择工单类型!')
476
+      if (this.ruleForm.workType === "") {
477
+        this.$message.error("请选择工单类型!");
446 478
       } else {
447 479
         this.$refs.ruleForm.validate((valid) => {
448 480
           if (valid) {
449
-            this.loading = true
481
+            this.loading = true;
450 482
             return new Promise((resolve) => {
451 483
               const params = {
452
-              // workId: "55", //工单编号
484
+                // workId: "55", //工单编号
453 485
                 zxbh: this.zxbh, // 坐席编号
454 486
                 gdzl: this.slType, // 工单种类
455 487
                 content: this.ruleForm.content, // 来电内容
488
+                userType: this.ruleForm.userType,
456 489
                 isClose: -(Number(this.closeOrder) - 1), // 是否关闭
457 490
                 callNum: this.ruleForm.callNum, // 呼入号码
458 491
                 cusName: this.ruleForm.cusName, // 客户姓名
@@ -467,49 +500,54 @@ export default {
467 500
                 workTypeCode: this.ruleForm.typeCode, // 工单类型简拼
468 501
                 dutydept: this.ruleForm.dutydept,
469 502
                 dutyman: this.ruleForm.dutyman,
470
-                rate: this.ruleForm.rate
471
-              }
503
+                rate: this.ruleForm.rate,
504
+                callType: this.ruleForm.callType,
505
+              };
472 506
               // 添加
473 507
               if (this.vipid === 0) {
474 508
                 addWork(params)
475 509
                   .then((response) => {
476
-                    this.loading = false
477
-                    if (response.state.toLowerCase() === 'success') {
478
-                      this.$message({ message: '恭喜你,添加成功!', type: 'success', duration: 1000 })
510
+                    this.loading = false;
511
+                    if (response.state.toLowerCase() === "success") {
512
+                      this.$message({
513
+                        message: "恭喜你,添加成功!",
514
+                        type: "success",
515
+                        duration: 1000,
516
+                      });
479 517
                       this.$layer.iframe({
480 518
                         content: {
481 519
                           content: msg, // 传递的组件对象
482 520
                           parent: this, // 当前的vue对象
483
-                          data: {} // props
521
+                          data: {}, // props
484 522
                         },
485
-                        area: ['50%', '48%'],
486
-                        title: `短信发送`
487
-                      })
488
-                      this.ruleForm.content = ''
489
-                      this.slType = ''
490
-                      this.csType = ''
491
-                      this.ruleForm.btsr = '' // 被投诉人
492
-                      this.ruleForm.shifter = '' // 转移人
493
-                      this.ruleForm.remarks = '' // 备注
494
-                      this.ruleForm.cusName = '' // 客户名称
495
-                      this.ruleForm.typeCode = 'DHZX' // 工单类型简拼
496
-                      this.closeOrder = ''
497
-                      this.ruleForm.linkName = ''
498
-                      this.ruleForm.callNum = ''
499
-                      this.ruleForm.workType = '1'
523
+                        area: ["50%", "48%"],
524
+                        title: `短信发送`,
525
+                      });
526
+                      this.ruleForm.content = "";
527
+                      this.slType = "";
528
+                      this.csType = "";
529
+                      this.ruleForm.btsr = ""; // 被投诉人
530
+                      this.ruleForm.shifter = ""; // 转移人
531
+                      this.ruleForm.remarks = ""; // 备注
532
+                      this.ruleForm.cusName = ""; // 客户名称
533
+                      this.ruleForm.typeCode = "DHZX"; // 工单类型简拼
534
+                      this.closeOrder = "";
535
+                      this.ruleForm.linkName = "";
536
+                      this.ruleForm.callNum = "";
537
+                      this.ruleForm.workType = "1";
500 538
                     }
501 539
                   })
502 540
                   .catch(() => {
503
-                    this.loading = false
504
-                  })
505
-                return
541
+                    this.loading = false;
542
+                  });
543
+                return;
506 544
               }
507
-            })
545
+            });
508 546
           } else {
509
-            this.$message.error('请输入有效的必填项信息!')
510
-            return false
547
+            this.$message.error("请输入有效的必填项信息!");
548
+            return false;
511 549
           }
512
-        })
550
+        });
513 551
       }
514 552
     },
515 553
     // 获取咨询和投诉类型下拉数据
@@ -519,35 +557,35 @@ export default {
519 557
           f_IsLeaf: 1,
520 558
           parentId: 68,
521 559
           pageindex: 1,
522
-          pagesize: 10
523
-        }
560
+          pagesize: 10,
561
+        };
524 562
         getDictionary(params).then((response) => {
525
-          if (response.state.toLowerCase() === 'success') {
526
-            this.consultType = response.data
527
-            console.log(this.consultType)
563
+          if (response.state.toLowerCase() === "success") {
564
+            this.consultType = response.data;
565
+            console.log(this.consultType);
528 566
             for (var i = 0; i < this.consultType.length; i++) {
529
-              this.options[0].value = this.consultType[0].f_ValueId
530
-              this.options[0].label = this.consultType[0].f_Value
531
-              this.options[1].value = this.consultType[1].f_ValueId
532
-              this.options[1].label = this.consultType[1].f_Value
533
-              this.options[2].value = this.consultType[2].f_ValueId
534
-              this.options[2].label = this.consultType[2].f_Value
535
-              this.options[3].value = this.consultType[3].f_ValueId
536
-              this.options[3].label = this.consultType[3].f_Value
537
-              this.options[4].value = this.consultType[4].f_ValueId
538
-              this.options[4].label = this.consultType[4].f_Value
539
-              this.options[5].value = this.consultType[5].f_ValueId
540
-              this.options[5].label = this.consultType[5].f_Value
541
-              this.options[6].value = this.consultType[6].f_ValueId
542
-              this.options[6].label = this.consultType[6].f_Value
543
-              this.options[7].value = this.consultType[7].f_ValueId
544
-              this.options[7].label = this.consultType[7].f_Value
545
-              this.options[8].value = this.consultType[8].f_ValueId
546
-              this.options[8].label = this.consultType[8].f_Value
567
+              this.options[0].value = this.consultType[0].f_ValueId;
568
+              this.options[0].label = this.consultType[0].f_Value;
569
+              this.options[1].value = this.consultType[1].f_ValueId;
570
+              this.options[1].label = this.consultType[1].f_Value;
571
+              this.options[2].value = this.consultType[2].f_ValueId;
572
+              this.options[2].label = this.consultType[2].f_Value;
573
+              this.options[3].value = this.consultType[3].f_ValueId;
574
+              this.options[3].label = this.consultType[3].f_Value;
575
+              this.options[4].value = this.consultType[4].f_ValueId;
576
+              this.options[4].label = this.consultType[4].f_Value;
577
+              this.options[5].value = this.consultType[5].f_ValueId;
578
+              this.options[5].label = this.consultType[5].f_Value;
579
+              this.options[6].value = this.consultType[6].f_ValueId;
580
+              this.options[6].label = this.consultType[6].f_Value;
581
+              this.options[7].value = this.consultType[7].f_ValueId;
582
+              this.options[7].label = this.consultType[7].f_Value;
583
+              this.options[8].value = this.consultType[8].f_ValueId;
584
+              this.options[8].label = this.consultType[8].f_Value;
547 585
             }
548 586
           }
549
-        })
550
-      })
587
+        });
588
+      });
551 589
     },
552 590
 
553 591
     getComplainType() {
@@ -556,24 +594,24 @@ export default {
556 594
           f_IsLeaf: 1,
557 595
           parentId: 69,
558 596
           pageindex: 1,
559
-          pagesize: 10
560
-        }
597
+          pagesize: 10,
598
+        };
561 599
         getDictionary(params).then((response) => {
562
-          if (response.state.toLowerCase() === 'success') {
563
-            this.complainType = response.data
564
-            this.options2[0].value = this.complainType[0].f_ValueId
565
-            this.options2[0].label = this.complainType[0].f_Value
566
-            this.options2[1].value = this.complainType[1].f_ValueId
567
-            this.options2[1].label = this.complainType[1].f_Value
568
-            this.options2[2].value = this.complainType[2].f_ValueId
569
-            this.options2[2].label = this.complainType[2].f_Value
570
-            this.options2[3].value = this.complainType[3].f_ValueId
571
-            this.options2[3].label = this.complainType[3].f_Value
572
-            this.options2[4].value = this.complainType[4].f_ValueId
573
-            this.options2[4].label = this.complainType[4].f_Value
600
+          if (response.state.toLowerCase() === "success") {
601
+            this.complainType = response.data;
602
+            this.options2[0].value = this.complainType[0].f_ValueId;
603
+            this.options2[0].label = this.complainType[0].f_Value;
604
+            this.options2[1].value = this.complainType[1].f_ValueId;
605
+            this.options2[1].label = this.complainType[1].f_Value;
606
+            this.options2[2].value = this.complainType[2].f_ValueId;
607
+            this.options2[2].label = this.complainType[2].f_Value;
608
+            this.options2[3].value = this.complainType[3].f_ValueId;
609
+            this.options2[3].label = this.complainType[3].f_Value;
610
+            this.options2[4].value = this.complainType[4].f_ValueId;
611
+            this.options2[4].label = this.complainType[4].f_Value;
574 612
           }
575
-        })
576
-      })
613
+        });
614
+      });
577 615
     },
578 616
     // 获取销售来电类型
579 617
     // getsalemanType() {
@@ -602,12 +640,12 @@ export default {
602 640
           content: faxlist, // 传递的组件对象
603 641
           parent: this, // 当前的vue对象
604 642
           data: {
605
-            'rowname': this.ruleForm.cusName
606
-          } // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
643
+            rowname: this.ruleForm.cusName,
644
+          }, // props//该方法会自动添加一个key为layerid的值, 该值为创建层的id, 可以直接使用
607 645
         },
608
-        area: ['60%', '60%'],
609
-        title: '传真信息'
610
-      })
646
+        area: ["60%", "60%"],
647
+        title: "传真信息",
648
+      });
611 649
     },
612 650
     // // 获取投资类型
613 651
     // gettzdbType() {
@@ -630,23 +668,22 @@ export default {
630 668
     // 获取客户信息
631 669
     getCusInfos(data) {
632 670
       if (data) {
633
-        this.ruleForm.cusName = data.cusName // 客户姓名
634
-        this.ruleForm.linkName = data.cusPname // 联系人姓名
635
-        this.ruleForm.name = data.cusName // 客户姓名
636
-        this.ruleForm.callNum = data.cusTel // 联系人姓名
637
-        this.ruleForm.clientId = data.clientId
671
+        this.ruleForm.cusName = data.cusName; // 客户姓名
672
+        this.ruleForm.linkName = data.cusPname; // 联系人姓名
673
+        this.ruleForm.name = data.cusName; // 客户姓名
674
+        this.ruleForm.callNum = data.cusTel; // 联系人姓名
675
+        this.ruleForm.clientId = data.clientId;
638 676
       }
639
-    }
640
-  }
641
-}
677
+    },
678
+  },
679
+};
642 680
 </script>
643 681
 <style >
644
-  .el-checkbox__inner{
645
-  border:1px solid #22428c!important
682
+.el-checkbox__inner {
683
+  border: 1px solid #22428c !important;
646 684
 }
647 685
 </style>
648 686
 <style rel="stylesheet/scss" lang="scss" scoped>
649
-
650 687
 .app-container {
651 688
   margin: 0;
652 689
   padding: 0;