♻ feat: Auto export public layout

This commit is contained in:
chuzhixin 2020-10-23 10:16:07 +08:00
parent 2f1ad39677
commit a2ddb392e6
11 changed files with 31 additions and 59 deletions

View File

@ -60,7 +60,7 @@
"zx-comparison": "^1.0.3",
"zx-count": "^0.3.7",
"zx-icon": "^1.1.10",
"zx-layouts": "^0.6.15",
"zx-layouts": "^0.6.16",
"zx-magnifie": "^0.4.0",
"zx-markdown-editor": "^0.0.2",
"zx-player": "^1.0.1",
@ -86,7 +86,7 @@
"plop": "^2.7.4",
"prettier": "^2.1.2",
"sass": "^1.27.0",
"sass-loader": "^10.0.3",
"sass-loader": "^10.0.4",
"stylelint": "^13.7.2",
"stylelint-config-prettier": "^8.0.2",
"stylelint-config-recess-order": "^2.2.0",

View File

@ -1,5 +1,5 @@
import Vue from 'vue'
import { ColorfullIcon } from '@/layouts/components'
import ColorfullIcon from 'zx-layouts/ColorfullIcon'
Vue.component('VabColorfulIcon', ColorfullIcon)
const req = require.context('./svg', false, /\.svg$/),

View File

@ -1,7 +1,5 @@
/**
* @description 导出自定义配置
**/
const config = {
layout: 'vertical',
}
const config = {}
module.exports = config

View File

@ -18,6 +18,7 @@
<script>
import { getList } from '@/api/ad'
export default {
name: 'Ad',
data() {
return {
nodeEnv: process.env.NODE_ENV,

View File

@ -38,23 +38,8 @@
<script>
import { mapActions, mapGetters } from 'vuex'
import {
Avatar,
Breadcrumb,
ErrorLog,
FullScreenBar,
ThemeBar,
} from '@/layouts/components'
export default {
name: 'NavBar',
components: {
Avatar,
Breadcrumb,
ErrorLog,
FullScreenBar,
ThemeBar,
},
data() {
return {
pulse: false,

View File

@ -1,30 +1,7 @@
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 公共布局导出已封装成npm便于此后在线升级
* 当然也存在一定的弊端给开发者自定义增加了一定的困难
* 如果您一定要进行高度自定义请仔细阅读讨论群文档layouts本地化篇
* @description 公共js导出
*/
export { default as ColorfullIcon } from 'zx-layouts/ColorfullIcon'
export { default as RemixIcon } from 'zx-layouts/RemixIcon'
export { default as VabDrag } from 'zx-layouts/Drag'
export { default as VabPermissions } from 'zx-layouts/Permissions'
export { default as VabQueryForm } from 'zx-layouts/VabQueryForm/export'
//logo使svgpnglogo
export { default as Logo } from './Logo'
//
export { default as Avatar } from './Avatar'
//广ad
export { default as Ad } from './Ad'
//AppMain
export { default as AppMain } from './AppMain'
export { default as TabsBar } from 'zx-layouts/TabsBar'
export { default as SideBar } from 'zx-layouts/SideBar'
//Breadcrumb
export { default as Breadcrumb } from './Breadcrumb'
export { default as FullScreenBar } from 'zx-layouts/FullScreenBar'
export { default as ErrorLog } from 'zx-layouts/ErrorLog'
//ThemeBar
export { default as ThemeBar } from './ThemeBar'
export { default as TopBar } from 'zx-layouts/TopBar'
//NavBar
export { default as NavBar } from './NavBar'

20
src/layouts/export.js Normal file
View File

@ -0,0 +1,20 @@
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 公共布局自动导出
*/
import Vue from 'vue'
const requireComponents = require.context('./components', true, /\.vue$/)
requireComponents.keys().forEach((fileName) => {
const componentConfig = requireComponents(fileName)
const componentName = componentConfig.default.name
Vue.component(componentName, componentConfig.default || componentConfig)
})
const requireZxLayouts = require.context('zx-layouts', true, /\.vue$/)
requireZxLayouts.keys().forEach((fileName) => {
const componentConfig = requireZxLayouts(fileName)
const componentName = componentConfig.default.name
Vue.component(componentName, componentConfig.default || componentConfig)
})

View File

@ -52,19 +52,10 @@
</template>
<script>
import { Ad, AppMain, NavBar, SideBar, TabsBar, TopBar } from './components'
import { mapActions, mapGetters } from 'vuex'
import { tokenName } from '@/config/settings'
export default {
name: 'Layout',
components: {
Ad,
TopBar,
NavBar,
SideBar,
AppMain,
TabsBar,
},
data() {
return { oldLayout: '' }
},

View File

@ -3,6 +3,7 @@ import App from './App'
import store from './store'
import router from './router'
import './plugins'
import '@/layouts/export'
/**
* @author chuzhixin 1204505056@qq.com 不想保留author可删除
* @description 生产环境默认都使用mock如果正式用于生产环境时记得去掉

View File

@ -8,13 +8,12 @@ import '@/colorfulIcon'
import '@/config/permission'
import '@/utils/errorLog'
import './vabIcon'
import VabDrag from 'zx-layouts/Drag'
import VabPermissions from 'zx-layouts/Permissions'
import Vab from '@/utils/vab'
import { VabDrag, VabPermissions, VabQueryForm } from '@/layouts/components'
import VabCount from 'zx-count'
Vue.use(Vab)
Vue.use(VabPermissions)
Vue.use(VabDrag)
Vue.use(VabQueryForm)
Vue.use(VabCount)

View File

@ -1,5 +1,5 @@
import Vue from 'vue'
import { RemixIcon } from '@/layouts/components'
import RemixIcon from 'zx-layouts/RemixIcon'
Vue.component('VabRemixIcon', RemixIcon)
const req = require.context('./svg', false, /\.svg$/),