UNPKG

ivue-material-plus

Version:

A high quality UI components Library with Vue.js

1 lines 4.54 kB
{"version":3,"file":"modal.mjs","sources":["../../../../../src/components/ivue-modal/modal.ts"],"sourcesContent":["import Modal from './instance';\r\n\r\n// types\r\nimport type ModalInstance from './index.vue';\r\n\r\nexport type ModalInstance = InstanceType<typeof ModalInstance>;\r\n\r\ntype Options = {\r\n render?: () => void;\r\n onRemove?: () => void;\r\n lockScroll?: any;\r\n icon?: string;\r\n showCancel?: boolean;\r\n};\r\n\r\ntype Props = {\r\n icon?: string;\r\n showCancel?: boolean;\r\n};\r\n\r\n// instance\r\nlet modalInstance: ModalInstance;\r\n\r\nfunction getModalInstance(render = undefined, lockScroll = true): any {\r\n modalInstance =\r\n modalInstance ||\r\n Modal.newInstance({\r\n // 是否显示关闭按钮\r\n closable: false,\r\n // 是否允许点击遮罩层关闭\r\n maskClosable: false,\r\n // 不显示底部\r\n footerHide: true,\r\n // 渲染函数\r\n render: render,\r\n // 是否禁止对页面滚动条的修改\r\n lockScroll,\r\n });\r\n\r\n return modalInstance;\r\n}\r\n\r\n// 渲染实例\r\nfunction renderInstance(options: Options) {\r\n // 自定义内容,使用后不再限制类型, content 也无效\r\n const render = 'render' in options ? options.render : undefined;\r\n // 是否禁止对页面滚动条的修改\r\n const lockScroll = 'lockScroll' in options ? options.lockScroll : true;\r\n\r\n // 创建实例\r\n const instance = getModalInstance(render, lockScroll);\r\n\r\n // 删除实例\r\n options.onRemove = function () {\r\n modalInstance = null;\r\n };\r\n\r\n // 显示弹窗\r\n instance.show(options);\r\n}\r\n\r\n// 信息\r\nModal.info = (props: Props = {}) => {\r\n props.icon = 'info';\r\n props.showCancel = false;\r\n\r\n return renderInstance(props);\r\n};\r\n\r\n// 成功\r\nModal.success = (props: Props = {}) => {\r\n props.icon = 'success';\r\n props.showCancel = false;\r\n\r\n return renderInstance(props);\r\n};\r\n\r\n// 警告\r\nModal.warning = (props: Props = {}) => {\r\n props.icon = 'warning';\r\n props.showCancel = false;\r\n\r\n return renderInstance(props);\r\n};\r\n\r\n// 失败\r\nModal.error = (props: Props = {}) => {\r\n props.icon = 'error';\r\n props.showCancel = false;\r\n\r\n return renderInstance(props);\r\n};\r\n\r\n// 确认弹窗\r\nModal.confirm = (props: Props = {}) => {\r\n props.icon = 'confirm';\r\n props.showCancel = true;\r\n\r\n return renderInstance(props);\r\n};\r\n\r\n// 删除实例\r\nModal.remove = () => {\r\n // 在加载状态,取消后删除\r\n if (!modalInstance) {\r\n return false;\r\n }\r\n\r\n const instance = getModalInstance();\r\n\r\n instance.remove();\r\n};\r\n\r\nexport default Modal;\r\n"],"names":[],"mappings":";;;;AAqBA,IAAI,aAAA,CAAA;AAEJ,SAAS,gBAAiB,CAAA,MAAA,GAAS,KAAW,CAAA,EAAA,UAAA,GAAa,IAAW,EAAA;AACpE,EACE,aAAA,GAAA,aAAA,IACA,MAAM,WAAY,CAAA;AAAA,IAEhB,QAAU,EAAA,KAAA;AAAA,IAEV,YAAc,EAAA,KAAA;AAAA,IAEd,UAAY,EAAA,IAAA;AAAA,IAEZ,MAAA;AAAA,IAEA,UAAA;AAAA,GACD,CAAA,CAAA;AAEH,EAAO,OAAA,aAAA,CAAA;AACT,CAAA;AAGA,SAAS,eAAe,OAAkB,EAAA;AAExC,EAAA,MAAM,MAAS,GAAA,QAAA,IAAY,OAAU,GAAA,OAAA,CAAQ,MAAS,GAAA,KAAA,CAAA,CAAA;AAEtD,EAAA,MAAM,UAAa,GAAA,YAAA,IAAgB,OAAU,GAAA,OAAA,CAAQ,UAAa,GAAA,IAAA,CAAA;AAGlE,EAAM,MAAA,QAAA,GAAW,gBAAiB,CAAA,MAAA,EAAQ,UAAU,CAAA,CAAA;AAGpD,EAAA,OAAA,CAAQ,WAAW,WAAY;AAC7B,IAAgB,aAAA,GAAA,IAAA,CAAA;AAAA,GAClB,CAAA;AAGA,EAAA,QAAA,CAAS,KAAK,OAAO,CAAA,CAAA;AACvB,CAAA;AAGA,KAAA,CAAM,IAAO,GAAA,CAAC,KAAe,GAAA,EAAO,KAAA;AAClC,EAAA,KAAA,CAAM,IAAO,GAAA,MAAA,CAAA;AACb,EAAA,KAAA,CAAM,UAAa,GAAA,KAAA,CAAA;AAEnB,EAAA,OAAO,eAAe,KAAK,CAAA,CAAA;AAC7B,CAAA,CAAA;AAGA,KAAA,CAAM,OAAU,GAAA,CAAC,KAAe,GAAA,EAAO,KAAA;AACrC,EAAA,KAAA,CAAM,IAAO,GAAA,SAAA,CAAA;AACb,EAAA,KAAA,CAAM,UAAa,GAAA,KAAA,CAAA;AAEnB,EAAA,OAAO,eAAe,KAAK,CAAA,CAAA;AAC7B,CAAA,CAAA;AAGA,KAAA,CAAM,OAAU,GAAA,CAAC,KAAe,GAAA,EAAO,KAAA;AACrC,EAAA,KAAA,CAAM,IAAO,GAAA,SAAA,CAAA;AACb,EAAA,KAAA,CAAM,UAAa,GAAA,KAAA,CAAA;AAEnB,EAAA,OAAO,eAAe,KAAK,CAAA,CAAA;AAC7B,CAAA,CAAA;AAGA,KAAA,CAAM,KAAQ,GAAA,CAAC,KAAe,GAAA,EAAO,KAAA;AACnC,EAAA,KAAA,CAAM,IAAO,GAAA,OAAA,CAAA;AACb,EAAA,KAAA,CAAM,UAAa,GAAA,KAAA,CAAA;AAEnB,EAAA,OAAO,eAAe,KAAK,CAAA,CAAA;AAC7B,CAAA,CAAA;AAGA,KAAA,CAAM,OAAU,GAAA,CAAC,KAAe,GAAA,EAAO,KAAA;AACrC,EAAA,KAAA,CAAM,IAAO,GAAA,SAAA,CAAA;AACb,EAAA,KAAA,CAAM,UAAa,GAAA,IAAA,CAAA;AAEnB,EAAA,OAAO,eAAe,KAAK,CAAA,CAAA;AAC7B,CAAA,CAAA;AAGA,KAAA,CAAM,SAAS,MAAM;AAEnB,EAAA,IAAI,CAAC,aAAe,EAAA;AAClB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,WAAW,gBAAiB,EAAA,CAAA;AAElC,EAAA,QAAA,CAAS,MAAO,EAAA,CAAA;AAClB,CAAA"}