Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mallapp
Project
Project
Details
Activity
Releases
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
viitto
mallapp
Commits
2ac85cb5
Commit
2ac85cb5
authored
Nov 04, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
1813d6b6
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1443 additions
and
1 deletion
+1443
-1
afterOrderDetail.vue
pages/MallMange/afterOrderDetail.vue
+712
-0
saleAfterOrderItem.vue
pages/MallMange/components/saleAfterOrderItem.vue
+1
-1
orderDetail.vue
pages/MallMange/orderDetail.vue
+730
-0
No files found.
pages/MallMange/afterOrderDetail.vue
0 → 100644
View file @
2ac85cb5
<
template
>
<scroll-view
:scroll-y=
"true"
@
scroll=
"scrollHandler"
@
scrolltoupper=
"scrollTopHandler"
style=
"height: 100vh"
>
<view
class=
"orderdetail"
:style=
"[contentStyle]"
>
<view
class=
"headStatus"
:style=
"[
headStyle,
{
zIndex: scrollTop
<
10
?
'
unset
'
:
2
,
opacity:
scrollTop
<
10
?
'
100
'
:
scrollTop
,
},
]"
>
<view
class=
"arrow"
@
click=
"redirectPrev"
>
<u-icon
name=
"arrow-left"
size=
"48"
color=
"#FFF"
></u-icon>
</view>
<view
class=
"title"
v-if=
"scrollTop > 50"
>
订单详情
</view>
</view>
<view
class=
"status"
:style=
"[headStyle]"
>
<view
class=
"status-title"
>
{{
orders
.
ReOrderStatusName
}}
</view>
<view
class=
"sub-title"
v-if=
"
orders.OrderStatus == 1 ||
orders.OrderStatus == 2 ||
orders.OrderStatus == 3 ||
orders.OrderStatus == 4
"
>
</view>
</view>
<view
class=
"block address"
>
<view
class=
"icon"
>
<u-icon
name=
"location-o"
color=
"#111"
size=
"40"
></u-icon>
</view>
<view
class=
"content"
>
<view
class=
"concat"
>
<text
style=
"font-weight: 700; margin-right: 20px"
>
{{
orders
.
OrderInfo
.
Consignee
}}
</text>
<text>
{{
orders
.
OrderInfo
.
Mobile
}}
</text>
</view>
<view
class=
"address"
>
{{
orders
.
OrderInfo
.
DistrictAddress
}}{{
orders
.
OrderInfo
.
ShoppingAddress
}}
</view
>
</view>
</view>
<view
class=
"block goods"
>
<view
class=
"item"
>
<view
style=
"display: flex"
>
<image
:src=
"orders.OrderInfo.CoverImagePath"
class=
"img"
@
click=
"redirectGoods(x.GoodsId)"
mode=
"aspectFill"
/>
<view
class=
"good-info"
>
<view
class=
"good-name"
@
click=
"redirectGoods(x.GoodsId)"
>
{{
orders
.
OrderInfo
.
GoodsName
}}
</view>
<view
class=
"good-attr"
>
<text>
数量:
{{
orders
.
OrderInfo
.
Number
}}
</text>
<text>
{{
orders
.
OrderInfo
.
SpecificationList
.
join
(
','
)
}}
</text>
</view>
<view
style=
"
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-top: 2px;
"
@
click
.
native
.
stop=
"goUrl(orders.OrderInfo.FreeShippingUrl)"
v-if=
"
orders.OrderInfo.FreeShippingRemarks != null && orders.OrderInfo.FreeShippingRemarks != ''
"
>
<view
style=
"
color: #ff4048;
background: #fdf6ec;
padding: 0 5px;
display: inline-block;
"
>
<Text
style=
"font-size: 20rpx; margin-right: 5rpx"
>
{{
orders
.
OrderInfo
.
FreeShippingRemarks
}}
</Text>
</view>
</view>
<view
class=
"good-price"
>
¥
{{
orders
.
OrderInfo
.
Final_Price
}}
</view>
</view>
</view>
<template
v-for=
"(e, ei) in expressInfo"
>
<view
:key=
"ei"
class=
"order-info-item peisong"
v-for=
"(ec, eci) in e.GoodsList"
v-if=
"ec.Id == x.Id"
>
<template>
<view
class=
"field"
:key=
"eci"
v-if=
"e.Type == '2' && ec.Id == x.Id"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
Remark
}}
</view>
</view>
<view
class=
"field"
:key=
"eci"
@
click=
"
goExpressHandler(
e.ExpressName,
e.ExpressNumber,
e.ExpressId
)
"
v-if=
"e.Type == '1' && ec.Id == x.Id"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
ExpressName
}}
{{
e
.
ExpressNumber
}}
</view
>
<view
style=
"margin-left: 10px"
>
<u-icon
name=
"arrow"
size=
"32"
color=
"#000"
></u-icon>
</view>
</view>
</
template
>
</view>
</template>
</view>
</view>
<view
class=
"block"
>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
订单编号:
</view>
<view
class=
"content"
>
{{ orders.ReOrderNo }}
</view>
<view
style=
"margin-left: 20px"
>
<u-button
size=
"mini"
shape=
"circle"
@
click=
"paste(orders.OrderNo)"
>
复制
</u-button
>
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
下单时间:
</view>
<view
class=
"content"
>
{{ orders.CreateDate }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
备注:
</view>
<view
class=
"content"
>
{{ orders.Remark }}
</view>
</view>
</view>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
支付方式:
</view>
<view
class=
"content"
>
{{ orders.OrderInfo.PaymentWayName }}
</view>
</view>
</view>
</view>
<view
class=
"block"
>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
实付金额
</view>
<view
class=
"content right"
>
¥{{ orders.OrderInfo.Income }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
申请退款
</view>
<view
class=
"content right"
>
¥{{ orders.OrderInfo.Refund }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
实际退款
</view>
<view
class=
"content right"
>
¥{{ orders.OrderInfo.RefundActual }}
</view>
</view>
<view
style=
"width: 100%; height: 1px; background: #f5f5f5; margin: 5px 0"
></view>
</view>
</view>
<view
style=
"padding: 12px"
v-if=
"recommend.length > 0"
>
<goodlist
:list=
"recommend"
></goodlist>
</view>
<view
class=
"btn-box"
>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 1"
@
click=
"Offpayment"
:custom-style=
"themCustomStyle"
>
线下付款
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2"
@
click=
"
jumpPage(`/pages/MallMange/sendGoods?OrderId=${orders.OrderId}`)
"
:custom-style=
"themCustomStyle"
>
发货
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2"
@
click=
"
jumpPage(
`/pages/MallMange/sendGoods?OrderId=${orders.OrderId}&modify=true`
)
"
:custom-style=
"themCustomStyle"
>
修改快递单号
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2 || orders.OrderStatus === 1"
@
click=
"OrderCancel"
:custom-style=
"themCustomStyle"
>
强制取消
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 3"
@
click=
"ConfirmReceipt"
:custom-style=
"themCustomStyle"
>
确认收货
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 3"
@
click=
"
jumpPage(
`/pages/MallMange/modifyAddress?OrderId=${orders.OrderId}`
)
"
:custom-style=
"themCustomStyle"
>
修改地址
</u-button
>
</view>
<!-- <view
class="item"
v-if="orders.OrderStatus == '3' && orders.PresentFXGrade != 1"
>
<u-button
shape="circle"
size="medium"
:custom-style="customStyle"
@click="openAfterHandler"
>申请售后</u-button
>
</view> -->
</view>
<after-sale
:list=
"orders.DetailList"
v-if=
"showAfter"
@
close=
"closeAfterHandler"
></after-sale>
</view>
<u-toast
ref=
"uToast"
/>
</scroll-view>
</template>
<
script
>
import
payCom
from
"@/components/pay/pay"
;
import
afterSale
from
"@/components/userorder/after-sale"
;
import
goodlist
from
"@/components/goods/list"
;
export
default
{
components
:
{
afterSale
,
goodlist
,
payCom
,
},
data
()
{
return
{
mc
:
""
,
secondary
:
""
,
headStyle
:
{},
contentStyle
:
{},
orders
:
{},
loading
:
true
,
id
:
0
,
customStyle
:
{
marginLeft
:
"20px"
,
padding
:
"0 30rpx"
,
},
scrollTop
:
0
,
recommend
:
[],
prevPage
:
""
,
themCustomStyle
:
{
marginLeft
:
"20px"
,
padding
:
"0 30rpx"
,
color
:
"#FFF"
,
},
expressInfo
:
[],
showAfter
:
false
,
};
},
onLoad
(
option
)
{
if
(
option
.
id
)
{
this
.
id
=
option
.
id
;
this
.
getData
();
}
if
(
option
.
showAfter
)
{
this
.
showAfter
=
true
;
}
this
.
mc
=
this
.
$uiConfig
.
mainColor
;
this
.
secondary
=
this
.
$uiConfig
.
secondary
;
this
.
headStyle
.
background
=
`linear-gradient(to right,
${
this
.
mc
}
,80%,
${
this
.
secondary
}
)`
;
let
nav
=
uni
.
getMenuButtonBoundingClientRect
();
this
.
headStyle
.
paddingTop
=
nav
.
top
+
"px"
;
this
.
contentStyle
.
paddingTop
=
nav
.
top
+
44
+
"px"
;
let
p
=
getCurrentPages
();
if
(
p
.
length
>
1
)
{
this
.
prevPage
=
p
[
p
.
length
-
2
].
route
;
}
this
.
themCustomStyle
.
background
=
this
.
mc
;
},
methods
:
{
paste
(
value
)
{
uni
.
setClipboardData
({
data
:
value
,
});
},
scrollHandler
(
e
)
{
this
.
scrollTop
=
e
.
detail
.
scrollTop
;
},
scrollTopHandler
()
{
this
.
scrollTop
=
0
;
},
redirectPrev
()
{
if
(
this
.
prevPage
!=
""
)
{
uni
.
navigateBack
({
delta
:
1
,
});
}
},
jumpPage
(
url
)
{
uni
.
navigateTo
({
url
:
url
,
});
},
closeAfterHandler
()
{
this
.
showAfter
=
false
;
},
//----------------------------------------
getData
()
{
this
.
requestAdmin
(
"/api/order/GetOrderAfterSaleInfo"
,
{
ReOrderId
:
this
.
id
,
},
(
res
)
=>
{
this
.
orders
=
res
.
data
;
this
.
expressInfo
=
res
.
data
.
OrderInfo
.
OrderExpressList
;
console
.
log
(
790
,
this
.
orders
);
}
);
},
goExpressHandler
(
express
,
no
,
id
)
{
uni
.
navigateTo
({
url
:
"/pages/order/express?express="
+
express
+
"&no="
+
no
+
"&address="
+
this
.
orders
?.
OrderInfo
?.
DistrictAddress
+
this
.
orders
?.
OrderInfo
?.
ShoppingAddress
+
"&id="
+
id
,
});
},
// 强制取消
OrderCancel
()
{
let
that
=
this
;
let
text
=
""
;
if
(
this
.
orders
.
OrderStatus
==
1
)
{
text
=
"确认取消?"
;
}
else
if
(
this
.
orders
.
OrderStatus
==
2
)
{
text
=
"确认取消?客人付款金额将原路退回。"
;
}
uni
.
showModal
({
title
:
"提示"
,
content
:
text
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderForcedToCancel"
,
{
OrderId
:
that
.
orders
.
OrderId
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
}
);
}
},
});
},
//确认收货
ConfirmReceipt
()
{
let
msg
=
{
OrderId
:
this
.
orders
.
OrderId
,
Type
:
5
,
};
let
that
=
this
;
uni
.
showModal
({
title
:
"提示"
,
content
:
"是否确认收货?"
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderOperation"
,
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
});
}
},
});
},
//线下付款
Offpayment
()
{
let
that
=
this
;
uni
.
showModal
({
title
:
"提示"
,
content
:
"确认转为线下付款,转后无法恢复!"
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderOfflinePayment"
,
{
OrderId
:
that
.
orders
.
OrderId
},
(
_res
)
=>
{
if
(
_res
.
resultCode
===
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
},
null
);
}
},
});
},
},
};
</
script
>
<
style
>
.orderdetail
{
overflow
:
hidden
;
background
:
#f3f4f6
;
padding-bottom
:
50px
;
}
.orderdetail
.headStatus
{
overflow
:
hidden
;
position
:
relative
;
width
:
140vw
;
padding-right
:
40vw
;
padding-bottom
:
10px
;
position
:
fixed
;
left
:
0
;
right
:
0
;
top
:
0
;
display
:
flex
;
}
.orderdetail
.headStatus
.arrow
{
height
:
24px
;
margin
:
5px
10px
;
width
:
24px
;
}
.orderdetail
.headStatus
.title
{
font-size
:
18px
;
color
:
#fff
;
flex
:
1
;
width
:
1px
;
margin-left
:
10px
;
line-height
:
34px
;
}
.orderdetail
.status
{
padding-bottom
:
25px
;
position
:
relative
;
width
:
140vw
;
padding-right
:
40vw
;
padding-top
:
0
!important
;
}
.orderdetail
.status
.status-title
{
text-align
:
center
;
font-size
:
22px
;
color
:
#fff
;
margin-top
:
-18px
;
}
.orderdetail
.status
.sub-title
{
font-size
:
14px
;
color
:
#fff
;
text-align
:
center
;
margin-top
:
10px
;
font-weight
:
300
;
}
.orderdetail
.block
{
background
:
#fff
;
border-radius
:
10px
;
margin-top
:
-10px
;
padding
:
20px
;
padding-bottom
:
0
;
position
:
relative
;
margin-bottom
:
20px
;
}
.orderdetail
.address
{
display
:
flex
;
margin-bottom
:
20px
;
}
.orderdetail
.address
.icon
{
width
:
20px
;
height
:
20px
;
margin-right
:
10px
;
}
.orderdetail
.address
.content
{
flex
:
1
;
}
.orderdetail
.address
.content
.concat
{
font-size
:
14px
;
color
:
#000
;
}
.orderdetail
.address
.content
.address
{
font-size
:
13px
;
margin-top
:
10px
;
color
:
gray
;
}
.orderdetail
.goods
{
}
.orderdetail
.goods
.item
{
margin-bottom
:
20px
;
}
.orderdetail
.goods
.item
:last-child
{
margin-bottom
:
0
;
}
.orderdetail
.goods
.item
.img
{
width
:
80px
;
height
:
80px
;
border-radius
:
2px
;
}
.orderdetail
.goods
.item
.good-info
{
margin-left
:
15px
;
flex
:
1
;
flex-direction
:
column
;
width
:
1px
;
display
:
flex
;
}
.orderdetail
.goods
.item
.good-info
.good-name
{
font-size
:
15px
;
font-weight
:
600
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
height
:
24px
;
}
.orderdetail
.goods
.item
.good-info
.good-attr
{
font-size
:
13px
;
font-weight
:
500
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
color
:
gray
;
display
:
flex
;
flex-direction
:
column
;
}
.orderdetail
.goods
.item
.good-info
.good-price
{
font-size
:
16px
;
height
:
20px
;
}
.orderdetail
.order-info-item
{
padding
:
10px
0
;
border-bottom
:
1px
solid
#f5f5f5
;
}
.orderdetail
.order-info-item
:last-child
{
border-bottom
:
none
;
}
.orderdetail
.order-info-item
.field
{
margin-bottom
:
10px
;
display
:
flex
;
}
.orderdetail
.order-info-item.peisong
{
border
:
none
;
background
:
#f1f1f1
;
border-radius
:
5px
;
padding
:
10px
;
margin
:
15px
0
5px
0
;
overflow
:
hidden
;
}
.orderdetail
.order-info-item
.field
:last-child
{
margin-bottom
:
0
;
}
.orderdetail
.order-info-item
.field
.label
{
width
:
80px
;
margin-right
:
20px
;
color
:
gray
;
}
.orderdetail
.order-info-item
.field
.content
{
flex
:
1
;
width
:
1px
;
color
:
#000
;
}
.orderdetail
.order-info-item
.field
.content.right
{
text-align
:
right
;
}
.orderdetail
.btn-box
{
display
:
flex
;
flex-direction
:
row-reverse
;
height
:
45px
;
padding
:
5px
20px
;
position
:
fixed
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
2
;
border-top
:
1px
solid
#f5f5f5
;
background
:
#fff
;
}
.orderdetail
.customer
{
padding-top
:
20
rpx
;
margin-top
:
20
rpx
;
border-top
:
2
rpx
solid
#f5f5f5
;
border-bottom
:
2
rpx
solid
#f5f5f5
;
}
.orderdetail
.customer
button
{
width
:
100%
;
display
:
inline-block
;
background
:
none
;
border
:
none
;
outline
:
none
;
font-size
:
14px
;
font-weight
:
600
;
color
:
#111
;
}
.orderdetail
.customer
button
::after
{
border
:
none
;
outline
:
none
;
}
</
style
>
\ No newline at end of file
pages/MallMange/components/saleAfterOrderItem.vue
View file @
2ac85cb5
...
@@ -173,7 +173,7 @@ export default {
...
@@ -173,7 +173,7 @@ export default {
goOrderDetail
(
item
)
{
goOrderDetail
(
item
)
{
console
.
log
(
174
,
item
);
console
.
log
(
174
,
item
);
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
"/pages/MallMange/afterOrderDetail?id="
+
item
.
OrderId
,
url
:
"/pages/MallMange/afterOrderDetail?id="
+
item
.
Re
OrderId
,
});
});
},
},
//打电话
//打电话
...
...
pages/MallMange/orderDetail.vue
0 → 100644
View file @
2ac85cb5
<
template
>
<scroll-view
:scroll-y=
"true"
@
scroll=
"scrollHandler"
@
scrolltoupper=
"scrollTopHandler"
style=
"height: 100vh"
>
<view
class=
"orderdetail"
:style=
"[contentStyle]"
>
<view
class=
"headStatus"
:style=
"[
headStyle,
{
zIndex: scrollTop
<
10
?
'
unset
'
:
2
,
opacity:
scrollTop
<
10
?
'
100
'
:
scrollTop
,
},
]"
>
<view
class=
"arrow"
@
click=
"redirectPrev"
>
<u-icon
name=
"arrow-left"
size=
"48"
color=
"#FFF"
></u-icon>
</view>
<view
class=
"title"
v-if=
"scrollTop > 50"
>
订单详情
</view>
</view>
<view
class=
"status"
:style=
"[headStyle]"
>
<view
class=
"status-title"
>
{{
orders
.
OrderStatusName
}}
</view>
<view
class=
"sub-title"
v-if=
"
orders.OrderStatus == 1 ||
orders.OrderStatus == 2 ||
orders.OrderStatus == 3 ||
orders.OrderStatus == 4
"
>
</view>
</view>
<view
class=
"block address"
>
<view
class=
"icon"
>
<u-icon
name=
"location-o"
color=
"#111"
size=
"40"
></u-icon>
</view>
<view
class=
"content"
>
<view
class=
"concat"
>
<text
style=
"font-weight: 700; margin-right: 20px"
>
{{
orders
.
OrderInfo
.
Consignee
}}
</text>
<text>
{{
orders
.
OrderInfo
.
Mobile
}}
</text>
</view>
<view
class=
"address"
>
{{
orders
.
OrderInfo
.
DistrictAddress
}}{{
orders
.
OrderInfo
.
ShoppingAddress
}}
</view
>
</view>
</view>
<view
class=
"block goods"
>
<view
class=
"item"
v-for=
"(x, i) in orders.DetailList"
:key=
"i"
>
<view
style=
"display: flex"
>
<image
:src=
"x.CoverImagePath"
class=
"img"
@
click=
"redirectGoods(x.GoodsId)"
mode=
"aspectFill"
/>
<view
class=
"good-info"
>
<view
class=
"good-name"
@
click=
"redirectGoods(x.GoodsId)"
>
{{
x
.
GoodsName
}}
</view>
<view
class=
"good-attr"
>
<text>
数量:
{{
x
.
Number
}}
</text>
<text
v-for=
"(y, yi) in x.SpecificationList"
:key=
"yi"
style=
"margin-right: 5px"
>
{{
y
}}
</text>
</view>
<view
style=
"
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-top: 2px;
"
@
click
.
native
.
stop=
"goUrl(x.FreeShippingUrl)"
v-if=
"
x.FreeShippingRemarks != null && x.FreeShippingRemarks != ''
"
>
<view
style=
"
color: #ff4048;
background: #fdf6ec;
padding: 0 5px;
display: inline-block;
"
>
<Text
style=
"font-size: 20rpx; margin-right: 5rpx"
>
{{
x
.
FreeShippingRemarks
}}
</Text>
</view>
</view>
<view
class=
"good-price"
>
¥
{{
x
.
Final_Price
}}
</view>
</view>
</view>
<template
v-for=
"(e, ei) in expressInfo"
>
<view
:key=
"ei"
class=
"order-info-item peisong"
v-for=
"(ec, eci) in e.GoodsList"
v-if=
"ec.Id == x.Id"
>
<template>
<view
class=
"field"
:key=
"eci"
v-if=
"e.Type == '2' && ec.Id == x.Id"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
Remark
}}
</view>
</view>
<view
class=
"field"
:key=
"eci"
@
click=
"
goExpressHandler(
e.ExpressName,
e.ExpressNumber,
e.ExpressId
)
"
v-if=
"e.Type == '1' && ec.Id == x.Id"
>
<view
class=
"label"
>
配送方式
</view>
<view
class=
"content"
>
{{
e
.
ExpressName
}}
{{
e
.
ExpressNumber
}}
</view
>
<view
style=
"margin-left: 10px"
>
<u-icon
name=
"arrow"
size=
"32"
color=
"#000"
></u-icon>
</view>
</view>
</
template
>
</view>
</template>
</view>
</view>
<view
class=
"block"
>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
订单编号:
</view>
<view
class=
"content"
>
{{ orders.OrderInfo.OrderNo }}
</view>
<view
style=
"margin-left: 20px"
>
<u-button
size=
"mini"
shape=
"circle"
@
click=
"paste(orders.OrderNo)"
>
复制
</u-button
>
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
下单时间:
</view>
<view
class=
"content"
>
{{ orders.CreateDate }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
备注:
</view>
<view
class=
"content"
>
{{ orders.Remark }}
</view>
</view>
</view>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
支付方式:
</view>
<view
class=
"content"
>
{{ orders.OrderInfo.PaymentWayName }}
</view>
</view>
</view>
</view>
<view
class=
"block"
>
<view
class=
"order-info-item"
>
<view
class=
"field"
>
<view
class=
"label"
>
商品总额
</view>
<view
class=
"content right"
>
¥{{ orders.PreferPrice }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
运费
</view>
<view
class=
"content right"
>
+¥{{ orders.FreightMoney }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
优惠
</view>
<view
class=
"content right"
>
-¥{{ orders.CouponMoney }}
</view>
</view>
<view
class=
"field"
>
<view
class=
"label"
>
储蓄卡抵扣
</view>
<view
class=
"content right"
>
-¥{{ orders.DepositMoney }}
</view>
</view>
<view
class=
"field"
v-if=
"orders.DeductionCommission > 0"
>
<view
class=
"label"
>
佣金抵扣
</view>
<view
class=
"content right"
>
-¥{{ orders.DeductionCommission }}
</view
>
</view>
<view
style=
"width: 100%; height: 1px; background: #f5f5f5; margin: 5px 0"
></view>
<view
class=
"field"
>
<view
class=
"label"
>
</view>
<view
class=
"content right"
>
<text
style=
"margin-right: 10px"
>
实付款:
</text>
<text
style=
"font-size: 11px; font-weight: 700"
:style=
"{ color: mc }"
>
¥
</text
>
<text
style=
"font-size: 17px"
:style=
"{ color: mc }"
>
{{
String(orders.Income).split(".")[0]
}}
</text>
<text
style=
"font-size: 12px"
:style=
"{ color: mc }"
>
.{{ String(orders.Income).split(".")[1] || "00" }}
</text
>
</view>
</view>
</view>
</view>
<view
style=
"padding: 12px"
v-if=
"recommend.length > 0"
>
<goodlist
:list=
"recommend"
></goodlist>
</view>
<view
class=
"btn-box"
>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 1"
@
click=
"Offpayment"
:custom-style=
"themCustomStyle"
>
线下付款
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2"
@
click=
"
jumpPage(`/pages/MallMange/sendGoods?OrderId=${orders.OrderId}`)
"
:custom-style=
"themCustomStyle"
>
发货
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2"
@
click=
"
jumpPage(
`/pages/MallMange/sendGoods?OrderId=${orders.OrderId}&modify=true`
)
"
:custom-style=
"themCustomStyle"
>
修改快递单号
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 2 || orders.OrderStatus === 1"
@
click=
"OrderCancel"
:custom-style=
"themCustomStyle"
>
强制取消
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 3"
@
click=
"ConfirmReceipt"
:custom-style=
"themCustomStyle"
>
确认收货
</u-button
>
</view>
<view
class=
"item"
>
<u-button
shape=
"circle"
size=
"medium"
v-if=
"orders.OrderStatus === 3"
@
click=
"
jumpPage(
`/pages/MallMange/modifyAddress?OrderId=${orders.OrderId}`
)
"
:custom-style=
"themCustomStyle"
>
修改地址
</u-button
>
</view>
<!-- <view
class="item"
v-if="orders.OrderStatus == '3' && orders.PresentFXGrade != 1"
>
<u-button
shape="circle"
size="medium"
:custom-style="customStyle"
@click="openAfterHandler"
>申请售后</u-button
>
</view> -->
</view>
</view>
<u-toast
ref=
"uToast"
/>
</scroll-view>
</template>
<
script
>
import
payCom
from
"@/components/pay/pay"
;
import
goodlist
from
"@/components/goods/list"
;
export
default
{
components
:
{
goodlist
,
payCom
,
},
data
()
{
return
{
mc
:
""
,
secondary
:
""
,
headStyle
:
{},
contentStyle
:
{},
orders
:
{},
loading
:
true
,
id
:
0
,
customStyle
:
{
marginLeft
:
"20px"
,
padding
:
"0 30rpx"
,
},
scrollTop
:
0
,
recommend
:
[],
prevPage
:
""
,
themCustomStyle
:
{
marginLeft
:
"20px"
,
padding
:
"0 30rpx"
,
color
:
"#FFF"
,
},
expressInfo
:
[],
showAfter
:
false
,
};
},
onLoad
(
option
)
{
if
(
option
.
id
)
{
this
.
id
=
option
.
id
;
this
.
getData
();
}
this
.
mc
=
this
.
$uiConfig
.
mainColor
;
this
.
secondary
=
this
.
$uiConfig
.
secondary
;
this
.
headStyle
.
background
=
`linear-gradient(to right,
${
this
.
mc
}
,80%,
${
this
.
secondary
}
)`
;
let
nav
=
uni
.
getMenuButtonBoundingClientRect
();
this
.
headStyle
.
paddingTop
=
nav
.
top
+
"px"
;
this
.
contentStyle
.
paddingTop
=
nav
.
top
+
44
+
"px"
;
let
p
=
getCurrentPages
();
if
(
p
.
length
>
1
)
{
this
.
prevPage
=
p
[
p
.
length
-
2
].
route
;
}
this
.
themCustomStyle
.
background
=
this
.
mc
;
},
methods
:
{
paste
(
value
)
{
uni
.
setClipboardData
({
data
:
value
,
});
},
scrollHandler
(
e
)
{
this
.
scrollTop
=
e
.
detail
.
scrollTop
;
},
scrollTopHandler
()
{
this
.
scrollTop
=
0
;
},
redirectPrev
()
{
if
(
this
.
prevPage
!=
""
)
{
uni
.
navigateBack
({
delta
:
1
,
});
}
},
jumpPage
(
url
)
{
uni
.
navigateTo
({
url
:
url
,
});
},
getData
()
{
this
.
requestAdmin
(
"/api/order/GetGoodsOrderInfo"
,
{
OrderId
:
this
.
id
,
},
(
res
)
=>
{
this
.
orders
=
res
.
data
;
this
.
expressInfo
=
res
.
data
.
OrderInfo
.
OrderExpressList
;
console
.
log
(
790
,
this
.
orders
);
}
);
},
goExpressHandler
(
express
,
no
,
id
)
{
uni
.
navigateTo
({
url
:
"/pages/order/express?express="
+
express
+
"&no="
+
no
+
"&address="
+
this
.
orders
?.
OrderInfo
?.
DistrictAddress
+
this
.
orders
?.
OrderInfo
?.
ShoppingAddress
+
"&id="
+
id
,
});
},
// 强制取消
OrderCancel
()
{
let
that
=
this
;
let
text
=
""
;
if
(
this
.
orders
.
OrderStatus
==
1
)
{
text
=
"确认取消?"
;
}
else
if
(
this
.
orders
.
OrderStatus
==
2
)
{
text
=
"确认取消?客人付款金额将原路退回。"
;
}
uni
.
showModal
({
title
:
"提示"
,
content
:
text
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderForcedToCancel"
,
{
OrderId
:
that
.
orders
.
OrderId
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
}
);
}
},
});
},
//确认收货
ConfirmReceipt
()
{
let
msg
=
{
OrderId
:
this
.
orders
.
OrderId
,
Type
:
5
,
};
let
that
=
this
;
uni
.
showModal
({
title
:
"提示"
,
content
:
"是否确认收货?"
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderOperation"
,
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
});
}
},
});
},
//线下付款
Offpayment
()
{
let
that
=
this
;
uni
.
showModal
({
title
:
"提示"
,
content
:
"确认转为线下付款,转后无法恢复!"
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
that
.
requestAdmin
(
"/api/order/SetOrderOfflinePayment"
,
{
OrderId
:
that
.
orders
.
OrderId
},
(
_res
)
=>
{
if
(
_res
.
resultCode
===
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
duration
:
2000
,
});
that
.
getData
();
}
},
null
);
}
},
});
},
},
};
</
script
>
<
style
>
.orderdetail
{
overflow
:
hidden
;
background
:
#f3f4f6
;
padding-bottom
:
50px
;
}
.orderdetail
.headStatus
{
overflow
:
hidden
;
position
:
relative
;
width
:
140vw
;
padding-right
:
40vw
;
padding-bottom
:
10px
;
position
:
fixed
;
left
:
0
;
right
:
0
;
top
:
0
;
display
:
flex
;
}
.orderdetail
.headStatus
.arrow
{
height
:
24px
;
margin
:
5px
10px
;
width
:
24px
;
}
.orderdetail
.headStatus
.title
{
font-size
:
18px
;
color
:
#fff
;
flex
:
1
;
width
:
1px
;
margin-left
:
10px
;
line-height
:
34px
;
}
.orderdetail
.status
{
padding-bottom
:
25px
;
position
:
relative
;
width
:
140vw
;
padding-right
:
40vw
;
padding-top
:
0
!important
;
}
.orderdetail
.status
.status-title
{
text-align
:
center
;
font-size
:
22px
;
color
:
#fff
;
margin-top
:
-18px
;
}
.orderdetail
.status
.sub-title
{
font-size
:
14px
;
color
:
#fff
;
text-align
:
center
;
margin-top
:
10px
;
font-weight
:
300
;
}
.orderdetail
.block
{
background
:
#fff
;
border-radius
:
10px
;
margin-top
:
-10px
;
padding
:
20px
;
padding-bottom
:
0
;
position
:
relative
;
margin-bottom
:
20px
;
}
.orderdetail
.address
{
display
:
flex
;
margin-bottom
:
20px
;
}
.orderdetail
.address
.icon
{
width
:
20px
;
height
:
20px
;
margin-right
:
10px
;
}
.orderdetail
.address
.content
{
flex
:
1
;
}
.orderdetail
.address
.content
.concat
{
font-size
:
14px
;
color
:
#000
;
}
.orderdetail
.address
.content
.address
{
font-size
:
13px
;
margin-top
:
10px
;
color
:
gray
;
}
.orderdetail
.goods
{
}
.orderdetail
.goods
.item
{
margin-bottom
:
20px
;
}
.orderdetail
.goods
.item
:last-child
{
margin-bottom
:
0
;
}
.orderdetail
.goods
.item
.img
{
width
:
80px
;
height
:
80px
;
border-radius
:
2px
;
}
.orderdetail
.goods
.item
.good-info
{
margin-left
:
15px
;
flex
:
1
;
flex-direction
:
column
;
width
:
1px
;
display
:
flex
;
}
.orderdetail
.goods
.item
.good-info
.good-name
{
font-size
:
15px
;
font-weight
:
600
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
height
:
24px
;
}
.orderdetail
.goods
.item
.good-info
.good-attr
{
font-size
:
13px
;
font-weight
:
500
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
color
:
gray
;
display
:
flex
;
flex-direction
:
column
;
}
.orderdetail
.goods
.item
.good-info
.good-price
{
font-size
:
16px
;
height
:
20px
;
}
.orderdetail
.order-info-item
{
padding
:
10px
0
;
border-bottom
:
1px
solid
#f5f5f5
;
}
.orderdetail
.order-info-item
:last-child
{
border-bottom
:
none
;
}
.orderdetail
.order-info-item
.field
{
margin-bottom
:
10px
;
display
:
flex
;
}
.orderdetail
.order-info-item.peisong
{
border
:
none
;
background
:
#f1f1f1
;
border-radius
:
5px
;
padding
:
10px
;
margin
:
15px
0
5px
0
;
overflow
:
hidden
;
}
.orderdetail
.order-info-item
.field
:last-child
{
margin-bottom
:
0
;
}
.orderdetail
.order-info-item
.field
.label
{
width
:
80px
;
margin-right
:
20px
;
color
:
gray
;
}
.orderdetail
.order-info-item
.field
.content
{
flex
:
1
;
width
:
1px
;
color
:
#000
;
}
.orderdetail
.order-info-item
.field
.content.right
{
text-align
:
right
;
}
.orderdetail
.btn-box
{
display
:
flex
;
flex-direction
:
row-reverse
;
height
:
45px
;
padding
:
5px
20px
;
position
:
fixed
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
2
;
border-top
:
1px
solid
#f5f5f5
;
background
:
#fff
;
}
.orderdetail
.customer
{
padding-top
:
20
rpx
;
margin-top
:
20
rpx
;
border-top
:
2
rpx
solid
#f5f5f5
;
border-bottom
:
2
rpx
solid
#f5f5f5
;
}
.orderdetail
.customer
button
{
width
:
100%
;
display
:
inline-block
;
background
:
none
;
border
:
none
;
outline
:
none
;
font-size
:
14px
;
font-weight
:
600
;
color
:
#111
;
}
.orderdetail
.customer
button
::after
{
border
:
none
;
outline
:
none
;
}
</
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