|
@@ -29,6 +29,35 @@
|
29
|
29
|
<!-- S 使用员工 - -->
|
30
|
30
|
|
31
|
31
|
|
|
32
|
+ <!-- S 选择客户 -->
|
|
33
|
+ <div class="regulations">
|
|
34
|
+ <label><em>*</em>选择客户</label>
|
|
35
|
+ <div>
|
|
36
|
+ <div>
|
|
37
|
+ <el-radio v-model="customer_filter" :disabled="!editFlag" :label="0">全部客户</el-radio>
|
|
38
|
+ <el-radio v-model="customer_filter" :disabled="!editFlag" :label="1">筛选客户</el-radio>
|
|
39
|
+ </div>
|
|
40
|
+ <div class="screeningCustomers" v-show="customer_filter == 1">
|
|
41
|
+ <div class="screeningItem">
|
|
42
|
+ <label>快捷筛选:</label>
|
|
43
|
+ <div class="add-days-wrap">
|
|
44
|
+ <span>添加客服</span>
|
|
45
|
+ <el-input
|
|
46
|
+ v-model.trim="add_time_later"
|
|
47
|
+ size="mini" placeholder="请输入"
|
|
48
|
+ maxlength="5" clearable
|
|
49
|
+ :disabled="!editFlag"
|
|
50
|
+ @input="onInputAddDaysLater"
|
|
51
|
+ />
|
|
52
|
+ <span>小时后</span>
|
|
53
|
+ </div>
|
|
54
|
+ </div>
|
|
55
|
+ </div>
|
|
56
|
+ </div>
|
|
57
|
+ </div>
|
|
58
|
+ <!-- E 选择客户 -->
|
|
59
|
+
|
|
60
|
+
|
32
|
61
|
|
33
|
62
|
<!-- 选择群聊 -->
|
34
|
63
|
<div class="regulations">
|
|
@@ -98,6 +127,27 @@
|
98
|
127
|
<!-- E 群管理表格 -->
|
99
|
128
|
|
100
|
129
|
|
|
130
|
+ <div class="regulations">
|
|
131
|
+ <label><em>*</em>邀请类型</label>
|
|
132
|
+ <div>
|
|
133
|
+ <el-radio v-model="invite_type" :disabled="!editFlag" :label="1">立即邀请</el-radio>
|
|
134
|
+ <el-radio v-model="invite_type" :disabled="!editFlag" :label="2">定时邀请</el-radio>
|
|
135
|
+ </div>
|
|
136
|
+ </div>
|
|
137
|
+ <div class="regulations" v-show="invite_type == 2">
|
|
138
|
+ <label><em>*</em>邀请时间点</label>
|
|
139
|
+ <div class="send-time-item">
|
|
140
|
+ <div class="timeNums-wrap">
|
|
141
|
+ <div class="timeNums" v-for="(item, idx) in invite_time_list" :key="idx">
|
|
142
|
+ <el-time-picker v-model="invite_time_list[idx]" size="mini" placeholder="请选择" value-format="HH:mm" format="HH:mm" :clearable="false" />
|
|
143
|
+ <i v-if="idx !== 0" class="el-icon-error" @click="onClickDelInviteTime(idx)" />
|
|
144
|
+ </div>
|
|
145
|
+ </div>
|
|
146
|
+ <span class="add-btn" @click="onClickAddInviteTime"><i class="el-icon-circle-plus-outline" />新增时间点</span>
|
|
147
|
+ </div>
|
|
148
|
+ </div>
|
|
149
|
+
|
|
150
|
+
|
101
|
151
|
<div class="button_box">
|
102
|
152
|
<button class="button" v-if="editFlag" @click="massMsg_set">确定</button>
|
103
|
153
|
</div>
|
|
@@ -108,7 +158,7 @@
|
108
|
158
|
import selfCustomerservice from '@/components/assembly/screen/customerService.vue'
|
109
|
159
|
import _lodash from 'lodash'
|
110
|
160
|
import Sortable from 'sortablejs'
|
111
|
|
-import { getIntegerNumber } from '@/assets/js/common'
|
|
161
|
+import { getIntegerNumber, isJSON } from '@/assets/js/common'
|
112
|
162
|
import chatGroupOptions from './chatGroupOptions.vue'
|
113
|
163
|
|
114
|
164
|
export default {
|
|
@@ -127,6 +177,11 @@ export default {
|
127
|
177
|
is_limit:0
|
128
|
178
|
},
|
129
|
179
|
deleteChart: {},
|
|
180
|
+
|
|
181
|
+ customer_filter: 0, // 筛选
|
|
182
|
+ add_time_later: '', // 快捷筛选
|
|
183
|
+ invite_type: 1, // 邀请类型
|
|
184
|
+ invite_time_list: [''], // 邀请时间点
|
130
|
185
|
}
|
131
|
186
|
},
|
132
|
187
|
created () {
|
|
@@ -248,6 +303,19 @@ export default {
|
248
|
303
|
if (res.rst.users && res.rst.users.length > 0) {
|
249
|
304
|
this.is_for_all = 0
|
250
|
305
|
}
|
|
306
|
+
|
|
307
|
+ // 筛选客户
|
|
308
|
+ this.customer_filter = res.rst.customer_filter || 0
|
|
309
|
+ this.add_time_later = res.rst.customer_filter ? res.rst.add_time_later : ''
|
|
310
|
+ // 邀请类型
|
|
311
|
+ this.invite_type = res.rst.invite_type || 1
|
|
312
|
+ // 邀请时间点
|
|
313
|
+ if (res.rst.invite_type == 2 && res.rst.invite_time && isJSON(res.rst.invite_time)) {
|
|
314
|
+ this.invite_time_list = JSON.parse(res.rst.invite_time)
|
|
315
|
+ } else {
|
|
316
|
+ this.invite_time_list = ['']
|
|
317
|
+ }
|
|
318
|
+
|
251
|
319
|
//群聊
|
252
|
320
|
this.main_msg_data.chat_group_config = res.rst.invite_config
|
253
|
321
|
this.main_msg_data.chat_group_config.forEach(item=>{
|
|
@@ -283,6 +351,11 @@ export default {
|
283
|
351
|
return
|
284
|
352
|
}
|
285
|
353
|
|
|
354
|
+ if (this.customer_filter == 1 && !this.add_time_later) {
|
|
355
|
+ this.$message.warning('请输入快捷筛选-添加客服时间')
|
|
356
|
+ return
|
|
357
|
+ }
|
|
358
|
+
|
286
|
359
|
if (this.name == '') {
|
287
|
360
|
this.$message({
|
288
|
361
|
message: '请输入标题!',
|
|
@@ -298,6 +371,15 @@ export default {
|
298
|
371
|
})
|
299
|
372
|
return
|
300
|
373
|
}
|
|
374
|
+
|
|
375
|
+ if (this.invite_type == 2) {
|
|
376
|
+ const isEmpty = this.invite_time_list.some(i => !i)
|
|
377
|
+ if (isEmpty) {
|
|
378
|
+ this.$message.warning('请完善邀请时间点')
|
|
379
|
+ return
|
|
380
|
+ }
|
|
381
|
+ }
|
|
382
|
+
|
301
|
383
|
this.$loading(this.$loadingConfig)
|
302
|
384
|
let params = {
|
303
|
385
|
rule_id: this.rule_id ? this.rule_id : '',
|
|
@@ -305,7 +387,12 @@ export default {
|
305
|
387
|
is_for_all:this.is_for_all,
|
306
|
388
|
users:this.user_id_list&&this.user_id_list.length>0 ? this.user_id_list.join(',') : '',
|
307
|
389
|
invite_config:JSON.stringify(this.main_msg_data.chat_group_config),
|
308
|
|
- join_type:this.main_msg_data.join_type
|
|
390
|
+ join_type:this.main_msg_data.join_type,
|
|
391
|
+
|
|
392
|
+ customer_filter: this.customer_filter,
|
|
393
|
+ add_time_later: this.customer_filter == 1 ? this.add_time_later : '',
|
|
394
|
+ invite_type: this.invite_type,
|
|
395
|
+ invite_time: this.invite_type == 2 ? JSON.stringify(this.invite_time_list) : '',
|
309
|
396
|
}
|
310
|
397
|
this.$axios.post(this.URL.BASEURL + this.URL.inviteRule_add, params).then((res) => {
|
311
|
398
|
var res = res.data
|
|
@@ -326,6 +413,19 @@ export default {
|
326
|
413
|
this.$loading(this.$loadingConfig).close()
|
327
|
414
|
});
|
328
|
415
|
},
|
|
416
|
+
|
|
417
|
+ // 监听输入"快捷筛选 小时数"
|
|
418
|
+ onInputAddDaysLater(inputVal) {
|
|
419
|
+ this.add_time_later = getIntegerNumber(inputVal)
|
|
420
|
+ },
|
|
421
|
+ // 监听点击新增时间点
|
|
422
|
+ onClickAddInviteTime() {
|
|
423
|
+ this.invite_time_list.push('')
|
|
424
|
+ },
|
|
425
|
+ // 监听点击删除时间点
|
|
426
|
+ onClickDelInviteTime(idx) {
|
|
427
|
+ this.invite_time_list.splice(idx, 1)
|
|
428
|
+ },
|
329
|
429
|
}
|
330
|
430
|
}
|
331
|
431
|
</script>
|
|
@@ -499,4 +599,59 @@ export default {
|
499
|
599
|
margin-left:10px;
|
500
|
600
|
}
|
501
|
601
|
}
|
|
602
|
+
|
|
603
|
+.send-time-item {
|
|
604
|
+ display: flex;
|
|
605
|
+ align-items: flex-end;
|
|
606
|
+ flex-wrap: wrap;
|
|
607
|
+ margin-bottom: 20px;
|
|
608
|
+ &:last-child {
|
|
609
|
+ margin-bottom: 0;
|
|
610
|
+ }
|
|
611
|
+ .el-radio {
|
|
612
|
+ width: auto;
|
|
613
|
+ margin-right: 0;
|
|
614
|
+ }
|
|
615
|
+ .text {
|
|
616
|
+ flex-shrink: 0;
|
|
617
|
+ }
|
|
618
|
+ .el-input {
|
|
619
|
+ margin: 0 6px;
|
|
620
|
+ width: 80px;
|
|
621
|
+ font-size: 13px;
|
|
622
|
+ }
|
|
623
|
+ .timeNums-wrap {
|
|
624
|
+ .timeNums {
|
|
625
|
+ margin-top: 6px;
|
|
626
|
+ &:first-child {
|
|
627
|
+ margin-top: 0;
|
|
628
|
+ }
|
|
629
|
+ .el-date-editor {
|
|
630
|
+ width: 120px;
|
|
631
|
+ }
|
|
632
|
+ position: relative;
|
|
633
|
+ .el-icon-error {
|
|
634
|
+ position: absolute;
|
|
635
|
+ right: 0px;
|
|
636
|
+ top: -4px;
|
|
637
|
+ color: #F56C6C;
|
|
638
|
+ font-size: 14px;
|
|
639
|
+ cursor: pointer;
|
|
640
|
+ }
|
|
641
|
+ }
|
|
642
|
+ }
|
|
643
|
+ .add-btn {
|
|
644
|
+ margin-bottom: 6px;
|
|
645
|
+ display: flex;
|
|
646
|
+ align-items: center;
|
|
647
|
+ font-size: 13px;
|
|
648
|
+ color: #555;
|
|
649
|
+ cursor: pointer;
|
|
650
|
+ .el-icon-circle-plus-outline {
|
|
651
|
+ margin-left: 10px;
|
|
652
|
+ margin-right: 6px;
|
|
653
|
+ font-size: 16px;
|
|
654
|
+ }
|
|
655
|
+ }
|
|
656
|
+}
|
502
|
657
|
</style>
|