不发货逻辑编写
This commit is contained in:
parent
f76d4f2233
commit
3b97fc694b
|
|
@ -38,39 +38,41 @@ function getPurchaseDetails() {
|
|||
}, function (xhr, status, error) {
|
||||
errorFn(xhr, status, error)
|
||||
}, null);
|
||||
|
||||
// 基本数据表格赋值
|
||||
function setTableData(obj) {
|
||||
const $dataBody = $('#dataBody');
|
||||
$dataBody.empty();
|
||||
|
||||
if(obj.length > 0){
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
const dataList = obj[i];
|
||||
const trHtml = `
|
||||
const $dataBody = $('#dataBody');
|
||||
$dataBody.empty();
|
||||
|
||||
if (obj.outPlanVoList.length > 0) {
|
||||
for (let i = 0; i < obj.outPlanVoList.length; i++) {
|
||||
const dataList = obj.outPlanVoList[i];
|
||||
console.log("aaa=",dataList.cgNum)
|
||||
const trHtml = `
|
||||
<tr style='background-color:#FFFFFF;'>
|
||||
<td>${dataList.planCode || '--'}</td>
|
||||
<td>${dataList.cgNum || '--'}</td>
|
||||
<td>${formatMoney(dataList.money)}</td>
|
||||
<td>${dataList.lkNum || '--'}</td>
|
||||
<td>${dataList.fhDay || '--'}</td>
|
||||
<td>${dataList.jbUser || '--'}</td>
|
||||
<td>${dataList.address || '--'}</td>
|
||||
<td>${obj.planCode || '--'}</td>
|
||||
<td>${dataList.cgNum }</td>
|
||||
<td>${formatMoney(obj.money)}</td>
|
||||
<td>${dataList.lkNum }</td>
|
||||
<td>${obj.fhDay || '--'}</td>
|
||||
<td>${obj.jbUser || '--'}</td>
|
||||
<td>${obj.address || '--'}</td>
|
||||
<td>
|
||||
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="print()">打印</button>
|
||||
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="printHtml('${dataList.uuid || ''}')">打印</button>
|
||||
</td>
|
||||
</tr>
|
||||
`;
|
||||
$dataBody.append(trHtml);
|
||||
}
|
||||
|
||||
$('#remark').html(obj[0].remark);
|
||||
}else{
|
||||
const trHtml = `
|
||||
$dataBody.append(trHtml);
|
||||
}
|
||||
|
||||
$('#remark').html(obj.remark);
|
||||
} else {
|
||||
const trHtml = `
|
||||
<tr style='background-color:#FFFFFF;'>
|
||||
<td>${obj.planCode || '--'}</td>
|
||||
<td>${obj.cgNum || '--'}</td>
|
||||
<td>${obj.cgNum}</td>
|
||||
<td>${formatMoney(obj.money)}</td>
|
||||
<td>${obj.lkNum || '--'}</td>
|
||||
<td>${obj.lkNum}</td>
|
||||
<td>${obj.fhDay || '--'}</td>
|
||||
<td>${obj.jbUser || '--'}</td>
|
||||
<td>${obj.address || '--'}</td>
|
||||
|
|
@ -79,16 +81,16 @@ function getPurchaseDetails() {
|
|||
</td>
|
||||
</tr>
|
||||
`;
|
||||
$dataBody.append(trHtml);
|
||||
// $('#planCode').html(obj.planCode);
|
||||
// $('#cgNum').html(obj.cgNum);
|
||||
// $('#money').html(formatMoney(obj.money));
|
||||
// $('#lkNum').html(obj.lkNum);
|
||||
// $('#fhDay').html(obj.fhDay);
|
||||
// $('#jbUser').html(obj.jbUser);
|
||||
// $('#address').html(obj.address);
|
||||
$('#remark').html(obj.remark);
|
||||
}
|
||||
$dataBody.append(trHtml);
|
||||
// $('#planCode').html(obj.planCode);
|
||||
// $('#cgNum').html(obj.cgNum);
|
||||
// $('#money').html(formatMoney(obj.money));
|
||||
// $('#lkNum').html(obj.lkNum);
|
||||
// $('#fhDay').html(obj.fhDay);
|
||||
// $('#jbUser').html(obj.jbUser);
|
||||
// $('#address').html(obj.address);
|
||||
$('#remark').html(obj.remark);
|
||||
}
|
||||
// 供应商信息
|
||||
setSubInfos(obj.supInfoList);
|
||||
// 附件文档
|
||||
|
|
@ -120,7 +122,7 @@ function getPurchaseDetailsList() {
|
|||
if (result.code === 200) {
|
||||
dataObj = result.data;
|
||||
// 新增:处理批次数据并生成标签
|
||||
console.log("数据:",result.data)
|
||||
console.log("数据:", result.data)
|
||||
handleBatchData(result.data);
|
||||
// 默认显示第一批次数据
|
||||
if (currentBatch) {
|
||||
|
|
@ -392,3 +394,38 @@ function print() {
|
|||
deferred: $.Deferred()
|
||||
});
|
||||
}
|
||||
|
||||
function printHtml(uuid) {
|
||||
let id = objParam.id;
|
||||
|
||||
let paramsObj = {
|
||||
id:id, // 保留原有参数
|
||||
uuid: uuid // 新增打印所需的uuid
|
||||
};
|
||||
|
||||
let layerIndex = parent.layer.open({
|
||||
id: 'printSuccess',
|
||||
type: 2,
|
||||
title: ['<div style="border-left: 3px solid #409EFF;color:#409EFF;font-size:18px;letter-spacing:1px;display: flex;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">采购发货单打印</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
||||
content: '../aq_demand_plan/child/send_out_detail_print.html',
|
||||
shade: 0.3,
|
||||
anim: 2,
|
||||
shadeClose: false,
|
||||
area: ['92%', '95%'],
|
||||
move: false,
|
||||
success: function () {
|
||||
if (paramsObj) {
|
||||
let iframeWin = parent.window["layui-layer-iframe" + layerIndex];
|
||||
iframeWin.setParams(JSON.stringify(paramsObj));
|
||||
|
||||
// setTimeout(() => {
|
||||
// // 方式1:调用子页面的print方法(推荐,子页面控制打印逻辑)
|
||||
// iframeWin.print();
|
||||
// }, 8000); // 延迟800ms,确保子页面数据渲染完成
|
||||
}
|
||||
},
|
||||
cancel: function () { },
|
||||
end: function () { }
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,368 @@
|
|||
let objParam, dataObj;
|
||||
let batchData = {};
|
||||
let currentBatch = '';
|
||||
let form, table, upload, tableIns, layer;
|
||||
let pageNum = 1;
|
||||
|
||||
function setParams(params) {
|
||||
objParam = JSON.parse(params);
|
||||
console.error(objParam);
|
||||
|
||||
$('#code').html(objParam.planCode);
|
||||
$('#titleName').html(objParam.proName);
|
||||
layui.use(["form", "table", 'upload', 'layer'], function () {
|
||||
form = layui.form;
|
||||
table = layui.table;
|
||||
upload = layui.upload;
|
||||
layer = layui.layer;
|
||||
getPurchaseDetails();
|
||||
getPurchaseDetailsList();
|
||||
});
|
||||
}
|
||||
|
||||
// 采购详情
|
||||
function getPurchaseDetails() {
|
||||
let params = {
|
||||
encryptedData: JSON.stringify({
|
||||
'id': objParam.id,
|
||||
'uuid': objParam.uuid
|
||||
})
|
||||
};
|
||||
let url = dataUrl + 'backstage/purchase/getPurchaseDetail';
|
||||
ajaxRequest(url, "POST", params, true, function () {
|
||||
}, function (result) {
|
||||
console.error(result);
|
||||
if (result.code === 200) {
|
||||
setTableData(result.data);
|
||||
} else {
|
||||
}
|
||||
}, function (xhr, status, error) {
|
||||
errorFn(xhr, status, error)
|
||||
}, null);
|
||||
|
||||
// 基本数据表格赋值
|
||||
function setTableData(obj) {
|
||||
const $dataBody = $('#dataBody');
|
||||
$dataBody.empty();
|
||||
|
||||
const trHtml = `
|
||||
<tr style='background-color:#FFFFFF;'>
|
||||
<td>${obj.planCode || '--'}</td>
|
||||
<td>${obj.cgNum}</td>
|
||||
<td>${formatMoney(obj.money)}</td>
|
||||
<td>${obj.lkNum}</td>
|
||||
<td>${obj.fhDay || '--'}</td>
|
||||
<td>${obj.jbUser || '--'}</td>
|
||||
<td>${obj.address || '--'}</td>
|
||||
</tr>
|
||||
`;
|
||||
$dataBody.append(trHtml);
|
||||
$('#remark').html(obj.remark);
|
||||
// 供应商信息
|
||||
setSubInfos(obj.supInfoList);
|
||||
// 附件文档
|
||||
setFileTable(obj.fileList);
|
||||
}
|
||||
}
|
||||
|
||||
function formatMoney(value) {
|
||||
// 第一步:处理空值/异常值,转为0
|
||||
let num = 0;
|
||||
if (value !== null && value !== undefined && value !== '' && !isNaN(Number(value))) {
|
||||
num = Number(value);
|
||||
}
|
||||
// 第二步:保留2位小数,返回带¥的格式化字符串
|
||||
return '¥ ' + num.toFixed(2);
|
||||
}
|
||||
|
||||
// 采购发货明细
|
||||
function getPurchaseDetailsList() {
|
||||
let params = {
|
||||
encryptedData: JSON.stringify({
|
||||
'id': objParam.id,
|
||||
'uuid': objParam.uuid
|
||||
})
|
||||
};
|
||||
let url = dataUrl + 'backstage/purchase/getPurchaseDetailsListBatch';
|
||||
ajaxRequest(url, "POST", params, true, function () {
|
||||
}, function (result) {
|
||||
console.error(result);
|
||||
if (result.code === 200) {
|
||||
dataObj = result.data;
|
||||
// 新增:处理批次数据并生成标签
|
||||
console.log("数据:", result.data)
|
||||
handleBatchData(result.data);
|
||||
// 默认显示第一批次数据
|
||||
if (currentBatch) {
|
||||
setBaseTable(batchData[currentBatch]);
|
||||
} else {
|
||||
let allData = mergeAllBatchData(result.data);
|
||||
setBaseTable(allData);
|
||||
}
|
||||
}
|
||||
}, function (xhr, status, error) {
|
||||
errorFn(xhr, status, error)
|
||||
}, null);
|
||||
}
|
||||
|
||||
// 新增:处理批次数据,生成批次标签
|
||||
function handleBatchData(data) {
|
||||
// 1. 批次按外层数组索引区分(第1批次、第2批次...)
|
||||
let batchCount = data.length;
|
||||
if (batchCount === 0) {
|
||||
$('#batch-tabs').html('<div style="color:#999;">暂无批次数据</div>');
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 构建批次数据映射(key:批次号,value:该批次的batchList数据)
|
||||
batchData = {};
|
||||
data.forEach((item, index) => {
|
||||
let batchNum = index + 1; // 批次号从1开始
|
||||
batchData[batchNum] = item.batchList || [];
|
||||
});
|
||||
|
||||
// 3. 生成批次标签HTML
|
||||
let tabHtml = '';
|
||||
for (let i = 1; i <= batchCount; i++) {
|
||||
let batchName = `第${i}批次`;
|
||||
let isActive = i === 1 ? 'active' : ''; // 默认选中第一个批次
|
||||
if (i === 1) {
|
||||
currentBatch = i; // 默认选中第一个批次
|
||||
}
|
||||
tabHtml += `<div class="batch-tab ${isActive}" data-batch="${i}">${batchName}</div>`;
|
||||
}
|
||||
|
||||
// 4. 渲染标签并绑定点击事件
|
||||
$('#batch-tabs').html(tabHtml);
|
||||
$('.batch-tab').click(function () {
|
||||
// 切换激活状态
|
||||
$('.batch-tab').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
// 获取选中的批次
|
||||
currentBatch = $(this).data('batch');
|
||||
// 筛选对应批次的数据并渲染表格
|
||||
setBaseTable(batchData[currentBatch] || []);
|
||||
// 重置搜索框
|
||||
resetSearch();
|
||||
});
|
||||
}
|
||||
|
||||
// 新增:合并所有批次数据(用于无批次选中时显示)
|
||||
function mergeAllBatchData(data) {
|
||||
let allData = [];
|
||||
data.forEach(item => {
|
||||
if (item.batchList && item.batchList.length > 0) {
|
||||
allData = allData.concat(item.batchList);
|
||||
}
|
||||
});
|
||||
return allData;
|
||||
}
|
||||
|
||||
// 新增:根据批次筛选数据
|
||||
function filterDataByBatch(originalData, batch) {
|
||||
if (!batch || !originalData || originalData.length === 0) {
|
||||
return mergeAllBatchData(originalData);
|
||||
}
|
||||
// 返回指定批次的batchList数据
|
||||
let batchIndex = batch - 1; // 转换为数组索引
|
||||
return originalData[batchIndex]?.batchList || [];
|
||||
}
|
||||
|
||||
// 供应商信息赋值
|
||||
function setSubInfos(list) {
|
||||
$('#supplier-table-box tbody tr:not(:first)').remove();
|
||||
let html = '';
|
||||
if (list && list.length > 0) {
|
||||
$.each(list, function (index, item) {
|
||||
html += '<tr>' +
|
||||
'<td>' + item.supName + '</td>' +
|
||||
'<td>' + item.cgNum + '</td>' +
|
||||
'<td> ¥ ' + (item.money ? item.money : 0) + '</td>' +
|
||||
'</tr>';
|
||||
})
|
||||
} else {
|
||||
html = '<tr><td colspan="3" style="text-align: center;">暂无数据</td></tr>';
|
||||
}
|
||||
$('#supplier-table tbody').after(html);
|
||||
}
|
||||
|
||||
// 附件文档赋值
|
||||
function setFileTable(fileList) {
|
||||
$('#file-table tbody tr:not(:first)').remove();
|
||||
let html = '';
|
||||
if (fileList && fileList.length > 0) {
|
||||
$.each(fileList, function (index, item) {
|
||||
html += '<tr>' +
|
||||
'<td>' + handleFileType(item.fileName) + item.fileName + '</td>' +
|
||||
'<td>' + (item.type ? item.type : '入库附件') + '</td>' +
|
||||
'<td><img src="../../../images/user_head_icon.png" width="20px" height="20px">' + item.createName + '</td>' +
|
||||
'<td>' + item.createTime + '</td>' +
|
||||
'<td><a style="margin:0 5px;color:#409EFF;cursor: pointer;" onclick=\'viewFile(' + JSON.stringify(item) + ')\'>预览</a>' +
|
||||
'<a style="margin:0 5px;color:#409EFF;cursor: pointer;" onclick=\'downLoadFile(' + JSON.stringify(item) + ')\'>下载</a>' +
|
||||
'</td>' +
|
||||
'</tr>';
|
||||
})
|
||||
} else {
|
||||
html = '<tr><td colspan="5" style="text-align: center;">暂无数据</td></tr>';
|
||||
}
|
||||
$('#file-table tbody').after(html);
|
||||
}
|
||||
|
||||
// 处理文件类型
|
||||
function handleFileType(value) {
|
||||
value = value.toLowerCase();
|
||||
let src = '';
|
||||
if (value.indexOf('docx') > -1 || value.indexOf('doc') > -1) {
|
||||
src = '../../../images/docx.png'
|
||||
} else if (value.indexOf('xls') > -1 || value.indexOf('xlsx') > -1) {
|
||||
src = '../../../images/xlsx.png'
|
||||
} else if (value.indexOf('pdf') > -1) {
|
||||
src = '../../../images/pdf.png'
|
||||
} else if (value.indexOf('png') > -1 || value.indexOf('jpg') > -1 || value.indexOf('jpeg') > -1) {
|
||||
src = '../../../images/img_icon.png'
|
||||
}
|
||||
return '<img width="20px" height="20px" src = "' + src + '" style="margin:0 5px;">'
|
||||
}
|
||||
|
||||
// 查询
|
||||
function search() {
|
||||
let keyWord = $('#name').val().trim();
|
||||
let keyWord2 = $('#model').val().trim();
|
||||
// 获取当前批次的数据源
|
||||
let currentData = currentBatch ? filterDataByBatch(dataObj, currentBatch) : mergeAllBatchData(dataObj);
|
||||
|
||||
if (!keyWord && !keyWord2) {
|
||||
setBaseTable(currentData);
|
||||
return;
|
||||
}
|
||||
|
||||
// 筛选逻辑(适配batchList中的字段)
|
||||
let filteredList = currentData.filter(item => {
|
||||
let nameMatch = true;
|
||||
let modelMatch = true;
|
||||
|
||||
if (keyWord && item.name) {
|
||||
nameMatch = item.name.indexOf(keyWord) > -1;
|
||||
}
|
||||
if (keyWord2 && item.model) {
|
||||
modelMatch = item.model.indexOf(keyWord2) > -1;
|
||||
}
|
||||
|
||||
return nameMatch && modelMatch;
|
||||
});
|
||||
|
||||
setBaseTable(filteredList);
|
||||
}
|
||||
|
||||
// 重置
|
||||
function resetSearch() {
|
||||
$('#name').val('');
|
||||
$('#model').val('');
|
||||
// 重置时显示当前批次的完整数据
|
||||
let currentData = currentBatch ? filterDataByBatch(dataObj, currentBatch) : mergeAllBatchData(dataObj);
|
||||
setBaseTable(currentData);
|
||||
}
|
||||
|
||||
|
||||
function setBaseTable(results) {
|
||||
let html = "";
|
||||
if (results && results.length > 0) {
|
||||
results.forEach((item, index) => {
|
||||
html += "<tr id='" + (item.modelId || index) + "'>";
|
||||
html += "<td style='vertical-align:middle;' class='center'>" + (index + 1) + "</td>";
|
||||
html += "<td class='center'>" + (item.type || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.name || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.model || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.unit || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.needNum || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.cgNum || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.lkNum || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.supName || '') + "</td>"; // 无数据则显示空
|
||||
html += "<td class='center'>" + (item.ccDay || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.jyDay || '') + "</td>";
|
||||
html += "<td class='center'>" + (item.remark || '') + "</td>";
|
||||
html += "</tr>";
|
||||
});
|
||||
} else {
|
||||
html += "<tr><td colspan='12' class='center'>没有相关数据</td></tr>";
|
||||
}
|
||||
$("#baseTable tbody").empty().append(html);
|
||||
}
|
||||
|
||||
// 二维码
|
||||
function qrCode() {
|
||||
openIframeByParamObj("downLoadQrCode", "二维码", "./send_out_qrcode.html", "92%", "95%", objParam);
|
||||
}
|
||||
|
||||
// 导出
|
||||
function exportExcel() {
|
||||
let params = {
|
||||
'name': $('#name').val(),
|
||||
'model': $('#model').val(),
|
||||
'id': objParam.id,
|
||||
'batch': currentBatch // 传递当前选中批次
|
||||
}
|
||||
let url = dataUrl + "backstage/purchase/exportDetailsList";
|
||||
exportExcelUtil(url, '采购发货明细', JSON.stringify(params));
|
||||
}
|
||||
|
||||
// 打印
|
||||
function print() {
|
||||
Print('#table-box', {
|
||||
onStart: function () {
|
||||
console.log('onStart', new Date())
|
||||
},
|
||||
onEnd: function () {
|
||||
console.log('onEnd', new Date())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 预览文件
|
||||
function viewFile(obj) {
|
||||
let fileName = obj.fileName.toLowerCase();
|
||||
if (fileName.indexOf('png') > -1 || fileName.indexOf('jpg') > -1 || fileName.indexOf('jpeg') > -1) {
|
||||
layer.photos({
|
||||
shade: 0.5,
|
||||
photos: {
|
||||
"title": "图片预览",
|
||||
"start": 0,
|
||||
"data": [
|
||||
{
|
||||
"alt": "layer",
|
||||
"pid": 1,
|
||||
"src": fileUrl + obj.fileUrl + '?token=' + sessionStorage.getItem("gz-token"),
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 调用公司的预览文件的服务
|
||||
commonViewFile(obj.fileUrl);
|
||||
}
|
||||
}
|
||||
|
||||
// 下载文件
|
||||
function downLoadFile(obj) {
|
||||
let url = dataUrl + "sys/file/download?fileId=" + obj.id;
|
||||
downLoadFileUtil(url, obj.fileName, null);
|
||||
}
|
||||
|
||||
// 打印
|
||||
function print() {
|
||||
$("#main-box").print({
|
||||
globalStyles: true,
|
||||
mediaPrint: false,
|
||||
stylesheet: '../../../css/aq_demand_plan/apply_plan_detail.css',
|
||||
noPrintSelector: ".no-print",
|
||||
iframe: true,
|
||||
append: '<style>@page { margin: 0; size: auto; } @media print { @page { margin: 0; size: auto; } html { margin: 0; height: auto; } body { margin: 0; height: auto; } .layuimini-container { height: auto !important; } }</style>',
|
||||
prepend: '<div style="text-align: center; font-size: 34px; font-weight: bold; margin-bottom: 5px;">【领料发货单】</div>',
|
||||
manuallyCopyFormValues: true,
|
||||
deferred: $.Deferred()
|
||||
});
|
||||
}
|
||||
|
||||
function printHtml(uuid) {
|
||||
|
||||
}
|
||||
|
|
@ -66,6 +66,15 @@ function setSelectData(modelId) {
|
|||
// 校验数据
|
||||
function checkValue(that, type) {
|
||||
let value = $(that).val();
|
||||
|
||||
// 核心改动1:统一处理前置0(保留纯0的情况)
|
||||
let processedValue = value.replace(/^0+(?=\d)/, '');
|
||||
if (processedValue === '') {
|
||||
processedValue = '0'; // 输入全是0的情况(如0000)转为0
|
||||
}
|
||||
// 先更新输入框值为处理后的值
|
||||
$(that).val(processedValue);
|
||||
value = processedValue; // 后续校验使用处理后的值
|
||||
if (type === 1) { // 采购量
|
||||
const regex = /^(0|[1-9]\d{0,6})$/;
|
||||
if (!regex.test(value) && value) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,247 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>采购发货详情</title>
|
||||
<link rel="stylesheet" href="../../../lib/layui-v2.9.18/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="../../../css/font.css" media="all">
|
||||
<link rel="stylesheet" href="../../../css/public.css" media="all">
|
||||
<link rel="stylesheet" href="../../../css/aq_demand_plan/send_out_detail.css" media="all">
|
||||
</head>
|
||||
<style>
|
||||
.layuimini-container {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#detail-box {
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#detail-box>div {
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
#detail-box img {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
/* 批次标签样式 */
|
||||
.batch-tabs {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
.batch-tab {
|
||||
padding: 6px 16px;
|
||||
background-color: #f5f7fa;
|
||||
border: 1px solid #e6e6e6;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.batch-tab:hover {
|
||||
background-color: #e8f4ff;
|
||||
border-color: #409EFF;
|
||||
}
|
||||
.batch-tab.active {
|
||||
background-color: #409EFF;
|
||||
color: white;
|
||||
border-color: #409EFF;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body id="body">
|
||||
<div id="main-box">
|
||||
<div class="layout" id="detail-box">
|
||||
<div class="layout">
|
||||
<img src="../../../images/svg/u418.svg">
|
||||
<div class="layout" style="flex-direction: column;align-items: start;margin-left: 10px;">
|
||||
<p style="font-size: 18px;font-weight: bold;" id="titleName"></p>
|
||||
<p id="code"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="print()">打印出库单</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="basic-box">
|
||||
<div class="title layout">
|
||||
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||
<p>采购发货资料</p>
|
||||
</div>
|
||||
<div id="basic-table">
|
||||
<table class="classTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>需求计划编号</th>
|
||||
<th>采购数量</th>
|
||||
<th>采购金额</th>
|
||||
<th>利库数量</th>
|
||||
<th>采购发货时间</th>
|
||||
<th>经办人</th>
|
||||
<th>收货地址</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="dataBody"></tbody>
|
||||
<!-- <tr>
|
||||
<td id="planCode"></td>
|
||||
<td id="cgNum"></td>
|
||||
<td id="money"></td>
|
||||
<td id="lkNum"></td>
|
||||
<td id="fhDay"></td>
|
||||
<td id="jbUser"></td>
|
||||
<td id="address"></td>
|
||||
</tr> -->
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="8">备注</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8" id="remark"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="supplier-box">
|
||||
<div class="title layout">
|
||||
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||
<p>供货供应商信息</p>
|
||||
</div>
|
||||
<div id="supplier-table-box">
|
||||
<table class="classTable" id="supplier-table">
|
||||
<tr>
|
||||
<th>供应商名称</th>
|
||||
<th>采购数量</th>
|
||||
<th>采购金额</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="file-box">
|
||||
<div class="title layout">
|
||||
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||
<p>附件文档</p>
|
||||
</div>
|
||||
<div id="file-table-box">
|
||||
<table class="classTable" id="file-table">
|
||||
<tr>
|
||||
<th style="width: 30%;">文件名</th>
|
||||
<th style="width: 10%;">文件类型</th>
|
||||
<th>上传人员</th>
|
||||
<th>上传时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="fhjj-box">
|
||||
<div class="title layout">
|
||||
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||
<p>采购发货明细</p>
|
||||
</div>
|
||||
<div id="batch-tabs" class="batch-tabs" style="padding: 10px 10px 0 10px; display: none"></div>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<fieldset class="table-search-fieldset no-print">
|
||||
<legend>搜索信息</legend>
|
||||
<div style="margin: 10px 10px 10px 10px">
|
||||
<form class="layui-form layui-form-pane" action="#" onsubmit="return false;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 300px;">
|
||||
<input type="text" name="name" id="name" autocomplete="off"
|
||||
class="layui-input" lay-affix="clear" placeholder="输入名称" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 300px;">
|
||||
<input type="text" name="model" id="model" autocomplete="off"
|
||||
class="layui-input" lay-affix="clear" placeholder="输入规格" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layui-bg-blue" onclick="search()"><i
|
||||
class="layui-icon"></i> 搜 索</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="resetSearch()"><i
|
||||
class="layui-icon layui-icon-refresh"></i> 重 置</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="exportExcel()"><i
|
||||
class="layui-icon layui-icon-download-circle"></i> 下 载</button>
|
||||
<button class="layui-btn layui-bg-blue" onclick="qrCode()"><i
|
||||
class="layui-icon "></i> 二 维 码</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="table-box" table-responsive style="z-index: 1;" id="table-box">
|
||||
<table id="baseTable" class="classTable table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%" class="center">序号</th>
|
||||
<th style="width: 7%" class="center">类型</th>
|
||||
<th style="width: 7%" class="center">名称</th>
|
||||
<th style="width: 8%" class="center">规格</th>
|
||||
<th style="width: 8%" class="center">单位</th>
|
||||
<th style="width: 8%" class="center">需要量</th>
|
||||
<th style="width: 8%" class="center">采购量</th>
|
||||
<th style="width: 8%" class="center">利库量</th>
|
||||
<th style="width: 16%" class="center">供应商</th>
|
||||
<th style="width: 8%" class="center">出厂日期</th>
|
||||
<th style="width: 8%" class="center">检验日期</th>
|
||||
<th style="width: 9%" class="center">备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 签字区域 -->
|
||||
<div id="signature-box">
|
||||
<div class="title layout">
|
||||
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||
<p>签字确认</p>
|
||||
</div>
|
||||
<div id="signature-table-box">
|
||||
<table class="classTable signature-table">
|
||||
<tr>
|
||||
<td style="width: 25%; text-align: center; height: 80px;">
|
||||
<div style="margin-bottom: 10px; font-weight: bold;">记账人</div>
|
||||
<div style="border-bottom: 1px solid #000; height: 30px; margin: 0 10px;"></div>
|
||||
</td>
|
||||
<td style="width: 25%; text-align: center; height: 80px;">
|
||||
<div style="margin-bottom: 10px; font-weight: bold;">领料人</div>
|
||||
<div style="border-bottom: 1px solid #000; height: 30px; margin: 0 10px;"></div>
|
||||
</td>
|
||||
<td style="width: 25%; text-align: center; height: 80px;">
|
||||
<div style="margin-bottom: 10px; font-weight: bold;">制单人</div>
|
||||
<div style="border-bottom: 1px solid #000; height: 30px; margin: 0 10px;"></div>
|
||||
</td>
|
||||
<td style="width: 25%; text-align: center; height: 80px;">
|
||||
<div style="margin-bottom: 10px; font-weight: bold;">审核人</div>
|
||||
<div style="border-bottom: 1px solid #000; height: 30px; margin: 0 10px;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script src="../../../lib/jquery-3.4.1/jquery-3.7.1.min.js" charset="utf-8"></script>
|
||||
<script src="../../../js/aes.js" charset="utf-8"></script>
|
||||
<script src="../../../js/public.js" charset="utf-8"></script>
|
||||
<script src="../../../js/jQuery.print.js" charset="utf-8"></script>
|
||||
<script src="../../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script>
|
||||
<script src="../../../js/openIframe.js" charset="utf-8"></script>
|
||||
<script src="../../../js/aq_demand_plan/child/send_out_detail_print.js" charset="utf-8"></script>
|
||||
|
||||
</html>
|
||||
Loading…
Reference in New Issue