diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java index 519ba6afc8..6f64f5b993 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java @@ -120,7 +120,7 @@ public class YoyChartHandler extends DefaultChartHandler { expandedResult.setQuerySql(originSql); } // 同环比数据排序 - expandedResult.setOriginData(sortData(view, expandedResult.getOriginData(),formatResult)); + expandedResult.setOriginData(sortData(view, expandedResult.getOriginData(), formatResult)); return expandedResult; } @@ -128,7 +128,14 @@ public class YoyChartHandler extends DefaultChartHandler { // 维度排序 List xAxisSortList = view.getXAxis().stream().filter(x -> !StringUtils.equalsIgnoreCase("none", x.getSort())).toList(); // 指标排序 - List yAxisSortList = view.getYAxis().stream().filter(y -> !StringUtils.equalsIgnoreCase("none", y.getSort())).toList(); + List yAxisSortList = view.getYAxis().stream().filter(y -> { + //需要针对区间条形图的时间类型判断一下 + if (StringUtils.equalsIgnoreCase("bar-range", view.getType()) && StringUtils.equalsIgnoreCase(y.getGroupType(), "d") && y.getDeType() == 1) { + return false; + } else { + return !StringUtils.equalsIgnoreCase("none", y.getSort()); + } + }).toList(); // 不包含维度排序时,指标排序生效 if (!data.isEmpty() && CollectionUtils.isEmpty(xAxisSortList) && CollectionUtils.isNotEmpty(yAxisSortList)) { // 指标排序仅第一个生效 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 119dd15667..758cdd18dc 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 @@ -31,6 +31,7 @@ import jakarta.servlet.http.HttpServletResponse; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.streaming.SXSSFWorkbook; @@ -89,7 +90,7 @@ public class ChartDataServer implements ChartDataApi { return chartDataManage.calcData(chartViewDTO); } } catch (Exception e) { - DEException.throwException(ResultCode.DATA_IS_WRONG.code(), e.getMessage()); + DEException.throwException(ResultCode.DATA_IS_WRONG.code(), e.getMessage() + "\n\n" + ExceptionUtils.getStackTrace(e)); } return null; } diff --git a/core/core-backend/src/main/resources/db/desktop/V2.10.3__ddl.sql b/core/core-backend/src/main/resources/db/desktop/V2.10.3__ddl.sql index 6c8df1e11b..e8570bb31b 100644 --- a/core/core-backend/src/main/resources/db/desktop/V2.10.3__ddl.sql +++ b/core/core-backend/src/main/resources/db/desktop/V2.10.3__ddl.sql @@ -11,8 +11,9 @@ ALTER TABLE `visualization_link_jump_target_view_info` ADD COLUMN `target_type` varchar(50) NULL COMMENT '联动目标类型 view 图表 filter 过滤组件 outParams 外部参数'; ALTER TABLE `visualization_link_jump_target_view_info` - MODIFY COLUMN `target_view_id` varchar(50) NULL DEFAULT NULL COMMENT '目标图表ID' AFTER `source_field_active_id`, - MODIFY COLUMN `target_field_id` varchar(50) NULL DEFAULT NULL COMMENT '目标字段ID' AFTER `target_view_id`; + MODIFY COLUMN `target_view_id` varchar(50) NULL DEFAULT NULL COMMENT '目标图表ID'; +ALTER TABLE `visualization_link_jump_target_view_info` + MODIFY COLUMN `target_field_id` varchar(50) NULL DEFAULT NULL COMMENT '目标字段ID'; update visualization_link_jump_target_view_info set target_type = 'view'; ALTER TABLE `data_visualization_info` diff --git a/core/core-frontend/src/assets/svg/icon_organization_outlined.svg b/core/core-frontend/src/assets/svg/icon_organization_outlined.svg index b418ddbe3d..38e011d0fb 100644 --- a/core/core-frontend/src/assets/svg/icon_organization_outlined.svg +++ b/core/core-frontend/src/assets/svg/icon_organization_outlined.svg @@ -1,3 +1,3 @@ - - + + diff --git a/core/core-frontend/src/custom-component/v-query/CustomSortFilter.vue b/core/core-frontend/src/custom-component/v-query/CustomSortFilter.vue index 723ec31c66..c5693c3d98 100644 --- a/core/core-frontend/src/custom-component/v-query/CustomSortFilter.vue +++ b/core/core-frontend/src/custom-component/v-query/CustomSortFilter.vue @@ -64,7 +64,7 @@ defineExpose({ .custom-sort_filter { .drag-list { overflow: auto; - max-height: 800px; + max-height: 400px; .item-dimension { padding: 2px; margin: 2px; diff --git a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue index eadee77911..a74e29b52c 100644 --- a/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue +++ b/core/core-frontend/src/custom-component/v-query/QueryConditionConfiguration.vue @@ -3491,7 +3491,7 @@ defineExpose({ } } .label { - width: 100px; + width: 80px; color: #1f2329; } diff --git a/core/core-frontend/src/custom-component/v-query/Select.vue b/core/core-frontend/src/custom-component/v-query/Select.vue index 2cc0c9b969..097dbf4c30 100644 --- a/core/core-frontend/src/custom-component/v-query/Select.vue +++ b/core/core-frontend/src/custom-component/v-query/Select.vue @@ -291,9 +291,18 @@ const setOldMapValue = arr => { const customSort = () => { if (config.value.sortList?.length && config.value.sort === 'customSort') { options.value = [ - ...options.value.sort( - (a, b) => config.value.sortList.indexOf(a.value) - config.value.sortList.indexOf(b.value) - ) + ...options.value + .sort(a => { + if (config.value.sortList.indexOf(a.value) !== -1) { + return -1 + } + }) + .sort((a, b) => { + if (config.value.sortList.indexOf(a.value) === -1) { + return 0 + } + return config.value.sortList.indexOf(a.value) - config.value.sortList.indexOf(b.value) + }) ] } } @@ -517,7 +526,7 @@ const setOptions = (num: number) => { handleFieldIdChange({ queryId: field.id, displayId: displayId || field.id, - sort: sort === 'customSort' ? '' : sort, + sort: sort === 'customSort' ? 'asc' : sort, sortId, resultMode: config.value.resultMode || 0, searchText: searchText.value, diff --git a/core/core-frontend/src/layout/components/DesktopSetting.vue b/core/core-frontend/src/layout/components/DesktopSetting.vue new file mode 100644 index 0000000000..911c7db571 --- /dev/null +++ b/core/core-frontend/src/layout/components/DesktopSetting.vue @@ -0,0 +1,55 @@ + + +
+ + + +
+ + + + diff --git a/core/core-frontend/src/layout/components/Header.vue b/core/core-frontend/src/layout/components/Header.vue index 95619db5d3..5746ad8fb4 100644 --- a/core/core-frontend/src/layout/components/Header.vue +++ b/core/core-frontend/src/layout/components/Header.vue @@ -23,6 +23,7 @@ import AiComponent from '@/layout/components/AiComponent.vue' import { findBaseParams } from '@/api/aiComponent' import AiTips from '@/layout/components/AiTips.vue' import CopilotCom from '@/layout/components/Copilot.vue' +import DesktopSetting from './DesktopSetting.vue' const appearanceStore = useAppearanceStoreWithOut() const { push } = useRouter() @@ -119,7 +120,7 @@ const copilotConfirm = () => { wsCache.set('DE-COPILOT-TIPS-CHECK', 'CHECKED') showOverlayCopilot.value = false } -const badgeCount = ref(0) +const badgeCount = ref('0') onMounted(() => { initShowSystem() @@ -128,7 +129,7 @@ onMounted(() => { initCopilotBase() msgCountApi().then(res => { - badgeCount.value = res?.data || 0 + badgeCount.value = (res?.data > 99 ? '99+' : res?.data) || '0' }) }) @@ -189,10 +190,14 @@ onMounted(() => { - + {
+
+ +
diff --git a/core/core-frontend/src/layout/components/TopDocCard.vue b/core/core-frontend/src/layout/components/TopDocCard.vue index 0e4797b747..41211ac028 100644 --- a/core/core-frontend/src/layout/components/TopDocCard.vue +++ b/core/core-frontend/src/layout/components/TopDocCard.vue @@ -27,33 +27,28 @@ const openBlank = () => { 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 2d94dbe92e..57cfeb0b4c 100644 --- a/core/core-frontend/src/views/chart/components/views/index.vue +++ b/core/core-frontend/src/views/chart/components/views/index.vue @@ -879,6 +879,9 @@ const toolTip = computed(() => { }) const marginBottom = computed(() => { + if (!titleShow.value) { + return 0 + } if (titleShow.value || trackMenu.value.length > 0 || state.title_remark.show) { return 12 * scale.value + 'px' } @@ -890,8 +893,22 @@ const iconSize = computed(() => { }) const titleIconStyle = computed(() => { + // 不显示标题时,图标的样式 + const style = { + position: 'absolute', + color: 'rgb(255, 252, 252)', + position: 'absolute', + border: '1px solid rgb(173, 170, 170)', + 'background-color': 'rgba(173, 170, 170)', + 'border-radius': '2px', + padding: '0 2px 0 2px', + top: '2px', + 'z-index': 1, + left: '6px' + } return { - color: canvasStyleData.value.component.seniorStyleSetting.linkageIconColor + color: canvasStyleData.value.component.seniorStyleSetting.linkageIconColor, + ...(titleShow.value ? {} : style) } }) const chartHover = ref(false) diff --git a/core/core-frontend/src/views/visualized/data/datasource/index.vue b/core/core-frontend/src/views/visualized/data/datasource/index.vue index 2a4935d5c2..f5300d5ff9 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/index.vue @@ -132,6 +132,7 @@ const createDataset = (tableName?: string) => { useEmitt().emitter.emit('changeCurrentComponent', 'DatasetEditor') return } + wsCache.set('ds-info-id', nodeInfo.id) router.push({ path: '/dataset-form', query: { @@ -989,7 +990,9 @@ const loadInit = () => { } onMounted(() => { - nodeInfo.id = (route.params.id as string) || (route.query.id as string) || '' + const dsId = wsCache.get('ds-info-id') || route.params.id + nodeInfo.id = (dsId as string) || (route.query.id as string) || '' + wsCache.delete('ds-info-id') loadInit() listDs() const { opt } = router.currentRoute.value.query diff --git a/de-xpack b/de-xpack index 0b3d7d7ed6..8ac18a900a 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 0b3d7d7ed645f0332d4d42f5ee29ba9454d9c3e2 +Subproject commit 8ac18a900ac4744d62ff3c7e4ee6ec3c8fb82933 diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java index f63adfb602..0f51b930ed 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/free/FreeApi.java @@ -1,5 +1,6 @@ package io.dataease.api.free; +import io.dataease.api.free.dto.FreeBatchDelRequest; import io.dataease.api.free.dto.FreeBatchSyncRequest; import io.dataease.api.free.dto.FreeQueryRequest; import io.dataease.api.free.dto.FreeSyncRequest; @@ -24,5 +25,5 @@ public interface FreeApi { void syncBatch(@RequestBody FreeBatchSyncRequest request); @PostMapping("/deleteBatch") - void deleteBatch(@RequestBody FreeBatchSyncRequest request); + void deleteBatch(@RequestBody FreeBatchDelRequest request); }