Skip to content

Commit 71c6804

Browse files
committed
fix: fix bug
1 parent 661410e commit 71c6804

4 files changed

Lines changed: 24 additions & 8 deletions

File tree

src/frontend/platform/src/pages/Dashboard/components/config/ComponentConfigDrawer.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ export function ComponentConfigDrawer() {
132132
displayName: field.displayName || field.fieldName,
133133
originalName: field.displayName || field.fieldName,
134134
fieldType: field.role,
135+
timeGranularity: field.timeGranularity,
135136
sort: null
136137
}
137138
chartState.setCategoryDimensions(prev => [...prev, newDimension])
@@ -151,6 +152,7 @@ export function ComponentConfigDrawer() {
151152
displayName: field.displayName || field.fieldName,
152153
originalName: field.displayName || field.fieldName,
153154
fieldType: field.role,
155+
timeGranularity: field.timeGranularity,
154156
sort: null
155157
}
156158
chartState.setStackDimensions(prev => [...prev, newDimension])
@@ -192,7 +194,7 @@ export function ComponentConfigDrawer() {
192194
return
193195
}
194196

195-
// 🚫 多个虚拟指标
197+
// 多个虚拟指标
196198
if (currentIsVirtual && hasVirtualMetric) {
197199
toast({
198200
description: t("componentConfigDrawer.toast.multipleVirtualMetric"),

src/frontend/platform/src/pages/Dashboard/components/config/DatasetSelector.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface DatasetField {
1616
role: "dimension" | "metric"
1717
enumValues?: string[]
1818
isVirtual?: boolean
19+
timeGranularity?: string
1920
}
2021

2122
interface DatasetSelectorProps {
@@ -83,16 +84,17 @@ export function DatasetSelector({ selectedDatasetCode, onDatasetChange, onDragSt
8384

8485
// 处理拖拽开始
8586
const handleDragStart = (e: React.DragEvent, data: any, fieldType: 'dimension' | 'metric') => {
86-
8787
e.dataTransfer.effectAllowed = 'copy'
8888
const dragData = {
8989
id: data.fieldCode,
9090
name: data.displayName,
9191
displayName: data.displayName,
9292
fieldId: data.fieldId,
9393
fieldCode: data.fieldCode,
94-
fieldType
94+
fieldType,
95+
timeGranularity: data.timeGranularity,
9596
}
97+
9698
e.dataTransfer.setData('application/json', JSON.stringify(dragData))
9799
if (onDragStart) {
98100
onDragStart(e, dragData)
@@ -208,6 +210,7 @@ export function DatasetSelector({ selectedDatasetCode, onDatasetChange, onDragSt
208210
displayName,
209211
fieldType: "date",
210212
role: "dimension",
213+
timeGranularity: g,
211214
}
212215
return (
213216
<div

src/frontend/platform/src/pages/Dashboard/components/config/useChartState.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ export function useChartState(initialComponent: any) {
7373
name: dim.fieldCode,
7474
displayName: dim.displayName || dim.fieldName,
7575
originalName: dim.fieldName,
76-
sort: dim.sort || 'none',
76+
sort: dim.sort || null,
77+
timeGranularity: dim.timeGranularity || null,
7778
sortPriority: 0,
7879
fieldType: 'dimension'
7980
}))
@@ -90,6 +91,7 @@ export function useChartState(initialComponent: any) {
9091
displayName: dc.stackDimension.displayName || dc.stackDimension.fieldName,
9192
originalName: dc.stackDimension.fieldName,
9293
sort: dc.stackDimension.sort || null,
94+
timeGranularity: dc.timeGranularity || null,
9395
sortPriority: 0,
9496
fieldType: 'dimension'
9597
}
@@ -298,6 +300,7 @@ export function useChartState(initialComponent: any) {
298300
originalName,
299301
sort: null,
300302
sortPriority: 0,
303+
timeGranularity: data.timeGranularity,
301304
fieldType
302305
}
303306

@@ -388,7 +391,7 @@ export function useChartState(initialComponent: any) {
388391
fieldCode: dim.name,
389392
displayName: dim.displayName,
390393
sort: dim.sort,
391-
timeGranularity: null
394+
timeGranularity: dim.timeGranularity || null
392395
}))
393396

394397
const stackDimension = stackDimensions.length > 0 ? {
@@ -397,7 +400,7 @@ export function useChartState(initialComponent: any) {
397400
fieldCode: stackDimensions[0].name,
398401
displayName: stackDimensions[0].displayName,
399402
sort: stackDimensions[0].sort,
400-
timeGranularity: null
403+
timeGranularity: stackDimensions[0].timeGranularity || null
401404
} : undefined
402405

403406
const metrics = valueDimensions.map(metric => ({

src/frontend/platform/src/pages/SystemPage/components/EditRole.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,19 +484,27 @@ export default function EditRole({ id, name, groupId, onChange, onBeforeChange }
484484
};
485485

486486
const handleSave = async () => {
487+
487488
const sanitizeIds = (arr: any[]) => (arr || []).filter(Boolean);
488489
if (!form.name.length || form.name.length > 50) {
489490
return setErrorData({ title: t('prompt'), list: [t('system.roleNameRequired'), t('system.roleNamePrompt')] });
490491
}
491492
if (onBeforeChange(form.name)) {
492493
return setErrorData({ title: t('prompt'), list: [t('system.roleNameExists')] });
493494
}
494-
495+
const menuSet = new Set(form.useMenu);
495496
// 检查是否至少有一个空间权限被选中
496497
if (!spacePermissions.workspace && !spacePermissions.admin) {
497498
return setErrorData({ title: t('prompt'), list: [t('system.atLeastOneSpaceRequired')] });
498499
}
500+
if (spacePermissions.workspace) menuSet.add(MenuType.FRONTEND);
501+
else menuSet.delete(MenuType.FRONTEND);
502+
503+
if (spacePermissions.admin) menuSet.add(MenuType.BACKEND);
504+
else menuSet.delete(MenuType.BACKEND);
499505

506+
if (form.allowCreateBoard) menuSet.add(MenuType.CREATE_DASHBOARD);
507+
else menuSet.delete(MenuType.CREATE_DASHBOARD);
500508
let roleIdLocal = id;
501509
if (id === -1) {
502510
const res = await captureAndAlertRequestErrorHoc(createRole(groupId, form.name));
@@ -505,7 +513,7 @@ export default function EditRole({ id, name, groupId, onChange, onBeforeChange }
505513
await captureAndAlertRequestErrorHoc(updateRoleNameApi(roleIdLocal, form.name));
506514
}
507515

508-
const menuPermissionsToSave = form.useMenu;
516+
const menuPermissionsToSave = Array.from(menuSet);
509517

510518
await Promise.all([
511519
updateRolePermissionsApi({ role_id: roleIdLocal, access_id: form.useSkills as any, type: 2 as any }),

0 commit comments

Comments
 (0)