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) } },