import { message } from '../dist/message.js'
import { DialogModal } from '@kevisual/system-ui'
import '@kevisual/system-ui/dist/index.css'
# Modal
> 使用原生js实现的弹窗组件
安装 `npm i @kevisual/system-ui`
export const ShowModal = () => {
const url = 'https://kevisual.xiongxiao.me/system/ui/index.js'
const onClick = async () => {
console.log('theme', DialogModal)
// console.log('clicked')
// message.info('Hello, this is a message')
const content = document.createElement('div');
content.innerHTML = `
Token 无效
您的登录凭证已失效,请重新登录。
确定
`;
const modal = DialogModal.render(content, {
id: 'redirect-to-login',
contentStyle: {
width: 'unset',
},
dialogTitleStyle: {
display: 'none',
padding: '0',
},
dialogContentStyle: {
padding: '0',
},
mask: true,
open: false,
});
modal.setOpen(true)
}
return 点击显示弹窗
}
*使用方法*
```js
// import { DialogModal, loadCss } from 'https://kevisual.xiongxiao.me/system/ui/index.js'
// loadCss('https://kevisual.xiongxiao.me/system/ui/index.css')
import { DialogModal } from '@kevisual/system-ui';
import '@kevisual/system-ui/dist/index.css';
const content = document.createElement('div');
content.innerHTML = `
Token 无效
您的登录凭证已失效,请重新登录。
确定
`;
export const modal = DialogModal.render(content, {
id: 'redirect-to-login',
contentStyle: {
width: 'unset',
},
dialogTitleStyle: {
display: 'none',
padding: '0',
},
dialogContentStyle: {
padding: '0',
},
mask: true,
open: false,
});
```
类型
```typescript
export type ModalOpts<
T = {
[key: string]: any;
},
U = {
[key: string]: any;
},
> = {
root?: HTMLDivElement | string;
id?: string;
mask?: boolean;
maskClassName?: string;
maskStyle?: ElStyle;
maskClose?: boolean;
contentClassName?: string;
contentStyle?: ElStyle;
destroyOnClose?: boolean; // 关闭,把Element移动到cacheFragment中
hideOnClose?: boolean; // 关闭后是否销毁,设置display:none
open?: boolean;
onClose?: () => void;
defaultStyle?: DefaultStyle;
} & T;
export type DefaultStyle = {
defaultContentStyle?: ObjCss;
defaultMaskStyle?: ObjCss;
} & T;
type DialogModalOpts = {
dialogTitle?: string;
dialogTitleClassName?: string;
dialogTitleStyle?: ElStyle;
dialogTitleEl?: HTMLElement;
dialogTitleCloseIcon?: boolean;
dialogContentClassName?: string;
dialogContentStyle?: ElStyle;
dialogFooterClassName?: string;
dialogFooterStyle?: ElStyle;
} & ModalOpts;
type DialogDefaultStyle = {
defaultDialogTitleStyle?: ObjCss;
defaultDialogContentStyle?: ObjCss;
defaultDialogFooterStyle?: ObjCss;
};
```