From 498278660112a52b7c6e608159d20920d6047e04 Mon Sep 17 00:00:00 2001 From: vben <anncwb@126.com> Date: 星期六, 28 十一月 2020 14:27:26 +0800 Subject: [PATCH] fix(form): fix updateSchema error #100 --- src/components/Form/src/FormAction.tsx | 111 +++++++++++++++++++++++++++---------------------------- 1 files changed, 54 insertions(+), 57 deletions(-) diff --git a/src/components/Form/src/FormAction.tsx b/src/components/Form/src/FormAction.tsx index 4bff21c..7c34d5d 100644 --- a/src/components/Form/src/FormAction.tsx +++ b/src/components/Form/src/FormAction.tsx @@ -7,28 +7,17 @@ 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<any>, default: {}, @@ -41,18 +30,9 @@ type: Object as PropType<any>, 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,18 +67,52 @@ emit('toggle-advanced'); } + function renderAdvanceButton() { + const { showAdvancedButton, hideAdvanceBtn, isAdvanced } = props; + + if (!showAdvancedButton || !!hideAdvanceBtn) { + return null; + } + return ( + <Button type="default" class="mr-2" onClick={toggleAdvanced}> + {() => ( + <> + {isAdvanced ? t('putAway') : t('unfold')} + <BasicArrow expand={!isAdvanced} top /> + </> + )} + </Button> + ); + } + + function renderResetButton() { + const { showResetButton } = props; + if (!showResetButton) { + return null; + } + return ( + <Button type="default" class="mr-2" {...unref(getResetBtnOptionsRef)}> + {() => unref(getResetBtnOptionsRef).text} + </Button> + ); + } + + function renderSubmitButton() { + const { showSubmitButton } = props; + if (!showSubmitButton) { + return null; + } + return ( + <Button type="primary" {...unref(getSubmitBtnOptionsRef)}> + {() => unref(getSubmitBtnOptionsRef).text} + </Button> + ); + } + return () => { if (!props.show) { - return; + return null; } - - const { - showAdvancedButton, - hideAdvanceBtn, - isAdvanced, - showResetButton, - showSubmitButton, - } = props; return ( <Col {...unref(actionColOpt)} style={{ textAlign: 'right' }}> @@ -107,30 +121,13 @@ {() => ( <> {getSlot(slots, 'advanceBefore')} - {showAdvancedButton && !hideAdvanceBtn && ( - <Button type="default" class="mr-2" onClick={toggleAdvanced}> - {() => ( - <> - {isAdvanced ? t('putAway') : t('unfold')} - <BasicArrow expand={!isAdvanced} top /> - </> - )} - </Button> - )} + {renderAdvanceButton()} {getSlot(slots, 'resetBefore')} - {showResetButton && ( - <Button type="default" class="mr-2" {...unref(getResetBtnOptionsRef)}> - {() => unref(getResetBtnOptionsRef).text} - </Button> - )} + {renderResetButton()} {getSlot(slots, 'submitBefore')} - {showSubmitButton && ( - <Button type="primary" {...unref(getSubmitBtnOptionsRef)}> - {() => unref(getSubmitBtnOptionsRef).text} - </Button> - )} + {renderSubmitButton()} {getSlot(slots, 'submitAfter')} </> -- Gitblit v1.8.0