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 @@