perf: auto decide create in new page or current page in asset or permission

This commit is contained in:
ibuler
2024-01-15 19:29:04 +08:00
committed by 老广
parent 598020a89b
commit 6f3f66df73
5 changed files with 32 additions and 8 deletions

View File

@@ -60,6 +60,7 @@ export default {
const showAssets = this.treeSetting?.showAssets || this.showAssets
const treeUrlQuery = this.setTreeUrlQuery()
const assetTreeUrl = `${this.treeUrl}?assets=${showAssets ? '1' : '0'}&${treeUrlQuery}`
const vm = this
return {
treeTabConfig: {
@@ -81,7 +82,13 @@ export default {
nodeUrl: this.nodeUrl,
treeUrl: assetTreeUrl,
callback: {
onSelected: (event, treeNode) => this.getAssetsUrl(treeNode)
onSelected: (event, treeNode) => this.getAssetsUrl(treeNode),
beforeRefresh: () => {
const query = { ...this.$route.query, node_id: '', asset_id: '' }
setTimeout(() => {
vm.$router.replace({ query: query })
}, 100)
}
},
...this.treeSetting
}

View File

@@ -167,6 +167,9 @@ export default {
},
async refresh() {
this.treeSearchValue = ''
if (this.treeSetting?.callback?.beforeRefresh) {
this.treeSetting.callback.beforeRefresh()
}
if (this.treeSetting?.callback?.refresh) {
await this.treeSetting.callback.refresh()
}

View File

@@ -97,8 +97,13 @@ export default {
route.query.type = row.type.value
route.query.category = row.type.category
}
const { href } = vm.$router.resolve(route)
window.open(href, '_blank')
const createInNewPage = this.$route.query.node_id && routeAction === 'Create'
if (createInNewPage) {
const { href } = vm.$router.resolve(route)
window.open(href, '_blank')
} else {
this.$router.push(route)
}
}
const extraQuery = this.$route.params?.extraQuery || {}
return {

View File

@@ -160,8 +160,12 @@ export default {
}
const router = { name: route, query }
const { href } = this.$router.resolve(router)
window.open(href, '_blank')
if (this.$route.query.node_id) {
const { href } = this.$router.resolve(router)
window.open(href, '_blank')
} else {
this.$router.push(router)
}
}
}
}

View File

@@ -157,11 +157,17 @@ export default {
headerActions: {
hasLabelSearch: true,
hasBulkDelete: true,
createRoute() {
return {
onCreate: () => {
const route = {
name: 'AssetPermissionCreate',
query: this.$route.query
}
if (vm.$route.query.node_id) {
const { href } = this.$router.resolve(route)
window.open(href, '_blank')
} else {
this.$router.push(route)
}
},
handleImportClick: ({ selectedRows }) => {
this.$eventBus.$emit('showImportDialog', {
@@ -169,7 +175,6 @@ export default {
url: '/api/v1/perms/asset-permissions/'
})
},
createInNewPage: true,
searchConfig: {
url: '',
options: AssetPermissionListPageSearchConfigOptions