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
f42471b5
Commit
f42471b5
authored
Jun 21, 2024
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
功能调整
parent
23a61475
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1580 additions
and
1000 deletions
+1580
-1000
http.api.js
common/http.api.js
+3
-1
pages.json
pages.json
+8
-0
abnormalRemove.vue
pages/abnormal/abnormalRemove.vue
+280
-0
listItem.vue
pages/abnormal/listItem.vue
+199
-0
index.vue
pages/index/index.vue
+5
-0
inventoryCounting.vue
pages/inventoryCounting/inventoryCounting.vue
+19
-4
waitInventoried.vue
pages/inventoryCounting/waitInventoried.vue
+8
-0
outsourcedMaterial.vue
pages/outsourcedMaterial/outsourcedMaterial.vue
+2
-1
outsourcedMaterialList.vue
pages/outsourcedMaterial/outsourcedMaterialList.vue
+294
-264
scanningList.vue
pages/outsourcedMaterial/scanningList.vue
+203
-198
positionTansfer.vue
pages/positionTansfer/positionTansfer.vue
+3
-3
listItem.vue
pages/purchase/listItem.vue
+5
-5
purchaseRemove.vue
pages/purchase/purchaseRemove.vue
+256
-251
purchaseStorage.vue
pages/purchaseStorage/purchaseStorage.vue
+1
-0
recoilMaterialList.vue
pages/recoil/recoilMaterialList.vue
+4
-4
salesOutboundList.vue
pages/salesOutbound/salesOutboundList.vue
+288
-267
index.js
uview-ui/libs/request/index.js
+2
-2
No files found.
common/http.api.js
View file @
f42471b5
...
...
@@ -7,7 +7,7 @@ const install = (Vue, vm) => {
// 参数配置对象
const
config
=
vm
.
vuex_config
;
// sap-client
const
sapClient
=
3
1
0
;
const
sapClient
=
3
0
0
;
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
...
...
@@ -57,6 +57,8 @@ const install = (Vue, vm) => {
sapLgpla
:
(
params
=
{},
client
=
sapClient
)
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_LGPLA?sap-language=ZH&sap-client='
+
client
,
params
),
// 装箱
sapCasePlnr
:
(
params
=
{},
client
=
sapClient
)
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/pda_case/pda_case_plnr?sap-language=ZH&sap-client='
+
client
,
params
),
// 待盘点
sapInventory
:
(
params
=
{},
client
=
sapClient
)
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/sap/bc/erp_ep/search/sch_inventory?sap-language=ZH&sap-client='
+
client
,
params
),
},
mesApi
:{
//生产领料查询单号
...
...
pages.json
View file @
f42471b5
...
...
@@ -24,6 +24,14 @@
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/abnormal/abnormalRemove"
,
"style"
:
{
"navigationBarTitleText"
:
"质量异常下架"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/positionTansfer/positionTansfer"
,
...
...
pages/abnormal/abnormalRemove.vue
0 → 100644
View file @
f42471b5
<
template
>
<view
class=
"page"
>
<StickyNavBar>
<NavBar
title=
"质量异常下架"
></NavBar>
<view
class=
"btn"
>
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫描库位"
@
change=
"handleInputNlpla"
></uni-easyinput>
<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=
"blue"
>
{{
chargaArr
.
length
}}
</text>
<text
class=
"line"
>
|
</text>
总数量:
<text
class=
"blue"
>
{{
totalNum
}}
</text>
</view>
</view>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
:list=
"chargaArr"
>
<view
class=
"cardContent"
v-for=
"(item, index) in chargaArr"
>
<listItem
:item=
"item"
:goodsList=
"goodsList"
:nlpla=
"nlpla"
@
deleGonds=
"deleGonds"
/>
</view>
</ContentLoadingMore>
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
></BottomBtn>
</view>
</
template
>
<
script
>
import
listItem
from
"./listItem.vue"
;
import
StickyNavBar
from
"@/components/StickyNavBar/index.vue"
;
import
ContentLoadingMore
from
"@/components/ContentLoadingMore/index.vue"
;
import
BottomBtn
from
"@/components/BottomBtn/index.vue"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
,
listItem
,
},
data
()
{
return
{
number
:
0
,
totalNum
:
0
,
show
:
true
,
nlpla
:
""
,
wxparams
:
""
,
btnArr
:
[
{
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
way
:
"goBack"
,
},
{
style
:
""
,
type
:
"primary"
,
text
:
"提交"
,
way
:
"goSubmit"
,
},
],
goodsList
:
[],
isFocus
:
false
,
isDisabled
:
false
,
chargaArr
:
[],
};
},
created
()
{
// this.getPlnr('100001240428000002|00100000000000014.000|10002442800002');
// this.getPlnr('100001240428000002|00100000000000019.500|10002442800001');
},
methods
:
{
deleGonds
(
detail
)
{
this
.
goodsList
.
forEach
((
ele
,
idx
)
=>
{
if
(
detail
.
PLNR
===
ele
.
PLNR
)
{
this
.
goodsList
.
splice
(
idx
,
1
);
}
});
this
.
totalNum
=
0
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
PACMG
-
0
;
ele
.
cardNum
=
0
;
});
this
.
handleData
();
},
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
},
goBack
()
{
uni
.
navigateBack
();
},
goSubmit
()
{
if
(
this
.
goodsList
.
length
===
0
)
{
return
;
}
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
goodsList
));
data
.
forEach
((
ele
)
=>
{
ele
.
ERFMG
=
ele
.
PACMG
;
});
this
.
$u
.
api
.
sapApi
.
sapRrm
([
{
BLDAT
:
parseTime
(
new
Date
(),
"{y}{m}{d}"
),
BUDAT
:
parseTime
(
new
Date
(),
"{y}{m}{d}"
),
ZENCODE
:
"A015"
,
TYPE
:
"CG"
,
ITEM
:
data
,
},
])
.
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
!
Array
.
isArray
(
res
))
{
return
;
}
if
(
res
&&
res
.
every
((
item
)
=>
item
.
TYPE
===
"S"
))
{
this
.
goodsList
=
[];
this
.
chargaArr
=
[];
this
.
totalNum
=
0
;
this
.
nlpla
=
""
;
this
.
wxparams
=
""
;
this
.
$u
.
toast
(
"提交成功"
);
}
const
foundObject
=
res
.
find
((
item
)
=>
item
.
TYPE
===
"E"
);
if
(
foundObject
&&
foundObject
.
MESSAGE
)
{
this
.
$u
.
toast
(
foundObject
.
MESSAGE
);
}
});
},
handleInputPlnr
(
e
)
{
this
.
isFocus
=
false
;
if
(
e
)
{
// 是否有重复的PLBL
const
flag
=
this
.
goodsList
.
some
((
item
)
=>
item
.
PLNR
==
e
);
if
(
flag
)
{
this
.
$u
.
toast
(
"已经存在当前条码"
);
return
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
""
;
},
1000
);
}
this
.
getPlnr
(
e
);
}
},
handleInputNlpla
(
e
)
{},
getPlnr
(
plnr
)
{
this
.
isDisabled
=
true
;
if
(
!
this
.
nlpla
)
{
this
.
$u
.
toast
(
"请先扫描仓位"
);
setTimeout
(()
=>
{
this
.
wxparams
=
""
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
return
;
}
this
.
$u
.
api
.
sapApi
.
sapBlpl
({
plnr
,
ztype
:
"004"
,
})
.
then
((
res
)
=>
{
if
(
res
.
MSG
.
some
((
item
)
=>
{
if
(
item
.
TYPE
==
"E"
)
{
this
.
$u
.
toast
(
item
.
MESSAGE
);
return
true
;
}
return
false
;
})
)
{
return
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
""
;
},
1000
);
}
this
.
goodsList
=
this
.
goodsList
.
concat
(
res
.
BLPL
);
this
.
totalNum
=
0
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
PACMG
-
0
;
ele
.
cardNum
=
0
;
});
this
.
handleData
();
setTimeout
(()
=>
{
this
.
wxparams
=
""
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
this
.
loading
=
false
;
});
},
handleData
()
{
this
.
chargaArr
=
this
.
goodsList
.
filter
((
item
,
index
,
self
)
=>
{
return
self
.
findIndex
((
t
)
=>
t
.
CHARG
===
item
.
CHARG
)
===
index
;
});
this
.
chargaArr
.
forEach
((
ele
,
idx
)
=>
{
this
.
goodsList
.
forEach
((
item
)
=>
{
if
(
ele
.
CHARG
===
item
.
CHARG
)
{
ele
.
cardNum
+=
item
.
PACMG
-
0
;
this
.
$set
(
this
.
chargaArr
,
idx
,
{
...
ele
});
}
});
});
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.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
;
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
</
style
>
\ No newline at end of file
pages/abnormal/listItem.vue
0 → 100644
View file @
f42471b5
<
template
>
<view>
<view
class=
"listItemTitle"
>
<view>
<view
class=
"item"
>
异常批次:
{{
item
.
CHARG
}}
</view>
<view
class=
"item"
>
物料编号:
{{
item
.
MATNR
}}
</view>
<view
class=
"item"
>
物料描述:
{{
item
.
MAKTX
}}
</view>
<view
class=
"item"
>
异常数量:
{{
item
.
cardNum
}}
</view>
</view>
</view>
<view
class=
"listBottom"
>
<view
class=
"bottomTitle"
@
tap=
"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 goodsList"
v-if=
"ele.CHARG === item.CHARG"
>
<view
class=
"items plNum"
>
{{
ele
.
PLNR
}}
</view>
<view
class=
"item"
>
异常库位:
{{
ele
.
NLPLA
}}
</view>
<view
class=
"items"
>
数量:
{{
ele
.
PACMG
}}
</view>
<view
class=
"boxBtn"
>
<!--
<view
class=
"items"
>
生产日期:
{{
ele
.
BLDAT
}}
</view>
-->
<u-button
class=
"botBtn"
size=
"mini"
type=
"primary"
plain
@
click=
"deleGonds()"
>
<u-icon
name=
"trash"
size=
"28"
></u-icon>
删除
</u-button>
</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
{};
}
},
goodsList
:
{
type
:
Array
,
default
:
function
()
{
return
[];
}
},
nlpla
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
number
:
0
,
totalNum
:
0
,
show
:
true
,
wxparams
:
''
,
isFocus
:
false
,
isDisabled
:
false
,
chargaArr
:
[]
};
},
created
()
{
},
methods
:
{
deleGonds
()
{
this
.
$emit
(
'deleGonds'
,
this
.
item
)
},
}
};
</
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
;
}
}
.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
;
}
.plNum
{
height
:
80rpx
;
word-break
:
break-all
;
}
}
}
}
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
.boxBtn
{
display
:
flex
;
justify-content
:
space-between
;
/
deep
/
.u-btn
{
margin-right
:
0
!
important
;
}
}
.botBtn
{
}
</
style
>
\ No newline at end of file
pages/index/index.vue
View file @
f42471b5
...
...
@@ -39,6 +39,11 @@ export default {
text
:
'采购下架'
,
url
:
'/pages/purchase/purchaseRemove'
},
{
src
:
require
(
'@/static/images/cgrk.png'
),
text
:
'质量异常'
,
url
:
'/pages/abnormal/abnormalRemove'
},
{
src
:
require
(
'@/static/images/fclyk.png'
),
text
:
'仓位调拨'
,
...
...
pages/inventoryCounting/inventoryCounting.vue
View file @
f42471b5
...
...
@@ -2,12 +2,20 @@
<view
class=
"lists"
>
<StickyNavBar>
<NavBar
title=
"库存盘点"
></NavBar>
<view
class=
"selectSheet"
>
<u-tabs
:list=
"list"
:is-scroll=
"false"
:current=
"current"
@
change=
"changeTab"
></u-tabs>
<view
class=
"btn"
>
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫盘点凭证码"
@
change=
"handleInputNlpla"
></uni-easyinput>
<!--
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
-->
</view>
</StickyNavBar>
<waitInventoried
v-if=
"current === 0
"
/>
<
inventoryForm
v-else
/
>
<waitInventoried
ref=
"waitInventoriedRef
"
/>
<
!--
<inventoryForm
v-else
/>
--
>
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
v-if=
"current === 0"
></BottomBtn>
</view>
</
template
>
...
...
@@ -33,6 +41,10 @@ export default {
type
:
'select'
,
show
:
false
,
border
:
true
,
nlpla
:
''
,
isDisabled
:
false
,
isFocus
:
false
,
wxparams
:
''
,
list
:
[
{
name
:
'待盘点'
...
...
@@ -62,6 +74,9 @@ export default {
console
.
log
(
'getBtnHandle'
,
row
);
this
[
row
.
way
]();
},
handleInputNlpla
(
e
)
{
this
.
$refs
.
waitInventoriedRef
.
getList
(
e
);
},
goBack
()
{
console
.
log
(
'返回了'
);
uni
.
navigateBack
();
...
...
pages/inventoryCounting/waitInventoried.vue
View file @
f42471b5
...
...
@@ -53,7 +53,15 @@ export default {
};
},
computed
:
{},
created
()
{
this
.
getList
();
},
methods
:
{
getList
()
{
this
.
$u
.
api
.
sapApi
.
sapInventory
({
GJAHR
:
'2024'
}).
then
(
res
=>
{
console
.
log
(
res
);
})
},
handleClickWork
()
{
uni
.
navigateTo
({
url
:
`/pages/inventoryCounting/inventoryList`
...
...
pages/outsourcedMaterial/outsourcedMaterial.vue
View file @
f42471b5
...
...
@@ -112,8 +112,9 @@ export default {
this
.
$u
.
api
.
sapApi
.
sapSchDn
({
VBELN
})
}
,
300
)
.
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
&&
res
.
BKDT
.
length
)
{
this
.
goodsList
=
res
.
BKDT
uni
.
navigateTo
({
...
...
pages/outsourcedMaterial/outsourcedMaterialList.vue
View file @
f42471b5
...
...
@@ -13,8 +13,14 @@
<view
class=
""
>
<view
class=
"btn"
>
<!--
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫描库位"
@
change=
"handleInputNlpla"
></uni-easyinput>
-->
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
</view>
<view
class=
"total"
>
<view
class=
"left"
>
明细
</view>
...
...
@@ -29,7 +35,11 @@
</StickyNavBar>
<ContentLoadingMore
class=
"contentMore"
:list=
"goodsList"
>
<view
class=
"cardbox"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
:key=
"item.PLNR"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
:key=
"item.PLNR"
>
<scanningList
:item=
"item"
:list=
"item.ZPLDT"
/>
</view>
</view>
...
...
@@ -39,14 +49,12 @@
</
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"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
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"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
...
...
@@ -60,7 +68,8 @@
border
:
true
,
current
:
0
,
status
:
"loadmore"
,
btnArr
:
[{
btnArr
:
[
{
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
...
...
@@ -79,7 +88,7 @@
wxparams
:
""
,
goodsList
:
[],
orderItem
:
{},
resFlag
:
false
resFlag
:
false
,
};
},
created
()
{
...
...
@@ -87,10 +96,12 @@
},
onLoad
(
option
)
{
if
(
option
&&
option
.
order
)
{
console
.
log
(
'0-------'
,
option
.
order
);
const
arr
=
[...
JSON
.
parse
(
option
.
order
)];
arr
.
forEach
((
ele
)
=>
{
this
.
goodsList
.
push
(
...
ele
.
ZSIZE
.
map
((
item
)
=>
{
...(
ele
.
ZSIZE
.
length
?
ele
.
ZSIZE
.
map
((
item
)
=>
{
return
{
KDAUF
:
ele
.
KDAUF
,
KDPOS
:
ele
.
KDPOS
,
...
...
@@ -100,10 +111,18 @@
...
item
,
MATNR
:
ele
.
MATNR
,
MAKTX
:
ele
.
MAKTX
,
ZPLDT
:
[]
};
})
:
[
ele
].
map
(
v
=>
{
v
.
ZSIZE
=
''
v
.
ZPLDT
=
[]
return
v
}))
);
});
console
.
log
(
this
.
goodsList
);
}
},
computed
:
{
...
...
@@ -114,13 +133,13 @@
},
methods
:
{
goSubmit
()
{
if
(
!
this
.
goodsList
.
length
)
return
if
(
!
this
.
goodsList
.
length
)
return
;
if
(
this
.
resFlag
)
{
return
this
.
$u
.
toast
(
"当前单据已经提交成功!无需继续提交!"
);
}
const
flag
=
this
.
goodsList
.
every
((
ele
)
=>
{
return
(
ele
.
ZINSNUM
==
ele
?.
ZPLDT
?.
reduce
((
acc
,
cur
)
=>
acc
+
cur
.
PACMG
,
0
)
(
ele
.
ZINSNUM
||
ele
.
LFIMG
)
==
ele
?.
ZPLDT
?.
reduce
((
acc
,
cur
)
=>
acc
+
cur
.
PACMG
,
0
)
);
});
...
...
@@ -136,13 +155,17 @@
if
(
item
)
{
item
.
ZPLDT
.
push
(...
cur
.
ZPLDT
);
}
else
{
acc
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
cur
)));
const
value
=
JSON
.
parse
(
JSON
.
stringify
(
cur
))
acc
.
push
(
value
);
}
}
return
acc
;
},
[]);
console
.
log
(
params
,
'-----'
)
// return
this
.
$u
.
api
.
sapApi
.
sapPickingDn
(
params
).
then
((
res
)
=>
{
this
.
$u
.
api
.
sapApi
.
sapPickingDn
(
params
,
300
).
then
((
res
)
=>
{
console
.
log
(
res
,
'-----'
);
this
.
loading
=
false
;
if
(
!
Array
.
isArray
(
res
))
{
return
;
...
...
@@ -158,8 +181,8 @@
this
.
$u
.
toast
(
"提交成功"
);
// this.resFlag = true
setTimeout
(()
=>
{
this
.
goBack
()
},
1000
)
this
.
goBack
();
},
1000
);
}
});
},
...
...
@@ -168,14 +191,19 @@
ZCODE
:
plnr
.
includes
(
"BL"
)
?
plnr
:
""
,
plnr
:
plnr
.
includes
(
"BL"
)
?
""
:
plnr
,
};
this
.
$u
.
api
.
sapApi
.
sapBlpl
(
params
).
then
((
res
)
=>
{
this
.
$u
.
api
.
sapApi
.
sapBlpl
(
params
,
300
).
then
((
res
)
=>
{
if
(
res
&&
res
.
MSG
[
0
].
TYPE
===
"S"
)
{
// 循环BLPL合并相同的物料号和size
res
.
BLPL
.
forEach
((
ele
)
=>
{
ele
.
TOMNG
=
ele
.
PACMG
;
const
item
=
this
.
goodsList
.
find
(
(
v
)
=>
v
.
ZSIZE
==
ele
.
ZSIZE
&&
ele
.
MATNR
==
v
.
MATNR
);
const
item
=
this
.
goodsList
.
find
((
v
)
=>
{
if
(
ele
.
MATNR
==
v
.
MATNR
&&
v
.
ZSIZE
==
ele
.
ZSIZE
)
{
return
true
}
else
if
(
ele
.
MATNR
==
v
.
MATNR
)
{
return
true
}
return
false
});
if
(
item
)
{
if
(
Reflect
.
has
(
item
,
"ZPLDT"
))
{
item
.
ZPLDT
.
push
(
ele
);
...
...
@@ -184,6 +212,7 @@
}
}
});
console
.
log
(
this
.
goodsList
,
'---=====--'
)
}
else
{
this
.
$u
.
toast
(
res
.
MSG
[
0
].
MESSAGE
);
}
...
...
@@ -216,54 +245,55 @@
e
&&
this
.
getPlnr
(
e
);
},
},
};
};
</
script
>
<
style
lang=
"scss"
>
.selectSheet
{
.selectSheet
{
border-bottom
:
1px
solid
#ccc
;
}
}
/
deep
/
.u-sticky
{
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
}
.tabTwo
{
.tabTwo
{
/
deep
/
.u-sticky-wrap
{
height
:
330rpx
!
important
;
}
}
}
.listTitle
{}
.listTitle
{
}
.contentMore
{
.contentMore
{
margin
:
20rpx
;
}
}
page
{
page
{
background
:
#f8f8f8
;
}
}
.headerTitle
{
.headerTitle
{
padding
:
20rpx
;
font-weight
:
600
;
.items
{
line-height
:
40rpx
;
}
}
}
.btn
{
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
}
.total
{
.total
{
background
:
#fff
;
color
:
#000
;
padding
:
0rpx
40rpx
;
...
...
@@ -274,17 +304,17 @@
.line
{
margin
:
0px
10rpx
;
}
}
}
.cardbox
{
.cardbox
{
min-height
:
calc
(
100vh
-
410rpx
);
padding
:
0rpx
20rpx
;
margin-top
:
20rpx
;
}
}
.cardContent
{
.cardContent
{
border-radius
:
8px
;
background
:
#fff
;
margin-bottom
:
20rpx
;
}
}
</
style
>
pages/outsourcedMaterial/scanningList.vue
View file @
f42471b5
...
...
@@ -5,8 +5,10 @@
<view
class=
"item"
>
行号:
{{
item
.
POSNR
}}
</view>
<view
class=
"item"
>
物料编号:
{{
item
.
MATNR
}}
</view>
<view
class=
"item"
>
物料描述:
{{
item
.
MAKTX
}}
</view>
<view
class=
"item"
>
尺码:
{{
item
.
ZSIZE
}}
</view>
<view
class=
"item"
>
数量:
{{
handleNum
()
}}
/
{{
item
.
ZINSNUM
}}
</view>
<view
class=
"item"
v-if=
"item.ZSIZE"
>
尺码:
{{
item
.
ZSIZE
}}
</view>
<view
class=
"item"
>
数量:
{{
handleNum
()
}}
/
{{
item
.
ZINSNUM
||
item
.
LFIMG
||
0
}}
</view
>
</view>
<view
class=
"right"
>
<!--
<checkbox-group
class=
"checkedBox"
>
...
...
@@ -32,20 +34,18 @@
</view>
</view>
<view
v-if=
"!show"
class=
"bottomBox"
>
<view
class=
"bottomItem"
v-for=
"(ele, idx) in list"
:key=
"ele.PLNR+idx"
v-if=
"ele.ZSIZE === item.ZSIZE && ele.MATNR === item.MATNR && ele.PLNR"
>
<view
class=
"bottomItem"
v-for=
"(ele, idx) in list"
:key=
"ele.PLNR + idx"
>
<view
class=
"items"
>
PL号:
{{
ele
.
PLNR
}}
</view>
<view
class=
"items"
>
物料批号:
{{
ele
.
CHARG
}}
</view>
<view
class=
"items"
>
库位:
{{
ele
.
LGORT
}}
-
{{
ele
.
LGOBE
}}
</view>
<view
class=
"items"
>
仓位:
{{
ele
.
NLPLA
}}
</view>
<!--
<view
class=
"items"
>
{{
ele
.
MATNR
}}
</view>
-->
<view
class=
"items inputItem"
>
<!--
<u-row
gutter=
"8"
>
-->
数量:
{{
ele
.
PACMG
}}
<!--
<uni-easyinput
v-model=
"ele.CLABS"
></uni-easyinput>
-->
<!-- /
{{
ele
.
LFIMG
}}
-->
<!--
</u-row>
-->
{{
ele
.
PACMG
}}
</view>
</view>
</view>
...
...
@@ -55,49 +55,49 @@
</
template
>
<
script
>
import
StickyNavBar
from
'@/components/StickyNavBar/index.vue'
;
import
ContentLoadingMore
from
'@/components/ContentLoadingMore/index.vue'
;
import
BottomBtn
from
'@/components/BottomBtn/index.vue'
;
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
BottomBtn
,
},
props
:
{
item
:
{
type
:
Object
,
default
:
function
()
{
return
{};
}
},
},
list
:
{
type
:
Array
,
default
:
function
()
{
return
[];
}
}
},
},
},
data
()
{
return
{
r1
:
''
,
r1
:
""
,
number
:
0
,
totalNum
:
0
,
nlpla
:
''
,
wxparams
:
''
,
nlpla
:
""
,
wxparams
:
""
,
btnArr
:
[
{
style
:
''
,
type
:
'warning'
,
text
:
'返回'
,
way
:
'goBack'
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
way
:
"goBack"
,
},
{
style
:
''
,
type
:
'primary'
,
text
:
'提交'
,
way
:
'goSubmit'
}
style
:
""
,
type
:
"primary"
,
text
:
"提交"
,
way
:
"goSubmit"
,
},
],
isFocus
:
false
,
show
:
true
,
...
...
@@ -105,16 +105,20 @@ export default {
},
methods
:
{
handleNum
(){
let
num
=
0
this
.
list
.
forEach
(
ele
=>
{
if
(
ele
.
ZSIZE
===
this
.
item
.
ZSIZE
&&
ele
.
MATNR
===
this
.
item
.
MATNR
&&
ele
.
PLNR
){
num
+=
(
ele
.
PACMG
-
0
)
handleNum
()
{
let
num
=
0
;
this
.
list
.
forEach
((
ele
)
=>
{
if
(
ele
.
ZSIZE
===
this
.
item
.
ZSIZE
&&
ele
.
MATNR
===
this
.
item
.
MATNR
&&
ele
.
PLNR
)
{
num
+=
ele
.
PACMG
-
0
;
}
});
return
num
}
}
return
num
;
},
},
};
</
script
>
...
...
@@ -209,11 +213,12 @@ page {
color
:
#333
;
font-size
:
24rpx
;
line-height
:
40rpx
;
/
deep
/
.uni-easyinput
{
word-break
:
break-all
;
/
deep
/
.uni-easyinput
{
width
:
200rpx
;
}
}
.inputItem
{
.inputItem
{
display
:
inline-flex
;
// line-height: 76rpx;
}
...
...
@@ -224,10 +229,10 @@ page {
top
:
0
!
important
;
background
:
#fff
;
}
.checkedBox
{
.checkedBox
{
text-align
:
right
;
}
/
deep
/
.uni-checkbox-input-disabled
:before
{
/
deep
/
.uni-checkbox-input-disabled
:before
{
color
:
#007aff
!
important
;
}
</
style
>
pages/positionTansfer/positionTansfer.vue
View file @
f42471b5
...
...
@@ -92,7 +92,7 @@ export default {
this
.
$u
.
api
.
sapApi
.
sapDict
({
FIELDNAME
:
'T001L'
})
}
,
300
)
.
then
((
res
)
=>
{
if
(
res
)
{
res
.
forEach
((
ele
)
=>
{
...
...
@@ -135,7 +135,7 @@ export default {
}
this
.
$u
.
api
.
sapApi
.
sapRrm
([
params
])
.
sapRrm
([
params
]
,
300
)
.
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
!
Array
.
isArray
(
res
)){
...
...
@@ -172,7 +172,7 @@ export default {
.
sapPlnr
({
plnr
,
zType
:
'002'
})
}
,
300
)
.
then
((
res
)
=>
{
if
(
res
&&
res
.
RESULT
.
TYPE
===
'S'
)
{
console
.
log
(
'res.DATA'
,
res
.
DATA
);
...
...
pages/purchase/listItem.vue
View file @
f42471b5
...
...
@@ -2,10 +2,10 @@
<view>
<view
class=
"listItemTitle"
>
<view>
<view
class=
"item"
>
入库
批次:
{{
item
.
CHARG
}}
</view>
<view
class=
"item"
>
退货
批次:
{{
item
.
CHARG
}}
</view>
<view
class=
"item"
>
物料编号:
{{
item
.
MATNR
}}
</view>
<view
class=
"item"
>
物料描述:
{{
item
.
MAKTX
}}
</view>
<view
class=
"item"
>
入库
数量:
{{
item
.
cardNum
}}
</view>
<view
class=
"item"
>
退货
数量:
{{
item
.
cardNum
}}
</view>
</view>
</view>
<view
class=
"listBottom"
>
...
...
@@ -25,10 +25,10 @@
<view
v-if=
"!show"
class=
"bottomBox"
>
<view
class=
"bottomItem"
v-for=
"(ele, idx) in goodsList"
v-if=
"ele.CHARG === item.CHARG"
>
<view
class=
"items plNum"
>
{{
ele
.
PLNR
}}
</view>
<view
class=
"item"
>
入库
库位:
{{
ele
.
NLPLA
}}
</view>
<view
class=
"items"
>
数量:
{{
ele
.
TOMN
G
}}
</view>
<view
class=
"item"
>
退货
库位:
{{
ele
.
NLPLA
}}
</view>
<view
class=
"items"
>
数量:
{{
ele
.
PACM
G
}}
</view>
<view
class=
"boxBtn"
>
<
view
class=
"items"
>
生产日期:
{{
ele
.
BLDAT
}}
</view
>
<
!--
<view
class=
"items"
>
生产日期:
{{
ele
.
BLDAT
}}
</view>
--
>
<u-button
class=
"botBtn"
size=
"mini"
type=
"primary"
plain
@
click=
"deleGonds()"
>
<u-icon
name=
"trash"
size=
"28"
></u-icon>
删除
...
...
pages/purchase/purchaseRemove.vue
View file @
f42471b5
...
...
@@ -3,7 +3,14 @@
<StickyNavBar>
<NavBar
title=
"采购下架扫描"
></NavBar>
<view
class=
"btn"
>
<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
prefixIcon=
"search"
:disabled=
"isDisabled"
...
...
@@ -14,7 +21,7 @@
></uni-easyinput>
</view>
<view
class=
"total"
>
<view
class=
"left"
>
入库
明细
</view>
<view
class=
"left"
>
退货
明细
</view>
<view
class=
"right"
>
批次数:
<text
class=
"blue"
>
{{
chargaArr
.
length
}}
</text>
...
...
@@ -24,9 +31,14 @@
</view>
</view>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
:list=
'chargaArr'
>
<ContentLoadingMore
class=
"cardbox"
:list=
"chargaArr"
>
<view
class=
"cardContent"
v-for=
"(item, index) in chargaArr"
>
<listItem
:item=
"item"
:goodsList=
"goodsList"
:nlpla=
"nlpla"
@
deleGonds=
"deleGonds"
/>
<listItem
:item=
"item"
:goodsList=
"goodsList"
:nlpla=
"nlpla"
@
deleGonds=
"deleGonds"
/>
</view>
</ContentLoadingMore>
<BottomBtn
:btnArr=
"btnArr"
@
getBtnHandle=
"getBtnHandle"
></BottomBtn>
...
...
@@ -34,43 +46,43 @@
</
template
>
<
script
>
import
listItem
from
"./listItem.vue"
import
StickyNavBar
from
'@/components/StickyNavBar/index.vue'
;
import
ContentLoadingMore
from
'@/components/ContentLoadingMore/index.vue'
;
import
BottomBtn
from
'@/components/BottomBtn/index.vue'
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
import
listItem
from
"./listItem.vue"
;
import
StickyNavBar
from
"@/components/StickyNavBar/index.vue"
;
import
ContentLoadingMore
from
"@/components/ContentLoadingMore/index.vue"
;
import
BottomBtn
from
"@/components/BottomBtn/index.vue"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
BottomBtn
,
listItem
listItem
,
},
data
()
{
return
{
number
:
0
,
totalNum
:
0
,
show
:
true
,
nlpla
:
''
,
wxparams
:
''
,
nlpla
:
""
,
wxparams
:
""
,
btnArr
:
[
{
style
:
''
,
type
:
'warning'
,
text
:
'返回'
,
way
:
'goBack'
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
way
:
"goBack"
,
},
{
style
:
''
,
type
:
'primary'
,
text
:
'提交'
,
way
:
'goSubmit'
}
style
:
""
,
type
:
"primary"
,
text
:
"提交"
,
way
:
"goSubmit"
,
},
],
goodsList
:
[],
isFocus
:
false
,
isDisabled
:
false
,
chargaArr
:
[]
chargaArr
:
[],
};
},
created
()
{
...
...
@@ -79,17 +91,17 @@ export default {
},
methods
:
{
deleGonds
(
detail
)
{
this
.
goodsList
.
forEach
((
ele
,
idx
)
=>
{
if
(
detail
.
PLNR
===
ele
.
PLNR
)
{
this
.
goodsList
.
forEach
((
ele
,
idx
)
=>
{
if
(
detail
.
PLNR
===
ele
.
PLNR
)
{
this
.
goodsList
.
splice
(
idx
,
1
);
}
});
this
.
totalNum
=
0
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
TOMNG
-
0
ele
.
cardNum
=
0
this
.
totalNum
+=
ele
.
PACMG
-
0
;
ele
.
cardNum
=
0
;
});
this
.
handleData
()
this
.
handleData
();
},
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
...
...
@@ -101,128 +113,122 @@ export default {
if
(
this
.
goodsList
.
length
===
0
)
{
return
;
}
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
goodsList
))
data
.
forEach
(
ele
=>
{
ele
.
ERFMG
=
ele
.
TOMNG
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
goodsList
));
data
.
forEach
((
ele
)
=>
{
ele
.
ERFMG
=
ele
.
PACMG
;
});
this
.
$u
.
api
.
sapApi
.
sapRrm
([
{
BLDAT
:
parseTime
(
new
Date
(),
'{y}{m}{d}'
),
BUDAT
:
parseTime
(
new
Date
(),
'{y}{m}{d}'
),
ZENCODE
:
'A014'
,
TYPE
:
'CG'
,
ITEM
:
data
}
BLDAT
:
parseTime
(
new
Date
(),
"{y}{m}{d}"
),
BUDAT
:
parseTime
(
new
Date
(),
"{y}{m}{d}"
),
ZENCODE
:
"A015"
,
TYPE
:
"CG"
,
ITEM
:
data
,
},
])
.
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
!
Array
.
isArray
(
res
))
{
return
if
(
!
Array
.
isArray
(
res
))
{
return
;
}
if
(
res
&&
res
.
every
((
item
)
=>
item
.
TYPE
===
'S'
))
{
if
(
res
&&
res
.
every
((
item
)
=>
item
.
TYPE
===
"S"
))
{
this
.
goodsList
=
[];
this
.
chargaArr
=
[]
this
.
chargaArr
=
[];
this
.
totalNum
=
0
;
this
.
nlpla
=
''
;
this
.
wxparams
=
''
;
this
.
$u
.
toast
(
'提交成功'
);
this
.
nlpla
=
""
;
this
.
wxparams
=
""
;
this
.
$u
.
toast
(
"提交成功"
);
}
const
foundObject
=
res
.
find
(
item
=>
item
.
TYPE
===
'E'
);
if
(
foundObject
&&
foundObject
.
MESSAGE
)
{
const
foundObject
=
res
.
find
((
item
)
=>
item
.
TYPE
===
"E"
);
if
(
foundObject
&&
foundObject
.
MESSAGE
)
{
this
.
$u
.
toast
(
foundObject
.
MESSAGE
);
}
});
},
handleInputPlnr
(
e
)
{
this
.
isFocus
=
false
;
// e&& e.length > 79 && this.getPlnr(e);
e
&&
this
.
getPlnr
(
e
);
},
handleInputNlpla
(
e
)
{
if
(
e
)
{
// this.nlpla = e;
// this.goodsList.forEach((ele) => {
// this.totalNum += ele.TOMNG-0;
// ele.NLPLA = ele.NLPLA || this.nlpla;
// });
// 是否有重复的PLBL
const
flag
=
this
.
goodsList
.
some
((
item
)
=>
item
.
PLNR
==
e
);
if
(
flag
)
{
this
.
$u
.
toast
(
"已经存在当前条码"
);
return
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
""
;
},
1000
);
}
this
.
getPlnr
(
e
);
}
},
handleInputNlpla
(
e
)
{},
getPlnr
(
plnr
)
{
this
.
isDisabled
=
true
;
if
(
!
this
.
nlpla
)
{
this
.
$u
.
toast
(
'请先扫描仓位'
);
if
(
!
this
.
nlpla
)
{
this
.
$u
.
toast
(
"请先扫描仓位"
);
setTimeout
(()
=>
{
this
.
wxparams
=
''
;
this
.
wxparams
=
""
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
return
return
;
}
this
.
$u
.
api
.
sapApi
.
sapPlnr
({
.
sapBlpl
({
plnr
,
zType
:
'001'
ztype
:
"004"
,
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
RESULT
.
TYPE
===
'S'
)
{
if
(
this
.
goodsList
.
some
((
item
)
=>
item
.
PLNR
===
plnr
))
{
setTimeout
(()
=>
{
if
(
res
.
MSG
.
some
((
item
)
=>
{
if
(
item
.
TYPE
==
"E"
)
{
this
.
$u
.
toast
(
item
.
MESSAGE
);
return
true
;
}
return
false
;
})
)
{
return
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
''
;
this
.
wxparams
=
""
;
},
1000
);
this
.
$u
.
toast
(
'已经存在当前条码'
);
return
}
const
arr
=
[
{
...
res
.
DATA
[
0
],
NLPLA
:
this
.
nlpla
}
]
this
.
goodsList
=
this
.
goodsList
.
concat
(
arr
);
this
.
goodsList
=
this
.
goodsList
.
concat
(
res
.
BLPL
);
this
.
totalNum
=
0
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
TOMNG
-
0
ele
.
cardNum
=
0
this
.
totalNum
+=
ele
.
PACMG
-
0
;
ele
.
cardNum
=
0
;
});
this
.
handleData
()
setTimeout
(()
=>
{
this
.
wxparams
=
''
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
}
else
{
this
.
handleData
();
setTimeout
(()
=>
{
this
.
wxparams
=
""
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
''
;
},
1000
);
this
.
$u
.
toast
(
res
.
RESULT
.
MESSAGE
);
}
this
.
loading
=
false
;
});
},
handleData
()
{
handleData
()
{
this
.
chargaArr
=
this
.
goodsList
.
filter
((
item
,
index
,
self
)
=>
{
return
self
.
findIndex
(
t
=>
t
.
CHARG
===
item
.
CHARG
)
===
index
;
return
self
.
findIndex
((
t
)
=>
t
.
CHARG
===
item
.
CHARG
)
===
index
;
});
this
.
chargaArr
.
forEach
((
ele
,
idx
)
=>
{
this
.
goodsList
.
forEach
(
item
=>
{
if
(
ele
.
CHARG
===
item
.
CHARG
)
{
ele
.
cardNum
+=
(
item
.
TOMNG
-
0
)
this
.
$set
(
this
.
chargaArr
,
idx
,{...
ele
})
this
.
chargaArr
.
forEach
((
ele
,
idx
)
=>
{
this
.
goodsList
.
forEach
((
item
)
=>
{
if
(
ele
.
CHARG
===
item
.
CHARG
)
{
ele
.
cardNum
+=
item
.
PACMG
-
0
;
this
.
$set
(
this
.
chargaArr
,
idx
,
{
...
ele
});
}
});
});
},
}
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.btn
{
padding
:
20rpx
;
background
:
#fff
;
...
...
@@ -270,5 +276,4 @@ export default {
top
:
0
!
important
;
background
:
#fff
;
}
</
style
>
pages/purchaseStorage/purchaseStorage.vue
View file @
f42471b5
...
...
@@ -104,6 +104,7 @@ export default {
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
goodsList
))
data
.
forEach
(
ele
=>
{
ele
.
ERFMG
=
ele
.
TOMNG
ele
.
ERFME
=
ele
.
MEINS
});
this
.
$u
.
api
.
sapApi
.
sapRrm
([
...
...
pages/recoil/recoilMaterialList.vue
View file @
f42471b5
<
template
>
<view
class=
"page"
>
<StickyNavBar>
<NavBar
title=
"反冲料
申请
"
></NavBar>
<NavBar
title=
"反冲料
拣配
"
></NavBar>
<view
class=
"headerTitle"
>
<view
class=
""
>
<view
class=
"items"
...
...
@@ -25,7 +25,7 @@
></u-picker>
<u-input
v-model=
"LGOBE"
placeholder=
"请选择
仓库别
"
placeholder=
"请选择
线边库
"
:type=
"type"
:border=
"border"
@
click=
"depotShow = true"
...
...
@@ -148,7 +148,7 @@ export default {
getDepotLists
()
{
this
.
$u
.
api
.
sapApi
.
sapDict
({
FIELDNAME
:
"T001L"
,
FIELDNAME
:
"T001L
2
"
,
})
.
then
((
res
)
=>
{
if
(
res
)
{
...
...
@@ -246,7 +246,7 @@ export default {
ele
.
issueCode
=
num
;
ele
.
issueType
=
ele
.
materialType
;
});
this
.
$u
.
api
.
mesApi
.
pda
Sapissuecreate
(
arr
).
then
((
res
)
=>
{
this
.
$u
.
api
.
mesApi
.
pda
Allocation
(
arr
).
then
((
res
)
=>
{
this
.
loading
=
false
;
console
.
log
(
res
);
if
(
res
&&
res
.
code
==
200
)
{
...
...
pages/salesOutbound/salesOutboundList.vue
View file @
f42471b5
...
...
@@ -6,15 +6,21 @@
<u-tabs
:list=
"list"
:is-scroll=
"false"
:current=
"current"
@
change=
"changeTab"
></u-tabs>
</view>
-->
<view
class=
"headerTitle"
>
<view
class=
"items"
>
交货单号:
{{
goodsList
[
0
].
VBELN
}}
</view>
<view
class=
"items"
>
交货单号:
{{
vbeln
}}
</view>
<view
class=
"items"
>
8|李XXXXXXX体
</view>
<view
class=
"items"
>
计划日期:9999/99/99
</view>
</view>
<view
class=
""
>
<view
class=
"btn"
>
<!--
<uni-easyinput
prefixIcon=
"search"
class=
"topSearch"
v-model=
"nlpla"
focus
placeholder=
"请扫描库位"
@
change=
"handleInputNlpla"
></uni-easyinput>
-->
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
</view>
<view
class=
"total"
>
<view
class=
"left"
>
明细
</view>
...
...
@@ -29,7 +35,11 @@
</StickyNavBar>
<ContentLoadingMore
class=
"contentMore"
:list=
"goodsList"
>
<view
class=
"cardbox"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
:key=
"item.PLNR"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
:key=
"item.PLNR"
>
<scanningList
:item=
"item"
:list=
"item.ZPLDT"
/>
</view>
</view>
...
...
@@ -44,15 +54,13 @@
</
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"
;
import
stockList
from
"./stockList.vue"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
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"
;
import
stockList
from
"./stockList.vue"
;
import
{
parseTime
}
from
"@/utils/ruoyi"
;
export
default
{
components
:
{
StickyNavBar
,
ContentLoadingMore
,
...
...
@@ -67,7 +75,8 @@
border
:
true
,
current
:
0
,
status
:
"loadmore"
,
btnArr
:
[{
btnArr
:
[
{
style
:
""
,
type
:
"warning"
,
text
:
"返回"
,
...
...
@@ -86,7 +95,7 @@
wxparams
:
""
,
goodsList
:
[],
orderItem
:
{},
resFlag
:
false
resFlag
:
false
,
};
},
created
()
{
...
...
@@ -95,7 +104,9 @@
onLoad
(
option
)
{
if
(
option
&&
option
.
order
)
{
const
arr
=
[...
JSON
.
parse
(
option
.
order
)];
console
.
log
(
arr
,
"------"
);
arr
.
forEach
((
ele
)
=>
{
if
(
ele
.
ZSIZE
.
length
)
{
this
.
goodsList
.
push
(
...
ele
.
ZSIZE
.
map
((
item
)
=>
{
return
{
...
...
@@ -110,6 +121,12 @@
};
})
);
}
else
{
ele
.
ZSIZE
=
""
;
ele
.
ZINSNUM
=
ele
.
LFIMG
;
this
.
goodsList
.
push
(
ele
);
this
.
$u
.
toast
(
`物料编号:
${
ele
.
MATNR
}
--没有尺码信息`
);
}
});
}
},
...
...
@@ -118,10 +135,13 @@
const
count
=
this
.
goodsList
.
filter
((
item
)
=>
item
.
checkedBox
).
length
;
return
count
||
0
;
},
vbeln
()
{
return
this
.
goodsList
[
0
]?.
VBELN
||
""
;
},
},
methods
:
{
goSubmit
()
{
if
(
!
this
.
goodsList
.
length
)
return
if
(
!
this
.
goodsList
.
length
)
return
;
if
(
this
.
resFlag
)
{
return
this
.
$u
.
toast
(
"当前单据已经提交成功!无需继续提交!"
);
}
...
...
@@ -165,8 +185,8 @@
this
.
$u
.
toast
(
"提交成功"
);
// this.resFlag = true
setTimeout
(()
=>
{
this
.
goBack
()
},
1000
)
this
.
goBack
();
},
1000
);
}
});
},
...
...
@@ -223,54 +243,55 @@
e
&&
this
.
getPlnr
(
e
);
},
},
};
};
</
script
>
<
style
lang=
"scss"
>
.selectSheet
{
.selectSheet
{
border-bottom
:
1px
solid
#ccc
;
}
}
/
deep
/
.u-sticky
{
/
deep
/
.u-sticky
{
top
:
0
!
important
;
background
:
#fff
;
}
}
.tabTwo
{
.tabTwo
{
/
deep
/
.u-sticky-wrap
{
height
:
330rpx
!
important
;
}
}
}
.listTitle
{}
.listTitle
{
}
.contentMore
{
.contentMore
{
margin
:
20rpx
;
}
}
page
{
page
{
background
:
#f8f8f8
;
}
}
.headerTitle
{
.headerTitle
{
padding
:
20rpx
;
font-weight
:
600
;
.items
{
line-height
:
40rpx
;
}
}
}
.btn
{
.btn
{
padding
:
20rpx
;
background
:
#fff
;
.topSearch
{
margin-bottom
:
20rpx
;
}
}
}
.total
{
.total
{
background
:
#fff
;
color
:
#000
;
padding
:
0rpx
40rpx
;
...
...
@@ -281,17 +302,17 @@
.line
{
margin
:
0px
10rpx
;
}
}
}
.cardbox
{
.cardbox
{
min-height
:
calc
(
100vh
-
410rpx
);
padding
:
0rpx
20rpx
;
margin-top
:
20rpx
;
}
}
.cardContent
{
.cardContent
{
border-radius
:
8px
;
background
:
#fff
;
margin-bottom
:
20rpx
;
}
}
</
style
>
uview-ui/libs/request/index.js
View file @
f42471b5
...
...
@@ -89,10 +89,10 @@ class Request {
...
options
.
header
,
'content-type'
:
'application/json;charset=UTF-8'
,
}
url
=
'http://192.168.3.91:8
08
0'
url
=
'http://192.168.3.91:8
10
0'
}
else
{
// console.log('mobile')
url
=
'http://192.168.3.91:8
08
0'
url
=
'http://192.168.3.91:8
10
0'
}
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
options
.
url
=
validate
.
url
(
options
.
url
)
?
options
.
url
:
(
url
+
(
options
.
url
.
indexOf
(
'/'
)
==
0
?
...
...
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