From 5bc800cb60cd2c2d4c2512c30833a8faf31a0a95 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 16 Dec 2024 12:47:53 +0800 Subject: [PATCH 01/28] =?UTF-8?q?perf(X-Pack):=20=E5=B5=8C=E5=85=A5?= =?UTF-8?q?=E5=BC=8F=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?= =?UTF-8?q?-=E5=A2=9E=E5=8A=A0=E5=88=86=E9=A1=B5=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/locales/en-US.ts | 2 ++ core/core-frontend/src/locales/tw.ts | 2 ++ core/core-frontend/src/locales/zh-CN.ts | 2 ++ de-xpack | 2 +- .../api/permissions/embedded/api/EmbeddedApi.java | 11 +++++++++-- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/locales/en-US.ts b/core/core-frontend/src/locales/en-US.ts index 9a64b09328..0e067fa022 100644 --- a/core/core-frontend/src/locales/en-US.ts +++ b/core/core-frontend/src/locales/en-US.ts @@ -561,6 +561,8 @@ export default { embedded_secret_len_change: 'The key length has changed. The key will be reset soon. Are you sure?', embedded_management: 'Embedded management', + embedded_del_confirm: 'Are you sure you want to delete {0} applications?', + embedded_search_placeholder: 'Search by application name, APP ID, and cross-domain settings.', to_5_applications: 'You can create up to 5 applications', update_app_secret: 'Are you sure you want to update the APP Secret?', operate_with_caution: diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index 404da771f1..5534201b36 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -545,6 +545,8 @@ export default { cross_domain_settings: '跨域設定', embedded_secret_len_change: '金鑰長度變化,金鑰即將重置,是否確認', embedded_management: '嵌入式管理', + embedded_del_confirm: '確定刪除 {0} 個應用嗎?', + embedded_search_placeholder: '通過應用名稱、APP ID、跨域設置搜索', to_5_applications: '最多支援創建5個應用程式', update_app_secret: '確定更新APP Secret嗎? ', operate_with_caution: '重置後現有的APP Secret將會失效,請謹慎操作。 ', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index f4fbe0ce7c..c3e47716ac 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -548,6 +548,8 @@ export default { cross_domain_settings: '跨域设置', embedded_secret_len_change: '密钥长度变化,密钥即将重置,是否确认', embedded_management: '嵌入式管理', + embedded_del_confirm: '确定删除 {0} 个应用吗?', + embedded_search_placeholder: '通过应用名称、APP ID、跨域设置搜索', to_5_applications: '最多支持创建 {0} 个应用', update_app_secret: '确定更新APP Secret吗?', operate_with_caution: '重置后现有的APP Secret将会失效,请谨慎操作。', diff --git a/de-xpack b/de-xpack index 2d267e3804..05b8dcd659 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 2d267e3804c4f96c753784371bcbe63134b12b4c +Subproject commit 05b8dcd659c647f277f1175f9e9dec089038ce5c diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/embedded/api/EmbeddedApi.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/embedded/api/EmbeddedApi.java index 1667367ec3..960f806351 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/embedded/api/EmbeddedApi.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/embedded/api/EmbeddedApi.java @@ -1,5 +1,6 @@ package io.dataease.api.permissions.embedded.api; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.api.permissions.embedded.dto.EmbeddedCreator; @@ -8,6 +9,7 @@ import io.dataease.api.permissions.embedded.dto.EmbeddedOrigin; import io.dataease.api.permissions.embedded.dto.EmbeddedResetRequest; import io.dataease.api.permissions.embedded.vo.EmbeddedGridVO; import io.dataease.license.config.XpackResource; +import io.dataease.model.KeywordRequest; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -28,8 +30,8 @@ public interface EmbeddedApi { @Operation(summary = "查询") @ApiOperationSupport(order = 1) - @GetMapping("/queryGrid") - List queryGrid(); + @PostMapping("/pager/{goPage}/{pageSize}") + IPage queryGrid(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody KeywordRequest request); @Operation(summary = "创建") @ApiOperationSupport(order = 2) @@ -47,6 +49,11 @@ public interface EmbeddedApi { @PostMapping("/delete/{id}") void delete(@PathVariable("id") Long id); + @Operation(summary = "批量删除") + @ApiOperationSupport(order = 4) + @PostMapping("/batchDelete") + void batchDelete(@RequestBody List ids); + @ApiOperationSupport(order = 5) @Operation(summary = "重置密钥") @PostMapping("/reset") From ab50451b77a4d687625881d2a0f49201e14e1190 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 16 Dec 2024 14:28:21 +0800 Subject: [PATCH 02/28] =?UTF-8?q?fix(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20?= =?UTF-8?q?=E9=AA=A8=E6=9E=B6=E5=B1=8F=E5=8A=A0=E8=BD=BD=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/TemplateSkeleton.vue | 70 +++++++++++++++++++ .../src/views/template-market/index.vue | 52 ++++++++------ 2 files changed, 99 insertions(+), 23 deletions(-) create mode 100644 core/core-frontend/src/views/template-market/component/TemplateSkeleton.vue diff --git a/core/core-frontend/src/views/template-market/component/TemplateSkeleton.vue b/core/core-frontend/src/views/template-market/component/TemplateSkeleton.vue new file mode 100644 index 0000000000..5426e3f3f5 --- /dev/null +++ b/core/core-frontend/src/views/template-market/component/TemplateSkeleton.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/core/core-frontend/src/views/template-market/index.vue b/core/core-frontend/src/views/template-market/index.vue index a27421b889..11e97d151d 100644 --- a/core/core-frontend/src/views/template-market/index.vue +++ b/core/core-frontend/src/views/template-market/index.vue @@ -116,30 +116,14 @@ id="template-show-area" class="template-right" > - - - - - + +
@@ -183,6 +188,7 @@ import { useCache } from '@/hooks/web/useCache' import MarketPreviewV2 from '@/views/template-market/component/MarketPreviewV2.vue' import { imgUrlTrans } from '@/utils/imgUtils' import CategoryTemplateV2 from '@/views/template-market/component/CategoryTemplateV2.vue' +import TemplateSkeleton from '@/views/template-market/component/TemplateSkeleton.vue' import { interactiveStoreWithOut } from '@/store/modules/interactive' import { XpackComponent } from '@/components/plugin' import { useEmitt } from '@/hooks/web/useEmitt' From 33d459576ac5cc41ea9e58998a2ef7636bc04f55 Mon Sep 17 00:00:00 2001 From: ulleo Date: Mon, 16 Dec 2024 14:53:35 +0800 Subject: [PATCH 03/28] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E9=80=8F?= =?UTF-8?q?=E8=A7=86=E8=A1=A8=E8=A1=A8=E5=A4=B4=E5=88=86=E5=BC=80=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E8=83=8C=E6=99=AF=E9=A2=9C=E8=89=B2=20#13538?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/models/chart/chart-attr.d.ts | 10 + core/core-frontend/src/utils/canvasStyle.ts | 7 +- core/core-frontend/src/utils/sizeAdaptor.ts | 2 + .../components/table/TableHeaderSelector.vue | 442 +++++++++++++++--- .../chart/components/editor/util/chart.ts | 24 +- .../js/panel/charts/table/table-pivot.ts | 73 ++- 6 files changed, 471 insertions(+), 87 deletions(-) diff --git a/core/core-frontend/src/models/chart/chart-attr.d.ts b/core/core-frontend/src/models/chart/chart-attr.d.ts index 87bc04310c..e225245851 100644 --- a/core/core-frontend/src/models/chart/chart-attr.d.ts +++ b/core/core-frontend/src/models/chart/chart-attr.d.ts @@ -365,10 +365,14 @@ declare interface ChartTableHeaderAttr { * 表头字体大小 */ tableTitleFontSize: number + tableTitleCornerFontSize: number + tableTitleColFontSize: number /** * 表头字体颜色 */ tableHeaderFontColor: string + tableHeaderCornerFontColor: string + tableHeaderColFontColor: string /** * 表头行高 */ @@ -377,6 +381,8 @@ declare interface ChartTableHeaderAttr { * 表头对齐方式 */ tableHeaderAlign: 'left' | 'center' | 'right' + tableHeaderCornerAlign: 'left' | 'center' | 'right' + tableHeaderColAlign: 'left' | 'center' | 'right' /** * 显示序号 */ @@ -415,10 +421,14 @@ declare interface ChartTableHeaderAttr { * 斜体 */ isItalic: boolean + isCornerItalic: boolean + isColItalic: boolean /** * 加粗 */ isBolder: boolean + isCornerBolder: boolean + isColBolder: boolean } /** * 单元格属性 diff --git a/core/core-frontend/src/utils/canvasStyle.ts b/core/core-frontend/src/utils/canvasStyle.ts index 77542b376d..0936cac276 100644 --- a/core/core-frontend/src/utils/canvasStyle.ts +++ b/core/core-frontend/src/utils/canvasStyle.ts @@ -117,7 +117,12 @@ export function colorRgb(color, opacity) { export const customAttrTrans = { basicStyle: ['barWidth', 'lineWidth', 'lineSymbolSize', 'tableColumnWidth'], - tableHeader: ['tableTitleFontSize', 'tableTitleHeight'], + tableHeader: [ + 'tableTitleFontSize', + 'tableTitleColFontSize', + 'tableTitleCornerFontSize', + 'tableTitleHeight' + ], tableCell: ['tableItemFontSize', 'tableItemHeight'], misc: [ 'nameFontSize', diff --git a/core/core-frontend/src/utils/sizeAdaptor.ts b/core/core-frontend/src/utils/sizeAdaptor.ts index a54f210c0c..6e854af6cd 100644 --- a/core/core-frontend/src/utils/sizeAdaptor.ts +++ b/core/core-frontend/src/utils/sizeAdaptor.ts @@ -7,6 +7,8 @@ export const customAttrTrans = { 'lineSymbolSize', 'funnelWidth', // 漏斗图 最大宽度 'tableTitleFontSize', + 'tableTitleColFontSize', + 'tableTitleCornerFontSize', 'tableItemFontSize', 'tableTitleHeight', 'tableItemHeight', diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/table/TableHeaderSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/table/TableHeaderSelector.vue index c38ea05da4..3931d8f226 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/table/TableHeaderSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/table/TableHeaderSelector.vue @@ -7,7 +7,7 @@ import icon_rightAlignment_outlined from '@/assets/svg/icon_right-alignment_outl import { computed, onMounted, PropType, reactive, watch } from 'vue' import { useI18n } from '@/hooks/web/useI18n' import { COLOR_PANEL, DEFAULT_TABLE_HEADER } from '@/views/chart/components/editor/util/chart' -import { ElSpace } from 'element-plus-secondary' +import { ElDivider, ElSpace } from 'element-plus-secondary' import { cloneDeep, defaultsDeep } from 'lodash-es' import { convertToAlphaColor, isAlphaColor } from '@/views/chart/components/js/util' import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' @@ -94,67 +94,24 @@ onMounted(() => { ref="tableHeaderForm" label-position="top" > - - - - - - - - - + + + { + + + { .mobile-style { margin-top: 25px; } +.m-divider { + margin: 0 0 16px; + border-color: rgba(31, 35, 41, 0.15); + + &.divider-dark { + border-color: rgba(255, 255, 255, 0.15); + } +} 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 96491e194a..2007e15529 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 @@ -44,7 +44,9 @@ export const DEFAULT_COLOR_CASE: DeepPartial = { tableHeaderBgColor: '#1E90FF', tableHeaderCornerBgColor: '#1E90FF', tableHeaderColBgColor: '#1E90FF', - tableHeaderFontColor: '#000000' + tableHeaderFontColor: '#000000', + tableHeaderCornerFontColor: '#000000', + tableHeaderColFontColor: '#000000' }, tableCell: { tableItemBgColor: '#FFFFFF', @@ -94,7 +96,9 @@ export const DEFAULT_COLOR_CASE_LIGHT: DeepPartial = { tableHeaderBgColor: '#1E90FF', tableHeaderCornerBgColor: '#1E90FF', tableHeaderColBgColor: '#1E90FF', - tableHeaderFontColor: '#000000' + tableHeaderFontColor: '#000000', + tableHeaderCornerFontColor: '#000000', + tableHeaderColFontColor: '#000000' }, tableCell: { tableItemBgColor: '#FFFFFF', @@ -143,7 +147,9 @@ export const DEFAULT_COLOR_CASE_DARK: DeepPartial = { tableHeaderBgColor: '#1E90FF', tableHeaderCornerBgColor: '#1E90FF', tableHeaderColBgColor: '#1E90FF', - tableHeaderFontColor: '#FFFFFF' + tableHeaderFontColor: '#FFFFFF', + tableHeaderCornerFontColor: '#FFFFFF', + tableHeaderColFontColor: '#FFFFFF' }, tableCell: { tableItemBgColor: '#131E42', @@ -418,11 +424,17 @@ export const DEFAULT_TABLE_HEADER: ChartTableHeaderAttr = { indexLabel: t('relation.index'), showIndex: false, tableHeaderAlign: 'left', + tableHeaderCornerAlign: 'left', + tableHeaderColAlign: 'left', tableHeaderBgColor: '#1E90FF', tableHeaderCornerBgColor: '#1E90FF', tableHeaderColBgColor: '#1E90FF', tableHeaderFontColor: '#000000', + tableHeaderCornerFontColor: '#000000', + tableHeaderColFontColor: '#000000', tableTitleFontSize: 12, + tableTitleCornerFontSize: 12, + tableTitleColFontSize: 12, tableTitleHeight: 36, tableHeaderSort: false, showColTooltip: false, @@ -431,7 +443,11 @@ export const DEFAULT_TABLE_HEADER: ChartTableHeaderAttr = { showHorizonBorder: true, showVerticalBorder: true, isItalic: false, - isBolder: true + isCornerItalic: false, + isColItalic: false, + isBolder: true, + isCornerBolder: true, + isColBolder: true } export const DEFAULT_TABLE_CELL: ChartTableCellAttr = { tableFontColor: '#000000', diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts index 3cd930c124..d60c3e467a 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts @@ -388,8 +388,20 @@ export class TablePivot extends S2ChartView { tableBorderColor = hexColorToRGBA(tableBorderColor, basicStyle.alpha) } const tableHeaderFontColor = hexColorToRGBA(tableHeader.tableHeaderFontColor, basicStyle.alpha) + const tableHeaderColFontColor = hexColorToRGBA( + tableHeader.tableHeaderColFontColor, + basicStyle.alpha + ) + const tableHeaderCornerFontColor = hexColorToRGBA( + tableHeader.tableHeaderCornerFontColor, + basicStyle.alpha + ) const fontStyle = tableHeader.isItalic ? 'italic' : 'normal' + const colFontStyle = tableHeader.isColItalic ? 'italic' : 'normal' + const cornerFontStyle = tableHeader.isCornerItalic ? 'italic' : 'normal' const fontWeight = tableHeader.isBolder === false ? 'normal' : 'bold' + const colFontWeight = tableHeader.isColBolder === false ? 'normal' : 'bold' + const cornerFontWeight = tableHeader.isCornerBolder === false ? 'normal' : 'bold' const pivotTheme = { rowCell: { cell: { @@ -398,38 +410,59 @@ export class TablePivot extends S2ChartView { verticalBorderColor: tableBorderColor }, text: { - fill: tableHeaderFontColor, - fontSize: tableHeader.tableTitleFontSize, - textAlign: tableHeader.tableHeaderAlign, + fill: tableHeaderColFontColor, + fontSize: tableHeader.tableTitleColFontSize, + textAlign: tableHeader.tableHeaderColAlign, textBaseline: 'top', - fontStyle, - fontWeight + fontStyle: colFontStyle, + fontWeight: colFontWeight }, bolderText: { - fill: tableHeaderFontColor, - fontSize: tableHeader.tableTitleFontSize, - textAlign: tableHeader.tableHeaderAlign, - fontStyle, - fontWeight + fill: tableHeaderColFontColor, + fontSize: tableHeader.tableTitleColFontSize, + textAlign: tableHeader.tableHeaderColAlign, + fontStyle: colFontStyle, + fontWeight: colFontWeight }, measureText: { - fill: tableHeaderFontColor, - fontSize: tableHeader.tableTitleFontSize, - textAlign: tableHeader.tableHeaderAlign, - fontStyle, - fontWeight + fill: tableHeaderColFontColor, + fontSize: tableHeader.tableTitleColFontSize, + textAlign: tableHeader.tableHeaderColAlign, + fontStyle: colFontStyle, + fontWeight: colFontWeight }, seriesText: { - fill: tableHeaderFontColor, - fontSize: tableHeader.tableTitleFontSize, - textAlign: tableHeader.tableHeaderAlign, - fontStyle, - fontWeight + fill: tableHeaderColFontColor, + fontSize: tableHeader.tableTitleColFontSize, + textAlign: tableHeader.tableHeaderColAlign, + fontStyle: colFontStyle, + fontWeight: colFontWeight } }, cornerCell: { cell: { backgroundColor: tableHeaderCornerBgColor + }, + text: { + fill: tableHeaderCornerFontColor, + fontSize: tableHeader.tableTitleCornerFontSize, + textAlign: tableHeader.tableHeaderCornerAlign, + fontStyle: cornerFontStyle, + fontWeight: cornerFontWeight + }, + bolderText: { + fill: tableHeaderCornerFontColor, + fontSize: tableHeader.tableTitleCornerFontSize, + textAlign: tableHeader.tableHeaderCornerAlign, + fontStyle: cornerFontStyle, + fontWeight: cornerFontWeight + }, + measureText: { + fill: tableHeaderCornerFontColor, + fontSize: tableHeader.tableTitleCornerFontSize, + textAlign: tableHeader.tableHeaderCornerAlign, + fontStyle: cornerFontStyle, + fontWeight: cornerFontWeight } } } From f4e39d88ccd5338147dbd0328af6307da87fc7f8 Mon Sep 17 00:00:00 2001 From: ulleo Date: Mon, 16 Dec 2024 15:23:29 +0800 Subject: [PATCH 04/28] =?UTF-8?q?fix(=E5=B7=A5=E4=BD=9C=E5=8F=B0):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E8=8F=9C=E5=8D=95=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E8=8B=B1=E6=96=87=E5=90=8E=E6=96=87=E5=AD=97=E8=B6=85?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/layout/components/HeaderMenuItem.vue | 2 +- core/core-frontend/src/layout/components/TopDocCard.vue | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/core-frontend/src/layout/components/HeaderMenuItem.vue b/core/core-frontend/src/layout/components/HeaderMenuItem.vue index 508c9a1630..36c9dc32d2 100644 --- a/core/core-frontend/src/layout/components/HeaderMenuItem.vue +++ b/core/core-frontend/src/layout/components/HeaderMenuItem.vue @@ -50,7 +50,7 @@ export default HeaderMenuItem margin-top: -2px; } .popper-class-menu { - width: 152px; + min-width: 152px; border-radius: 4px; border: 1px solid #dee0e3 !important; diff --git a/core/core-frontend/src/layout/components/TopDocCard.vue b/core/core-frontend/src/layout/components/TopDocCard.vue index 41211ac028..e34d610680 100644 --- a/core/core-frontend/src/layout/components/TopDocCard.vue +++ b/core/core-frontend/src/layout/components/TopDocCard.vue @@ -38,7 +38,7 @@ const openBlank = () => { .doc-card { padding: 8px 0; width: 96px; - height: 66px; + min-height: 66px; cursor: pointer; display: flex; flex-direction: column; @@ -56,6 +56,9 @@ const openBlank = () => { line-height: 22px; font-weight: 400; margin-top: 4px; + width: 96px; + word-break: break-word; + text-align: center; } .item-top-icon { From 8332105f580751eec312c39dd9b79a17ea7ea667 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 16 Dec 2024 15:58:40 +0800 Subject: [PATCH 05/28] =?UTF-8?q?refactor(=E4=BB=AA=E8=A1=A8=E6=9D=BF?= =?UTF-8?q?=E3=80=81=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E6=A1=8C?= =?UTF-8?q?=E9=9D=A2=E7=89=88=E9=97=AE=E9=A2=98=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtVisualizationLinkJumpMapper.java | 4 +- .../server/VisualizationLinkJumpService.java | 5 +- .../ExtVisualizationLinkJumpMapper.xml | 141 +++++++----------- .../mybatis/ExtVisualizationLinkageMapper.xml | 19 ++- core/core-frontend/src/utils/treeSortUtils.ts | 1 - 5 files changed, 67 insertions(+), 103 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationLinkJumpMapper.java b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationLinkJumpMapper.java index cfb906119a..06f8514aab 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationLinkJumpMapper.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/dao/ext/mapper/ExtVisualizationLinkJumpMapper.java @@ -12,9 +12,9 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface ExtVisualizationLinkJumpMapper { - List queryWithDvId(@Param("dvId") Long dvId,@Param("uid") Long uid); + List queryWithDvId(@Param("dvId") Long dvId,@Param("uid") Long uid,@Param("isDesktop") Boolean isDesktop); - VisualizationLinkJumpDTO queryWithViewId(@Param("dvId") Long dvId,@Param("viewId") Long viewId,@Param("uid") Long uid); + VisualizationLinkJumpDTO queryWithViewId(@Param("dvId") Long dvId,@Param("viewId") Long viewId,@Param("uid") Long uid,@Param("isDesktop") Boolean isDesktop); void deleteJumpTargetViewInfo(@Param("dvId") Long dvId,@Param("viewId") Long viewId); diff --git a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationLinkJumpService.java b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationLinkJumpService.java index c5caa5c3a9..42734e6a2a 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationLinkJumpService.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/server/VisualizationLinkJumpService.java @@ -15,6 +15,7 @@ import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; import io.dataease.utils.AuthUtils; import io.dataease.utils.BeanUtils; import io.dataease.utils.IDUtils; +import io.dataease.utils.ModelUtils; import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo; import io.dataease.visualization.dao.auto.entity.VisualizationLinkJump; import io.dataease.visualization.dao.auto.entity.VisualizationLinkJumpInfo; @@ -74,7 +75,7 @@ public class VisualizationLinkJumpService implements VisualizationLinkJumpApi { @Override public VisualizationLinkJumpBaseResponse queryVisualizationJumpInfo(Long dvId) { Map resultBase = new HashMap<>(); - List resultLinkJumpList = extVisualizationLinkJumpMapper.queryWithDvId(dvId, AuthUtils.getUser().getUserId()); + List resultLinkJumpList = extVisualizationLinkJumpMapper.queryWithDvId(dvId, AuthUtils.getUser().getUserId(), ModelUtils.isDesktop()); Optional.ofNullable(resultLinkJumpList).orElse(new ArrayList<>()).forEach(resultLinkJump -> { if (resultLinkJump.getChecked()) { Long sourceViewId = resultLinkJump.getSourceViewId(); @@ -99,7 +100,7 @@ public class VisualizationLinkJumpService implements VisualizationLinkJumpApi { @Override public VisualizationLinkJumpDTO queryWithViewId(Long dvId, Long viewId) { - return extVisualizationLinkJumpMapper.queryWithViewId(dvId, viewId, AuthUtils.getUser().getUserId()); + return extVisualizationLinkJumpMapper.queryWithViewId(dvId, viewId, AuthUtils.getUser().getUserId(), ModelUtils.isDesktop()); } @Transactional diff --git a/core/core-backend/src/main/resources/mybatis/ExtVisualizationLinkJumpMapper.xml b/core/core-backend/src/main/resources/mybatis/ExtVisualizationLinkJumpMapper.xml index 0413c7dde2..e1be07a325 100644 --- a/core/core-backend/src/main/resources/mybatis/ExtVisualizationLinkJumpMapper.xml +++ b/core/core-backend/src/main/resources/mybatis/ExtVisualizationLinkJumpMapper.xml @@ -30,7 +30,7 @@ @@ -85,7 +85,9 @@ visualization_link_jump_info.window_size, visualization_link_jump_info.target_dv_id, visualization_link_jump_info.content, + xpack_share.uuid AS publicJumpId, + ifnull( visualization_link_jump_info.checked, 0 ) AS checked, ifnull( visualization_link_jump_info.attach_params, 0 ) AS attach_params, visualization_link_jump_target_view_info.target_id, @@ -102,20 +104,29 @@ LEFT JOIN visualization_link_jump_info ON visualization_link_jump.id = visualization_link_jump_info.link_jump_id AND core_dataset_table_field.id = visualization_link_jump_info.source_field_id LEFT JOIN visualization_link_jump_target_view_info ON visualization_link_jump_info.id = visualization_link_jump_target_view_info.link_jump_info_id + LEFT JOIN xpack_share ON xpack_share.creator = #{uid} AND visualization_link_jump_info.target_dv_id = xpack_share.resource_id + left join visualization_outer_params_info on visualization_outer_params_info.params_info_id = visualization_link_jump_target_view_info.target_view_id WHERE core_chart_view.id = #{source_view_id} AND core_chart_view.type != 'VQuery' - ORDER BY - CONVERT ( - core_dataset_table_field.NAME USING gbk) + + ORDER BY + CONVERT ( + core_dataset_table_field.NAME USING gbk) + + + ORDER BY core_dataset_table_field.name; + + SELECT core_chart_view.id AS source_view_id, ${uid} as queryUid, + ${isDesktop} as isDesktop, visualization_link_jump.id, #{dvId} as source_dv_id, visualization_link_jump.link_jump_info, ifnull(visualization_link_jump.checked, 0) AS checked @@ -176,109 +188,58 @@ - DELETE - ljtv - FROM - visualization_link_jump_target_view_info ljtv, - visualization_link_jump_info lji, - visualization_link_jump lj - WHERE - ljtv.link_jump_info_id = lji.id - AND lji.link_jump_id = lj.id - AND lj.source_dv_id = - #{dvId} - AND - lj - . - source_view_id - = - #{viewId} + DELETE FROM visualization_link_jump_target_view_info + WHERE link_jump_info_id IN ( + SELECT lji.id + FROM visualization_link_jump_info lji + JOIN visualization_link_jump lj ON lji.link_jump_id = lj.id + WHERE lj.source_dv_id = #{dvId} + AND lj.source_view_id = #{viewId} + ); - DELETE - lji - FROM - visualization_link_jump_info lji, - visualization_link_jump lj - WHERE - lji.link_jump_id = lj.id - AND lj.source_dv_id = - #{dvId} - AND - lj - . - source_view_id - = - #{viewId} + DELETE FROM visualization_link_jump_info + WHERE link_jump_id IN ( + SELECT lj.id + FROM visualization_link_jump lj + WHERE lj.source_dv_id = #{dvId} + AND lj.source_view_id = #{viewId} + ); - DELETE - lj - FROM - visualization_link_jump lj - WHERE - lj.source_dv_id = - #{dvId} - AND - lj - . - source_view_id - = - #{viewId} + DELETE FROM visualization_link_jump + WHERE source_dv_id = #{dvId} + AND source_view_id = #{viewId} - DELETE - ljtv - FROM - visualization_link_jump_target_view_info ljtv, - visualization_link_jump_info lji, - visualization_link_jump lj - WHERE - ljtv.link_jump_info_id = lji.id - AND lji.link_jump_id = lj.id - AND (lj.source_dv_id = - #{dvId} - or - lji - . - target_dv_id - = - #{dvId} + DELETE FROM visualization_link_jump_target_view_info + WHERE link_jump_info_id IN ( + SELECT lji.id + FROM visualization_link_jump_info lji + JOIN visualization_link_jump lj ON lji.link_jump_id = lj.id + WHERE lj.source_dv_id = #{dvId} + OR lji.target_dv_id = #{dvId} ) - DELETE - lji - FROM - visualization_link_jump_info lji, - visualization_link_jump lj - WHERE - lji.link_jump_id = lj.id - AND (lj.source_dv_id = - #{dvId} - or - lji - . - target_dv_id - = - #{dvId} + DELETE FROM visualization_link_jump_info + WHERE link_jump_id IN ( + SELECT lj.id + FROM visualization_link_jump lj + WHERE lj.source_dv_id = #{dvId} + OR lj.target_dv_id = #{dvId} ) - - DELETE - lj - FROM - visualization_link_jump lj - WHERE - lj.source_dv_id = - #{dvId} - + + DELETE FROM visualization_link_jump + WHERE source_dv_id = #{dvId} + diff --git a/core/core-frontend/src/utils/treeSortUtils.ts b/core/core-frontend/src/utils/treeSortUtils.ts index 9c5264665f..52cc6e948b 100644 --- a/core/core-frontend/src/utils/treeSortUtils.ts +++ b/core/core-frontend/src/utils/treeSortUtils.ts @@ -4,7 +4,6 @@ import _ from 'lodash' export function treeParentWeight(tree: BusiTreeNode[], pWeight) { const pWeightResult = {} weightCheckCircle(tree, pWeightResult, pWeight) - console.log('===test===' + JSON.stringify(pWeightResult)) return pWeightResult } From 47e5efff9dd8a622f0885e7040dc6746abb4697c Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 16 Dec 2024 16:42:35 +0800 Subject: [PATCH 06/28] =?UTF-8?q?refactor(=E4=BB=AA=E8=A1=A8=E6=9D=BF?= =?UTF-8?q?=E3=80=81=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=A1=8C=E9=9D=A2=E7=89=88flyway=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/db/desktop/V2.0__core_ddl.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/core-backend/src/main/resources/db/desktop/V2.0__core_ddl.sql b/core/core-backend/src/main/resources/db/desktop/V2.0__core_ddl.sql index 3a48e682fb..a64756e4e8 100644 --- a/core/core-backend/src/main/resources/db/desktop/V2.0__core_ddl.sql +++ b/core/core-backend/src/main/resources/db/desktop/V2.0__core_ddl.sql @@ -4186,14 +4186,14 @@ SET FOREIGN_KEY_CHECKS = 1; INSERT INTO `visualization_subject` (`id`, `name`, `type`, `details`, `delete_flag`, `cover_url`, `create_num`, `create_time`, `create_by`, `update_time`, `update_by`, `delete_time`, `delete_by`) VALUES ('10001', '浅色主题', 'system', - '{\"width\":1920,\"height\":1080,\"refreshViewEnable\":false,\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"scale\":60,\"scaleWidth\":100,\"scaleHeight\":100,\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"backgroundColor\",\"background\":\"\",\"openCommonStyle\":true,\"opacity\":1,\"fontSize\":14,\"themeId\":\"10001\",\"color\":\"#000000\",\"backgroundColor\":\"rgba(245, 246, 247, 1)\",\"dashboard\":{\"gap\":\"yes\",\"gapSize\":5,\"resultMode\":\"all\",\"resultCount\":1000,\"themeColor\":\"light\",\"mobileSetting\":{\"customSetting\":false,\"imageUrl\":null,\"backgroundType\":\"image\",\"color\":\"#000\"}},\"component\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true,\"remarkShow\":false,\"remark\":\"\",\"fontFamily\":\"Microsoft YaHei\",\"letterSpace\":\"0\",\"fontShadow\":false,\"color\":\"#000000\",\"remarkBackgroundColor\":\"#ffffff\"},\"chartColor\":{\"basicStyle\":{\"colorScheme\":\"default\",\"colors\":[\"#1E90FF\",\"#90EE90\",\"#00CED1\",\"#E2BD84\",\"#7A90E0\",\"#3BA272\",\"#2BE7FF\",\"#0A8ADA\",\"#FFD700\"],\"alpha\":100,\"gradient\":false,\"mapStyle\":\"normal\",\"areaBaseColor\":\"#FFFFFF\",\"areaBorderColor\":\"#303133\",\"gaugeStyle\":\"default\",\"tableBorderColor\":\"#E6E7E4\",\"tableScrollBarColor\":\"#00000024\"},\"misc\":{\"mapLineGradient\":false,\"mapLineSourceColor\":\"#146C94\",\"mapLineTargetColor\":\"#576CBC\",\"nameFontColor\":\"#000000\",\"valueFontColor\":\"#5470c6\"},\"tableHeader\":{\"tableHeaderBgColor\":\"#1E90FF\",\"tableHeaderFontColor\":\"#000000\"},\"tableCell\":{\"tableItemBgColor\":\"#FFFFFF\",\"tableFontColor\":\"#000000\"}},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"innerImage\",\"innerImage\":\"board/board_1.svg\",\"outerImage\":null,\"innerPadding\":12,\"borderRadius\":0,\"backgroundColor\":\"rgba(255,255,255,1)\",\"innerImageColor\":\"rgba(16, 148, 229,1)\"},\"filterStyle\":{\"layout\":\"horizontal\",\"titleLayout\":\"left\",\"labelColor\":\"#000000\",\"titleColor\":\"#000000\",\"color\":\"#000000\",\"borderColor\":\"#F3E7E7\",\"text\":\"#484747\",\"bgColor\":\"#FFFFFF\"},\"tabStyle\":{\"headPosition\":\"left\",\"headFontColor\":\"#OOOOOO\",\"headFontActiveColor\":\"#OOOOOO\",\"headBorderColor\":\"#OOOOOO\",\"headBorderActiveColor\":\"#OOOOOO\"}}}', + '{"width":1920,"height":1080,"refreshViewEnable":false,"refreshViewLoading":true,"refreshUnit":"minute","refreshTime":5,"scale":60,"scaleWidth":100,"scaleHeight":100,"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"backgroundColor","background":"","openCommonStyle":true,"opacity":1,"fontSize":14,"themeId":"10001","color":"#000000","backgroundColor":"rgba(245, 246, 247, 1)","dashboard":{"gap":"yes","gapSize":5,"resultMode":"all","resultCount":1000,"themeColor":"light","mobileSetting":{"customSetting":false,"imageUrl":null,"backgroundType":"image","color":"#000"}},"component":{"chartTitle":{"show":true,"fontSize":"18","hPosition":"left","vPosition":"top","isItalic":false,"isBolder":true,"remarkShow":false,"remark":"","fontFamily":"Microsoft YaHei","letterSpace":"0","fontShadow":false,"color":"#000000","remarkBackgroundColor":"#ffffff"},"chartColor":{"basicStyle":{"colorScheme":"default","colors":["#1E90FF","#90EE90","#00CED1","#E2BD84","#7A90E0","#3BA272","#2BE7FF","#0A8ADA","#FFD700"],"alpha":100,"gradient":false,"mapStyle":"normal","areaBaseColor":"#FFFFFF","areaBorderColor":"#303133","gaugeStyle":"default","tableBorderColor":"#E6E7E4","tableScrollBarColor":"#00000024"},"misc":{"mapLineGradient":false,"mapLineSourceColor":"#146C94","mapLineTargetColor":"#576CBC","nameFontColor":"#000000","valueFontColor":"#5470c6"},"tableHeader":{"tableHeaderBgColor":"#1E90FF","tableHeaderFontColor":"#000000"},"tableCell":{"tableItemBgColor":"#FFFFFF","tableFontColor":"#000000"}},"chartCommonStyle":{"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"innerImage","innerImage":"board/board_1.svg","outerImage":null,"innerPadding":12,"borderRadius":0,"backgroundColor":"rgba(255,255,255,1)","innerImageColor":"rgba(16, 148, 229,1)"},"filterStyle":{"layout":"horizontal","titleLayout":"left","labelColor":"#000000","titleColor":"#000000","color":"#000000","borderColor":"#F3E7E7","text":"#484747","bgColor":"#FFFFFF"},"tabStyle":{"headPosition":"left","headFontColor":"#OOOOOO","headFontActiveColor":"#OOOOOO","headBorderColor":"#OOOOOO","headBorderActiveColor":"#OOOOOO"}}}', 0, 'data:image/png;base64,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', 0, 1696427707737, NULL, NULL, NULL, NULL, NULL); INSERT INTO `visualization_subject` (`id`, `name`, `type`, `details`, `delete_flag`, `cover_url`, `create_num`, `create_time`, `create_by`, `update_time`, `update_by`, `delete_time`, `delete_by`) VALUES ('10002', '深色主题', 'system', - '{\"width\":1920,\"height\":1080,\"refreshViewEnable\":false,\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"scale\":60,\"scaleWidth\":100,\"scaleHeight\":100,\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"backgroundColor\",\"background\":\"\",\"openCommonStyle\":true,\"opacity\":1,\"fontSize\":14,\"themeId\":\"10002\",\"color\":\"#000000\",\"backgroundColor\":\"rgba(3, 11, 46, 1)\",\"dashboard\":{\"gap\":\"yes\",\"gapSize\":5,\"resultMode\":\"all\",\"resultCount\":1000,\"themeColor\":\"dark\",\"mobileSetting\":{\"customSetting\":false,\"imageUrl\":null,\"backgroundType\":\"image\",\"color\":\"#000\"}},\"component\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true,\"remarkShow\":false,\"remark\":\"\",\"fontFamily\":\"Microsoft YaHei\",\"letterSpace\":\"0\",\"fontShadow\":false,\"color\":\"#FFFFFF\",\"remarkBackgroundColor\":\"#5A5C62\"},\"chartColor\":{\"basicStyle\":{\"colorScheme\":\"default\",\"colors\":[\"#1E90FF\",\"#90EE90\",\"#00CED1\",\"#E2BD84\",\"#7A90E0\",\"#3BA272\",\"#2BE7FF\",\"#0A8ADA\",\"#FFD700\"],\"alpha\":100,\"gradient\":false,\"mapStyle\":\"darkblue\",\"areaBaseColor\":\"5470C6\",\"areaBorderColor\":\"#EBEEF5\",\"gaugeStyle\":\"default\",\"tableBorderColor\":\"#CCCCCC\",\"tableScrollBarColor\":\"#FFFFFF80\"},\"misc\":{\"mapLineGradient\":false,\"mapLineSourceColor\":\"#2F58CD\",\"mapLineTargetColor\":\"#3795BD\",\"nameFontColor\":\"#ffffff\",\"valueFontColor\":\"#5470c6\"},\"tableHeader\":{\"tableHeaderBgColor\":\"#1E90FF\",\"tableHeaderFontColor\":\"#FFFFFF\"},\"tableCell\":{\"tableItemBgColor\":\"#131E42\",\"tableFontColor\":\"#FFFFFF\"}},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"innerImage\",\"innerImage\":\"board/board_1.svg\",\"outerImage\":null,\"innerPadding\":12,\"borderRadius\":0,\"backgroundColor\":\"rgba(19,28,66,1)\",\"innerImageColor\":\"#1094E5\"},\"filterStyle\":{\"layout\":\"horizontal\",\"titleLayout\":\"left\",\"labelColor\":\"#FFFFFF\",\"titleColor\":\"#FFFFFF\",\"color\":\"#FFFFFF\",\"borderColor\":\"#484747\",\"text\":\"#AFAFAF\",\"bgColor\":\"#131C42\"},\"tabStyle\":{\"headPosition\":\"left\",\"headFontColor\":\"#FFFFFF\",\"headFontActiveColor\":\"#FFFFFF\",\"headBorderColor\":\"#131E42\",\"headBorderActiveColor\":\"#131E42\"}}}', + '{"width":1920,"height":1080,"refreshViewEnable":false,"refreshViewLoading":true,"refreshUnit":"minute","refreshTime":5,"scale":60,"scaleWidth":100,"scaleHeight":100,"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"backgroundColor","background":"","openCommonStyle":true,"opacity":1,"fontSize":14,"themeId":"10002","color":"#000000","backgroundColor":"rgba(3, 11, 46, 1)","dashboard":{"gap":"yes","gapSize":5,"resultMode":"all","resultCount":1000,"themeColor":"dark","mobileSetting":{"customSetting":false,"imageUrl":null,"backgroundType":"image","color":"#000"}},"component":{"chartTitle":{"show":true,"fontSize":"18","hPosition":"left","vPosition":"top","isItalic":false,"isBolder":true,"remarkShow":false,"remark":"","fontFamily":"Microsoft YaHei","letterSpace":"0","fontShadow":false,"color":"#FFFFFF","remarkBackgroundColor":"#5A5C62"},"chartColor":{"basicStyle":{"colorScheme":"default","colors":["#1E90FF","#90EE90","#00CED1","#E2BD84","#7A90E0","#3BA272","#2BE7FF","#0A8ADA","#FFD700"],"alpha":100,"gradient":false,"mapStyle":"darkblue","areaBaseColor":"5470C6","areaBorderColor":"#EBEEF5","gaugeStyle":"default","tableBorderColor":"#CCCCCC","tableScrollBarColor":"#FFFFFF80"},"misc":{"mapLineGradient":false,"mapLineSourceColor":"#2F58CD","mapLineTargetColor":"#3795BD","nameFontColor":"#ffffff","valueFontColor":"#5470c6"},"tableHeader":{"tableHeaderBgColor":"#1E90FF","tableHeaderFontColor":"#FFFFFF"},"tableCell":{"tableItemBgColor":"#131E42","tableFontColor":"#FFFFFF"}},"chartCommonStyle":{"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"innerImage","innerImage":"board/board_1.svg","outerImage":null,"innerPadding":12,"borderRadius":0,"backgroundColor":"rgba(19,28,66,1)","innerImageColor":"#1094E5"},"filterStyle":{"layout":"horizontal","titleLayout":"left","labelColor":"#FFFFFF","titleColor":"#FFFFFF","color":"#FFFFFF","borderColor":"#484747","text":"#AFAFAF","bgColor":"#131C42"},"tabStyle":{"headPosition":"left","headFontColor":"#FFFFFF","headFontActiveColor":"#FFFFFF","headBorderColor":"#131E42","headBorderActiveColor":"#131E42"}}}', 0, 'data:image/png;base64,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', 0, 1696427762072, NULL, NULL, NULL, NULL, NULL); From 038c5f7fdbadb80432fcd53b6f685e69546d6747 Mon Sep 17 00:00:00 2001 From: wisonic Date: Mon, 16 Dec 2024 16:56:28 +0800 Subject: [PATCH 07/28] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=80=8F=E8=A7=86=E8=A1=A8=E6=A0=91=E5=BD=A2=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=9C=A8=E5=88=97=E7=BB=B4=E5=BA=A6=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E8=A1=8C=E6=80=BB=E8=AE=A1=E5=B0=8F=E8=AE=A1=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/panel/charts/table/table-pivot.ts | 161 +++++++++++++++--- 1 file changed, 140 insertions(+), 21 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts index d60c3e467a..c4b095c5cc 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-pivot.ts @@ -560,7 +560,7 @@ function customCalcFunc(query, data, status, chart, totalCfgMap, axisMap, custom } } -function getCustomCalcResult(query, axisMap, chart: ChartObj, status: TotalStatus, customCalc) { +function getTreeCustomCalcResult(query, axisMap, status: TotalStatus, customCalc) { const quotaField = query[EXTRA_FIELD] const { row, col } = axisMap // 行列交叉总计 @@ -570,26 +570,18 @@ function getCustomCalcResult(query, axisMap, chart: ChartObj, status: TotalStatu // 列总计 if (status.isColTotal && !status.isRowSubTotal) { const { colTotal, rowSubInColTotal } = customCalc - const { tableLayoutMode } = chart.customAttr.basicStyle const path = getTreePath(query, row) let val if (path.length) { - if (tableLayoutMode === 'grid' && colTotal) { + const subLevel = getSubLevel(query, row) + if (subLevel + 1 === row.length && colTotal) { path.push(quotaField) val = get(colTotal.data, path) } - // 树形模式的行小计放在列总计里面 - if (tableLayoutMode === 'tree') { - const subLevel = getSubLevel(query, row) - if (subLevel + 1 === row.length && colTotal) { - path.push(quotaField) - val = get(colTotal.data, path) - } - if (subLevel + 1 < row.length && rowSubInColTotal) { - const data = rowSubInColTotal?.[subLevel]?.data - path.push(quotaField) - val = get(data, path) - } + if (subLevel + 1 < row.length && rowSubInColTotal) { + const data = rowSubInColTotal?.[subLevel]?.data + path.push(quotaField) + val = get(data, path) } } return val @@ -614,13 +606,133 @@ function getCustomCalcResult(query, axisMap, chart: ChartObj, status: TotalStatu const { rowTotal } = customCalc const path = getTreePath(query, col) let val - if (path.length && rowTotal) { - path.push(quotaField) - val = get(rowTotal.data, path) + if (rowTotal) { + if (path.length) { + path.push(quotaField) + val = get(rowTotal.data, path) + } + // 列维度为空,行维度不为空 + if (!col.length && row.length) { + val = get(rowTotal.data, quotaField) + } } - // 列维度为空,行维度不为空 - if (!col.length && row.length) { - val = get(rowTotal.data, quotaField) + return val + } + // 行小计 + if (status.isRowSubTotal) { + // 列维度为空,行小计直接当成列总计 + if ( + (!status.isColTotal && !status.isColSubTotal) || + (!col.length && status.isColTotal && status.isRowSubTotal) + ) { + const { rowSubTotal } = customCalc + const rowLevel = getSubLevel(query, row) + const colPath = getTreePath(query, col) + const rowPath = getTreePath(query, row) + const path = [...colPath, ...rowPath] + const data = rowSubTotal?.[rowLevel]?.data + let val + if (path.length && rowSubTotal) { + path.push(quotaField) + val = get(data, path) + } + return val + } + } + // 行总计里面的列小计 + if (status.isRowTotal && status.isColSubTotal) { + const { colSubInRowTotal } = customCalc + const colLevel = getSubLevel(query, col) + const { data } = colSubInRowTotal?.[colLevel] + const colPath = getTreePath(query, col) + let val + if (colPath.length && colSubInRowTotal) { + colPath.push(quotaField) + val = get(data, colPath) + } + return val + } + // 列总计里面的行小计 + if (status.isColTotal && status.isRowSubTotal) { + const { rowSubInColTotal } = customCalc + const rowSubLevel = getSubLevel(query, row) + const data = rowSubInColTotal?.[rowSubLevel]?.data + const path = getTreePath(query, row) + let val + if (path.length && rowSubInColTotal) { + path.push(quotaField) + val = get(data, path) + } + return val + } + // 列小计里面的行小计 + if (status.isColSubTotal && status.isRowSubTotal) { + const { rowSubInColSub } = customCalc + const rowSubLevel = getSubLevel(query, row) + const colSubLevel = getSubLevel(query, col) + const data = rowSubInColSub?.[rowSubLevel]?.[colSubLevel]?.data + const rowPath = getTreePath(query, row) + const colPath = getTreePath(query, col) + const path = [...rowPath, ...colPath] + let val + if (path.length && rowSubInColSub) { + path.push(quotaField) + val = get(data, path) + } + return val + } + return NaN +} + +function getGridCustomCalcResult(query, axisMap, status: TotalStatus, customCalc) { + const quotaField = query[EXTRA_FIELD] + const { row, col } = axisMap + // 行列交叉总计 + if (status.isRowTotal && status.isColTotal) { + return customCalc.rowColTotal?.data?.[quotaField] + } + // 列总计 + if (status.isColTotal && !status.isRowSubTotal) { + const { colTotal } = customCalc + const path = getTreePath(query, row) + let val + if (path.length) { + if (colTotal) { + path.push(quotaField) + val = get(colTotal.data, path) + } + } + return val + } + // 列小计 + if (status.isColSubTotal && !status.isRowTotal && !status.isRowSubTotal) { + const { colSubTotal } = customCalc + const subLevel = getSubLevel(query, col) + const rowPath = getTreePath(query, row) + const colPath = getTreePath(query, col) + const path = [...rowPath, ...colPath] + const data = colSubTotal?.[subLevel]?.data + let val + if (path.length && data) { + path.push(quotaField) + val = get(data, path) + } + return val + } + // 行总计 + if (status.isRowTotal && !status.isColSubTotal) { + const { rowTotal } = customCalc + const path = getTreePath(query, col) + let val + if (rowTotal) { + if (path.length) { + path.push(quotaField) + val = get(rowTotal.data, path) + } + // 列维度为空,行维度不为空 + if (!col.length && row.length) { + val = get(rowTotal.data, quotaField) + } } return val } @@ -682,6 +794,13 @@ function getCustomCalcResult(query, axisMap, chart: ChartObj, status: TotalStatu return val } } +function getCustomCalcResult(query, axisMap, chart: ChartObj, status: TotalStatus, customCalc) { + const { tableLayoutMode } = chart.customAttr.basicStyle + if (tableLayoutMode === 'tree') { + return getTreeCustomCalcResult(query, axisMap, status, customCalc) + } + return getGridCustomCalcResult(query, axisMap, status, customCalc) +} function getSubLevel(query, axis) { const fields: [] = axis.map(a => a.dataeaseName) From 137a55f1ec4cc3bff9dbc7b12e33535a4f09d6e9 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 16 Dec 2024 16:35:58 +0800 Subject: [PATCH 08/28] =?UTF-8?q?fix:=20=E6=A0=B7=E5=BC=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/views/copilot/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/core/core-frontend/src/views/copilot/index.vue b/core/core-frontend/src/views/copilot/index.vue index 5b87d9a119..6de8535ac5 100644 --- a/core/core-frontend/src/views/copilot/index.vue +++ b/core/core-frontend/src/views/copilot/index.vue @@ -409,6 +409,7 @@ const queryAnswer = (event?: KeyboardEvent) => { bottom: 25px; border-radius: 8px; left: 180px; + z-index: 100; box-sizing: border-box; background: #fff; box-shadow: 0px 6px 24px 0px #1f232914; From 023dfdb02d3268b8e508633a1bdeb9fc12916ead Mon Sep 17 00:00:00 2001 From: ulleo Date: Mon, 16 Dec 2024 17:43:07 +0800 Subject: [PATCH 09/28] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E7=AC=A6?= =?UTF-8?q?=E5=8F=B7=E5=9C=B0=E5=9B=BE=E6=94=AF=E6=8C=81=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=20#13785?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/SymbolicStyleSelector.vue | 121 +++++++++++++++++- .../js/panel/charts/map/symbolic-map.ts | 52 +++++--- 2 files changed, 154 insertions(+), 19 deletions(-) diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/SymbolicStyleSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/SymbolicStyleSelector.vue index 9e32eac0f9..f1d15f4d20 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/SymbolicStyleSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/SymbolicStyleSelector.vue @@ -1,9 +1,10 @@