diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/DualLineMixHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/DualLineMixHandler.java index 8561590988..491d6c9dae 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/DualLineMixHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/DualLineMixHandler.java @@ -1,11 +1,32 @@ package io.dataease.chart.charts.impl.mix; +import io.dataease.chart.utils.ChartDataBuild; +import io.dataease.extensions.view.dto.AxisFormatResult; +import io.dataease.extensions.view.dto.ChartAxis; +import io.dataease.extensions.view.dto.ChartViewDTO; +import io.dataease.extensions.view.dto.CustomFilterResult; import lombok.Getter; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; + @Component public class DualLineMixHandler extends GroupMixHandler { @Getter private final String type = "chart-mix-dual-line"; + @Override + public Map buildNormalResult(ChartViewDTO view, AxisFormatResult formatResult, CustomFilterResult filterResult, List data) { + boolean isDrill = filterResult + .getFilterList() + .stream() + .anyMatch(ele -> ele.getFilterType() == 1); + var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); + var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt); + var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); + var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size()); + return ChartDataBuild.transMixChartDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill, true); + } + } diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java index 7989cb3a1a..962bd853b7 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java @@ -55,11 +55,19 @@ public class MixHandler extends YoyChartHandler { .getFilterList() .stream() .anyMatch(ele -> ele.getFilterType() == 1); + if (StringUtils.equals((String) formatResult.getContext().get("isRight"), "isRight")) { + var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); + var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt); + var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); + var xAxisBase = xAxis.subList(0, xAxis.size() - xAxisExt.size()); + return ChartDataBuild.transMixChartDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill, true); + } + var xAxisBase = (List) formatResult.getContext().get("xAxisBase"); var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis); var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis); var xAxisExt = formatResult.getAxisMap().get(ChartAxis.xAxisExt); - var result = ChartDataBuild.transMixChartDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill); + var result = ChartDataBuild.transMixChartDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill, false); return result; } @@ -97,11 +105,6 @@ public class MixHandler extends YoyChartHandler { AxisFormatResult formatResult2 = new AxisFormatResult(); var axisMap = new HashMap>(); - axisMap.put(ChartAxis.xAxis, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.xAxis))); - axisMap.put(ChartAxis.extStack, new ArrayList<>()); - axisMap.put(ChartAxis.xAxisExt, new ArrayList<>()); - axisMap.put(ChartAxis.extBubble, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extBubble))); - axisMap.put(ChartAxis.yAxisExt, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.yAxisExt))); axisMap.put(ChartAxis.extLabel, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extLabel))); axisMap.put(ChartAxis.extTooltip, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extTooltip))); axisMap.put(ChartAxis.drill, new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.drill))); @@ -110,18 +113,16 @@ public class MixHandler extends YoyChartHandler { // 计算右轴,包含 xAxis,xAxisExt,yAxisExt,需要去掉 group 和 stack var xAxis = new ArrayList<>(view.getXAxis()); - var extStack = formatResult2.getAxisMap().get(ChartAxis.extStack); - var xAxisExt = formatResult2.getAxisMap().get(ChartAxis.xAxisExt); - //xAxis = xAxis.subList(0, xAxis.size() - extStack.size() - xAxisExt.size()); - var extBubble = formatResult2.getAxisMap().get(ChartAxis.extBubble); + var extBubble = new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.extBubble)); xAxis.addAll(extBubble); var dillAxis = (ArrayList) formatResult.getContext().get("dillAxis"); xAxis.addAll(dillAxis); formatResult2.getAxisMap().put(ChartAxis.xAxis, xAxis); formatResult2.getAxisMap().put(ChartAxis.xAxisExt, extBubble); - var yAxisExt = formatResult2.getAxisMap().get(ChartAxis.yAxisExt); + var yAxisExt = new ArrayList<>(formatResult.getAxisMap().get(ChartAxis.yAxisExt)); formatResult2.getAxisMap().put(ChartAxis.yAxis, yAxisExt); formatResult2.getContext().remove("yoyFiltered"); + formatResult2.getContext().put("isRight", "isRight"); formatResult.getContext().put("subAxisMap", axisMap); diff --git a/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java b/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java index 7519fbb1b4..32d5404979 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java +++ b/core/core-backend/src/main/java/io/dataease/chart/utils/ChartDataBuild.java @@ -1,6 +1,7 @@ package io.dataease.chart.utils; -import io.dataease.api.chart.dto.*; +import io.dataease.api.chart.dto.ScatterChartDataDTO; +import io.dataease.api.chart.dto.Series; import io.dataease.extensions.view.dto.*; import io.dataease.i18n.Lang; import io.dataease.i18n.Translator; @@ -423,7 +424,7 @@ public class ChartDataBuild { axisChartDataDTO.setValue(new BigDecimal(0)); } axisChartDataDTO.setCategory(StringUtils.defaultIfBlank(yAxis.get(j).getChartShowName(), yAxis.get(j).getName())); - buildDynamicValue(view, axisChartDataDTO, row, size, ObjectUtils.isNotEmpty(extBubble)?extSize-1:extSize); + buildDynamicValue(view, axisChartDataDTO, row, size, ObjectUtils.isNotEmpty(extBubble) ? extSize - 1 : extSize); // pop if (ObjectUtils.isNotEmpty(extBubble)) { try { @@ -504,6 +505,11 @@ public class ChartDataBuild { // antV组合图形 public static Map transMixChartDataAntV(List xAxisBase, List xAxis, List xAxisExt, List yAxis, ChartViewDTO view, List data, boolean isDrill) { + return transMixChartDataAntV(xAxisBase, xAxis, xAxisExt, yAxis, view, data, isDrill, false); + } + + public static Map transMixChartDataAntV(List xAxisBase, List xAxis, List xAxisExt, List yAxis, ChartViewDTO view, List data, boolean isDrill, boolean isLine) { + Map map = new HashMap<>(); List series = new ArrayList<>(); @@ -571,8 +577,16 @@ public class ChartDataBuild { } catch (Exception e) { axisChartDataDTO.setValue(new BigDecimal(0)); } + String category = StringUtils.defaultIfBlank(b.toString(), StringUtils.defaultIfBlank(yAxis.get(j).getChartShowName(), yAxis.get(j).getName())); + + if (isLine) { + if (ObjectUtils.isEmpty(xAxisExt)) { + category = StringUtils.defaultIfBlank(yAxis.get(j).getChartShowName(), yAxis.get(j).getName()); + } + } + axisChartDataDTO.setCategory(category); categories.add(category); @@ -1764,7 +1778,7 @@ public class ChartDataBuild { List> tableRow = (List>) map.get("tableRow"); final int xEndIndex = detailIndex; Map> groupDataList = detailData.stream().collect(Collectors.groupingBy(item -> "(" + StringUtils.join(ArrayUtils.subarray(item, 0, xEndIndex), ")-de-(") + ")")); - String extBubbleDataeaseName = ObjectUtils.isNotEmpty(extBubble)?extBubble.get(0).getDataeaseName():""; + String extBubbleDataeaseName = ObjectUtils.isNotEmpty(extBubble) ? extBubble.get(0).getDataeaseName() : ""; tableRow.forEach(row -> { BigDecimal rowValue = row.get(extBubbleDataeaseName) == null ? BigDecimal.ZERO : new BigDecimal(row.get(extBubbleDataeaseName).toString()); String key = xAxis.stream().map(x -> String.format(format, row.get(x.getDataeaseName()).toString())).collect(Collectors.joining("-de-")); @@ -1773,16 +1787,16 @@ public class ChartDataBuild { Map temp = new HashMap<>(); for (int i = 0; i < realDetailFields.size(); i++) { ChartViewFieldDTO realDetailField = realDetailFields.get(i); - if(StringUtils.equalsIgnoreCase(extBubbleDataeaseName,realDetailField.getDataeaseName())){ + if (StringUtils.equalsIgnoreCase(extBubbleDataeaseName, realDetailField.getDataeaseName())) { temp.put(realDetailField.getDataeaseName(), rowValue); - }else{ + } else { temp.put(realDetailField.getDataeaseName(), detailArr[detailIndex + i]); } } return temp; })).collect(Collectors.toList()); //详情只要一个 - row.put("details", !detailValueMapList.isEmpty() ?Collections.singletonList(detailValueMapList.getFirst()):detailValueMapList); + row.put("details", !detailValueMapList.isEmpty() ? Collections.singletonList(detailValueMapList.getFirst()) : detailValueMapList); }); // 先过滤掉所有记录数字段 List filterCountAxis = fields.stream() diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java index 5933316126..ef860b6d67 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java @@ -8,7 +8,6 @@ import io.dataease.constant.CommonConstants; import io.dataease.dataset.server.DatasetFieldServer; import io.dataease.engine.constant.DeTypeConstants; import io.dataease.exception.DEException; -import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; import io.dataease.extensions.view.dto.ChartExtFilterDTO; import io.dataease.extensions.view.dto.ChartExtRequest; import io.dataease.extensions.view.dto.ChartViewDTO; @@ -50,6 +49,12 @@ public class CoreVisualizationExportManage { @Resource private DatasetFieldServer datasetFieldServer; + public String getResourceName(Long dvId, String busiFlag) { + DataVisualizationVO visualization = extDataVisualizationMapper.findDvInfo(dvId, busiFlag); + if (ObjectUtils.isEmpty(visualization)) DEException.throwException("资源不存在或已经被删除..."); + return visualization.getName(); + } + public File exportExcel(Long dvId, String busiFlag, List viewIdList, boolean onlyDisplay) throws Exception { DataVisualizationVO visualization = extDataVisualizationMapper.findDvInfo(dvId, busiFlag); if (ObjectUtils.isEmpty(visualization)) DEException.throwException("资源不存在或已经被删除..."); @@ -73,27 +78,14 @@ public class CoreVisualizationExportManage { } view.getChartExtRequest().setUser(AuthUtils.getUser().getUserId()); view.setTitle((i + 1) + "-" + view.getTitle()); - sheets.add(exportViewData(view)); + sheets.addAll(exportViewData(view)); } return VisualizationExcelUtils.exportExcel(sheets, visualization.getName(), visualization.getId().toString()); } - private ExcelSheetModel exportViewData(ChartViewDTO request) { + private ExcelSheetModel exportSingleData(Map chart, String title) { ExcelSheetModel result = new ExcelSheetModel(); - ChartViewDTO chartViewDTO = null; - if (CommonConstants.VIEW_DATA_FROM.TEMPLATE.equalsIgnoreCase(request.getDataFrom())) { - chartViewDTO = extendDataManage.getChartDataInfo(request.getId(), request); - } else { - try { - chartViewDTO = chartDataManage.calcData(request); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - String title = chartViewDTO.getTitle(); - Map chart = chartViewDTO.getData(); - Object objectFields = chart.get("fields"); List fields = (List) objectFields; List heads = new ArrayList<>(); @@ -116,6 +108,9 @@ public class CoreVisualizationExportManage { }); } Object objectTableRow = chart.get("tableRow"); + if (objectTableRow == null) { + objectTableRow = chart.get("sourceData"); + } List> tableRow = (List>) objectTableRow; List> details = tableRow.stream().map(row -> { @@ -140,6 +135,40 @@ public class CoreVisualizationExportManage { return result; } + private List exportViewData(ChartViewDTO request) { + + ChartViewDTO chartViewDTO = null; + request.setIsExcelExport(true); + if (CommonConstants.VIEW_DATA_FROM.TEMPLATE.equalsIgnoreCase(request.getDataFrom())) { + chartViewDTO = extendDataManage.getChartDataInfo(request.getId(), request); + } else { + try { + chartViewDTO = chartDataManage.calcData(request); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + String title = chartViewDTO.getTitle(); + Map chart = chartViewDTO.getData(); + List resultList = new ArrayList<>(); + boolean leftExist = ObjectUtils.isNotEmpty(chart.get("left")); + boolean rightExist = ObjectUtils.isNotEmpty(chart.get("right")); + if (!leftExist && !rightExist) { + ExcelSheetModel sheetModel = exportSingleData(chart, title); + resultList.add(sheetModel); + return resultList; + } + if (leftExist) { + ExcelSheetModel sheetModel = exportSingleData((Map) chart.get("left"), title + "_left"); + resultList.add(sheetModel); + } + if (rightExist) { + ExcelSheetModel sheetModel = exportSingleData((Map) chart.get("right"), title + "_right"); + resultList.add(sheetModel); + } + return resultList; + } + private String filterInvalidDecimal(String sourceNumberStr) { if (StringUtils.isNotBlank(sourceNumberStr) && StringUtils.contains(sourceNumberStr, ".")) { sourceNumberStr = sourceNumberStr.replaceAll("0+?$", ""); diff --git a/core/core-frontend/src/custom-component/picture-group/Attr.vue b/core/core-frontend/src/custom-component/picture-group/Attr.vue new file mode 100644 index 0000000000..57855165be --- /dev/null +++ b/core/core-frontend/src/custom-component/picture-group/Attr.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/core/core-frontend/src/custom-component/picture-group/Component.vue b/core/core-frontend/src/custom-component/picture-group/Component.vue new file mode 100644 index 0000000000..2ca938e064 --- /dev/null +++ b/core/core-frontend/src/custom-component/picture-group/Component.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/core/core-frontend/src/utils/components.ts b/core/core-frontend/src/utils/components.ts index 077835fca1..3d35be10a9 100644 --- a/core/core-frontend/src/utils/components.ts +++ b/core/core-frontend/src/utils/components.ts @@ -35,6 +35,8 @@ import ScrollText from '@/custom-component/scroll-text/Component.vue' import ScrollTextAttr from '@/custom-component/scroll-text/Attr.vue' import PopArea from '@/custom-component/pop-area/Component.vue' import PopAreaAttr from '@/custom-component/pop-area/Attr.vue' +import PictureGroup from '@/custom-component/picture-group/Component.vue' +import PictureGroupAttr from '@/custom-component/picture-group/Attr.vue' export const componentsMap = { VText: VText, VQuery, @@ -72,7 +74,9 @@ export const componentsMap = { ScrollText: ScrollText, ScrollTextAttr: ScrollTextAttr, PopArea: PopArea, - PopAreaAttr: PopAreaAttr + PopAreaAttr: PopAreaAttr, + PictureGroup: PictureGroup, + PictureGroupAttr: PictureGroupAttr } export default function findComponent(key) { diff --git a/core/core-frontend/src/utils/logout.ts b/core/core-frontend/src/utils/logout.ts index d69b27833f..4dce91b431 100644 --- a/core/core-frontend/src/utils/logout.ts +++ b/core/core-frontend/src/utils/logout.ts @@ -3,7 +3,6 @@ import router from '@/router' import { usePermissionStoreWithOut } from '@/store/modules/permission' import { interactiveStoreWithOut } from '@/store/modules/interactive' import { useCache } from '@/hooks/web/useCache' -import request from '@/config/axios' const { wsCache } = useCache() const permissionStore = usePermissionStoreWithOut() @@ -11,12 +10,6 @@ const userStore = useUserStoreWithOut() const interactiveStore = interactiveStoreWithOut() export const logoutHandler = (justClean?: boolean) => { - const idToken = wsCache.get('oauth2-id-token') - if (idToken) { - request.get({ url: `/oauth2/logout/${idToken}` }).finally(() => { - wsCache.delete('oauth2-id-token') - }) - } userStore.clear() userStore.$reset() permissionStore.clear() diff --git a/core/core-frontend/src/views/chart/components/editor/util/chart.ts b/core/core-frontend/src/views/chart/components/editor/util/chart.ts index 3fd8b6c68e..4cd09393a7 100644 --- a/core/core-frontend/src/views/chart/components/editor/util/chart.ts +++ b/core/core-frontend/src/views/chart/components/editor/util/chart.ts @@ -1508,14 +1508,14 @@ export const CHART_TYPE_CONFIGS = [ }, { category: 'other', - title: '图片', + title: '图片组', display: 'hidden', details: [ { render: 'custom', category: 'quota', - value: 'Picture', - title: '图片', + value: 'picture-group', + title: '图片图', icon: 'picture' } ] diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/Picture.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/Picture.ts deleted file mode 100644 index 472638090b..0000000000 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/others/Picture.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { AbstractChartView, ChartLibraryType, ChartRenderType } from '../../types' -import { useI18n } from '@/hooks/web/useI18n' - -const { t } = useI18n() -/** - * 富文本图表 - */ -export class PictureChartView extends AbstractChartView { - properties: EditorProperty[] = ['background-overall-component', 'border-style'] - propertyInner: EditorPropertyInner = { - 'background-overall-component': ['all'], - 'border-style': ['all'] - } - axis: AxisType[] = ['filter'] - axisConfig: AxisConfig = {} - constructor() { - super(ChartRenderType.CUSTOM, ChartLibraryType.PICTURE, 'Picture') - } -} diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/chart-mix.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/chart-mix.ts index 371c8fe4ce..35cf1d3983 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/others/chart-mix.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/others/chart-mix.ts @@ -870,9 +870,9 @@ export class DualLineMix extends ColumnLineMix { p[n.id] = n return p }, {}) - const { yAxis, extStack } = chart + const { yAxis, xAxisExt } = chart const { data } = options as unknown as Options - if (extStack?.length) { + if (xAxisExt?.length) { const seriesSet = new Set() data[0]?.forEach(d => d.category !== null && seriesSet.add(d.category)) const tmp = [...seriesSet] @@ -917,8 +917,8 @@ export class DualLineMix extends ColumnLineMix { const result: ChartBasicStyle['seriesColor'] = [] const seriesSet = new Set() const colors = chart.customAttr.basicStyle.colors - const { yAxis, extStack } = chart - if (extStack?.length) { + const { yAxis, xAxisExt } = chart + if (xAxisExt?.length) { data?.forEach(d => { if (d.value === null || d.category === null || seriesSet.has(d.category)) { return diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/picture-group.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/picture-group.ts new file mode 100644 index 0000000000..0679e1e868 --- /dev/null +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/others/picture-group.ts @@ -0,0 +1,35 @@ +import { AbstractChartView, ChartLibraryType, ChartRenderType } from '../../types' +import { useI18n } from '@/hooks/web/useI18n' + +const { t } = useI18n() +/** + * 图片组图表 + */ +export class PictureGroupView extends AbstractChartView { + properties: EditorProperty[] = [ + 'background-overall-component', + 'border-style', + 'threshold', + 'function-cfg' + ] + propertyInner: EditorPropertyInner = { + 'background-overall-component': ['all'], + 'border-style': ['all'], + threshold: ['tableThreshold'], + 'function-cfg': ['emptyDataStrategy'] + } + axis: AxisType[] = ['xAxis', 'yAxis', 'filter'] + axisConfig: AxisConfig = { + xAxis: { + name: `${t('chart.dimension')}`, + type: 'd' + }, + yAxis: { + name: `${t('chart.quota')}`, + type: 'q' + } + } + constructor() { + super(ChartRenderType.CUSTOM, ChartLibraryType.PICTURE_GROUP, 'picture-group') + } +} diff --git a/core/core-frontend/src/views/chart/components/js/panel/types/index.ts b/core/core-frontend/src/views/chart/components/js/panel/types/index.ts index bb84e11bd6..89b29f4d11 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/types/index.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/types/index.ts @@ -15,7 +15,7 @@ export enum ChartLibraryType { ECHARTS = 'echarts', S2 = 's2', RICH_TEXT = 'rich-text', - PICTURE = 'Picture', + PICTURE_GROUP = 'picture_group', INDICATOR = 'indicator' } export abstract class ChartWrapper { diff --git a/core/core-frontend/src/views/chart/components/views/index.vue b/core/core-frontend/src/views/chart/components/views/index.vue index 2cacfec4aa..125a77da1a 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -47,7 +47,7 @@ import { storeToRefs } from 'pinia' import { checkAddHttp, setIdValueTrans } from '@/utils/canvasUtils' import { Base64 } from 'js-base64' import DeRichTextView from '@/custom-component/rich-text/DeRichTextView.vue' -import DePictureV2 from '@/custom-component/picture/Component.vue' +import DePictureGroup from '@/custom-component/picture-group/component.vue' import ChartEmptyInfo from '@/views/chart/components/views/components/ChartEmptyInfo.vue' import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot' import { viewFieldTimeTrans } from '@/utils/viewUtils' @@ -123,12 +123,13 @@ const props = defineProps({ const dynamicAreaId = ref('') const { view, showPosition, element, active, searchCount, scale } = toRefs(props) -const titleShow = computed( - () => - !['rich-text', 'Picture'].includes('rich-text') && +const titleShow = computed(() => { + return ( + !['rich-text', 'Picture'].includes(element.value.innerType) && state.title_show && showPosition.value !== 'viewDialog' -) + ) +}) const snapshotStore = snapshotStoreWithOut() const state = reactive({ @@ -904,11 +905,15 @@ const loadPluginCategory = data => { @onJumpClick="jumpClick" @resetLoading="() => (loading = false)" /> - + :active="active" + :show-position="showPosition" + > +