|
@@ -13,7 +13,7 @@
|
13
|
13
|
<self-input :reset='resetFlag' :hasLabel="false" label_name="成员名称" :inputFlag='true'
|
14
|
14
|
@inputChange='(val) => { input_keyword = val; userSearch() }' width="270px" style="margin-top:0">
|
15
|
15
|
</self-input>
|
16
|
|
- <div class="allMember">全部{{ source == 'chatGroup' ? '群主' : '成员' }}({{ userTotal }}):</div>
|
|
16
|
+ <div class="allMember">全部成员({{ userTotal }}):</div>
|
17
|
17
|
<div class="memberBoxBig self-scrollbar-3">
|
18
|
18
|
<template v-for="(item, index) in userList">
|
19
|
19
|
<div class="memberBox" :key="index + 'userList' + item.department_id">
|
|
@@ -48,7 +48,7 @@
|
48
|
48
|
</div>
|
49
|
49
|
<div class="line"></div>
|
50
|
50
|
<div class="propoverItem" style="padding-left:20px">
|
51
|
|
- <div class="title">已选择的{{ source == 'chatGroup' ? '群主' : '成员' }}</div>
|
|
51
|
+ <div class="title">已选择的成员</div>
|
52
|
52
|
<div class="choice_result_top">
|
53
|
53
|
<div class="clear" @click="closeUser(-1)">全部清空</div>
|
54
|
54
|
<div class="result_num">已选择<span>{{ selectUser && selectUser.length }}</span>人</div>
|
|
@@ -75,6 +75,7 @@
|
75
|
75
|
</div>
|
76
|
76
|
</template>
|
77
|
77
|
<script>
|
|
78
|
+import _lodash from 'lodash'
|
78
|
79
|
import selfInput from '@/components/assembly/screen/input.vue'
|
79
|
80
|
export default {
|
80
|
81
|
components: { selfInput },
|
|
@@ -100,9 +101,9 @@ export default {
|
100
|
101
|
type: Boolean,
|
101
|
102
|
default: false
|
102
|
103
|
},
|
103
|
|
- source: {//chatGroup 选择 群主列表
|
104
|
|
- type: String,
|
105
|
|
- default: 'channelCode'
|
|
104
|
+ waitForAssignNum: {
|
|
105
|
+ type: Number,
|
|
106
|
+ default: () => 0
|
106
|
107
|
},
|
107
|
108
|
},
|
108
|
109
|
watch: {
|
|
@@ -202,18 +203,13 @@ export default {
|
202
|
203
|
})
|
203
|
204
|
if (arr.length == 0) {
|
204
|
205
|
this.$message({
|
205
|
|
- message: `请选择${this.source == 'chatGroup' ? '群主' : '成员'}`,
|
|
206
|
+ message: `请选择成员`,
|
206
|
207
|
type: "warning"
|
207
|
208
|
})
|
208
|
209
|
return
|
209
|
210
|
}
|
210
|
211
|
this.visible = false
|
211
|
|
- if (this.source == 'channelCode') {
|
212
|
|
- this.$emit('change', arr, arrName)
|
213
|
|
- } else {
|
214
|
|
- this.$emit('change', arr)
|
215
|
|
- }
|
216
|
|
-
|
|
212
|
+ this.$emit('change', arr)
|
217
|
213
|
},
|
218
|
214
|
userSearch () {//模糊搜索
|
219
|
215
|
let search_user_list = []
|
|
@@ -242,18 +238,12 @@ export default {
|
242
|
238
|
},
|
243
|
239
|
init (type) {
|
244
|
240
|
this.loading = true
|
245
|
|
- let paramsData = {}
|
246
|
|
- if (this.source == 'channelCode') {
|
247
|
|
- paramsData = {
|
248
|
|
- params: {
|
249
|
|
- status: 1 // 表示只获取激活的客服
|
250
|
|
- }
|
|
241
|
+ let paramsData = {
|
|
242
|
+ params: {
|
|
243
|
+ status: 1 // 表示只获取激活的客服
|
251
|
244
|
}
|
252
|
245
|
}
|
253
|
246
|
let axios_api = this.URL.userList;
|
254
|
|
- if (this.source == 'chatGroup') {//群主
|
255
|
|
- axios_api = this.URL.chatGroup_ownerList
|
256
|
|
- }
|
257
|
247
|
this.$axios.get(this.URL.BASEURL + axios_api, paramsData).then((res) => {
|
258
|
248
|
var res = res.data
|
259
|
249
|
this.loading = false
|
|
@@ -289,8 +279,8 @@ export default {
|
289
|
279
|
this.$set(this.userList, index, arr)
|
290
|
280
|
},
|
291
|
281
|
selectUserEvent (type, main_index, user_index) {
|
292
|
|
- let selectUser = this.selectUser
|
293
|
|
- let user_arr = this.userList[main_index];
|
|
282
|
+ let selectUser = _lodash.cloneDeep(this.selectUser)
|
|
283
|
+ let user_arr = _lodash.cloneDeep(this.userList[main_index])
|
294
|
284
|
if (type == 'all') {//点击部门全选时
|
295
|
285
|
if (!user_arr.is_select) {
|
296
|
286
|
selectUser = selectUser.concat(user_arr.user_list)
|
|
@@ -312,14 +302,21 @@ export default {
|
312
|
302
|
selectUser.push(brr)
|
313
|
303
|
}
|
314
|
304
|
}
|
315
|
|
- this.$set(this.userList, main_index, user_arr)
|
|
305
|
+ // this.$set(this.userList, main_index, user_arr)
|
316
|
306
|
// 去重
|
317
|
307
|
let tmp = {};
|
318
|
308
|
selectUser = selectUser.reduce((list, item) => {
|
319
|
309
|
tmp[item.user_id] ? '' : (tmp[item.user_id] = list.push(item));
|
320
|
310
|
return list
|
321
|
311
|
}, []);
|
|
312
|
+
|
|
313
|
+ if (selectUser && (selectUser.length > this.waitForAssignNum)) { // 不能超过“待分配许可人数”
|
|
314
|
+ this.$message.warning(`最多可选${this.waitForAssignNum}名成员`)
|
|
315
|
+ return false
|
|
316
|
+ }
|
|
317
|
+
|
322
|
318
|
this.selectUser = selectUser
|
|
319
|
+ this.$set(this.userList, main_index, user_arr)
|
323
|
320
|
this.changeSelect()
|
324
|
321
|
},
|
325
|
322
|
changeSelect () {//客服选择发生变化时,部门全选跟着相应的改变
|