在表单虚拟字段渲染一个图表,并且可以根据条件筛选图表数据

介绍

在表单虚拟字段渲染一个图表,并且可以根据表单上某个字段值改变并筛选图表数据

详情

1.根据已有数据源创建一个普通图表,并配置好查询参数

2.在表单中加虚拟字段,并且写事件将图表渲染出来

const {
    $func,   // 功能对象
    $form,   // 功能表单对象
    $display,// 展示字段对象
    field,   // 字段详细配置
    model,   // 表单数据
    value,   // 当前值
} = EventOptions;
const admin = JE.useAdmin();
return (dom,options)=>{
    // 图表配置
    const chartOptions = {
        code:'DCTXSJY1204',// 图表编码
        style:'height:300px;',// 高度
        hideSearch:'left',// 隐藏查询区域
        params: {
                TEST_QJLX_CODE: model.TEST_QJLX_CODE,
        } // 默认参数,可以配合hideSearch使用// 默认参数
    };
    return admin?.emitMicroEvent(
        'JE_PLUGIN_CHART_MODULE',
        'chart-renderer',
        dom,
        chartOptions
    ).then((chartref)=>{
        $form.$chart = chartref;
    })
}

3.表单字段值改变中编写事件,值改变就刷新图表,当前案例使用的是请假类型字段

const {
    $func, // 功能对象
    field, // 字段详细配置
    model, // 表单数据
    type,  // 类型:column(列表字段)|form(表单字段)
    $form, // 功能表单对象(表单编辑起效)
    $grid, // 功能列表对象(列表编辑起效)
    value, // 当前值
    valueOptions, // 当前值对应的选项数据
} = EventOptions;

//值改变事件加载图表,条件是请假类型
$form.$chart?.value.load({TEST_QJLX_CODE:value});

4.表单激活事件中,有值的情况下进表单刷新图表

/**
 * 功能每次进入到表单界面后,全会触发本事件
 */
const {
    $func, // 功能对象
    $form, // 功能表单对象
} = EventOptions;
//获取请假类型
const TEST_QJLX_CODE = $form.getValues('TEST_QJLX_CODE');
//传参并刷新图表 如果没有加载的情况下 可以加延时
$form.chart?.value.load({TEST_QJLX_CODE:TEST_QJLX_CODE});
最后编辑: 呼丽华  文档更新时间: 2025-01-15 16:00   作者:呼丽华