ivue-material-plus
Version:
A high quality UI components Library with Vue.js
1 lines • 18.6 kB
Source Map (JSON)
{"version":3,"file":"instance.mjs","sources":["../../../../../src/components/ivue-modal/instance.ts"],"sourcesContent":["import {\r\n createApp,\r\n h,\r\n getCurrentInstance,\r\n ComponentInternalInstance,\r\n} from 'vue';\r\nimport Modal from './index.vue';\r\nimport { isClient } from '../../utils/helpers';\r\n\r\nimport IvueIcon from '../ivue-icon';\r\nimport IvueButton from '../ivue-button';\r\nimport IvueSpin from '../ivue-spin';\r\n\r\n// type\r\nimport type { Props } from './types/modal';\r\n\r\nconst prefixCls = 'ivue-modal-instance';\r\n\r\nModal.newInstance = (properties) => {\r\n if (!isClient) {\r\n return;\r\n }\r\n\r\n const _props = properties || {};\r\n\r\n const container = document.createElement('div');\r\n document.body.appendChild(container);\r\n\r\n // 当前实例\r\n let _instance: ComponentInternalInstance | null = null;\r\n\r\n const Instance = createApp({\r\n data() {\r\n return Object.assign({}, _props, {\r\n /**\r\n * 显示/隐藏\r\n *\r\n * @type {Boolean}\r\n */\r\n visible: false,\r\n /**\r\n * 对话框宽度,对话框的宽度是响应式的,\r\n * 当屏幕尺寸小于 768px 时,宽度会变为自动auto。\r\n * 当其值不大于 100 时以百分比显示,大于 100 时为像素\r\n *\r\n * @type {Number | String}\r\n */\r\n width: 416,\r\n /**\r\n * 标题\r\n *\r\n * @type {String}\r\n */\r\n title: '',\r\n /**\r\n * 内容\r\n *\r\n * @type {String}\r\n */\r\n content: '',\r\n /**\r\n * 图标类型\r\n *\r\n * @type {String}\r\n */\r\n iconType: '',\r\n /**\r\n * 图标名称\r\n *\r\n * @type {String}\r\n */\r\n iconName: '',\r\n /**\r\n * 确定按钮文字\r\n *\r\n * @type {String}\r\n */\r\n confirmText: '确认',\r\n /**\r\n * 关闭文案\r\n *\r\n * @type {String}\r\n */\r\n cancelText: '取消',\r\n /**\r\n * 显示取消按钮\r\n *\r\n * @type {Boolean}\r\n */\r\n showCancel: false,\r\n /**\r\n * 点击确定按钮时,确定按钮是否显示 loading 状态,\r\n * 开启则需手动设置value来关闭对话框\r\n *\r\n * @type {Boolean}\r\n */\r\n loading: false,\r\n /**\r\n * loading类型\r\n *\r\n * @type {String}\r\n */\r\n loadingType: 'spin',\r\n /**\r\n * 页面是否可以滚动\r\n *\r\n * @type {Boolean}\r\n */\r\n scrollable: false,\r\n /**\r\n * 是否显示关闭按钮\r\n *\r\n * @type {Boolean}\r\n */\r\n closable: false,\r\n /**\r\n * 关闭有动画,期间使用此属性避免重复点击\r\n *\r\n * @type {Boolean}\r\n */\r\n closing: false,\r\n /**\r\n * 按钮loading\r\n *\r\n * @type {Boolean}\r\n */\r\n buttonLoading: false,\r\n /**\r\n * 使用spain\r\n *\r\n * @type {Boolean}\r\n */\r\n spinLoading: false,\r\n });\r\n },\r\n created() {\r\n _instance = getCurrentInstance();\r\n },\r\n methods: {\r\n // 点击取消的回调\r\n handleCancel() {\r\n // 关闭有动画,期间使用此属性避免重复点击\r\n if (this.closing) {\r\n return;\r\n }\r\n\r\n // 关闭弹窗\r\n this.$refs.modal.data.visible = false;\r\n\r\n // 取消loading\r\n this.setLoading(false);\r\n\r\n // 点击取消的回调\r\n this.onCancel();\r\n // 删除实例\r\n this.remove();\r\n },\r\n // 点击确认\r\n handleConfirm() {\r\n // 关闭有动画,期间使用此属性避免重复点击\r\n if (this.closing) {\r\n return;\r\n }\r\n\r\n // 确定按钮是否显示 loading 状态\r\n if (this.loading) {\r\n this.setLoading(true);\r\n }\r\n // 点击隐藏\r\n else {\r\n this.$refs.modal.data.visible = false;\r\n\r\n // 销毁实例\r\n this.remove();\r\n }\r\n\r\n // 点击确定的回调\r\n this.onConfirm();\r\n },\r\n // 设置loading\r\n setLoading(value: string) {\r\n // spin\r\n if (this.loadingType === 'spin') {\r\n this.spinLoading = value;\r\n }\r\n\r\n // button\r\n if (this.loadingType === 'button') {\r\n this.buttonLoading = value;\r\n }\r\n },\r\n // 销毁实例\r\n remove() {\r\n this.closing = true;\r\n\r\n setTimeout(() => {\r\n this.closing = false;\r\n this.destroy();\r\n }, 300);\r\n },\r\n // 销毁实例\r\n destroy() {\r\n Instance.unmount();\r\n\r\n container && document.body.removeChild(container);\r\n\r\n this.onRemove();\r\n },\r\n // 点击确认\r\n onConfirm() {},\r\n // 点击取消的回调\r\n onCancel() {},\r\n // 删除实例\r\n onRemove() {},\r\n },\r\n render() {\r\n // 渲染头部\r\n let headRender;\r\n\r\n // 标题\r\n if (this.title) {\r\n headRender = h(\r\n 'div',\r\n {\r\n class: `${prefixCls}--head`,\r\n },\r\n [\r\n h(\r\n IvueIcon,\r\n {\r\n class: [\r\n `${prefixCls}--head__icon`,\r\n `${prefixCls}--head__${this.iconType}`,\r\n ],\r\n },\r\n {\r\n default: () => this.iconName,\r\n }\r\n ),\r\n h('div', {\r\n class: `${prefixCls}--head__title`,\r\n innerHTML: this.title,\r\n }),\r\n ]\r\n );\r\n }\r\n\r\n // 渲染body\r\n let bodyRender;\r\n\r\n // 有渲染函数\r\n if (this.render) {\r\n bodyRender = h(\r\n 'div',\r\n {\r\n class: `${prefixCls}--body ${prefixCls}--body__render`,\r\n },\r\n [this.render(h)]\r\n );\r\n }\r\n // 普通渲染\r\n else {\r\n bodyRender = h(\r\n 'div',\r\n {\r\n class: `${prefixCls}--body`,\r\n },\r\n [\r\n h('div', {\r\n innerHTML: this.content,\r\n }),\r\n ]\r\n );\r\n }\r\n\r\n // 渲染底部\r\n const footerRender = [];\r\n\r\n // 取消按钮\r\n if (this.showCancel) {\r\n footerRender.push(\r\n h(\r\n IvueButton,\r\n {\r\n class: 'ivue-modal-footer--button',\r\n outline: true,\r\n color: '#dcdfe6',\r\n onClick: this.handleCancel,\r\n },\r\n () => this.cancelText\r\n )\r\n );\r\n }\r\n\r\n // 确认按钮\r\n footerRender.push(\r\n h(\r\n IvueButton,\r\n {\r\n class: 'ivue-modal-footer--button',\r\n status: 'primary',\r\n depressed: true,\r\n loading: this.buttonLoading,\r\n onClick: this.handleConfirm,\r\n },\r\n () => this.confirmText\r\n )\r\n );\r\n\r\n return h(\r\n Modal,\r\n {\r\n ..._props,\r\n // 对话框宽度\r\n width: this.width,\r\n // 页面是否可以滚动\r\n scrollable: this.scrollable,\r\n // 是否显示关闭按钮\r\n closable: this.closable,\r\n // modelValue\r\n modelValue: this.visible,\r\n // 更新modelValue\r\n 'onUpdate:modelValue': (status: boolean) => {\r\n this.visible = status;\r\n },\r\n // 点击取消的回调\r\n 'onOn-cancel': this.handleCancel,\r\n // ref\r\n ref: 'modal',\r\n },\r\n () =>\r\n h(\r\n 'div',\r\n {\r\n class: prefixCls,\r\n },\r\n [\r\n headRender,\r\n bodyRender,\r\n h(\r\n 'div',\r\n {\r\n class: `${prefixCls}--footer`,\r\n },\r\n footerRender\r\n ),\r\n this.loadingType === 'spin' &&\r\n h(IvueSpin, {\r\n class: 'ivue-modal-spin',\r\n fix: true,\r\n show: this.spinLoading,\r\n }),\r\n ]\r\n )\r\n );\r\n },\r\n });\r\n\r\n Instance.mount(container);\r\n\r\n const modal: any = _instance.refs.modal;\r\n\r\n return {\r\n show(props: Props) {\r\n // 显示取消按钮\r\n modal.$parent.showCancel = props.showCancel;\r\n // 图标类型\r\n modal.$parent.iconType = props.icon;\r\n\r\n switch (props.icon) {\r\n case 'info':\r\n modal.$parent.iconName = 'info';\r\n break;\r\n case 'success':\r\n modal.$parent.iconName = 'check_circle';\r\n break;\r\n case 'warning':\r\n modal.$parent.iconName = 'warning';\r\n break;\r\n case 'error':\r\n modal.$parent.iconName = 'error';\r\n break;\r\n case 'confirm':\r\n modal.$parent.iconName = 'help';\r\n break;\r\n }\r\n\r\n // loading类型\r\n if ('loadingType' in props) {\r\n modal.$parent.loadingType = props.loadingType;\r\n }\r\n\r\n // 对话框宽度\r\n if ('width' in props) {\r\n modal.$parent.width = props.width;\r\n }\r\n\r\n // 是否显示关闭按钮\r\n if ('closable' in props) {\r\n modal.$parent.closable = props.closable;\r\n }\r\n\r\n // 标题\r\n if ('title' in props) {\r\n modal.$parent.title = props.title;\r\n }\r\n\r\n // 内容\r\n if ('content' in props) {\r\n modal.$parent.content = props.content;\r\n }\r\n\r\n // 确定按钮文字\r\n if ('confirmText' in props) {\r\n modal.$parent.confirmText = props.confirmText;\r\n }\r\n\r\n // 关闭文案\r\n if ('cancelText' in props) {\r\n modal.$parent.cancelText = props.cancelText;\r\n }\r\n\r\n // 点击取消的回调\r\n if ('onCancel' in props) {\r\n modal.$parent.onCancel = props.onCancel;\r\n }\r\n\r\n // 点击确认\r\n if ('onConfirm' in props) {\r\n modal.$parent.onConfirm = props.onConfirm;\r\n }\r\n\r\n // 异步加载 触发 确认\r\n if ('loading' in props) {\r\n modal.$parent.loading = props.loading;\r\n }\r\n\r\n // 页面是否可以滚动\r\n if ('scrollable' in props) {\r\n modal.$parent.scrollable = props.scrollable;\r\n }\r\n\r\n // 当组件销毁时通知\r\n modal.$parent.onRemove = props.onRemove;\r\n\r\n // 显示\r\n modal.data.visible = true;\r\n },\r\n remove() {\r\n modal.data.visible = false;\r\n\r\n // 取消loading\r\n modal.$parent.setLoading();\r\n modal.$parent.remove();\r\n },\r\n component: modal,\r\n };\r\n};\r\n\r\nexport default Modal;\r\n"],"names":[],"mappings":"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"}