领料,退料
This commit is contained in:
parent
05c2643930
commit
7901fbc2d0
|
|
@ -63,7 +63,7 @@ function setParams(obj) {
|
||||||
// 设置公司输入框的值
|
// 设置公司输入框的值
|
||||||
$('#company').val(companyName);
|
$('#company').val(companyName);
|
||||||
$('#companyName').val(companyName);
|
$('#companyName').val(companyName);
|
||||||
$('#remark').val(companyName);
|
$('#remark').val(companyName+"退还");
|
||||||
|
|
||||||
// 更新表单数据
|
// 更新表单数据
|
||||||
if (form && typeof form.val === 'function') {
|
if (form && typeof form.val === 'function') {
|
||||||
|
|
@ -400,15 +400,14 @@ function setSelectData(proList) {
|
||||||
|
|
||||||
console.log("设置公司名称:", companyName);
|
console.log("设置公司名称:", companyName);
|
||||||
|
|
||||||
// 设置公司输入框的值
|
|
||||||
$('#company').val(companyName);
|
|
||||||
$('#companyName').val(companyName);
|
$('#companyName').val(companyName);
|
||||||
$('#remark').val(companyName);
|
$('#remark').val(companyName);
|
||||||
|
|
||||||
// 如果 form 对象存在,更新表单数据
|
// 如果 form 对象存在,更新表单数据
|
||||||
if (window.form && typeof window.form.val === 'function') {
|
if (window.form && typeof window.form.val === 'function') {
|
||||||
window.form.val('formInfo', {
|
window.form.val('formInfo', {
|
||||||
company: companyName,
|
|
||||||
companyName: companyName
|
companyName: companyName
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
let objParam;
|
let objParam;
|
||||||
let form, table, upload, tableIns, layer;
|
let form, table, upload, tableIns, layer;
|
||||||
let pageNum = 1;
|
let pageNum = 1;
|
||||||
|
$('button[onclick="print()"]').hide();
|
||||||
|
|
||||||
function setParams(params) {
|
function setParams(params) {
|
||||||
objParam = JSON.parse(params);
|
objParam = JSON.parse(params);
|
||||||
|
|
@ -38,6 +39,10 @@ function getDetailsById() {
|
||||||
}, null);
|
}, null);
|
||||||
// 基本数据表格赋值
|
// 基本数据表格赋值
|
||||||
function setTableData(obj) {
|
function setTableData(obj) {
|
||||||
|
// 根据status字段控制打印退料单按钮的显示
|
||||||
|
if (objParam.status != 0) {
|
||||||
|
$('button[onclick="print()"]').show();
|
||||||
|
}
|
||||||
$('#code2').html(obj.code + '<a style="margin:0 5px;color:#409EFF;cursor: pointer;" onclick=\'viewGs(' + JSON.stringify(obj) + ')\'>查看概述</a>');
|
$('#code2').html(obj.code + '<a style="margin:0 5px;color:#409EFF;cursor: pointer;" onclick=\'viewGs(' + JSON.stringify(obj) + ')\'>查看概述</a>');
|
||||||
$('#backNum').html(obj.backNum);
|
$('#backNum').html(obj.backNum);
|
||||||
$('#manager').html(obj.manager);
|
$('#manager').html(obj.manager);
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ function setParams(obj) {
|
||||||
// 设置公司输入框的值
|
// 设置公司输入框的值
|
||||||
$('#company').val((companyName !== null && companyName !== '') ? companyName : '/');
|
$('#company').val((companyName !== null && companyName !== '') ? companyName : '/');
|
||||||
$('#companyName').val(companyName); // 设置隐藏字段
|
$('#companyName').val(companyName); // 设置隐藏字段
|
||||||
$('#remark').val((companyName !== null && companyName !== '') ? companyName : '/');
|
$('#remark').val((companyName !== null && companyName !== '') ? companyName+"领用" : '/');
|
||||||
// 触发input事件
|
// 触发input事件
|
||||||
$('#company').trigger('input');
|
$('#company').trigger('input');
|
||||||
|
|
||||||
|
|
@ -359,7 +359,7 @@ function setSelectProData(proList) {
|
||||||
// 设置公司输入框的值
|
// 设置公司输入框的值
|
||||||
$('#company').val(companyName);
|
$('#company').val(companyName);
|
||||||
$('#companyName').val(companyName);
|
$('#companyName').val(companyName);
|
||||||
$('#remark').val(remark);
|
$('#remark').val(remark+"领用");
|
||||||
// 如果form对象存在,更新表单数据
|
// 如果form对象存在,更新表单数据
|
||||||
if (window.form && typeof window.form.val === 'function') {
|
if (window.form && typeof window.form.val === 'function') {
|
||||||
window.form.val('formInfo', {
|
window.form.val('formInfo', {
|
||||||
|
|
|
||||||
|
|
@ -155,15 +155,15 @@ function initTable() {
|
||||||
{
|
{
|
||||||
field: "unit",
|
field: "unit",
|
||||||
title: "单位",
|
title: "单位",
|
||||||
width: '15%',
|
width: '10%',
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
sort:true,
|
sort:true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "num",
|
field: "num",
|
||||||
width: '15%',
|
width: '10%',
|
||||||
title: "库存数量",
|
title: "可用库存量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
sort:true,
|
sort:true,
|
||||||
|
|
@ -176,8 +176,8 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "dbfNum",
|
field: "dbfNum",
|
||||||
width: '15%',
|
width: '10%',
|
||||||
title: "待处置量",
|
title: "待处理量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
sort:true,
|
sort:true,
|
||||||
|
|
@ -188,6 +188,20 @@ function initTable() {
|
||||||
return '<p style="color:#f56c6c;">' + d.dbfNum + ' </p>';
|
return '<p style="color:#f56c6c;">' + d.dbfNum + ' </p>';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: "totalNum",
|
||||||
|
width: '15%',
|
||||||
|
title: "库存总数",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
sort:true,
|
||||||
|
templet: function (d) {
|
||||||
|
if(d.totalNum > 0){
|
||||||
|
return d.totalNum;
|
||||||
|
}
|
||||||
|
return '<p style="color:#f56c6c;">' + d.totalNum + ' </p>';
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
limits: [10, 15, 20, 25, 50, 100],
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,13 @@ function initTable() {
|
||||||
if(res.code === 401){
|
if(res.code === 401){
|
||||||
closeWindowOpen();
|
closeWindowOpen();
|
||||||
}
|
}
|
||||||
|
// 确保数据按工程名称排序
|
||||||
|
res.list.sort(function(a, b) {
|
||||||
|
if (a.proName < b.proName) return -1;
|
||||||
|
if (a.proName > b.proName) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"code": 0, // 解析接口状态
|
"code": 0, // 解析接口状态
|
||||||
"msg": '获取成功', // 解析提示文本
|
"msg": '获取成功', // 解析提示文本
|
||||||
|
|
@ -119,15 +126,15 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "proName",
|
field: "proName",
|
||||||
width: '10%',
|
width: '9%',
|
||||||
title: "工程名称",
|
title: "工程名称",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
sort: true,
|
sort: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "type",
|
field: "type",
|
||||||
width: '10%',
|
width: '8%',
|
||||||
title: "物资类型",
|
title: "物资类型",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -135,7 +142,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "name",
|
field: "name",
|
||||||
width: '10%',
|
width: '8%',
|
||||||
title: "物资名称",
|
title: "物资名称",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -143,7 +150,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "model",
|
field: "model",
|
||||||
width: '10%',
|
width: '8%',
|
||||||
title: "规格型号",
|
title: "规格型号",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -151,7 +158,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "unit",
|
field: "unit",
|
||||||
width: '6%',
|
width: '5%',
|
||||||
title: "单位",
|
title: "单位",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -159,7 +166,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "needNum",
|
field: "needNum",
|
||||||
width: '8%',
|
width: '6%',
|
||||||
title: "需用量",
|
title: "需用量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -170,7 +177,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "totalCg",
|
field: "totalCg",
|
||||||
width: '8%',
|
width: '6%',
|
||||||
title: "采购量",
|
title: "采购量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -182,7 +189,7 @@ function initTable() {
|
||||||
{
|
{
|
||||||
field: "totalLk",
|
field: "totalLk",
|
||||||
title: "利库量",
|
title: "利库量",
|
||||||
width: '8%',
|
width: '6%',
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
sort: true,
|
sort: true,
|
||||||
|
|
@ -194,9 +201,20 @@ function initTable() {
|
||||||
: `<span style='color: #666'>${totalLk}</span>`;
|
: `<span style='color: #666'>${totalLk}</span>`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: "price",
|
||||||
|
width: '6%',
|
||||||
|
title: "单价",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
sort: true,
|
||||||
|
templet: function (d) {
|
||||||
|
return d.price || 0;
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: "totalCk",
|
field: "totalCk",
|
||||||
width: '8%',
|
width: '7%',
|
||||||
title: "出库总量",
|
title: "出库总量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -209,9 +227,20 @@ function initTable() {
|
||||||
: `<span style='color: #666'>${totalCk}</span>`;
|
: `<span style='color: #666'>${totalCk}</span>`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: "totalPrice",
|
||||||
|
width: '6%',
|
||||||
|
title: "总价",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
sort: true,
|
||||||
|
templet: function (d) {
|
||||||
|
return d.totalPrice || 0;
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: "totalBack",
|
field: "totalBack",
|
||||||
width: '8%',
|
width: '7%',
|
||||||
title: "退还数量",
|
title: "退还数量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -226,7 +255,7 @@ function initTable() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: "totalDiff",
|
field: "totalDiff",
|
||||||
width: '8%',
|
width: '6%',
|
||||||
title: "差缺量",
|
title: "差缺量",
|
||||||
unresize: true,
|
unresize: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
|
@ -239,6 +268,21 @@ function initTable() {
|
||||||
return totalDiff;
|
return totalDiff;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: "totalDiffPrice",
|
||||||
|
width: '7%',
|
||||||
|
title: "差缺总价",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
sort: true,
|
||||||
|
templet: function (d) {
|
||||||
|
let totalDiffPrice = d.totalDiffPrice || 0;
|
||||||
|
if (totalDiffPrice > 0) {
|
||||||
|
return '<span style="background-color: #f56c6c; color: #fff; border-radius: 5px; padding: 2px 5px;">' + totalDiffPrice + '</span>';
|
||||||
|
}
|
||||||
|
return totalDiffPrice;
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
limits: [10, 20, 30, 50, 100],
|
limits: [10, 20, 30, 50, 100],
|
||||||
|
|
@ -247,10 +291,102 @@ function initTable() {
|
||||||
done: function (res, curr, count) {
|
done: function (res, curr, count) {
|
||||||
pageNum = tableIns.config.page.curr;
|
pageNum = tableIns.config.page.curr;
|
||||||
table.resize("currentTableId");
|
table.resize("currentTableId");
|
||||||
},
|
|
||||||
|
// 延迟执行合并操作,确保表格完全渲染
|
||||||
|
setTimeout(function() {
|
||||||
|
mergeProNameCells();
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用原生JavaScript合并工程名称相同的单元格
|
||||||
|
function mergeProNameCells() {
|
||||||
|
// 获取表格元素
|
||||||
|
let tableElem = document.getElementById('currentTableId');
|
||||||
|
if (!tableElem) {
|
||||||
|
console.error('找不到表格元素');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取表格的tbody
|
||||||
|
let tbody = tableElem.nextElementSibling.querySelector('.layui-table-body tbody');
|
||||||
|
if (!tbody) {
|
||||||
|
console.error('找不到表格tbody元素');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取所有行
|
||||||
|
let rows = tbody.querySelectorAll('tr');
|
||||||
|
if (rows.length <= 1) return;
|
||||||
|
|
||||||
|
console.log('开始合并工程名称相同的单元格,共' + rows.length + '行');
|
||||||
|
|
||||||
|
let startRow = 0;
|
||||||
|
let mergeCount = 1;
|
||||||
|
let currentProName = getProNameFromRow(rows[0]);
|
||||||
|
|
||||||
|
for (let i = 1; i < rows.length; i++) {
|
||||||
|
let nextProName = getProNameFromRow(rows[i]);
|
||||||
|
|
||||||
|
console.log('比较行 ' + i + ':当前=' + currentProName + ',下一个=' + nextProName);
|
||||||
|
|
||||||
|
if (currentProName === nextProName) {
|
||||||
|
mergeCount++;
|
||||||
|
console.log('行 ' + i + ' 与前一行工程名称相同,合并计数:' + mergeCount);
|
||||||
|
} else {
|
||||||
|
// 执行合并
|
||||||
|
if (mergeCount > 1) {
|
||||||
|
console.log('合并行 ' + startRow + ' 到 ' + (i - 1) + ',共 ' + mergeCount + ' 行');
|
||||||
|
mergeCells(rows, startRow, 1, mergeCount); // 工程名称在第2列(索引1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置计数
|
||||||
|
startRow = i;
|
||||||
|
mergeCount = 1;
|
||||||
|
currentProName = nextProName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合并最后一组
|
||||||
|
if (mergeCount > 1) {
|
||||||
|
console.log('合并最后一组:行 ' + startRow + ' 到 ' + (rows.length - 1) + ',共 ' + mergeCount + ' 行');
|
||||||
|
mergeCells(rows, startRow, 1, mergeCount); // 工程名称在第2列(索引1)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('单元格合并完成');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从行中获取工程名称
|
||||||
|
function getProNameFromRow(row) {
|
||||||
|
// 工程名称在第2列(索引1)
|
||||||
|
let cell = row.querySelectorAll('td')[1];
|
||||||
|
if (cell) {
|
||||||
|
return cell.textContent.trim();
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合并单元格
|
||||||
|
function mergeCells(rows, startRow, colIndex, rowspan) {
|
||||||
|
if (startRow < 0 || startRow >= rows.length) return;
|
||||||
|
|
||||||
|
// 获取起始行的单元格
|
||||||
|
let startCell = rows[startRow].querySelectorAll('td')[colIndex];
|
||||||
|
if (!startCell) return;
|
||||||
|
|
||||||
|
// 设置rowspan
|
||||||
|
startCell.rowSpan = rowspan;
|
||||||
|
|
||||||
|
// 隐藏被合并的单元格
|
||||||
|
for (let i = 1; i < rowspan; i++) {
|
||||||
|
let cell = rows[startRow + i].querySelectorAll('td')[colIndex];
|
||||||
|
if (cell) {
|
||||||
|
cell.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 查看详情
|
// 查看详情
|
||||||
function viewDetail(obj, type) {
|
function viewDetail(obj, type) {
|
||||||
console.log('查看详情', type, obj);
|
console.log('查看详情', type, obj);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue