1.案例简介

在部分业务逻辑中,我们需要让一个字段只展示跳转文案,用户点击文案可以直接跳转到目标url

2.使用场景

部件、整机BG中会有根据单号/当前流程审核人,控制字段是否跳转到第三方系统的链接。

3.设计思路

通过目标字段的属性联动监听「属性所在表单初创状态被打开时」、「属性所在表单编辑状态被打开时」,使用自定义代码,通过上下文的API去动态设置baseConfig中的description属性内容;

4.案例

// 通过上下文API获取当前用户信息中的域账号
const { account: currentUser } = configs?.context?.globalContext?.context?.session?.getUser?.() || {};
// 通过上下文中当前页面的数据获取当前流程节点处理人域账号
const currentHandler = configs?.context?.config?.data?.CURRENT_HANDLER;
console.log('currentUser,currentUser', currentUser, currentHandler);
// 如果当前用户域账号为节点处理人域账号,则修改指定字段的描述属性内容,将其改为可跳转内容
if (currentUser !== currentHandler) {
    const targetId = configs?.context?.config?.data?.ID;
    // 根据页面数据动态组装跳转目标地址
    configs.context.setBaseConfig({
        formCode: `BASIC_INFO_GROUP`, // 字段所在表编码,可以在字段的「高级属性」中查看
        attrCode: 'CRT_TIME', // 字段编码
        attr: 'description',
        value: `<a href="https://baidu.com/?q=${targetId}">点击我跳转</a>`,
        // 如果是精确修改明细表某一行的字段,还需要增加如下两个属性
        id: '123', // 明细表行id,触发字段如果是明细表字段,则可以通过configs.extra.id获取
        index: 1 // 明细表行索引,触发字段如果是明细表字段,则可以通过configs.extra.index获取
    });
    // 必须增加改行代码,从而让整个页面重新渲染
    configs.context.refreshConfigs(true);
}
作者:袁子涵  创建时间:2025-05-30 15:20
最后编辑:袁子涵  更新时间:2025-06-26 10:44