diff --git a/src/components/selection/UserSelectByContactModal.vue b/src/components/selection/UserSelectByContactModal.vue index 93b764af..5426ae8c 100644 --- a/src/components/selection/UserSelectByContactModal.vue +++ b/src/components/selection/UserSelectByContactModal.vue @@ -241,13 +241,23 @@ export default { params.order = 'desc' getAction(this.url.userList, params).then(res => { if (res.success) { - this.dataSourceRight = res.result.records || [] - this.selectedRowKeys = (res.result.records || []).map(item => item.contactId) + const arr = this.uniqueByKey([...res.result.records || [], ...this.dataSourceRight || []], 'contactId') + this.dataSourceRight = Array.from(arr) + this.selectedRowKeys = Array.from(arr).map(item => item.contactId) } }).finally(() => { this.loadingLeft = false }) }, + // 根据某个字段对对象数组去重 + uniqueByKey (arr, key) { + const map = arr.reduce((acc, obj) => { + const keyValue = obj[key] + acc[keyValue] = obj + return acc + }, {}) + return Object.values(map) + }, // 获取当前查询条件的所有数据 async getCurrentAllData () { const params = Object.assign({}, this.queryParam) diff --git a/src/components/selection/UserSelectByContactNoMergeModal.vue b/src/components/selection/UserSelectByContactNoMergeModal.vue index 25bdb99d..41a58787 100644 --- a/src/components/selection/UserSelectByContactNoMergeModal.vue +++ b/src/components/selection/UserSelectByContactNoMergeModal.vue @@ -271,13 +271,23 @@ export default { params.order = 'desc' getAction(this.url.userList, params).then(res => { if (res.success) { - this.dataSourceRight = res.result.records || [] - this.selectedRowKeys = (res.result.records || []).map(item => item.id) + const arr = this.uniqueByKey([...res.result.records || [], ...this.dataSourceRight || []], 'id') + this.dataSourceRight = Array.from(arr) + this.selectedRowKeys = Array.from(arr).map(item => item.id) } }).finally(() => { this.loadingLeft = false }) }, + // 根据某个字段对对象数组去重 + uniqueByKey (arr, key) { + const map = arr.reduce((acc, obj) => { + const keyValue = obj[key] + acc[keyValue] = obj + return acc + }, {}) + return Object.values(map) + }, // 获取当前查询条件的所有数据 async getCurrentAllData () { const params = Object.assign({}, this.queryParam) diff --git a/src/components/selection/UserSelectByWorkGroupModal.vue b/src/components/selection/UserSelectByWorkGroupModal.vue index 48c24acb..5227e88d 100644 --- a/src/components/selection/UserSelectByWorkGroupModal.vue +++ b/src/components/selection/UserSelectByWorkGroupModal.vue @@ -340,13 +340,23 @@ export default { params.pageSize = this.ipagination.total + 10 getAction(this.url.userList, params).then(res => { if (res.success) { - this.dataSourceRight = res.result.records || [] - this.selectedRowKeys = (res.result.records || []).map(item => item.userId) + const arr = this.uniqueByKey([...res.result.records || [], ...this.dataSourceRight || []], 'userId') + this.dataSourceRight = Array.from(arr) + this.selectedRowKeys = Array.from(arr).map(item => item.userId) } }).finally(() => { this.loadingLeft = false }) }, + // 根据某个字段对对象数组去重 + uniqueByKey (arr, key) { + const map = arr.reduce((acc, obj) => { + const keyValue = obj[key] + acc[keyValue] = obj + return acc + }, {}) + return Object.values(map) + }, // 获取当前查询条件的所有数据 async getCurrentAllData () { const params = Object.assign({}, this.queryParam) diff --git a/src/components/selection/UserSelectModal.vue b/src/components/selection/UserSelectModal.vue index 1c1472d4..e51b67ff 100644 --- a/src/components/selection/UserSelectModal.vue +++ b/src/components/selection/UserSelectModal.vue @@ -290,14 +290,24 @@ export default { params.order = 'desc' getAction(this.url.userList, params).then(res => { if (res.success) { - this.dataSourceRight = res.result.records || [] - this.selectedRowKeys = (res.result.records || []).map(item => item.id) + const arr = this.uniqueByKey([...res.result.records || [], ...this.dataSourceRight || []], 'id') + this.dataSourceRight = Array.from(arr) + this.selectedRowKeys = Array.from(arr).map(item => item.id) this.oldTotal = res.result.total } }).finally(() => { this.loadingLeft = false }) }, + // 根据某个字段对对象数组去重 + uniqueByKey (arr, key) { + const map = arr.reduce((acc, obj) => { + const keyValue = obj[key] + acc[keyValue] = obj + return acc + }, {}) + return Object.values(map) + }, // 获取当前查询条件的所有数据 async getCurrentAllData () { const params = Object.assign({}, this.queryParam)