Commit 3f18261b authored by Sendya's avatar Sendya

fix: FooterToolbar

parent e76e047c
...@@ -88,6 +88,9 @@ ...@@ -88,6 +88,9 @@
<router-view /> <router-view />
<!-- content end --> <!-- content end -->
<FooterToolbar> <FooterToolbar>
<template #extra>
<span>FooterToolbar</span>
</template>
<a-space> <a-space>
<span :disabled="state.layout !== 'mix'"> <span :disabled="state.layout !== 'mix'">
<span style="margin-right: 8px">SplitMenus:</span> <span style="margin-right: 8px">SplitMenus:</span>
......
{ {
"name": "@ant-design-vue/pro-layout", "name": "@ant-design-vue/pro-layout",
"version": "3.1.0-beta.3", "version": "3.1.0-beta.4",
"license": "MIT", "license": "MIT",
"files": [ "files": [
"dist", "dist",
......
...@@ -2,7 +2,7 @@ import './index.less'; ...@@ -2,7 +2,7 @@ import './index.less';
import { computed, defineComponent, onBeforeUnmount, onMounted, PropType } from 'vue'; import { computed, defineComponent, onBeforeUnmount, onMounted, PropType } from 'vue';
import { RouteContextProps, useRouteContext } from '../RouteContext'; import { RouteContextProps, useRouteContext } from '../RouteContext';
import { getMenuFirstChildren } from '../utils'; import { getMenuFirstChildren, getPropsSlot, getPropsSlotfn } from '../utils';
import type { CustomRender } from '../typings'; import type { CustomRender } from '../typings';
export interface FooterToolbarProps { export interface FooterToolbarProps {
extra?: CustomRender | JSX.Element; extra?: CustomRender | JSX.Element;
...@@ -30,8 +30,7 @@ const footerToolbarProps = { ...@@ -30,8 +30,7 @@ const footerToolbarProps = {
const FooterToolbar = defineComponent({ const FooterToolbar = defineComponent({
name: 'FooterToolbar', name: 'FooterToolbar',
props: footerToolbarProps, props: footerToolbarProps,
setup(props, ctx) { setup(props, { slots }) {
const { slots } = ctx;
const routeContext = useRouteContext(); const routeContext = useRouteContext();
const { getPrefixCls } = routeContext; const { getPrefixCls } = routeContext;
const baseClassName = props.prefixCls || getPrefixCls('footer-bar'); const baseClassName = props.prefixCls || getPrefixCls('footer-bar');
...@@ -63,14 +62,6 @@ const FooterToolbar = defineComponent({ ...@@ -63,14 +62,6 @@ const FooterToolbar = defineComponent({
return isMobile ? '100%' : `calc(100% - ${sideWidth}px)`; return isMobile ? '100%' : `calc(100% - ${sideWidth}px)`;
}); });
const dom = () => {
return (
<>
<div class={`${baseClassName}-left`}>{props.extra}</div>
<div class={`${baseClassName}-right`}>{slots.default?.()}</div>
</>
);
};
onMounted(() => { onMounted(() => {
routeContext.setHasFooterToolbar && routeContext.setHasFooterToolbar(true); routeContext.setHasFooterToolbar && routeContext.setHasFooterToolbar(true);
}); });
...@@ -78,20 +69,33 @@ const FooterToolbar = defineComponent({ ...@@ -78,20 +69,33 @@ const FooterToolbar = defineComponent({
routeContext.setHasFooterToolbar && routeContext.setHasFooterToolbar(false); routeContext.setHasFooterToolbar && routeContext.setHasFooterToolbar(false);
}); });
return () => ( return () => {
<div class={baseClassName} style={{ width: width.value }}> const extra = getPropsSlotfn(slots, props, 'extra');
{props.renderContent const dom = () => {
? props.renderContent( return (
{ <>
...props, <div class={`${baseClassName}-left`}>
...routeContext, {typeof extra === 'function' ? extra() : extra}
leftWidth: width.value, </div>
}, <div class={`${baseClassName}-right`}>{slots.default?.()}</div>
dom(), </>
) );
: dom()} };
</div> return (
); <div class={baseClassName} style={{ width: width.value }}>
{props.renderContent
? props.renderContent(
{
...props,
...routeContext,
leftWidth: width.value,
},
dom(),
)
: dom()}
</div>
);
};
}, },
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment