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
9aec8dbe
Commit
9aec8dbe
authored
May 22, 2024
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
委外退料
parent
25945c6a
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
284 additions
and
124 deletions
+284
-124
listItem.vue
pages/outsourcedReturn/listItem.vue
+199
-0
outsourcedReturn.vue
pages/outsourcedReturn/outsourcedReturn.vue
+85
-124
No files found.
pages/outsourcedReturn/listItem.vue
0 → 100644
View file @
9aec8dbe
<
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
.
TOMNG
}}
</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/outsourcedReturn/outsourcedReturn.vue
View file @
9aec8dbe
<
template
>
<view>
<view
class=
"page"
>
<StickyNavBar>
<NavBar
title=
"委外退料"
></NavBar>
<view
class=
"btn"
>
...
...
@@ -14,54 +14,19 @@
></uni-easyinput>
</view>
<view
class=
"total"
>
<view
class=
"left"
>
入库
明细
</view>
<view
class=
"left"
>
退料
明细
</view>
<view
class=
"right"
>
批次数:
<text
class=
"blue"
>
{{
goodsList
.
length
}}
</text>
<text
class=
"blue"
>
{{
chargaArr
.
length
}}
</text>
<text
class=
"line"
>
|
</text>
总数量:
<text
class=
"blue"
>
{{
totalNum
}}
</text>
</view>
</view>
</StickyNavBar>
<ContentLoadingMore
class=
"cardbox"
>
<view
class=
"cardContent"
v-for=
"(item, index) in goodsList"
>
<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
.
ERFMG
}}
</view>
<view
class=
"item"
>
入库库位:
{{
item
.
MATNR
}}
</view>
</view>
<u-button
size=
"mini"
type=
"primary"
plain
@
click=
"deleGonds(index)"
>
<u-icon
name=
"trash"
size=
"28"
></u-icon>
删除
</u-button>
</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"
>
<view
class=
"items"
>
{{
item
.
CHARG
}}
</view>
<view
class=
"items"
>
{{
item
.
MATNR
}}
</view>
<view
class=
"items"
>
数量:
{{
item
.
ERFMG
}}
</view>
<view
class=
"items"
>
生产日期:
{{
item
.
BLDAT
}}
</view>
</view>
</view>
</view>
<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>
...
...
@@ -69,14 +34,17 @@
</
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
BottomBtn
,
listItem
},
data
()
{
return
{
...
...
@@ -101,19 +69,27 @@ export default {
],
goodsList
:
[],
isFocus
:
false
,
isDisabled
:
false
isDisabled
:
false
,
chargaArr
:
[]
};
},
created
()
{
// this.getPlnr('10000820240325000001|10000320100');
// this.getPlnr('100001240428000002|00100000000000014.000|10002442800002');
// this.getPlnr('100001240428000002|00100000000000019.500|10002442800001');
},
methods
:
{
deleGonds
(
idx
)
{
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
.
ERFMG
;
this
.
totalNum
+=
ele
.
TOMNG
-
0
ele
.
cardNum
=
0
});
this
.
handleData
()
},
getBtnHandle
(
row
)
{
this
[
row
.
way
]();
...
...
@@ -125,22 +101,18 @@ export default {
if
(
this
.
goodsList
.
length
===
0
)
{
return
;
}
console
.
log
([
{
BLDAT
:
'20240325'
,
BUDAT
:
'20240325'
,
ZENCODE
:
'A014'
,
ITEM
:
this
.
goodsList
}
]);
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
goodsList
))
data
.
forEach
(
ele
=>
{
ele
.
ERFMG
=
ele
.
TOMNG
});
this
.
$u
.
api
.
sapApi
.
sapRrm
([
{
BLDAT
:
'20240325'
,
BUDAT
:
'20240325'
,
BLDAT
:
parseTime
(
new
Date
(),
'{y}{m}{d}'
)
,
BUDAT
:
parseTime
(
new
Date
(),
'{y}{m}{d}'
)
,
ZENCODE
:
'A014'
,
TYPE
:
'CG'
,
ITEM
:
this
.
goodsList
ITEM
:
data
}
])
.
then
((
res
)
=>
{
...
...
@@ -150,6 +122,7 @@ export default {
}
if
(
res
&&
res
.
every
((
item
)
=>
item
.
TYPE
===
'S'
))
{
this
.
goodsList
=
[];
this
.
chargaArr
=
[]
this
.
totalNum
=
0
;
this
.
nlpla
=
''
;
this
.
wxparams
=
''
;
...
...
@@ -168,28 +141,53 @@ export default {
},
handleInputNlpla
(
e
)
{
if
(
e
)
{
this
.
nlpla
=
e
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
ERFMG
;
ele
.
NLPLA
=
ele
.
NLPLA
||
this
.
nlpla
;
});
//
this.nlpla = e;
//
this.goodsList.forEach((ele) => {
// this.totalNum += ele.TOMNG-0
;
//
ele.NLPLA = ele.NLPLA || this.nlpla;
//
});
}
},
getPlnr
(
plnr
)
{
this
.
totalNum
=
0
;
this
.
isDisabled
=
true
;
if
(
!
this
.
nlpla
){
this
.
$u
.
toast
(
'请先扫描仓位'
);
setTimeout
(()
=>
{
this
.
wxparams
=
''
;
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
},
1000
);
return
}
this
.
$u
.
api
.
sapApi
.
sapPlnr
({
plnr
plnr
,
zType
:
'001'
})
.
then
((
res
)
=>
{
if
(
res
&&
res
.
RESULT
.
TYPE
===
'S'
)
{
this
.
goodsList
=
this
.
goodsList
.
concat
(
res
.
DATA
);
if
(
this
.
goodsList
.
some
((
item
)
=>
item
.
PLNR
===
plnr
))
{
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
''
;
},
1000
);
this
.
$u
.
toast
(
'已经存在当前条码'
);
return
}
const
arr
=
[
{
...
res
.
DATA
[
0
],
NLPLA
:
this
.
nlpla
}
]
this
.
goodsList
=
this
.
goodsList
.
concat
(
arr
);
this
.
totalNum
=
0
;
this
.
goodsList
.
forEach
((
ele
)
=>
{
this
.
totalNum
+=
ele
.
ERFMG
;
ele
.
NLPLA
=
ele
.
NLPLA
||
this
.
nlpla
;
ele
.
PLNR
=
plnr
this
.
totalNum
+=
ele
.
TOMNG
-
0
ele
.
cardNum
=
0
});
this
.
handleData
()
setTimeout
(()
=>
{
this
.
wxparams
=
''
;
this
.
isFocus
=
true
;
...
...
@@ -199,20 +197,32 @@ export default {
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
isDisabled
=
false
;
this
.
wxparams
=
''
;
},
1000
);
this
.
$u
.
toast
(
res
.
RESULT
.
MESSAGE
);
}
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
.
TOMNG
-
0
)
this
.
$set
(
this
.
chargaArr
,
idx
,{...
ele
})
}
});
});
},
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
page
{
background
:
#f8f8f8
;
}
.btn
{
padding
:
20rpx
;
background
:
#fff
;
...
...
@@ -254,60 +264,11 @@ page {
.cardContent
{
border-radius
:
8px
;
background
:
#fff
;
}
.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
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