From 84a04ecfcaeb563ee8e1400036808c8a5c3cbaa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Chuailei000=E2=80=9D?= <2280131253@qq.com>
Date: Thu, 20 Oct 2022 11:11:25 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7?=
=?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=88=9B=E5=BB=BA=E8=B4=A6=E5=8F=B7=E5=A4=B1?=
=?UTF-8?q?=E8=B4=A5=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/AccountListTable/AddAccount.vue | 15 +++++++--------
src/components/AccountListTable/index.vue | 18 +++++++++++++++++-
src/utils/common.js | 13 +++++++++++++
.../accounts/AssetAccount/AssetAccountList.vue | 15 ++++++++++-----
src/views/assets/Asset/AssetList/AllList.vue | 3 ++-
5 files changed, 49 insertions(+), 15 deletions(-)
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 @@