【JEECG】 子改主#表单值改变事件
功能说明:
当子表的值发生改变的时候,关联修改主表的字段值。
功能场景:子表金额字段求和,赋值给主表总金额字段。
子表添加监听事件(动态修改):
valueChange:
当数据发生改变的时候触发的事件
removed:
点击删除
按钮、调用removeRows
方法时会触发
参考文档:JVxeTable表格#事件#方法使用
<JVxeTablekeep-sourceresizableref="salesOrderAccount":loading="salesOrderAccountTable.loading":columns="salesOrderAccountTable.columns":dataSource="salesOrderAccountTable.dataSource":dragSort="true":height="340":rowNumber="true":rowSelection="true":disabled="formDisabled":toolbar="true"@valueChange="getTableData"@removed="getTableData"
/>
主表表单增加获取数据方法 getFieldsValue:
//表单配置const [registerForm, {setProps, resetFields, setFieldsValue, getFieldsValue, validate}] = useForm({labelWidth: 100,schemas: formSchema,showActionButtonGroup: false,baseColProps: {span: 6}});//方法配置const [handleChangeTabs, handleSubmit, requestSubTableData, formRef] = useJvxeMethod(requestAddOrEdit, classifyIntoFormData, tableRefs, activeKey, refKeys);
事件处理:
//TODO 子改主 处理计算数据 金额计算function getTableData() {//子表数据let salesOrderAccountList = tableRefs.salesOrderAccount.value.getTableData()//计算数据let totals = salesOrderAccountList.reduce((total, item) => total + item.receiptAmount, 0)//获取主表值let amount = getFieldsValue().amount;//设置主表值setFieldsValue({receiptAmount: salesOrderAccountList.length > 0 ? totals : 0,owedAmount: amount - totals,})}