fix: 资产树默认关闭搜索;调整搜索url携带的参数

This commit is contained in:
“huailei000”
2022-08-12 16:00:16 +08:00
parent f2120521d6
commit 802d6f6cd3
5 changed files with 41 additions and 11 deletions

View File

@@ -75,6 +75,8 @@ export default {
showMenu: false,
showRefresh: true,
showAssets: false,
showSearch: true,
customTreeHeader: true,
url: '/api/v1/assets/assets/?fields_size=mini',
nodeUrl: '/api/v1/assets/nodes/',
// ?assets=0不显示资产. =1显示资产

View File

@@ -38,9 +38,9 @@ export default {
showCreate: true,
showDelete: true,
showUpdate: true,
showSearch: true,
showSearch: false,
// 自定义header
customTreeHeader: true,
customTreeHeader: false,
customTreeHeaderName: this.$t('assets.Asset'),
async: {
enable: true,

View File

@@ -32,16 +32,19 @@
{{ this.$t('common.tree.Loading') }}...
</ul>
<ul v-show="!loading" :id="iZTreeID" class="ztree" />
<div v-if="treeSetting.treeUrl===''" class="tree-empty">
{{ this.$t('common.tree.Empty') }}
</div>
</div>
<div v-else class="treebox">
<ul v-show="loading" class="ztree">
{{ this.$t('common.tree.Loading') }}...
</ul>
<ul v-show="!loading" :id="iZTreeID" class="ztree" />
</div>
<div v-if="treeSetting.treeUrl===''">
{{ this.$t('common.tree.Empty') }}
<a id="tree-refresh"><i class="fa fa-refresh" /></a>
<div v-if="treeSetting.treeUrl===''" class="tree-empty">
{{ this.$t('common.tree.Empty') }}
<a id="tree-refresh"><i class="fa fa-refresh" /></a>
</div>
</div>
<div :id="iRMenuID" class="rMenu">
<ul class="dropdown-menu menu-actions">
@@ -189,7 +192,11 @@ export default {
searchInput.oninput = _.debounce((e) => {
e.stopPropagation()
const value = e.target.value || ''
this.filterAssetsServer(value)
if (this.treeSetting.async.enable) {
this.filterAssetsServer(value)
} else {
this.filterTree(value)
}
}, 600)
},
getCheckedNodes: function() {
@@ -230,7 +237,8 @@ export default {
return groups[group]
})
},
filterTree(keyword, tree) {
filterTree(keyword, tree = this.zTree) {
if (!this.zTree) return
const searchNode = tree.getNodesByFilter((node) => node.id === 'search')
if (searchNode) tree.removeNode(searchNode[0])
const nodes = tree.transformToArray(tree.getNodes())
@@ -301,7 +309,12 @@ export default {
this.zTree.hideNodes(treeNodes)
}
const searchUrl = `/api/v1/assets/nodes/children/tree/?search=${keyword}&all=all`
let treeUrl = this.treeSetting.treeUrl
const filterField = treeUrl.includes('?') ? `&search=${keyword}` : `?search=${keyword}`
if (treeUrl.indexOf('assets/nodes/children/tree') > -1) {
treeUrl = treeUrl + '&all=all'
}
const searchUrl = `${treeUrl}${filterField}`
this.$axios.get(searchUrl).then(nodes => {
let name = this.$t('common.Search')
const assetsAmount = nodes.length
@@ -491,4 +504,7 @@ export default {
}
}
}
.tree-empty {
margin-left: 4px;
}
</style>

View File

@@ -48,6 +48,8 @@ export default {
showUpdate: true,
showDelete: true,
hasRightMenu: true,
showSearch: true,
customTreeHeader: true,
url: '/api/v1/assets/assets/',
nodeUrl: '/api/v1/assets/nodes/',
// ?assets=0不显示资产. =1显示资产

View File

@@ -2,7 +2,11 @@
<Page>
<el-collapse-transition>
<div style="display: flex;justify-items: center; flex-wrap: nowrap;justify-content:space-between;">
<div v-show="iShowTree" :style="iShowTree?('width:250px;'):('width:0;')" class="transition-box">
<div
v-show="iShowTree"
:style="{width: iShowTree?'20%': 0}"
class="transition-box tree-box"
>
<AutoDataZTree
ref="AutoDataZTree"
:key="DataZTree"
@@ -10,7 +14,7 @@
class="auto-data-ztree"
/>
</div>
<div :style="iShowTree?('display: flex;width: calc(100% - 250px);'):('display: flex;width:100%;')">
<div :style="iShowTree?('display: flex;width: 80%;'):('display: flex;width:100%;')">
<div class="mini">
<div style="display:block" class="mini-button" @click="iShowTree=!iShowTree">
<i v-show="iShowTree" class="fa fa-angle-left fa-x" /><i v-show="!iShowTree" class="fa fa-angle-right fa-x" />
@@ -70,6 +74,8 @@ export default {
treeUrl: '',
showRefresh: true,
showMenu: false,
showSearch: true,
customTreeHeader: true,
check: {
enable: true
},
@@ -276,4 +282,8 @@ export default {
height: 100px;
border: 1px solid #eee;
}
.tree-box {
margin-right: 2px;
border: 1px solid #e0e0e0;
}
</style>