Skip to content
On this page

Dialog

Dialog 是一个特定类型的窗体,用于显示消息、接受用户输入以及向用户提出选择。

因为调用方式比较方便,只需要传入一些配置信息,就可以显示一个对话框,所以 Dialog 也可以用于显示一些简单的提示信息。

注意:打开Dialog时,会阻塞其他窗体,直到用户关闭Dialog。

showMessageBox

ts
 showMessageBox(
    option:{
        message?: string;
        type?: 'info' | 'error' | 'question' | 'warning';
        title?: string;
        buttons?: string[];
    }):Promise<{
        response: number;
    }>

response 是用户点击的按钮的索引

response is the index of the button clicked by the user.

usage:

ts
import { Dialog } from '@/packages/feature/dialog/Dialog';
import { Notify } from '@/packages/plug';

async function handleClick() {
  let res = await Dialog.showMessageBox({
    type: 'info',
    title: 'title',
    message: '无法将文件移动到“C:',
    buttons: ['确定', '取消'],
  });
  /*
    res:
    {
        response: 0
    }
    */
  new Notify({
    title: 'title',
    content: JSON.stringify(res),
    timeout: 5000,
  });
}

showProcessDialog

展示一个进度条对话框

usage:

ts
import { Dialog } from 'vtron';

async function handleClick() {
  let { setProgress } = await Dialog.showProcessDialog({
    title: 'title',
    message: 'message',
  });

  setInterval(() => {
    setProgress(Math.random() * 100);
  }, 1000);
}

会返回 setProgress 函数,调用 setProgress 函数,可以更新进度条的进度

当进度到达 100 时,进度条会自动关闭