refactor: 支持过滤未发布的资源

This commit is contained in:
wangjiahao
2025-04-03 14:33:51 +08:00
committed by 王嘉豪
parent 6710fe5d9e
commit 416b765c60
8 changed files with 52 additions and 5 deletions

View File

@@ -85,6 +85,10 @@ public class CoreVisualizationManage {
if (StringUtils.isNotBlank(info)) {
queryWrapper.notExists(String.format(info, "data_visualization_info.id"));
}
// 如果是编辑界面 只展示已发布的资源
if(CommonConstants.RESOURCE_TABLE.SNAPSHOT.equals(request.getResourceTable())){
queryWrapper.in("status", Arrays.asList(1,2));
}
queryWrapper.orderByDesc("create_time");
List<VisualizationNodePO> pos = extMapper.queryNodes(queryWrapper);
if (CollectionUtils.isNotEmpty(pos)) {

View File

@@ -493,7 +493,11 @@ defineExpose({
:id="domId"
class="canvas-container"
:style="canvasStyle"
:class="{ 'de-download-custom': downloadStatus, 'datav-preview': dataVPreview }"
:class="{
'de-download-custom': downloadStatus,
'datav-preview': dataVPreview,
'datav-preview-unpublish': dvInfo.status === 0
}"
ref="previewCanvas"
@mousedown="handleMouseDown"
@scroll="scrollPreview"
@@ -591,4 +595,8 @@ defineExpose({
.datav-preview {
overflow-y: hidden !important;
}
.datav-preview-unpublish {
background-color: inherit !important;
}
</style>

View File

@@ -70,6 +70,11 @@ const props = defineProps({
required: false,
type: String,
default: 'preview'
},
resourceTable: {
required: false,
type: String,
default: 'core'
}
})
const defaultProps = {
@@ -303,6 +308,19 @@ const nodeClick = (data: BusiTreeNode, node) => {
}
}
const filterTreeData = nodes => {
if (props.resourceTable === 'snapshot') {
return nodes
.filter(node => node.extraFlag1 !== 0) // 过滤当前层
.map(node => ({
...node,
children: node.children ? filterTreeData(node.children) : [] // 递归过滤子节点
}))
} else {
return nodes
}
}
const getTree = async () => {
const request = { busiFlag: curCanvasType.value } as BusiTreeRequest
const isDashboard = curCanvasType.value == 'dashboard'
@@ -322,12 +340,12 @@ const getTree = async () => {
let curSortType = sortList[Number(wsCache.get('TreeSort-backend')) ?? 1].value
curSortType = wsCache.get(`TreeSort-${curCanvasType.value}`) ?? curSortType
if (nodeData.length && nodeData[0]['id'] === '0' && nodeData[0]['name'] === 'root') {
state.originResourceTree = nodeData[0]['children'] || []
state.originResourceTree = filterTreeData(nodeData[0]['children'] || [])
sortTypeChange(curSortType)
afterTreeInit()
return
}
state.originResourceTree = nodeData
state.originResourceTree = filterTreeData(nodeData)
sortTypeChange(curSortType)
afterTreeInit()
}

View File

@@ -13,6 +13,7 @@
class="multiplexing-area"
no-close
show-position="multiplexing"
resource-table="snapshot"
></dashboard-preview-show>
<preview-show
v-if="dialogShow && curDvType === 'dataV'"
@@ -20,6 +21,7 @@
class="multiplexing-area"
no-close
show-position="multiplexing"
resource-table="snapshot"
></preview-show>
<template #footer>
<el-row class="multiplexing-footer">

View File

@@ -60,10 +60,15 @@ const props = defineProps({
required: false,
type: Boolean,
default: false
},
resourceTable: {
required: false,
type: String,
default: 'core'
}
})
const { showPosition } = toRefs(props)
const { showPosition, resourceTable } = toRefs(props)
const resourceTreeRef = ref()
@@ -263,6 +268,7 @@ defineExpose({
v-show="slideShow"
:cur-canvas-type="'dashboard'"
:show-position="showPosition"
:resource-table="resourceTable"
@node-click="resourceNodeClick"
/>
</el-aside>

View File

@@ -46,6 +46,11 @@ const props = defineProps({
required: false,
type: Boolean,
default: false
},
resourceTable: {
required: false,
type: String,
default: 'core'
}
})
@@ -250,6 +255,7 @@ onBeforeMount(() => {
v-show="slideShow"
:cur-canvas-type="'dataV'"
:show-position="showPosition"
:resource-table="resourceTable"
@node-click="resourceNodeClick"
/>
</el-aside>

View File

@@ -1,5 +1,6 @@
package io.dataease.model;
import io.dataease.constant.CommonConstants;
import lombok.Data;
import java.io.Serial;
@@ -19,4 +20,6 @@ public class BusiNodeRequest implements Serializable {
private Integer weight;
private String sortType;
private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE;
}