UNPKG

@opensig/opendesign

Version:

<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>

40 lines (39 loc) 887 B
import { h, render } from "vue"; import _sfc_main from "./OLoading.vue.mjs"; let vLoadingOption = {}; const setVLoadingOption = (option) => { vLoadingOption = option; }; const vLoading = { mounted(el, binding) { const vnode = h( _sfc_main, Object.assign(vLoadingOption, { visible: binding.value, wrapper: binding.modifiers.body ? "body" : null, mask: !binding.modifiers.nomask }) ); if (binding.modifiers.body) { render(vnode, document.body); } else { render(vnode, el); } const vm = vnode.component; el.__loading_data = { instance: vm }; }, updated(el, binding) { if (binding.value !== binding.oldValue) { const data = el.__loading_data; if (data) { data.instance.exposed.toggle(!!binding.value); } } } }; export { setVLoadingOption, vLoading };