桌面端弹出类组件

桌面端提供的弹出类组件包括:全局提示、通知提醒框、警告提示、文字提示、气泡卡片、确认对话框、气泡确认框、对话框、抽屉、弹出层、加载中等组件,运行效果如下面几幅图所示

  • 全局提示

  • 通知提醒框

  • 警告提示

  • 文字提示

  • 气泡卡片

  • 确认对话框

  • 气泡确认框

1720409333595

  • 对话框

  • 抽屉

  • 弹出层

  • 加载中-功能页遮罩

  • 加载中-全屏遮罩

全局提示

全局提示组件用于在界面顶部显示一个提示,支持自动消失,支持成功、失败、消息、警告等四种类型,如下图所示

全局提示组件提供“显示”操作,设置“内容”和“类型”属性,设计界面如下图所示

全局提示组件提供静态方法:success、error、info、warning,先引用 message,再调方法

  • React 示例代码如下
import { message } from 'antd';
...
message.info("删除角色执行成功!");//默认显示3s
message.info("删除角色执行成功!",10);//显示10s
  • Vue 示例代码如下
import {message} from 'ant-design-vue';
...
message.info("删除角色执行成功!");//默认显示3s
message.info("删除角色执行成功!",10);//显示10s

通知提醒框

通知提醒框组件用于在界面四个角(左上、右上、左下、右下)显示一个通知,支持自动关闭,支持成功、失败、消息、警告等四种类型,如下图所示

通知提醒框组件提供“显示”操作,设置标题、内容、通知类型、弹出位置等属性,设计界面如下图所示

通知提醒框组件提供静态方法:success、error、info、warning,参数包括通知标题 message 和通知内容 description。先引用 notification,再调方法

  • React 示例代码如下
import { notification } from 'antd';
...
notification.error({message:"请先添加工作流应用"});
  • Vue 示例代码如下
import {notification} from 'ant-design-vue';
...
notification.error({message:"请先添加工作流应用"});

警告提示

警告提示组件用于在界面上显示一个提示,支持成功、失败、信息、警告等四种类型,如下图所示

通过设置标题、内容、通知类型、弹出位置等属性实现显示效果,设计界面如下图所示

显示隐藏

使用“动态隐藏”属性,控制组件是否显示,本例当“页面数据.显示警告提示”为真时显示,否则隐藏,设计界面如下图所示

在组件的“关闭后事件”中,设置“页面数据.显示警告提示”为假,设置隐藏

在需要显示的时候,设置“页面数据.显示警告提示”为真,显示警告提示

动态类型

类型根据数据动态设置。由于组件要求类型不能为空,因此需要采用特殊写法,如下面的代码所示,其中

  • 提示内容 message 属性绑定 pageData 的 redisVal 列
  • 类型 type 属性绑定 pageData 的 state 列,$page.$compRefs 是固定写法
<antdpro:Alert banner="true" closable="false" id="alert0" message="{pageData.current?.redisVal}" type="{$page.$compRefs?.pageData?.current?.state}">
</antdpro:Alert>

1741336868407

文字提示

文字提示组件用于给某个组件增加一个文字提示,支持悬停、点击、右键、获取焦点等四种触发行为,支持设置显示位置,运行效果如下图所示

文字提示组件内部的组件,就是触发显示文字提示的组件。通过设置文字提示组件的提示文字、触发行为、位置、颜色等属性实现显示效果,设计界面如下图所示

气泡卡片

气泡卡片组件用于给某个组件增加一个提示,提示中可以包含任意内容,支持悬停、点击、右键、获取焦点等四种触发行为,支持设置显示位置,运行效果如下图所示

气泡卡片组件内部的组件,就是触发显示气泡卡片的组件。气泡卡片组件支持通过“显示”进入可视化开发,通过“提示配置”设置触发行为、位置、颜色等属性实现显示效果,设计界面如下图所示

确认对话框

确认对话框用于在界面上显示一个确认对话框,提供给用户选择确定还是取消,运行效果如下图所示

Modal 提供静态方法 confirm 显示确认对话框,方法定义如下,先引用 Modal,再调方法

方法名:
    Modal.confirm

参数:
    title:标题
    content:内容
    getContainer:指定 Modal 挂载的节点,固定写法
    icon:自定义图标
    okText:确认按钮文字
    cancelText:取消按钮文字
    onOk:点击确定按钮的回调
    onCancel:点击取消按钮的回调
  • React 示例代码如下
import React from "react";
import {Modal} from "antd";

        Modal.confirm({          
            title: '提示',
            content: '提示内容',
            getContainer:() => document.querySelector('#pcx-page-root'),
            okText: "确定",
            cancelText: "取消",
            onOk() {
                console.log('OK');
            },
            onCancel() {
                console.log('Cancel');
            }
        });
  • Vue 示例代码如下
import { Modal as modal } from 'ant-design-vue';

        modal.confirm({
            title: '提示',
            content: '提示内容',
            getContainer:() => document.querySelector('#pcx-page-root'),
            okText: "确定",
            cancelText: "取消",
            onOk() {
                console.log('OK');
            },
            onCancel() {
                console.log('Cancel');
            }
        });

气泡确认框

气泡确认框组件用于给某个组件增加一个确认框提示,提供给用户选择确定还是取消,支持悬停、点击、右键、获取焦点等四种触发行为,支持设置显示位置,运行效果如下图所示

1720409333595

确认框支持设置标题、描述、图标、确定按钮、取消按钮和提示配置,如下图所示

1720409579576

弹出层

弹出层组件用于显示一个对话框,提供标题、内容区、操作区,运行效果如下图所示

内容区

弹出层组件的内容区可以拖放任意组件,这些组件和弹出层组件外的组件都在同一个 W 页面中

操作区

弹出层自带确定、取消按钮,及其事件,点击按钮后触发相应事件,设计界面如下图所示

点击确定按钮会关闭弹出层,调用 event.preventDefault(); 可阻止弹出层的关闭,通常用于关闭时的条件判断,示例代码如下

    onModal3Ok = (event) => {
        message.warning("不满足条件,不关闭");
        event.preventDefault();
    }

自定义操作区

弹出层组件支持自定义操作区,在源码中增加 footer="" 属性,源码如下,这样设置后不会触发弹出层的确定、取消事件

<antdpro:Modal cancelText="取消" footer="" id="modal2" okText="确定" ref="modal2" title="弹出层标题"/>

在弹出层中添加按钮组件,实现确定、取消按钮功能,设计界面如下图所示

在按钮的点击事件中,调用弹出层组件的 hide 方法,关闭弹出层,代码如下

react 代码

    onOkBtnClick = (event) => {
        this.comp("modal2").hide();//关闭弹出层
    }

vue 代码

    let onOkBtnClick = (event) => {
        $page.comp("modal2").hide();//关闭弹出层
    }

使用原生 Modal 组件

系统提供的弹出层组件是基于原生 Modal 组件封装的,可以直接在页面上拖拽组件使用,也可以不在页面中拖放组件,直接在 js 文件中调用原生 Modal 组件的静态方法。js 中直接调用的时候需要注意:必须设置 getContainer 属性,指定 Modal 的挂载节点

原生 Modal 组件用于在界面上显示一个对话框,支持成功、失败、消息、警告等四种类型,如下图所示

1726715717963

原生 Modal 组件提供静态方法:success、error、info、warning,先引用 Modal,再调方法

react 添加引用

import { Modal } from 'antd';
import React, { createContext } from 'react';//在 content 中写 html 节点时需要引用

vue 添加引用

import {Modal} from 'ant-design-vue';

调用 Modal 的 info、success、warning、error 等方法,示例代码如下

    Modal.info({
        title: 'info!',
        content: 'info提示',
        getContainer:() => document.querySelector('#pcx-page-root')
    })

content 支持 html 片段,示例代码如下:

    Modal.info({
        title: 'confirm!',
        content: <div><p>confirm提示</p><p>换行显示</p></div>,
        getContainer:() => document.querySelector('#pcx-page-root')
    })

对话框

对话框组件用于显示一个对话框,对话框里面嵌入一个 w 页面,运行效果如下图所示

在父页面中添加对话框组件,打开子页面

  • 调用对话框组件的打开 open 方法,打开子页面,同时给子页面传参
  • 子页面打开后,使用 this.params 获取传入的参数
  • 子页面使用确定返回 okCLose 或 发送消息 postMessage 将数据返回父页面
  • 父页面的对话框组件通过数据映射或接收消息事件,接收子页面返回的数据

具体使用方法,参考《页面交互

抽屉

抽屉组件用于从屏幕边缘显示一个面板,抽屉里面可以直接拖放组件,也可以嵌入一个 w 页面,运行效果如下图所示

抽屉组件中直接放组件,使用方法同弹出层;嵌入一个页面,使用方法同对话框。嵌入页面的具体使用方法,参考《页面交互

设置挂载节点

抽屉默认给整个门户增加遮罩,即全屏显示,然后在其上显示抽屉,如上图所示

抽屉组件提供“挂载节点”属性,设置遮罩的覆盖区域,即非全屏显示,如下图所示

1729841553466

1729841610922

实现方法:在抽屉组件上,通过 rootStyle 属性设置定位方式为绝对定位,并设置挂载节点函数

1729841882747

  • 设置 rootStyle 属性:设置为定位方式=绝对定位 absolute

react 代码

<antdpro:Drawer rootStyle="position:absolute;" getContainer="{$page.drawer0GetContainerFn()}" id="drawer0" pagePath="$UI/pcx/interactive/popup-page.w">

vue 代码

<antdv:Drawer rootStyle="position:absolute;" getContainer="{drawer0GetContainerFn()}" id="drawer0" pagePath="$UI/pcx/interactive/popupPage.w">
  • 设置挂载节点函数:在函数中返回挂载节点

示例一:设置遮罩的区域为当前页面,挂载节点函数代码如下

react 代码

    drawer0GetContainerFn = () => {
        let pageRoot = this.getPage().renderRoot;
        return pageRoot;
    }

vue 代码

let drawer0GetContainerFn = () => {
    let pageRoot = $page.getPage().renderRoot;
    return pageRoot;
}

示例二:设置遮罩的区域为当前页面中拥有 drawerParent 样式的元素,在元素上添加样式 drawerParent,如下图所示

1729841841713

挂载节点函数代码如下

react 代码

drawer0GetContainerFn = () => {
    let pageRoot = this.getPage().renderRoot;
    return pageRoot.querySelector(".drawerParent");
}

vue 代码

let drawer0GetContainerFn = () => {
    let pageRoot = $page.getPage().renderRoot;
    return pageRoot.querySelector(".drawerParent ");
}

drawerParent 样式必须设置为相对定位

.drawerParent{
    position:relative;
}

加载中

加载中组件提供两种遮罩模式,如下面两幅图所示

  • 仅在功能页面上显示遮罩

  • 全屏显示遮罩

一般情况不需要使用加载中组件,数据组件的数据加载和通过 this.request 发送请求时,系统会自动显示遮罩,特殊场景需要显示遮罩时,提供下面两种方式

  • 方式一:使用加载中组件

加载中组件的属性说明

  • 加载中属性:设置为是,显示遮罩,设置为否,不显示遮罩
  • 全屏属性:设置为是,显示全屏遮罩,设置为否,在包裹组件上显示

全屏遮罩的加载中组件,无需包裹组件,设计界面如下图所示

非全屏遮罩的加载中组件,需要包裹组件,仅在被包裹的组件上显示遮罩,设计界面如下图所示

  • 方式二:写代码

调用页面组件的 setState 方法,给 loading 赋值为 true,则显示遮罩,赋值为 false,则不显示遮罩,更多加载设置可设置loading为对象,例如“{loading:{fullscreen:true}}”,属性内容可参考 antdpro 下 spin 组件配置,代码如下

//react
//显示加载
this.setState({loading:true});
this.setState({loading:{fullscreen:true,tip:"加载中..."}});//更多加载属性可以参考antdpro官网

//隐藏加载
this.setState({loading:false});
this.setState({loading:{}});

//vue
//显示加载
$page.setState({loading:true});
$page.setState({loading:{fullscreen:true,tip:"加载中..."}});//更多加载属性可以参考antdpro官网

//隐藏加载
$page.setState({loading:false});
$page.setState({loading:{}});

图 0

弹出类组件

弹出类组件提供很多属性用于界面展现和用户交互,鉴于官网介绍的比较详细,本文不再赘述。

组件 用途 Vantui 官网 Vant 官网
全局提示 全局展示操作反馈信息 全局提示 全局提示
通知提醒框 全局展示通知提醒信息 通知提醒框 通知提醒框
警告提示 警告提示,展现需要关注的信息 警告提示 警告提示
文字提示 简单的文字提示气泡框 文字提示 文字提示
气泡卡片 点击/鼠标移入元素,弹出气泡式的卡片浮层 气泡卡片 气泡卡片
气泡确认框 点击元素,弹出气泡式的确认框 气泡确认框 气泡确认框
抽屉 屏幕边缘滑出的浮层面板 抽屉 抽屉
弹出层 展示一个对话框,提供标题、内容区、操作区 对话框 对话框
加载中 用于页面和区块的加载中状态 加载中 加载中

案例位置

桌面-页面-页面交互-弹出类组件.w

桌面-页面-页面交互-弹出页面.w

results matching ""

    No results matching ""