fix: use desktop components for select in mobile configuration mode & fix error when using variables as default values in datePicker (#5662)

* refactor: use desktop components for select in mobile configuration mode

* fix: bug
This commit is contained in:
Katherine 2024-11-16 21:38:53 +08:00 committed by GitHub
parent 41c4919776
commit 6f170df2f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 6 deletions

View File

@ -69,9 +69,12 @@ export const toLocal = (value: dayjs.Dayjs) => {
}; };
const convertQuarterToFirstDay = (quarterStr) => { const convertQuarterToFirstDay = (quarterStr) => {
const year = parseInt(quarterStr.slice(0, 4)); // 提取年份 if (dayjs(quarterStr).isValid()) {
const quarter = parseInt(quarterStr.slice(-1)); // 提取季度数字 const year = parseInt(quarterStr.slice(0, 4)); // 提取年份
return dayjs().quarter(quarter).year(year); const quarter = parseInt(quarterStr.slice(-1)); // 提取季度数字
return dayjs().quarter(quarter).year(year);
}
return null;
}; };
const toMoment = (val: any, options?: Str2momentOptions) => { const toMoment = (val: any, options?: Str2momentOptions) => {

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { RemoteSchemaComponent, AssociationField } from '@nocobase/client'; import { RemoteSchemaComponent, AssociationField, useDesignable, Select, DatePicker } from '@nocobase/client';
import React, { useCallback } from 'react'; import React, { useCallback } from 'react';
import { Outlet, useParams } from 'react-router-dom'; import { Outlet, useParams } from 'react-router-dom';
import { Button as MobileButton, Dialog as MobileDialog } from 'antd-mobile'; import { Button as MobileButton, Dialog as MobileDialog } from 'antd-mobile';
@ -16,8 +16,22 @@ import { MobileDateTimePicker } from './components/MobileDatePicker';
const mobileComponents = { const mobileComponents = {
Button: MobileButton, Button: MobileButton,
Select: MobilePicker, Select: (props) => {
DatePicker: MobileDateTimePicker, const { designable } = useDesignable();
if (designable !== false) {
return <Select {...props} />;
} else {
return <MobilePicker {...props} />;
}
},
DatePicker: (props) => {
const { designable } = useDesignable();
if (designable !== false) {
return <DatePicker {...props} />;
} else {
return <MobileDateTimePicker {...props} />;
}
},
UnixTimestamp: MobileDateTimePicker, UnixTimestamp: MobileDateTimePicker,
Modal: MobileDialog, Modal: MobileDialog,
AssociationField: (props) => { AssociationField: (props) => {