variant-form3-vite/install.js

72 lines
1.7 KiB
JavaScript
Raw Normal View History

2022-01-01 19:15:45 +08:00
import axios from 'axios'
import VFormDesigner from '@/components/form-designer/index.vue'
import VFormRender from '@/components/form-render/index.vue'
import Draggable from '@/../lib/vuedraggable/dist/vuedraggable.umd.js'
import SvgIcon from '@/components/svg-icon' //svg组件
import 'virtual:svg-icons-register'
import ContainerWidgets from '@/components/form-designer/form-widget/container-widget/index'
import ContainerItems from '@/components/form-render/container-item/index'
import { addDirective } from '@/utils/directive'
import { installI18n } from '@/utils/i18n'
import { loadExtension } from '@/extension/extension-loader'
VFormDesigner.install = function (app) {
addDirective(app)
installI18n(app)
loadExtension(app)
app.use(ContainerWidgets)
app.use(ContainerItems)
app.component('draggable', Draggable)
app.component('svg-icon', SvgIcon)
app.component(VFormDesigner.name, VFormDesigner)
}
VFormRender.install = function (app) {
installI18n(app)
loadExtension(app)
app.use(ContainerItems)
app.component('svg-icon', SvgIcon)
app.component(VFormRender.name, VFormRender)
}
const components = [
VFormDesigner,
VFormRender
]
const install = (app) => {
addDirective(app)
installI18n(app)
loadExtension(app)
app.use(ContainerWidgets)
app.use(ContainerItems)
app.component('draggable', Draggable)
app.component('svg-icon', SvgIcon)
components.forEach(component => {
app.component(component.name, component)
})
}
// if (typeof window !== 'undefined' && window.Vue) { /* script方式引入时主动调用install方法 */
// window.axios = axios
// install(window.Vue);
// }
export default {
install,
VFormDesigner,
VFormRender
}