diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml index 85bf377b..754ad177 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml @@ -136,7 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-admin/src/main/resources/templates/system/customerQuote/add.html b/ruoyi-admin/src/main/resources/templates/system/customerQuote/add.html index 125ffe60..aba0fcd1 100644 --- a/ruoyi-admin/src/main/resources/templates/system/customerQuote/add.html +++ b/ruoyi-admin/src/main/resources/templates/system/customerQuote/add.html @@ -55,12 +55,11 @@
- -
+ +
- - + +
@@ -168,9 +167,7 @@ } } //获取客户信息 - $(document).ready(function() { - // 初始化时默认加载客户编号列表 - loadCustomerIds(); + // 监听客户编号下拉框的变化 $('#customerCode').on('change', function() { @@ -189,6 +186,17 @@ $.modal.alertWarning('未能获取到客户名称!'); } $('input[name="customerName"]').val(data.data.customerName); + $("input[name='rmbTax']").val(data.data.taxRate); + // 根据data.data.confirmTax的值(0或1)来选中对应的单选按钮 + if(data.data.confirmTax === '0' || data.data.confirmTax === '1') { + console.log("data.data.confirmTax:",data.data.confirmTax) + $('input:radio[name="confirmFax"][value="' + data.data.confirmTax + '"]').attr('checked', 'checked'); + } else { + // 如果返回的值不是预期的0或1,可处理异常情况 + console.warn("Unexpected confirmTax value:", data.data.confirmTax); + } + $("#commonCurrency_add").val(data.data.commonCurrency).trigger('change'); + commonCurrency = $("#commonCurrency_add option:selected").val(); }, error: function(jqXHR, textStatus, errorThrown) { console.error('Error:', textStatus, errorThrown); @@ -200,7 +208,12 @@ $('input[name="customerName"]').val(''); } }); - }); + + + $(document).ready(function() { + // 初始化时默认加载客户编号列表 + loadCustomerIds(); + }); // 假设的加载客户编号列表函数 function loadCustomerIds() { var url = ctx + 'system/customer/getCustomers'; @@ -222,7 +235,7 @@ // 假设item有id和name两个属性,分别代表客户ID和客户编号 selectElement.append(''); }); - $('#customerCode').val(customerId); + // $('#customerCode').val(customerId); } else { $.modal.errMsg("数据为空"); } @@ -257,16 +270,6 @@ } - // // 逻辑删除收款凭证前端的一行数据 - // function removeRow(receivablesRecordsId){ - // console.log(receivablesRecordsId); - // // 直接使用 receivablesRecordsId 值进行删除操作 - // $("#bootstrap-receivablesVoucher-table").bootstrapTable('remove', { - // field: 'receivablesRecordsId', - // values: receivablesRecordsId - // }); - // } - $(function() { @@ -484,6 +487,7 @@ // // 计算不含税价格 // var noTaxPrice = noTaxValue.toFixed(2); + // 根据选择的货币类型计算其他值 if (commonCurrency1 === '1') { // RMB为基准货币 @@ -512,6 +516,37 @@ } }; $.table.init(options); + // 初始化表格 + var bootstrapSubTableQuoteChild = $('#bootstrap-sub-table-quoteChild').bootstrapTable(options); + // 监听货币类型选择器变化 + // $("#commonCurrency_add").on('change', function() { + // var currencyVal = $(this).val(); + // var columns = bootstrapSubTableQuoteChild.bootstrapTable('getColumns'); + // columns.forEach(function(column) { + // // 根据货币类型和列名决定是否启用编辑 + // if (column.field !== 'materialNoRmb' && column.field !== 'materialNoUsd') { + // column.editable.enabled = function() { + // return (currencyVal === '1' && row.materialNoRmb) || (currencyVal === '2' && row.materialNoUsd); + // }; + // } + // }); + // // bootstrapSubTableQuoteChild.bootstrapTable('refreshOptions', { columns: columns }); + // }); + + // 添加编辑保存事件监听器 + 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'); }); //获取单号 $.ajax({ @@ -624,97 +659,6 @@ minView: "month", autoclose: true }); - //计算金额 - // function getTotalAmount() { - // // 获取表格数据 - // const data = $("#bootstrap-sub-table-quoteChild").bootstrapTable('getData', true); - // // 初始化汇总对象,减少代码重复并提高清晰度 - // const sums = { - // enterprise: "", // 用于拼接物料名称和数量 - // enterpriseSum: 0, // 物料总数量 - // currencies: { - // noRmb: { total: 0, single: 0 }, // 非人民币数量与总金额 - // rmb: { total: 0, single: 0 }, // 人民币 - // noUsd: { total: 0, single: 0 }, // 非美元 - // usd: { total: 0, single: 0 } // 美元 - // } - // }; - // // 遍历数据进行计算 - // for (let i = 0; i < data.length; i++) { - // const item = data[i]; - // // 拼接物料信息 - // sums.enterprise += "" + item.materialName + ": 数量 : " + item.materialNum; - // sums.enterpriseSum += parseFloat(item.materialNum); // 累加物料数量 - // // 分别累加各货币的单个金额和总金额 - // ['noRmb', 'rmb', 'noUsd', 'usd'].forEach(currency => { - // sums.currencies[currency].single += parseFloat(item['material' + [currency] ]); - // sums.currencies[currency].total += parseFloat(item['material' + [currency] + 'Sum']); - // }); - // } - // updateFormValues(sums); - // } - // function updateFormValues(sums) { - // // 物料合计与数量合计没有在sums中直接给出,这里假设它们需要单独处理或已存在于页面其他部分 - // $("#enterprise_add").val(sums.enterprise); - // $("#enterpriseSum_add").val(sums.enterpriseSum); - // - // // 更新不含税单价和总价 - // $("#noRmb_add").val(sums.currencies.noRmb.single); - // $("#noRmbSum_add").val(sums.currencies.noRmb.total); - // - // $("#rmb_add").val(sums.currencies.rmb.single); - // $("#rmbSum_add").val(sums.currencies.rmb.total); - // - // $("#noUsd_add").val(sums.currencies.noUsd.single); - // $("#noUsdSum_add").val(sums.currencies.noUsd.total); - // - // $("#usd_add").val(sums.currencies.usd.single); - // $("#usdSum_add").val(sums.currencies.usd.total); - // } - // $(document).ready(function() { - // // 监听货币选项变化 - // $("#commonCurrency_add").on("change", function() { - // var isEditable = $(this).val() === "1"; - // var fieldName = ""; - // var materialColumnCells = $('#bootstrap-sub-table-quoteChild tbody tr td [field=" '+ fieldName+' "]'); - // // 根据是否可编辑,添加或移除xEditable - // materialColumnCells.each(function() { - // var cell = $(this); - // var currentValue = cell.text().trim(); // 获取当前单元格的值 - // - // if (isEditable) { - // // 如果允许编辑且尚未添加xEditable - // if (!cell.hasClass('editable')) { - // cell.addClass('editable'); // 添加标记类,以便跟踪状态 - // cell.editable({ - // type: 'text', - // pk: cell.closest('tr').data('id'), // 假设每行有唯一ID - // title: '物料的数量', - // validate: function(value) { - // if (!value) return '金额不能为空'; - // if (isNaN(value)) return '金额必须为数字'; - // return true; - // }, - // success: function(response, newValue) { - // // 成功后的回调,这里可以根据需要处理服务器响应 - // } - // }); - // } - // } else { - // // 如果不允许编辑且已添加了xEditable - // if (cell.hasClass('editable')) { - // cell.removeClass('editable'); - // // 这里简化处理,实际中可能需要更复杂的逻辑来销毁xEditable实例 - // cell.off('.editable'); // 移除xEditable绑定的事件 - // cell.text(currentValue); // 还原原始文本 - // } - // } - // }); - // }); - // - // // 初始化时触发一次,根据默认状态设置可编辑性 - // $("#commonCurrency_add").trigger("change"); - // }); function getTotalAmount() { var getData = $("#bootstrap-sub-table-quoteChild").bootstrapTable('getData'); var enterprise = 0;