| | |
| | | <div class="ew-select-fixed"> |
| | | <select class="order-sta-select" lay-filter="tbBasicTbStaNos"> |
| | | {{#if (d.staNos!=null) {}} |
| | | {{# for(let i=0; i |
| | | <d.staNos.length |
| | | ; i++) { }} |
| | | <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option> |
| | | {{# for(let i=0; i < d.staNos.length; i++) { }} |
| | | <option value="{{d.staNos[i]}}" {{d.staNos[i] == d.staNo ? 'selected' : ''}}>{{d.staNos[i]}}</option> |
| | | {{# } }} |
| | | {{# } }} |
| | | </select> |
| | |
| | | var remaining = orderTotal; |
| | | var selectedCount = 0; |
| | | |
| | | // 对库位数据进行排序,优先选择相同库位的库存 |
| | | // allData.sort(function(a, b) { |
| | | // // 先按库位号排序 |
| | | // if (a.locNo !== b.locNo) { |
| | | // return a.locNo.localeCompare(b.locNo); |
| | | // } |
| | | // // 再按批次排序 |
| | | // return a.batch.localeCompare(b.batch); |
| | | // }); |
| | | // 使用原始顺序的副本,从第一页第一个开始勾选 |
| | | var sortedData = allData.slice(); |
| | | |
| | | for (var i = 0; i < allData.length; i++) { |
| | | var item = allData[i]; |
| | | // 选择集合(使用唯一键避免索引错乱) |
| | | var selectionKeys = {}; |
| | | for (var i = 0; i < sortedData.length; i++) { |
| | | var item = sortedData[i]; |
| | | var itemAnfme = parseFloat(item.anfme || 0); |
| | | |
| | | if (itemAnfme <= 0) { |
| | | continue; // 跳过数量为0的记录 |
| | | } |
| | | |
| | | // 如果剩余数量大于等于当前项的数量,全部勾选 |
| | | if (itemAnfme <= 0) continue; |
| | | var key = (item.locNo || '') + '|' + (item.batch || '') + '|' + (item.matnr || '') + '|' + (item.anfme || 0); |
| | | if (remaining >= itemAnfme) { |
| | | allData[i].LAY_CHECKED = true; |
| | | selectedTotal += itemAnfme; |
| | | selectionKeys[key] = true; |
| | | remaining -= itemAnfme; |
| | | selectedCount++; |
| | | window.autoSelectedData.push(item); |
| | | } |
| | | // 否则只勾选剩余部分(实际操作中,整个记录都会被勾选,但会在提交时处理数量) |
| | | else if (remaining > 0) { |
| | | allData[i].LAY_CHECKED = true; |
| | | selectedTotal += itemAnfme; |
| | | // 这里不修改item.anfme,因为这是表格显示的数据 |
| | | } else if (remaining > 0) { |
| | | selectionKeys[key] = true; |
| | | remaining = 0; |
| | | selectedCount++; |
| | | window.autoSelectedData.push(item); |
| | | } else { |
| | | break; // 已满足订单数量,停止勾选 |
| | | } |
| | | |
| | | // 如果已经满足订单数量,停止勾选 |
| | | if (remaining <= 0) { |
| | | break; |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // 根据选择集合同步原始数据的勾选标记,并重新计算选中数量 |
| | | selectedTotal = 0; |
| | | for (var i = 0; i < allData.length; i++) { |
| | | var k = (allData[i].locNo || '') + '|' + (allData[i].batch || '') + '|' + (allData[i].matnr || '') + '|' + (allData[i].anfme || 0); |
| | | allData[i].LAY_CHECKED = !!selectionKeys[k]; |
| | | if (allData[i].LAY_CHECKED) { |
| | | selectedTotal += parseFloat(allData[i].anfme || 0); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | name: '特采智能立库', |
| | | value: '特采智能立库' |
| | | }, |
| | | { |
| | | name: '南通延锋特采立库', |
| | | value: '南通延锋特采立库' |
| | | }, |
| | | { |
| | | name: '昆山嘉驭特采立库', |
| | | value: '昆山嘉驭特采立库' |
| | | }, |
| | | { |
| | | name: '安徽鸿瑞达特采立库', |
| | | value: '安徽鸿瑞达特采立库' |
| | | }, |
| | | { |
| | | name: '上海金智达特采立库', |
| | | value: '上海金智达特采立库' |
| | | }, |
| | | { |
| | | name: '沈阳继峰特采立库', |
| | | value: '沈阳继峰特采立库' |
| | | }, |
| | | { |
| | | name: '沈阳延峰特采立库', |
| | | value: '沈阳延峰特采立库' |
| | | } |
| | | ] |
| | | }) |
| | |
| | | let data = tableCache[index]; |
| | | for (let i = 0; i < tableCache.length; i++) { |
| | | if (tableCache[i].locNo === data.locNo) { |
| | | tableCache[i]['staNo'] = Number(obj.elem.value); |
| | | tableCache[i]['staNo'] = obj.elem.value; |
| | | } |
| | | } |
| | | obj.othis.children().find("input").css("color", "blue"); |
| | |
| | | , yes: function (index, layero) { |
| | | //按钮【立即出库】的回调 |
| | | // 不再传递tableCache,pakout函数将使用window.selectedDataForPakout |
| | | window.selectedDataForPakout = tableCache; |
| | | pakout(index); |
| | | } |
| | | , btn2: function (index, layero) { |
| | |
| | | window.autoSelectedData = null; |
| | | }) |
| | | </script> |
| | | </html> |
| | | </html> |