ivue-material-plus
Version:
A high quality UI components Library with Vue.js
1 lines • 4.17 kB
Source Map (JSON)
{"version":3,"file":"spin.mjs","sources":["../../../../../src/components/ivue-spin/spin.ts"],"sourcesContent":["import {\r\n createApp,\r\n h,\r\n getCurrentInstance,\r\n VNode,\r\n ComponentInternalInstance,\r\n} from 'vue';\r\nimport Spin from './index.vue';\r\nimport { transferIndex, transferIncrease } from '../../utils/transfer-queue';\r\n\r\n// 获取Index\r\nconst handleGetIndex = () => {\r\n transferIncrease();\r\n return transferIndex;\r\n};\r\n\r\n// 当前index\r\nlet tIndex = handleGetIndex();\r\n\r\n// 新实例\r\nSpin.newInstance = (props = {}) => {\r\n let _instance: ComponentInternalInstance | any = null;\r\n\r\n const Instance = createApp({\r\n // data\r\n data() {\r\n return Object.assign({}, props);\r\n },\r\n // created\r\n created() {\r\n _instance = getCurrentInstance() as ComponentInternalInstance;\r\n },\r\n // render\r\n render() {\r\n let vnode: VNode | null = null;\r\n\r\n // 有渲染函数\r\n if (this.render) {\r\n vnode = h(\r\n Spin,\r\n {\r\n fix: true,\r\n fullscreen: true,\r\n ref: 'spin',\r\n },\r\n {\r\n default: () => this.render(h),\r\n }\r\n );\r\n }\r\n // 没有渲染函数\r\n else {\r\n vnode = h(Spin, {\r\n size: 'large',\r\n fix: true,\r\n fullscreen: true,\r\n ref: 'spin',\r\n });\r\n }\r\n\r\n return h(\r\n 'div',\r\n {\r\n class: 'ivue-spin-fullscreen ivue-spin-fullscreen--wrapper',\r\n style: {\r\n 'z-index': 2010 + tIndex,\r\n },\r\n },\r\n [vnode]\r\n );\r\n },\r\n });\r\n\r\n // 渲染\r\n const container = document.createElement('div');\r\n document.body.appendChild(container);\r\n Instance.mount(container);\r\n\r\n const spin = _instance.refs.spin;\r\n\r\n return {\r\n // 显示\r\n show() {\r\n spin.visible = true;\r\n\r\n tIndex = handleGetIndex();\r\n },\r\n // 删除\r\n remove(callback = () => {}) {\r\n spin.visible = false;\r\n\r\n setTimeout(() => {\r\n Instance.unmount();\r\n document.body.removeChild(container);\r\n\r\n callback();\r\n }, 300);\r\n },\r\n component: spin,\r\n };\r\n};\r\n\r\nexport default Spin;\r\n"],"names":[],"mappings":";;;;;AAWA,MAAM,iBAAiB,MAAM;AAC3B,EAAiB,gBAAA,EAAA,CAAA;AACjB,EAAO,OAAA,aAAA,CAAA;AACT,CAAA,CAAA;AAGA,IAAI,SAAS,cAAe,EAAA,CAAA;AAG5B,IAAA,CAAK,WAAc,GAAA,CAAC,KAAQ,GAAA,EAAO,KAAA;AACjC,EAAA,IAAI,SAA6C,GAAA,IAAA,CAAA;AAEjD,EAAA,MAAM,WAAW,SAAU,CAAA;AAAA,IAEzB,IAAO,GAAA;AACL,MAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,KAAK,CAAA,CAAA;AAAA,KAChC;AAAA,IAEA,OAAU,GAAA;AACR,MAAA,SAAA,GAAY,kBAAmB,EAAA,CAAA;AAAA,KACjC;AAAA,IAEA,MAAS,GAAA;AACP,MAAA,IAAI,KAAsB,GAAA,IAAA,CAAA;AAG1B,MAAA,IAAI,KAAK,MAAQ,EAAA;AACf,QAAQ,KAAA,GAAA,CAAA;AAAA,UACN,IAAA;AAAA,UACA;AAAA,YACE,GAAK,EAAA,IAAA;AAAA,YACL,UAAY,EAAA,IAAA;AAAA,YACZ,GAAK,EAAA,MAAA;AAAA,WACP;AAAA,UACA;AAAA,YACE,OAAS,EAAA,MAAM,IAAK,CAAA,MAAA,CAAO,CAAC,CAAA;AAAA,WAC9B;AAAA,SACF,CAAA;AAAA,OAGG,MAAA;AACH,QAAA,KAAA,GAAQ,EAAE,IAAM,EAAA;AAAA,UACd,IAAM,EAAA,OAAA;AAAA,UACN,GAAK,EAAA,IAAA;AAAA,UACL,UAAY,EAAA,IAAA;AAAA,UACZ,GAAK,EAAA,MAAA;AAAA,SACN,CAAA,CAAA;AAAA,OACH;AAEA,MAAO,OAAA,CAAA;AAAA,QACL,KAAA;AAAA,QACA;AAAA,UACE,KAAO,EAAA,oDAAA;AAAA,UACP,KAAO,EAAA;AAAA,YACL,WAAW,IAAO,GAAA,MAAA;AAAA,WACpB;AAAA,SACF;AAAA,QACA,CAAC,KAAK,CAAA;AAAA,OACR,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAGD,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AACnC,EAAA,QAAA,CAAS,MAAM,SAAS,CAAA,CAAA;AAExB,EAAM,MAAA,IAAA,GAAO,UAAU,IAAK,CAAA,IAAA,CAAA;AAE5B,EAAO,OAAA;AAAA,IAEL,IAAO,GAAA;AACL,MAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AAEf,MAAA,MAAA,GAAS,cAAe,EAAA,CAAA;AAAA,KAC1B;AAAA,IAEA,MAAA,CAAO,WAAW,MAAM;AAAA,KAAI,EAAA;AAC1B,MAAA,IAAA,CAAK,OAAU,GAAA,KAAA,CAAA;AAEf,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,QAAA,CAAS,OAAQ,EAAA,CAAA;AACjB,QAAS,QAAA,CAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAEnC,QAAS,QAAA,EAAA,CAAA;AAAA,SACR,GAAG,CAAA,CAAA;AAAA,KACR;AAAA,IACA,SAAW,EAAA,IAAA;AAAA,GACb,CAAA;AACF,CAAA"}