diff --git a/src/components/AccountListTable/AddAccount.vue b/src/components/AccountListTable/AddAccount.vue index 163a2c439..f891c9fa5 100644 --- a/src/components/AccountListTable/AddAccount.vue +++ b/src/components/AccountListTable/AddAccount.vue @@ -67,14 +67,13 @@ export default { methods: { addAccount(form) { const data = { asset: this.asset.id, ...form } - this.$axios.post(`/api/v1/assets/accounts/`, data) - .then(() => { - this.iVisible = false - this.$emit('add', true) - }) - .catch(() => { - this.$message.error(this.$tc('common.createErrorMsg')) - }) + this.$axios.post(`/api/v1/assets/accounts/`, data).then(() => { + this.iVisible = false + this.$emit('add', true) + this.$message.success(this.$t('common.createSuccessMsg')) + }).catch(() => { + this.$message.error(this.$tc('common.createErrorMsg')) + }) }, editAccount(form) { const data = { ...form } diff --git a/src/components/AccountListTable/index.vue b/src/components/AccountListTable/index.vue index 902354632..6921712ab 100644 --- a/src/components/AccountListTable/index.vue +++ b/src/components/AccountListTable/index.vue @@ -11,7 +11,7 @@ @@ -26,6 +26,7 @@ import UpdateSecretInfo from './UpdateSecretInfo' import AddAccount from './AddAccount' import { connectivityMeta } from './const' import { openTaskPage } from '@/utils/jms' +import { hasUUID } from '@/utils/common' export default { name: 'AccountListTable', @@ -73,6 +74,7 @@ export default { showViewSecretDialog: false, showUpdateSecretDialog: false, showAddDialog: false, + iAsset: this.asset, account: {}, tableConfig: { url: this.url, @@ -213,6 +215,12 @@ export default { url(iNew) { this.$set(this.tableConfig, 'url', iNew) this.$set(this.headerActions.exportOptions, 'url', iNew.replace('/accounts/', '/account-secrets/')) + }, + '$route.query.assets': { + immediate: true, + handler() { + this.hasAccountPermission() + } } }, mounted() { @@ -232,6 +240,14 @@ export default { }, addAccountSuccess() { this.$refs.ListTable.reloadTable() + }, + hasAccountPermission() { + const { path, query } = this.$route + if (!hasUUID(path)) { + const hasPerm = this.$hasPerm('assets.add_account') && !!query.assets + this.iAsset = { id: query.assets } + this.$set(this.headerActions.extraActions[0], 'can', hasPerm) + } } } } diff --git a/src/utils/common.js b/src/utils/common.js index 70e04abbf..2786229be 100644 --- a/src/utils/common.js +++ b/src/utils/common.js @@ -209,6 +209,19 @@ export function setUrlParam(url, name, value) { return url } +export function setRouterQuery(vm, url = '') { + url = url || vm.tableConfig.url + const params = url.split('?')[1] + const query = Object.fromEntries(new URLSearchParams(params)) + const newQuery = { + ...vm.$route.query, + ...query + } + vm.$nextTick(() => { + vm.$router.replace({ query: newQuery }) + }) +} + export function getDayFuture(days, now) { if (!now) { now = new Date() diff --git a/src/views/accounts/AssetAccount/AssetAccountList.vue b/src/views/accounts/AssetAccount/AssetAccountList.vue index 037b1b35c..fac6f2eec 100644 --- a/src/views/accounts/AssetAccount/AssetAccountList.vue +++ b/src/views/accounts/AssetAccount/AssetAccountList.vue @@ -1,7 +1,7 @@ @@ -9,7 +9,7 @@