diff --git a/core/core-backend/src/main/java/io/dataease/home/RestIndexController.java b/core/core-backend/src/main/java/io/dataease/home/RestIndexController.java index e848d88e9d..231afa9d90 100644 --- a/core/core-backend/src/main/java/io/dataease/home/RestIndexController.java +++ b/core/core-backend/src/main/java/io/dataease/home/RestIndexController.java @@ -1,9 +1,9 @@ package io.dataease.home; -import io.dataease.license.utils.LicenseUtil; +import io.dataease.home.manage.DeIndexManage; import io.dataease.utils.ModelUtils; import io.dataease.utils.RsaUtils; -import org.springframework.beans.factory.annotation.Value; +import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -13,8 +13,9 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping public class RestIndexController { - @Value("${dataease.xpack-front-distributed:false}") - private boolean xpackFrontDistributed; + + @Resource + private DeIndexManage deIndexManage; @GetMapping("/dekey") @ResponseBody @@ -31,8 +32,8 @@ public class RestIndexController { @GetMapping("/xpackModel") @ResponseBody - public boolean xpackModel() { - return xpackFrontDistributed && LicenseUtil.licenseValid(); + public Boolean xpackModel() { + return deIndexManage.xpackModel(); } } diff --git a/core/core-backend/src/main/java/io/dataease/home/manage/DeIndexManage.java b/core/core-backend/src/main/java/io/dataease/home/manage/DeIndexManage.java new file mode 100644 index 0000000000..9ef0cfe13a --- /dev/null +++ b/core/core-backend/src/main/java/io/dataease/home/manage/DeIndexManage.java @@ -0,0 +1,13 @@ +package io.dataease.home.manage; + +import io.dataease.license.config.XpackInteract; +import org.springframework.stereotype.Component; + +@Component +public class DeIndexManage { + + @XpackInteract(value = "deIndexManage", replace = true) + public Boolean xpackModel() { + return null; + } +} diff --git a/core/core-frontend/src/components/plugin/src/PluginComponent.vue b/core/core-frontend/src/components/plugin/src/PluginComponent.vue index b0e2fc2894..8232500f52 100644 --- a/core/core-frontend/src/components/plugin/src/PluginComponent.vue +++ b/core/core-frontend/src/components/plugin/src/PluginComponent.vue @@ -12,6 +12,7 @@ import * as vueRouter from 'vue-router' import { useEmitt } from '@/hooks/web/useEmitt' import request from '@/config/axios' const { wsCache } = useCache() +import { isNull } from '@/utils/utils' const plugin = ref() @@ -103,11 +104,15 @@ onMounted(async () => { let distributed = false if (wsCache.get(key) === null) { const res = await xpackModelApi() - wsCache.set('xpack-model-distributed', res.data) + wsCache.set('xpack-model-distributed', isNull(res.data) ? 'null' : res.data) distributed = res.data } else { distributed = wsCache.get(key) } + if (isNull(distributed)) { + emits('loadFail') + return + } if (distributed) { const moduleName = getModuleName() if (window[moduleName]) { diff --git a/core/core-frontend/src/components/plugin/src/index.vue b/core/core-frontend/src/components/plugin/src/index.vue index 3072a48018..9718f639b4 100644 --- a/core/core-frontend/src/components/plugin/src/index.vue +++ b/core/core-frontend/src/components/plugin/src/index.vue @@ -12,6 +12,7 @@ import * as echarts from 'echarts' import router from '@/router' import tinymce from 'tinymce/tinymce' import { useEmitt } from '@/hooks/web/useEmitt' +import { isNull } from '@/utils/utils' const { wsCache } = useCache() @@ -107,11 +108,16 @@ onMounted(async () => { let distributed = false if (wsCache.get(key) === null) { const res = await xpackModelApi() - wsCache.set('xpack-model-distributed', res.data) + const resData = isNull(res.data) ? 'null' : res.data + wsCache.set('xpack-model-distributed', resData) distributed = res.data } else { distributed = wsCache.get(key) } + if (isNull(distributed)) { + emits('loadFail') + return + } if (distributed) { if (window['DEXPack']) { const xpack = await window['DEXPack'].mapping[attrs.jsname] diff --git a/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue b/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue index 407bfc96d3..4263a24ffb 100644 --- a/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue +++ b/core/core-frontend/src/custom-component/rich-text/DeRichTextView.vue @@ -204,6 +204,7 @@ watch( canEdit.value = false reShow() myValue.value = assignment(element.value.propValue.textValue) + console.log('===myValue.value=' + myValue.value) ed.setContent(myValue.value) } } @@ -263,6 +264,23 @@ const initCurFieldsChange = () => { } } +const jumpTargetAdaptor = () => { + setTimeout(() => { + const paragraphs = document.querySelectorAll('p') + paragraphs.forEach(p => { + // 如果 p 标签已经有 onclick 且包含 event.stopPropagation,则跳过 + if ( + p.getAttribute('onclick') && + p.getAttribute('onclick').includes('event.stopPropagation()') + ) { + return // 已经有 stopPropagation,跳过 + } + // 否则添加 onclick 事件 + p.setAttribute('onclick', 'event.stopPropagation()') + }) + }, 1000) +} + const assignment = content => { const on = content.match(/\[(.+?)\]/g) if (on) { @@ -288,8 +306,10 @@ const assignment = content => { //De 本地跳转失效问题 content = content.replace(/href="#\//g, 'href="/#/') content = content.replace(/href=\\"#\//g, 'href=\\"/#/') + content = content.replace(/href=\\"#\//g, 'href=\\"/#/') resetSelect() initFontFamily(content) + jumpTargetAdaptor() return content } const initFontFamily = htmlText => { diff --git a/core/core-frontend/src/utils/logout.ts b/core/core-frontend/src/utils/logout.ts index 4dce91b431..c0dc30ac12 100644 --- a/core/core-frontend/src/utils/logout.ts +++ b/core/core-frontend/src/utils/logout.ts @@ -51,7 +51,8 @@ const removeCache = () => { if ( key.startsWith('de-plugin-') || key === 'de-platform-client' || - key === 'pwd-validity-period' + key === 'pwd-validity-period' || + key === 'xpack-model-distributed' ) { wsCache.delete(key) } diff --git a/core/core-frontend/src/utils/utils.ts b/core/core-frontend/src/utils/utils.ts index 9699452db5..cc1d599659 100644 --- a/core/core-frontend/src/utils/utils.ts +++ b/core/core-frontend/src/utils/utils.ts @@ -184,3 +184,7 @@ export function cutTargetTree(tree: BusiTreeNode[], targetId: string | number) { export const isLink = () => { return window.location.hash.startsWith('#/de-link/') } + +export const isNull = arg => { + return typeof arg === 'undefined' || arg === null || arg === 'null' +} diff --git a/core/core-frontend/src/views/about/index.vue b/core/core-frontend/src/views/about/index.vue index eda28a0370..033cc2e512 100644 --- a/core/core-frontend/src/views/about/index.vue +++ b/core/core-frontend/src/views/about/index.vue @@ -87,6 +87,7 @@ const removeDistributeModule = () => { localStorage.removeItem(key) } const importLic = file => { + removeDistributeModule() const reader = new FileReader() reader.onload = function (e) { const licKey = e.target.result @@ -97,7 +98,6 @@ const importLic = file => { reader.readAsText(file) } const validateHandler = (param, success) => { - removeDistributeModule() validateApi(param).then(success) } const getLicense = result => { diff --git a/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue b/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue index 51ae3d9ebf..5a1e9bb751 100644 --- a/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue +++ b/core/core-frontend/src/views/chart/components/editor/drag-item/QuotaItem.vue @@ -249,7 +249,10 @@ const quickCalc = param => { break case 'setting': // 选择占比外,设置自动 - resetValueFormatter(item.value) + // 指标卡不需要重置数值格式 + if (chart.value.type !== 'indicator') { + resetValueFormatter(item.value) + } editCompare() break case 'percent': diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts index 17ab2ca800..8bb686b50e 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bar.ts @@ -97,6 +97,7 @@ export class Bar extends G2PlotChartView { async drawChart(drawOptions: G2PlotDrawOptions): Promise { const { chart, container, action } = drawOptions if (!chart?.data?.data?.length) { + chart.container = container clearExtremum(chart) return } diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/line/area.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/line/area.ts index ec8e71b19e..ad002acae1 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/line/area.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/line/area.ts @@ -98,6 +98,7 @@ export class Area extends G2PlotChartView { async drawChart(drawOptions: G2PlotDrawOptions): Promise { const { chart, container, action } = drawOptions if (!chart.data?.data?.length) { + chart.container = container clearExtremum(chart) return } diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/line/line.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/line/line.ts index cc601921a3..5432140a63 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/line/line.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/line/line.ts @@ -50,6 +50,7 @@ export class Line extends G2PlotChartView { async drawChart(drawOptions: G2PlotDrawOptions): Promise { const { chart, action, container } = drawOptions if (!chart.data?.data?.length) { + chart.container = container clearExtremum(chart) return } diff --git a/de-xpack b/de-xpack index d415457510..686ee95e62 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit d415457510f49faf552ad2bfe51030f8c228e736 +Subproject commit 686ee95e622fbd16e04cf0847d0a84dbe9a59488