|
如图所示 :需要实现的需求是 在表单的select组件“专业类型” 中设置change事件
1、通过选择“专业类型”,返回该专业的对应“专业提成系率”
2、然后表单中的“基本提成率”(假设为一个固定值)与“专业提成率”相加得到"提成小计"
代码运行后遇到的问题如下:
1、选择“专业类型”可以正确返回该专业类型对应的“专业提成系数”
2、“基本提成率”与返回值“专业提成率”进行相加时,得出“提成小计”的值有如下问题:“基本提成率”总是与上一次选择返回的“专业提成率”的值进行相加的
举例 :1、比如我打开页面后第1次选择“专业类型”为“基本提成”时(对应的返回值为0),得出的“提成小计”为 19 =19+0 ,这个看似正确的,但是可能并不正确,因为打开表单时,这里的默认值为0
2、我2次重新选择“专业类型”为“安装审核”时(对应的返回值为10),得出的“提成小计”的值还是19 ,这里说明 返回值10并没有参与计算,参与计算的可能是上一次的返回值0
3、我第3次重新选择“专业类型”为“钢筋审核”时(对应的返回值为11),得出的“提成小计”的值为29 ,这里证明参与计算的是上一次选择的返回值10
请教下管理大大 这个问题该如何解决呢
脚本代码:
var line = this.target.parentLine; //获取当前组件所在数据模板/数据表格的行(条目)对象
var zj_professionalType = line.getModule("zj_professionalType").getData(); //获取专业类型的值
var zj_basicCoefficient = line.getModule("zj_basicCoefficient").getData(); //获取基本提成率的值
var zj_professionalCoefficient = line.getModule("zj_professionalCoefficient").getData(); //获取专业提成率的值
var zj_totalCoefficient = line.getModule("zj_totalCoefficient").getData(); //获取提成率小计的值
switch (zj_professionalType) {
case "基本提成":
line.getModule("zj_professionalCoefficient").setData(0);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "安装审核":
line.getModule("zj_professionalCoefficient").setData(10);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "钢筋审核":
line.getModule("zj_professionalCoefficient").setData(11);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "景观审核":
line.getModule("zj_professionalCoefficient").setData(12);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "装修审核":
line.getModule("zj_professionalCoefficient").setData(13);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
case "安装编制":
line.getModule("zj_professionalCoefficient").setData(14);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "钢筋编制":
line.getModule("zj_professionalCoefficient").setData(15);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "景观编制":
line.getModule("zj_professionalCoefficient").setData(16);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
case "装修编制":
line.getModule("zj_professionalCoefficient").setData(17);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "跟踪审计":
line.getModule("zj_professionalCoefficient").setData(18);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "项目管理":
line.getModule("zj_professionalCoefficient").setData(19);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
case "全过程跟踪审计业务":
line.getModule("zj_professionalCoefficient").setData(0);
line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
break;
default:
line.getModule("zj_professionalCoefficient").setData(0);
line.getModule("zj_totalCoefficient").setData(0);
break;
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|