|
@@ -14,7 +14,8 @@
|
14
|
14
|
<span class="lable required">分组名称</span>
|
15
|
15
|
<el-input v-model="form.title" size="small" placeholder="请输入" />
|
16
|
16
|
</div>
|
17
|
|
- <!-- S 分组名称 -->
|
|
17
|
+ <!-- E 分组名称 -->
|
|
18
|
+
|
18
|
19
|
<!-- S 选择模式 -->
|
19
|
20
|
<div class="form-item">
|
20
|
21
|
<span class="lable required">选择模式:</span>
|
|
@@ -24,6 +25,16 @@
|
24
|
25
|
</div>
|
25
|
26
|
</div>
|
26
|
27
|
<!-- E 选择模式 -->
|
|
28
|
+
|
|
29
|
+ <!-- S 企微主体 - 单个企微主体 模式 -->
|
|
30
|
+ <div v-show="form.operate_type == 1" class="form-item">
|
|
31
|
+ <span class="lable required">企微主体:</span>
|
|
32
|
+ <div class="flex-align-center">
|
|
33
|
+ <selfSelectCorp v-model="form.corpid" :labelName="''" :width="300" :clearable="false" @change="onChangeCorpid" />
|
|
34
|
+ </div>
|
|
35
|
+ </div>
|
|
36
|
+ <!-- E 企微主体 - 单个企微主体 模式 -->
|
|
37
|
+
|
27
|
38
|
<!-- S 使用员工 - 单个企微主体 模式 -->
|
28
|
39
|
<div v-show="form.operate_type == 1" class="form-item flex-align-start">
|
29
|
40
|
<span class="lable required">使用员工:</span>
|
|
@@ -36,7 +47,7 @@
|
36
|
47
|
v-if="form.is_all == 0"
|
37
|
48
|
title='' width="300px"
|
38
|
49
|
:afferent_users='form.user_id_list'
|
39
|
|
- :corpid="customerserviceCorpid"
|
|
50
|
+ :corpid="form.corpid"
|
40
|
51
|
@customerDefine="(val) => { form.user_id_list = val; }"
|
41
|
52
|
/>
|
42
|
53
|
</div>
|
|
@@ -71,10 +82,11 @@ import selfChannel from '@/components/assembly/screen/channel.vue'
|
71
|
82
|
import selfCustomerservice from '@/components/assembly/screen/customerService.vue'
|
72
|
83
|
import customerServiceCorpV2 from '@/components/assembly/screen/customerServiceCorpV2.vue'
|
73
|
84
|
import { isJSON } from '@/assets/js/common'
|
|
85
|
+import selfSelectCorp from '@/components/assembly/screen/selectCorp.vue'
|
74
|
86
|
|
75
|
87
|
export default {
|
76
|
88
|
name: "pushGroupDialog",
|
77
|
|
- components: { selfChannel, selfCustomerservice, customerServiceCorpV2 },
|
|
89
|
+ components: { selfChannel, selfCustomerservice, customerServiceCorpV2, selfSelectCorp },
|
78
|
90
|
props: {
|
79
|
91
|
// 控制弹框是否显示
|
80
|
92
|
dialogVisible: {
|
|
@@ -93,7 +105,6 @@ export default {
|
93
|
105
|
return {
|
94
|
106
|
loading: false,
|
95
|
107
|
isShowForm: false,
|
96
|
|
- customerserviceCorpid: '',
|
97
|
108
|
form: {
|
98
|
109
|
title: '',
|
99
|
110
|
is_all: 1, // 使用员工:1全部员工 0部分员工
|
|
@@ -103,6 +114,8 @@ export default {
|
103
|
114
|
operator_group_id: '', // 运营组id
|
104
|
115
|
afferent_multiple_senders: [], // 多个主体时选择的客服成员 [{ user_id: 888, corpid: 666 }]
|
105
|
116
|
multiple_senders: [], // 多个主体时选择的客服成员结果
|
|
117
|
+
|
|
118
|
+ corpid: '', // 单企微模式传用户选择的企微,多企微模式不传(默认传全局缓存的数据)
|
106
|
119
|
}
|
107
|
120
|
}
|
108
|
121
|
},
|
|
@@ -141,6 +154,11 @@ export default {
|
141
|
154
|
operator_group_id: (operate_type == 2 && is_operation == 1) ? operator_group_id : '',
|
142
|
155
|
multiple_senders: (operate_type == 2 && is_operation == 0 && multiple_senders.length) ? JSON.stringify(multiple_senders) : '',
|
143
|
156
|
}
|
|
157
|
+
|
|
158
|
+ if (operate_type == 1) { // 单企微模式传用户选择的企微id,多企微模式默认传全局缓存的数据
|
|
159
|
+ params.corpid = this.form.corpid
|
|
160
|
+ }
|
|
161
|
+
|
144
|
162
|
this.loading = true
|
145
|
163
|
const { data: res = {} } = await this.$axios.post(url, params)
|
146
|
164
|
if (res && res.errno == 0) {
|
|
@@ -163,10 +181,14 @@ export default {
|
163
|
181
|
// 执行表单校验
|
164
|
182
|
handleFormValidate() {
|
165
|
183
|
return new Promise((resolve, reject) => {
|
166
|
|
- const { title, operate_type, is_all, user_id_list, is_operation, operator_group_id, multiple_senders } = this.form
|
|
184
|
+ const { title, operate_type, is_all, user_id_list, is_operation, operator_group_id, multiple_senders, corpid } = this.form
|
167
|
185
|
if (!title) {
|
168
|
186
|
this.$message.warning('请输入分组名称')
|
169
|
187
|
reject('表单校验未通过')
|
|
188
|
+ } else if ((operate_type == 1) && (!corpid || corpid == '')) {
|
|
189
|
+ // 单主体判空
|
|
190
|
+ this.$message.warning('请选择企微主体')
|
|
191
|
+ reject('表单校验未通过')
|
170
|
192
|
} else if ((operate_type == 1) && (is_all == 0) && (!user_id_list || !user_id_list.length)) {
|
171
|
193
|
// 单主体判空
|
172
|
194
|
this.$message.warning('请选择使用员工!')
|
|
@@ -202,6 +224,7 @@ export default {
|
202
|
224
|
this.form.operator_group_id = ''
|
203
|
225
|
this.form.afferent_multiple_senders = []
|
204
|
226
|
this.form.multiple_senders = []
|
|
227
|
+ this.form.corpid = ''
|
205
|
228
|
},
|
206
|
229
|
|
207
|
230
|
// 监听运营组选择
|
|
@@ -219,6 +242,15 @@ export default {
|
219
|
242
|
}
|
220
|
243
|
},
|
221
|
244
|
|
|
245
|
+ // 监听企微主体筛选变化
|
|
246
|
+ async onChangeCorpid(corp) {
|
|
247
|
+ console.log('corp => ', corp)
|
|
248
|
+ this.form.user_id_list = []
|
|
249
|
+ this.loading = true
|
|
250
|
+ await this.$nextTick()
|
|
251
|
+ this.loading = false
|
|
252
|
+ },
|
|
253
|
+
|
222
|
254
|
async handleGetGroupDetail() {
|
223
|
255
|
try {
|
224
|
256
|
const url = `${this.URL.BASEURL}${this.URL.smartPushV3_groupDetail}`
|
|
@@ -237,7 +269,7 @@ export default {
|
237
|
269
|
if (this.form.operate_type == 1) { // 单企微字段回显
|
238
|
270
|
this.form.user_id_list = (detailInfo.senders && !isJSON(detailInfo.senders)) ? detailInfo.senders.split(',') : [];
|
239
|
271
|
this.form.is_all = (detailInfo.is_all || detailInfo.is_all === 0) ? detailInfo.is_all : 1
|
240
|
|
- this.customerserviceCorpid = detailInfo.corpid
|
|
272
|
+ this.form.corpid = detailInfo.corpid
|
241
|
273
|
}
|
242
|
274
|
|
243
|
275
|
if (this.form.operate_type == 2) { // 多企微字段回显
|
|
@@ -260,7 +292,6 @@ export default {
|
260
|
292
|
})
|
261
|
293
|
this.form.afferent_multiple_senders = [...arr]
|
262
|
294
|
}
|
263
|
|
- this.customerserviceCorpid = ''
|
264
|
295
|
}
|
265
|
296
|
|
266
|
297
|
this.isShowForm = true
|