Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes-pda-scan
Project
Project
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
ximai
mes-pda-scan
Commits
c251dde1
Commit
c251dde1
authored
May 20, 2024
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
销售拣货,仓位转移,反冲料功能添加,bug修改
parent
32cb5f7b
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1186 additions
and
92 deletions
+1186
-92
http.api.js
common/http.api.js
+20
-15
pages.json
pages.json
+35
-0
index.vue
pages/index/index.vue
+11
-1
positionTansfer.vue
pages/positionTansfer/positionTansfer.vue
+31
-57
posting.vue
pages/posting/posting.vue
+7
-1
productionIssuanceList.vue
pages/productionIssuance/productionIssuanceList.vue
+15
-12
oddNumList.vue
pages/recoil/oddNumList.vue
+213
-0
recoilMaterial.vue
pages/recoil/recoilMaterial.vue
+211
-0
recoilMaterialItem.vue
pages/recoil/recoilMaterialItem.vue
+0
-0
recoilMaterialList.vue
pages/recoil/recoilMaterialList.vue
+418
-0
scanningList.vue
pages/recoil/scanningList.vue
+216
-0
salesOutboundList.vue
pages/salesOutbound/salesOutboundList.vue
+9
-6
No files found.
common/http.api.js
View file @
c251dde1
...
@@ -6,6 +6,9 @@ const install = (Vue, vm) => {
...
@@ -6,6 +6,9 @@ const install = (Vue, vm) => {
// 参数配置对象
// 参数配置对象
const
config
=
vm
.
vuex_config
;
const
config
=
vm
.
vuex_config
;
// sap-client
const
sapClient
=
310
;
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
vm
.
$u
.
api
=
{
vm
.
$u
.
api
=
{
...
@@ -32,32 +35,34 @@ const install = (Vue, vm) => {
...
@@ -32,32 +35,34 @@ const install = (Vue, vm) => {
},
},
sapApi
:
{
sapApi
:
{
// 采购入库
// 采购入库
sapRrm
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/cud_mm_rrm/rrm?sap-client=
310'
,
params
),
sapRrm
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/cud_mm_rrm/rrm?sap-client=
'
+
sapClient
,
params
),
sapPlnr
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/get_mm_plnr/plnr?sap-client=
310'
,
params
,),
sapPlnr
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/get_mm_plnr/plnr?sap-client=
'
+
sapClient
,
params
,),
// 仓位转移
// 仓位转移
sapDict
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/ep_dict?sap-client=
310'
,
params
),
sapDict
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/ep_dict?sap-client=
'
+
sapClient
,
params
),
// 生产领料
// 生产领料
sapProiss
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_plto_proiss?sap-client=
310'
,
params
),
sapProiss
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_plto_proiss?sap-client=
'
+
sapClient
,
params
),
// 完工入库
// 完工入库
sapOrder
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/PDA_MES_Order/PDA_ORDER?sap-client=
310'
,
params
),
sapOrder
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/PDA_MES_Order/PDA_ORDER?sap-client=
'
+
sapClient
,
params
),
// 线边库转移下架
// 线边库转移下架
sapXbkzy
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_plto_xbkzy?sap-client=
310'
,
params
),
sapXbkzy
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_plto_xbkzy?sap-client=
'
+
sapClient
,
params
),
// 销售拣货单号查询
// 销售拣货单号查询
sapSchDn
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_dn?sap-client=
310'
,
params
),
sapSchDn
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_dn?sap-client=
'
+
sapClient
,
params
),
// 销售拣货单
// 销售拣货单
sapPickingDn
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/picking_dn?sap-client=
310'
,
params
),
sapPickingDn
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/picking_dn?sap-client=
'
+
sapClient
,
params
),
// 销售拣货过账
// 销售拣货过账
sapDelv
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/post_delv?sap-client=
310'
,
params
),
sapDelv
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/post_delv?sap-client=
'
+
sapClient
,
params
),
// 销售拣货查询bl pl
// 销售拣货查询bl pl
sapBlpl
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_BLPL?sap-client=
310'
,
params
),
sapBlpl
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_BLPL?sap-client=
'
+
sapClient
,
params
),
// 查询仓位
// 查询仓位
sapLgpla
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_LGPLA?sap-client=
310'
,
params
),
sapLgpla
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_LGPLA?sap-client=
'
+
sapClient
,
params
),
// 装箱
// 装箱
sapCasePlnr
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_case/pda_case_plnr?sap-client=
310'
,
params
),
sapCasePlnr
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_case/pda_case_plnr?sap-client=
'
+
sapClient
,
params
),
},
},
mesApi
:{
mesApi
:{
//生产领料查询单号
//生产领料查询单号
pdaMaterialcreate
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'apiPda/material/pdaMaterialcreate'
,
params
),
pdaMaterialcreate
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'apiPda/material/pdaMaterialcreate'
,
params
),
// 调拨料申请查询
pdaAllocationCreate
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'apiPda/allocation/pdaAllocationCreate'
,
params
),
// 生产退料查询单号
// 生产退料查询单号
pdaMaterialReturn
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'/apiPad/materialReturn/pdaMaterialReturn'
,
params
),
pdaMaterialReturn
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'/apiPad/materialReturn/pdaMaterialReturn'
,
params
),
//生产领料
//生产领料
...
@@ -65,9 +70,9 @@ const install = (Vue, vm) => {
...
@@ -65,9 +70,9 @@ const install = (Vue, vm) => {
// 生产退料
// 生产退料
pdaMaterialReturnNum
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/apiPad/materialReturn/pdaMaterialReturnNum'
,
params
),
pdaMaterialReturnNum
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/apiPad/materialReturn/pdaMaterialReturnNum'
,
params
),
// 完工入库
// 完工入库
pdaFindPackageLinkInfo
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'apiPda/search/findPackageLinkInfo'
,
params
),
pdaFindPackageLinkInfo
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'
/
apiPda/search/findPackageLinkInfo'
,
params
),
// 调拨料回传mes
pdaAllocation
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/apiPda/allocation/pdaAllocation'
,
params
)
}
}
};
};
...
...
pages.json
View file @
c251dde1
...
@@ -178,6 +178,41 @@
...
@@ -178,6 +178,41 @@
"navigationBarTitleText"
:
"过账"
,
"navigationBarTitleText"
:
"过账"
,
"enablePullDownRefresh"
:
false
"enablePullDownRefresh"
:
false
}
}
},
{
"path"
:
"pages/recoil/recoilMaterial"
,
"style"
:
{
"navigationBarTitleText"
:
"反冲料移库"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/recoil/recoilMaterialList"
,
"style"
:
{
"navigationBarTitleText"
:
"反冲料移库查询"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/recoil/recoilMaterialItem"
,
"style"
:
{
"navigationBarTitleText"
:
"反冲料移库"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/recoil/oddNumList"
,
"style"
:
{
"navigationBarTitleText"
:
"反冲料移库"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/purchase/purchaseRemove"
,
"style"
:
{
"navigationBarTitleText"
:
"采购下架"
,
"enablePullDownRefresh"
:
false
}
}
}
],
],
"globalStyle"
:
{
"globalStyle"
:
{
...
...
pages/index/index.vue
View file @
c251dde1
...
@@ -34,9 +34,14 @@ export default {
...
@@ -34,9 +34,14 @@ export default {
text
:
'采购入库'
,
text
:
'采购入库'
,
url
:
'/pages/purchaseStorage/purchaseStorage'
url
:
'/pages/purchaseStorage/purchaseStorage'
},
},
{
src
:
require
(
'@/static/images/cgrk.png'
),
text
:
'采购下架'
,
url
:
'/pages/purchase/purchaseRemove'
},
{
{
src
:
require
(
'@/static/images/fclyk.png'
),
src
:
require
(
'@/static/images/fclyk.png'
),
text
:
'仓位
转移
'
,
text
:
'仓位
调拨
'
,
url
:
'/pages/positionTansfer/positionTansfer'
url
:
'/pages/positionTansfer/positionTansfer'
},
},
{
{
...
@@ -89,6 +94,11 @@ export default {
...
@@ -89,6 +94,11 @@ export default {
text
:
'发货过账'
,
text
:
'发货过账'
,
url
:
'/pages/posting/posting'
url
:
'/pages/posting/posting'
},
},
{
src
:
require
(
'@/static/images/xsck.png'
),
text
:
'反冲料移库'
,
url
:
'/pages/recoil/recoilMaterial'
},
]
]
}
}
]
]
...
...
pages/positionTansfer/positionTansfer.vue
View file @
c251dde1
<
template
>
<
template
>
<view
class=
"lists"
>
<view
class=
"lists"
>
<StickyNavBar
class=
"stickyBox"
>
<StickyNavBar
class=
"stickyBox"
>
<NavBar
title=
"仓位转移"
></NavBar>
<NavBar
title=
"仓位调拨"
></NavBar>
<view
class=
"selectSheet"
>
<u-row
gutter=
"16"
>
<!--
<u-col
span=
"6"
>
<u-picker
v-model=
"show"
mode=
"selector"
:default-selector=
"[0]"
range-key=
"text"
:range=
"actionSheetList"
></u-picker>
<u-input
v-model=
"value"
placeholder=
"请选择工厂"
:type=
"type"
:border=
"border"
@
click=
"show = true"
/>
</u-col>
-->
<u-col
span=
"12"
>
<u-picker
v-model=
"depotShow"
mode=
"selector"
:default-selector=
"[0]"
range-key=
"LGOBE"
:range=
"depotLists"
@
confirm=
"actionSheetCallback"
></u-picker>
<u-input
v-model=
"LGOBE"
placeholder=
"请选择仓库别"
:type=
"type"
:border=
"border"
@
click=
"depotShow = true"
/>
<!--
<u-action-sheet
:list=
"depotLists"
v-model=
"depotShow"
@
click=
"actionSheetCallback"
></u-action-sheet>
-->
</u-col>
</u-row>
</view>
<view
class=
"scanningBtn"
>
<view
class=
"scanningBtn"
>
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫描库位"
@
change=
"handleInputNlpla"
></uni-easyinput>
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫描库位"
@
change=
"handleInputNlpla"
></uni-easyinput>
<uni-easyinput
<uni-easyinput
...
@@ -45,7 +32,7 @@
...
@@ -45,7 +32,7 @@
</view>
</view>
<view
class=
"cardItemDetail"
>
<view
class=
"cardItemDetail"
>
<text
class=
"cardItemLabel"
>
数量
</text>
<text
class=
"cardItemLabel"
>
数量
</text>
<text
class=
"cardItemValue"
>
{{
item
.
ERFM
G
}}
</text>
<text
class=
"cardItemValue"
>
{{
item
.
TOMN
G
}}
</text>
</view>
</view>
<view
class=
"cardItemDetail"
>
<view
class=
"cardItemDetail"
>
<text
class=
"cardItemLabel"
>
单位
</text>
<text
class=
"cardItemLabel"
>
单位
</text>
...
@@ -72,24 +59,11 @@ export default {
...
@@ -72,24 +59,11 @@ export default {
return
{
return
{
nlpla
:
''
,
nlpla
:
''
,
wxparams
:
''
,
wxparams
:
''
,
value
:
''
,
type
:
'select'
,
type
:
'select'
,
show
:
false
,
depotShow
:
false
,
depotShow
:
false
,
border
:
true
,
border
:
true
,
LGOBE
:
''
,
LGOBE
:
''
,
depotLists
:
[],
depotLists
:
[],
actionSheetList
:
[
{
text
:
'男'
},
{
text
:
'女'
},
{
text
:
'保密'
}
],
status
:
'loadmore'
,
status
:
'loadmore'
,
btnArr
:
[
btnArr
:
[
{
{
...
@@ -112,7 +86,6 @@ export default {
...
@@ -112,7 +86,6 @@ export default {
},
},
created
()
{
created
()
{
this
.
getDepotLists
();
this
.
getDepotLists
();
this
.
getPlnr
(
'240418000007|00010000060000030.000|10000000000011'
)
},
},
methods
:
{
methods
:
{
getDepotLists
()
{
getDepotLists
()
{
...
@@ -134,29 +107,31 @@ export default {
...
@@ -134,29 +107,31 @@ export default {
getBtnHandle
(
row
)
{
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
this
[
row
.
way
]();
},
},
goBack
()
{
goBack
(
time
=
0
)
{
uni
.
navigateBack
();
setTimeout
(()
=>
{
uni
.
navigateBack
();
},
time
)
},
resetPage
()
{
this
.
goodsList
=
[];
this
.
nlpla
=
''
;
this
.
wxparams
=
''
;
},
},
goSubmit
()
{
goSubmit
()
{
if
(
this
.
goodsList
.
length
===
0
)
{
if
(
this
.
goodsList
.
length
===
0
)
{
return
;
return
;
}
}
console
.
log
([
{
BLDAT
:
'20240325'
,
BUDAT
:
'20240325'
,
ZENCODE
:
'A012'
,
TYPE
:
'ZY'
,
ITEM
:
this
.
goodsList
}
]);
const
params
=
{
const
params
=
{
TYPE
:
'
ZY
'
,
TYPE
:
''
,
ZENCODE
:
""
,
ZENCODE
:
"
999
"
,
BUDAT
:
""
,
BUDAT
:
""
,
BLDAT
:
""
,
BLDAT
:
""
,
LFSNR
:
""
,
LFSNR
:
""
,
ITEM
:
this
.
goodsList
ITEM
:
this
.
goodsList
.
map
(
item
=>
{
item
.
LGPLA
=
this
.
nlpla
item
.
ERFMG
=
item
.
TOMNG
return
item
})
}
}
this
.
$u
.
api
.
sapApi
this
.
$u
.
api
.
sapApi
...
@@ -166,12 +141,16 @@ export default {
...
@@ -166,12 +141,16 @@ export default {
if
(
!
Array
.
isArray
(
res
)){
if
(
!
Array
.
isArray
(
res
)){
return
return
}
}
if
(
res
.
every
((
item
)
=>
item
.
TYPE
===
'S'
))
{
const
flag
=
res
.
some
((
item
)
=>
{
this
.
$u
.
toast
(
'提交成功'
);
const
f
=
item
.
TYPE
==
"E"
;
}
if
(
f
)
{
const
foundObject
=
res
.
find
(
item
=>
item
.
TYPE
===
'E'
);
this
.
$u
.
toast
(
item
.
MESSAGE
);
if
(
foundObject
&&
foundObject
.
MESSAGE
){
}
this
.
$u
.
toast
(
foundObject
.
MESSAGE
);
return
f
;
});
if
(
!
flag
)
{
this
.
$u
.
toast
(
"提交成功"
);
this
.
resetPage
();
}
}
});
});
},
},
...
@@ -181,13 +160,7 @@ export default {
...
@@ -181,13 +160,7 @@ export default {
this
.
LGOBE
=
this
.
depotLists
[
index
].
LGOBE
;
this
.
LGOBE
=
this
.
depotLists
[
index
].
LGOBE
;
},
},
handleInputNlpla
(
e
)
{
handleInputNlpla
(
e
)
{
console
.
log
(
e
,
'eee'
);
this
.
nlpla
=
e
;
if
(
e
)
{
this
.
nlpla
=
e
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
ele
.
NLPLA
=
ele
.
NLPLA
||
this
.
nlpla
;
});
}
},
},
handleInputPlnr
(
e
)
{
handleInputPlnr
(
e
)
{
this
.
isFocus
=
false
;
this
.
isFocus
=
false
;
...
@@ -197,7 +170,8 @@ export default {
...
@@ -197,7 +170,8 @@ export default {
this
.
isDisabled
=
true
;
this
.
isDisabled
=
true
;
this
.
$u
.
api
.
sapApi
this
.
$u
.
api
.
sapApi
.
sapPlnr
({
.
sapPlnr
({
plnr
plnr
,
zType
:
'002'
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
&&
res
.
RESULT
.
TYPE
===
'S'
)
{
if
(
res
&&
res
.
RESULT
.
TYPE
===
'S'
)
{
...
...
pages/posting/posting.vue
View file @
c251dde1
...
@@ -12,6 +12,9 @@
...
@@ -12,6 +12,9 @@
@
input=
"handleInputPlnr"
@
input=
"handleInputPlnr"
></uni-easyinput>
></uni-easyinput>
</view>
</view>
<view
class=
"btn"
>
<uni-datetime-picker
type=
"date"
:clear-icon=
"false"
placeholder=
"请选择发货日期"
v-model=
"single"
@
maskClick=
"maskClick"
/>
</view>
</StickyNavBar>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
:list=
'goodsList'
>
<ContentLoadingMore
class=
"cardbox"
:list=
'goodsList'
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
>
...
@@ -42,6 +45,7 @@ export default {
...
@@ -42,6 +45,7 @@ export default {
show
:
true
,
show
:
true
,
nlpla
:
''
,
nlpla
:
''
,
wxparams
:
''
,
wxparams
:
''
,
single
:
''
,
btnArr
:
[
btnArr
:
[
{
{
style
:
''
,
style
:
''
,
...
@@ -63,6 +67,7 @@ export default {
...
@@ -63,6 +67,7 @@ export default {
},
},
created
()
{
created
()
{
// this.getPlnr('10000820240325000001|10000320100');
// this.getPlnr('10000820240325000001|10000320100');
this
.
single
=
parseTime
(
new
Date
())
},
},
methods
:
{
methods
:
{
deleGonds
(
idx
)
{
deleGonds
(
idx
)
{
...
@@ -72,6 +77,7 @@ export default {
...
@@ -72,6 +77,7 @@ export default {
this
.
totalNum
+=
ele
.
ERFMG
;
this
.
totalNum
+=
ele
.
ERFMG
;
});
});
},
},
maskClick
(
e
)
{},
getBtnHandle
(
row
)
{
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
this
[
row
.
way
]();
},
},
...
@@ -84,7 +90,7 @@ export default {
...
@@ -84,7 +90,7 @@ export default {
}
}
const
params
=
{
const
params
=
{
"VBELN"
:
this
.
goodsList
[
0
],
"VBELN"
:
this
.
goodsList
[
0
],
"WADAT"
:
parseTime
(
new
Date
())
"WADAT"
:
this
.
single
,
}
}
this
.
$u
.
api
.
sapApi
this
.
$u
.
api
.
sapApi
.
sapDelv
(
params
)
.
sapDelv
(
params
)
...
...
pages/productionIssuance/productionIssuanceList.vue
View file @
c251dde1
...
@@ -176,13 +176,18 @@ export default {
...
@@ -176,13 +176,18 @@ export default {
});
});
},
},
goSubmit
()
{
goSubmit
()
{
const
flag
=
this
.
goodsList
.
every
((
item
)
=>
{
// let arr = this.goodsList.filter((ele) => ele.details.some(v => v.vista)).map(v =>);
return
item
.
details
.
every
(
v
=>
v
.
PLNR
)
})
if
(
!
flag
)
{
return
this
.
$u
.
toast
(
"请扫描产品包装条码/外箱码"
);
}
let
arr
=
this
.
goodsList
.
reduce
((
acc
,
cur
)
=>
{
let
arr
=
this
.
goodsList
.
reduce
((
acc
,
cur
)
=>
{
acc
.
push
(...
cur
.
details
)
acc
.
push
(...
cur
.
details
)
return
acc
return
acc
},
[])
},
[])
console
.
log
(
arr
,
'----'
)
// "windCase": null,是否结案 Y是 N否
// "windCase": null,是否结案 Y是 N否
arr
.
forEach
((
ele
,
index
)
=>
{
arr
.
forEach
((
ele
,
index
)
=>
{
...
@@ -292,11 +297,12 @@ export default {
...
@@ -292,11 +297,12 @@ export default {
v
.
vista
=
num
>
v
.
applyNum
?
v
.
applyNum
:
num
;
v
.
vista
=
num
>
v
.
applyNum
?
v
.
applyNum
:
num
;
}
}
num
=
+
(
num
-
v
.
vista
).
toFixed
(
3
);
num
=
+
(
num
-
v
.
vista
).
toFixed
(
3
);
v
.
CHARG
=
ele
.
CHARG
;
// v.CHARG = ele.CHARG;
v
.
PLNR
=
plnr
;
// v.PLNR = plnr;
v
.
LGORT
=
ele
.
LGORT
;
// v.LGORT = ele.LGORT;
v
.
LGOBE
=
ele
.
LGOBE
;
// v.LGOBE = ele.LGOBE;
v
.
NLPLA
=
ele
.
NLPLA
;
// v.NLPLA = ele.NLPLA;
Object
.
assign
(
v
,
ele
);
// 添加两个字段,使用数量和剩余数量
// 添加两个字段,使用数量和剩余数量
v
.
usedNum
=
v
.
vista
;
v
.
usedNum
=
v
.
vista
;
v
.
remainNum
=
+
(
v
.
applyNum
-
v
.
usedNum
).
toFixed
(
3
);
v
.
remainNum
=
+
(
v
.
applyNum
-
v
.
usedNum
).
toFixed
(
3
);
...
@@ -316,10 +322,7 @@ export default {
...
@@ -316,10 +322,7 @@ export default {
}
}
const
reAddItem
=
{
const
reAddItem
=
{
...
v
,
...
v
,
PLNR
:
plnr
,
...
ele
,
LGORT
:
ele
.
LGORT
,
LGOBE
:
ele
.
LGOBE
,
NLPLA
:
ele
.
NLPLA
,
usedNum
:
+
(
v
.
usedNum
+
vista
).
toFixed
(
3
),
usedNum
:
+
(
v
.
usedNum
+
vista
).
toFixed
(
3
),
remainNum
:
+
(
v
.
remainNum
-
vista
).
toFixed
(
3
),
remainNum
:
+
(
v
.
remainNum
-
vista
).
toFixed
(
3
),
vista
,
vista
,
...
...
pages/recoil/oddNumList.vue
0 → 100644
View file @
c251dde1
<
template
>
<view>
<StickyNavBar>
<NavBar
title=
"反冲料单号"
></NavBar>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
:loadmore=
'true'
:status=
"status"
:list=
'goodsList'
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
>
<view
class=
"listItemTitle"
@
click=
"handleClick(item)"
>
<view>
<view
class=
"item"
>
申请单号:
{{
item
.
applyNo
}}
</view>
<!--
<view
class=
"item"
>
物料编号:
{{
item
.
sapItemCode
}}
</view>
-->
<!--
<view
class=
"item"
>
物料描述:
{{
item
.
itemName
}}
</view>
-->
<view
class=
"item"
>
作业单元:
{{
item
.
workunitName
}}
</view>
<view
class=
"item"
>
作业类型:
{{
item
.
materialType
?
'补料'
:
'领料'
}}
</view>
<view
class=
"item"
>
备料状态:
{{
item
.
grantNum
?
'配货中'
:
'未配货'
}}
</view>
<view
class=
"item"
>
计划时间:
{{
item
.
startTime
}}
</view>
</view>
</view>
</view>
</ContentLoadingMore>
<!--
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
></BottomBtn>
-->
</view>
</
template
>
<
script
>
import
StickyNavBar
from
'@/components/StickyNavBar/index.vue'
;
import
ContentLoadingMore
from
'@/components/ContentLoadingMore/index.vue'
;
import
BottomBtn
from
'@/components/BottomBtn/index.vue'
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
},
data
()
{
return
{
number
:
0
,
totalNum
:
0
,
show
:
true
,
nlpla
:
''
,
wxparams
:
''
,
btnArr
:
[
{
style
:
''
,
type
:
'warning'
,
text
:
'返回'
,
way
:
'goBack'
},
{
style
:
''
,
type
:
'primary'
,
text
:
'提交'
,
way
:
'goSubmit'
}
],
goodsList
:
[],
pagination
:
{
pageNum
:
1
,
pageSize
:
10
,
},
total
:
0
,
status
:
'loadmore'
};
},
created
()
{
this
.
getPlnr
();
},
methods
:
{
// 加载更多
onReachBottom
()
{
console
.
log
(
'加载更多'
);
if
(
this
.
pagination
.
pageNum
*
this
.
pagination
.
pageSize
>=
this
.
total
){
this
.
status
=
"noMore"
return
;
}
else
{
this
.
status
=
"loading"
this
.
pagination
.
pageNum
++
this
.
getPlnr
();
}
},
handleClick
(
item
){
uni
.
navigateTo
({
url
:
`/pages/recoil/recoilMaterialList?order=
${
item
.
applyNo
}
`
});
},
getPlnr
(
applyNo
=
''
)
{
this
.
totalNum
=
0
;
this
.
isDisabled
=
true
;
this
.
$u
.
api
.
mesApi
.
pdaAllocationCreate
({
...
this
.
pagination
,
applyNo
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
-
200
===
0
)
{
this
.
goodsList
=
this
.
goodsList
.
concat
(
res
.
rows
);
this
.
goodsList
=
this
.
goodsList
.
filter
((
item
,
index
,
self
)
=>
{
return
self
.
findIndex
(
t
=>
t
.
applyNo
===
item
.
applyNo
)
===
index
;
});
this
.
total
=
res
.
total
}
else
{
this
.
$u
.
toast
(
res
.
msg
);
}
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
page
{
background
:
#f8f8f8
;
}
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
.bottomBtn
{
position
:
sticky
;
padding
:
20rpx
;
display
:
flex
;
justify-content
:
space-between
;
background
:
#fff
;
bottom
:
0rpx
;
margin-top
:
20rpx
;
.u-btn
{
width
:
300rpx
;
}
}
.blue
{
color
:
#3f9dcc
;
}
.total
{
background
:
#fff
;
color
:
#000
;
padding
:
0rpx
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
font-size
:
32rpx
;
.line
{
margin
:
0px
10rpx
;
}
}
.cardbox
{
min-height
:
calc
(
100vh
-
540rpx
);
padding
:
0rpx
20rpx
;
margin-top
:
20rpx
;
}
.cardContent
{
border-radius
:
8px
;
background
:
#fff
;
margin-bottom
:
20rpx
;
}
.listItemTitle
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
20rpx
;
border-bottom
:
2px
solid
#f8f8f8
;
.u-btn
{
width
:
150rpx
;
margin
:
0px
;
margin-top
:
10rpx
;
}
.item
{
line-height
:
50rpx
;
color
:
#000
;
font-size
:
28rpx
;
font-weight
:
500
;
word-break
:
break-all
;
}
}
.listBottom
{
.bottomTitle
{
height
:
80rpx
;
position
:
relative
;
.desc
{
color
:
#bbb
;
font-size
:
24rpx
;
line-height
:
80rpx
;
padding-left
:
20rpx
;
}
.topIcons
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
color
:
#aaa
;
}
}
.bottomBox
{
padding
:
20rpx
;
.bottomItem
{
background
:
#f8f8f8
;
padding
:
20rpx
;
margin-bottom
:
20rpx
;
.items
{
color
:
#333
;
font-size
:
24rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
}
}
}
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
</
style
>
\ No newline at end of file
pages/recoil/recoilMaterial.vue
0 → 100644
View file @
c251dde1
<
template
>
<view>
<StickyNavBar>
<NavBar
title=
"反冲料转移"
></NavBar>
<view
class=
"btn"
>
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描单号"
@
input=
"handleInputPlnr"
></uni-easyinput>
</view>
</StickyNavBar>
<view
class=
"cardBox"
>
<text
class=
"cardBoxTip"
>
步骤一 扫描单号
</text>
<u-image
class=
'cardBoxImg'
:src=
"bgSrc"
width=
"560rpx"
height=
"400rpx"
></u-image>
<view
class=
"cardBoxTip2"
>
摄像头对准
</view>
<view
class=
"cardBoxTip3"
>
生产发料单号二维码
</view>
<view
class=
"cardBoxTip2"
>
<text
class=
"tipLeft"
>
点击扫描或
</text>
<text
class=
"tipRight"
>
点选单号
</text>
</view>
</view>
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
></BottomBtn>
</view>
</
template
>
<
script
>
import
StickyNavBar
from
'@/components/StickyNavBar/index.vue'
;
import
ContentLoadingMore
from
'@/components/ContentLoadingMore/index.vue'
;
import
BottomBtn
from
'@/components/BottomBtn/index.vue'
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
},
data
()
{
return
{
bgSrc
:
require
(
'@/static/images/qrcode.png'
),
number
:
0
,
totalNum
:
0
,
show
:
true
,
nlpla
:
''
,
wxparams
:
''
,
btnArr
:
[
{
style
:
''
,
type
:
'primary'
,
text
:
'扫描单号'
,
way
:
'scanning'
},
{
style
:
''
,
type
:
'warning'
,
text
:
'查询单号'
,
way
:
'goClick'
}
],
goodsList
:
[],
isFocus
:
false
,
isDisabled
:
false
};
},
created
()
{
// this.getPlnr('SN202400172');
},
methods
:
{
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
},
goClick
()
{
uni
.
navigateTo
({
url
:
`/pages/recoil/oddNumList`
});
},
scanning
()
{
// uni.navigateTo({
// url: `/pages/productionIssuance/productionIssuanceList?order=${JSON.stringify(this.goodsList)}`
// });
},
handleInputPlnr
(
e
)
{
this
.
isFocus
=
false
;
e
&&
this
.
getPlnr
(
e
);
},
getPlnr
(
applyNo
)
{
this
.
totalNum
=
0
;
this
.
isDisabled
=
true
;
this
.
$u
.
api
.
mesApi
.
pdaMaterialcreate
({
pageNum
:
1
,
pageSize
:
10
,
applyNo
})
.
then
((
res
)
=>
{
console
.
log
(
res
,
'-='
)
if
(
res
&&
res
.
code
-
200
===
0
)
{
if
(
res
.
rows
.
length
){
uni
.
navigateTo
({
url
:
`/pages/recoil/recoilMaterialList?order=
${
applyNo
}
`
});
}
else
{
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
''
this
.
$u
.
toast
(
'未查询到数据'
);
},
1000
);
}
// const data = res.rows
// data.forEach((ele,index) => {
// ele.sonItemCode = []
// ele.sonItemCode.push(...data)
// })
// const result = data.filter((item, index, self) => {
// return self.findIndex(t => t.itemCode === item.itemCode) === index;
// });
// let i=null,j=null
// for(i = 0; i
<
result
.
length
;
i
++
){
// for(j = 0; j
<
result
[
i
].
sonItemCode
.
length
;
j
++
){
// if(result[i].itemCode !== result[i].sonItemCode[j].itemCode){
// result[i].sonItemCode.splice(j,1)
// j--
// }
// }
// }
// console.log(result)
// setTimeout(() => {
// this.wxparams = '';
// this.isFocus = true;
// this.isDisabled = false;
// }, 1000);
// uni.navigateTo({
// url: `/pages/productionIssuance/productionIssuanceList?order=${JSON.stringify(result)}`
// });
// console.log(result)
// this.goodsList = this.goodsList.concat(res.rows);
// setTimeout(() => {
// this.wxparams = '';
// this.isFocus = true;
// this.isDisabled = false;
// }, 1000);
// console.log(this.goodsList)
// uni.navigateTo({
// url: `/pages/productionIssuance/productionIssuanceList?order=${JSON.stringify(this.goodsList)}`
// });
}
else
{
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
this
.
$u
.
toast
(
res
.
msg
);
}
this
.
loading
=
false
;
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
page
{
background
:
#f8f8f8
;
}
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
.cardBox
{
min-height
:
calc
(
100vh
-
400rpx
);
padding
:
0rpx
20rpx
;
margin-top
:
20rpx
;
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
.cardBoxTip
{
color
:
#000
;
font-size
:
28rpx
;
}
.cardBoxTip2
{
color
:
#000
;
font-size
:
28rpx
;
text-align
:
center
;
}
.cardBoxTip3
{
color
:
#3f9dcc
;
font-size
:
28rpx
;
text-align
:
center
;
}
.tipRight
{
color
:
#ff9900
;
}
</
style
>
\ No newline at end of file
pages/recoil/recoilMaterialItem.vue
0 → 100644
View file @
c251dde1
pages/recoil/recoilMaterialList.vue
0 → 100644
View file @
c251dde1
<
template
>
<view
class=
"page"
>
<StickyNavBar>
<NavBar
title=
"反冲料申请"
></NavBar>
<view
class=
"headerTitle"
>
<view
class=
""
>
<view
class=
"items"
>
反冲料申请:
{{
goodsList
[
0
]
&&
goodsList
[
0
].
applyNo
}}
</view
>
<view
class=
"items"
>
计划日期:
{{
goodsList
[
0
]
&&
goodsList
[
0
].
startTime
}}
</view
>
</view>
</view>
<view
class=
"selectSheet"
>
<u-row>
<u-col
span=
"12"
>
<u-picker
v-model=
"depotShow"
mode=
"selector"
:default-selector=
"[0]"
range-key=
"text"
:range=
"depotLists"
@
confirm=
"actionSheetCallback"
></u-picker>
<u-input
v-model=
"LGOBE"
placeholder=
"请选择仓库别"
:type=
"type"
:border=
"border"
@
click=
"depotShow = true"
/>
</u-col>
</u-row>
</view>
<view
class=
"btn"
>
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
</view>
<view
class=
"total"
>
<view
class=
"left"
>
物料明细
</view>
<view
class=
"right"
>
物料数量:
<text
class=
""
>
{{
goodsList
.
length
}}
</text>
</view>
</view>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
:list=
"goodsList"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
:key=
"index"
>
<scanningList
:item=
"item"
:list=
"item.details"
/>
</view>
</ContentLoadingMore>
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
></BottomBtn>
</view>
</
template
>
<
script
>
import
StickyNavBar
from
"@/components/StickyNavBar/index.vue"
;
import
ContentLoadingMore
from
"@/components/ContentLoadingMore/index.vue"
;
import
BottomBtn
from
"@/components/BottomBtn/index.vue"
;
import
scanningList
from
"./scanningList.vue"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
,
scanningList
,
},
data
()
{
return
{
checkedBox
:
false
,
r1
:
""
,
// totalNum: 0,
number
:
0
,
show
:
true
,
depotShow
:
false
,
depotLists
:
[],
LGOBE
:
""
,
LGORT
:
""
,
type
:
"select"
,
border
:
true
,
wxparams
:
""
,
btnArr
:
[
{
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
way
:
"goBack"
,
},
{
style
:
""
,
type
:
"primary"
,
text
:
"提交"
,
way
:
"goSubmit"
,
},
],
goodsList
:
[],
isFocus
:
true
,
isDisabled
:
false
,
OrderNum
:
""
,
list
:
[],
};
},
computed
:
{
totalNum
()
{
let
num
=
0
;
let
i
=
null
,
j
=
null
;
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
list
));
const
result
=
data
.
filter
((
item
,
index
,
self
)
=>
{
return
self
.
findIndex
((
t
)
=>
t
.
itemCode
===
item
.
itemCode
)
===
index
;
});
for
(
i
=
0
;
i
<
this
.
goodsList
.
length
;
i
++
)
{
if
(
this
.
goodsList
[
i
].
itemCode
===
result
[
i
].
itemCode
&&
result
[
i
].
vista
)
{
num
++
;
}
}
return
num
||
0
;
},
},
onLoad
(
option
)
{
if
(
option
&&
option
.
order
)
{
this
.
OrderNum
=
option
.
order
;
this
.
getOrder
(
option
.
order
);
}
},
watch
:
{},
created
()
{
this
.
getDepotLists
();
},
methods
:
{
reset
()
{
setTimeout
(()
=>
{
this
.
wxparams
=
""
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
},
getDepotLists
()
{
this
.
$u
.
api
.
sapApi
.
sapDict
({
FIELDNAME
:
"T001L"
,
})
.
then
((
res
)
=>
{
if
(
res
)
{
res
.
forEach
((
ele
)
=>
{
ele
.
text
=
ele
.
LGORT
+
"-"
+
ele
.
LGOBE
;
});
this
.
depotLists
=
res
;
}
else
{
this
.
depotLists
=
[];
}
});
},
getOrder
(
applyNo
)
{
this
.
$u
.
api
.
mesApi
.
pdaAllocationCreate
({
applyNo
,
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
-
200
===
0
)
{
this
.
goodsList
=
res
.
rows
.
reduce
((
pre
,
cur
)
=>
{
pre
.
push
({
...
cur
,
details
:
[],
});
return
pre
;
},
[]);
}
else
{
this
.
$u
.
toast
(
res
.
msg
);
}
this
.
loading
=
false
;
});
},
checkedChange
()
{
this
.
checkedBox
=
!
this
.
checkedBox
;
},
// 点击actionSheet回调
actionSheetCallback
(
index
)
{
console
.
log
(
index
,
"index"
);
this
.
LGOBE
=
this
.
depotLists
[
index
].
LGOBE
;
this
.
LGORT
=
this
.
depotLists
[
index
].
LGORT
;
},
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
},
goBack
(
time
=
0
)
{
setTimeout
(()
=>
{
uni
.
navigateBack
({
delta
:
0
,
});
},
time
);
},
goSubmit
()
{
let
arr
=
this
.
goodsList
.
reduce
((
pre
,
cur
)
=>
{
pre
.
push
(
...
cur
.
details
.
map
((
ele
,
index
)
=>
{
// ele.UMLGO = this.LGORT;
ele
.
UMLGO
=
"1131"
;
ele
.
ERFMG
=
ele
.
PACMG
;
ele
.
AUFNR
=
ele
.
workorderCode
;
ele
.
MTSNR
=
ele
.
applyNo
;
ele
.
ZEILE
=
index
+
1
;
ele
.
RSNUM
=
ele
.
requirementNumber
;
ele
.
RSPOS
=
ele
.
requirementProjectNumber
;
return
ele
;
})
);
return
pre
;
},
[]);
const
params
=
{
ZENCODE
:
"A012"
,
TYPE
:
"CG"
,
ITEM
:
arr
,
};
this
.
$u
.
api
.
sapApi
.
sapRrm
([
params
]).
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
!
Array
.
isArray
(
res
))
{
return
;
}
const
flag
=
res
.
some
((
item
)
=>
{
const
f
=
item
.
TYPE
==
"E"
;
if
(
f
)
{
this
.
$u
.
toast
(
item
.
MESSAGE
);
}
return
f
;
});
if
(
!
flag
)
{
this
.
handleMes
(
arr
,
res
[
0
].
MESSAGE_V1
);
}
});
},
handleMes
(
arr
,
num
)
{
arr
.
forEach
((
ele
)
=>
{
ele
.
batchCode
=
ele
.
CHARG
;
ele
.
quantityIssued
=
ele
.
PACMG
;
ele
.
issueCode
=
num
;
ele
.
issueType
=
ele
.
materialType
;
});
this
.
$u
.
api
.
mesApi
.
pdaSapissuecreate
(
arr
).
then
((
res
)
=>
{
this
.
loading
=
false
;
console
.
log
(
res
);
if
(
res
&&
res
.
code
==
200
)
{
this
.
$u
.
toast
(
"提交成功"
);
this
.
goBack
(
500
);
}
else
{
this
.
$u
.
toast
(
res
.
msg
);
}
});
},
handleInputPlnr
(
e
)
{
e
&&
this
.
getPlnr
(
e
);
},
getPlnr
(
plnr
)
{
this
.
isDisabled
=
true
;
this
.
isFocus
=
false
;
this
.
$u
.
api
.
sapApi
.
sapBlpl
({
plnr
,
ztype
:
"002"
,
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
MSG
[
0
].
TYPE
===
"S"
)
{
if
(
this
.
goodsList
.
some
((
item
)
=>
item
.
details
.
some
((
v
)
=>
v
.
PLNR
==
plnr
)
)
)
{
this
.
reset
();
this
.
$u
.
toast
(
"已经存在当前条码"
);
return
;
}
res
.
BLPL
.
forEach
((
ele
)
=>
{
const
item
=
this
.
goodsList
.
find
(
(
v
)
=>
v
.
sapItemCode
==
ele
.
MATNR
);
if
(
item
)
{
item
.
details
.
push
(
ele
);
}
else
{
}
});
this
.
reset
();
}
else
{
this
.
reset
();
this
.
$u
.
toast
(
res
.
MSG
[
0
].
MESSAGE
);
}
this
.
loading
=
false
;
});
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
page
{
background
:
#f8f8f8
;
}
.headerTitle
{
padding
:
20rpx
;
font-weight
:
600
;
.items
{
line-height
:
40rpx
;
}
}
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
.bottomBtn
{
position
:
sticky
;
padding
:
20rpx
;
display
:
flex
;
justify-content
:
space-between
;
background
:
#fff
;
bottom
:
0rpx
;
margin-top
:
20rpx
;
.u-btn
{
width
:
300rpx
;
}
}
.blue
{
color
:
#3f9dcc
;
}
.total
{
background
:
#fff
;
color
:
#000
;
padding
:
0rpx
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
font-size
:
32rpx
;
.line
{
margin
:
0px
10rpx
;
}
}
.cardbox
{
min-height
:
calc
(
100vh
-
480rpx
);
padding
:
0rpx
20rpx
;
margin-top
:
20rpx
;
}
.cardContent
{
border-radius
:
8px
;
background
:
#fff
;
margin-bottom
:
20rpx
;
}
.listItemTitle
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
20rpx
;
border-bottom
:
2px
solid
#f8f8f8
;
.u-btn
{
width
:
150rpx
;
margin
:
0px
;
margin-top
:
10rpx
;
}
.item
{
line-height
:
50rpx
;
color
:
#333
;
font-size
:
28rpx
;
font-weight
:
500
;
word-break
:
break-all
;
font-weight
:
600
;
}
}
.listBottom
{
.bottomTitle
{
height
:
80rpx
;
position
:
relative
;
.desc
{
color
:
#bbb
;
font-size
:
24rpx
;
line-height
:
80rpx
;
padding-left
:
20rpx
;
}
.topIcons
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
color
:
#aaa
;
}
}
.bottomBox
{
padding
:
20rpx
;
.bottomItem
{
background
:
#f8f8f8
;
padding
:
20rpx
;
margin-bottom
:
20rpx
;
.items
{
color
:
#333
;
font-size
:
24rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
}
}
}
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
.checkedCase
{
margin-top
:
10rpx
;
}
</
style
>
pages/recoil/scanningList.vue
0 → 100644
View file @
c251dde1
<
template
>
<view>
<view
class=
"listItemTitle"
>
<view>
<view
class=
"item"
>
物料编号:
{{
item
.
sapItemCode
}}
</view>
<view
class=
"item"
>
物料描述:
{{
item
.
itemName
}}
</view>
</view>
<view
class=
"right"
>
<text
class=
"blue"
>
{{
totalVistaNum
}}
</text>
<text
class=
"line"
>
/
</text>
<text
class=
""
>
{{
item
.
applyNum
}}
</text>
</view>
</view>
<view
class=
"listBottom"
>
<view
class=
"bottomTitle"
@
click=
"show = !show"
>
<view
class=
"desc"
>
卷条码明细
</view>
<view
class=
"topIcons"
>
<view
v-if=
"show"
>
<u-icon
name=
"arrow-down"
color=
"#aaa"
size=
"32"
></u-icon>
展开
</view>
<view
v-else
>
<u-icon
name=
"arrow-up"
color=
"#aaa"
size=
"32"
></u-icon>
收起
</view>
</view>
</view>
<view
v-if=
"!show"
class=
"bottomBox"
>
<view
class=
"bottomItem"
v-for=
"(ele, idx) in item.details"
:key=
"ele.workorderCode"
>
<view
class=
"items"
>
PL:
{{
ele
.
PLNR
}}
</view>
<view
class=
"items"
>
库位:
{{
ele
.
LGORT
}}
-
{{
ele
.
LGOBE
}}
</view>
<view
class=
"items"
>
仓位:
{{
ele
.
NLPLA
}}
</view>
<view
class=
"items inputItem"
>
数量:
{{
ele
.
PACMG
}}
</view>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
import
StickyNavBar
from
"@/components/StickyNavBar/index.vue"
;
import
ContentLoadingMore
from
"@/components/ContentLoadingMore/index.vue"
;
import
BottomBtn
from
"@/components/BottomBtn/index.vue"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
,
},
props
:
{
item
:
{
type
:
Object
,
default
:
function
()
{
return
{};
},
},
list
:
{
type
:
Array
,
default
:
function
()
{
return
[];
},
},
},
computed
:
{
totalVistaNum
()
{
return
this
.
list
.
reduce
((
acc
,
cur
)
=>
{
return
acc
+
cur
.
PACMG
;
},
0
);
},
},
watch
:
{
details
:
{
handler
:
function
(
val
,
oldVal
)
{
console
.
log
(
val
,
"00-------"
);
},
immediate
:
true
,
deep
:
true
,
},
},
data
()
{
return
{
show
:
true
,
};
},
created
()
{},
methods
:
{},
};
</
script
>
<
style
lang=
"scss"
scoped
>
page
{
background
:
#f8f8f8
;
}
.headerTitle
{
padding
:
20rpx
;
font-weight
:
600
;
.items
{
line-height
:
40rpx
;
}
}
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
.bottomBtn
{
position
:
sticky
;
padding
:
20rpx
;
display
:
flex
;
justify-content
:
space-between
;
background
:
#fff
;
bottom
:
0rpx
;
margin-top
:
20rpx
;
.u-btn
{
width
:
300rpx
;
}
}
.blue
{
color
:
#3f9dcc
;
}
.total
{
background
:
#fff
;
color
:
#000
;
padding
:
0rpx
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
font-size
:
32rpx
;
.line
{
margin
:
0px
10rpx
;
}
}
.listItemTitle
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
20rpx
;
border-bottom
:
2px
solid
#f8f8f8
;
.u-btn
{
width
:
150rpx
;
margin
:
0px
;
margin-top
:
10rpx
;
}
.item
{
line-height
:
50rpx
;
color
:
#333
;
font-size
:
28rpx
;
font-weight
:
500
;
word-break
:
break-all
;
font-weight
:
600
;
}
}
.listBottom
{
.bottomTitle
{
height
:
80rpx
;
position
:
relative
;
.desc
{
color
:
#bbb
;
font-size
:
24rpx
;
line-height
:
80rpx
;
padding-left
:
20rpx
;
}
.topIcons
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
color
:
#aaa
;
}
}
.bottomBox
{
padding
:
20rpx
;
.bottomItem
{
background
:
#f8f8f8
;
padding
:
20rpx
;
margin-bottom
:
20rpx
;
.items
{
color
:
#333
;
font-size
:
24rpx
;
line-height
:
40rpx
;
word-break
:
break-all
;
/
deep
/
.uni-easyinput
{
width
:
200rpx
;
}
}
.inputItem
{
display
:
inline-flex
;
// line-height: 76rpx;
}
}
}
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
.progress
{
width
:
45%
;
margin-left
:
20rpx
;
/
deep
/
.uni-progress-info
{
font-size
:
24rpx
;
}
}
/
deep
/
.uni-progress
{
line-height
:
40rpx
;
}
.proItem
{
display
:
flex
;
}
</
style
>
pages/salesOutbound/salesOutboundList.vue
View file @
c251dde1
...
@@ -85,7 +85,7 @@
...
@@ -85,7 +85,7 @@
nlpla
:
""
,
nlpla
:
""
,
wxparams
:
""
,
wxparams
:
""
,
goodsList
:
[],
goodsList
:
[],
orderItem
:
{},
orderItem
:
{},
resFlag
:
false
resFlag
:
false
};
};
},
},
...
@@ -121,9 +121,9 @@
...
@@ -121,9 +121,9 @@
},
},
methods
:
{
methods
:
{
goSubmit
()
{
goSubmit
()
{
if
(
!
this
.
goodsList
.
length
)
return
if
(
!
this
.
goodsList
.
length
)
return
if
(
this
.
resFlag
)
{
if
(
this
.
resFlag
)
{
return
this
.
$u
.
toast
(
"当前单据已经提交成功!无需继续提交!"
);
return
this
.
$u
.
toast
(
"当前单据已经提交成功!无需继续提交!"
);
}
}
const
flag
=
this
.
goodsList
.
every
((
ele
)
=>
{
const
flag
=
this
.
goodsList
.
every
((
ele
)
=>
{
return
(
return
(
...
@@ -163,7 +163,10 @@
...
@@ -163,7 +163,10 @@
});
});
if
(
!
flag
)
{
if
(
!
flag
)
{
this
.
$u
.
toast
(
"提交成功"
);
this
.
$u
.
toast
(
"提交成功"
);
this
.
resFlag
=
true
// this.resFlag = true
setTimeout
(()
=>
{
this
.
goBack
()
},
1000
)
}
}
});
});
},
},
...
@@ -293,4 +296,4 @@
...
@@ -293,4 +296,4 @@
background
:
#fff
;
background
:
#fff
;
margin-bottom
:
20rpx
;
margin-bottom
:
20rpx
;
}
}
</
style
>
</
style
>
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