This commit is contained in:
parent
55967065f6
commit
7b0af67c09
|
|
@ -26,6 +26,15 @@ span.required {
|
||||||
height: 120px;
|
height: 120px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#no_data_title {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
margin-top: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
blockquote {
|
blockquote {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -140,4 +149,4 @@ blockquote {
|
||||||
-webkit-border-radius: 2em;
|
-webkit-border-radius: 2em;
|
||||||
-moz-border-radius: 2em;
|
-moz-border-radius: 2em;
|
||||||
border-radius: 2em
|
border-radius: 2em
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,400 @@
|
||||||
|
let objParam, dataObj, fileList = new Array(), imgListUp = new Array();
|
||||||
|
let form, laydate, layer, upload, table, util;
|
||||||
|
let pageNum = 1, tableIns; // 定义分页
|
||||||
|
let supplierList = []; // 供应商下拉选
|
||||||
|
getProList()
|
||||||
|
function setParams(obj) {
|
||||||
|
objParam = JSON.parse(obj);
|
||||||
|
console.error(objParam);
|
||||||
|
|
||||||
|
$('#proName').html(objParam.proName);
|
||||||
|
layui.use(['form', 'layer', 'laydate', 'upload', 'table'], function () {
|
||||||
|
form = layui.form;
|
||||||
|
layer = layui.layer;
|
||||||
|
laydate = layui.laydate;
|
||||||
|
upload = layui.upload;
|
||||||
|
table = layui.table;
|
||||||
|
util = layui.util;
|
||||||
|
var userData = JSON.parse(sessionStorage.getItem("us"));
|
||||||
|
$('#jbUser').val(userData.username);
|
||||||
|
laydate.render({
|
||||||
|
elem: '#fhDay'
|
||||||
|
});
|
||||||
|
laydate.render({
|
||||||
|
elem: '.cjDate'
|
||||||
|
});
|
||||||
|
laydate.render({
|
||||||
|
elem: '.jyDate'
|
||||||
|
});
|
||||||
|
|
||||||
|
form.verify();
|
||||||
|
form.on('submit(formData)', function (data) {
|
||||||
|
// 提交前确认
|
||||||
|
beforeSubmitApply(data);
|
||||||
|
});
|
||||||
|
form.render();
|
||||||
|
form.on('select(supplier)', function (data) {
|
||||||
|
if (data.value) {
|
||||||
|
let value = $(data.elem).val();
|
||||||
|
let item = JSON.parse($(data.elem).find('option:checked').attr('item'));
|
||||||
|
let modelId = $(data.elem).find('option:checked').attr('modelId');
|
||||||
|
// 安全工器具类型、合同ID、厂家ID 进行校验
|
||||||
|
let flag = supCheck(modelId, item.contractId, value);
|
||||||
|
if (!flag) {
|
||||||
|
$(data.elem).val('');
|
||||||
|
return layer.msg('该厂家合同无此工器具,请重新选择', { icon: 7 });
|
||||||
|
}
|
||||||
|
$('.supplier' + modelId + '').each(function (index, item) {
|
||||||
|
let id = $(this).find('option:checked').val();
|
||||||
|
if (id && id === value && !($(data.elem).is($(this)))) {
|
||||||
|
$(data.elem).val('');
|
||||||
|
return layer.msg('请勿重复选择供应商', { icon: 7 });
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let uploadObj = upload.render({
|
||||||
|
elem: '#test2',
|
||||||
|
multiple: true,
|
||||||
|
dataType: "json",
|
||||||
|
exts: 'jpg|png|jpeg|doc|docx|pdf|xlsx|xls',
|
||||||
|
acceptMime: 'image/jpg,image/png,image/jpeg,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||||
|
number: 5, //最大上传数量
|
||||||
|
size: 1024 * 10, //最大文件大小,单位k
|
||||||
|
auto: false, //是否自动上传 ,默认为true
|
||||||
|
bindAction: '#hideUpload', //绑定的按钮
|
||||||
|
choose: function (obj) {
|
||||||
|
let length = $('.file-iteme').length;
|
||||||
|
if (length >= 5) {
|
||||||
|
return layer.msg('最多上传5个发货附件', { icon: 7 });
|
||||||
|
}
|
||||||
|
uploadObj.config.elem.next()[0].value = '';
|
||||||
|
let num = 0;
|
||||||
|
obj.preview(function (index, file, result) {
|
||||||
|
num ++;
|
||||||
|
if(num <= (5-length)){
|
||||||
|
$('#uploader-list').append(
|
||||||
|
'<div id="" class="file-iteme">' +
|
||||||
|
'<div class="handle"><p>x</p></div>' +
|
||||||
|
handleFileType(index, file, result) +
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
|
let map = new Map();//将选择的图片索引和图片写成对象存入集合
|
||||||
|
map.index = index;
|
||||||
|
map.file = file;
|
||||||
|
fileList.push(map);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
getSupplierList();
|
||||||
|
|
||||||
|
}
|
||||||
|
// 设置文件类型
|
||||||
|
function handleFileType(index, file, result) {
|
||||||
|
let html = '', img = '';
|
||||||
|
if(file.ext){
|
||||||
|
file.ext = file.ext.toLowerCase();
|
||||||
|
}
|
||||||
|
if(file.name){
|
||||||
|
file.name = file.name.toLowerCase();
|
||||||
|
}
|
||||||
|
if (file.ext === 'doc' || file.ext === 'docx') {
|
||||||
|
img = '../../../images/docx.png';
|
||||||
|
} else if (file.ext === 'xls' || file.ext === 'xlsx') {
|
||||||
|
img = '../../../images/xlsx.png';
|
||||||
|
} else if (file.ext === 'pdf') {
|
||||||
|
img = '../../../images/pdf.png';
|
||||||
|
} else {
|
||||||
|
return '<img class="img" style="width: 130px;height: 120px;" data-index=' + index + ' data-name=' + file.name + ' src=' + result + '>';
|
||||||
|
}
|
||||||
|
html += '<div class="layout upload-file" data-index=' + index + '>' +
|
||||||
|
'<img src="' + img + '">' +
|
||||||
|
'<p style="text-align: center;font-size:12px;">' + file.name + '</p>' +
|
||||||
|
'</div>';
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除文件
|
||||||
|
$(document).on("click", ".file-iteme .handle", function (event) {
|
||||||
|
imgListUp.splice(0, imgListUp.length);
|
||||||
|
let index = $(this).next().attr('data-index');
|
||||||
|
$.each(fileList, function (inx, ele) {
|
||||||
|
//对比删除文件索引
|
||||||
|
//将未删除的存入新集合
|
||||||
|
if (index != ele.index) {
|
||||||
|
imgListUp.push(ele);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$(this).parent().remove();
|
||||||
|
//将新文件集合替换老集合
|
||||||
|
fileList.splice(0, fileList.length);
|
||||||
|
$.each(imgListUp, function (inx, ele) {
|
||||||
|
fileList.push(ele)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function saveData2() {
|
||||||
|
$('#formSubmit').trigger('click')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交前确认
|
||||||
|
function beforeSubmitApply() {
|
||||||
|
// 校验发货附件是否上传
|
||||||
|
if (fileList.length === 0) {
|
||||||
|
return layer.msg('请上传发货附件', { icon: 7 });
|
||||||
|
}
|
||||||
|
let dataList = getBaseTableData();
|
||||||
|
// 校验 发货明细数据
|
||||||
|
for (let i = 0; i < dataList.length; i++) {
|
||||||
|
let o = dataList[i];
|
||||||
|
let list = o.supList;
|
||||||
|
let cgNum = 0,lkNum = 0; // 采购量、利库量
|
||||||
|
for (let j = 0; j < list.length; j++) {
|
||||||
|
let l = list[j];
|
||||||
|
cgNum += (l.cgNum ? parseInt(l.cgNum) : 0);
|
||||||
|
lkNum += (l.lkNum ? parseInt(l.lkNum) : 0);
|
||||||
|
if (!l.supId) {
|
||||||
|
return layer.msg('序号为' + (i + 1) + '的数据,未选择供应商', { icon: 7 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
openIframeByParamObj("quickAddForm", "采购发货确认", "./send_out_confirm.html", "92%", "92%", dataList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
function submitApply() {
|
||||||
|
let data = form.val('formInfo'); // form 表单的值
|
||||||
|
let dataList = getBaseTableData();
|
||||||
|
data.detailsList = (dataList || []).map(obj => {
|
||||||
|
const newObj = {};
|
||||||
|
for (let key in obj) {
|
||||||
|
newObj[key] = obj[key] === undefined ? "" : obj[key];
|
||||||
|
}
|
||||||
|
return newObj;
|
||||||
|
});
|
||||||
|
|
||||||
|
let formData = new FormData();
|
||||||
|
//遍历最终文件集合
|
||||||
|
for (let i = 0; i < fileList.length; i++) {
|
||||||
|
formData.append("file[]", fileList[i].file)
|
||||||
|
}
|
||||||
|
console.log(data);
|
||||||
|
formData.append('params', JSON.stringify(data));
|
||||||
|
let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' });
|
||||||
|
let url = dataUrl + 'backstage/purchase/addUnplannedPurchaseData';
|
||||||
|
ajaxRequestByUploadFile(url, formData, function () {
|
||||||
|
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
|
||||||
|
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
|
||||||
|
}, function (result) {
|
||||||
|
layer.close(loadingMsg);
|
||||||
|
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
if (result.code === 200) {
|
||||||
|
parent.layer.msg(result.msg, { icon: 1 });
|
||||||
|
closePage(result.data);
|
||||||
|
} else {
|
||||||
|
layer.msg(result.msg, { icon: 2 });
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
layer.close(loadingMsg); // 关闭提示层
|
||||||
|
layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 });
|
||||||
|
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 供应商下拉选
|
||||||
|
function getSupplierList() {
|
||||||
|
supplierList.splice(0, supplierList.length);
|
||||||
|
let encryptedData = {};
|
||||||
|
let url = dataUrl + 'backstage/sup/getSelected?encryptedData=' + encodeURIComponent(JSON.stringify(encryptedData));
|
||||||
|
ajaxRequest(url, "GET", null, false, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
supplierList = result.data;
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 工程下拉选赋值
|
||||||
|
function setSelectProData(proList) {
|
||||||
|
let html = '<option value="">请选择工程</option>';
|
||||||
|
$.each(proList, function (index, item) {
|
||||||
|
html += '<option value="' + item.id + '">' + item.name + '</option>'
|
||||||
|
})
|
||||||
|
$('#projectId').empty().append(html);
|
||||||
|
layui.form.render();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 发货明细
|
||||||
|
function getOutApplyDetails() {
|
||||||
|
let params = {
|
||||||
|
encryptedData: JSON.stringify({
|
||||||
|
'id': objParam.id
|
||||||
|
})
|
||||||
|
};
|
||||||
|
let url = dataUrl + 'backstage/purchase/getOutApplyDetails';
|
||||||
|
ajaxRequest(url, "POST", params, true, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
dataObj = result.data.data;
|
||||||
|
setBaseTable(result.data.list);
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 厂家校验
|
||||||
|
function supCheck(modelId, contractId, value) {
|
||||||
|
let flag = false;
|
||||||
|
let params = {
|
||||||
|
encryptedData: JSON.stringify({
|
||||||
|
'supId': value,
|
||||||
|
'contractId': contractId,
|
||||||
|
'modelId': modelId
|
||||||
|
})
|
||||||
|
};
|
||||||
|
let url = dataUrl + 'backstage/sup/supCheck';
|
||||||
|
ajaxRequest(url, "POST", params, false, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 库存数量校验 进行合同校验
|
||||||
|
function maTypeCheck(modelId) {
|
||||||
|
let num = 0;
|
||||||
|
let params = {
|
||||||
|
encryptedData: JSON.stringify({
|
||||||
|
'modelId': modelId
|
||||||
|
})
|
||||||
|
};
|
||||||
|
let url = dataUrl + 'backstage/maType/maTypeCheck';
|
||||||
|
ajaxRequest(url, "POST", params, false, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
num = result.data;
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addFitDatas(params,pageSource){
|
||||||
|
let data = JSON.parse(params)
|
||||||
|
data.map(item => {
|
||||||
|
item.unit = item.unitName
|
||||||
|
item.modelId = item.id
|
||||||
|
})
|
||||||
|
setBaseTable(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取发货明细数据
|
||||||
|
function getBaseTableData() {
|
||||||
|
let dataList = [];
|
||||||
|
$('#baseTable tbody tr.mainTr').each(function () {
|
||||||
|
let obj = {};
|
||||||
|
// 基本信息
|
||||||
|
let modelId = $(this).attr('id');
|
||||||
|
let planId = $(this).attr('planId');
|
||||||
|
let detailId = $(this).attr('detailId');
|
||||||
|
let type = $(this).find('td').eq(2).html();
|
||||||
|
let name = $(this).find('td').eq(3).html();
|
||||||
|
let model = $(this).find('td').eq(4).html();
|
||||||
|
let unit = $(this).find('td').eq(5).html();
|
||||||
|
let needNum = $(this).find('td').eq(6).html();
|
||||||
|
// 表格表单数据
|
||||||
|
let formList = [];
|
||||||
|
let idx = $('.model' + modelId).length;
|
||||||
|
for (let i = 0; i < idx; i++) {
|
||||||
|
let formObj = {};
|
||||||
|
let num = $('.num' + modelId).eq(i).val();
|
||||||
|
let lkNum = $('.lkNum' + modelId).eq(i).val();
|
||||||
|
let supplier = $('.supplier' + modelId).eq(i).val();
|
||||||
|
let supplierName = $('.supplier' + modelId).eq(i).find('option:checked').text();
|
||||||
|
let contractId = '';
|
||||||
|
if (supplier) {
|
||||||
|
// 合同ID
|
||||||
|
let item = JSON.parse($('.supplier' + modelId).eq(i).find('option:checked').attr('item'));
|
||||||
|
contractId = item.contractId;
|
||||||
|
}
|
||||||
|
let cjDate = $('.cjDate' + modelId).eq(i).val();
|
||||||
|
let jyDate = $('.jyDate' + modelId).eq(i).val();
|
||||||
|
let remark = $('.remark' + modelId).eq(i).val();
|
||||||
|
formObj.cgNum = num;
|
||||||
|
formObj.lkNum = lkNum;
|
||||||
|
formObj.supId = supplier;
|
||||||
|
formObj.supName = supplierName;
|
||||||
|
formObj.ccDay = cjDate;
|
||||||
|
formObj.jyDay = jyDate;
|
||||||
|
formObj.remark = remark;
|
||||||
|
formObj.detailId = detailId;
|
||||||
|
formObj.planId = planId;
|
||||||
|
formObj.modelId = modelId;
|
||||||
|
formObj.contractId = contractId;
|
||||||
|
formList.push(formObj);
|
||||||
|
}
|
||||||
|
obj.modelId = modelId;
|
||||||
|
obj.planId = planId;
|
||||||
|
obj.detailId = detailId;
|
||||||
|
obj.type = type;
|
||||||
|
obj.name = name;
|
||||||
|
obj.model = model;
|
||||||
|
obj.unit = unit;
|
||||||
|
obj.needNum = needNum;
|
||||||
|
obj.supList = formList;
|
||||||
|
dataList.push(obj);
|
||||||
|
})
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭页面
|
||||||
|
function closePage(data) {
|
||||||
|
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
|
||||||
|
if (data) {
|
||||||
|
let obj = {
|
||||||
|
resultData:data.resultData,
|
||||||
|
resultData2:data.resultData2,
|
||||||
|
id:data.planId
|
||||||
|
};
|
||||||
|
let frameId = parent.document.getElementById('sendOutProDetail').getElementsByTagName("iframe")[0];
|
||||||
|
frameId.contentWindow.sendOutSuccess(JSON.stringify(obj));
|
||||||
|
}
|
||||||
|
parent.layer.close(index); // 再执行关闭
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 工程下拉选
|
||||||
|
function getProList() {
|
||||||
|
let url = dataUrl + 'backstage/planApply/getProSelect';
|
||||||
|
ajaxRequest(url, "POST", null, false, function () {
|
||||||
|
}, function (result) {
|
||||||
|
if (result.code === 200) {
|
||||||
|
setSelectProData(result.data);
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 选择需求计划--安全工器具
|
||||||
|
function chooseFitTypeTwo() {
|
||||||
|
let params = {};
|
||||||
|
openIframeByParamObj("choose_type_two", '选择需求计划安全工器具类型', "./choose_type_list.html", '92%', '95%', params);
|
||||||
|
}
|
||||||
|
|
@ -370,3 +370,9 @@ function exportExcel() {
|
||||||
function sendOutProDetail(obj) {
|
function sendOutProDetail(obj) {
|
||||||
openIframeByParamObj("sendOutProDetail", "工程详情", "./child/send_out_pro_detail.html", "92%", "95%", obj, 1);
|
openIframeByParamObj("sendOutProDetail", "工程详情", "./child/send_out_pro_detail.html", "92%", "95%", obj, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 申请
|
||||||
|
function applyPlan(obj) {
|
||||||
|
openIframeByParamObj("apply_plan", "计划外发货", "./child/send_out_unplanned_form.html", "92%", "95%", obj);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,153 @@
|
||||||
|
<!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/data_form.css" media="all">
|
||||||
|
<link rel="stylesheet" href="../../../css/aq_demand_plan/send_out_form.css" media="all">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="main-box">
|
||||||
|
<div id="basic-box">
|
||||||
|
<form class="layui-form layuimini-form" onclick="return false;" lay-filter="formInfo">
|
||||||
|
<div class="title layout">
|
||||||
|
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||||
|
<p>采购发货资料填写</p>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label required" style="width: 100px !important;">申请工程</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select name="proId" id="projectId" lay-verify="required" lay-search
|
||||||
|
class="layui-select">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label required" style="width: 90px !important;">实际发货日期</label>
|
||||||
|
<div class="layui-input-inline layui-input-wrap">
|
||||||
|
<div class="layui-input-prefix">
|
||||||
|
<i class="layui-icon layui-icon-date"></i>
|
||||||
|
</div>
|
||||||
|
<input class="layui-input" id="fhDay" autocomplete="off" name="fhDay" lay-verify="required"
|
||||||
|
readonly style="cursor: pointer;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label required" style="width: 50px !important;">经办人</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input class="layui-input" name="jbUser" id="jbUser" autocomplete="off"
|
||||||
|
lay-verify="required" maxlength="30" lay-affix="clear">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label" style="width: 60px !important;">收货地址</label>
|
||||||
|
<div class="layui-input-inline" style="width: 400px !important;">
|
||||||
|
<input class="layui-input" name="address" id="address" autocomplete="off"
|
||||||
|
maxlength="30" lay-affix="clear">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label" style="width: 100px !important;">备注</label>
|
||||||
|
<div class="layui-input-inline" style="width: 764px;">
|
||||||
|
<textarea placeholder="请输入备注" id="remark" name="remark"
|
||||||
|
class="layui-textarea" maxLength="255" lay-affix="clear"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
|
||||||
|
style="display: none;"></button>
|
||||||
|
</form>
|
||||||
|
<div class="layui-upload" style="padding: 0 39px;">
|
||||||
|
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;width: auto;border: none;">
|
||||||
|
<p>发货附件<span class="required">*</span></p>
|
||||||
|
<div class="layui-upload-list uploader-list" style="overflow: auto;" id="uploader-list"></div>
|
||||||
|
<div id="test2" style="margin-left: 10px;">
|
||||||
|
<img src="../../../images/add.png">
|
||||||
|
</div>
|
||||||
|
<div class="layout" style="flex-direction: column;margin-left: 2px;">
|
||||||
|
<p style="color: red;">必传项:请上传出门条</p>
|
||||||
|
<p style="color: red;">可选项: 领料单、装卸货照片、车牌号</p>
|
||||||
|
</div>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
<div class="title layout">
|
||||||
|
<span style="font-weight:700;text-decoration:none;color:#409EFF;">▋</span>
|
||||||
|
<p>发货明细</p>
|
||||||
|
</div>
|
||||||
|
<fieldset class="table-search-fieldset" style="border-width: 1px;margin-bottom: 10px;">
|
||||||
|
<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: 200px;">
|
||||||
|
<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: 200px;">
|
||||||
|
<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-bg-blue" onclick="chooseFitTypeTwo()"><i
|
||||||
|
class="layui-icon layui-icon-add-1"></i> 添 加 明 细
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<div class="table-box" table-responsive style="z-index: 1;">
|
||||||
|
<table id="baseTable" class="classTable table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 4%" class="center">
|
||||||
|
<input id="allCheck" onclick="selectAll(this.checked)" type="checkbox">
|
||||||
|
</th>
|
||||||
|
<th style="width: 5%" 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: 6%" class="center">单位</th>
|
||||||
|
<th style="width: 6%" class="center">需要量</th>
|
||||||
|
<th style="width: 6%" class="center"><span style="color: red;">*</span>采购量</th>
|
||||||
|
<th style="width: 6%" class="center"><span style="color: red;">*</span>利库量</th>
|
||||||
|
<th style="width: 15%" class="center"><span style="color: red;">*</span>供应商</th>
|
||||||
|
<th style="width: 9%" class="center">出厂日期</th>
|
||||||
|
<th style="width: 9%" class="center">检验日期</th>
|
||||||
|
<th style="width: 10%" class="center">备注</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-box">
|
||||||
|
<button class="layui-btn layui-bg-blue save" onclick="saveData2()">确定发货</button>
|
||||||
|
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">返回</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<script src="../../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
||||||
|
<script src="../../../js/public.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_form_table.js" charset="utf-8"></script>
|
||||||
|
<script src="../../../js/aq_demand_plan/child/send_out_unplanned_form.js" charset="utf-8"></script>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -14,118 +14,133 @@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="layuimini-container">
|
<div class="layuimini-container">
|
||||||
<div class="layuimini-main">
|
<div class="layuimini-main">
|
||||||
<fieldset class="table-search-fieldset">
|
<fieldset class="table-search-fieldset">
|
||||||
<legend>数据预览</legend>
|
<legend>数据预览</legend>
|
||||||
<div id="data-overview" class="layout">
|
<div id="data-overview" class="layout">
|
||||||
<div class="data-detail">
|
<div class="data-detail">
|
||||||
<div class="layout" style="justify-content: space-between;" id="num-progress">
|
<div class="layout" style="justify-content: space-between;" id="num-progress">
|
||||||
<div class="layout num-title">
|
<div class="layout num-title">
|
||||||
<p>总需求计划</p>
|
<p>总需求计划</p>
|
||||||
<div class="layout"><p class="num-style" id="planNum">0</p><span style="margin-top: 5px;">(条)</span></div>
|
<div class="layout"><p class="num-style" id="planNum">0</p><span style="margin-top: 5px;">(条)</span>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<img src="../../images/demandPlan/num_icon.png">
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div>
|
||||||
<div class="data-detail">
|
<img src="../../images/demandPlan/num_icon.png">
|
||||||
<div class="layout" style="justify-content: space-between;" id="num-progress2">
|
|
||||||
<div class="layout num-title">
|
|
||||||
<p>待发货</p>
|
|
||||||
<div class="layout"><p class="num-style" id="dfhNum">0</p><span style="margin-top: 5px;">(条)</span></div>
|
|
||||||
<!-- <p id="dfh">0%</p> -->
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<img src="../../images/demandPlan/num2_icon.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="data-detail">
|
|
||||||
<div class="layout" style="justify-content: space-between;" id="num-progress3">
|
|
||||||
<div class="layout num-title">
|
|
||||||
<p>已发货</p>
|
|
||||||
<div class="layout"><p class="num-style" id="yfNum">0</p><span style="margin-top: 5px;">(条)</span></div>
|
|
||||||
<!-- <p id="yfh">0%</p> -->
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<img src="../../images/demandPlan/num3_icon.png">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layout data-detail" style="align-items: flex-start;justify-content: flex-start;">
|
|
||||||
<p style="font-size: 16px; font-weight: bold;">采购发货信息</p>
|
|
||||||
<div class="layout common-style">
|
|
||||||
<p>采购数量</p>
|
|
||||||
<div class="layout"><p style="color: #409eff; font-weight: 700; font-size: 16px;" id="cgNum">0</p><span style="margin: 0 5px;">件</span></div>
|
|
||||||
</div>
|
|
||||||
<div class="layout common-style">
|
|
||||||
<p>利库数量</p>
|
|
||||||
<div class="layout"><p style="color: #19be6b; font-weight: 700; font-size: 16px;" id="lkNum">0</p><span style="margin: 0 5px;">件</span></div>
|
|
||||||
</div>
|
|
||||||
<div class="layout common-style">
|
|
||||||
<p>采购金额</p>
|
|
||||||
<div class="layout"><p style="color: #f56c6c; font-weight: 700; font-size: 16px;" id="money">¥ 0</p><span style="margin: 0 5px;">元</span></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
<div class="data-detail">
|
||||||
<fieldset class="table-search-fieldset">
|
<div class="layout" style="justify-content: space-between;" id="num-progress2">
|
||||||
<legend>搜索信息</legend>
|
<div class="layout num-title">
|
||||||
<div style="margin: 10px 10px 10px 10px">
|
<p>待发货</p>
|
||||||
<form class="layui-form layui-form-pane" action="#" onsubmit="return false;">
|
<div class="layout"><p class="num-style" id="dfhNum">0</p><span
|
||||||
<div class="layui-form-item">
|
style="margin-top: 5px;">(条)</span></div>
|
||||||
<div class="layui-inline">
|
<!-- <p id="dfh">0%</p> -->
|
||||||
<div class="layui-input-inline" style="width: 300px;">
|
|
||||||
<input type="text" name="proName" id="proName" autocomplete="off" class="layui-input" lay-affix="clear"
|
|
||||||
placeholder="输入工程名称" maxlength="30">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-inline">
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<select id="status">
|
|
||||||
<option value="">请选择发货状态</option>
|
|
||||||
<option value="0">未发货</option>
|
|
||||||
<option value="1">部分发货</option>
|
|
||||||
<option value="2">全部发货</option>
|
|
||||||
</select>
|
|
||||||
</select>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-inline" id="ID-laydate-rangeLinked">
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="text" autocomplete="off" name="startTime" id="startTime" class="layui-input"
|
|
||||||
placeholder="请选择时间" lay-verify="required" readonly style="cursor: pointer;">
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-mid">-</div>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="text" autocomplete="off" name="endTime" id="endTime" class="layui-input"
|
|
||||||
placeholder="请选择时间" lay-verify="required" readonly style="cursor: pointer;">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-inline">
|
|
||||||
<button class="layui-btn layui-bg-blue" onclick="queryTable(1)"><i class="layui-icon"></i> 搜 索</button>
|
|
||||||
<button class="layui-btn layui-btn-primary" onclick="queryTable(2)"><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>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div>
|
||||||
|
<img src="../../images/demandPlan/num2_icon.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-detail">
|
||||||
|
<div class="layout" style="justify-content: space-between;" id="num-progress3">
|
||||||
|
<div class="layout num-title">
|
||||||
|
<p>已发货</p>
|
||||||
|
<div class="layout"><p class="num-style" id="yfNum">0</p><span
|
||||||
|
style="margin-top: 5px;">(条)</span></div>
|
||||||
|
<!-- <p id="yfh">0%</p> -->
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<img src="../../images/demandPlan/num3_icon.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout data-detail" style="align-items: flex-start;justify-content: flex-start;">
|
||||||
|
<p style="font-size: 16px; font-weight: bold;">采购发货信息</p>
|
||||||
|
<div class="layout common-style">
|
||||||
|
<p>采购数量</p>
|
||||||
|
<div class="layout"><p style="color: #409eff; font-weight: 700; font-size: 16px;" id="cgNum">
|
||||||
|
0</p><span style="margin: 0 5px;">件</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="layout common-style">
|
||||||
|
<p>利库数量</p>
|
||||||
|
<div class="layout"><p style="color: #19be6b; font-weight: 700; font-size: 16px;" id="lkNum">
|
||||||
|
0</p><span style="margin: 0 5px;">件</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="layout common-style">
|
||||||
|
<p>采购金额</p>
|
||||||
|
<div class="layout"><p style="color: #f56c6c; font-weight: 700; font-size: 16px;" id="money">¥
|
||||||
|
0</p><span style="margin: 0 5px;">元</span></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
|
||||||
<div class="table-box" table-responsive style="z-index: 1;">
|
|
||||||
<table class="layui-hide" id="currentTableId" lay-filter="currentTableId2"></table>
|
|
||||||
</div>
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="table-search-fieldset">
|
||||||
|
<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="proName" id="proName" autocomplete="off" class="layui-input"
|
||||||
|
lay-affix="clear"
|
||||||
|
placeholder="输入工程名称" maxlength="30">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select id="status">
|
||||||
|
<option value="">请选择发货状态</option>
|
||||||
|
<option value="0">未发货</option>
|
||||||
|
<option value="1">部分发货</option>
|
||||||
|
<option value="2">全部发货</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline" id="ID-laydate-rangeLinked">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" autocomplete="off" name="startTime" id="startTime"
|
||||||
|
class="layui-input"
|
||||||
|
placeholder="请选择时间" lay-verify="required" readonly style="cursor: pointer;">
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-mid">-</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" autocomplete="off" name="endTime" id="endTime" class="layui-input"
|
||||||
|
placeholder="请选择时间" lay-verify="required" readonly style="cursor: pointer;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<button class="layui-btn layui-bg-blue" onclick="queryTable(1)"><i class="layui-icon"></i>
|
||||||
|
搜 索
|
||||||
|
</button>
|
||||||
|
<button class="layui-btn layui-btn-primary" onclick="queryTable(2)"><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="applyPlan({})"><i
|
||||||
|
class="layui-icon layui-icon-file"></i> 计 划 外 发 货
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<div class="table-box" table-responsive style="z-index: 1;">
|
||||||
|
<table class="layui-hide" id="currentTableId" lay-filter="currentTableId2"></table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
</div>
|
||||||
<script src="../../js/public.js" charset="utf-8"></script>
|
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
||||||
<script src="../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script>
|
<script src="../../js/public.js" charset="utf-8"></script>
|
||||||
<script src="../../js/aq_demand_plan/send_out_list.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/send_out_list.js" charset="utf-8"></script>
|
||||||
|
<script src="../../js/openIframe.js" charset="utf-8"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue