diff --git a/src/views/assets/Asset/AssetCreateUpdate/components/AccountTemplateDialog.vue b/src/views/assets/Asset/AssetCreateUpdate/components/AccountTemplateDialog.vue
index 34df5fb7e..e451def6d 100644
--- a/src/views/assets/Asset/AssetCreateUpdate/components/AccountTemplateDialog.vue
+++ b/src/views/assets/Asset/AssetCreateUpdate/components/AccountTemplateDialog.vue
@@ -37,7 +37,7 @@
-
+
!i?.id)
- values.forEach((item, index) => {
- const hasSameTypeAccount = _.filter(notIdAccounts, function(o) {
- return o.username === item.username && o.secret_type === item.secret_type.value
- })
- if (hasSameTypeAccount.length > 0) {
- this.$message.error(this.$t('accounts.SameTypeAccountTip'))
- this.$refs.dataTable.$refs.dataTable.toggleRowSelection(item, false)
- this.accountsSelected.splice(index, 1)
- }
- })
- },
hasSelectValue(row) {
return this.accountsSelected.some(item => item.id === row.id)
},
+ // 判断是否有相同类型的账号, 有则不允许选择
+ hasSameTypeAccount(row) {
+ const notIdAccounts = this.accounts.filter(i => !i?.id)
+ const needFilterAccounts = [...notIdAccounts, ...this.accountsSelected]
+ const status = needFilterAccounts.some(item => {
+ return row.username === item.username && (
+ row.secret_type.value === item.secret_type ||
+ row.secret_type.value === item.secret_type.value
+ )
+ })
+ if (status) {
+ this.$refs.dataTable.$refs.dataTable.toggleRowSelection(row, false)
+ this.$message.error(this.$t('accounts.SameTypeAccountTip'))
+ }
+ return status
+ },
addRowToSelect(row) {
const hasSelectValue = this.hasSelectValue(row)
- if (!hasSelectValue) {
+ const hasSameTypeAccount = this.hasSameTypeAccount(row)
+ if (!hasSelectValue && !hasSameTypeAccount) {
this.accountsSelected.push(row)
}
},