| | |
| | | form.val('editForm', expTpe); |
| | | if (expTpe) { |
| | | $('#orderNo').attr("disabled", "disabled"); |
| | | // 修改订单时,不显示越库按钮(因为越库订单创建后就完成了,不会有中间状态) |
| | | $('#crossDockItem').hide(); |
| | | } else { |
| | | // 新增订单时,显示越库按钮,默认不勾选 |
| | | $('#crossDockItem').show(); |
| | | // 默认隐藏出库订单类型选择器 |
| | | $('#outboundDocTypeItem').hide(); |
| | | } |
| | | |
| | | // 先渲染 switch,确保 LayUI 正确初始化 |
| | | form.render('switch'); |
| | | |
| | | // 初始化出库订单类型选择器 |
| | | var outboundDocTypeData = []; |
| | | $.ajax({ |
| | | url: baseUrl + "/docType/list/auth", |
| | | headers: { 'token': localStorage.getItem('token') }, |
| | | data: { limit: 9999, pakout: 1 }, |
| | | method: 'POST', |
| | | async: false, |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | // 转换为 xmSelect 需要的格式 |
| | | res.data.records.forEach(function (item) { |
| | | outboundDocTypeData.push({ |
| | | name: item.docName, |
| | | value: item.docId |
| | | }); |
| | | }); |
| | | } else { |
| | | layer.msg(res.msg, { icon: 2 }); |
| | | } |
| | | } |
| | | }); |
| | | var outboundDocTypeXmSelect = xmSelect.render({ |
| | | el: '#outboundDocTypeSelect', |
| | | radio: true, |
| | | clickClose: true, |
| | | filterable: true, |
| | | model: { |
| | | icon: 'hidden', |
| | | label: { |
| | | type: 'text', |
| | | } |
| | | }, |
| | | data: outboundDocTypeData, |
| | | initValue: [] |
| | | }); |
| | | |
| | | // 切换出库订单类型选择器的显示/隐藏 |
| | | function toggleOutboundDocTypeSelector(show) { |
| | | if (show) { |
| | | // 勾选越库订单时,显示出库订单类型选择器 |
| | | $('#outboundDocTypeItem').show(); |
| | | console.log('显示出库订单类型选择器'); |
| | | } else { |
| | | // 取消勾选时,隐藏出库订单类型选择器 |
| | | $('#outboundDocTypeItem').hide(); |
| | | outboundDocTypeXmSelect.setValue([]); |
| | | console.log('隐藏出库订单类型选择器'); |
| | | } |
| | | } |
| | | |
| | | // 监听 switch 变化,控制出库订单类型选择器的显示/隐藏 |
| | | // 注意:必须在 form.render 之后注册监听器 |
| | | form.on('switch(isCrossDock)', function(data){ |
| | | var isChecked = data.elem.checked; |
| | | console.log('越库订单开关变化,值:', isChecked, '元素:', data.elem); |
| | | toggleOutboundDocTypeSelector(isChecked); |
| | | }); |
| | | |
| | | // 初始化时检查 switch 状态(以防页面刷新后状态不一致) |
| | | // 使用 setTimeout 确保 DOM 已完全渲染 |
| | | setTimeout(function() { |
| | | var initialCrossDockState = $('#isCrossDock').is(':checked') || |
| | | $('#isCrossDock').prop('checked') || |
| | | ($('#isCrossDock').next('.layui-form-switch').hasClass('layui-form-onswitch')); |
| | | console.log('初始化检查越库订单状态:', initialCrossDockState); |
| | | if (initialCrossDockState) { |
| | | toggleOutboundDocTypeSelector(true); |
| | | } |
| | | }, 100); |
| | | // 初始化业务时间日期选择器 |
| | | layDate.render({ |
| | | elem: '#orderTime', |
| | |
| | | return false; |
| | | } |
| | | } |
| | | // 获取越库订单开关状态(多种方式检测,确保准确性) |
| | | var isCrossDockChecked = $('#isCrossDock').is(':checked') || |
| | | $('#isCrossDock').prop('checked') || |
| | | data.field.isCrossDock === 'ON' || |
| | | data.field.isCrossDock === true || |
| | | data.field.isCrossDock === 'on'; |
| | | console.log('提交越库订单状态,isCrossDock:', isCrossDockChecked, '原始值:', data.field.isCrossDock, 'DOM checked:', $('#isCrossDock').is(':checked')); |
| | | |
| | | // 获取出库订单类型ID |
| | | var outboundDocTypeId = null; |
| | | if (isCrossDockChecked) { |
| | | // 检查出库订单类型选择器是否可见 |
| | | if (!$('#outboundDocTypeItem').is(':visible')) { |
| | | console.warn('出库订单类型选择器未显示,但越库订单已勾选'); |
| | | } |
| | | var outboundDocTypeValue = outboundDocTypeXmSelect.getValue(); |
| | | console.log('出库订单类型选择器值:', outboundDocTypeValue); |
| | | if (!outboundDocTypeValue || outboundDocTypeValue.length === 0 || !outboundDocTypeValue[0]) { |
| | | layer.msg('请选择出库订单类型', { icon: 2 }); |
| | | return false; |
| | | } |
| | | outboundDocTypeId = Number(outboundDocTypeValue[0].value); |
| | | console.log('出库订单类型ID:', outboundDocTypeId); |
| | | } |
| | | |
| | | layer.load(2); |
| | | |
| | | $.ajax({ |
| | | url: baseUrl + "/order/pakin/order/form/" + (isExpAdd ? "add" : "modify") + "/auth", |
| | | headers: { 'token': localStorage.getItem('token') }, |
| | |
| | | orderNo: data.field.orderNo, |
| | | cstmrName: cstmrXmSelect.getValue()[0] ? cstmrXmSelect.getValue()[0].name : null, |
| | | orderTime: data.field.orderTime, |
| | | isCrossDock: isCrossDockChecked, |
| | | outboundDocType: outboundDocTypeId, |
| | | orderDetlPakinList: nList |
| | | }), |
| | | contentType: 'application/json;charset=UTF-8', |