mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-20 10:46:35 +00:00
fixed: Fixed an issue with asset refresh when clicked
This commit is contained in:
@@ -140,12 +140,14 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
setTreeUrlQuery() {
|
setTreeUrlQuery() {
|
||||||
let str = ''
|
let str = ''
|
||||||
|
if (Object.keys(this.treeUrlQuery).length > 0) {
|
||||||
for (const key in this.treeUrlQuery) {
|
for (const key in this.treeUrlQuery) {
|
||||||
str += `${key}=${this.treeUrlQuery[key]}&`
|
str += `${key}=${this.treeUrlQuery[key]}&`
|
||||||
}
|
}
|
||||||
str = str.substr(0, str.length - 1)
|
str = str.substr(0, str.length - 1)
|
||||||
|
|
||||||
return str
|
return str
|
||||||
|
}
|
||||||
},
|
},
|
||||||
decorateRMenu() {
|
decorateRMenu() {
|
||||||
const show_current_asset = this.$cookie.get('show_current_asset') || '0'
|
const show_current_asset = this.$cookie.get('show_current_asset') || '0'
|
||||||
@@ -159,28 +161,51 @@ export default {
|
|||||||
},
|
},
|
||||||
getAssetsUrl(treeNode) {
|
getAssetsUrl(treeNode) {
|
||||||
let url = this.treeSetting?.url || this.url
|
let url = this.treeSetting?.url || this.url
|
||||||
|
|
||||||
|
/*
|
||||||
|
由于需要设置两个 url 然后通过 $set 设置 tableConfig 的 url 的发送请求,就会出现先后问题
|
||||||
|
导致了当一个请求回来后 tick 更新但是较慢的请求回来的数据视图没有更新的问题
|
||||||
|
*/
|
||||||
|
|
||||||
if (treeNode.meta.type === 'node') {
|
if (treeNode.meta.type === 'node') {
|
||||||
const nodeId = treeNode.meta.data.id
|
const nodeId = treeNode.meta.data.id
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'node_id', nodeId)
|
url = setUrlParam(url, 'node_id', nodeId)
|
||||||
|
})
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'asset_id', '')
|
url = setUrlParam(url, 'asset_id', '')
|
||||||
|
})
|
||||||
} else if (treeNode.meta.type === 'asset') {
|
} else if (treeNode.meta.type === 'asset') {
|
||||||
const assetId = treeNode.meta.data?.id || treeNode.id
|
const assetId = treeNode.meta.data?.id || treeNode.id
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'node_id', '')
|
url = setUrlParam(url, 'node_id', '')
|
||||||
|
})
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'asset_id', assetId)
|
url = setUrlParam(url, 'asset_id', assetId)
|
||||||
|
})
|
||||||
} else if (treeNode.meta.type === 'category') {
|
} else if (treeNode.meta.type === 'category') {
|
||||||
url = setUrlParam(url, 'category', treeNode.meta.category)
|
url = setUrlParam(url, 'category', treeNode.meta.category)
|
||||||
} else if (treeNode.meta.type === 'type') {
|
} else if (treeNode.meta.type === 'type') {
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'category', treeNode.meta.category)
|
url = setUrlParam(url, 'category', treeNode.meta.category)
|
||||||
|
})
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
url = setUrlParam(url, 'type', treeNode.meta._type)
|
url = setUrlParam(url, 'type', treeNode.meta._type)
|
||||||
|
})
|
||||||
} else if (treeNode.meta.type === 'platform') {
|
} else if (treeNode.meta.type === 'platform') {
|
||||||
url = setUrlParam(url, 'platform', treeNode.id)
|
url = setUrlParam(url, 'platform', treeNode.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
const query = this.setTreeUrlQuery()
|
const query = this.setTreeUrlQuery()
|
||||||
url = query ? `${url}&${query}` : url
|
url = query ? `${url}&${query}` : url
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
this.$set(this.tableConfig, 'url', url)
|
this.$set(this.tableConfig, 'url', url)
|
||||||
}, 300)
|
})
|
||||||
|
|
||||||
if (this.treeSetting.selectSyncToRoute !== false) {
|
if (this.treeSetting.selectSyncToRoute !== false) {
|
||||||
setRouterQuery(this, url)
|
setRouterQuery(this, url)
|
||||||
|
@@ -120,6 +120,7 @@ export default {
|
|||||||
autoComplete: true,
|
autoComplete: true,
|
||||||
query: (query, cb) => {
|
query: (query, cb) => {
|
||||||
const { hosts, nodes } = this.getSelectedNodesAndHosts()
|
const { hosts, nodes } = this.getSelectedNodesAndHosts()
|
||||||
|
if (hosts.length > 0 && nodes.length > 0) {
|
||||||
this.$axios.post('/api/v1/ops/username-hints/', {
|
this.$axios.post('/api/v1/ops/username-hints/', {
|
||||||
nodes: nodes,
|
nodes: nodes,
|
||||||
assets: hosts,
|
assets: hosts,
|
||||||
@@ -130,6 +131,9 @@ export default {
|
|||||||
})
|
})
|
||||||
cb(ns)
|
cb(ns)
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
cb([])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
options: [],
|
options: [],
|
||||||
|
Reference in New Issue
Block a user