diff --git a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java index 56c21935a4..c7b36bb416 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java +++ b/core/core-backend/src/main/java/io/dataease/chart/server/ChartDataServer.java @@ -55,7 +55,7 @@ import java.util.stream.Collectors; * @Author Junjun */ @RestController -@RequestMapping("chartData") +@RequestMapping("/chartData") public class ChartDataServer implements ChartDataApi { @Resource private ChartDataManage chartDataManage; @@ -230,6 +230,7 @@ public class ChartDataServer implements ChartDataApi { } + @DeLinkPermit("#p0.dvId") @Override public void innerExportDetails(ChartExcelRequest request, HttpServletResponse response) throws Exception { HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -299,6 +300,7 @@ public class ChartDataServer implements ChartDataApi { } } + @DeLinkPermit("#p0.dvId") @Override public void innerExportDataSetDetails(ChartExcelRequest request, HttpServletResponse response) throws Exception { this.innerExportDetails(request, response); diff --git a/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java b/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java index 9bd36ed94b..f23c94afad 100644 --- a/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java +++ b/core/core-backend/src/main/java/io/dataease/share/interceptor/LinkInterceptor.java @@ -19,7 +19,7 @@ import java.util.List; @Component public class LinkInterceptor implements HandlerInterceptor { - private final static String whiteListText = "/user/ipInfo, /apisix/check, /datasetData/enumValue, /datasetData/enumValueObj, /datasetData/getFieldTree, /dekey, /symmetricKey, /share/validate, /sysParameter/queryOnlineMap, /chartData/innerExportDetails"; + private final static String whiteListText = "/user/ipInfo, /apisix/check, /datasetData/enumValue, /datasetData/enumValueObj, /datasetData/getFieldTree, /dekey, /symmetricKey, /share/validate, /sysParameter/queryOnlineMap"; @Override diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java index 1395bef676..9c341b14bd 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/DataVisualizationServer.java @@ -135,7 +135,7 @@ public class DataVisualizationServer implements DataVisualizationApi { @Override public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) { - DataVisualizationVO result = findById(new DataVisualizationBaseRequest(dvId, busiFlag)); + DataVisualizationVO result = Objects.requireNonNull(CommonBeanFactory.proxy(this.getClass())).findById(new DataVisualizationBaseRequest(dvId, busiFlag)); if (result != null && result.getPid() == -1) { return result; } else { diff --git a/core/core-frontend/src/components/visualization/ComponentEditBar.vue b/core/core-frontend/src/components/visualization/ComponentEditBar.vue index 2cb869d337..94d15123d5 100644 --- a/core/core-frontend/src/components/visualization/ComponentEditBar.vue +++ b/core/core-frontend/src/components/visualization/ComponentEditBar.vue @@ -173,7 +173,6 @@ v-if=" !['picture-group', 'rich-text'].includes(element.innerType) && barShowCheck('previewDownload') && - authShow && showDownload && (exportPermissions[0] || exportPermissions[1]) " @@ -242,7 +241,6 @@ const dvMainStore = dvMainStoreWithOut() const snapshotStore = snapshotStoreWithOut() const copyStore = copyStoreWithOut() const customTabsSortRef = ref(null) -const authShow = computed(() => !dvInfo.value.weight || dvInfo.value.weight > 3) const exportPermissions = computed(() => exportPermission(dvInfo.value['weight'], dvInfo.value['ext']) ) diff --git a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue index ac58e45f0e..4214ee58e0 100644 --- a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue +++ b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue @@ -73,7 +73,11 @@ > 导出Excel(带格式) - +
= { showPosition: 'dialog' } -const authShow = computed(() => editMode.value === 'edit' || dvInfo.value.weight > 3) - const exportPermissions = computed(() => exportPermission(dvInfo.value['weight'], dvInfo.value['ext']) ) @@ -337,7 +339,8 @@ const downloadViewDetails = (downloadType = 'view') => { chartExtRequest, data: viewDataInfo, type: sourceViewType.value, - downloadType: downloadType + downloadType: downloadType, + busiFlag: dvInfo.value.type } exportLoading.value = true exportExcelDownload(chart, () => { diff --git a/core/core-frontend/src/utils/canvasUtils.ts b/core/core-frontend/src/utils/canvasUtils.ts index 3ab5adccfe..efaa745293 100644 --- a/core/core-frontend/src/utils/canvasUtils.ts +++ b/core/core-frontend/src/utils/canvasUtils.ts @@ -331,6 +331,7 @@ export function initCanvasDataPrepare(dvId, busiFlag, callBack) { updateTime: canvasInfo.updateTime, watermarkInfo: watermarkInfo, weight: canvasInfo.weight, + ext: canvasInfo.ext, mobileLayout: canvasInfo.mobileLayout || false } const canvasVersion = canvasInfo.version diff --git a/core/core-frontend/src/views/chart/components/js/util.ts b/core/core-frontend/src/views/chart/components/js/util.ts index 35ea614685..887d7bb211 100644 --- a/core/core-frontend/src/views/chart/components/js/util.ts +++ b/core/core-frontend/src/views/chart/components/js/util.ts @@ -502,6 +502,7 @@ export const exportExcelDownload = (chart, callBack?) => { viewId: chart.id, viewInfo: chart, viewName: excelName, + busiFlag: chart.busiFlag, downloadType: chart.downloadType } if (chart.type.includes('chart-mix')) { diff --git a/core/core-frontend/src/views/data-visualization/PreviewHead.vue b/core/core-frontend/src/views/data-visualization/PreviewHead.vue index fbb32fb38e..1bda7e1f98 100644 --- a/core/core-frontend/src/views/data-visualization/PreviewHead.vue +++ b/core/core-frontend/src/views/data-visualization/PreviewHead.vue @@ -180,7 +180,7 @@ const initOpenHandler = newWindow => { style="width: 100%; overflow: hidden" trigger="hover" placement="left-start" - v-if="dvInfo.weight > 3" + v-if="exportPermissions[0]" >
@@ -200,7 +200,7 @@ const initOpenHandler = newWindow => { {{ t('visualization.apply_template') }} - {{ + {{ t('chart.image') }} diff --git a/core/core-frontend/src/views/visualized/data/dataset/index.vue b/core/core-frontend/src/views/visualized/data/dataset/index.vue index 41f4575566..02ec4878f8 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/index.vue @@ -81,6 +81,7 @@ import { XpackComponent } from '@/components/plugin' import { useCache } from '@/hooks/web/useCache' import { RefreshLeft } from '@element-plus/icons-vue' import { iconFieldMap } from '@/components/icon-group/field-list' +import { exportPermission } from '@/utils/utils' const { t } = useI18n() const interactiveStore = interactiveStoreWithOut() const { wsCache } = useCache() @@ -100,6 +101,7 @@ interface Node { nodeType: string createTime: number weight: number + ext?: number } const appStore = useAppStoreWithOut() const rootManage = ref(false) @@ -141,6 +143,7 @@ const mounted = ref(false) const isDataEaseBi = computed(() => appStore.getIsDataEaseBi) const isIframe = computed(() => appStore.getIsIframe) +const exportPermissions = computed(() => exportPermission(nodeInfo.weight, nodeInfo.ext)) const createPanel = path => { const baseUrl = `#/${path}?opt=create&id=${nodeInfo.id}` window.open(baseUrl, '_blank') @@ -356,6 +359,7 @@ const handleNodeClick = (data: BusiTreeNode) => { const nodeData = res as unknown as Node[] Object.assign(nodeInfo, nodeData) nodeInfo.weight = data.weight + nodeInfo.ext = data.ext || 0 columnsPreview = [] dataPreview = [] activeName.value = 'dataPreview' @@ -968,7 +972,7 @@ const getMenuList = (val: boolean) => { /> {{ t('data_set.new_data_screen') }} - +