index.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Vue, { VueConstructor } from 'vue'
  2. import { VxeUI } from '../ui'
  3. import VxeTableComponent from './src/table'
  4. import './render'
  5. let isReg = false
  6. export const VxeTable = Object.assign({}, VxeTableComponent, {
  7. install (app: VueConstructor) {
  8. if (typeof window !== 'undefined') {
  9. if ((window as any).VxeTableExtendCellArea && (window as any).VxeTableExtendCellArea.use) {
  10. (window as any).VxeTableExtendCellArea.use(VxeUI)
  11. } else if ((window as any).VXETableMixin) {
  12. VxeTableComponent.mixins.push((window as any).VXETableMixin)
  13. delete (window as any).VXETableMixin
  14. }
  15. if ((window as any).VxeTableExtendPivotTable && (window as any).VxeTableExtendPivotTable.use) {
  16. (window as any).VxeTableExtendPivotTable.use(VxeUI)
  17. }
  18. }
  19. // 兼容老版本
  20. if (typeof window !== 'undefined' && (window as any).VxeTableExtendCellArea && (window as any).VxeTableExtendCellArea.init) {
  21. (window as any).VxeTableExtendCellArea.init(VxeUI)
  22. delete (window as any).VxeTableExtendCellArea
  23. delete (window as any).VXETablePro
  24. } else if (typeof window !== 'undefined' && (window as any).VXETablePro && (window as any).VXETablePro.init) {
  25. (window as any).VXETablePro.init(VxeUI)
  26. delete (window as any).VXETablePro
  27. }
  28. if (!Vue.prototype.$vxe) {
  29. Vue.prototype.$vxe = { t: VxeUI.t, _t: VxeUI._t }
  30. } else {
  31. Vue.prototype.$vxe.t = VxeUI.t
  32. Vue.prototype.$vxe._t = VxeUI._t
  33. }
  34. if (!isReg) {
  35. isReg = true
  36. if (VxeUI.dynamicApp) {
  37. VxeUI.dynamicApp.component(VxeTableComponent.name as string, VxeTableComponent)
  38. }
  39. }
  40. app.component(VxeTableComponent.name as string, VxeTableComponent)
  41. }
  42. })
  43. VxeUI.component(VxeTableComponent)
  44. export const Table = VxeTable
  45. export default VxeTable