# pro-layout **Repository Path**: hellohere/pro-layout ## Basic Information - **Project Name**: pro-layout - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: next - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-14 - **Last Updated**: 2022-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Ant Design Pro Layout

[![NPM version](https://img.shields.io/npm/v/@ant-design-vue/pro-layout/next?style=flat)](https://npmjs.org/package/@ant-design-vue/pro-layout) [![Vue Support](https://img.shields.io/badge/support-Vue3-green?style=flat)](./package.json) [![Vue Grammar Level](https://img.shields.io/badge/full-Composition%20API-blue?style=flat)](https://v3.vuejs.org/guide/composition-api-introduction.html) [![NPM downloads](http://img.shields.io/npm/dm/@ant-design-vue/pro-layout.svg?style=flat)](https://npmjs.org/package/@ant-design-vue/pro-layout) [![License](https://img.shields.io/github/license/vueComponent/pro-layout)](./LICENSE)
💻 Preview layout:
## Basic Usage Recommend look [Examples](./examples/) or [Use Template](https://github.com/sendya/preview-pro) ## Branch - next : Vue3 + ant-design-vue@2.2.x - v2 : Vue2 + ant-design-vue@1.7.x ## Install ```bash # yarn yarn add @ant-design-vue/pro-layout@next # npm npm i @ant-design-vue/pro-layout@next -S ``` ### Simple Usage First, you should add the `@ant-design-vue/pro-layout` that you need into the library. ```js // main.[js|ts] import 'ant-design-vue/dist/antd.less'; // antd css import '@ant-design-vue/pro-layout/dist/style.css'; // pro-layout css or style.less import { createApp } from 'vue'; import App from "./App.vue"; import Antd from 'ant-design-vue'; import ProLayout, { PageContainer } from '@ant-design-vue/pro-layout'; const app = createApp(App); app.use(Antd).use(ProLayout).use(PageContainer).mount('#app'); ``` After that, you can use pro-layout in your Vue components as simply as this: ```vue ``` ## API ### ProLayout | Property | Description | Type | Default Value | | --- | --- | --- | --- | | title | layout in the upper left corner title | VNode \| String | `'Ant Design Pro'` | | logo | layout top left logo url | VNode \| render | - | | loading | layout loading status | boolean | - | | layout | layout menu mode, sidemenu: right navigation, topmenu: top navigation | 'side' \| 'top' \| 'mix' | `'side'` | | contentWidth | content mode of layout, Fluid: adaptive, Fixed: fixed width 1200px | 'Fixed' \| 'Fluid' | `Fluid` | | navTheme | Navigation theme | 'light' \|'dark' | `'light'` | | headerTheme | Header Bar theme | 'light' \|'dark' | `'light'` | | menuData | Vue-router `routes` prop | Object | `[{}]` | | collapsed | control menu's collapse and expansion | boolean | true | | selectedKeys | menu selected keys | string[] | `[]` | | openKeys | menu openKeys | string[] | `[]` | | isMobile | is mobile | boolean | false | | handleCollapse | folding collapse event of menu | (collapsed: boolean) => void | - | | menuHeaderRender | render header logo and title | v-slot \| VNode \| (logo,title)=>VNode \| false | - | | menuExtraRender | render extra menu item | v-slot \| VNode \| (props)=>VNode \| false | - | | menuFooterRender | render footer menu item | v-slot \| VNode \| (props)=>VNode \| false | - | | headerContentRender | custom header render method | `slot` \| (props: BasicLayoutProps) => VNode | - | | rightContentRender | header right content render method | `slot` \| (props: HeaderViewProps) => VNode | - | | collapsedButtonRender | custom collapsed button method | `slot` \| (collapsed: boolean) => VNode | - | | footerRender | custom footer render method | `slot` \| (props: BasicLayoutProps) => VNode | `false` | | breadcrumbRender | custom breadcrumb render method | `slot` \| ({ route, params, routes, paths, h }) => VNode[] | - | | menuItemRender | custom render Menu.Item | v-slot#menuItemRender="{ item, icon }" \| ({ item, icon }) => VNode | null | | menuSubItemRender | custom render Menu.SubItem | v-slot#menuSubItemRender="{ item, icon }" \| ({ item, icon }) => VNode | null | | locale | i18n | Function (key: string) => string \| `false` | `false` | > Menu generation requires `getMenuData` and `clearMenuItem` function > e.g. `const { menuData } = getMenuData(clearMenuItem(routes))` ### PageContainer | Property | Description | Type | Default Value | | --- | --- | --- | --- | | content | Content area | VNode \| v-slot | - | | extra | Extra content area, on the right side of content | VNode \| v-slot | - | | extraContent | Extra content area, on the right side of content | VNode \| v-slot | - | | tabList | Tabs title list | `Array<{key: string, tab: sting}>` | - | | tab-change | Switch panel callback | (key) => void | - | | tab-active-key | The currently highlighted tab item | string | - | ### WaterMark | Property | Description | Type | Default Value | | ------------- | ------------------------------------- | ----------------- | ---------------------- | | markStyle | mark style | CSSProperties | - | | markClassName | mark class | string | - | | gapX | Horizontal spacing between water-mark | number | 212 | | gapY | Vertical spacing between watermark | number | 222 | | offsetLeft | Horizontal offset | number | `offsetTop = gapX / 2` | | offsetTop | Vertical offset | number | `offsetTop = gapY / 2` | | | | | | | width | | number | 120 | | height | | number | 64 | | rotate | Angle of rotation, unit ° | number | -22 | | image | image src | string | - | | zIndex | water-mark z-index | number | 9 | | content | water-mark Content | string | - | | fontColor | font-color | string | `rgba(0,0,0,.15)` | | fontSize | font-size | string` \| `number | 16 | ### Custom Render #### Custom rightContentRender ```vue ``` #### Custom menu.item ```vue ``` #### Custom menuExtraRender ```vue ``` #### Custom menuFooterRender ```vue ``` #### Custom breadcrumbRender ```vue ``` #### Custom collapsedButtonRender ```vue ``` #### Custom footer with slot ```vue ``` #### Custom footer with props ```vue ``` ### Use WaterMark ```vue ``` ## Build project ```bash npm run build # Build library npm run build:types # Build d.ts ```