李维 发表于 2025-7-18 16:31:14

明细表中rowDefaultValue规则,如何根据表头字段不同值执行不同的赋值逻辑

环境:华为云测试区
租户:icd
问题描述:
当单头“规则类型”的值为“2.特定规则”时,明细表新增行,生效日期默认为当前日期,否则为固定值:1900/01/02
如下图所示:


对应栏位添加rowDefaultValue规则如下,只能实现默认当天日期:
const value = { s_date: moment().format('YYYY-MM-DD') };   return value;
如果需要根据表头规则类型,指定不同默认值,把赋值脚本替换为以下两中方案,执行没有任何效果,请问是脚本哪里写的有问题吗?
方案一:
    var ruleType = currentControl.parent.parent.parent.get("rule_type").value;
    var sDate =ruleType=='1'?sDate = moment().format('1900-01-02'): moment().format('YYYY-MM-DD');
    const value = { s_date: sDate };
    return value;方案二:
(() => {
    var ruleType = currentControl.parent.parent.parent.get("rule_type").value;
    var sDate =ruleType=='1'?sDate = moment().format('1900-01-02'): moment().format('YYYY-MM-DD');
    const value = { s_date: sDate };
    return value;
})();



翁俊 发表于 2025-7-18 18:56:23

1、使用表格单元格的赋值规则

2、在触发条件中写入自执行函数,具体字段和判断逻辑改为自己的
(() => {   var ruleType = currentControl.parent.parent.parent.get("user_name").value;   var sDate =ruleType=='张三'? 1: 2;   return sDate; })();


3、最终效果如下,满足条件是1,不满足条件是2,



翁俊 发表于 2025-7-21 10:38:49

行默认值规则,赋值脚本中return返回的要是一个对象,并且单身获取单头数据,只需要一个parent
正确写法如下varnewvalue = {user_info_name:currentControl.parent.get('user_name').value == 3321?1:2} ;return newvalue;
对象里面可以是当前行多个字段,也可以一个字段,对象中多个字段使用逗号隔开,里面如果有字符串需要使用单引号,对象结束后需要有分号结束,
页: [1]
查看完整版本: 明细表中rowDefaultValue规则,如何根据表头字段不同值执行不同的赋值逻辑