Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
warehouse
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
胡懿
warehouse
Commits
df05c88c
Commit
df05c88c
authored
Jul 19, 2023
by
anxiaohe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
出库功能
parent
b75fb4fa
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
874 additions
and
691 deletions
+874
-691
ledgerDetail.jsp
.../webapp/webpage/modules/warehouse/ledger/ledgerDetail.jsp
+75
-25
ledgerForm.jsp
...in/webapp/webpage/modules/warehouse/ledger/ledgerForm.jsp
+9
-5
ledgerList.js
...ain/webapp/webpage/modules/warehouse/ledger/ledgerList.js
+9
-3
materialRequisitionDetail.jsp
...rehouse/materialrequisition/materialRequisitionDetail.jsp
+66
-14
materialRequisitionForm.jsp
...warehouse/materialrequisition/materialRequisitionForm.jsp
+2
-2
materialRequisitionList.js
.../warehouse/materialrequisition/materialRequisitionList.js
+334
-295
outboundList.js
...webapp/webpage/modules/warehouse/outbound/outboundList.js
+33
-5
storageList.js
...n/webapp/webpage/modules/warehouse/storage/storageList.js
+346
-342
No files found.
src/main/webapp/webpage/modules/warehouse/ledger/ledgerDetail.jsp
View file @
df05c88c
...
...
@@ -27,38 +27,49 @@
},
{
field: 'type.name',
title: '品名代码',
align: 'center'
title: '品名',
sortable: true,
sortName: 'type.name',
},
{
field: 'model',
title: '型号',
align: 'center'
field: 'type.code',
title: '代码',
sortable: true,
sortName: 'type.code'
},
{
field: 'code',
title: '入库单'
},
{
field: 'batchNum',
title: '批次号',
align: 'center'
},
{
field: 'shelvesNames',
title: '货架',
align: 'center'
field: 'amount',
title: '单价'
},
{
field: 'warehouseNames',
title: '仓库',
align: 'center'
field: "type.unit",
title: '单位'
},
{
field: 'model',
title: '型号',
sortable: true,
sortName: 'model'
},
{
field: 'num',
title: '数量',
align: 'center'
title: '数量'
},
{
field: 'sum',
title: '总价',
align: 'center'
sortName: 'sum',
formatter (v, row) {
return new Big(row.num).times(row.amount).toNumber()
}
},
{
title: '操作',
...
...
@@ -72,7 +83,7 @@
title: '查看明细',
type: 1,
auto: true,
area: ['
8
00', '600'],
area: ['
10
00', '600'],
content: $("#detailTpl").html(),
success: function (){
$("#table").bootstrapTable({
...
...
@@ -99,12 +110,49 @@
columns: [
{checkbox:true},
{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: 'batchNum', 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',
title: '二维码',
...
...
@@ -135,11 +183,14 @@
}
}
}
]
].map(function (e) {
e.align = 'center';
return e;
})
});
jp.get("${ctx}/warehouse/ledger/ledger/
countLedger
?id=${ledger.id}", function (ledger) {
var data = ledger.
countL
edgerInfoList || [];
jp.get("${ctx}/warehouse/ledger/ledger/
detail
?id=${ledger.id}", function (ledger) {
var data = ledger.
l
edgerInfoList || [];
$(selector).bootstrapTable('append', data);
})
}
...
...
@@ -234,4 +285,4 @@
<button id="batchPrintBtn" class="btn btn-primary" onclick="onPrint()" disabled>批量打印</button>
<table id="table"></table>
</div>
</script>
\ No newline at end of file
</script>
src/main/webapp/webpage/modules/warehouse/ledger/ledgerForm.jsp
View file @
df05c88c
...
...
@@ -22,17 +22,21 @@
<h3
class=
"text-center"
>
台账表
</h3>
<table
class=
"table table-bordered main-table"
>
<tr>
<td>
物资名称
</td>
<td>
<form:input
path=
"name"
htmlEscape=
"false"
class=
"form-control "
/>
</td>
<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"
/>
</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>
<form:input
path=
"model"
htmlEscape=
"false"
class=
"form-control "
/>
...
...
src/main/webapp/webpage/modules/warehouse/ledger/ledgerList.js
View file @
df05c88c
...
...
@@ -240,21 +240,21 @@ function refresh(){
$
(
'#ledgerTable'
).
bootstrapTable
(
'refresh'
);
}
function
add
(){
jp
.
openSaveDialog
(
"新增台账"
,
"${ctx}/warehouse/ledger/ledger/form/add"
,
'1
2
00'
,
'800'
);
jp
.
openSaveDialog
(
"新增台账"
,
"${ctx}/warehouse/ledger/ledger/form/add"
,
'1
4
00'
,
'800'
);
}
function
edit
(
id
){
if
(
id
==
undefined
){
id
=
getIdSelections
();
}
jp
.
openSaveDialog
(
"编辑台账"
,
"${ctx}/warehouse/ledger/ledger/form/edit?id="
+
id
,
'1
2
00'
,
'800'
);
jp
.
openSaveDialog
(
"编辑台账"
,
"${ctx}/warehouse/ledger/ledger/form/edit?id="
+
id
,
'1
4
00'
,
'800'
);
}
function
view
(
id
){
//没有权限时,不显示确定按钮
if
(
id
==
undefined
){
id
=
getIdSelections
();
}
jp
.
openViewDialog
(
"查看台账"
,
"${ctx}/warehouse/ledger/ledger/form/view?id="
+
id
,
'1
2
00'
,
'800'
);
jp
.
openViewDialog
(
"查看台账"
,
"${ctx}/warehouse/ledger/ledger/form/view?id="
+
id
,
'1
4
00'
,
'800'
);
}
...
...
@@ -534,6 +534,7 @@ function scanIptGetFocusStop () {
<
tr
>
<
th
>
品名
<
/th
>
<
th
>
代码
<
/th
>
<
th
>
物资编码
<
/th
>
<
th
>
数量
<
/th
>
<
th
>
单位
<
/th
>
<
th
>
型号
<
/th
>
...
...
@@ -542,6 +543,7 @@ function scanIptGetFocusStop () {
<
th
>
批次号
<
/th
>
<
th
>
货架
<
/th
>
<
th
>
仓库
<
/th
>
<
th
>
备注
<
/th
>
<
/tr
>
<
/thead
>
<
tbody
id
=
"ledgerChild-{{idx}}-1-List"
>
...
...
@@ -558,6 +560,7 @@ function scanIptGetFocusStop () {
<
td
>
{{
row
.
type
.
code
}}
<
/td
>
<
td
>
{{
row
.
code
}}
<
/td
>
<
td
>
{{
row
.
num
}}
<
/td
>
...
...
@@ -583,6 +586,9 @@ function scanIptGetFocusStop () {
<
td
>
{{
row
.
warehouseNames
}}
<
/td
>
<
td
>
{{
row
.
remarks
}}
<
/td
>
<
/tr>/
/-->
<
/script
>
src/main/webapp/webpage/modules/warehouse/materialrequisition/materialRequisitionDetail.jsp
View file @
df05c88c
...
...
@@ -26,6 +26,7 @@
if(data.length){
data = data.map(function(item){
item.delFlag = 0;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return item;
})
}
...
...
@@ -48,30 +49,50 @@
}
},
{
field: 'ledgerInfo.
nam
e',
title: '物资
名称
',
field: 'ledgerInfo.
cod
e',
title: '物资
编码
',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfo
Nam
eTpl").html(), {
return Mustache.render($("#ledgerInfo
Cod
eTpl").html(), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.
cod
e',
title: '
物资编码
',
field: 'ledgerInfo.
type.nam
e',
title: '
品名
',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfo
CodeTpl").html(
), {
return Mustache.render($("#ledgerInfo
TypeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""
), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.type.
nam
e',
title: '
品名
代码',
field: 'ledgerInfo.type.
cod
e',
title: '代码',
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,
idx: index
})
...
...
@@ -88,10 +109,21 @@
}
},
{
field: '
ledgerInfo.amount
',
title: '
单价
',
field: '
num
',
title: '
数量
',
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,
idx: index
})
...
...
@@ -170,6 +202,7 @@
})
var data = newItems.map(function (item) {
item[0] = false;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return {
id: '',
delFlag: 0,
...
...
@@ -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}}"
title="品名代码" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " disabled="disabled" allowClear="true"/>//-->
</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">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoModel"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.model" type="text" class="form-control" readonly
...
...
@@ -387,6 +430,16 @@
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.amount" type="text" readonly class="form-control"
value="{{row.ledgerInfo.amount}}"/>
</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">
<input type="hidden" name="materialRequisitionInfoList[{{idx}}].receiver" value="{{row.receiver}}">
{{#row.receiver}}
...
...
@@ -418,4 +471,4 @@
</div>
</div>
<br>
</script>
\ No newline at end of file
</script>
src/main/webapp/webpage/modules/warehouse/materialrequisition/materialRequisitionForm.jsp
View file @
df05c88c
...
...
@@ -8,6 +8,7 @@
<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-zh-CN.js"
></script>
<script
type=
"text/javascript"
src=
"${ctxStatic}/common/js/big.js"
></script>
<style>
.sign-result
{
width
:
80px
;
...
...
@@ -146,4 +147,4 @@
}
</script>
</body>
</html>
\ No newline at end of file
</html>
src/main/webapp/webpage/modules/warehouse/materialrequisition/materialRequisitionList.js
View file @
df05c88c
<%
@
page
contentType
=
"text/html;charset=UTF-8"
%>
<
script
>
$
(
document
).
ready
(
function
()
{
$
(
'#materialRequisitionTable'
).
bootstrapTable
({
//请求方法
method
:
'post'
,
//类型json
dataType
:
"json"
,
contentType
:
"application/x-www-form-urlencoded"
,
//显示检索按钮
showSearch
:
true
,
//显示刷新按钮
showRefresh
:
true
,
//显示切换手机试图按钮
showToggle
:
true
,
//显示 内容列下拉框
showColumns
:
true
,
//显示到处按钮
showExport
:
true
,
//显示切换分页按钮
showPaginationSwitch
:
true
,
//显示详情按钮
detailView
:
true
,
//显示详细内容函数
detailFormatter
:
"detailFormatter"
,
//最低显示2行
minimumCountColumns
:
2
,
//是否显示行间隔色
striped
:
true
,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache
:
false
,
//是否显示分页(*)
pagination
:
true
,
//排序方式
sortOrder
:
"asc"
,
//初始化加载第一页,默认第一页
pageNumber
:
1
,
//每页的记录行数(*)
pageSize
:
10
,
//可供选择的每页的行数(*)
pageList
:
[
10
,
25
,
50
,
100
],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url
:
"${ctx}/warehouse/materialrequisition/materialRequisition/data"
,
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams
:
function
(
params
)
{
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
params
.
limit
===
undefined
?
"1"
:
params
.
offset
/
params
.
limit
+
1
;
searchParam
.
pageSize
=
params
.
limit
===
undefined
?
-
1
:
params
.
limit
;
searchParam
.
orderBy
=
params
.
sort
===
undefined
?
""
:
params
.
sort
+
" "
+
params
.
order
;
return
searchParam
;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination
:
"server"
,
contextMenuTrigger
:
"right"
,
//pc端 按右键弹出菜单
contextMenuTriggerMobile
:
"press"
,
//手机端 弹出菜单,click:单击, press:长按。
contextMenu
:
'#context-menu'
,
onContextMenuItem
:
function
(
row
,
$el
){
if
(
$el
.
data
(
"item"
)
==
"edit"
){
edit
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"view"
){
view
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"delete"
){
jp
.
confirm
(
'确认要删除该物资领用记录吗?'
,
function
(){
jp
.
loading
();
jp
.
get
(
"${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="
+
row
.
id
,
function
(
data
){
if
(
data
.
success
){
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
jp
.
success
(
data
.
msg
);
}
else
{
jp
.
error
(
data
.
msg
);
}
})
});
}
},
onClickRow
:
function
(
row
,
$el
){
},
onShowSearch
:
function
()
{
$
(
"#search-collapse"
).
slideToggle
();
},
columns
:
[{
checkbox
:
true
}
,{
field
:
'number'
,
title
:
'领用单号'
,
sortable
:
true
,
sortName
:
'number'
,
formatter
:
function
(
value
,
row
,
index
){
value
=
jp
.
unescapeHTML
(
value
);
return
"<a href='javascript:view(
\"
"
+
row
.
id
+
"
\"
)'>"
+
value
+
"</a>"
;
}
}
,{
field
:
'operator.name'
,
title
:
'操作人'
,
sortable
:
true
,
sortName
:
'operator.name'
}
,{
field
:
'office.name'
,
title
:
'领用机构'
,
sortable
:
true
,
sortName
:
'o.name'
}
,{
field
:
'time'
,
title
:
'领用时间'
,
sortable
:
true
,
sortName
:
'time'
}
,{
field
:
'status'
,
title
:
'出库状态'
,
sortable
:
true
,
sortName
:
'status'
,
formatter
:
function
(
value
,
row
,
index
){
return
jp
.
getDictLabel
(
$
{
fns
:
toJson
(
fns
:
getDictList
(
'wh_delivery_status'
))},
value
,
"-"
);
}
}
,{
field
:
'remarks'
,
title
:
'备注信息'
,
sortable
:
true
,
sortName
:
'remarks'
}
]
});
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
()
{
<
script
>
$
(
document
).
ready
(
function
()
{
$
(
'#materialRequisitionTable'
).
bootstrapTable
({
//请求方法
method
:
'post'
,
//类型json
dataType
:
"json"
,
contentType
:
"application/x-www-form-urlencoded"
,
//显示检索按钮
showSearch
:
true
,
//显示刷新按钮
showRefresh
:
true
,
//显示切换手机试图按钮
showToggle
:
true
,
//显示 内容列下拉框
showColumns
:
true
,
//显示到处按钮
showExport
:
true
,
//显示切换分页按钮
showPaginationSwitch
:
true
,
//显示详情按钮
detailView
:
true
,
//显示详细内容函数
detailFormatter
:
"detailFormatter"
,
//最低显示2行
minimumCountColumns
:
2
,
//是否显示行间隔色
striped
:
true
,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache
:
false
,
//是否显示分页(*)
pagination
:
true
,
//排序方式
sortOrder
:
"asc"
,
//初始化加载第一页,默认第一页
pageNumber
:
1
,
//每页的记录行数(*)
pageSize
:
10
,
//可供选择的每页的行数(*)
pageList
:
[
10
,
25
,
50
,
100
],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url
:
"${ctx}/warehouse/materialrequisition/materialRequisition/data"
,
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams
:
function
(
params
)
{
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
params
.
limit
===
undefined
?
"1"
:
params
.
offset
/
params
.
limit
+
1
;
searchParam
.
pageSize
=
params
.
limit
===
undefined
?
-
1
:
params
.
limit
;
searchParam
.
orderBy
=
params
.
sort
===
undefined
?
""
:
params
.
sort
+
" "
+
params
.
order
;
return
searchParam
;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination
:
"server"
,
contextMenuTrigger
:
"right"
,
//pc端 按右键弹出菜单
contextMenuTriggerMobile
:
"press"
,
//手机端 弹出菜单,click:单击, press:长按。
contextMenu
:
'#context-menu'
,
onContextMenuItem
:
function
(
row
,
$el
){
if
(
$el
.
data
(
"item"
)
==
"edit"
){
edit
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"view"
){
view
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"delete"
){
jp
.
confirm
(
'确认要删除该物资领用记录吗?'
,
function
(){
jp
.
loading
();
jp
.
get
(
"${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="
+
row
.
id
,
function
(
data
){
if
(
data
.
success
){
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
jp
.
success
(
data
.
msg
);
}
else
{
jp
.
error
(
data
.
msg
);
}
})
});
}
},
onClickRow
:
function
(
row
,
$el
){
},
onShowSearch
:
function
()
{
$
(
"#search-collapse"
).
slideToggle
();
},
columns
:
[{
checkbox
:
true
}
,{
field
:
'number'
,
title
:
'领用单号'
,
sortable
:
true
,
sortName
:
'number'
,
formatter
:
function
(
value
,
row
,
index
){
value
=
jp
.
unescapeHTML
(
value
);
return
"<a href='javascript:view(
\"
"
+
row
.
id
+
"
\"
)'>"
+
value
+
"</a>"
;
}
}
,{
field
:
'operator.name'
,
title
:
'操作人'
,
sortable
:
true
,
sortName
:
'operator.name'
}
,{
field
:
'office.name'
,
title
:
'领用机构'
,
sortable
:
true
,
sortName
:
'o.name'
}
,{
field
:
'time'
,
title
:
'领用时间'
,
sortable
:
true
,
sortName
:
'time'
},
{
field
:
'status'
,
title
:
'出库状态'
,
sortable
:
true
,
sortName
:
'status'
,
formatter
:
function
(
value
,
row
,
index
){
return
jp
.
getDictLabel
(
$
{
fns
:
toJson
(
fns
:
getDictList
(
'wh_delivery_status'
))},
value
,
"-"
);
}
},
{
field
:
'remarks'
,
title
:
'备注信息'
,
sortable
:
true
,
sortName
:
'remarks'
},
{
title
:
'操作'
,
formatter
(
v
,
r
)
{
if
(
r
.
status
===
'1'
)
{
return
"<a class='delivery'>出库</a>"
}
},
events
:
{
'click .delivery'
:
function
(
e
,
v
,
r
)
{
onDelivery
(
r
.
id
);
}
}
}
]
});
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
);
$
(
'#view,#edit'
).
prop
(
'disabled'
,
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'getSelections'
).
length
!=
1
);
$
(
'#delivery'
).
prop
(
'disabled'
,
!
(
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'getSelections'
).
length
==
1
&&
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'getSelections'
)[
0
].
status
==
'1'
));
});
$
(
"#btnImport"
).
click
(
function
(){
jp
.
open
({
type
:
2
,
$
(
"#btnImport"
).
click
(
function
(){
jp
.
open
({
type
:
2
,
area
:
[
500
,
200
],
auto
:
true
,
title
:
"导入数据"
,
content
:
"${ctx}/tag/importExcel"
,
btn
:
[
'下载模板'
,
'确定'
,
'关闭'
],
btn1
:
function
(
index
,
layero
){
jp
.
downloadFile
(
'${ctx}/warehouse/materialrequisition/materialRequisition/import/template'
);
},
btn2
:
function
(
index
,
layero
){
var
iframeWin
=
layero
.
find
(
'iframe'
)[
0
];
//得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin
.
contentWindow
.
importExcel
(
'${ctx}/warehouse/materialrequisition/materialRequisition/import'
,
function
(
data
)
{
if
(
data
.
success
){
jp
.
success
(
data
.
msg
);
refresh
();
}
else
{
jp
.
error
(
data
.
msg
);
}
jp
.
close
(
index
);
});
//调用保存事件
return
false
;
},
btn3
:
function
(
index
){
jp
.
close
(
index
);
}
});
});
$
(
"#export"
).
click
(
function
(){
//导出Excel文件
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
1
;
searchParam
.
pageSize
=
-
1
;
title
:
"导入数据"
,
content
:
"${ctx}/tag/importExcel"
,
btn
:
[
'下载模板'
,
'确定'
,
'关闭'
],
btn1
:
function
(
index
,
layero
){
jp
.
downloadFile
(
'${ctx}/warehouse/materialrequisition/materialRequisition/import/template'
);
},
btn2
:
function
(
index
,
layero
){
var
iframeWin
=
layero
.
find
(
'iframe'
)[
0
];
//得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin
.
contentWindow
.
importExcel
(
'${ctx}/warehouse/materialrequisition/materialRequisition/import'
,
function
(
data
)
{
if
(
data
.
success
){
jp
.
success
(
data
.
msg
);
refresh
();
}
else
{
jp
.
error
(
data
.
msg
);
}
jp
.
close
(
index
);
});
//调用保存事件
return
false
;
},
btn3
:
function
(
index
){
jp
.
close
(
index
);
}
});
});
$
(
"#export"
).
click
(
function
(){
//导出Excel文件
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
1
;
searchParam
.
pageSize
=
-
1
;
var
sortName
=
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
"getOptions"
,
"none"
).
sortName
;
var
sortOrder
=
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
"getOptions"
,
"none"
).
sortOrder
;
var
values
=
""
;
...
...
@@ -199,112 +211,115 @@ $(document).ready(function() {
values
=
values
+
"orderBy="
+
sortName
+
" "
+
sortOrder
;
}
jp
.
downloadFile
(
'${ctx}/warehouse/materialrequisition/materialRequisition/export?'
+
values
);
})
$
(
"#search"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
"#reset"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
"#searchForm input"
).
val
(
""
);
$
(
"#searchForm select"
).
val
(
""
);
$
(
"#searchForm .select-item"
).
html
(
""
);
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
});
});
function
getIdSelections
()
{
return
$
.
map
(
$
(
"#materialRequisitionTable"
).
bootstrapTable
(
'getSelections'
),
function
(
row
)
{
return
row
.
id
jp
.
downloadFile
(
'${ctx}/warehouse/materialrequisition/materialRequisition/export?'
+
values
);
})
$
(
"#search"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
"#reset"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
"#searchForm input"
).
val
(
""
);
$
(
"#searchForm select"
).
val
(
""
);
$
(
"#searchForm .select-item"
).
html
(
""
);
$
(
'#materialRequisitionTable'
).
bootstrapTable
(
'refresh'
);
});
});
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
();
}
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
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
.
openViewDialog
(
"查看物资领用"
,
"${ctx}/warehouse/materialrequisition/materialRequisition/form/view?id="
+
id
,
'1200'
,
'800'
);
}
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
;
}
function
addRow
(
list
,
idx
,
tpl
,
row
){
$
(
list
).
append
(
Mustache
.
render
(
tpl
,
{
idx
:
idx
,
delBtn
:
true
,
row
:
row
}));
}
/**
* 出库
*/
function
onDelivery
(
id
)
{
if
(
!
id
)
{
id
=
getIdSelections
();
}
function
addRow
(
list
,
idx
,
tpl
,
row
){
$
(
list
).
append
(
Mustache
.
render
(
tpl
,
{
idx
:
idx
,
delBtn
:
true
,
row
:
row
}));
}
/**
* 出库
*/
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
);
}
})
})
}
jp
.
confirm
(
'确认是否出库?'
,
function
(){
jp
.
get
(
'${ctx}/warehouse/materialrequisition/materialRequisition/delivery?id='
+
id
,
function
(
res
){
if
(
res
.
success
)
{
jp
.
success
(
res
.
msg
);
refresh
();
}
else
{
jp
.
error
(
res
.
msg
);
}
})
})
}
<
/script
>
<
script
type
=
"text/template"
id
=
"materialRequisitionChildrenTpl"
>
//<!--
<
div
class
=
"tabs-container"
>
...
...
@@ -317,10 +332,16 @@ $(document).ready(function() {
<
thead
>
<
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
>
<
/tr
>
...
...
@@ -330,29 +351,47 @@ $(document).ready(function() {
<
/table
>
<
/div
>
<
/div>/
/-->
<
/script
>
<
script
type
=
"text/template"
id
=
"materialRequisitionChild1Tpl"
>
//<!--
<
/script
>
<
script
type
=
"text/template"
id
=
"materialRequisitionChild1Tpl"
>
//<!--
<
tr
>
<
td
>
{{
row
.
ledgerInfo
.
code
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
name
}}
{{
row
.
ledgerInfo
.
type
.
name
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
type
.
code
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
model
}}
{{
row
.
ledgerInfo
.
num
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
type
.
name
}}
{{
row
.
ledgerInfo
.
type
.
unit
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
model
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
amount
}}
<
/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
}}
<
/td
>
<
/tr>/
/-->
<
/script
>
<
/script
>
src/main/webapp/webpage/modules/warehouse/outbound/outboundList.js
View file @
df05c88c
...
...
@@ -299,11 +299,18 @@ $(document).ready(function() {
<
table
class
=
"ani table"
>
<
thead
>
<
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
>
<
/tr
>
<
/thead
>
<
tbody
id
=
"outboundChild-{{idx}}-1-List"
>
...
...
@@ -315,21 +322,42 @@ $(document).ready(function() {
<
script
type
=
"text/template"
id
=
"outboundChild1Tpl"
>
//<!--
<
tr
>
<
td
>
{{
row
.
ledgerInfo
.
name
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
code
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
type
.
name
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
type
.
code
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
num
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
type
.
unit
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
model
}}
<
/td
>
<
td
>
{{
row
.
ledgerInfo
.
amount
}}
<
/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
}}
<
/td
>
<
/tr>/
/-->
...
...
src/main/webapp/webpage/modules/warehouse/storage/storageList.js
View file @
df05c88c
<%
@
page
contentType
=
"text/html;charset=UTF-8"
%>
<
script
>
$
(
document
).
ready
(
function
()
{
$
(
'#storageTable'
).
bootstrapTable
({
//请求方法
method
:
'post'
,
//类型json
dataType
:
"json"
,
contentType
:
"application/x-www-form-urlencoded"
,
//显示检索按钮
showSearch
:
true
,
//显示刷新按钮
showRefresh
:
true
,
//显示切换手机试图按钮
showToggle
:
true
,
//显示 内容列下拉框
showColumns
:
true
,
//显示到处按钮
showExport
:
true
,
//显示切换分页按钮
showPaginationSwitch
:
true
,
//显示详情按钮
detailView
:
true
,
//显示详细内容函数
detailFormatter
:
"detailFormatter"
,
//最低显示2行
minimumCountColumns
:
2
,
//是否显示行间隔色
striped
:
true
,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache
:
false
,
//是否显示分页(*)
pagination
:
true
,
//排序方式
sortOrder
:
"asc"
,
//初始化加载第一页,默认第一页
pageNumber
:
1
,
//每页的记录行数(*)
pageSize
:
10
,
//可供选择的每页的行数(*)
pageList
:
[
10
,
25
,
50
,
100
],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url
:
"${ctx}/warehouse/storage/storage/data"
,
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams
:
function
(
params
)
{
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
params
.
limit
===
undefined
?
"1"
:
params
.
offset
/
params
.
limit
+
1
;
searchParam
.
pageSize
=
params
.
limit
===
undefined
?
-
1
:
params
.
limit
;
searchParam
.
orderBy
=
params
.
sort
===
undefined
?
""
:
params
.
sort
+
" "
+
params
.
order
;
return
searchParam
;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination
:
"server"
,
contextMenuTrigger
:
"right"
,
//pc端 按右键弹出菜单
contextMenuTriggerMobile
:
"press"
,
//手机端 弹出菜单,click:单击, press:长按。
contextMenu
:
'#context-menu'
,
onContextMenuItem
:
function
(
row
,
$el
){
if
(
$el
.
data
(
"item"
)
==
"edit"
){
edit
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"view"
){
view
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"delete"
){
jp
.
confirm
(
'确认要删除该入库信息记录吗?'
,
function
(){
jp
.
loading
();
jp
.
get
(
"${ctx}/warehouse/storage/storage/delete?id="
+
row
.
id
,
function
(
data
){
if
(
data
.
success
){
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
jp
.
success
(
data
.
msg
);
}
else
{
jp
.
error
(
data
.
msg
);
}
})
});
}
},
onClickRow
:
function
(
row
,
$el
){
},
onShowSearch
:
function
()
{
$
(
"#search-collapse"
).
slideToggle
();
},
columns
:
[{
checkbox
:
true
}
,{
field
:
'code'
,
title
:
'入库单'
,
sortable
:
true
,
sortName
:
'code'
,
formatter
:
function
(
value
,
row
,
index
){
value
=
jp
.
unescapeHTML
(
value
);
return
"<a href='javascript:view(
\"
"
+
row
.
id
+
"
\"
)'>"
+
value
+
"</a>"
;
}
}
,{
field
:
'operator.name'
,
title
:
'操作人'
,
sortable
:
true
,
sortName
:
'operator.name'
}
,{
field
:
'time'
,
title
:
'时间'
,
sortable
:
true
,
sortName
:
'time'
}
,{
field
:
'batchNum'
,
title
:
'批次号'
,
sortable
:
true
,
sortName
:
'batchNum'
}
,{
field
:
'remarks'
,
title
:
'备注信息'
,
sortable
:
true
,
sortName
:
'remarks'
}
]
});
if
(
navigator
.
userAgent
.
match
(
/
(
iPhone|iPod|Android|ios
)
/i
)){
//如果是移动端
$
(
'#storageTable'
).
bootstrapTable
(
"toggleView"
);
}
$
(
'#storageTable'
).
on
(
'check.bs.table uncheck.bs.table load-success.bs.table '
+
'check-all.bs.table uncheck-all.bs.table'
,
function
()
{
<
script
>
$
(
document
).
ready
(
function
()
{
$
(
'#storageTable'
).
bootstrapTable
({
//请求方法
method
:
'post'
,
//类型json
dataType
:
"json"
,
contentType
:
"application/x-www-form-urlencoded"
,
//显示检索按钮
showSearch
:
true
,
//显示刷新按钮
showRefresh
:
true
,
//显示切换手机试图按钮
showToggle
:
true
,
//显示 内容列下拉框
showColumns
:
true
,
//显示到处按钮
showExport
:
true
,
//显示切换分页按钮
showPaginationSwitch
:
true
,
//显示详情按钮
detailView
:
true
,
//显示详细内容函数
detailFormatter
:
"detailFormatter"
,
//最低显示2行
minimumCountColumns
:
2
,
//是否显示行间隔色
striped
:
true
,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache
:
false
,
//是否显示分页(*)
pagination
:
true
,
//排序方式
sortOrder
:
"asc"
,
//初始化加载第一页,默认第一页
pageNumber
:
1
,
//每页的记录行数(*)
pageSize
:
10
,
//可供选择的每页的行数(*)
pageList
:
[
10
,
25
,
50
,
100
],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url
:
"${ctx}/warehouse/storage/storage/data"
,
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams
:
function
(
params
)
{
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
params
.
limit
===
undefined
?
"1"
:
params
.
offset
/
params
.
limit
+
1
;
searchParam
.
pageSize
=
params
.
limit
===
undefined
?
-
1
:
params
.
limit
;
searchParam
.
orderBy
=
params
.
sort
===
undefined
?
""
:
params
.
sort
+
" "
+
params
.
order
;
return
searchParam
;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination
:
"server"
,
contextMenuTrigger
:
"right"
,
//pc端 按右键弹出菜单
contextMenuTriggerMobile
:
"press"
,
//手机端 弹出菜单,click:单击, press:长按。
contextMenu
:
'#context-menu'
,
onContextMenuItem
:
function
(
row
,
$el
){
if
(
$el
.
data
(
"item"
)
==
"edit"
){
edit
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"view"
){
view
(
row
.
id
);
}
else
if
(
$el
.
data
(
"item"
)
==
"delete"
){
jp
.
confirm
(
'确认要删除该入库信息记录吗?'
,
function
(){
jp
.
loading
();
jp
.
get
(
"${ctx}/warehouse/storage/storage/delete?id="
+
row
.
id
,
function
(
data
){
if
(
data
.
success
){
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
jp
.
success
(
data
.
msg
);
}
else
{
jp
.
error
(
data
.
msg
);
}
})
});
}
},
onClickRow
:
function
(
row
,
$el
){
},
onShowSearch
:
function
()
{
$
(
"#search-collapse"
).
slideToggle
();
},
columns
:
[{
checkbox
:
true
}
,{
field
:
'code'
,
title
:
'入库单'
,
sortable
:
true
,
sortName
:
'code'
,
formatter
:
function
(
value
,
row
,
index
){
value
=
jp
.
unescapeHTML
(
value
);
return
"<a href='javascript:view(
\"
"
+
row
.
id
+
"
\"
)'>"
+
value
+
"</a>"
;
}
}
,{
field
:
'operator.name'
,
title
:
'操作人'
,
sortable
:
true
,
sortName
:
'operator.name'
}
,{
field
:
'time'
,
title
:
'时间'
,
sortable
:
true
,
sortName
:
'time'
}
,{
field
:
'batchNum'
,
title
:
'批次号'
,
sortable
:
true
,
sortName
:
'batchNum'
}
//
,{
//
field: 'remarks',
//
title: '备注信息',
//
sortable: true,
//
sortName: 'remarks'
//
//
}
]
});
if
(
navigator
.
userAgent
.
match
(
/
(
iPhone|iPod|Android|ios
)
/i
)){
//如果是移动端
$
(
'#storageTable'
).
bootstrapTable
(
"toggleView"
);
}
$
(
'#storageTable'
).
on
(
'check.bs.table uncheck.bs.table load-success.bs.table '
+
'check-all.bs.table uncheck-all.bs.table'
,
function
()
{
$
(
'#remove'
).
prop
(
'disabled'
,
!
$
(
'#storageTable'
).
bootstrapTable
(
'getSelections'
).
length
);
$
(
'#view,#edit'
).
prop
(
'disabled'
,
$
(
'#storageTable'
).
bootstrapTable
(
'getSelections'
).
length
!=
1
);
});
$
(
"#btnImport"
).
click
(
function
(){
jp
.
open
({
type
:
2
,
$
(
"#btnImport"
).
click
(
function
(){
jp
.
open
({
type
:
2
,
area
:
[
500
,
200
],
auto
:
true
,
title
:
"导入数据"
,
content
:
"${ctx}/tag/importExcel"
,
btn
:
[
'下载模板'
,
'确定'
,
'关闭'
],
btn1
:
function
(
index
,
layero
){
jp
.
downloadFile
(
'${ctx}/warehouse/storage/storage/import/template'
);
},
btn2
:
function
(
index
,
layero
){
var
iframeWin
=
layero
.
find
(
'iframe'
)[
0
];
//得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin
.
contentWindow
.
importExcel
(
'${ctx}/warehouse/storage/storage/import'
,
function
(
data
)
{
if
(
data
.
success
){
jp
.
success
(
data
.
msg
);
refresh
();
}
else
{
jp
.
error
(
data
.
msg
);
}
jp
.
close
(
index
);
});
//调用保存事件
return
false
;
},
btn3
:
function
(
index
){
jp
.
close
(
index
);
}
});
});
$
(
"#export"
).
click
(
function
(){
//导出Excel文件
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
1
;
searchParam
.
pageSize
=
-
1
;
title
:
"导入数据"
,
content
:
"${ctx}/tag/importExcel"
,
btn
:
[
'下载模板'
,
'确定'
,
'关闭'
],
btn1
:
function
(
index
,
layero
){
jp
.
downloadFile
(
'${ctx}/warehouse/storage/storage/import/template'
);
},
btn2
:
function
(
index
,
layero
){
var
iframeWin
=
layero
.
find
(
'iframe'
)[
0
];
//得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin
.
contentWindow
.
importExcel
(
'${ctx}/warehouse/storage/storage/import'
,
function
(
data
)
{
if
(
data
.
success
){
jp
.
success
(
data
.
msg
);
refresh
();
}
else
{
jp
.
error
(
data
.
msg
);
}
jp
.
close
(
index
);
});
//调用保存事件
return
false
;
},
btn3
:
function
(
index
){
jp
.
close
(
index
);
}
});
});
$
(
"#export"
).
click
(
function
(){
//导出Excel文件
var
searchParam
=
$
(
"#searchForm"
).
serializeJSON
();
searchParam
.
pageNo
=
1
;
searchParam
.
pageSize
=
-
1
;
var
sortName
=
$
(
'#storageTable'
).
bootstrapTable
(
"getOptions"
,
"none"
).
sortName
;
var
sortOrder
=
$
(
'#storageTable'
).
bootstrapTable
(
"getOptions"
,
"none"
).
sortOrder
;
var
values
=
""
;
...
...
@@ -188,173 +188,174 @@ $(document).ready(function() {
values
=
values
+
"orderBy="
+
sortName
+
" "
+
sortOrder
;
}
jp
.
downloadFile
(
'${ctx}/warehouse/storage/storage/export?'
+
values
);
})
$
(
"#search"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
"#reset"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
"#searchForm input"
).
val
(
""
);
$
(
"#searchForm select"
).
val
(
""
);
$
(
"#searchForm .select-item"
).
html
(
""
);
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
'#beginTime'
).
datetimepicker
({
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
jp
.
downloadFile
(
'${ctx}/warehouse/storage/storage/export?'
+
values
);
})
$
(
"#search"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
"#reset"
).
click
(
"click"
,
function
()
{
// 绑定查询按扭
$
(
"#searchForm input"
).
val
(
""
);
$
(
"#searchForm select"
).
val
(
""
);
$
(
"#searchForm .select-item"
).
html
(
""
);
$
(
'#storageTable'
).
bootstrapTable
(
'refresh'
);
});
$
(
'#beginTime'
).
datetimepicker
({
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
});
}
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
();
}
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
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
.
openSaveDialog
(
"编辑入库单"
,
"${ctx}/warehouse/storage/storage/form/edit?id="
+
id
,
'1400'
,
'800'
);
}
function
view
(
id
){
//没有权限时,不显示确定按钮
if
(
id
==
undefined
){
id
=
getIdSelections
();
}
function
addRow
(
list
,
idx
,
tpl
,
row
){
$
(
list
).
append
(
Mustache
.
render
(
tpl
,
{
idx
:
idx
,
delBtn
:
true
,
row
:
row
}));
}
function
onStorage
(
countStorage
,
goodsInfoId
,
rowIndex
){
debugger
var
main
=
JSON
.
parse
(
countStorage
);
var
data
=
[
main
];
// var shelvesIds = data.map(function (item){
// return item.shelves.id
// }).join(',');
// 构建台账主表
var
name$
=
$
(
"<input type='hidden' name='name' value='"
+
main
.
name
+
"' />"
);
var
typeId$
=
$
(
"<input type='hidden' name='type.id' value='"
+
main
.
type
.
id
+
"' />"
);
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
+
"' />"
);
$
(
"#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$
);
})
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)){
//
// }
// })
}
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
;
}
function
addRow
(
list
,
idx
,
tpl
,
row
){
$
(
list
).
append
(
Mustache
.
render
(
tpl
,
{
idx
:
idx
,
delBtn
:
true
,
row
:
row
}));
}
function
onStorage
(
countStorage
,
goodsInfoId
,
rowIndex
){
debugger
var
main
=
JSON
.
parse
(
countStorage
);
var
data
=
[
main
];
// var shelvesIds = data.map(function (item){
// return item.shelves.id
// }).join(',');
// 构建台账主表
var
name$
=
$
(
"<input type='hidden' name='name' value='"
+
main
.
name
+
"' />"
);
var
typeId$
=
$
(
"<input type='hidden' name='type.id' value='"
+
main
.
type
.
id
+
"' />"
);
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
type
=
"text/template"
id
=
"storageChildrenTpl"
>
//<!--
<
div
class
=
"tabs-container"
>
...
...
@@ -375,6 +376,7 @@ $(document).ready(function() {
<
th
>
总价
<
/th
>
<
th
>
仓库
<
/th
>
<
th
>
货架
<
/th
>
<
th
>
备注
<
/th
>
<
th
>
操作
<
/th
>
<
/tr
>
<
/thead
>
...
...
@@ -383,8 +385,8 @@ $(document).ready(function() {
<
/table
>
<
/div
>
<
/div>/
/-->
<
/script
>
<
script
type
=
"text/template"
id
=
"storageChild1Tpl"
>
//<!--
<
/script
>
<
script
type
=
"text/template"
id
=
"storageChild1Tpl"
>
//<!--
<
tr
>
<
td
>
{{
row
.
type
.
name
}}
...
...
@@ -413,7 +415,9 @@ $(document).ready(function() {
<
td
>
{{
row
.
shelvesNames
}}
<
/td
>
<
td
>
{{
row
.
remarks
}}
<
/td
>
{{
#
row
.
isNotStorage
}}
<
td
>
<
a
href
=
"javascript:void(0);"
onclick
=
"onStorage('{{row.jsonStr}}','{{row.goodsInfo.id}}',{{row.mainRowIndex}})"
>
入库
<
/a
>
...
...
@@ -425,4 +429,4 @@ $(document).ready(function() {
<
/td
>
{{
/
row
.
isStorage
}}
<
/tr>/
/-->
<
/script
>
<
/script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment