install.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import axios from 'axios'
  2. import VFormDesigner from '@/components/form-designer/index.vue'
  3. import VFormRender from '@/components/form-render/index.vue'
  4. import {loadExtension} from "@/extension/extension-loader"
  5. import '@/utils/directive'
  6. import '@/icons'
  7. import '@/iconfont/iconfont.css'
  8. // sdk import begin
  9. import {
  10. addContainerWidgetSchema,
  11. addBasicFieldSchema,
  12. addAdvancedFieldSchema,
  13. addCustomWidgetSchema
  14. } from '@/components/form-designer/widget-panel/widgetsConfig'
  15. import * as PERegister from '@/components/form-designer/setting-panel/propertyRegister'
  16. import * as PEFactory from '@/components/form-designer/setting-panel/property-editor-factory'
  17. import {
  18. registerCWGenerator,
  19. registerFWGenerator
  20. } from '@/utils/sfc-generator'
  21. import i18n, {addENExtensionLang, addZHExtensionLang} from "@/utils/i18n"
  22. import containerMixin from "@/components/form-designer/form-widget/container-widget/containerMixin"
  23. import Draggable from 'vuedraggable' //是否需要全局注册??
  24. import ContainerWrapper from "@/components/form-designer/form-widget/container-widget/container-wrapper"
  25. import FieldComponents from '@/components/form-designer/form-widget/field-widget/index'
  26. import refMixinDesign from "@/components/form-designer/refMixinDesign"
  27. import refMixin from "@/components/form-render/refMixin"
  28. import ContainerItemWrapper from '@/components/form-render/container-item/container-item-wrapper'
  29. import containerItemMixin from "@/components/form-render/container-item/containerItemMixin"
  30. import StaticContentWrapper from '@/components/form-designer/form-widget/field-widget/static-content-wrapper'
  31. import FormItemWrapper from '@/components/form-designer/form-widget/field-widget/form-item-wrapper'
  32. import emitter from '@/utils/emitter'
  33. import fieldMixin from "@/components/form-designer/form-widget/field-widget/fieldMixin"
  34. // sdk import end
  35. loadExtension()
  36. const setProductInfo = (Vue, options) => {
  37. Vue.prototype.$vformInfo = {
  38. productName: (options && options.productName) || '',
  39. productTitle: (options && options.productTitle) || ''
  40. }
  41. }
  42. VFormDesigner.install = function (Vue, options) {
  43. Vue.component(VFormDesigner.name, VFormDesigner)
  44. setProductInfo(Vue, options)
  45. }
  46. VFormRender.install = function (Vue) {
  47. Vue.component(VFormRender.name, VFormRender)
  48. }
  49. const components = [
  50. VFormDesigner,
  51. VFormRender
  52. ]
  53. const install = (Vue, options) => {
  54. window.axios = axios
  55. components.forEach(component => {
  56. Vue.component(component.name, component)
  57. })
  58. setProductInfo(Vue, options)
  59. }
  60. if (typeof window !== 'undefined' && window.Vue) { /* script方式引入时主动调用install方法!! */
  61. install(window.Vue);
  62. }
  63. /**
  64. * 导出二开组件所需的所有对象、工具方法及组件
  65. */
  66. const VFormSDK = {
  67. addContainerWidgetSchema,
  68. addBasicFieldSchema,
  69. addAdvancedFieldSchema,
  70. addCustomWidgetSchema,
  71. PERegister,
  72. PEFactory,
  73. registerCWGenerator,
  74. registerFWGenerator,
  75. addZHExtensionLang,
  76. addENExtensionLang,
  77. i18n,
  78. containerMixin,
  79. Draggable, //是否需要全局注册??
  80. ContainerWrapper,
  81. FieldComponents,
  82. refMixinDesign,
  83. ContainerItemWrapper,
  84. containerItemMixin,
  85. refMixin,
  86. StaticContentWrapper,
  87. FormItemWrapper,
  88. emitter,
  89. fieldMixin,
  90. }
  91. export default {
  92. install,
  93. VFormDesigner,
  94. VFormRender,
  95. VFormSDK
  96. }