diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts index 191b515307ab4b328431b2e4eeec18df701066e1..1dc4f2b5a3423e290b0a2af9b7d58e3081d24fb3 100644 --- a/src/components/Form/index.ts +++ b/src/components/Form/index.ts @@ -1,7 +1,10 @@ -export { default as BasicForm } from './src/BasicForm.vue'; +import BasicFormLib from './src/BasicForm.vue'; +import { withInstall } from '../util'; export * from './src/types/form'; export * from './src/types/formItem'; export { useComponentRegister } from './src/hooks/useComponentRegister'; export { useForm } from './src/hooks/useForm'; + +export const BasicForm = withInstall(BasicFormLib); diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index 5987f9df09fd33cb5f218abd254650896950bff5..653a960767f2aafe557b84fa05c2272651e60852 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -16,6 +16,7 @@ + >, - fieldMapToTimeRef: toRef(props, 'fieldMapToTime'), + transformDateFuncRef: transformDateFunc as Ref>, + fieldMapToTimeRef: fieldMapToTime, defaultValueRef, getSchema, formModel, diff --git a/src/components/Form/src/FormAction.tsx b/src/components/Form/src/FormAction.tsx index 4bff21c09941bb1f1ac207f2cf417ef3e4a08933..7c34d5de7f4eac2593dc6c8f6596705d19738672 100644 --- a/src/components/Form/src/FormAction.tsx +++ b/src/components/Form/src/FormAction.tsx @@ -7,28 +7,17 @@ import { BasicArrow } from '/@/components/Basic/index'; import { getSlot } from '/@/utils/helper/tsxHelper'; import { useI18n } from '/@/hooks/web/useI18n'; +import { propTypes } from '/@/utils/propTypes'; const { t } = useI18n('component.form'); export default defineComponent({ name: 'BasicFormAction', props: { - show: { - type: Boolean, - default: true, - }, - showResetButton: { - type: Boolean, - default: true, - }, - showSubmitButton: { - type: Boolean, - default: true, - }, - showAdvancedButton: { - type: Boolean, - default: true, - }, + show: propTypes.bool.def(true), + showResetButton: propTypes.bool.def(true), + showSubmitButton: propTypes.bool.def(true), + showAdvancedButton: propTypes.bool.def(true), resetButtonOptions: { type: Object as PropType, default: {}, @@ -41,18 +30,9 @@ export default defineComponent({ type: Object as PropType, default: {}, }, - actionSpan: { - type: Number, - default: 6, - }, - isAdvanced: { - type: Boolean, - default: false, - }, - hideAdvanceBtn: { - type: Boolean, - default: false, - }, + actionSpan: propTypes.number.def(6), + isAdvanced: propTypes.bool, + hideAdvanceBtn: propTypes.bool, }, emits: ['toggle-advanced'], setup(props, { slots, emit }) { @@ -87,19 +67,53 @@ export default defineComponent({ emit('toggle-advanced'); } + function renderAdvanceButton() { + const { showAdvancedButton, hideAdvanceBtn, isAdvanced } = props; + + if (!showAdvancedButton || !!hideAdvanceBtn) { + return null; + } + return ( + + ); + } + + function renderResetButton() { + const { showResetButton } = props; + if (!showResetButton) { + return null; + } + return ( + + ); + } + + function renderSubmitButton() { + const { showSubmitButton } = props; + if (!showSubmitButton) { + return null; + } + return ( + + ); + } + return () => { if (!props.show) { - return; + return null; } - const { - showAdvancedButton, - hideAdvanceBtn, - isAdvanced, - showResetButton, - showSubmitButton, - } = props; - return ( {() => ( @@ -107,30 +121,13 @@ export default defineComponent({ {() => ( <> {getSlot(slots, 'advanceBefore')} - {showAdvancedButton && !hideAdvanceBtn && ( - - )} + {renderAdvanceButton()} {getSlot(slots, 'resetBefore')} - {showResetButton && ( - - )} + {renderResetButton()} {getSlot(slots, 'submitBefore')} - {showSubmitButton && ( - - )} + {renderSubmitButton()} {getSlot(slots, 'submitAfter')} diff --git a/src/components/Form/src/props.ts b/src/components/Form/src/props.ts index 2306f166ee1dd41d4833d63bc9e7d0f1f57f3f3f..2b55070eed04acaacef7554d7140382d936a6637 100644 --- a/src/components/Form/src/props.ts +++ b/src/components/Form/src/props.ts @@ -5,7 +5,7 @@ import { TableActionType } from '/@/components/Table'; export const basicProps = { model: { - type: Object as PropType, + type: Object as PropType>, default: {}, }, // 标签宽度 固定宽度 diff --git a/src/router/menus/index.ts b/src/router/menus/index.ts index 4f3fd19c20d5a8b380bdc8031e8ef9917d6aa277..f81de94eb43b4cb31e25087ec754865196d12507 100644 --- a/src/router/menus/index.ts +++ b/src/router/menus/index.ts @@ -13,7 +13,9 @@ import modules from 'globby!/@/router/menus/modules/**/*.@(ts)'; const menuModules: MenuModule[] = []; Object.keys(modules).forEach((key) => { - menuModules.push(modules[key]); + const moduleItem = modules[key]; + const menuModule = Array.isArray(moduleItem) ? [...moduleItem] : [moduleItem]; + menuModules.push(...menuModule); }); // =========================== @@ -25,6 +27,7 @@ const staticMenus: Menu[] = []; menuModules.sort((a, b) => { return (a.orderNo || 0) - (b.orderNo || 0); }); + for (const menu of menuModules) { staticMenus.push(transformMenuModule(menu)); } diff --git a/src/router/menus/modules/dashboard.ts b/src/router/menus/modules/dashboard.ts index 8171a965d390074a30669592fbac9a2b8ea45b6b..466d76a879cab4e7dca40fa1898184bfbede02db 100644 --- a/src/router/menus/modules/dashboard.ts +++ b/src/router/menus/modules/dashboard.ts @@ -1,24 +1,33 @@ import type { MenuModule } from '/@/router/types.d'; -const menu: MenuModule = { - orderNo: 10, - menu: { - name: 'routes.dashboard.dashboard', - path: '/dashboard', - children: [ - { - path: '/workbench', - name: 'routes.dashboard.workbench', - }, - { - path: '/analysis', - name: 'routes.dashboard.analysis', - }, - { - path: '/welcome', - name: 'routes.dashboard.welcome', - }, - ], +const menu: MenuModule[] = [ + { + orderNo: 0, + menu: { + path: '/dashboard/welcome', + name: 'routes.dashboard.welcome', + }, }, -}; + { + orderNo: 10, + menu: { + name: 'routes.dashboard.dashboard', + path: '/dashboard', + children: [ + { + path: '/workbench', + name: 'routes.dashboard.workbench', + }, + { + path: '/analysis', + name: 'routes.dashboard.analysis', + }, + // { + // path: '/welcome', + // name: 'routes.dashboard.welcome', + // }, + ], + }, + }, +]; export default menu; diff --git a/src/router/routes/modules/dashboard.ts b/src/router/routes/modules/dashboard.ts index d00ac4bd6537005f75b50148b62c53557137bf1a..ba647f32919fd02489c8397ac3281e799e8a0abb 100644 --- a/src/router/routes/modules/dashboard.ts +++ b/src/router/routes/modules/dashboard.ts @@ -7,7 +7,7 @@ const dashboard: AppRouteModule = { path: '/dashboard', name: 'Dashboard', component: PAGE_LAYOUT_COMPONENT, - redirect: '/dashboard/workbench', + redirect: '/dashboard/welcome', meta: { icon: 'ant-design:home-outlined', title: 'routes.dashboard.dashboard', @@ -21,6 +21,8 @@ const dashboard: AppRouteModule = { component: () => import('/@/views/dashboard/welcome/index.vue'), meta: { title: 'routes.dashboard.welcome', + affix: true, + icon: 'ant-design:home-outlined', }, }, { @@ -29,7 +31,6 @@ const dashboard: AppRouteModule = { component: () => import('/@/views/dashboard/workbench/index.vue'), meta: { title: 'routes.dashboard.workbench', - affix: true, }, }, { diff --git a/src/utils/index.ts b/src/utils/index.ts index f93595973ee7b126230cf08633d82925424d8d98..d37797ed6a218be010cc00a3eaf1ab457a407616 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,5 @@ export const timestamp = () => +Date.now(); +import { isObject } from '/@/utils/is'; export const clamp = (n: number, min: number, max: number) => Math.min(max, Math.max(min, n)); export const noop = () => {}; export const now = () => Date.now(); @@ -40,10 +41,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string { export function deepMerge(src: any, target: any): T { let key: string; for (key in target) { - src[key] = - src[key] && src[key].toString() === '[object Object]' - ? deepMerge(src[key], target[key]) - : (src[key] = target[key]); + src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]); } return src; } diff --git a/vite.config.ts b/vite.config.ts index 4ce31d4ef2b42d747c5e4cc39a253b6487927ef1..e81d5126ae6c6757135c12d21b5325b254011fcf 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -89,7 +89,7 @@ const viteConfig: UserConfig = { * Transpile target for esbuild. * @default 'es2020' */ - esbuildTarget: 'es2020', + esbuildTarget: 'es2019', /** * Whether to log asset info to console * @default false