various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 5.79 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../packages/methods/loading/index.ts"],"sourcesContent":["import { createApp } from \"vue\";\r\nimport { UiLoading, UiHTMLElement } from \"@various/constants\";\r\n\r\nexport type UiLoadingShowOption = {\r\n icon?: string;\r\n delay?: number;\r\n message?: string;\r\n};\r\n\r\nexport type UiLoadingHandles = {\r\n timer?: NodeJS.Timeout;\r\n delay: boolean;\r\n open: (config?: UiLoadingShowOption) => void;\r\n close: () => void;\r\n};\r\n\r\n//* 真实的Show函数\r\nconst show = (config?: UiLoadingShowOption) => {\r\n //* 数据初始化\r\n const body = document.body as UiHTMLElement;\r\n const size = innerWidth - document.documentElement.clientWidth;\r\n\r\n //* 调整body样式, 隐藏滚动条\r\n if (size) {\r\n document.documentElement.style.overflow = \"hidden\";\r\n document.documentElement.style.paddingRight = size + \"px\";\r\n }\r\n\r\n //* 判断body是否已挂载Loading组件\r\n if (body.instance) {\r\n //* 属性变更\r\n if (config?.icon) body.instance.$.props.icon = config.icon;\r\n if (config?.message) body.instance.$.props.message = config.message;\r\n } else {\r\n //* 组件挂载\r\n //* 创建新的Vue实例\r\n const app = createApp(UiLoading, Object.assign({ visible: false, mode: \"fixed\" }, config));\r\n const instance = app.mount(document.createElement(\"div\"));\r\n\r\n //* 检测是否需要添加Position\r\n if (body.style.position == \"\") body.classList.add(\"ui-relative\");\r\n\r\n //* 缓存Loading并将Loading插入body中\r\n body.app = app;\r\n body.instance = instance;\r\n body.appendChild(instance.$el);\r\n }\r\n\r\n //* 显示Loading\r\n body.instance.$.props.visible = true;\r\n};\r\n\r\nconst $loading: UiLoadingHandles = {\r\n delay: false,\r\n timer: undefined,\r\n\r\n //* 虚假的Show函数, 用于控制Loading延迟显示\r\n open: function (config?: UiLoadingShowOption) {\r\n //* 清除上一个延时器\r\n this.timer && clearTimeout(this.timer);\r\n\r\n //* 判断是否需要添加延时器\r\n if (config?.delay) {\r\n this.timer = setTimeout(() => {\r\n show(config);\r\n this.delay = true;\r\n }, config.delay);\r\n } else {\r\n show(config);\r\n }\r\n },\r\n\r\n close: function () {\r\n //* 清除延时器\r\n this.timer && clearTimeout(this.timer);\r\n\r\n //* 获取body\r\n const body = document.body as UiHTMLElement;\r\n\r\n //* 检测是否需要延迟关闭\r\n if (this.delay) {\r\n this.delay = false;\r\n this.timer = setTimeout(() => {\r\n //* 隐藏Loading\r\n if (body.instance) body.instance.$.props.visible = false;\r\n //* 还原body样式\r\n document.documentElement.style.overflow = \"\";\r\n document.documentElement.style.paddingRight = \"\";\r\n }, 500);\r\n } else if (body.instance) {\r\n //* 还原body样式\r\n document.documentElement.style.overflow = \"\";\r\n document.documentElement.style.paddingRight = \"\";\r\n //* 隐藏Loading\r\n body.instance.$.props.visible = false;\r\n }\r\n },\r\n};\r\n\r\nexport { $loading };\r\nexport default $loading;\r\n"],"names":[],"mappings":"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"}