index.ts 890 B

12345678910111213141516171819202122232425262728293031323334
  1. import { VueConstructor } from 'vue'
  2. import { VxeUI } from '@vxe-ui/core'
  3. import VxeLoadingComponent from './src/loading'
  4. import { dynamicApp, dynamicStore, checkDynamic } from '../dynamics'
  5. import type { VxeLoadingProps } from '../../types'
  6. export const VxeLoading = Object.assign({}, VxeLoadingComponent, {
  7. install (app: VueConstructor) {
  8. app.component(VxeLoadingComponent.name as string, VxeLoadingComponent)
  9. }
  10. })
  11. export const LoadingController = {
  12. open (options?: VxeLoadingProps) {
  13. const opts = Object.assign({}, options)
  14. dynamicStore.globalLoading = {
  15. value: true,
  16. text: opts.text,
  17. icon: opts.icon
  18. }
  19. checkDynamic()
  20. },
  21. close () {
  22. dynamicStore.globalLoading = null
  23. }
  24. }
  25. dynamicApp.use(VxeLoading)
  26. VxeUI.component(VxeLoadingComponent)
  27. VxeUI.loading = LoadingController
  28. export const Loading = VxeLoading
  29. export default VxeLoading