Commit 7515a7b8 by yyq1988

对接台账功能

parent 830ae006
...@@ -296,15 +296,22 @@ $(document).ready(function() { ...@@ -296,15 +296,22 @@ $(document).ready(function() {
function printQr(id) { function printQr(id) {
jp.loading('loading...'); jp.loading('loading...');
initLodop(); try{
jp.get("${ctx}/warehouse/goods/goods/printQr?goodsInfoId="+id, function (res) { initLodop();
var list = res.body.goodsInfo.qrCodeList; jp.get("${ctx}/warehouse/goods/goods/printQr?goodsInfoId="+id, function (res) {
LODOP.PRINT_INIT("打印货品"); var list = res.body.goodsInfo.qrCodeList;
LODOP.SET_PRINT_PAGESIZE(1,400,600,0) LODOP.PRINT_INIT("打印货品");
createAllPage(list); LODOP.SET_PRINT_PAGESIZE(1,400,600,0)
LODOP.PREVIEW(); createAllPage(list);
jp.close(); LODOP.PREVIEW();
}) jp.close();
})
}catch (e){
jp.get("${ctx}/warehouse/goods/goods/printQr?goodsInfoId="+id, function (res) {
var list = res.body.goodsInfo.qrCodeList;
jp.close();
})
}
} }
function createAllPage(list){ function createAllPage(list){
......
<%--
Created by IntelliJ IDEA.
User: yangzi
Date: 2023/2/21
Time: 10:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/webpage/include/taglib.jsp" %>
<table id="detail_table"></table>
<script>
var selector = "#detail_table";
function initTable(){
var data = ${fns:toJson(ledger.ledgerInfoList)};
$(selector).bootstrapTable({
data: data,
columns:[{checkbox: true},
{
field: 'no',
title: '序号',
align: 'center',
width: 60,
formatter: function (value, row, index){
var tpl = $("#hideTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
var html = Mustache.render(tpl, {
idx: index,
row: row
})
return html + '<span>'+(index+1)+'</span>'
}
},
{
field: 'name',
title: '名称',
formatter: function (value,row,index){
return Mustache.render($("#nameTpl").html(),{
row: row,
idx: index
})
}
},
{
field: 'type.name',
title: '类型',
formatter: function (value,row,index){
return Mustache.render($("#typeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""),{
row: row,
idx: index
})
}
},
{
field: 'model',
title: '型号',
formatter: function (value,row,index){
return Mustache.render($("#modelTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""),{
row: row,
idx: index
})
}
},
{
field: 'batchNum',
title: '批次号',
formatter: function (value,row,index){
return Mustache.render($("#batchNumTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""),{
row: row,
idx: index
})
}
},
{
field: 'shelves.name',
title: '货架',
formatter: function (value,row,index){
return Mustache.render($("#shelvesTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""),{
row: row,
idx: index
})
}
},
{
field: 'code',
title: '物资编码',
formatter: function (value,row,index){
return Mustache.render($("#codeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""),{
row: row,
idx: index
})
}
},
{
field: '',
title: '操作',
formatter: function (value,row,index){
var text = row.delFlag == 1 ? '撤销删除' : '删除';
var result = ["<a href='javascript:void(0);' onclick=\"removeRow(" + index + ", '" + row.id + "', '" + row.delFlag + "')\">"+text+"</a>" ]
return result.join('');
}
}
]
});
}
function getSelections(){
return $(selector).bootstrapTable('getSelections');
}
function removeRow(index, rowId, rowDelFlag){
if(rowId){
var delFlag = rowDelFlag === 1 ? 0 : 1
updateRow(index, {
delFlag: delFlag
})
}else{
$(selector).bootstrapTable("remove", {
field: '$index',
values: [index]
})
}
}
function updateRow(index, row){
$(selector).bootstrapTable('updateRow', {
index: index,
row: row
})
}
function onInputChange(rowIndex, elem , field){
var obj = {};
obj[field] = $(elem).val()
var timer = null;
clearTimeout(timer);
timer = setTimeout(function (){
updateRow(rowIndex, obj)
}, 0)
}
function onSelectType(nodes, rowIndex){
if(Array.isArray(nodes) && nodes.length === 1){
var node = nodes[0];
var obj = {
type: {
id: node.id,
name: node.text
}
};
updateRow(rowIndex, obj)
}
}
/**
* 获取所有明细数据
* @returns {*|jQuery}
*/
function getTableData(){
return $(selector).bootstrapTable('getData');
}
</script>
<script id="hideTpl" type="text/html">
<input id="ledgerInfoList{{idx}}_id" name="ledgerInfoList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
<input id="ledgerInfoList{{idx}}_delFlag" name="ledgerInfoList[{{idx}}].delFlag" type="hidden" value="{{row.delFlag}}"/>
<input id="ledgerInfoList{{idx}}_goodsInfoId" name="ledgerInfoList[{{idx}}].goodsInfo.id" type="hidden" value="{{row.goodsInfo.id}}"/>
<input id="ledgerInfoList{{idx}}_shelvesId" name="ledgerInfoList[{{idx}}].shelves.id" type="hidden" value="{{row.shelves.id}}" readonly class="form-control" />
<input id="ledgerInfoList{{idx}}_qrCodeId" name="ledgerInfoList[{{idx}}].qr.id" type="hidden" value="{{row.qr.id}}" readonly class="form-control" />
</script>
<script id="nameTpl" type="text/html">
<input id="ledgerInfoList{{idx}}_name" name="ledgerInfoList[{{idx}}].name" type="text" readonly value="{{row.name}}" onchange="onInputChange('{{idx}}', this, 'name')" class="form-control "/>
</script>
<script id="typeTpl" type="text/html">//<!--
<sys:treeselect id="ledgerInfoList{{idx}}_type" name="ledgerInfoList[{{idx}}].type.id" value="{{row.type.id}}" labelName="storageInfoList{{idx}}.type.name" labelValue="{{row.type.name}}"
title="类型" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " disabled="disabled" allowClear="true" allowSearch="true" callback="onSelectType" />//-->
</script>
<script id="modelTpl" type="text/html">
<input id="ledgerInfoList{{idx}}_model" name="ledgerInfoList[{{idx}}].model" type="text" value="{{row.model}}" readonly onchange="onInputChange('{{idx}}', this, 'model')" class="form-control "/>
</script>
<script id="batchNumTpl" type="text/html">
<input id="ledgerInfoList{{idx}}_batchNum" name="ledgerInfoList[{{idx}}].batchNum" type="text" value="{{row.batchNum}}" readonly onchange="onInputChange('{{idx}}', this, 'model')" class="form-control "/>
</script>
<script id="codeTpl" type="text/html">
<input id="ledgerInfoList{{idx}}_code" name="ledgerInfoList[{{idx}}].code" type="text" value="{{row.code}}" readonly class="form-control" />
</script>
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/webpage/include/taglib.jsp"%> <%@ include file="/webpage/include/taglib.jsp" %>
<html> <html>
<head> <head>
<title>台账信息管理</title> <title>台账信息管理</title>
<meta name="decorator" content="ani"/> <meta name="decorator" content="ani"/>
<script type="text/javascript"> <link rel="stylesheet" href="${ctxStatic}/common/css/form.css">
<link rel="stylesheet" href="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.css">
$(document).ready(function() { <script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.js"></script>
jp.ajaxForm("#inputForm",function(data){ <script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-zh-CN.js"></script>
if(data.success){
jp.success(data.msg);
jp.go("${ctx}/warehouse/ledger/ledger");
}else{
jp.error(data.msg);
$("#inputForm").find("button:submit").button("reset");
}
});
});
function addRow(list, idx, tpl, row){
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
$(list+idx).find("select").each(function(){
$(this).val($(this).attr("data-value"));
});
$(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
var ss = $(this).attr("data-value").split(',');
for (var i=0; i<ss.length; i++){
if($(this).val() == ss[i]){
$(this).attr("checked","checked");
}
}
});
$(list+idx).find(".form_datetime").each(function(){
$(this).datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
});
}
function delRow(obj, prefix){
var id = $(prefix+"_id");
var delFlag = $(prefix+"_delFlag");
if (id.val() == ""){
$(obj).parent().parent().remove();
}else if(delFlag.val() == "0"){
delFlag.val("1");
$(obj).html("&divide;").attr("title", "撤销删除");
$(obj).parent().parent().addClass("error");
}else if(delFlag.val() == "1"){
delFlag.val("0");
$(obj).html("&times;").attr("title", "删除");
$(obj).parent().parent().removeClass("error");
}
}
</script>
</head> </head>
<body> <body>
<div class="wrapper wrapper-content"> <div class="wrapper wrapper-content">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-body">
<h3 class="panel-title"> <form:form id="inputForm" modelAttribute="ledger" action="${ctx}/warehouse/ledger/ledger/save"
<a class="panelButton" href="${ctx}/warehouse/ledger/ledger"><i class="ti-angle-left"></i> 返回</a> method="post" class="form-horizontal">
</h3> <form:hidden path="id"/>
</div> <h3 class="text-center">台账表</h3>
<div class="panel-body"> <table class="table table-bordered main-table">
<form:form id="inputForm" modelAttribute="ledger" action="${ctx}/warehouse/ledger/ledger/save" method="post" class="form-horizontal"> <tr>
<form:hidden path="id"/> <td>物资名称</td>
<div class="form-group"> <td>
<label class="col-sm-2 control-label">物资名称:</label> <form:input path="name" htmlEscape="false" class="form-control "/>
<div class="col-sm-10"> </td>
<form:input path="name" htmlEscape="false" class="form-control "/> <td>类型</td>
</div> <td>
</div> <sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name"
<div class="form-group"> labelValue="${ledger.type.name}"
<label class="col-sm-2 control-label">类型:</label> title="类型" url="/warehouse/materialtype/materialType/treeData"
<div class="col-sm-10"> extId="${ledger.id}" cssClass="form-control " allowClear="true"/>
<sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name" labelValue="${ledger.type.name}" </td>
title="类型" url="/warehouse/materialtype/materialType/treeData" extId="${ledger.id}" cssClass="form-control " allowClear="true"/> </tr>
</div> <tr>
</div> <td>型号</td>
<div class="form-group"> <td>
<label class="col-sm-2 control-label">型号:</label> <form:input path="model" htmlEscape="false" class="form-control "/>
<div class="col-sm-10"> </td>
<form:input path="model" htmlEscape="false" class="form-control "/> <td>数量</td>
</div> <td>
</div> <form:input path="num" htmlEscape="false" class="form-control "/>
<div class="form-group"> </td>
<label class="col-sm-2 control-label">货架id集合:</label> </tr>
<div class="col-sm-10"> <tr>
<form:input path="shelvesIds" htmlEscape="false" class="form-control "/> <td>总价</td>
</div> <td>
</div> <form:input path="sum" htmlEscape="false" class="form-control "/>
<div class="form-group"> </td>
<label class="col-sm-2 control-label">数量:</label> <td colspan="2"></td>
<div class="col-sm-10"> </tr>
<form:input path="num" htmlEscape="false" class="form-control "/> <tr>
</div> <td colspan="4">
</div> <%@include file="ledgerDetail.jsp" %>
<div class="form-group"> </td>
<label class="col-sm-2 control-label">备注信息:</label> </tr>
<div class="col-sm-10"> </table>
<form:textarea path="remarks" htmlEscape="false" rows="4" class="form-control "/> </form:form>
</div> </div>
</div> </div>
<div class="tabs-container"> </div>
<ul class="nav nav-tabs"> </div>
<li class="active"><a data-toggle="tab" href="#tab-1" aria-expanded="true">台账明细:</a>
</li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane fade in active">
<a class="btn btn-white btn-sm" onclick="addRow('#ledgerInfoList', ledgerInfoRowIdx, ledgerInfoTpl);ledgerInfoRowIdx = ledgerInfoRowIdx + 1;" title="新增"><i class="fa fa-plus"></i> 新增</a>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="hide"></th>
<th>物资名称</th>
<th>类型</th>
<th>型号</th>
<th>批次号</th>
<th>货品明细id</th>
<th>二维码id</th>
<th>货架id</th>
<th>物资编码</th>
<th>备注信息</th>
<th width="10">&nbsp;</th>
</tr>
</thead>
<tbody id="ledgerInfoList">
</tbody>
</table>
<script type="text/template" id="ledgerInfoTpl">//<!--
<tr id="ledgerInfoList{{idx}}">
<td class="hide">
<input id="ledgerInfoList{{idx}}_id" name="ledgerInfoList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
<input id="ledgerInfoList{{idx}}_delFlag" name="ledgerInfoList[{{idx}}].delFlag" type="hidden" value="0"/>
</td>
<td>
<input id="ledgerInfoList{{idx}}_name" name="ledgerInfoList[{{idx}}].name" type="text" value="{{row.name}}" class="form-control "/>
</td>
<td>
<sys:treeselect id="ledgerInfoList{{idx}}_type" name="ledgerInfoList[{{idx}}].type.id" value="{{row.type.id}}" labelName="ledgerInfoList{{idx}}.type.code" labelValue="{{row.type.code}}"
title="类型" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " allowClear="true" />
</td>
<td>
<input id="ledgerInfoList{{idx}}_model" name="ledgerInfoList[{{idx}}].model" type="text" value="{{row.model}}" class="form-control "/>
</td>
<td>
<input id="ledgerInfoList{{idx}}_batchNum" name="ledgerInfoList[{{idx}}].batchNum" type="text" value="{{row.batchNum}}" class="form-control "/>
</td>
<td>
<input id="ledgerInfoList{{idx}}_goodsInfo" name="ledgerInfoList[{{idx}}].goodsInfo.id" type="text" value="{{row.goodsInfo.id}}" class="form-control "/>
</td>
<td>
<input id="ledgerInfoList{{idx}}_qr" name="ledgerInfoList[{{idx}}].qr.id" type="text" value="{{row.qr.id}}" class="form-control "/>
</td>
<td>
<sys:treeselect id="ledgerInfoList{{idx}}_shelves" name="ledgerInfoList[{{idx}}].shelves.id" value="{{row.shelves.id}}" labelName="ledgerInfoList{{idx}}.shelves.name" labelValue="{{row.shelves.name}}"
title="货架id" url="/warehouse/shelves/shelves/data" cssClass="form-control " allowClear="true" />
</td>
<td>
<input id="ledgerInfoList{{idx}}_code" name="ledgerInfoList[{{idx}}].code" type="text" value="{{row.code}}" class="form-control "/>
</td>
<td>
<textarea id="ledgerInfoList{{idx}}_remarks" name="ledgerInfoList[{{idx}}].remarks" rows="4" class="form-control ">{{row.remarks}}</textarea>
</td>
<td class="text-center" width="10">
{{#delBtn}}<span class="close" onclick="delRow(this, '#ledgerInfoList{{idx}}')" title="删除">&times;</span>{{/delBtn}}
</td>
</tr>//-->
</script>
<script type="text/javascript">
var ledgerInfoRowIdx = 0, ledgerInfoTpl = $("#ledgerInfoTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
$(document).ready(function() {
var data = ${fns:toJson(ledger.ledgerInfoList)};
for (var i=0; i<data.length; i++){
addRow('#ledgerInfoList', ledgerInfoRowIdx, ledgerInfoTpl, data[i]);
ledgerInfoRowIdx = ledgerInfoRowIdx + 1;
}
});
</script>
</div>
</div>
</div>
<c:if test="${mode == 'add' || mode=='edit'}">
<div class="col-lg-3"></div>
<div class="col-lg-6">
<div class="form-group text-center">
<div>
<button class="btn btn-primary btn-block btn-lg btn-parsley" data-loading-text="正在提交...">提 交</button>
</div>
</div>
</div>
</c:if>
</form:form>
</div>
</div>
</div>
</div>
</div> </div>
<script type="text/javascript">
$(document).ready(function () {
initTable();
});
function save() {
var isValidate = jp.validateForm('#inputForm');//校验表单
if(!isValidate){
return false;
}else{
jp.loading();
jp.post($("#inputForm").attr('action'),$('#inputForm').serialize(),function(data){
if(data.success){
jp.getParent().refresh();
var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
parent.layer.close(dialogIndex);
jp.success(data.msg)
}else{
jp.error(data.msg);
}
})
}
}
</script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -249,21 +249,21 @@ $(document).ready(function() { ...@@ -249,21 +249,21 @@ $(document).ready(function() {
$('#ledgerTable').bootstrapTable('refresh'); $('#ledgerTable').bootstrapTable('refresh');
} }
function add(){ function add(){
jp.go("${ctx}/warehouse/ledger/ledger/form/add"); jp.openSaveDialog("新增台账","${ctx}/warehouse/ledger/ledger/form/add", '1200', '800');
} }
function edit(id){ function edit(id){
if(id == undefined){ if(id == undefined){
id = getIdSelections(); id = getIdSelections();
} }
jp.go("${ctx}/warehouse/ledger/ledger/form/edit?id=" + id); jp.openSaveDialog("编辑台账","${ctx}/warehouse/ledger/ledger/form/edit?id=" + id, '1200', '800');
} }
function view(id){//没有权限时,不显示确定按钮 function view(id){//没有权限时,不显示确定按钮
if(id == undefined){ if(id == undefined){
id = getIdSelections(); id = getIdSelections();
} }
jp.go("${ctx}/warehouse/ledger/ledger/form/view?id=" + id); jp.openViewDialog("查看台账","${ctx}/warehouse/ledger/ledger/form/view?id=" + id,'1200', '800');
} }
...@@ -311,12 +311,8 @@ $(document).ready(function() { ...@@ -311,12 +311,8 @@ $(document).ready(function() {
<th>类型</th> <th>类型</th>
<th>型号</th> <th>型号</th>
<th>批次号</th> <th>批次号</th>
<th>主表外键</th> <th>货架</th>
<th>货品明细id</th>
<th>二维码id</th>
<th>货架id</th>
<th>物资编码</th> <th>物资编码</th>
<th>备注信息</th>
</tr> </tr>
</thead> </thead>
<tbody id="ledgerChild-{{idx}}-1-List"> <tbody id="ledgerChild-{{idx}}-1-List">
......
...@@ -318,6 +318,7 @@ $(document).ready(function() { ...@@ -318,6 +318,7 @@ $(document).ready(function() {
$("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(shelvesIds$).append(num$).append(sum$); $("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(shelvesIds$).append(num$).append(sum$);
data.forEach(function (item,index){ data.forEach(function (item,index){
// 构建台账附表 // 构建台账附表
var id$ = $("<input type='hidden' name='ledgerInfoList["+index+"].id' value='' />");
var delFlag$ = $("<input type='hidden' name='ledgerInfoList["+index+"].delFlag' value='0' />"); var delFlag$ = $("<input type='hidden' name='ledgerInfoList["+index+"].delFlag' value='0' />");
var name$ = $("<input type='hidden' name='ledgerInfoList["+index+"].name' value='"+item.name+"' />"); var name$ = $("<input type='hidden' name='ledgerInfoList["+index+"].name' value='"+item.name+"' />");
var typeId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].type.id' value='"+item.type.id+"' />"); var typeId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].type.id' value='"+item.type.id+"' />");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment