Commit df05c88c by anxiaohe

出库功能

parent b75fb4fa
...@@ -27,38 +27,49 @@ ...@@ -27,38 +27,49 @@
}, },
{ {
field: 'type.name', field: 'type.name',
title: '品名代码', title: '品名',
align: 'center' sortable: true,
sortName: 'type.name',
}, },
{ {
field: 'model', field: 'type.code',
title: '型号', title: '代码',
align: 'center' sortable: true,
sortName: 'type.code'
},
{
field: 'code',
title: '入库单'
}, },
{ {
field: 'batchNum', field: 'batchNum',
title: '批次号', title: '批次号',
align: 'center'
}, },
{ {
field: 'shelvesNames', field: 'amount',
title: '货架', title: '单价'
align: 'center'
}, },
{ {
field: 'warehouseNames', field: "type.unit",
title: '仓库', title: '单位'
align: 'center' },
{
field: 'model',
title: '型号',
sortable: true,
sortName: 'model'
}, },
{ {
field: 'num', field: 'num',
title: '数量', title: '数量'
align: 'center'
}, },
{ {
field: 'sum', field: 'sum',
title: '总价', title: '总价',
align: 'center' sortName: 'sum',
formatter (v, row) {
return new Big(row.num).times(row.amount).toNumber()
}
}, },
{ {
title: '操作', title: '操作',
...@@ -72,7 +83,7 @@ ...@@ -72,7 +83,7 @@
title: '查看明细', title: '查看明细',
type: 1, type: 1,
auto: true, auto: true,
area: ['800', '600'], area: ['1000', '600'],
content: $("#detailTpl").html(), content: $("#detailTpl").html(),
success: function (){ success: function (){
$("#table").bootstrapTable({ $("#table").bootstrapTable({
...@@ -99,12 +110,49 @@ ...@@ -99,12 +110,49 @@
columns: [ columns: [
{checkbox:true}, {checkbox:true},
{field: 'code', title: '物资编码'}, {field: 'code', title: '物资编码'},
{field: 'name', title: '物资名称'}, {
{field: 'type.name', title: '品名代码'}, field: 'type.name',
title: '品名',
},
{
field: 'type.code',
title: '代码',
},
{
field: 'batchNum',
title: '批次号',
},
{
field: 'amount',
title: '单价'
},
{
field: "type.unit",
title: '单位'
},
{
field: 'amount',
title: '单价'
},
{
field: "type.unit",
title: '单位'
},
{field: 'model', title: '型号'}, {field: 'model', title: '型号'},
{field: 'batchNum', title: '批次号'},
{field: 'shelves.name', title: '货架'}, {field: 'shelves.name', title: '货架'},
{field: 'amount', title: '单价'}, // {field: 'amount', title: '单价'},
{
field: 'num',
title: '数量'
},
{
field: 'sum',
title: '总价',
sortName: 'sum',
formatter (v, row) {
return new Big(row.num).times(row.amount).toNumber()
}
},
{ {
field: 'qr.url', field: 'qr.url',
title: '二维码', title: '二维码',
...@@ -135,11 +183,14 @@ ...@@ -135,11 +183,14 @@
} }
} }
} }
] ].map(function (e) {
e.align = 'center';
return e;
})
}); });
jp.get("${ctx}/warehouse/ledger/ledger/countLedger?id=${ledger.id}", function (ledger) { jp.get("${ctx}/warehouse/ledger/ledger/detail?id=${ledger.id}", function (ledger) {
var data = ledger.countLedgerInfoList || []; var data = ledger.ledgerInfoList || [];
$(selector).bootstrapTable('append', data); $(selector).bootstrapTable('append', data);
}) })
} }
...@@ -234,4 +285,4 @@ ...@@ -234,4 +285,4 @@
<button id="batchPrintBtn" class="btn btn-primary" onclick="onPrint()" disabled>批量打印</button> <button id="batchPrintBtn" class="btn btn-primary" onclick="onPrint()" disabled>批量打印</button>
<table id="table"></table> <table id="table"></table>
</div> </div>
</script> </script>
\ No newline at end of file
...@@ -22,17 +22,21 @@ ...@@ -22,17 +22,21 @@
<h3 class="text-center">台账表</h3> <h3 class="text-center">台账表</h3>
<table class="table table-bordered main-table"> <table class="table table-bordered main-table">
<tr> <tr>
<td>物资名称</td> <td>品名</td>
<td>
<form:input path="name" htmlEscape="false" class="form-control "/>
</td>
<td>品名代码</td>
<td> <td>
<sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name" <sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name"
labelValue="${ledger.type.name}" labelValue="${ledger.type.name}"
title="品名代码" url="/warehouse/materialtype/materialType/treeData" title="品名代码" url="/warehouse/materialtype/materialType/treeData"
extId="${ledger.id}" cssClass="form-control " allowClear="true"/> extId="${ledger.id}" cssClass="form-control " allowClear="true"/>
</td> </td>
<td>品名代码</td>
<td>
<%-- <sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name"--%>
<%-- labelValue="${ledger.type.name}"--%>
<%-- title="品名代码" url="/warehouse/materialtype/materialType/treeData"--%>
<%-- extId="${ledger.id}" cssClass="form-control " allowClear="true"/>--%>
<form:input path="type.code" htmlEscape="false" class="form-control "/>
</td>
<td>型号</td> <td>型号</td>
<td> <td>
<form:input path="model" htmlEscape="false" class="form-control "/> <form:input path="model" htmlEscape="false" class="form-control "/>
......
...@@ -240,21 +240,21 @@ function refresh(){ ...@@ -240,21 +240,21 @@ function refresh(){
$('#ledgerTable').bootstrapTable('refresh'); $('#ledgerTable').bootstrapTable('refresh');
} }
function add(){ function add(){
jp.openSaveDialog("新增台账","${ctx}/warehouse/ledger/ledger/form/add", '1200', '800'); jp.openSaveDialog("新增台账","${ctx}/warehouse/ledger/ledger/form/add", '1400', '800');
} }
function edit(id){ function edit(id){
if(id == undefined){ if(id == undefined){
id = getIdSelections(); id = getIdSelections();
} }
jp.openSaveDialog("编辑台账","${ctx}/warehouse/ledger/ledger/form/edit?id=" + id, '1200', '800'); jp.openSaveDialog("编辑台账","${ctx}/warehouse/ledger/ledger/form/edit?id=" + id, '1400', '800');
} }
function view(id){//没有权限时,不显示确定按钮 function view(id){//没有权限时,不显示确定按钮
if(id == undefined){ if(id == undefined){
id = getIdSelections(); id = getIdSelections();
} }
jp.openViewDialog("查看台账","${ctx}/warehouse/ledger/ledger/form/view?id=" + id,'1200', '800'); jp.openViewDialog("查看台账","${ctx}/warehouse/ledger/ledger/form/view?id=" + id,'1400', '800');
} }
...@@ -534,6 +534,7 @@ function scanIptGetFocusStop () { ...@@ -534,6 +534,7 @@ function scanIptGetFocusStop () {
<tr> <tr>
<th>品名</th> <th>品名</th>
<th>代码</th> <th>代码</th>
<th>物资编码</th>
<th>数量</th> <th>数量</th>
<th>单位</th> <th>单位</th>
<th>型号</th> <th>型号</th>
...@@ -542,6 +543,7 @@ function scanIptGetFocusStop () { ...@@ -542,6 +543,7 @@ function scanIptGetFocusStop () {
<th>批次号</th> <th>批次号</th>
<th>货架</th> <th>货架</th>
<th>仓库</th> <th>仓库</th>
<th>备注</th>
</tr> </tr>
</thead> </thead>
<tbody id="ledgerChild-{{idx}}-1-List"> <tbody id="ledgerChild-{{idx}}-1-List">
...@@ -558,6 +560,7 @@ function scanIptGetFocusStop () { ...@@ -558,6 +560,7 @@ function scanIptGetFocusStop () {
<td> <td>
{{row.type.code}} {{row.type.code}}
</td> </td>
<td>{{row.code}}</td>
<td> <td>
{{row.num}} {{row.num}}
</td> </td>
...@@ -583,6 +586,9 @@ function scanIptGetFocusStop () { ...@@ -583,6 +586,9 @@ function scanIptGetFocusStop () {
<td> <td>
{{row.warehouseNames}} {{row.warehouseNames}}
</td> </td>
<td>
{{row.remarks}}
</td>
</tr>//--> </tr>//-->
</script> </script>
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
if(data.length){ if(data.length){
data = data.map(function(item){ data = data.map(function(item){
item.delFlag = 0; item.delFlag = 0;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return item; return item;
}) })
} }
...@@ -48,30 +49,50 @@ ...@@ -48,30 +49,50 @@
} }
}, },
{ {
field: 'ledgerInfo.name', field: 'ledgerInfo.code',
title: '物资名称', title: '物资编码',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoNameTpl").html(), { return Mustache.render($("#ledgerInfoCodeTpl").html(), {
row: row, row: row,
idx: index idx: index
}) })
} }
}, },
{ {
field: 'ledgerInfo.code', field: 'ledgerInfo.type.name',
title: '物资编码', title: '品名',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoCodeTpl").html(), { return Mustache.render($("#ledgerInfoTypeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row, row: row,
idx: index idx: index
}) })
} }
}, },
{ {
field: 'ledgerInfo.type.name', field: 'ledgerInfo.type.code',
title: '品名代码', title: '代码',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoTypeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), { return Mustache.render($("#ledgerInfoTypeCodeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.amount',
title: '单价',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoAmountTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: "ledgerInfo.type.unit",
title: '单位',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoTypeUnitTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row, row: row,
idx: index idx: index
}) })
...@@ -88,10 +109,21 @@ ...@@ -88,10 +109,21 @@
} }
}, },
{ {
field: 'ledgerInfo.amount', field: 'num',
title: '单价', title: '数量',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoAmountTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), { return Mustache.render($("#ledgerInfoNumTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: 'infoSum',
title: '总价',
sortName: 'infoSum',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoInfoSumTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row, row: row,
idx: index idx: index
}) })
...@@ -170,6 +202,7 @@ ...@@ -170,6 +202,7 @@
}) })
var data = newItems.map(function (item) { var data = newItems.map(function (item) {
item[0] = false; item[0] = false;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return { return {
id: '', id: '',
delFlag: 0, delFlag: 0,
...@@ -377,6 +410,16 @@ ...@@ -377,6 +410,16 @@
<sys:treeselect id="materialRequisitionInfoList{{idx}}_ledgerInfoType" name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.id" value="{{row.ledgerInfo.type.id}}" labelName="materialRequisitionInfoList{{idx}}.ledgerInfo.type.name" labelValue="{{row.ledgerInfo.type.name}}" <sys:treeselect id="materialRequisitionInfoList{{idx}}_ledgerInfoType" name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.id" value="{{row.ledgerInfo.type.id}}" labelName="materialRequisitionInfoList{{idx}}.ledgerInfo.type.name" labelValue="{{row.ledgerInfo.type.name}}"
title="品名代码" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " disabled="disabled" allowClear="true"/>//--> title="品名代码" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " disabled="disabled" allowClear="true"/>//-->
</script> </script>
<script id="ledgerInfoTypeCodeTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoTypeCode"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.code" type="text" class="form-control" readonly
value="{{row.ledgerInfo.type.code}}"/>
</script>
<script id="ledgerInfoTypeUnitTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoTypeUnit
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.unit" type="text" class="form-control" readonly
value="{{row.ledgerInfo.type.unit}}"/>
</script>
<script id="ledgerInfoModelTpl" type="text/html"> <script id="ledgerInfoModelTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoModel" <input id="materialRequisitionInfoList{{idx}}_ledgerInfoModel"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.model" type="text" class="form-control" readonly name="materialRequisitionInfoList[{{idx}}].ledgerInfo.model" type="text" class="form-control" readonly
...@@ -387,6 +430,16 @@ ...@@ -387,6 +430,16 @@
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.amount" type="text" readonly class="form-control" name="materialRequisitionInfoList[{{idx}}].ledgerInfo.amount" type="text" readonly class="form-control"
value="{{row.ledgerInfo.amount}}"/> value="{{row.ledgerInfo.amount}}"/>
</script> </script>
<script id="ledgerInfoNumTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoNum"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.num" type="text" readonly class="form-control"
value="{{row.ledgerInfo.num}}"/>
</script>
<script id="ledgerInfoInfoSumTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoInfoSum"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.infoSum" type="text" readonly class="form-control"
value="{{row.ledgerInfo.infoSum}}"/>
</script>
<script id="receiverTpl" type="text/html"> <script id="receiverTpl" type="text/html">
<input type="hidden" name="materialRequisitionInfoList[{{idx}}].receiver" value="{{row.receiver}}"> <input type="hidden" name="materialRequisitionInfoList[{{idx}}].receiver" value="{{row.receiver}}">
{{#row.receiver}} {{#row.receiver}}
...@@ -418,4 +471,4 @@ ...@@ -418,4 +471,4 @@
</div> </div>
</div> </div>
<br> <br>
</script> </script>
\ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<link rel="stylesheet" href="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.css"> <link rel="stylesheet" href="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.css">
<script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.js"></script> <script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-zh-CN.js"></script> <script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-zh-CN.js"></script>
<script type="text/javascript" src="${ctxStatic}/common/js/big.js"></script>
<style> <style>
.sign-result{ .sign-result{
width: 80px; width: 80px;
...@@ -146,4 +147,4 @@ ...@@ -146,4 +147,4 @@
} }
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page contentType="text/html;charset=UTF-8" %>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#materialRequisitionTable').bootstrapTable({ $('#materialRequisitionTable').bootstrapTable({
//请求方法 //请求方法
method: 'post', method: 'post',
//类型json //类型json
dataType: "json", dataType: "json",
contentType: "application/x-www-form-urlencoded", contentType: "application/x-www-form-urlencoded",
//显示检索按钮 //显示检索按钮
showSearch: true, showSearch: true,
//显示刷新按钮 //显示刷新按钮
showRefresh: true, showRefresh: true,
//显示切换手机试图按钮 //显示切换手机试图按钮
showToggle: true, showToggle: true,
//显示 内容列下拉框 //显示 内容列下拉框
showColumns: true, showColumns: true,
//显示到处按钮 //显示到处按钮
showExport: true, showExport: true,
//显示切换分页按钮 //显示切换分页按钮
showPaginationSwitch: true, showPaginationSwitch: true,
//显示详情按钮 //显示详情按钮
detailView: true, detailView: true,
//显示详细内容函数 //显示详细内容函数
detailFormatter: "detailFormatter", detailFormatter: "detailFormatter",
//最低显示2行 //最低显示2行
minimumCountColumns: 2, minimumCountColumns: 2,
//是否显示行间隔色 //是否显示行间隔色
striped: true, striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false, cache: false,
//是否显示分页(*) //是否显示分页(*)
pagination: true, pagination: true,
//排序方式 //排序方式
sortOrder: "asc", sortOrder: "asc",
//初始化加载第一页,默认第一页 //初始化加载第一页,默认第一页
pageNumber:1, pageNumber:1,
//每页的记录行数(*) //每页的记录行数(*)
pageSize: 10, pageSize: 10,
//可供选择的每页的行数(*) //可供选择的每页的行数(*)
pageList: [10, 25, 50, 100], pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据 //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/materialrequisition/materialRequisition/data", url: "${ctx}/warehouse/materialrequisition/materialRequisition/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'', //queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义 ////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) { queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON(); var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1; searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit; searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order; searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam; return searchParam;
}, },
//分页方式:client客户端分页,server服务端分页(*) //分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server", sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单 contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。 contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu', contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){ onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){ if($el.data("item") == "edit"){
edit(row.id); edit(row.id);
}else if($el.data("item") == "view"){ }else if($el.data("item") == "view"){
view(row.id); view(row.id);
} else if($el.data("item") == "delete"){ } else if($el.data("item") == "delete"){
jp.confirm('确认要删除该物资领用记录吗?', function(){ jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading(); jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="+row.id, function(data){ jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="+row.id, function(data){
if(data.success){ if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh'); $('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg); jp.success(data.msg);
}else{ }else{
jp.error(data.msg); jp.error(data.msg);
} }
}) })
}); });
} }
}, },
onClickRow: function(row, $el){ onClickRow: function(row, $el){
}, },
onShowSearch: function () { onShowSearch: function () {
$("#search-collapse").slideToggle(); $("#search-collapse").slideToggle();
}, },
columns: [{ columns: [{
checkbox: true checkbox: true
} }
,{ ,{
field: 'number', field: 'number',
title: '领用单号', title: '领用单号',
sortable: true, sortable: true,
sortName: 'number' sortName: 'number'
,formatter:function(value, row , index){ ,formatter:function(value, row , index){
value = jp.unescapeHTML(value); value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>"; return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
} }
} }
,{ ,{
field: 'operator.name', field: 'operator.name',
title: '操作人', title: '操作人',
sortable: true, sortable: true,
sortName: 'operator.name' sortName: 'operator.name'
} }
,{ ,{
field: 'office.name', field: 'office.name',
title: '领用机构', title: '领用机构',
sortable: true, sortable: true,
sortName: 'o.name' sortName: 'o.name'
} }
,{ ,{
field: 'time', field: 'time',
title: '领用时间', title: '领用时间',
sortable: true, sortable: true,
sortName: 'time' sortName: 'time'
} },
,{ {
field: 'status', field: 'status',
title: '出库状态', title: '出库状态',
sortable: true, sortable: true,
sortName: 'status', sortName: 'status',
formatter:function(value, row , index){ formatter:function(value, row , index){
return jp.getDictLabel(${fns:toJson(fns:getDictList('wh_delivery_status'))}, value, "-"); return jp.getDictLabel(${fns:toJson(fns:getDictList('wh_delivery_status'))}, value, "-");
} }
} },
,{ {
field: 'remarks', field: 'remarks',
title: '备注信息', title: '备注信息',
sortable: true, sortable: true,
sortName: 'remarks' sortName: 'remarks'
},
} {
] title: '操作',
formatter (v, r) {
}); if (r.status === '1') {
return "<a class='delivery'>出库</a>"
}
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端 },
events: {
'click .delivery': function (e, v, r) {
$('#materialRequisitionTable').bootstrapTable("toggleView"); onDelivery(r.id);
} }
}
$('#materialRequisitionTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' + }
'check-all.bs.table uncheck-all.bs.table', function () { ]
});
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#materialRequisitionTable').bootstrapTable("toggleView");
}
$('#materialRequisitionTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#remove').prop('disabled', ! $('#materialRequisitionTable').bootstrapTable('getSelections').length); $('#remove').prop('disabled', ! $('#materialRequisitionTable').bootstrapTable('getSelections').length);
$('#view,#edit').prop('disabled', $('#materialRequisitionTable').bootstrapTable('getSelections').length!=1); $('#view,#edit').prop('disabled', $('#materialRequisitionTable').bootstrapTable('getSelections').length!=1);
$('#delivery').prop('disabled', !($('#materialRequisitionTable').bootstrapTable('getSelections').length==1 && $('#materialRequisitionTable').bootstrapTable('getSelections')[0].status == '1')); $('#delivery').prop('disabled', !($('#materialRequisitionTable').bootstrapTable('getSelections').length==1 && $('#materialRequisitionTable').bootstrapTable('getSelections')[0].status == '1'));
}); });
$("#btnImport").click(function(){ $("#btnImport").click(function(){
jp.open({ jp.open({
type: 2, type: 2,
area: [500, 200], area: [500, 200],
auto: true, auto: true,
title:"导入数据", title:"导入数据",
content: "${ctx}/tag/importExcel" , content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'], btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){ btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/import/template'); jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/import/template');
}, },
btn2: function(index, layero){ btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method(); var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/materialrequisition/materialRequisition/import', function (data) { iframeWin.contentWindow.importExcel('${ctx}/warehouse/materialrequisition/materialRequisition/import', function (data) {
if(data.success){ if(data.success){
jp.success(data.msg); jp.success(data.msg);
refresh(); refresh();
}else{ }else{
jp.error(data.msg); jp.error(data.msg);
} }
jp.close(index); jp.close(index);
});//调用保存事件 });//调用保存事件
return false; return false;
}, },
btn3: function(index){ btn3: function(index){
jp.close(index); jp.close(index);
} }
}); });
}); });
$("#export").click(function(){//导出Excel文件 $("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON(); var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1; searchParam.pageNo = 1;
searchParam.pageSize = -1; searchParam.pageSize = -1;
var sortName = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortName; var sortName = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortName;
var sortOrder = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortOrder; var sortOrder = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortOrder;
var values = ""; var values = "";
...@@ -199,112 +211,115 @@ $(document).ready(function() { ...@@ -199,112 +211,115 @@ $(document).ready(function() {
values = values + "orderBy=" + sortName + " "+sortOrder; values = values + "orderBy=" + sortName + " "+sortOrder;
} }
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/export?'+values); jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/export?'+values);
}) })
$("#search").click("click", function() {// 绑定查询按扭 $("#search").click("click", function() {// 绑定查询按扭
$('#materialRequisitionTable').bootstrapTable('refresh'); $('#materialRequisitionTable').bootstrapTable('refresh');
}); });
$("#reset").click("click", function() {// 绑定查询按扭 $("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val(""); $("#searchForm input").val("");
$("#searchForm select").val(""); $("#searchForm select").val("");
$("#searchForm .select-item").html(""); $("#searchForm .select-item").html("");
$('#materialRequisitionTable').bootstrapTable('refresh'); $('#materialRequisitionTable').bootstrapTable('refresh');
});
});
function getIdSelections() {
return $.map($("#materialRequisitionTable").bootstrapTable('getSelections'), function (row) {
return row.id
}); });
});
function getIdSelections() {
return $.map($("#materialRequisitionTable").bootstrapTable('getSelections'), function (row) {
return row.id
});
}
function deleteAll(){
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#materialRequisitionTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/add",'1200','800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/edit?id=" + id, '1200','800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
} }
jp.openViewDialog("查看物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/view?id=" + id,'1200','800');
function deleteAll(){ }
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh'); function detailFormatter(index, row) {
jp.success(data.msg); var htmltpl = $("#materialRequisitionChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
}else{ var html = Mustache.render(htmltpl, {
jp.error(data.msg); idx:row.id
} });
}) $.get("${ctx}/warehouse/materialrequisition/materialRequisition/detail?id="+row.id, function(materialRequisition){
var materialRequisitionChild1RowIdx = 0, materialRequisitionChild1Tpl = $("#materialRequisitionChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
}) var data1 = materialRequisition.materialRequisitionInfoList;
} for (var i=0; i<data1.length; i++){
data1[i].dict = {};
//刷新列表 addRow('#materialRequisitionChild-'+row.id+'-1-List', materialRequisitionChild1RowIdx, materialRequisitionChild1Tpl, data1[i]);
function refresh(){ materialRequisitionChild1RowIdx = materialRequisitionChild1RowIdx + 1;
$('#materialRequisitionTable').bootstrapTable('refresh'); }
}
function add(){
jp.openSaveDialog("新增物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/add",'1200','800'); })
}
return html;
function edit(id){ }
if(id == undefined){
id = getIdSelections(); function addRow(list, idx, tpl, row){
} $(list).append(Mustache.render(tpl, {
jp.openSaveDialog("编辑物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/edit?id=" + id, '1200','800'); idx: idx, delBtn: true, row: row
} }));
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){ /**
id = getIdSelections(); * 出库
} */
jp.openViewDialog("查看物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/view?id=" + id,'1200','800'); function onDelivery (id) {
} if (!id) {
id = getIdSelections();
function detailFormatter(index, row) {
var htmltpl = $("#materialRequisitionChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/materialrequisition/materialRequisition/detail?id="+row.id, function(materialRequisition){
var materialRequisitionChild1RowIdx = 0, materialRequisitionChild1Tpl = $("#materialRequisitionChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = materialRequisition.materialRequisitionInfoList;
for (var i=0; i<data1.length; i++){
data1[i].dict = {};
addRow('#materialRequisitionChild-'+row.id+'-1-List', materialRequisitionChild1RowIdx, materialRequisitionChild1Tpl, data1[i]);
materialRequisitionChild1RowIdx = materialRequisitionChild1RowIdx + 1;
}
})
return html;
} }
jp.confirm('确认是否出库?', function (){
function addRow(list, idx, tpl, row){ jp.get('${ctx}/warehouse/materialrequisition/materialRequisition/delivery?id='+ id, function (res){
$(list).append(Mustache.render(tpl, { if (res.success) {
idx: idx, delBtn: true, row: row jp.success(res.msg);
})); refresh();
} } else {
jp.error(res.msg);
/** }
* 出库 })
*/ })
function onDelivery(){ }
jp.confirm('确认是否出库?', function (){
jp.get('${ctx}/warehouse/materialrequisition/materialRequisition/delivery?id='+getIdSelections(), function (res){
if(res.success){
jp.success(res.msg);
refresh();
}else{
jp.error(res.msg);
}
})
})
}
</script> </script>
<script type="text/template" id="materialRequisitionChildrenTpl">//<!-- <script type="text/template" id="materialRequisitionChildrenTpl">//<!--
<div class="tabs-container"> <div class="tabs-container">
...@@ -317,10 +332,16 @@ $(document).ready(function() { ...@@ -317,10 +332,16 @@ $(document).ready(function() {
<thead> <thead>
<tr> <tr>
<th>物资编码</th> <th>物资编码</th>
<th>物资名称</th> <th>品名</th>
<th>代码</th>
<th>数量</th>
<th>单位</th>
<th>型号</th> <th>型号</th>
<th>品名代码</th>
<th>单价</th> <th>单价</th>
<th>总价</th>
<th>批次号</th>
<th>货架</th>
<th>仓库</th>
<th>领用人</th> <th>领用人</th>
<th>备注</th> <th>备注</th>
</tr> </tr>
...@@ -330,29 +351,47 @@ $(document).ready(function() { ...@@ -330,29 +351,47 @@ $(document).ready(function() {
</table> </table>
</div> </div>
</div>//--> </div>//-->
</script> </script>
<script type="text/template" id="materialRequisitionChild1Tpl">//<!-- <script type="text/template" id="materialRequisitionChild1Tpl">//<!--
<tr> <tr>
<td> <td>
{{row.ledgerInfo.code}} {{row.ledgerInfo.code}}
</td> </td>
<td> <td>
{{row.ledgerInfo.name}} {{row.ledgerInfo.type.name}}
</td>
<td>
{{row.ledgerInfo.type.code}}
</td> </td>
<td> <td>
{{row.ledgerInfo.model}} {{row.ledgerInfo.num}}
</td> </td>
<td> <td>
{{row.ledgerInfo.type.name}} {{row.ledgerInfo.type.unit}}
</td>
<td>
{{row.ledgerInfo.model}}
</td> </td>
<td> <td>
{{row.ledgerInfo.amount}} {{row.ledgerInfo.amount}}
</td> </td>
<td> <td>
{{row.ledgerInfo.infoSum}}
</td>
<td>
{{row.ledgerInfo.batchNum}}
</td>
<td>
{{row.shelvesNames}}
</td>
<td>
{{row.warehouseNames}}
</td>
<td>
<img src="{{row.receiver}}" width="80"/> <img src="{{row.receiver}}" width="80"/>
</td> </td>
<td> <td>
{{row.remarks}} {{row.remarks}}
</td> </td>
</tr>//--> </tr>//-->
</script> </script>
...@@ -299,11 +299,18 @@ $(document).ready(function() { ...@@ -299,11 +299,18 @@ $(document).ready(function() {
<table class="ani table"> <table class="ani table">
<thead> <thead>
<tr> <tr>
<th>品名</th>
<th>代码</th>
<th>物资编码</th> <th>物资编码</th>
<th>物资名称</th> <th>数量</th>
<th>品名代码</th> <th>单位</th>
<th>型号</th> <th>型号</th>
<th>单价</th> <th>单价</th>
<th>总价</th>
<th>批次号</th>
<th>货架</th>
<th>仓库</th>
<th>备注</th>
</tr> </tr>
</thead> </thead>
<tbody id="outboundChild-{{idx}}-1-List"> <tbody id="outboundChild-{{idx}}-1-List">
...@@ -315,21 +322,42 @@ $(document).ready(function() { ...@@ -315,21 +322,42 @@ $(document).ready(function() {
<script type="text/template" id="outboundChild1Tpl">//<!-- <script type="text/template" id="outboundChild1Tpl">//<!--
<tr> <tr>
<td> <td>
{{row.ledgerInfo.name}}
</td>
<td>
{{row.ledgerInfo.code}} {{row.ledgerInfo.code}}
</td> </td>
<td> <td>
{{row.ledgerInfo.type.name}} {{row.ledgerInfo.type.name}}
</td> </td>
<td> <td>
{{row.ledgerInfo.type.code}}
</td>
<td>
{{row.ledgerInfo.num}}
</td>
<td>
{{row.ledgerInfo.type.unit}}
</td>
<td>
{{row.ledgerInfo.model}} {{row.ledgerInfo.model}}
</td> </td>
<td> <td>
{{row.ledgerInfo.amount}} {{row.ledgerInfo.amount}}
</td> </td>
<td> <td>
{{row.ledgerInfo.infoSum}}
</td>
<td>
{{row.ledgerInfo.batchNum}}
</td>
<td>
{{row.shelvesNames}}
</td>
<td>
{{row.warehouseNames}}
</td>
<td>
<img src="{{row.receiver}}" width="80"/>
</td>
<td>
{{row.remarks}} {{row.remarks}}
</td> </td>
</tr>//--> </tr>//-->
......
<%@ page contentType="text/html;charset=UTF-8" %> <%@ page contentType="text/html;charset=UTF-8" %>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#storageTable').bootstrapTable({ $('#storageTable').bootstrapTable({
//请求方法 //请求方法
method: 'post', method: 'post',
//类型json //类型json
dataType: "json", dataType: "json",
contentType: "application/x-www-form-urlencoded", contentType: "application/x-www-form-urlencoded",
//显示检索按钮 //显示检索按钮
showSearch: true, showSearch: true,
//显示刷新按钮 //显示刷新按钮
showRefresh: true, showRefresh: true,
//显示切换手机试图按钮 //显示切换手机试图按钮
showToggle: true, showToggle: true,
//显示 内容列下拉框 //显示 内容列下拉框
showColumns: true, showColumns: true,
//显示到处按钮 //显示到处按钮
showExport: true, showExport: true,
//显示切换分页按钮 //显示切换分页按钮
showPaginationSwitch: true, showPaginationSwitch: true,
//显示详情按钮 //显示详情按钮
detailView: true, detailView: true,
//显示详细内容函数 //显示详细内容函数
detailFormatter: "detailFormatter", detailFormatter: "detailFormatter",
//最低显示2行 //最低显示2行
minimumCountColumns: 2, minimumCountColumns: 2,
//是否显示行间隔色 //是否显示行间隔色
striped: true, striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false, cache: false,
//是否显示分页(*) //是否显示分页(*)
pagination: true, pagination: true,
//排序方式 //排序方式
sortOrder: "asc", sortOrder: "asc",
//初始化加载第一页,默认第一页 //初始化加载第一页,默认第一页
pageNumber:1, pageNumber:1,
//每页的记录行数(*) //每页的记录行数(*)
pageSize: 10, pageSize: 10,
//可供选择的每页的行数(*) //可供选择的每页的行数(*)
pageList: [10, 25, 50, 100], pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据 //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/storage/storage/data", url: "${ctx}/warehouse/storage/storage/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'', //queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义 ////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) { queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON(); var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1; searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit; searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order; searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam; return searchParam;
}, },
//分页方式:client客户端分页,server服务端分页(*) //分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server", sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单 contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。 contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu', contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){ onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){ if($el.data("item") == "edit"){
edit(row.id); edit(row.id);
}else if($el.data("item") == "view"){ }else if($el.data("item") == "view"){
view(row.id); view(row.id);
} else if($el.data("item") == "delete"){ } else if($el.data("item") == "delete"){
jp.confirm('确认要删除该入库信息记录吗?', function(){ jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading(); jp.loading();
jp.get("${ctx}/warehouse/storage/storage/delete?id="+row.id, function(data){ jp.get("${ctx}/warehouse/storage/storage/delete?id="+row.id, function(data){
if(data.success){ if(data.success){
$('#storageTable').bootstrapTable('refresh'); $('#storageTable').bootstrapTable('refresh');
jp.success(data.msg); jp.success(data.msg);
}else{ }else{
jp.error(data.msg); jp.error(data.msg);
} }
}) })
}); });
} }
}, },
onClickRow: function(row, $el){ onClickRow: function(row, $el){
}, },
onShowSearch: function () { onShowSearch: function () {
$("#search-collapse").slideToggle(); $("#search-collapse").slideToggle();
}, },
columns: [{ columns: [{
checkbox: true checkbox: true
} }
,{ ,{
field: 'code', field: 'code',
title: '入库单', title: '入库单',
sortable: true, sortable: true,
sortName: 'code' sortName: 'code'
,formatter:function(value, row , index){ ,formatter:function(value, row , index){
value = jp.unescapeHTML(value); value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>"; return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
} }
} }
,{ ,{
field: 'operator.name', field: 'operator.name',
title: '操作人', title: '操作人',
sortable: true, sortable: true,
sortName: 'operator.name' sortName: 'operator.name'
} }
,{ ,{
field: 'time', field: 'time',
title: '时间', title: '时间',
sortable: true, sortable: true,
sortName: 'time' sortName: 'time'
} }
,{ ,{
field: 'batchNum', field: 'batchNum',
title: '批次号', title: '批次号',
sortable: true, sortable: true,
sortName: 'batchNum' sortName: 'batchNum'
} }
,{ // ,{
field: 'remarks', // field: 'remarks',
title: '备注信息', // title: '备注信息',
sortable: true, // sortable: true,
sortName: 'remarks' // sortName: 'remarks'
//
} // }
] ]
}); });
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端 if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#storageTable').bootstrapTable("toggleView"); $('#storageTable').bootstrapTable("toggleView");
} }
$('#storageTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' + $('#storageTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () { 'check-all.bs.table uncheck-all.bs.table', function () {
$('#remove').prop('disabled', ! $('#storageTable').bootstrapTable('getSelections').length); $('#remove').prop('disabled', ! $('#storageTable').bootstrapTable('getSelections').length);
$('#view,#edit').prop('disabled', $('#storageTable').bootstrapTable('getSelections').length!=1); $('#view,#edit').prop('disabled', $('#storageTable').bootstrapTable('getSelections').length!=1);
}); });
$("#btnImport").click(function(){ $("#btnImport").click(function(){
jp.open({ jp.open({
type: 2, type: 2,
area: [500, 200], area: [500, 200],
auto: true, auto: true,
title:"导入数据", title:"导入数据",
content: "${ctx}/tag/importExcel" , content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'], btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){ btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/storage/storage/import/template'); jp.downloadFile('${ctx}/warehouse/storage/storage/import/template');
}, },
btn2: function(index, layero){ btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method(); var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/storage/storage/import', function (data) { iframeWin.contentWindow.importExcel('${ctx}/warehouse/storage/storage/import', function (data) {
if(data.success){ if(data.success){
jp.success(data.msg); jp.success(data.msg);
refresh(); refresh();
}else{ }else{
jp.error(data.msg); jp.error(data.msg);
} }
jp.close(index); jp.close(index);
});//调用保存事件 });//调用保存事件
return false; return false;
}, },
btn3: function(index){ btn3: function(index){
jp.close(index); jp.close(index);
} }
}); });
}); });
$("#export").click(function(){//导出Excel文件 $("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON(); var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1; searchParam.pageNo = 1;
searchParam.pageSize = -1; searchParam.pageSize = -1;
var sortName = $('#storageTable').bootstrapTable("getOptions", "none").sortName; var sortName = $('#storageTable').bootstrapTable("getOptions", "none").sortName;
var sortOrder = $('#storageTable').bootstrapTable("getOptions", "none").sortOrder; var sortOrder = $('#storageTable').bootstrapTable("getOptions", "none").sortOrder;
var values = ""; var values = "";
...@@ -188,173 +188,174 @@ $(document).ready(function() { ...@@ -188,173 +188,174 @@ $(document).ready(function() {
values = values + "orderBy=" + sortName + " "+sortOrder; values = values + "orderBy=" + sortName + " "+sortOrder;
} }
jp.downloadFile('${ctx}/warehouse/storage/storage/export?'+values); jp.downloadFile('${ctx}/warehouse/storage/storage/export?'+values);
}) })
$("#search").click("click", function() {// 绑定查询按扭 $("#search").click("click", function() {// 绑定查询按扭
$('#storageTable').bootstrapTable('refresh'); $('#storageTable').bootstrapTable('refresh');
}); });
$("#reset").click("click", function() {// 绑定查询按扭 $("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val(""); $("#searchForm input").val("");
$("#searchForm select").val(""); $("#searchForm select").val("");
$("#searchForm .select-item").html(""); $("#searchForm .select-item").html("");
$('#storageTable').bootstrapTable('refresh'); $('#storageTable').bootstrapTable('refresh');
}); });
$('#beginTime').datetimepicker({ $('#beginTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss" format: "YYYY-MM-DD HH:mm:ss"
});
$('#endTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
});
function getIdSelections() {
return $.map($("#storageTable").bootstrapTable('getSelections'), function (row) {
return row.id
}); });
$('#endTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
});
function getIdSelections() {
return $.map($("#storageTable").bootstrapTable('getSelections'), function (row) {
return row.id
});
}
function deleteAll(){
jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/storage/storage/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#storageTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增入库单","${ctx}/warehouse/storage/storage/form/add", '1400', '800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
} }
jp.openSaveDialog("编辑入库单","${ctx}/warehouse/storage/storage/form/edit?id=" + id, '1400', '800');
function deleteAll(){ }
jp.confirm('确认要删除该入库信息记录吗?', function(){ function view(id){//没有权限时,不显示确定按钮
jp.loading(); if(id == undefined){
jp.get("${ctx}/warehouse/storage/storage/deleteAll?ids=" + getIdSelections(), function(data){ id = getIdSelections();
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#storageTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增入库单","${ctx}/warehouse/storage/storage/form/add", '1400', '800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑入库单","${ctx}/warehouse/storage/storage/form/edit?id=" + id, '1400', '800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
jp.openViewDialog("查看入库单","${ctx}/warehouse/storage/storage/form/view?id=" + id, '1400', '800');
}
function detailFormatter(index, row) {
var htmltpl = $("#storageChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/storage/storage/detail?id="+row.id, function(storage){
var storageChild1RowIdx = 0, storageChild1Tpl = $("#storageChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = storage.storageInfoList;
for (var i=0; i<data1.length; i++){
var item = data1[i];
data1[i].dict = {};
data1[i].storageId = row.id;
data1[i].batchNum = row.batchNum;
data1[i].jsonStr = JSON.stringify(data1[i]);
data1[i].isNotStorage = data1[i].qrCode.state !== '2';
data1[i].isStorage = data1[i].qrCode.state === '2';
data1[i].mainRowIndex = index;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
item.shelvesNames = item.shelvesList.map(function (e) {
return e.name
}).join(',');
item.warehouseNames = item.warehouseList.map(function (e) {
return e.name
}).join(',');
addRow('#storageChild-'+row.id+'-1-List', storageChild1RowIdx, storageChild1Tpl, data1[i]);
storageChild1RowIdx = storageChild1RowIdx + 1;
}
})
return html;
} }
jp.openViewDialog("查看入库单","${ctx}/warehouse/storage/storage/form/view?id=" + id, '1400', '800');
function addRow(list, idx, tpl, row){ }
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
}
function onStorage(countStorage, goodsInfoId, rowIndex){ function detailFormatter(index, row) {
debugger var htmltpl = $("#storageChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var main = JSON.parse(countStorage); var html = Mustache.render(htmltpl, {
var data = [main]; idx:row.id
// var shelvesIds = data.map(function (item){ });
// return item.shelves.id $.get("${ctx}/warehouse/storage/storage/detail?id="+row.id, function(storage){
// }).join(','); var storageChild1RowIdx = 0, storageChild1Tpl = $("#storageChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
// 构建台账主表 var data1 = storage.storageInfoList;
var name$ = $("<input type='hidden' name='name' value='"+main.name+"' />"); for (var i=0; i<data1.length; i++){
var typeId$ = $("<input type='hidden' name='type.id' value='"+main.type.id+"' />"); var item = data1[i];
var typeName$ = $("<input type='hidden' name='type.name' value='"+main.type.name+"' />"); data1[i].dict = {};
var model$ = $("<input type='hidden' name='model' value='"+main.model+"' />"); data1[i].storageId = row.id;
// var shelvesIds$ = $("<input type='hidden' name='shelvesIds' value='"+shelvesIds+"' />"); data1[i].batchNum = row.batchNum;
var num$ = $("<input type='hidden' name='num' value="+main.num+" />"); data1[i].jsonStr = JSON.stringify(data1[i]);
var sum$ = $("<input type='hidden' name='sum' value="+new Big(main.num).times(main.amount).toNumber()+" />"); data1[i].isNotStorage = data1[i].qrCode.state !== '2';
$("#ledgerForm").empty(); data1[i].isStorage = data1[i].qrCode.state === '2';
$("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(num$).append(sum$); data1[i].mainRowIndex = index;
data.forEach(function (item,index){ item.infoSum = new Big(item.num).times(item.amount).toNumber();
// 构建台账附表 item.shelvesNames = item.shelvesList.map(function (e) {
var id$ = $("<input type='hidden' name='ledgerInfoList["+index+"].id' value='' />"); return e.name
var delFlag$ = $("<input type='hidden' name='ledgerInfoList["+index+"].delFlag' value='0' />"); }).join(',');
var name$ = $("<input type='hidden' name='ledgerInfoList["+index+"].name' value='"+item.name+"' />"); item.warehouseNames = item.warehouseList.map(function (e) {
var typeId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].type.id' value='"+item.type.id+"' />"); return e.name
var batchNum$ = $("<input type='hidden' name='ledgerInfoList["+index+"].batchNum' value='"+main.batchNum+"' />"); }).join(',');
var model$ = $("<input type='hidden' name='ledgerInfoList["+index+"].model' value='"+item.model+"' />"); addRow('#storageChild-'+row.id+'-1-List', storageChild1RowIdx, storageChild1Tpl, data1[i]);
var goodsInfoId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].goodsInfo.id' value='"+item.goodsInfo.id+"' />"); storageChild1RowIdx = storageChild1RowIdx + 1;
var qrId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].qr.id' value='"+item.qrCode.id+"' />"); }
// var shelvesId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelves.id' value='"+item.shelves.id+"' />");
var code$ = $("<input type='hidden' name='ledgerInfoList["+index+"].code' value='"+item.qrCode.code+"' />");
var amount$ = $("<input type='hidden' name='ledgerInfoList["+index+"].amount' value='"+item.amount+"' />"); })
var num$ = $("<input type='hidden' name='ledgerInfoList["+index+"].num' value='"+item.num+"' />");
var shelvesIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelvesIds' value='"+item.shelvesIds+"' />"); return html;
var warehouseIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].warehouseIds' value='"+item.warehouseIds+"' />"); }
$("#ledgerForm").append(id$).append(delFlag$).append(name$).append(typeId$).append(batchNum$).append(model$).append(num$)
.append(goodsInfoId$).append(qrId$).append(code$).append(amount$).append(shelvesIds$).append(warehouseIds$); function addRow(list, idx, tpl, row){
}) $(list).append(Mustache.render(tpl, {
jp.loading('入库中...'); idx: idx, delBtn: true, row: row
jp.post("${ctx}/warehouse/ledger/ledger/save", $("#ledgerForm").serialize(), function (res){ }));
if(res.success){ }
jp.success('入库成功!');
$('#storageTable').bootstrapTable('collapseRow', rowIndex); function onStorage(countStorage, goodsInfoId, rowIndex){
setTimeout(function (){ debugger
$('#storageTable').bootstrapTable('expandRow', rowIndex); var main = JSON.parse(countStorage);
},0) var data = [main];
}else { // var shelvesIds = data.map(function (item){
jp.error('入库失败!'); // return item.shelves.id
} // }).join(',');
}) // 构建台账主表
// jp.get("${ctx}/warehouse/storage/storage/findInfoBycountStorage?goodsInfo.id="+goodsInfoId+"&storage.id="+main.storageId, function (res){ var name$ = $("<input type='hidden' name='name' value='"+main.name+"' />");
// var data = res.body.storageInfoList; var typeId$ = $("<input type='hidden' name='type.id' value='"+main.type.id+"' />");
// if(Array.isArray(data)){ var typeName$ = $("<input type='hidden' name='type.name' value='"+main.type.name+"' />");
// var model$ = $("<input type='hidden' name='model' value='"+main.model+"' />");
// } // var shelvesIds$ = $("<input type='hidden' name='shelvesIds' value='"+shelvesIds+"' />");
// }) var num$ = $("<input type='hidden' name='num' value="+main.num+" />");
} var sum$ = $("<input type='hidden' name='sum' value="+new Big(main.num).times(main.amount).toNumber()+" />");
$("#ledgerForm").empty();
$("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(num$).append(sum$);
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 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 batchNum$ = $("<input type='hidden' name='ledgerInfoList["+index+"].batchNum' value='"+main.batchNum+"' />");
var model$ = $("<input type='hidden' name='ledgerInfoList["+index+"].model' value='"+item.model+"' />");
var goodsInfoId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].goodsInfo.id' value='"+item.goodsInfo.id+"' />");
var qrId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].qr.id' value='"+item.qrCode.id+"' />");
// var shelvesId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelves.id' value='"+item.shelves.id+"' />");
var code$ = $("<input type='hidden' name='ledgerInfoList["+index+"].code' value='"+item.qrCode.code+"' />");
var amount$ = $("<input type='hidden' name='ledgerInfoList["+index+"].amount' value='"+item.amount+"' />");
var num$ = $("<input type='hidden' name='ledgerInfoList["+index+"].num' value='"+item.num+"' />");
var shelvesIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelvesIds' value='"+item.shelvesIds+"' />");
var warehouseIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].warehouseIds' value='"+item.warehouseIds+"' />");
var remarks$ = $("<input type='hidden' name='ledgerInfoList["+index+"].remarks' value='"+item.remarks+"' />");
$("#ledgerForm").append(id$).append(delFlag$).append(name$).append(typeId$).append(batchNum$).append(model$).append(num$)
.append(goodsInfoId$).append(qrId$).append(code$).append(amount$).append(shelvesIds$).append(warehouseIds$).append(remarks$);
})
jp.loading('入库中...');
jp.post("${ctx}/warehouse/ledger/ledger/save", $("#ledgerForm").serialize(), function (res){
if(res.success){
jp.success('入库成功!');
$('#storageTable').bootstrapTable('collapseRow', rowIndex);
setTimeout(function (){
$('#storageTable').bootstrapTable('expandRow', rowIndex);
},0)
}else {
jp.error('入库失败!');
}
})
// jp.get("${ctx}/warehouse/storage/storage/findInfoBycountStorage?goodsInfo.id="+goodsInfoId+"&storage.id="+main.storageId, function (res){
// var data = res.body.storageInfoList;
// if(Array.isArray(data)){
//
// }
// })
}
</script> </script>
<script type="text/template" id="storageChildrenTpl">//<!-- <script type="text/template" id="storageChildrenTpl">//<!--
<div class="tabs-container"> <div class="tabs-container">
...@@ -375,6 +376,7 @@ $(document).ready(function() { ...@@ -375,6 +376,7 @@ $(document).ready(function() {
<th>总价</th> <th>总价</th>
<th>仓库</th> <th>仓库</th>
<th>货架</th> <th>货架</th>
<th>备注</th>
<th>操作</th> <th>操作</th>
</tr> </tr>
</thead> </thead>
...@@ -383,8 +385,8 @@ $(document).ready(function() { ...@@ -383,8 +385,8 @@ $(document).ready(function() {
</table> </table>
</div> </div>
</div>//--> </div>//-->
</script> </script>
<script type="text/template" id="storageChild1Tpl">//<!-- <script type="text/template" id="storageChild1Tpl">//<!--
<tr> <tr>
<td> <td>
{{row.type.name}} {{row.type.name}}
...@@ -413,7 +415,9 @@ $(document).ready(function() { ...@@ -413,7 +415,9 @@ $(document).ready(function() {
<td> <td>
{{row.shelvesNames}} {{row.shelvesNames}}
</td> </td>
<td>
{{row.remarks}}
</td>
{{#row.isNotStorage}} {{#row.isNotStorage}}
<td> <td>
<a href="javascript:void(0);" onclick="onStorage('{{row.jsonStr}}','{{row.goodsInfo.id}}',{{row.mainRowIndex}})">入库</a> <a href="javascript:void(0);" onclick="onStorage('{{row.jsonStr}}','{{row.goodsInfo.id}}',{{row.mainRowIndex}})">入库</a>
...@@ -425,4 +429,4 @@ $(document).ready(function() { ...@@ -425,4 +429,4 @@ $(document).ready(function() {
</td> </td>
{{/row.isStorage}} {{/row.isStorage}}
</tr>//--> </tr>//-->
</script> </script>
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