mirror of
https://github.com/dataease/dataease.git
synced 2025-02-27 22:15:43 +08:00
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
// import store from '@/store'
|
||
|
||
import Vue from 'vue'
|
||
import upperFirst from 'lodash/upperFirst'
|
||
import camelCase from 'lodash/camelCase'
|
||
|
||
const requireComponent = require.context('./DeWidget', true, /\.vue$/)
|
||
|
||
requireComponent.keys().forEach(fileName => {
|
||
// 获取组件配置
|
||
const componentConfig = requireComponent(fileName)
|
||
// 这个地方直接传入filename其实就是内部会调用了resolve方法,会返回对应的文件内容(不理解可以console一下看看)
|
||
// 获取组件的 PascalCase 命名
|
||
const componentName = upperFirst(
|
||
camelCase(
|
||
// 获取和目录深度无关的文件名
|
||
fileName
|
||
.split('/')
|
||
.pop()
|
||
.replace(/\.\w+$/, '')
|
||
)
|
||
)
|
||
|
||
// 全局注册组件
|
||
Vue.component(
|
||
componentName,
|
||
// 如果这个组件选项是通过 `export default` 导出的,
|
||
// 那么就会优先使用 `.default`,
|
||
// 否则回退到使用模块的根。
|
||
componentConfig.default || componentConfig
|
||
)
|
||
})
|
||
|
||
const req = require.context('./serviceImpl', false, /\.js$/)
|
||
// const req = require.context('./drawServiceImpl', false, /\.js$/)
|
||
const requireAll = requireContext => requireContext.keys()
|
||
|
||
const widgets = {}
|
||
requireAll(req).forEach(key => {
|
||
widgets[key.replace(/(\.\/|\.js)/g, '')] = req(key).default
|
||
})
|
||
|
||
export default widgets
|