2023-09-20 17:00:55 +08:00
< template >
< view class = "order-details pos-order-details" >
< view class = "header acea-row row-middle" >
< view class = "state" > { { title } } < / view >
< view class = "data" >
< view class = "order-num" > 订单 : { { orderInfo . order _sn } } < / view >
< view >
< span class = "time" > { { orderInfo . create _time } } < / span >
< / view >
< / view >
< / view >
< view class = "remarks acea-row" v-if ="goname != 'looks'" style="align-items: center;" >
< span class = "iconfont icon-zhinengkefu-" > < / span >
< view class = "line1" style = "text-align: left; flex: 1; margin-left: 10rpx;" @click ="modify('1')" >
{ { orderInfo . remark ? orderInfo . remark : '订单未备注,点击添加备注信息' } }
< / view >
< / view >
< view class = "orderingUser acea-row row-middle" >
< span class = "iconfont icon-yonghu2" > < / span > { { ( orderInfo . user && orderInfo . user . nickname ) || '' } }
< / view >
< view class = "address" >
< view class = "name" >
{ { orderInfo . real _name } } < span class = "phone" > { { orderInfo . user _phone } } < / span >
< / view >
< view > { { orderInfo . user _address } } < / view >
<!-- # ifdef H5 -- >
< button class = "copy copy-data" : data -clipboard -text = " ' 收货人姓名 : ' + orderInfo.real_name + ' \ n收货人电话 : ' + orderInfo.user_phone + ' \ n收货人地址 : ' + orderInfo.user_address " > 复制 < / button >
<!-- # endif -- >
<!-- # ifdef MP || APP - PLUS -- >
< button class = "copy" @tap ="copyText" > 复制 < / button >
<!-- # endif -- >
< / view >
< view class = "line" >
< image :src ="`${domain}/static/images/line.jpg`" / >
< / view >
< view class = "pos-order-goods" >
< navigator :url ="`/pages/goods_details/index?id=${item.cart_info.product.product_id}`" hover -class = " none " class = "goods" v-for ="(item, index) in orderInfo.orderProduct" :key ="index" >
< view class = "acea-row row-between-wrapper" >
< view class = "picTxt acea-row row-between-wrapper" >
< view class = "pictrue" >
< image : src = "item.cart_info.productAttr.image || item.cart_info.product.image" / >
< / view >
< view class = "text acea-row row-between row-column" >
< view class = "info line2" >
{ { item . cart _info . product . store _name } }
< / view >
< view class = "attr" > { { item . cart _info . product . suk } } < / view >
2023-12-18 17:55:45 +08:00
< view class = "attr" @click.stop ="showBarCode(item.cart_info.productAttr.product)" v-if ="item.cart_info.productAttr.product&&item.cart_info.productAttr.product.bar_code" >
商品条码 : { { item . cart _info . productAttr . product . bar _code } }
< / view >
2023-09-20 17:00:55 +08:00
< / view >
< / view >
< view class = "money" >
< view class = "x-money" > ¥ { { item . cart _info . productAttr . price } } < / view >
< view class = "num" > x { { item . product _num } }
< text class = "font-color refund_num" v-if ="item.product_num-item.refund_num>0" > ( - {{ item.product_num -item .refund_num }} ) < / text >
< / view >
2023-12-18 17:55:45 +08:00
<!-- < view v-if ="orderInfo.order_type == 0" class="y-money" > ¥ {{ item.cart_info.productAttr.ot_price }} < / view > - - >
2023-09-20 17:00:55 +08:00
< / view >
< / view >
< / navigator >
< / view >
< view class = "public-total" >
共 { { orderInfo . total _num } } 件商品 , 应支付
< span class = "money" > ¥ { { orderInfo . pay _price } } < / span > ( 邮费 ¥ { { orderInfo . pay _postage } } )
< / view >
< view class = "wrapper" >
< view class = "item acea-row row-between" >
< view > 订单编号 : < / view >
< view class = "conter acea-row row-middle row-right" >
{ { orderInfo . order _sn } }
<!-- # ifdef H5 -- >
< button class = "copy copy-data" :data-clipboard-text ="orderInfo.order_sn" > 复制 < / button >
<!-- # endif -- >
<!-- # ifdef MP || APP - PLUS -- >
< span class = "copy copy-data" @click ="copyNum(orderInfo.order_sn)" > 复制 < / span >
<!-- # endif -- >
< / view >
< / view >
< view class = "item acea-row row-between" >
< view > 下单时间 : < / view >
< view class = "conter" > { { orderInfo . create _time } } < / view >
< / view >
< view class = "item acea-row row-between" >
< view > 支付状态 : < / view >
< view class = "conter" >
{ { orderInfo . paid == 1 ? "已支付" : "未支付" } }
< / view >
< / view >
< view class = "item acea-row row-between" >
< view > 支付方式 : < / view >
< view class = "conter" > { { orderInfo . pay _type == 0 ? "余额支付" : ( orderInfo . pay _type == 1 || orderInfo . pay _type == 2 || orderInfo . pay _type == 3 ) ? "微信支付" : "先货后款" } } < / view >
< / view >
< view class = "item acea-row row-between" >
< view > 买家留言 : < / view >
< view class = "conter" > { { orderInfo . mark } } < / view >
< / view >
< / view >
< view v -if = " orderInfo.is_virtual = = 1 " class = 'wrapper' >
< view v -for = " ( item , index ) in orderInfo.order_extend " v -if = " item & & index " :key ="index" class = 'item acea-row row-between' >
< view > { { index } } : < / view >
< view v -if = " ! Array.isArray ( item ) " class = 'conter' > { { item } } < / view >
< view v -else class = 'conter virtual_image' >
< image v-for ="(pic,i) in item" :key="i" class="picture" :src="pic" @click="getPhotoClickIdx(item,i)" > < / image >
< / view >
< / view >
< / view >
< view class = "wrapper" >
< view class = "item acea-row row-between" >
< view > 支付金额 : < / view >
< view class = "conter" > ¥ { { orderInfo . total _price } } < / view >
< / view >
< view v-if ="orderInfo.coupon_price > 0" class="item acea-row row-between" >
< view > 优惠券抵扣 : < / view >
< view class = "conter" > - ¥ { { orderInfo . coupon _price } } < / view >
< / view >
< view v-if ="orderInfo.integral_price > 0" class="item acea-row row-between" >
< view > 积分抵扣 : < / view >
< view class = "conter" > - ¥ { { orderInfo . integral _price } } < / view >
< / view >
< view v-if ="orderInfo.pay_postage > 0" class="item acea-row row-between" >
< view > 运费 : < / view >
< view class = "conter" > ¥ { { orderInfo . pay _postage } } < / view >
< / view >
< view class = "actualPay acea-row row-right" >
实付款 : < span class = "money font-color-red" > ¥ { { orderInfo . pay _price } } < / span >
< / view >
< / view >
< view class = "wrapper" v-if ="orderInfo.delivery_type != '3' && orderInfo.order_type === 0 && orderInfo.delivery_type" >
< view class = "item acea-row row-between" >
< view > 配送方式 : < / view >
< view class = "conter" v-if ="orderInfo.delivery_type === '1' || orderInfo.delivery_type === '4'" >
快递
< / view >
< view class = "conter" v-if ="orderInfo.delivery_type === '2'" > 送货 < / view >
< / view >
< view class = "item acea-row row-between" >
< view v-if ="orderInfo.delivery_type === '1' || orderInfo.delivery_type === '4'" > 快递公司 : < / view >
< view v-if ="orderInfo.delivery_type === '2'" > 送货人 : < / view >
< view class = "conter line1" > { { orderInfo . delivery _name ? orderInfo . delivery _name : '' } } < / view >
< / view >
< view class = "item acea-row row-between" >
< view v-if ="orderInfo.delivery_type === '1' || orderInfo.delivery_type === '4'" > 快递单号 : < / view >
< view v-if ="orderInfo.delivery_type === '2'" > 送货人电话 : < / view >
< view class = "conter" style = "display: flex;" >
< text > { { orderInfo . delivery _id ? orderInfo . delivery _id : '' } } < / text >
< text class = "copy copy-data" :data-clipboard-text ="orderInfo.delivery_id" > 复制 < / text >
< / view >
< / view >
< / view >
< view style = "height:120upx;" > < / view >
< view class = "footer acea-row row-right row-middle" v-if ="goname != 'looks'" style="margin-bottom: var(--status-bar-height);" >
< view class = "more" > < / view >
< view class = "bnt cancel" v-if ="orderInfo.pay_type == 8 && orderInfo.status == 12" @click="tongyi(order_id,1)" >
同意
< / view >
< view class = "bnt cancel" v-if ="orderInfo.pay_type == 8 && orderInfo.status == 12" @click="tongyi(order_id,2)" >
拒绝
< / view >
< view class = "bnt cancel" @click ="modify('0')" v-if ="orderInfo.paid == 0" >
一键改价
< / view >
< view class = "bnt cancel" @click ="modify('0')" v-if ="types == -1" >
立即退款
< / view >
< view class = "bnt cancel" @click ="modify('1')" > 订单备注 < / view >
< view class = "bnt cancel" v-if ="orderInfo.pay_type === 'offline' && orderInfo.paid === 0" @click="offlinePay" >
确认付款
< / view >
< view class = "bnt delivery" @click ="toPostagequ(orderInfo)" v-if ="orderInfo.status == 0&&orderInfo.activity_type==0&& orderInfo.order_type !=1 " >
收件码
< / view >
< navigator class = "bnt delivery" v-if ="orderInfo.paid == 1 && orderInfo.status == 0 && orderInfo.order_type == 0&&orderInfo.activity_type==98" :url="'/pages/admin/delivery/index?id='+orderInfo.order_id+'&merId='+mer_id" > 去发货 < / navigator >
< view class = "bnt delivery" v-if ="orderInfo.paid == 1 && (orderInfo.status == 0 || orderInfo.status == 9) && orderInfo.order_type == 1" @click="goCancellation" > 去核销 < / view >
< / view >
< PriceChange :change ="change" :orderInfo ="orderInfo" v -on :closechange ="changeclose($event)" v -on :savePrice ="savePrice"
: status = "status" > < / PriceChange >
< u -popup :show ="popUpShow" mode = "center" :closeOnClickOverlay ="true" round = "12" @close ="popUpClose" >
< view style = "text-align: center;margin-top: 30rpx;" >
请把二维码展示给取货人员
< / view >
< view style = "padding: 28.07rpx;" >
< image :src ="payCodeUrl" style = "width:400rpx;height: 400rpx;" > < / image >
< / view >
< / u - p o p u p >
2023-12-18 17:55:45 +08:00
< view class = "bar-code" v-show ="showBar" @click="showBar=false" >
< barcode ref = "code" > < / barcode >
< / view >
2023-09-20 17:00:55 +08:00
< / view >
< / template >
< script >
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者, 助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件, 未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import PriceChange from "@/components/PriceChange" ;
// #ifdef H5
import ClipboardJS from "@/plugin/clipboard/clipboard.js" ;
// #endif
import {
getAdminOrderDetail ,
setAdminOrderPrice ,
setAdminOrderRemark ,
setOfflinePay ,
setOrderRefund ,
orderCancellation ,
logisticsCode ,
postconfirm
} from "@/api/admin" ;
import { isMoney } from '@/utils/validate.js'
import { HTTP _REQUEST _URL } from '@/config/app' ;
export default {
name : "AdminOrder" ,
components : {
PriceChange
} ,
props : { } ,
data : function ( ) {
return {
2023-12-18 17:55:45 +08:00
showBar : false ,
2023-09-20 17:00:55 +08:00
order : false ,
change : false ,
order _id : "" ,
mer _id : '' ,
orderInfo : {
_status : { } ,
user : { }
} ,
domain : HTTP _REQUEST _URL ,
status : "" ,
title : "" ,
payType : "" ,
types : "" ,
clickNum : 1 ,
goname : '' ,
popUpShow : false ,
payCodeUrl : ''
} ;
} ,
watch : {
"$route.params.oid" : function ( newVal ) {
let that = this ;
if ( newVal != undefined ) {
that . order _id = newVal ;
that . getIndex ( ) ;
}
}
} ,
onLoad : function ( option ) {
let self = this
self . order _id = option . id
self . mer _id = option . mer _id
self . goname = option . goname
self . getIndex ( ) ;
// #ifdef H5
self . $nextTick ( function ( ) {
var clipboard = new ClipboardJS ( '.copy-data' ) ;
// var copybtn = document.getElementsByClassName("copy-data");
// var clipboard = new Clipboard(copybtn);
clipboard . on ( 'success' , function ( e ) {
self . $util . Tips ( {
title : '复制成功'
} )
} ) ;
clipboard . on ( 'error' , function ( e ) {
self . $util . Tips ( {
title : '复制失败'
} )
} ) ;
} ) ;
// #endif
} ,
methods : {
2023-12-18 17:55:45 +08:00
showBarCode ( val ) {
this . showBar = true
this . $refs [ 'code' ] . init ( {
name : val . store _name ,
code : val . bar _code
} ) ;
} ,
2023-09-20 17:00:55 +08:00
//收件码
toPostagequ ( item ) {
this . popUpShow = true
logisticsCode ( item . order _id ) . then ( res => {
if ( res . status == 200 ) {
this . payCodeUrl = res . data . qrcode
}
} )
} ,
// 关闭二维码弹窗
popUpClose ( ) {
this . popUpShow = false
} ,
//同意先货后款订单
tongyi ( id , number ) {
let data = {
id : id ,
type : number
}
if ( number == 1 ) {
this . $nextTick ( ( ) => {
uni . navigateTo ( {
url : ` /pages/admin/orderList/index?types=1&merId= ${ this . mer _id } `
} )
} )
} else if ( number == 2 ) {
uni . navigateTo ( {
url : ` /pages/admin/orderList/index?types=1&merId= ${ this . mer _id } `
} )
}
postconfirm ( this . mer _id , data ) . then ( res => {
} )
} ,
more : function ( ) {
this . order = ! this . order ;
} ,
modify : function ( status ) {
this . change = true ;
this . status = status ;
} ,
changeclose : function ( msg ) {
this . change = msg ;
} ,
// 图片预览
getPhotoClickIdx ( list , idx ) {
uni . previewImage ( {
current : list [ idx ] , // 传 Number H5端出现不兼容
urls : list
} ) ;
} ,
copyText : function ( e ) {
// var copy = e.currentTarget.dataset.copy; //data-copy传过来的数值
let arr = [
{
name : "收货人姓名" ,
value : this . orderInfo . real _name
} ,
{
name : "收货人电话" ,
value : this . orderInfo . user _phone
} ,
{
name : "收货人地址" ,
value : this . orderInfo . user _address
}
]
// console.log(`${arr.map(item =>`${item.name}: ${item.value}`).join("\n")}`)
wx . setClipboardData ( {
data : ` ${ arr . map ( item => ` ${ item . name } : ${ item . value } ` ) . join ( "\n" ) } ` ,
success : function ( res ) {
wx . getClipboardData ( {
success : function ( res ) {
wx . showToast ( {
title : '复制成功'
} )
}
} )
}
} )
} ,
getIndex : function ( ) {
let that = this ;
getAdminOrderDetail ( that . mer _id , that . order _id ) . then (
res => {
that . orderInfo = res . data ;
} ,
err => {
that . $util . Tips ( {
title : err
} , {
tab : 3 ,
url : 1
} ) ;
}
) ;
} ,
/*核销订单*/
goCancellation ( ) {
let that = this ;
2023-10-07 10:03:29 +08:00
// uni.navigateTo({
// url: '/pages/admin/cancellate_result/index?mer_id='+that.mer_id+'&code='+that.orderInfo.verify_code,
// })
2023-09-20 17:00:55 +08:00
uni . navigateTo ( {
2023-10-07 10:03:29 +08:00
url : ` /pages/admin/order_cancellation/index?mer_id= ${ that . mer _id } `
2023-09-20 17:00:55 +08:00
} )
// uni.showModal({
// title: '订单核销',
// content: '请确认是否核销该订单?',
// success: function(res) {
// if (res.confirm) {
// orderCancellation(that.mer_id,that.orderInfo.order_id).then(res => {
// return that.$util.Tips({
// title: '操作成功',
// icon: 'success'
// }, function() {
// that.getIndex();
// });
// }).catch(err => {
// return that.$util.Tips({
// title: err
// });
// })
// }
// }
// })
} ,
async savePrice ( opt ) {
let that = this ,
data = { } ,
price = opt . price ,
refund _price = opt . refund _price ,
refund _status = that . orderInfo . refund _status ,
remark = opt . remark ;
data . order _id = that . orderInfo . order _id ;
if ( that . status == 0 ) {
// if (!isMoney(price)) {
// return that.$util.Tips({
// title: '请输入正确的金额'
// });
// }
data . price = price ;
let parmas = {
pay _postage : opt . orderInfo . pay _postage ,
coupon _price : opt . orderInfo . coupon _price ,
total _price : Number ( opt . orderInfo . total _price )
}
setAdminOrderPrice ( that . mer _id , data . order _id , parmas ) . then (
res => {
that . change = false ;
that . $util . Tips ( {
title : '改价成功' ,
icon : 'success'
} )
that . getIndex ( ) ;
} ,
err => {
// console.log(err, 'err')
that . change = false ;
that . $util . Tips ( {
title : err
} ) ;
}
) ;
} else if ( that . status == 0 && refund _status === 1 ) {
if ( ! isMoney ( refund _price ) ) {
return that . $util . Tips ( {
title : '请输入正确的金额'
} ) ;
}
data . price = refund _price ;
data . type = opt . type ;
setOrderRefund ( that . mer _id , data ) . then (
res => {
that . change = false ;
that . $util . Tips ( {
title : res . message
} ) ;
that . getIndex ( ) ;
} ,
err => {
// console.log(err, 'err')
that . change = false ;
that . $util . Tips ( {
title : err
} ) ;
}
) ;
} else {
if ( ! remark ) {
return this . $util . Tips ( {
title : '请输入备注'
} )
}
// data.remark = remark;
// console.log(data);
setAdminOrderRemark ( that . mer _id , data . order _id , { remark : remark } ) . then (
res => {
that . change = false ;
this . $util . Tips ( {
title : res . message ,
icon : 'success'
} )
that . getIndex ( ) ;
} ,
err => {
that . change = false ;
that . $util . Tips ( {
title : err
} ) ;
}
) ;
}
} ,
offlinePay : function ( ) {
setOfflinePay ( this . mer _id , {
order _id : this . orderInfo . order _id
} ) . then (
res => {
this . $util . Tips ( {
title : res . msg ,
icon : 'success'
} ) ;
this . getIndex ( ) ;
} ,
err => {
this . $util . Tips ( {
title : err
} ) ;
}
) ;
} ,
copyNum ( id ) {
uni . setClipboardData ( {
data : id ,
success : function ( ) {
// console.log('success');
}
} ) ;
} ,
copyData ( id ) {
uni . setClipboardData ( {
data : id ,
success : function ( ) {
// console.log('success');
}
} ) ;
} ,
// #ifdef H5
webCopy ( item , index ) {
// console.log('yunxingle')
let items = item
let indexs = index
let self = this
if ( self . clickNum == 1 ) {
// console.log('22')
self . clickNum += 1
self . webCopy ( items , indexs )
}
}
// #endif
}
} ;
< / script >
< style lang = "scss" >
/*商户管理订单详情*/
. pos - order - details . header {
background : linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
background : - webkit - linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
background : - moz - linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
}
. pos - order - details . header . state {
font - size : 36 upx ;
color : # fff ;
}
. pos - order - details . header . data {
margin - left : 35 upx ;
font - size : 28 upx ;
}
. pos - order - details . header . data . order - num {
font - size : 30 upx ;
margin - bottom : 8 upx ;
}
. pos - order - details . remarks {
width : 100 % ;
height : 86 upx ;
background - color : # fff ;
padding : 0 30 upx ;
}
. pos - order - details . remarks . iconfont {
font - size : 40 upx ;
color : # 2 a7efb ;
}
. pos - order - details . remarks input {
width : 630 upx ;
height : 100 % ;
font - size : 30 upx ;
}
. pos - order - details . remarks input : : placeholder {
color : # 666 ;
}
. pos - order - details . orderingUser {
font - size : 26 upx ;
color : # 282828 ;
padding : 0 30 upx ;
height : 67 upx ;
background - color : # fff ;
margin - top : 16 upx ;
border - bottom : 1 px solid # f5f5f5 ;
}
. pos - order - details . orderingUser . iconfont {
font - size : 40 upx ;
color : # 2 a7efb ;
margin - right : 15 upx ;
}
. pos - order - details . address {
margin - top : 0 ;
}
. pos - order - details . pos - order - goods {
margin - top : 17 upx ;
}
. pos - order - details . footer . more {
font - size : 27 upx ;
color : # aaa ;
width : 100 upx ;
height : 64 upx ;
text - align : center ;
line - height : 64 upx ;
margin - right : 25 upx ;
position : relative ;
}
. pos - order - details . footer . delivery {
background : linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
background : - webkit - linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
background : - moz - linear - gradient ( to right , # 2291 f8 0 % , # 1 cd1dc 100 % ) ;
}
. pos - order - details . footer . more . order . arrow {
width : 0 ;
height : 0 ;
border - left : 11 upx solid transparent ;
border - right : 11 upx solid transparent ;
border - top : 20 upx solid # e5e5e5 ;
position : absolute ;
left : 15 upx ;
bottom : - 18 upx ;
}
. pos - order - details . footer . more . order . arrow : before {
content : '' ;
width : 0 ;
height : 0 ;
border - left : 9 upx solid transparent ;
border - right : 9 upx solid transparent ;
border - top : 19 upx solid # fff ;
position : absolute ;
left : - 10 upx ;
bottom : 0 ;
}
. pos - order - details . footer . more . order {
width : 200 upx ;
background - color : # fff ;
border : 1 px solid # eee ;
border - radius : 10 upx ;
position : absolute ;
top : - 200 upx ;
z - index : 9 ;
}
. pos - order - details . footer . more . order . item {
height : 77 upx ;
line - height : 77 upx ;
}
. pos - order - details . footer . more . order . item ~ . item {
border - top : 1 px solid # f5f5f5 ;
}
. pos - order - details . footer . more . moreName {
width : 100 % ;
height : 100 % ;
}
/*订单详情*/
. order - details . header {
padding : 0 30 upx ;
height : 150 upx ;
}
. order - details . header . on {
background - color : # 666 ! important ;
}
. order - details . header . pictrue {
width : 110 upx ;
height : 110 upx ;
}
. order - details . header . pictrue image {
width : 100 % ;
height : 100 % ;
}
. order - details . header . data {
color : rgba ( 255 , 255 , 255 , 0.8 ) ;
font - size : 24 upx ;
margin - left : 27 upx ;
}
. order - details . header . on . data {
margin - left : 0 ;
}
. order - details . header . data . state {
font - size : 30 upx ;
font - weight : bold ;
color : # fff ;
margin - bottom : 7 upx ;
}
/* .order-details .header .data .time{margin-left:20upx;} */
. order - details . nav {
background - color : # fff ;
font - size : 26 upx ;
color : # 282828 ;
padding : 25 upx 0 ;
}
. order - details . nav . navCon {
padding : 0 40 upx ;
}
. order - details . nav . navCon . on {
font - weight : bold ;
color : # e93323 ;
}
. order - details . nav . progress {
padding : 0 65 upx ;
margin - top : 10 upx ;
}
. order - details . nav . progress . line {
width : 100 upx ;
height : 2 upx ;
background - color : # 939390 ;
}
. order - details . nav . progress . iconfont {
font - size : 25 upx ;
color : # 939390 ;
margin - top : - 2 upx ;
width : 30 upx ;
height : 30 upx ;
line - height : 33 upx ;
text - align : center ;
margin - right : 0 ! important ;
}
. order - details . address {
font - size : 26 upx ;
color : # 868686 ;
background - color : # fff ;
padding : 25 upx 30 upx 30 upx 30 upx ;
position : relative ;
}
. order - details . address . name {
font - size : 30 upx ;
color : # 282828 ;
margin - bottom : 0.1 rem ;
}
. order - details . address . name . phone {
margin - left : 40 upx ;
}
. order - details . line {
width : 100 % ;
height : 3 upx ;
}
. order - details . line image {
width : 100 % ;
height : 100 % ;
display : block ;
}
. order - details . wrapper {
background - color : # fff ;
margin - top : 12 upx ;
padding : 30 upx ;
}
. order - details . wrapper . item {
font - size : 28 upx ;
color : # 282828 ;
}
. order - details . wrapper . item ~ . item {
margin - top : 20 upx ;
}
. order - details . wrapper . item . conter {
color : # 868686 ;
text - align : right ;
max - width : 450 rpx ;
}
. order - details . wrapper . item . virtual _image {
// text-align: left;
margin - left : 50 rpx ;
}
. order - details . wrapper . item . virtual _image . picture {
width : 106 rpx ;
height : 106 rpx ;
border - radius : 8 rpx ;
margin - right : 10 rpx ;
& : last - child {
margin - right : 0 ;
}
}
. order - details . wrapper . item . conter . copy {
font - size : 20 rpx ;
color : # 868686 ;
border - radius : 3 rpx ;
border : 1 px solid # 868686 ;
padding : 0 rpx 15 rpx ;
margin - left : 24 rpx ;
height : 40 rpx ;
display : flex ;
align - items : center ;
justify - content : center ;
border - radius : 16 rpx ;
}
. address . copy {
font - size : 20 rpx ;
color : # 868686 ;
border - radius : 3 rpx ;
border : 1 px solid # 868686 ;
padding : 0 rpx 15 rpx ;
height : 40 rpx ;
display : flex ;
align - items : center ;
justify - content : center ;
border - radius : 16 rpx ;
position : absolute ;
right : 30 rpx ;
top : 20 rpx ;
}
. order - details . wrapper . actualPay {
border - top : 1 upx solid # eee ;
margin - top : 30 upx ;
padding - top : 30 upx ;
}
. order - details . wrapper . actualPay . money {
font - weight : bold ;
font - size : 30 upx ;
}
. order - details . footer {
width : 100 % ;
height : 100 upx ;
position : fixed ;
bottom : 0 ;
left : 0 ;
background - color : # fff ;
padding : 0 30 upx ;
border - top : 1 px solid # eee ;
}
. order - details . footer . bnt {
width : auto ;
height : 60 upx ;
line - height : 60 upx ;
text - align : center ;
line - height : upx ;
border - radius : 50 upx ;
color : # fff ;
font - size : 27 upx ;
padding : 0 3 % ;
}
. order - details . footer . bnt . cancel {
color : # aaa ;
border : 1 px solid # ddd ;
}
. order - details . footer . bnt . default {
color : # 444 ;
border : 1 px solid # 444 ;
}
. order - details . footer . bnt ~ . bnt {
margin - left : 18 upx ;
}
. pos - order - goods {
padding : 0 30 upx ;
background - color : # fff ;
position : relative ;
}
. pos - order - goods . goods {
padding : 20 rpx 0 ;
overflow : hidden ;
}
. pos - order - goods . goods ~ . goods {
border - top : 1 px dashed # e5e5e5 ;
}
. pos - order - goods . goods . picTxt {
width : 515 upx ;
}
. pos - order - goods . goods . picTxt . pictrue {
width : 130 upx ;
height : 130 upx ;
}
. pos - order - goods . goods . picTxt . pictrue image {
width : 100 % ;
height : 100 % ;
border - radius : 6 upx ;
}
. pos - order - goods . goods . picTxt . text {
width : 365 upx ;
height : 130 upx ;
}
. pos - order - goods . goods . picTxt . text . info {
font - size : 28 upx ;
color : # 282828 ;
}
. pos - order - goods . goods . picTxt . text . attr {
font - size : 24 upx ;
color : # 999 ;
}
. pos - order - goods . goods . money {
width : 164 upx ;
text - align : right ;
font - size : 28 upx ;
}
. pos - order - goods . goods . money . refund _num {
display : inline - block ;
margin - left : 10 rpx ;
}
. pos - order - goods . goods . money . x - money {
color : # 282828 ;
}
. pos - order - goods . goods . money . num {
color : # ff9600 ;
margin : 5 upx 0 ;
}
. pos - order - goods . goods . money . y - money {
color : # 999 ;
text - decoration : line - through ;
}
. pos - order - goods . cancellate {
font - size : 24 rpx ;
float : right ;
margin - top : 10 rpx ;
text {
margin - left : 26 rpx ;
}
}
. pos - order - goods . cancelled {
color : # FF9600 ;
}
. pos - order - goods . goods . uncancell {
color : # 999999 ;
}
. public - total {
font - size : 28 upx ;
color : # 282828 ;
border - top : 1 px solid # eee ;
height : 92 upx ;
line - height : 92 upx ;
text - align : right ;
padding : 0 30 upx ;
background - color : # fff ;
}
. public - total . money {
color : # ff4c3c ;
}
2023-12-18 17:55:45 +08:00
. bar - code {
position : fixed ;
top : 0 ;
left : 0 ;
z - index : 999999 ;
width : 100 vw ;
height : 100 vh ;
background - color : rgba ( 0 , 0 , 0 , 0.2 ) ;
display : flex ;
align - items : center ;
justify - content : center ;
}
2023-09-20 17:00:55 +08:00
< / style >