领料出库

This commit is contained in:
cwchen 2024-11-13 14:54:59 +08:00
parent 935c545513
commit c49086f8ab
7 changed files with 262 additions and 58 deletions

View File

@ -190,6 +190,83 @@ body {
} }
/* 表格样式 end */ /* 表格样式 end */
.layui-upload {
padding: 0 39px;
}
.upload-file {
flex-direction: column;
justify-content: space-around;
width: 200px;
height: 120px;
}
blockquote {
display: flex;
align-items: center;
}
#test2 {
width: 120px;
height: 100px;
background-color: rgb(240, 240, 240);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.uploader-list {
margin-left: -15px;
max-width: calc(100% - 200px);
}
.uploader-list .handle {
position: relative;
background-color: red;
color: white;
filter: alpha(Opacity=80);
-moz-opacity: 0.5;
opacity: 1;
/*width: 212px;*/
text-align: right;
height: 18px;
width: 18px;
border-radius: 18px;
display: flex;
align-items: center;
justify-content: center;
left: 87%;
margin-bottom: -12px;
/*display: none;*/
}
.uploader-list .handle p {
font-size: 18px;
color: #fff;
cursor: pointer;
}
.uploader-list .handle i {
margin-right: 5px;
}
.uploader-list .handle i:hover {
cursor: pointer;
}
.uploader-list .file-iteme {
margin: 0 0 0 10px;
padding: 1px;
float: left;
}
.layui-upload-list {
margin: 0;
}
/**自定义滚动条样式 */ /**自定义滚动条样式 */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; width: 6px;

View File

@ -1,4 +1,4 @@
let objParam; let objParam, fileList = new Array(), imgListUp = new Array();;
let form, table, upload, tableIns, layer; let form, table, upload, tableIns, layer;
let pageNum = 1; let pageNum = 1;
@ -8,7 +8,8 @@ function setParams(params) {
if (objParam.type === 2) { // 审核 if (objParam.type === 2) { // 审核
$('#print').before('<button type="button" class="layui-btn layui-bg-orange" onclick="check()">审核</button>'); $('#print').before('<button type="button" class="layui-btn layui-bg-orange" onclick="check()">审核</button>');
} else if (objParam.type === 3) { // 出库 } else if (objParam.type === 3) { // 出库
$('#print').before('<button type="button" class="layui-btn layui-bg-blue" onclick="outBand()">确认出库</button>'); $('#print').before('<button type="button" class="layui-btn layui-bg-blue save" onclick="submitApply()">确认出库</button>');
$('#upload').removeAttr('style');
} }
if (objParam.devType === '2') { // 设备 if (objParam.devType === '2') { // 设备
let html = ''; let html = '';
@ -16,7 +17,7 @@ function setParams(params) {
'<th>内部编号</th><th>使用机型</th><th>使用单位</th><th></th>' '<th>内部编号</th><th>使用机型</th><th>使用单位</th><th></th>'
'</tr>'; '</tr>';
html += '<tr>' + html += '<tr>' +
'<td>GS511</td><td>机动绞磨 柴油 5T</td><td>xxxxxxxxxxxx工程</td><th></th>' '<td>GS511</td><td>机动绞磨 柴油 5T</td><td>xxxxxxxxxxxx工程</td><td></td>'
'</tr>'; '</tr>';
$('#lastTr').before(html); $('#lastTr').before(html);
} }
@ -27,11 +28,119 @@ function setParams(params) {
table = layui.table; table = layui.table;
upload = layui.upload; upload = layui.upload;
layer = layui.layer; layer = layui.layer;
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 = '';
obj.preview(function (index, file, result) {
console.log(file);
$('#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);
});
}
});
getInputDetails(); getInputDetails();
initTable(); initTable();
// 设置文件类型
function handleFileType(index, file, result) {
let html = '', img = '';
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 submitApply() {
// 校验出库附件是否上传
let length = $('.file-iteme').length;
if (length === 0) {
return layer.msg('请上传附件证明', { icon: 7 });
}
let formData = new FormData();
//遍历最终文件集合
for (let i = 0; i < fileList.length; i++) {
formData.append("file[]", fileList[i].file)
}
let obj = {
id: objParam.id
}
formData.append('params', JSON.stringify(obj));
console.log(JSON.stringify(data.field));
let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' });
console.log(JSON.stringify(data.field));
let url = dataUrl + 'backstage/partInput/addInputData';
ajaxRequestByUploadFile(url, formData, function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
}, function (result) {
console.log(result);
layer.close(loadingMsg);
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
if (result.code === 200) {
parent.layer.msg(result.msg, { icon: 1 });
closePage();
} 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);
errorFn(xhr, status, error)
}, null);
}
// 获取配件到货入库详情 // 获取配件到货入库详情
function getInputDetails() { function getInputDetails() {
let params = { let params = {
@ -239,7 +348,6 @@ function initTable() {
page: true, page: true,
done: function (res, curr, count) { done: function (res, curr, count) {
pageNum = tableIns.config.page.curr; pageNum = tableIns.config.page.curr;
element.render();
table.resize("currentTableId"); table.resize("currentTableId");
}, },
}); });
@ -349,3 +457,17 @@ function print() {
} }
}) })
} }
// 审核
function check() {
objParam.checkType = '1'; // 出库审核
openIframeByParamObj("check", "审核", "./audit_form.html", "40%", "50%", objParam);
}
function closePage() {
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
parent.layer.close(index); // 再执行关闭
window.parent.queryTable(1);
}

View File

@ -333,13 +333,3 @@ function print() {
} }
}) })
} }
// 审核
function check() {
alert('审核');
}
// 出库
function outBand() {
alert('出库');
}

View File

@ -1,7 +1,8 @@
var form, layer; var form, layer;
let idParam; let objParam, idParam;
function setParams(id) { function setParams(params) {
idParam = id; objParam = JSON.parse(params);
idParam = objParam.id;
layui.use(['form'], function () { layui.use(['form'], function () {
form = layui.form; form = layui.form;
layer = layui.layer; layer = layui.layer;
@ -11,12 +12,11 @@ function setParams(id) {
}); });
form.on('radio(auditStatus)', function (data) { form.on('radio(auditStatus)', function (data) {
if (data.value === '2') { // 通过 if (data.value === '2') { // 通过
$('#auditRemarksLabel').empty().append('审核意见');
$('#auditRemarks').removeAttr('lay-verify'); $('#auditRemarks').removeAttr('lay-verify');
$('#auditRemarksLabel').removeClass('required');
} else if (data.value === '3') { // 不通过 } else if (data.value === '3') { // 不通过
$('#auditRemarksLabel').empty().append(
'<span class="required_icon">*</span>审核意见');
$('#auditRemarks').attr('lay-verify', 'required'); $('#auditRemarks').attr('lay-verify', 'required');
$('#auditRemarksLabel').addClass('required');
} }
}); });
form.render(); form.render();
@ -34,10 +34,15 @@ function submitApply(data) {
shade: 0.01, shade: 0.01,
time: '0' time: '0'
}); });
let url = '';
if (objParam.checkType === '1') {
url = '';
data.field.id = idParam;
}
console.log(JSON.stringify(data.field)); console.log(JSON.stringify(data.field));
data.field.applyId = idParam;
$.ajax({ $.ajax({
url : bonuspath + '/backstage/planAudit/planAudit', url: url,
type: 'POST', type: 'POST',
data: JSON.stringify(data.field), data: JSON.stringify(data.field),
dataType: 'json', dataType: 'json',
@ -49,20 +54,18 @@ function submitApply(data) {
success: function (result) { success: function (result) {
layer.close(loadingMsg); // 关闭提示层 layer.close(loadingMsg); // 关闭提示层
if (result.res === 1) { if (result.res === 1) {
top.layer.msg(result.resMsg, { parent.layer.msg(result.msg, {
icon: 1 icon: 1
}); });
closePage(1); closePage(1);
} else { } else {
var indexMsg = layer.confirm(result.resMsg, { var indexMsg = layer.confirm(result.msg, {
btn: ['关闭'] btn: ['关闭']
}, function () { }, function () {
layer.close(indexMsg); layer.close(indexMsg);
}); });
$('.save').removeClass("layui-btn-disabled").attr("disabled", $('.save').removeClass("layui-btn-disabled").attr("disabled", false);
false); $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled",
false);
} }
}, },
error: function (result) { error: function (result) {
@ -72,10 +75,8 @@ function submitApply(data) {
scrollbar: false, scrollbar: false,
time: 2000 time: 2000
}); });
$('.save').removeClass("layui-btn-disabled") $('.save').removeClass("layui-btn-disabled").attr("disabled", false);
.attr("disabled", false); $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled",
false);
} }
}); });
} }
@ -83,8 +84,8 @@ function submitApply(data) {
// 关闭页面 // 关闭页面
function closePage(type) { function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引 let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
parent.layer.close(index); // 再执行关闭
if (type == 1) { if (type == 1) {
window.parent.closePage(); window.parent.closePage();
} }
parent.layer.close(index); // 再执行关闭
} }

View File

@ -9,6 +9,7 @@
<link rel="stylesheet" href="../../../css/font.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/public.css" media="all">
<link rel="stylesheet" href="../../../css/demandPlan/delivery_batch_list.css" media="all"> <link rel="stylesheet" href="../../../css/demandPlan/delivery_batch_list.css" media="all">
<link rel="stylesheet" href="../../../css/accessory/accessory_store_form.css" media="all">
</head> </head>
<style> <style>
.layuimini-container { .layuimini-container {
@ -45,6 +46,18 @@
<button type="button" id="print" class="layui-btn layui-bg-blue" onclick="print()">打印</button> <button type="button" id="print" class="layui-btn layui-bg-blue" onclick="print()">打印</button>
</div> </div>
</div> </div>
<div>
<div class="layui-upload" id="upload" style="display: none;">
<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>
<p style="color: red;">最多上传5个附件</p>
</blockquote>
</div>
</div>
<div id="basic-box"> <div id="basic-box">
<div class="title layout"> <div class="title layout">
<span style="font-weight:700;text-decoration:none;color:#409EFF;"></span> <span style="font-weight:700;text-decoration:none;color:#409EFF;"></span>
@ -118,13 +131,15 @@
<div class="layui-inline"> <div class="layui-inline">
<div class="layui-input-inline" style="width: 300px;"> <div class="layui-input-inline" style="width: 300px;">
<input type="text" name="name" id="name" autocomplete="off" <input type="text" name="name" id="name" autocomplete="off"
class="layui-input" lay-affix="clear" placeholder="输入配件名称" maxlength="30"> class="layui-input" lay-affix="clear" placeholder="输入配件名称"
maxlength="30">
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<div class="layui-input-inline" style="width: 300px;"> <div class="layui-input-inline" style="width: 300px;">
<input type="text" name="model" id="model" autocomplete="off" <input type="text" name="model" id="model" autocomplete="off"
class="layui-input" lay-affix="clear" placeholder="输入规格型号" maxlength="30"> class="layui-input" lay-affix="clear" placeholder="输入规格型号"
maxlength="30">
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
@ -151,6 +166,7 @@
<script src="../../../js/public.js" charset="utf-8"></script> <script src="../../../js/public.js" charset="utf-8"></script>
<script src="../../../js/Print.js" charset="utf-8"></script> <script src="../../../js/Print.js" charset="utf-8"></script>
<script src="../../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script> <script src="../../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script>
<script src="../../../js/accessory/child/accessory_store_detail.js" charset="utf-8"></script> <script src="../../../js/accessory/child/accessory_out_bound_detail.js" charset="utf-8"></script>
<script src="../../../js/openIframe.js" charset="utf-8"></script>
</html> </html>

View File

@ -9,7 +9,6 @@
<link rel="stylesheet" href="../../../css/font.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/data_form.css" media="all">
<link rel="stylesheet" href="../../../css/accessory/accessory_store_form.css" media="all"> <link rel="stylesheet" href="../../../css/accessory/accessory_store_form.css" media="all">
<link rel="stylesheet" href="../../../css/tips.css" media="all">
</head> </head>
<body> <body>
@ -132,6 +131,5 @@
<script src="../../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script> <script src="../../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script>
<script src="../../../js/accessory/child/accessory_store_form.js" charset="utf-8"></script> <script src="../../../js/accessory/child/accessory_store_form.js" charset="utf-8"></script>
<script src="../../../js/openIframe.js" charset="utf-8"></script> <script src="../../../js/openIframe.js" charset="utf-8"></script>
<script src="../../../js/tips.js" charset="utf-8"></script>
</html> </html>

View File

@ -21,7 +21,7 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label required" id="auditRemarksLabel">审核意见</label> <label class="layui-form-label" id="auditRemarksLabel">审核意见</label>
<div class="layui-input-inline" style="width: 250px;"> <div class="layui-input-inline" style="width: 250px;">
<textarea placeholder="不通过必须填写审核意见" id="auditRemarks" name="auditRemarks" class="layui-textarea" <textarea placeholder="不通过必须填写审核意见" id="auditRemarks" name="auditRemarks" class="layui-textarea"
maxLength="500"></textarea> maxLength="500"></textarea>