Commit e5402180 authored by liangliangyin's avatar liangliangyin

style: vue-props check

parent 3242cbda
import './Header.less' import './Header.less'
import { Layout } from 'ant-design-vue' import { Layout } from 'ant-design-vue'
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import BaseMenu from './components/RouteMenu/BaseMenu' import BaseMenu from './components/RouteMenu/BaseMenu'
import { defaultRenderLogoAntTitle, SiderMenuProps } from './components/SiderMenu/SiderMenu' import { defaultRenderLogoAntTitle, SiderMenuProps } from './components/SiderMenu/SiderMenu'
import GlobalHeader, { GlobalHeaderProps } from './components/GlobalHeader' import GlobalHeader, { GlobalHeaderProps } from './components/GlobalHeader'
...@@ -12,44 +13,18 @@ const { Header } = Layout ...@@ -12,44 +13,18 @@ const { Header } = Layout
export const HeaderViewProps = { export const HeaderViewProps = {
...GlobalHeaderProps, ...GlobalHeaderProps,
...SiderMenuProps, ...SiderMenuProps,
isMobile: { isMobile: PropTypes.bool.def(false),
type: Boolean, collapsed: PropTypes.bool,
default: () => false logo: PropTypes.any,
}, hasSiderMenu: PropTypes.bool,
collapsed: { autoHideHeader: PropTypes.bool,
type: Boolean, menuRender: PropTypes.any,
required: true headerRender: PropTypes.any,
}, rightContentRender: PropTypes.any,
logo: { visible: PropTypes.bool.def(true),
type: [Function, Object],
required: false
},
hasSiderMenu: {
type: Boolean,
default: false
},
autoHideHeader: {
type: Boolean,
default: false
},
menuRender: {
type: null,
required: false
},
headerRender: {
type: null,
required: false
},
rightContentRender: {
type: null,
required: false
},
visible: {
type: Boolean,
default: true
}
} }
const renderContent = (h, props) => { const renderContent = (h, props) => {
const isTop = props.layout === 'topmenu' const isTop = props.layout === 'topmenu'
const maxWidth = 1200 - 280 - 120 const maxWidth = 1200 - 280 - 120
......
import { getComponentFromProp, hasProp } from 'ant-design-vue/lib/_util/props-util'
import './index.less' import './index.less'
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import { getComponentFromProp, hasProp } from 'ant-design-vue/lib/_util/props-util'
const GlobalFooterProps = { const GlobalFooterProps = {
links: { links: PropTypes.array,
type: Array, copyright: PropTypes.any,
required: false
},
copyright: {
type: null,
required: false
}
} }
const GlobalFooter = { const GlobalFooter = {
name: 'GlobalFooter', name: 'GlobalFooter',
props: GlobalFooterProps, props: GlobalFooterProps,
render () { render() {
const copyright = getComponentFromProp(this, 'copyright') const copyright = getComponentFromProp(this, 'copyright')
const links = getComponentFromProp(this, 'links') const links = getComponentFromProp(this, 'links')
const linksType = hasProp(links) const linksType = hasProp(links)
...@@ -41,7 +37,7 @@ const GlobalFooter = { ...@@ -41,7 +37,7 @@ const GlobalFooter = {
)} )}
</footer> </footer>
) )
} },
} }
export default GlobalFooter export default GlobalFooter
import './index.less' import './index.less'
import debounce from 'lodash/debounce' import debounce from 'lodash/debounce'
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import { triggerEvent, inBrowser, isFun } from '../../utils/util' import { triggerEvent, inBrowser, isFun } from '../../utils/util'
import { Icon } from 'ant-design-vue' import { Icon } from 'ant-design-vue'
import { defaultRenderLogo } from '../SiderMenu/SiderMenu' import { defaultRenderLogo } from '../SiderMenu/SiderMenu'
export const GlobalHeaderProps = { export const GlobalHeaderProps = {
collapsed: { collapsed: PropTypes.bool,
type: Boolean, handleCollapse: PropTypes.func,
required: true isMobile: PropTypes.bool.def(false),
}, fixedHeader: PropTypes.bool.def(false),
handleCollapse: { logo: PropTypes.any,
type: Function, menuRender: PropTypes.any,
default: () => undefined collapsedButtonRender: PropTypes.any,
}, rightContentRender: PropTypes.any,
isMobile: {
type: Boolean,
default: () => false
},
fixedHeader: {
type: Boolean,
default: false
},
logo: {
type: [Function, Object, String],
default: () => null
},
menuRender: {
type: null,
required: false
},
collapsedButtonRender: {
type: null,
required: false
},
rightContentRender: {
type: null,
required: false
}
} }
const defaultRenderCollapsedButton = (h, collapsed) => ( const defaultRenderCollapsedButton = (h, collapsed) => (
......
import './index.less' import './index.less'
import PropTypes from 'ant-design-vue/es/_util/vue-types'
const GridContent = { const GridContent = {
name: 'GridContent', name: 'GridContent',
functional: true, functional: true,
props: { props: {
children: { children: PropTypes.any,
type: null, contentWidth: PropTypes.bool,
default: null
},
contentWidth: {
type: Boolean,
default: false
}
}, },
render (h, content) { render (h, content) {
const { contentWidth: propsContentWidth } = content.props const { contentWidth: propsContentWidth } = content.props
......
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import { Menu, Icon } from 'ant-design-vue' import { Menu, Icon } from 'ant-design-vue'
const { const {
Item: MenuItem, Item: MenuItem,
SubMenu SubMenu
} = Menu } = Menu
export const RouteMenuProps = { export const RouteMenuProps = {
menus: { menus: PropTypes.array,
type: Array, theme: PropTypes.string.def('dark'),
required: true mode: PropTypes.string.def('inline'),
}, collapsed: PropTypes.bool.def(false),
theme: { i18nRender: PropTypes.func,
type: String,
required: false,
default: 'dark'
},
mode: {
type: String,
required: false,
default: 'inline'
},
collapsed: {
type: Boolean,
required: false,
default: false
},
i18nRender: {
type: Function,
default: () => undefined
}
} }
const defaultI18nRender = (context) => context const defaultI18nRender = (context) => context
......
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import { Tooltip, Icon } from 'ant-design-vue' import { Tooltip, Icon } from 'ant-design-vue'
import { defaultI18nRender } from './index' import { defaultI18nRender } from './index'
const BlockCheckboxProps = { const BlockCheckboxProps = {
value: { value: PropTypes.string,
type: String,
default: null
},
// Item: { key, url, title } // Item: { key, url, title }
list: { list: PropTypes.array,
type: Array,
default: null
}
} }
const baseClassName = 'ant-pro-setting-drawer-block-checbox' const baseClassName = 'ant-pro-setting-drawer-block-checbox'
......
...@@ -14,10 +14,7 @@ import CopyToClipboard from 'vue-copy-to-clipboard' ...@@ -14,10 +14,7 @@ import CopyToClipboard from 'vue-copy-to-clipboard'
const baseClassName = 'ant-pro-setting-drawer' const baseClassName = 'ant-pro-setting-drawer'
const BodyProps = { const BodyProps = {
title: { title: PropTypes.string.def('')
type: String,
default: ''
}
} }
const Body = { const Body = {
......
import './index.less' import './index.less'
import PropTypes from 'ant-design-vue/es/_util/vue-types'
import { Layout } from 'ant-design-vue' import { Layout } from 'ant-design-vue'
import BaseMenu from '../RouteMenu' import BaseMenu from '../RouteMenu'
...@@ -10,66 +11,20 @@ export const SiderMenuProps = { ...@@ -10,66 +11,20 @@ export const SiderMenuProps = {
type: Function, type: Function,
default: () => undefined default: () => undefined
}, },
mode: { mode: PropTypes.string.def('inline'),
type: String, theme: PropTypes.string.def('dark'),
required: false, contentWidth: PropTypes.bool,
default: 'inline' collapsible: PropTypes.bool,
}, collapsed: PropTypes.bool,
theme: { handleCollapse: PropTypes.func,
type: String, menus: PropTypes.array,
required: false, siderWidth: PropTypes.number.def(256),
default: 'dark' isMobile: PropTypes.bool,
}, layout: PropTypes.string.def('inline'),
contentWidth: { fixSiderbar: PropTypes.bool,
type: Boolean, logo: PropTypes.any,
default: false title: PropTypes.string.def(''),
}, menuHeaderRender: PropTypes.func,
collapsible: {
type: Boolean,
required: false,
default: false
},
collapsed: {
type: Boolean,
required: false,
default: false
},
handleCollapse: {
type: Function,
default: () => undefined
},
menus: {
type: Array,
required: true
},
siderWidth: {
type: Number,
default: 256
},
isMobile: {
type: Boolean,
default: false
},
layout: {
type: String,
default: 'inline'
},
fixSiderbar: {
type: Boolean,
default: false
},
logo: {
type: null,
default: ''
},
title: {
type: String,
default: ''
},
menuHeaderRender: {
type: Function,
default: null
}
} }
export const defaultRenderLogo = (h, logo) => { export const defaultRenderLogo = (h, logo) => {
......
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