diff --git a/packages/core/client/src/schema-component/antd/date-picker/DatePicker.tsx b/packages/core/client/src/schema-component/antd/date-picker/DatePicker.tsx
index 56e4831ccb5..7ea01345221 100644
--- a/packages/core/client/src/schema-component/antd/date-picker/DatePicker.tsx
+++ b/packages/core/client/src/schema-component/antd/date-picker/DatePicker.tsx
@@ -258,6 +258,15 @@ DatePicker.RangePicker = function RangePicker(props: any) {
return ;
};
+function toLocalNaiveISOString(dateString: string, format): string {
+ if (dateString && dateString.endsWith('Z')) {
+ const date = dayjs(dateString);
+ return date.format(format);
+ }
+ return dateString;
+}
+
+//筛选区块的日期字段总是输出无时区
DatePicker.FilterWithPicker = function FilterWithPicker(props: any) {
const { picker = 'date', format, showTime, timeFormat } = props;
const isMobileMedia = isMobile();
@@ -332,7 +341,10 @@ DatePicker.FilterWithPicker = function FilterWithPicker(props: any) {
field.value = null;
}}
/>
-
+
);
};
diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/filter.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/filter.ts
index 9bcfb4c46d1..6dd0772f4fa 100644
--- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/filter.ts
+++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/filter.ts
@@ -67,7 +67,7 @@ export const useChartData = () => {
const chartCollections: {
[dataSource: string]: string[];
} = useMemo(() => {
- return Object.values(charts)
+ return Object.values(charts || {})
.filter((chart) => chart)
.reduce((mp, chart) => {
const { dataSource, collection } = chart;
diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/useVariableOptions.ts b/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/useVariableOptions.ts
index fd487fc1a8b..1530a9b0a92 100644
--- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/useVariableOptions.ts
+++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/hooks/useVariableOptions.ts
@@ -15,6 +15,7 @@ import {
useDatetimeVariable,
usePopupVariable,
useURLSearchParamsVariable,
+ useExactDateVariable,
} from '@nocobase/client';
import { useMemo } from 'react';
import { useFilterVariable } from './filter';
@@ -36,6 +37,11 @@ export const useGeneralVariableOptions = (
const { settings: popupRecordSettings, shouldDisplayPopupRecord } = usePopupVariable({
schema,
});
+ const { exactDateTimeSettings, shouldDisplayExactDate } = useExactDateVariable({
+ operator,
+ schema,
+ noDisabled: true,
+ });
const result = useMemo(
() =>
@@ -46,6 +52,7 @@ export const useGeneralVariableOptions = (
datetimeSettings,
urlSearchParamsSettings,
shouldDisplayPopupRecord && popupRecordSettings,
+ shouldDisplayExactDate && exactDateTimeSettings,
].filter(Boolean),
[
datetimeSettings,
@@ -55,6 +62,8 @@ export const useGeneralVariableOptions = (
apiTokenSettings,
shouldDisplayPopupRecord,
popupRecordSettings,
+ shouldDisplayExactDate,
+ exactDateTimeSettings,
],
);
diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/settings/chartFilterItem.tsx b/packages/plugins/@nocobase/plugin-data-visualization/src/client/settings/chartFilterItem.tsx
index 5c0607042e5..c60bd868481 100644
--- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/settings/chartFilterItem.tsx
+++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/settings/chartFilterItem.tsx
@@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
-import React, { useContext } from 'react';
+import React, { useContext, useMemo } from 'react';
import {
EditDescription,
GeneralSchemaDesigner,
@@ -31,6 +31,8 @@ import {
SchemaSettings,
useApp,
useIsFileField,
+ FlagProvider,
+ SchemaComponentContext,
} from '@nocobase/client';
import { useChartsTranslation } from '../locale';
import { Schema, useField, useFieldSchema, ISchema } from '@formily/react';
@@ -256,6 +258,13 @@ const EditDefaultValue = () => {
const fieldSchema = useFieldSchema();
const { getTranslatedTitle } = useChartFilter();
const title = getTranslatedTitle(fieldSchema.title);
+ const { getField } = useCollection_deprecated();
+ const { getCollectionJoinField, getCollectionFields, getAllCollectionsInheritChain } =
+ useCollectionManager_deprecated();
+ const collectionField = useMemo(
+ () => getField(fieldSchema['name']) || getCollectionJoinField(fieldSchema['x-collection-field']),
+ [fieldSchema, getCollectionJoinField, getField],
+ );
return (
{
dn.refresh();
setDefaultValue(field, variables, localVariables);
}}
+ ModalContextProvider={(props: any) => {
+ return (
+
+ {props.children}
+
+ );
+ }}
/>
);
};