EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他
2014-11-05
原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! /******************************************************** 主要用于 明细表格 字段间的计算 Start ******************************************************/ /** * 将 bindGridEvent() 函数 放在 明细表格,新增行 或 编辑 行事件之后调用即可,由于 每个业务表单的字段名称,及算法不一致,因此仅在单个模块中实现,其他模块需要可复制此代码进行修改 * @author WUYF * @date 2014-03-22 */ /** * 绑定 表格 事件 * @author WUYF */ function bindGridEvent() { try { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invQty}); // 数量 var invSaleCostEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invSaleCost}); // 产品单价 var discountEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:discount}); // 折扣额对象 var depositEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:deposit}); // 折扣率对象 var invMoneyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:invMoney}); // 金额对象 // 数量 绑定 离开事件 $(invQtyEdt.target).bind("blur",function(){ calcMoney(); // 根据 数量或单价变更后计算 金额 }); // 单价 绑定 离开事件 $(invSaleCostEdt.target).bind("blur",function(){ calcMoney(); // 根据 数量或单价变更后计算 金额 }); // 折扣额 绑定 离开事件 $(discountEdt.target).bind("blur",function(){ calcDiscount(); // 根据 折扣额变更后 计算 折扣率 }); // 折扣率 绑定离开事件 $(depositEdt.target).bind("blur",function(){ calcDeposit(); // 根据 折扣率变更后 计算 折扣额 }); // 金额 绑定离开事件 $(invMoneyEdt.target).bind("blur",function(){ calcMoneyChange(); // 金额变更 后 重新计算 单价,折扣额,折扣率 }); } catch(e) { alert(e); } } /** * 金额变更 后 重新计算 单价,折扣额,折扣率 */ function calcMoneyChange() { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invQty}); // 数量对象 var invSaleCostEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invSaleCost}); // 单价对象 var invMoneyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:invMoney}); // 金额对象 var discountEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:discount}); // 折扣额对象 var invQtyValue = $(invQtyEdt.target).val(); // 数量 值 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额 值 var invSaleCostValue = invMoneyValue / (invQtyValue*1.0); // 单价 值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 $(invSaleCostEdt.target).numberbox("setValue",invSaleCostValue); // 给 单价 赋值 if( discountValue == 0){ $(discountEdt.target).numberbox("setValue",invMoneyValue); // 给 折扣额 赋值 } calcDiscount(); // 根据 折扣额 计算 折扣率 } /** * 根据 数量或单价变更后计算 金额 * @author WUYF */ function calcMoney() { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invQty}); // 数量对象 var invSaleCostEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invSaleCost}); // 单价对象 var invMoneyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:invMoney}); // 金额对象 var discountEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:discount}); // 折扣额对象 var invQtyValue = $(invQtyEdt.target).val(); // 数量 值 var invSaleCostValue = $(invSaleCostEdt.target).val(); // 单价 值 var invMoneyValue = invQtyValue * invSaleCostValue; // 金额 值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 $(invMoneyEdt.target).numberbox("setValue",invMoneyValue); // 给 金额 赋值 if( discountValue == 0){ $(discountEdt.target).numberbox("setValue",invMoneyValue); // 给折扣额 赋值 calcDiscount(); } else{ calcDiscount(); } } /** * 根据 折扣额变更后 计算 折扣率 * @author WUYF */ function calcDiscount(){ var objGrid = $("#customerStock"); // 表格对象 var invMoneyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invMoney}); // 金额对象 var discountEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:discount}); // 折扣额对象 var depositEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:deposit}); // 折扣率对象 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 var depositValue = discountValue / (invMoneyValue * 1.0); // 折扣率 值 $(depositEdt.target).numberbox("setValue",depositValue); // 给折扣率 赋值 } /** * 根据 折扣率变更后 计算 折扣额 * @author WUYF */ function calcDeposit(){ var objGrid = $("#customerStock"); // 表格对象 var invMoneyEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:invMoney}); // 金额对象 var discountEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex,field:discount}); // 折扣额对象 var depositEdt = objGrid.datagrid(getEditor, {index:isEditingRowIndex, field:deposit}); // 折扣率对象 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值 var depositValue = $(depositEdt.target).val(); // 折扣率 值 var discountValue = invMoneyValue * depositValue; // 折扣额 值 $(discountEdt.target).numberbox("setValue",discountValue); // 折扣额 赋值 } /******************************************************** 主要用于 明细表格 字段间的计算 End ******************************************************/