From 1a8806f4148435fc4dd593a89d919834413b65af Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Sat, 15 Jun 2024 15:40:45 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86:=20?= =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=E7=9A=84=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=89=A9=E6=96=99=E5=8F=B7=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=A1=A8=E6=A0=BC=E4=B8=AD=E4=B8=80=E8=A1=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=20=E6=96=B0=E5=A2=9E=E5=A6=82=E6=9E=9Cform?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E4=B8=8D=E5=A1=AB=E5=86=99=E7=BE=8E=E5=85=83?= =?UTF-8?q?=E7=9A=84=E6=B1=87=E7=8E=87=EF=BC=8C=E4=B8=8D=E8=83=BD=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E6=B7=BB=E5=8A=A0=E7=89=A9=E6=96=99=E6=8C=89=E9=92=AE?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9table=E8=A1=A8=E6=A0=BC=E7=9A=84rmb?= =?UTF-8?q?=E5=92=8C=E7=BE=8E=E5=85=83=E7=9A=84=E5=90=84=E7=A7=8D=E6=8A=A5?= =?UTF-8?q?=E4=BB=B7=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9form=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E8=AE=A1=E7=AE=97=E6=A8=A1=E5=9D=97=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E4=BF=AE=E6=94=B9=E6=A0=B9=E6=8D=AE=E5=B8=81?= =?UTF-8?q?=E7=A7=8D=E7=9A=84=E4=B8=8D=E5=90=8C=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=98=AFRMB=EF=BC=8C=E8=A1=A8=E6=A0=BC=E5=8F=AA=E8=83=BD?= =?UTF-8?q?=E5=85=88=E5=A1=AB=E5=86=99=20=E4=B8=8D=E5=90=AB=E7=A8=8E?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E4=BA=BA=E6=B0=91=E5=B8=81=EF=BC=9B=20?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AF=E7=BE=8E=E5=85=83=20=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=8F=AA=E8=83=BD=E5=85=88=E5=A1=AB=E5=86=99=20?= =?UTF-8?q?=E4=B8=8D=E5=90=AB=E7=A8=8E=E5=8D=95=E4=BB=B7=E7=BE=8E=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/system/salesOrder/add.html | 125 ++++++++++++++---- 1 file changed, 102 insertions(+), 23 deletions(-) diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html index 4b630275..e201b5cd 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html @@ -343,27 +343,83 @@ { title: '对外售价',field: 'materialSole',editable: true}, {title: '国内税率',field: 'countTax',align: 'center',editable: {type: 'text',mode: 'inline',},}, { title: '美元汇率',field: 'usdTax', align: 'center',editable: {type: 'text',mode: 'inline', }}, - {field: 'materialNum',align: 'center',title: '物料的数量',editable: {type: 'text',mode: 'inline', }}, - { title: '物料的不含税单价(RMB)', field: 'materialNoRmb',align: 'center', - editable: { - type: 'text', mode: 'inline', // 同样设定为行内编辑模式 - enabled: function() {return ($("#commonCurrency_add").val() === '1');}, - options: {placeholder: '请输入USD单价...',maxlength: 10} + { title: '物料的不含税单价(RMB)', + field: 'materialNoRmb', + align: 'center', + editable:{ + type: 'text', // 使用'text'类型,因为我们需自定义验证小数 + mode: 'inline', + enabled: function() { + return ($("#commonCurrency_add").val() === '1'); // 当货币类型为2时启用 + }, + title: '物料的不含税单价(RMB)', + validate: function(value) { + // 验证是否为空 + if (!value) { + return '金额不能为空'; + } + // 尝试转换为浮点数并检查是否成功 + var num = parseFloat(value); + if (isNaN(num)) { + return '请输入有效的数字'; + } + // 检查小数点后是否有超过两位的数字 + var decimalPart = num.toString().split('.')[1]; // 获取小数部分 + if (decimalPart && decimalPart.length > 2) { + return '请输入精确到小数点后两位的数字'; + } + } } }, - {title: '物料的不含税单价(美元)',field: 'materialNoUsd',align: 'center', + { title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, + {field: 'materialNum',align: 'center',title: '物料的数量', + editable:{ + type : 'text', + mode: 'inline', + title : '物料的数量', + validate : function(value) { + if (!value) { + return '用量不能为空'; + } + if (isNaN(value)) { + return '用量必须为数字'; + } + } + }, + }, + {title: '物料的不含税总价(RMB)',field: 'materialNoRmbSum',align: 'center',}, + { title: '物料的含税总价(RMB)',field: 'materialRmbSum',align: 'center',}, + {title: '物料的不含税单价(美元)', + field: 'materialNoUsd', + align: 'center', editable: { - type: 'text', mode: 'inline', // 同样设定为行内编辑模式 - enabled: function() {return ($("#commonCurrency_add").val() === '2'); }, - options: {placeholder: '请输入USD单价...', maxlength: 10} + type: 'text', // 使用'text'类型,因为我们需自定义验证小数 + mode: 'inline', + enabled: function() { + return ($("#commonCurrency_add").val() === '2'); // 当货币类型为2时启用 + }, + title: '物料的不含税单价(美元)', + validate: function(value) { + // 验证是否为空 + if (!value) { + return '金额不能为空'; + } + // 尝试转换为浮点数并检查是否成功 + var num = parseFloat(value); + if (isNaN(num)) { + return '请输入有效的数字'; + } + // 检查小数点后是否有超过两位的数字 + var decimalPart = num.toString().split('.')[1]; // 获取小数部分 + if (decimalPart && decimalPart.length > 2) { + return '请输入精确到小数点后两位的数字'; + } + } } }, { title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center',}, { title: '物料的含税总价(美元)',field: 'materialUsdSum', align: 'center',}, { title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center',}, - { title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, - { title: '物料的含税总价(RMB)',field: 'materialNoRmbSum', align: 'center',}, - {title: '物料的不含税总价(RMB)',field: 'materialRmbSum',align: 'center',}, { title: '计划交付时间',field: 'deliveryTime',align: 'center',editable: {type: 'date',title: '计划交付时间',} }, {title: '质保天数',align: 'center',field: 'expiryDay', editable: { @@ -384,7 +440,7 @@ {title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; - actions.push('删除 '); + actions.push('删除 '); return actions.join(''); } } @@ -424,6 +480,24 @@ }, }; $.table.init(options); + + // 初始化表格 + var bootstrapSubTableQuoteChild = $('#bootstrap-sub-table-order').bootstrapTable(options); + // 添加编辑保存事件监听器 + bootstrapSubTableQuoteChild.on('editable-save.bs.table', function(e, field, row, oldValue, $el) { + var currencyVal = $("#commonCurrency_add").val(); + var requiredField = (currencyVal === '1') ? 'materialNoRmb' : 'materialNoUsd'; + + // 检查是否尝试编辑除requiredField外的字段,且requiredField未填写 + if (field !== requiredField && (!row[requiredField] || row[requiredField].trim() === '')) { + $.modal.alertWarning((currencyVal === '1' ? "请首先填写物料的不含税单价(RMB)" : "请首先填写物料的不含税单价(美元)")); + // 可以选择取消这次编辑操作,但Bootstrap Table默认不会提供直接的API来取消编辑后的保存,您可能需要手动恢复数据或采取其他策略。 + } + }); + + // 初始化时也需要根据当前的货币类型设置一次 + $("#commonCurrency_add").trigger('change'); + selectBuniesessMembers(); }); @@ -602,7 +676,7 @@ countTax: $("#taxRate_add").val(), usdTax: $("#usdTax_add").val(), materialSole: "", - materialNum: 1, + materialNum: "", materialNoRmb: 0.00, materialNoUsd: 0.00, materialRmb: 0.00, @@ -626,9 +700,15 @@ return; } if ($("#taxRate_add").val() == null || $("#taxRate_add").val() == '') { - $.modal.alertWarning("请先选择输入国内的税率"); + $.modal.alertWarning("请输入国内的税率"); + return; + } + + if ($("#usdTax_add").val() == null || $("#usdTax_add").val() == '') { + $.modal.alertWarning("请输入美元的汇率"); return; } + var url = ctx + "erp/material/select"; var options = { title: '选择料号', @@ -638,14 +718,13 @@ $.modal.openOptions(options); } /* 删除指定表格行 */ - function removeRow(rowIndex){ - $('.delete-btn').click(function() { - var rowId = $(this).data('id'); // 获取点击按钮的data-id值 - $(this).closest('tr').remove(); - $("#bootstrap-sub-table-editOrder1").bootstrapTable('remove', {index:rowIndex}); - $("#bootstrap-sub-table-editOrder1").bootstrapTable('refresh'); - }); + function removeRow(materialCode){ + $("#bootstrap-sub-table-order").bootstrapTable('remove', { + field: 'materialCode', + values: materialCode + }) } + function getTotalAmount(){ let getData = $("#bootstrap-sub-table-order").bootstrapTable('getData', true); var enterprise = 0;