diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index 53680a13d3..e8d6fd8b8f 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -1741,8 +1741,7 @@ Scatter chart (bubble) chart: {a} (series name), {b} (data name), {c} (value arr p_bottom: 'Bottom alignment', p_center: 'Center', table_auto_break_line: 'Automatic line break', - table_break_line_tip: - 'Turn on automatic line break, the table header row height setting will be invalid', + table_break_line_tip: 'After merging cells, automatic line wrapping is not supported', table_break_line_max_lines: 'Maximum number of lines', step: 'Step length (px)', no_function: @@ -1853,7 +1852,10 @@ Scatter chart (bubble) chart: {a} (series name), {b} (data name), {c} (value arr length_limit: 'length limit', radar_point: 'enable auxiliary points', radar_point_size: 'size', - radar_area_color: 'enable area ' + radar_area_color: 'enable area', + table_freeze_tip: 'after merging cells, column and row freezing is not supported', + merge_cells_tips: + 'after merging cells, freezing rows and columns and automatic line wrapping will become invalid' }, dataset: { scope_edit: 'only effective when editing', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index 0fd1480148..2330d7fa91 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -1705,7 +1705,7 @@ export default { p_bottom: '下對齊', p_center: '居中', table_auto_break_line: '自動換行', - table_break_line_tip: '開啟自動換行,表頭行高設定將失效', + table_break_line_tip: '合併儲存格後,不支持自動換行', table_break_line_max_lines: '最大行數', step: '步長(px)', no_function: '函數尚未支援直接引用,請在欄位表達式中手動輸入。 ', @@ -1813,7 +1813,9 @@ export default { length_limit: '長度限制', radar_point: '開啟輔助點', radar_point_size: '輔助點大小', - radar_area_color: '開啟面積' + radar_area_color: '開啟面積', + table_freeze_tip: '合併儲存格後,不支持行列凍結', + merge_cells_tips: '合併儲存格後,行列凍結、自動換行會失效' }, dataset: { scope_edit: '僅編輯時生效', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index c393e5c642..dba13c9ef7 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1708,7 +1708,7 @@ export default { p_bottom: '下对齐', p_center: '居中', table_auto_break_line: '自动换行', - table_break_line_tip: '开启自动换行,表头行高设置将失效', + table_break_line_tip: '合并单元格后,不支持自动换行', table_break_line_max_lines: '最大行数', step: '步长(px)', no_function: '函数尚未支持直接引用,请在字段表达式中手动输入。', @@ -1816,7 +1816,9 @@ export default { length_limit: '长度限制', radar_point: '开启辅助点', radar_point_size: '辅助点大小', - radar_area_color: '开启面积' + radar_area_color: '开启面积', + table_freeze_tip: '合并单元格后,不支持行列冻结', + merge_cells_tips: '合并单元格后,行列冻结、自动换行会失效' }, dataset: { scope_edit: '仅编辑时生效', diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue index 458e5e2a37..1fbed8cf55 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue @@ -320,6 +320,17 @@ const mapCustomRangeValidate = prop => { } changeBasicStyle(prop) } +/** + * 表格是否合并单元格 + */ +const mergeCell = computed(() => { + if (COLUMN_WIDTH_TYPE.includes(props.chart.type)) { + let { customAttr } = JSON.parse(JSON.stringify(props.chart)) + const { tableCell } = customAttr + return tableCell.mergeCells + } + return false +}) onMounted(() => { init() }) @@ -1057,12 +1068,13 @@ onMounted(() => { {{ t('chart.table_auto_break_line') }} - + @@ -1086,6 +1098,7 @@ onMounted(() => { :show-input-controls="false" :min="1" :step="1" + :disabled="mergeCell" @change="changeBasicStyle('maxLines')" /> @@ -1278,7 +1291,11 @@ onMounted(() => { {{ t('chart.circle') }} - + { class="form-item margin-bottom-8" :class="'form-item-' + themes" :label="t('chart.radar_point_size')" + v-if="showProperty('radarPointSize')" > { @change="changeBasicStyle('radarPointSize')" /> - + { v-model="state.tableCellForm.tableFreeze" @change="changeTableCell('tableFreeze')" > - {{ t('chart.table_freeze') }} + + {{ t('chart.table_freeze') }} + + + + + + + @@ -394,7 +409,7 @@ onMounted(() => { {{ t('chart.merge_cells') }} diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/others/radar.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/others/radar.ts index 11ff6b3963..4469a17737 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/others/radar.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/others/radar.ts @@ -1,7 +1,7 @@ import type { RadarOptions, Radar as G2Radar } from '@antv/g2plot/esm/plots/radar' import { G2PlotChartView, G2PlotDrawOptions } from '../../types/impl/g2plot' import { flow, parseJson } from '../../../util' -import { configPlotTooltipEvent, getPadding } from '../../common/common_antv' +import { configPlotTooltipEvent } from '../../common/common_antv' import { valueFormatter } from '../../../formatter' import type { Datum } from '@antv/g2plot/esm/types/common' import { useI18n } from '@/hooks/web/useI18n' @@ -25,7 +25,15 @@ export class Radar extends G2PlotChartView { 'linkage' ] propertyInner: EditorPropertyInner = { - 'basic-style-selector': ['colors', 'alpha', 'radarShape', 'seriesColor'], + 'basic-style-selector': [ + 'colors', + 'alpha', + 'radarShape', + 'seriesColor', + 'radarShowPoint', + 'radarPointSize', + 'radarAreaColor' + ], 'label-selector': ['seriesLabelFormatter'], 'tooltip-selector': ['color', 'fontSize', 'backgroundColor', 'seriesTooltipFormatter', 'show'], 'misc-style-selector': ['showName', 'color', 'fontSize', 'axisColor', 'axisValue'], diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-info.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-info.ts index 3cbdf3d688..883bf18b59 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-info.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/table/table-info.ts @@ -181,7 +181,7 @@ export class TableInfo extends S2ChartView { return p }, {}) } - if (tableCell.tableFreeze) { + if (tableCell.tableFreeze && !tableCell.mergeCells) { s2Options.frozenColCount = tableCell.tableColumnFreezeHead ?? 0 s2Options.frozenRowCount = tableCell.tableRowFreezeHead ?? 0 } @@ -212,7 +212,7 @@ export class TableInfo extends S2ChartView { } } // 配置文本自动换行参数 - viewMeta.autoWrap = basicStyle.autoWrap + viewMeta.autoWrap = tableCell.mergeCells ? false : basicStyle.autoWrap viewMeta.maxLines = basicStyle.maxLines return new CustomDataCell(viewMeta, viewMeta?.spreadsheet) } @@ -239,7 +239,7 @@ export class TableInfo extends S2ChartView { this.configHeaderInteraction(chart, s2Options) s2Options.colCell = (node, sheet, config) => { // 配置文本自动换行参数 - node.autoWrap = basicStyle.autoWrap + node.autoWrap = tableCell.mergeCells ? false : basicStyle.autoWrap node.maxLines = basicStyle.maxLines return new CustomTableColCell(node, sheet, config) } @@ -251,7 +251,7 @@ export class TableInfo extends S2ChartView { // 总计紧贴在单元格后面 summaryRowStyle(newChart, newData, tableCell, tableHeader, basicStyle.showSummary) // 开启自动换行 - if (basicStyle.autoWrap) { + if (basicStyle.autoWrap && !tableCell.mergeCells) { // 调整表头宽度时,计算表头高度 newChart.on(S2Event.LAYOUT_RESIZE_COL_WIDTH, info => { calculateHeaderHeight(info, newChart, tableHeader, basicStyle, null) diff --git a/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts b/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts index 6212518c4e..53fe64c276 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts @@ -176,6 +176,10 @@ export function getLabel(chart: Chart) { ) { layout.push({ type: 'limit-in-canvas' }) layout.push({ type: 'hide-overlap' }) + } else if (chart.type.includes('chart-mix')) { + layout.push({ type: 'limit-in-canvas' }) + layout.push({ type: 'limit-in-plot' }) + layout.push({ type: 'hide-overlap' }) } else { layout.push({ type: 'limit-in-plot' }) layout.push({ type: 'fixed-overlap' }) @@ -556,7 +560,8 @@ export function getYAxis(chart: Chart) { grid, label, line, - tickLine + tickLine, + nice: true } return axis } @@ -649,7 +654,8 @@ export function getYAxisExt(chart: Chart) { grid, label, line, - tickLine + tickLine, + nice: true } return axis } diff --git a/de-xpack b/de-xpack index b70bf4750e..56730c17d9 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit b70bf4750e2ab8bc3f0a88438de61e8523e04f3f +Subproject commit 56730c17d951f4f74d752ef56e064abc9d5e73aa diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/api/InteractiveAuthApi.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/api/InteractiveAuthApi.java index df7d5bdf0b..bfc9779587 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/api/InteractiveAuthApi.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/api/InteractiveAuthApi.java @@ -3,10 +3,7 @@ package io.dataease.api.permissions.auth.api; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; -import io.dataease.api.permissions.auth.dto.BusiPerCheckDTO; -import io.dataease.api.permissions.auth.dto.BusiResourceCreator; -import io.dataease.api.permissions.auth.dto.BusiResourceEditor; -import io.dataease.api.permissions.auth.dto.BusiResourceMover; +import io.dataease.api.permissions.auth.dto.*; import io.dataease.api.permissions.auth.vo.PermissionValVO; import io.dataease.api.permissions.auth.vo.ResourceNodeVO; import io.dataease.model.BusiNodeRequest; @@ -89,4 +86,7 @@ public interface InteractiveAuthApi { String OrgNameForResource(ExportTaskDTO exportTaskDTO); void editResourceExtraFlag(BusiResourceEditor editor); + + @PostMapping("/batchAuthorize") + void batchAuthorize(@RequestBody BusiBatchAuthorizeRequest request); } diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeNode.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeNode.java new file mode 100644 index 0000000000..68afdbc01c --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeNode.java @@ -0,0 +1,17 @@ +package io.dataease.api.permissions.auth.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@Data +public class BusiBatchAuthorizeNode implements Serializable { + + @Serial + private static final long serialVersionUID = 5804450226135199435L; + private List idList; + + private int flag; +} diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeRequest.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeRequest.java new file mode 100644 index 0000000000..070a0da334 --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiBatchAuthorizeRequest.java @@ -0,0 +1,17 @@ +package io.dataease.api.permissions.auth.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@Data +public class BusiBatchAuthorizeRequest implements Serializable { + @Serial + private static final long serialVersionUID = -5219199153835271350L; + + private List nodeList; + + private Long oid; +}