diff --git a/src/components/Layout/BasicLayout.tsx b/src/components/Layout/BasicLayout.tsx deleted file mode 100644 index 18cfcdf2..00000000 --- a/src/components/Layout/BasicLayout.tsx +++ /dev/null @@ -1,221 +0,0 @@ -import { - computed, - reactive, - unref, - defineComponent, - toRefs, - provide -} from 'vue' - -import type { ExtractPropTypes, PropType, CSSProperties} from 'vue' -import { Layout } from 'ant-design-vue' -import { defaultSettingProps } from './defaultSetting' -import type { BreadcrumbProps, RouteContextProps } from './RouteContext' -import type { - BreadcrumbRender, - CollapsedButtonRender, CustomRender, - HeaderRender, - MenuContentRender, - MenuExtraRender, - MenuHeaderRender, - MenuItemRender, - RightContentRender, - SubMenuItemRender -} from './typings' -import SiderMenuWrapper, { siderMenuProps } from 'components/Layout/components/SiderMenu/SiderMenu' -import { getSlot } from '@/utils/comm' -import { getMenuFirstChildren } from 'components/Layout/utils' -import { pick } from 'lodash-es' -import { routeContextInjectKey } from './RouteContext' -import { HeaderView, headerViewProps } from './components/Header' - -export const basicLayoutProps = { - ...defaultSettingProps, - ...siderMenuProps, - ...headerViewProps, - - breadcrumb: { - type: [Object, Function] as PropType, - default: () => null - }, - breadcrumbRender: { - type: [Object, Function, Boolean] as PropType, - default() { - return null - } - }, - contentStyle: { - type: [String, Object] as PropType, - default: () => { - return null - } - }, - pure: { - type: Boolean, - default: () => false - } -} - -export type BasicLayoutProps = Partial>; - -export default defineComponent({ - name: 'ProLayout', - inheritAttrs: false, - props: basicLayoutProps, - emits: [ - 'update:collapsed', - 'update:open-keys', - 'update:selected-keys', - 'collapse', - 'openKeys', - 'select', - 'menuHeaderClick', - 'menuClick' - ], - setup(props, { emit, attrs, slots }) { - const siderWidth = computed(() => (props.collapsed ? props.collapsedWidth : props.siderWidth)) - - const onCollapse = (collapsed: boolean) => { - emit('update:collapsed', collapsed) - emit('collapse', collapsed) - } - const onOpenKeys = (openKeys: string[] | false) => { - emit('update:open-keys', openKeys) - emit('openKeys', openKeys) - } - const onSelect = (selectedKeys: string[] | false) => { - emit('update:selected-keys', selectedKeys) - emit('select', selectedKeys) - } - const onMenuHeaderClick = (e: MouseEvent) => { - emit('menuHeaderClick', e) - } - const onMenuClick = (args: any) => { - emit('menuClick', args) - } - const headerRender = ( - p: BasicLayoutProps & { - hasSiderMenu: boolean; - headerRender: HeaderRender; - rightContentRender: RightContentRender; - }, - matchMenuKeys?: string[] - ): CustomRender | null => { - if (p.headerRender === false) { - return null - } - return - } - - const breadcrumb = computed(() => ({ - ...props.breadcrumb, - itemRender: getSlot(slots, props, 'breadcrumbRender') as BreadcrumbRender - })) - - const flatMenuData = computed( - () => (props.selectedKeys && getMenuFirstChildren(props.menuData, props.selectedKeys[0])) || []) - - const routeContext = reactive({ - ...(pick(toRefs(props), [ - 'menuData', - 'openKeys', - 'selectedKeys', - 'contentWidth', - 'headerHeight' - ]) as any), - siderWidth, - breadcrumb, - flatMenuData - }) - - provide(routeContextInjectKey, routeContext) - - return () => { - const { - pure, - onCollapse: propsOnCollapse, - onOpenKeys: propsOnOpenKeys, - onSelect: propsOnSelect, - onMenuClick: propsOnMenuClick, - ...restProps - } = props - - const collapsedButtonRender = getSlot(slots, props, 'collapsedButtonRender') - const rightContentRender = getSlot(slots, props, 'rightContentRender') - const customHeaderRender = getSlot(slots, props, 'headerRender') - - // menu - const menuHeaderRender = getSlot(slots, props, 'menuHeaderRender') - const menuExtraRender = getSlot(slots, props, 'menuExtraRender') - const menuContentRender = getSlot(slots, props, 'menuContentRender') - const menuItemRender = getSlot(slots, props, 'menuItemRender') - const subMenuItemRender = getSlot(slots, props, 'subMenuItemRender') - - const headerDom = computed(() => - headerRender( - { - ...props, - hasSiderMenu: true, - menuItemRender, - subMenuItemRender, - menuData: props.menuData, - onCollapse, - onOpenKeys, - onSelect, - onMenuHeaderClick, - rightContentRender, - collapsedButtonRender, - menuExtraRender, - menuContentRender, - headerRender: customHeaderRender, - theme: props.navTheme - }, - [] - ) - ) - - return ( - <> - { - pure ? ( - slots.default?.() - ) : ( - - - - - {headerDom.value} - - {slots.default?.()} - - - - ) - } - - ) - } - } -}) - - - - diff --git a/src/components/Layout/BasicLayoutPage.vue b/src/components/Layout/BasicLayoutPage.vue index ebc3adc4..59079f75 100644 --- a/src/components/Layout/BasicLayoutPage.vue +++ b/src/components/Layout/BasicLayoutPage.vue @@ -1,5 +1,5 @@ - - \ No newline at end of file diff --git a/src/views/system/Basis/index.vue b/src/views/system/Basis/index.vue index 03517937..5c39a5cb 100644 --- a/src/views/system/Basis/index.vue +++ b/src/views/system/Basis/index.vue @@ -291,7 +291,6 @@ import { LocalStore } from '@/utils/comm'; import { save_api, getDetails_api } from '@/api/system/basis'; import { usePermissionStore } from '@/store/permission'; -import PageContainer from 'components/Layout/components/PageContainer' const action = ref(`${BASE_API_PATH}/file/static`); const headers = ref({ [TOKEN_KEY]: LocalStore.get(TOKEN_KEY) }); diff --git a/yarn.lock b/yarn.lock index f03c4f22..135ad32f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3898,8 +3898,8 @@ jetlinks-store@^0.0.3: jetlinks-ui-components@^1.0.0: version "1.0.0" - resolved "https://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.0.tgz#d12144cd57e9547a9fdec1b28fe4c4135fba50ce" - integrity sha512-oqeQpQqidJJMdPa/DzU4V++93r9i9IdHEvqNqDg/+zzw+AhbehtcaRKUVb2bQcMWWCnJWCdv0Md8K5NIdIaoDw== + resolved "https://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.0.tgz#dca7bb82e53f464990b0851635e8f82be6c69db6" + integrity sha512-pgJ0Uiw4Dxc0AU2GqaOaVhNYun1VEmv78OtJcir2sq9rVSIuXCtTl1eHYMPiiPb6z1fG677KKs1gqvrpUwhguQ== dependencies: "@vueuse/core" "^9.12.0" ant-design-vue "^3.2.15"