1282 lines
30 KiB
Vue
1282 lines
30 KiB
Vue
<template>
|
||
<view>
|
||
<!-- #ifdef MP || APP-PLUS -->
|
||
<NavBar titleText="订单详情" :iconColor="iconColor" :textColor="iconColor" :isScrolling="isScrolling" showBack>
|
||
</NavBar>
|
||
<!-- #endif -->
|
||
<OrderHeader :info="info" :remark="info.merchantRemark" @changeRemark="modify('1')"></OrderHeader>
|
||
|
||
<view class="order-detail pos-order-details mt20">
|
||
<!-- 地址信息 -->
|
||
<OrderAddress class="mt20" v-if="info.secondType === ProductTypeEnum.Reservation && info.shippingType ===5"
|
||
:orderInfo="info">
|
||
</OrderAddress>
|
||
<view class="address" v-if="info.shippingType==1&&info.secondType!=2">
|
||
<view class="name">
|
||
<text class="iconfont icon-ic_location4"></text>
|
||
{{ info.realName}}
|
||
<text class="phone">{{ info.userPhone }}</text>
|
||
</view>
|
||
<view v-if="info.shippingType == 1">地址:{{ info.userAddress }}</view>
|
||
</view>
|
||
<view class="acea-row row-middle user-box" :class="{'mt-20': info.secondType === ProductTypeEnum.Reservation && info.shippingType === 5 ||
|
||
info.shippingType == 1 && info.secondType != 2}">
|
||
<image :src="info.avatar" class="image"></image>
|
||
<view class="text">
|
||
<view class="acea-row row-middle name">
|
||
{{info.nickname}}
|
||
</view>
|
||
<view v-if="info.phone" class="">{{info.phone}}(ID:{{info.uid}})</view>
|
||
<view v-else class="">ID:{{info.uid}}</view>
|
||
</view>
|
||
</view>
|
||
<!-- 未拆单时,正常单 -->
|
||
<view class="pos-order-goods split mb20">
|
||
<view class="acea-row row-between mb-32">
|
||
<view class="">共{{info.totalNum}}件商品</view>
|
||
<!-- 核销记录 -->
|
||
<view class="fs-26 color-999" v-if="info.shippingType === 2 || info.shippingType === 4">
|
||
<navigator hover-class='none'
|
||
:url="'/pages/goods/punch_card_record_list/index?type=admin&orderNo='+info.orderNo">
|
||
<text>核销记录</text>
|
||
<text class="iconfont icon-ic_rightarrow"></text>
|
||
</navigator>
|
||
</view>
|
||
</view>
|
||
<!-- 商品详情 -->
|
||
<navigator :url="`/pages/goods_details/index?id=${item.product_id}`" hover-class="none" class="goods acea-row"
|
||
v-for="(item, index) in info.orderDetailList" :key="index">
|
||
<view class="picTxt acea-row">
|
||
<view class="pictrue">
|
||
<image :src="item.image" />
|
||
</view>
|
||
<view class="text info-text">
|
||
<view class="info line1">{{ item.productName }}</view>
|
||
<!-- 次卡商品展示核销次数 -->
|
||
<view v-if="info.secondType === ProductTypeEnum.PunchCard" class="attr line1">
|
||
服务:
|
||
<span>{{info.orderDetailList[0].verifyTotalTimes-info.orderDetailList[0].verifyRemainingTimes}}/</span>
|
||
<span>{{info.orderDetailList[0].verifyTotalTimes}}</span>
|
||
</view>
|
||
<!-- 非次卡商品展示规格 -->
|
||
<view v-else class="attr line1">{{ item.sku }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="money">
|
||
<BaseMoney :money="item.price" symbolSize="20" integerSize="32" decimalSize="20"></BaseMoney>
|
||
<view class="num">共{{ item.payNum }}件</view>
|
||
<view class="acea-row row-right">
|
||
<view class="writeOff" v-if="item.refundNum">
|
||
{{item.refundNum}}件已退款
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</navigator>
|
||
<!-- 次卡商品有效期 -->
|
||
<view class='mark acea-row row-between' v-if="info.orderDetailList && info.secondType === ProductTypeEnum.PunchCard">
|
||
<view>有效期间:</view>
|
||
<view v-if="info.orderDetailList[0].verifyEndDate">
|
||
{{info.orderDetailList[0].verifyStartDate+' '}}~{{' '+info.orderDetailList[0].verifyEndDate}}
|
||
</view>
|
||
<view v-else>无限期</view>
|
||
</view>
|
||
<view class="mark acea-row row-between" v-if="info.userRemark">
|
||
<view class="name">买家留言:</view>
|
||
<view>{{info.userRemark}}</view>
|
||
<!-- <view class="value line1">{{info.userRemark}}</view> -->
|
||
</view>
|
||
</view>
|
||
<!-- 配送方式-->
|
||
<DeliveryMethod :secondType="info.secondType" :orderInfo="info" :item="info" />
|
||
<!-- 结束 -->
|
||
<view class="wrapper">
|
||
<view class="item acea-row row-between">
|
||
<view>订单编号:</view>
|
||
<view class="conter acea-row row-middle row-right">
|
||
{{ info.orderNo || ''}}
|
||
<!-- #ifdef H5 -->
|
||
<text class="copy copy-data" :data-clipboard-text="info.orderNo">复制</text>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP -->
|
||
<text class="copy copy-data" @click="copyNum(info.orderNo)">复制</text>
|
||
<!-- #endif -->
|
||
</view>
|
||
</view>
|
||
<view class="item acea-row row-between">
|
||
<view>支付方式:</view>
|
||
<view class="conter">
|
||
{{info.payType | payTypeFilter}}
|
||
</view>
|
||
</view>
|
||
<view class="item acea-row row-between">
|
||
<view>支付时间:</view>
|
||
<view class="conter">
|
||
{{info.payTime || ''}}
|
||
</view>
|
||
</view>
|
||
<view class="item acea-row row-between">
|
||
<view>下单时间:</view>
|
||
<view class="conter">
|
||
{{info.createTime || ''}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- <view v-if="info.status > 4 && info.status < 9 && info.shippingType === 2" class="wrapper">
|
||
<view class="item acea-row row-between">
|
||
<view>核销时间:</view>
|
||
<view class='conter'>{{ info.verifyTime || '' }}</view>
|
||
</view>
|
||
</view> -->
|
||
<view class="" v-if="orderExtend.length">
|
||
<systemFromInfo :orderExtend="orderExtend"></systemFromInfo>
|
||
</view>
|
||
<view class="wrapper">
|
||
<view class='item acea-row row-between'>
|
||
<view>商品总价(共{{info.totalNum || 0}}件)</view>
|
||
<view class='conter'>¥{{info.proTotalPrice || 0}}</view>
|
||
</view>
|
||
<view class="item acea-row row-between">
|
||
<view>运费</view>
|
||
<view class="conter">¥{{ info.totalPostage || 0}}</view>
|
||
</view>
|
||
<view class='item acea-row row-between'>
|
||
<view>商户会员抵扣</view>
|
||
<view class='conter'>-¥{{info.merchantMemberDiscountPrice || 0}}</view>
|
||
</view>
|
||
<view class='item acea-row row-between'>
|
||
<view>SVIP抵扣</view>
|
||
<view class='conter'>-¥{{info.svipDiscountPrice || 0}}</view>
|
||
</view>
|
||
<view class="item acea-row row-between">
|
||
<view>商家优惠</view>
|
||
<view class="conter">-¥{{ info.merCouponPrice || 0}}</view>
|
||
</view>
|
||
<view class='item acea-row row-between'>
|
||
<view>平台优惠</view>
|
||
<view class='conter'>-¥{{info.platCouponPrice || 0}}</view>
|
||
</view>
|
||
<view class='item acea-row row-between'>
|
||
<view>积分抵扣(使用{{info.useIntegral || 0}}积分)</view>
|
||
<view class='conter'>-¥{{info.integralPrice || 0}}</view>
|
||
</view>
|
||
<view class="actualPay acea-row row-right">
|
||
实付款:
|
||
<BaseMoney :money="info.payPrice" symbolSize="24" integerSize="40" decimalSize="24" color="#E93323">
|
||
</BaseMoney>
|
||
</view>
|
||
</view>
|
||
<view class="height-add"></view>
|
||
<view class="footer acea-row row-right row-middle">
|
||
<view class="tomore" v-if="info.status==2&&!info.userRefundSign">
|
||
<span @click="toMore">更多</span>
|
||
<view class="more-operate" v-if="moreShow">
|
||
<view class="sjx"></view>
|
||
<view class="more-operate-item" @click="print">
|
||
小票打印
|
||
</view>
|
||
<view class="more-operate-item" @click="modify('1')">
|
||
订单备注
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="bnt cancel" @click="print" v-if="info.status!=2||(info.status==2&&info.userRefundSign)">
|
||
小票打印</view>
|
||
<view class="bnt cancel" @click="modify('1')" v-if="info.status!=2||(info.status==2&&info.userRefundSign)">订单备注
|
||
</view>
|
||
<view class="bnt cancel" v-if="!info.userRefundSign&&info.refundStatus == 0" @click="modify('2',1)">
|
||
直接退款</view>
|
||
<view class="bnt delivery" v-if="[1,2].includes(info.status)&&info.refundStatus != 3" @click="goDelivery(info)">
|
||
立即发货</view>
|
||
<view class="bnt delivery" v-if="info.status == 3 && info.refundStatus != 3 && info.shippingType != 5"
|
||
@click="goVerify(info)">
|
||
立即核销</view>
|
||
<view class="bnt delivery" v-if="[2,4,5,6].includes(info.status)&&info.shippingType=='1'"
|
||
@click="goLogistics(info)">发货记录
|
||
</view>
|
||
</view>
|
||
<PriceChange :change="change" :orderInfo="info" :isRefund="isRefund" v-on:closechange="changeclose($event)"
|
||
v-on:savePrice="savePrice" :status="status" :remark="info.merchantRemark"></PriceChange>
|
||
</view>
|
||
<uni-popup ref="hs_popup" background-color="#fff" borderRadius="10px">
|
||
<view class="sh_popup-content" :class="{ 'popup-height': popup_center === 'left' || popup_center === 'right' }">
|
||
<view class="sh_popup_title">
|
||
打印小票
|
||
</view>
|
||
<view class="sh_popup_text">
|
||
你确定要打印此订单小票吗?
|
||
</view>
|
||
<view class="sh_popup_btn">
|
||
<view class="no_btn btn" @click="hsPopupClose">取消</view>
|
||
<view class="yes_btn btn" @click="toRecycle">确认</view>
|
||
</view>
|
||
</view>
|
||
</uni-popup>
|
||
<verificationPopup ref="verificationPopup" :verificationOrderData="info"></verificationPopup>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
import PriceChange from "../components/PriceChange/index.vue";
|
||
import countDown from '@/components/countDown/index.vue'
|
||
import BaseMoney from "../components/BaseMoney.vue";
|
||
import systemFromInfo from '@/components/systemFromInfo';
|
||
import OrderTable from "../components/OrderDetail/OrderTable.vue";
|
||
import OrderHeader from "../components/OrderDetail/OrderHeader.vue";
|
||
import OrderAddress from "../components/OrderAddress";
|
||
import verificationPopup from '../components/verificationPopup/index.vue'
|
||
import {
|
||
ProductTypeEnum
|
||
} from "../../../enums/productEnums";
|
||
// #ifdef MP || APP-PLUS
|
||
import NavBar from "../components/NavBar.vue";
|
||
// #endif
|
||
// #ifdef H5
|
||
import ClipboardJS from "@/plugin/clipboard/clipboard.js";
|
||
// #endif
|
||
import {
|
||
employeeOrderInfo,
|
||
employeeOrderMark,
|
||
orderInvoiceListInfo,
|
||
printReceipt
|
||
} from '@/api/work.js';
|
||
import {
|
||
isMoney
|
||
} from '@/utils/validate.js'
|
||
import DeliveryMethod from "@/components/DeliveryMethod";
|
||
import {
|
||
getTableList
|
||
} from "../order";
|
||
|
||
export default {
|
||
name: "AdminOrder",
|
||
components: {
|
||
OrderHeader,
|
||
PriceChange,
|
||
countDown,
|
||
BaseMoney,
|
||
systemFromInfo,
|
||
DeliveryMethod,
|
||
OrderAddress,
|
||
OrderTable,
|
||
verificationPopup,
|
||
// #ifdef MP || APP-PLUS
|
||
NavBar,
|
||
// #endif
|
||
},
|
||
props: {},
|
||
data: function() {
|
||
return {
|
||
ProductTypeEnum,
|
||
popup_center: 'center',
|
||
moreShow: false,
|
||
openErp: false,
|
||
giveData: {
|
||
give_integral: 0,
|
||
give_coupon: []
|
||
},
|
||
giveCartInfo: [],
|
||
totalNmu: 0,
|
||
order: false,
|
||
change: false,
|
||
order_id: "",
|
||
status: "",
|
||
title: "标题",
|
||
types: "",
|
||
statusType: '',
|
||
clickNum: 1,
|
||
isRefund: 0, //1是仅退款;0是同意退货退款
|
||
iconColor: '#FFFFFF',
|
||
isScrolling: false,
|
||
getHeight: this.$util.getWXStatusHeight(),
|
||
confirmShow: false,
|
||
info: {},
|
||
refundSum: '',
|
||
orderNo: '',
|
||
orderExtend: [], //系统表单数据
|
||
};
|
||
},
|
||
computed: {
|
||
tableList() {
|
||
return getTableList(this.info);
|
||
},
|
||
},
|
||
onShow() {
|
||
let self = this
|
||
// #ifdef H5
|
||
this.$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
|
||
this.initOrderInfo(this.orderNo)
|
||
},
|
||
onLoad(options) {
|
||
this.orderNo = options.orderNo
|
||
},
|
||
onPageScroll(e) {
|
||
// #ifdef MP || APP-PLUS
|
||
if (e.scrollTop > 50) {
|
||
this.iconColor = '#333333';
|
||
this.isScrolling = true;
|
||
} else {
|
||
this.iconColor = '#FFFFFF';
|
||
this.isScrolling = false;
|
||
}
|
||
// #endif
|
||
},
|
||
methods: {
|
||
hsPopupClose() {
|
||
this.$refs.hs_popup.close()
|
||
},
|
||
toRecycle() {
|
||
printReceipt(this.info.orderNo).then(res => {
|
||
if (res.code == 200) {
|
||
this.$util.Tips({
|
||
title: '操作成功'
|
||
})
|
||
this.$refs.hs_popup.close()
|
||
}
|
||
})
|
||
},
|
||
hsPopupClose() {
|
||
this.$refs.hs_popup.close()
|
||
},
|
||
print() {
|
||
this.$refs.hs_popup.open('center')
|
||
},
|
||
//更多
|
||
toMore() {
|
||
this.moreShow = !this.moreShow
|
||
},
|
||
initOrderInfo(orderNo) {
|
||
employeeOrderInfo(orderNo).then(res => {
|
||
this.info = res.data
|
||
if (this.info.secondType === this.ProductTypeEnum.Reservation) {
|
||
this.orderExtend = this.info.orderExtend ? JSON.parse(this.info.orderExtend) : []
|
||
} else {
|
||
this.orderExtend = this.info.orderExtend ? [JSON.parse(this.info.orderExtend)] : []
|
||
}
|
||
let refundSum = 0
|
||
let detailList = this.info.orderDetailList
|
||
detailList.forEach(item => {
|
||
refundSum += item.refundNum
|
||
})
|
||
this.refundSum = refundSum
|
||
})
|
||
},
|
||
//发货
|
||
goDelivery(info) {
|
||
if (info.refundStatus == 1) return this.$util.Tips({
|
||
title: '请处理售后,再操作',
|
||
});
|
||
uni.navigateTo({
|
||
url: `/pages/admin/order/send?orderNo=${this.info.orderNo}`
|
||
})
|
||
|
||
},
|
||
// 立即核销
|
||
goVerify(info) {
|
||
uni.navigateTo({
|
||
url: `/pages/admin/cancel/list?verifyCode=${info.verifyCode}&backPage=detail`
|
||
})
|
||
// if (this.info.secondType == this.ProductTypeEnum.PunchCard) {
|
||
// this.$refs.verificationPopup.punchCardPopupHandle(true)
|
||
// } else {
|
||
// this.$refs.verificationPopup.normalPopupHandle(true)
|
||
// }
|
||
},
|
||
//发货记录
|
||
goLogistics(info) {
|
||
if (info.secondType == 2) {
|
||
uni.navigateTo({
|
||
url: `/pages/admin/logistics/record?orderNo=${this.orderNo}&index=0&secodeType=2`
|
||
})
|
||
} else {
|
||
orderInvoiceListInfo(info.orderNo).then(res => {
|
||
uni.navigateTo({
|
||
url: `/pages/admin/logistics/index?orderNo=${info.orderNo}`
|
||
})
|
||
})
|
||
}
|
||
},
|
||
modify: function(status, type) {
|
||
if (status == 2) {
|
||
this.isRefund = type
|
||
uni.navigateTo({
|
||
url: `/pages/admin/refund/index?orderNo=${this.info.orderNo}&type=${this.info.type}&sdType=${this.info.secondType}`
|
||
})
|
||
} else {
|
||
this.change = true;
|
||
this.status = status;
|
||
}
|
||
},
|
||
async savePrice(opt) {
|
||
if (!opt.remark) {
|
||
return this.$util.Tips({
|
||
title: '请输入备注'
|
||
})
|
||
} else {
|
||
this.toMark(this.info.orderNo, opt.remark)
|
||
}
|
||
},
|
||
//备注
|
||
toMark(orderNo, remark) {
|
||
employeeOrderMark({
|
||
orderNo,
|
||
remark
|
||
}).then(res => {
|
||
res.code == 200 && (this.change = false);
|
||
this.initOrderInfo(this.info.orderNo)
|
||
return this.$util.Tips({
|
||
title: '备注成功'
|
||
})
|
||
})
|
||
},
|
||
changeclose: function(msg) {
|
||
this.change = msg;
|
||
},
|
||
//复制
|
||
// #ifdef MP
|
||
copyNum(id) {
|
||
|
||
uni.setClipboardData({
|
||
data: id,
|
||
success: function() {}
|
||
});
|
||
},
|
||
// #endif
|
||
// #ifdef H5
|
||
webCopy(item, index) {
|
||
let items = item
|
||
let indexs = index
|
||
let self = this
|
||
|
||
if (self.clickNum == 1) {
|
||
self.clickNum += 1
|
||
self.webCopy(items, indexs)
|
||
}
|
||
},
|
||
// #endif
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.order-detail {
|
||
position: absolute;
|
||
width: 100%;
|
||
padding: 0 24rpx;
|
||
}
|
||
|
||
.height-add {
|
||
height: calc(120rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
||
height: calc(120rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
||
}
|
||
|
||
.giveGoods {
|
||
.item {
|
||
padding: 14rpx 30rpx 14rpx 0;
|
||
margin-left: 30rpx;
|
||
border-top: 1px solid #eee;
|
||
|
||
.picTxt {
|
||
.pictrue {
|
||
width: 76rpx;
|
||
height: 76rpx;
|
||
border-radius: 6rpx;
|
||
background-color: #F5F5F5;
|
||
color: #2a7efb;
|
||
|
||
.iconfont {
|
||
font-size: 34rpx;
|
||
}
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 6rpx;
|
||
}
|
||
|
||
margin-right: 16rpx;
|
||
}
|
||
|
||
.texts {
|
||
width: 360rpx;
|
||
color: #999999;
|
||
font-size: 20rpx;
|
||
|
||
.name {
|
||
color: #333;
|
||
}
|
||
|
||
.limit {
|
||
font-size: 20rpx;
|
||
margin-top: 4rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.num {
|
||
color: #999999;
|
||
font-size: 20rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.splitTitle {
|
||
width: 100%;
|
||
height: 80rpx;
|
||
background-color: #fff;
|
||
margin-top: 17rpx;
|
||
border-bottom: 1px solid #e5e5e5;
|
||
padding: 0 30rpx;
|
||
}
|
||
|
||
.splitTitle .title {
|
||
color: #2291f8;
|
||
}
|
||
|
||
/*商户管理订单详情*/
|
||
.pos-order-details .header {
|
||
// background: linear-gradient(270deg, #1cd1dc 0%, #2291f8 100%);
|
||
}
|
||
|
||
.pos-order-details .header .state {}
|
||
|
||
.pos-order-details .header .data {}
|
||
|
||
.pos-order-details .header .data .order-num {
|
||
font-size: 26upx;
|
||
margin-bottom: 8upx;
|
||
}
|
||
|
||
.pos-order-details .remarks {
|
||
width: 710rpx;
|
||
height: 100rpx;
|
||
background: #FFFFFF;
|
||
border-radius: 14rpx;
|
||
display: flex;
|
||
padding-left: 32rpx;
|
||
border-radius: 24rpx;
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
.pos-order-details .remarks .iconfont {
|
||
font-size: 32rpx;
|
||
color: #000000;
|
||
}
|
||
|
||
.pos-order-details .remarks input {
|
||
flex: 1;
|
||
height: 100rpx;
|
||
padding-left: 20rpx;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.pos-order-details .remarks input::placeholder {
|
||
color: #CCCCCC;
|
||
}
|
||
|
||
.pos-order-details .orderingUser {
|
||
font-size: 26upx;
|
||
color: #282828;
|
||
padding: 0 30upx;
|
||
height: 67upx;
|
||
background-color: #fff;
|
||
margin-top: 16upx;
|
||
border-bottom: 1px solid #f5f5f5;
|
||
}
|
||
|
||
.pos-order-details .orderingUser .iconfont {
|
||
font-size: 40upx;
|
||
color: #2a7efb;
|
||
margin-right: 15upx;
|
||
}
|
||
|
||
.pos-order-details .address {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.pos-order-details .footer .more {
|
||
font-size: 27upx;
|
||
color: #aaa;
|
||
width: 100upx;
|
||
height: 64upx;
|
||
text-align: center;
|
||
line-height: 64upx;
|
||
margin-right: 25upx;
|
||
position: relative;
|
||
}
|
||
|
||
.pos-order-details .footer .delivery {
|
||
border-color: #2A7EFB !important;
|
||
background: #2A7EFB;
|
||
color: #FFFFFF !important;
|
||
}
|
||
|
||
.pos-order-details .footer .more .order .arrow {
|
||
width: 0;
|
||
height: 0;
|
||
border-left: 11upx solid transparent;
|
||
border-right: 11upx solid transparent;
|
||
border-top: 20upx solid #e5e5e5;
|
||
position: absolute;
|
||
left: 15upx;
|
||
bottom: -18upx;
|
||
}
|
||
|
||
.pos-order-details .footer .more .order .arrow:before {
|
||
content: '';
|
||
width: 0;
|
||
height: 0;
|
||
border-left: 9upx solid transparent;
|
||
border-right: 9upx solid transparent;
|
||
border-top: 19upx solid #fff;
|
||
position: absolute;
|
||
left: -10upx;
|
||
bottom: 0;
|
||
}
|
||
|
||
.pos-order-details .footer .more .order {
|
||
width: 200upx;
|
||
background-color: #fff;
|
||
border: 1px solid #eee;
|
||
border-radius: 10upx;
|
||
position: absolute;
|
||
top: -200upx;
|
||
z-index: 9;
|
||
}
|
||
|
||
.pos-order-details .footer .more .order .item {
|
||
height: 77upx;
|
||
line-height: 77upx;
|
||
}
|
||
|
||
.pos-order-details .footer .more .order .item~.item {
|
||
border-top: 1px solid #f5f5f5;
|
||
}
|
||
|
||
.pos-order-details .footer .more .moreName {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
/*订单详情*/
|
||
.order-detail .header {
|
||
padding: 48rpx 0 30rpx 12rpx;
|
||
}
|
||
|
||
.order-detail .header.on {
|
||
background-color: #666 !important;
|
||
}
|
||
|
||
.order-detail .header .pictrue {
|
||
width: 110upx;
|
||
height: 110upx;
|
||
}
|
||
|
||
.order-detail .header .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
//.order-detail .header .state {
|
||
// font-weight: 500;
|
||
// font-size: 36rpx;
|
||
// line-height: 50rpx;
|
||
// color: #FFFFFF;
|
||
//}
|
||
|
||
//.order-detail .header .data {
|
||
// margin-top: 8rpx;
|
||
// font-size: 26rpx;
|
||
// line-height: 36rpx;
|
||
// color: #FFFFFF;
|
||
//}
|
||
|
||
.order-detail .header.on .data {
|
||
margin-left: 0;
|
||
}
|
||
|
||
.order-detail .header .data .time {
|
||
margin-left: 20rpx;
|
||
}
|
||
|
||
.order-detail .header .data .state {
|
||
font-size: 30upx;
|
||
font-weight: bold;
|
||
color: #fff;
|
||
margin-bottom: 7upx;
|
||
}
|
||
|
||
/* .order-details .header .data .time{margin-left:20upx;} */
|
||
.order-detail .nav {
|
||
background-color: #fff;
|
||
font-size: 26upx;
|
||
color: #282828;
|
||
padding: 25upx 0;
|
||
}
|
||
|
||
.order-detail .nav .navCon {
|
||
padding: 0 40upx;
|
||
}
|
||
|
||
.order-detail .nav .navCon .on {
|
||
font-weight: bold;
|
||
color: #e93323;
|
||
}
|
||
|
||
.order-detail .nav .progress {
|
||
padding: 0 65upx;
|
||
margin-top: 10upx;
|
||
}
|
||
|
||
.order-detail .nav .progress .line {
|
||
width: 100upx;
|
||
height: 2upx;
|
||
background-color: #939390;
|
||
}
|
||
|
||
.order-detail .nav .progress .iconfont {
|
||
font-size: 25upx;
|
||
color: #939390;
|
||
margin-top: -2upx;
|
||
width: 30upx;
|
||
height: 30upx;
|
||
line-height: 33upx;
|
||
text-align: center;
|
||
margin-right: 0 !important;
|
||
}
|
||
|
||
.order-detail .address {
|
||
position: relative;
|
||
padding: 32rpx 32rpx 40rpx;
|
||
border-radius: 24rpx;
|
||
// margin-top: 20rpx;
|
||
background: #FFFFFF;
|
||
overflow: hidden;
|
||
font-size: 24rpx;
|
||
line-height: 34rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.order-detail .address .name {
|
||
margin-bottom: 12rpx;
|
||
font-weight: 500;
|
||
font-size: 30rpx;
|
||
line-height: 42rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.order-detail .address .name .iconfont {
|
||
margin-right: 8rpx;
|
||
font-size: 32rpx;
|
||
}
|
||
|
||
.order-detail .address .name .phone {
|
||
margin-left: 40upx;
|
||
}
|
||
|
||
.order-detail .line {
|
||
position: absolute;
|
||
bottom: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 4rpx;
|
||
}
|
||
|
||
.order-detail .line image {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
|
||
.order-detail .wrapper {
|
||
padding: 32rpx 24rpx;
|
||
border-radius: 24rpx;
|
||
margin-top: 20rpx;
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
.order-detail .wrapper .item {
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.order-detail .wrapper .item~.item {
|
||
margin-top: 24rpx;
|
||
}
|
||
|
||
.order-detail .wrapper .item .conter {
|
||
// color: #868686;
|
||
// width: 468rpx;
|
||
// display: flex;
|
||
// flex-wrap: nowrap;
|
||
// justify-content: flex-end;
|
||
// text-align: right;
|
||
|
||
.pictrue {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
margin-left: 6rpx;
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 6rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.order-detail .wrapper .item .conter .copy {
|
||
height: 36rpx;
|
||
padding: 0 12rpx;
|
||
border: 0;
|
||
border-radius: 18rpx;
|
||
margin-left: 8rpx;
|
||
background: #F5F5F5;
|
||
font-size: 22rpx;
|
||
line-height: 36rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.order-detail .wrapper .actualPay {
|
||
margin-top: 26rpx;
|
||
align-items: center;
|
||
}
|
||
|
||
.order-detail .wrapper .actualPay .money {
|
||
font-weight: bold;
|
||
font-size: 30upx;
|
||
color: #e93323;
|
||
}
|
||
|
||
.order-detail .footer {
|
||
width: 100%;
|
||
height: 100upx;
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
background-color: #fff;
|
||
padding: 0 30upx;
|
||
border-top: 1px solid #eee;
|
||
height: calc(100rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
||
height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
||
padding-bottom: calc(0rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
||
padding-bottom: calc(0rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
||
}
|
||
|
||
.order-detail .footer .wait {
|
||
color: #2a7efb;
|
||
margin-right: 30rpx;
|
||
}
|
||
|
||
.order-detail .footer .bnt {
|
||
width: 144rpx;
|
||
height: 56rpx;
|
||
border: 1rpx solid #CCCCCC;
|
||
line-height: 54rpx;
|
||
text-align: center;
|
||
border-radius: 28rpx;
|
||
font-size: 24rpx;
|
||
color: #333333;
|
||
transform: rotateZ(360deg);
|
||
|
||
&.on {
|
||
color: #c5c8ce !important;
|
||
background: #f7f7f7 !important;
|
||
border: 1px solid #dcdee2 !important;
|
||
}
|
||
}
|
||
|
||
.order-detail .footer .bnt.cancel {
|
||
// color: #333333;
|
||
// border: 1px solid #CCCCCC;
|
||
}
|
||
|
||
.order-detail .footer .bnt.default {
|
||
color: #444;
|
||
border: 1px solid #444;
|
||
}
|
||
|
||
.order-detail .footer .bnt~.bnt {
|
||
margin-left: 16rpx;
|
||
}
|
||
|
||
.pos-order-goods {
|
||
padding: 32rpx 24rpx;
|
||
border-radius: 24rpx;
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
.pos-order-goods.split {
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
.pos-order-goods .title {
|
||
height: 40rpx;
|
||
margin-bottom: 32rpx;
|
||
font-size: 28rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.pos-order-goods .title .btn {
|
||
font-size: 26rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.pos-order-goods .title .btn .iconfont {
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.pos-order-goods.split .goods {}
|
||
|
||
.pos-order-goods .goods~.goods {
|
||
margin-top: 32rpx;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt {
|
||
flex: 1;
|
||
min-width: 0;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .pictrue {
|
||
width: 136rpx;
|
||
height: 136rpx;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 16rpx;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .text {
|
||
flex: 1;
|
||
min-width: 0;
|
||
padding-left: 20rpx;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .text .info {
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .text .info .label {
|
||
color: #ff4c3c;
|
||
}
|
||
|
||
.pos-order-goods .goods .picTxt .text .attr {
|
||
margin-top: 8rpx;
|
||
font-size: 24rpx;
|
||
line-height: 34rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.pos-order-goods .goods .money {
|
||
width: 144rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.pos-order-goods .goods .money .writeOff {
|
||
font-size: 24upx;
|
||
margin-top: 17upx;
|
||
color: #1890FF;
|
||
}
|
||
|
||
.pos-order-goods .goods .money .writeOff .on {
|
||
color: #FF7E00;
|
||
}
|
||
|
||
.pos-order-goods .goods .money .x-money {
|
||
color: #282828;
|
||
}
|
||
|
||
.pos-order-goods .goods .money .num {
|
||
margin-top: 10rpx;
|
||
font-size: 24rpx;
|
||
line-height: 34rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.pos-order-goods .goods .money .y-money {
|
||
color: #999;
|
||
text-decoration: line-through;
|
||
}
|
||
|
||
.public-total {
|
||
font-size: 28upx;
|
||
color: #282828;
|
||
border-top: 1px solid #eee;
|
||
height: 92upx;
|
||
line-height: 92upx;
|
||
text-align: right;
|
||
padding: 0 30upx;
|
||
background-color: #fff;
|
||
}
|
||
|
||
.public-total .money {
|
||
color: #ff4c3c;
|
||
}
|
||
|
||
.copy-data {
|
||
font-size: 10px;
|
||
color: #333;
|
||
-webkit-border-radius: 1px;
|
||
border-radius: 1px;
|
||
border: 1px solid #666;
|
||
padding: 0px 7px;
|
||
margin-left: 12px;
|
||
height: 20px;
|
||
}
|
||
|
||
.pos-order-goods .mark {
|
||
margin-top: 32rpx;
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
|
||
|
||
.value {
|
||
flex: 1;
|
||
}
|
||
}
|
||
|
||
.mask {
|
||
z-index: 21;
|
||
}
|
||
|
||
.confirm-popup {
|
||
position: fixed;
|
||
top: 50%;
|
||
right: 75rpx;
|
||
left: 75rpx;
|
||
z-index: 21;
|
||
transform: translateY(-50%);
|
||
border-radius: 32rpx;
|
||
background: #FFFFFF;
|
||
text-align: center;
|
||
|
||
.title {
|
||
padding: 40rpx 32rpx 0;
|
||
font-weight: 500;
|
||
font-size: 32rpx;
|
||
line-height: 52rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.info {
|
||
padding: 24rpx 40rpx 0;
|
||
font-size: 30rpx;
|
||
line-height: 42rpx;
|
||
color: #666666;
|
||
}
|
||
|
||
.btn-box {
|
||
padding: 40rpx;
|
||
}
|
||
|
||
.btn {
|
||
flex: 1;
|
||
height: 72rpx;
|
||
border: 1rpx solid #2A7EFB;
|
||
border-radius: 36rpx;
|
||
margin-left: 32rpx;
|
||
font-weight: 500;
|
||
font-size: 26rpx;
|
||
line-height: 70rpx;
|
||
color: #2A7EFB;
|
||
transform: rotateZ(360deg);
|
||
|
||
&.primary {
|
||
background: #2A7EFB;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
}
|
||
|
||
.user-box {
|
||
padding: 24rpx;
|
||
border-radius: 24rpx;
|
||
// margin-top: 20rpx;
|
||
background: #FFFFFF;
|
||
|
||
.image {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.text {
|
||
flex: 1;
|
||
padding-left: 20rpx;
|
||
font-size: 24rpx;
|
||
line-height: 34rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.name {
|
||
margin-bottom: 4rpx;
|
||
font-weight: 500;
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.svip {
|
||
width: 56rpx;
|
||
height: 26rpx;
|
||
border-radius: 14rpx;
|
||
margin-left: 12rpx;
|
||
background: linear-gradient(90deg, #484643 0%, #1F1B17 100%);
|
||
text-align: center;
|
||
font-weight: 600;
|
||
font-size: 18rpx;
|
||
line-height: 26rpx;
|
||
color: #FDDAA4;
|
||
}
|
||
|
||
.grade {
|
||
height: 26rpx;
|
||
padding: 0 10rpx;
|
||
border: 1rpx solid #FACC7D;
|
||
border-radius: 14rpx;
|
||
margin-left: 10rpx;
|
||
background: #FEF0D9;
|
||
font-weight: 500;
|
||
font-size: 18rpx;
|
||
line-height: 24rpx;
|
||
color: #DFA541;
|
||
transform: rotateZ(360deg);
|
||
|
||
.iconfont {
|
||
margin-right: 6rpx;
|
||
font-size: 18rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.tomore {
|
||
font-weight: 400;
|
||
font-size: 24rpx;
|
||
color: #333333;
|
||
margin-right: 20rpx;
|
||
position: relative;
|
||
}
|
||
|
||
.more-operate {
|
||
position: absolute;
|
||
top: -120rpx;
|
||
left: -50rpx;
|
||
width: 150rpx;
|
||
height: 100rpx;
|
||
background: #fff;
|
||
border: 1px solid #eee;
|
||
border-radius: 10rpx;
|
||
|
||
.sjx {
|
||
width: 16rpx;
|
||
height: 16rpx;
|
||
background: #fff;
|
||
border: 1px solid #eee;
|
||
position: absolute;
|
||
top: 92rpx;
|
||
left: 68rpx;
|
||
transform: rotateZ(45deg);
|
||
}
|
||
|
||
.more-operate-item {
|
||
font-size: 24rpx;
|
||
color: #333333;
|
||
text-align: center;
|
||
height: 50rpx;
|
||
line-height: 50rpx;
|
||
}
|
||
}
|
||
|
||
// /deep/ .uni-popup__wrapper {
|
||
// width: 600rpx;
|
||
// height: 310rpx;
|
||
// background: #FFFFFF;
|
||
// border-radius: 32rpx;
|
||
// }
|
||
|
||
.sh_popup-content {
|
||
width: 600rpx;
|
||
height: 270rpx;
|
||
|
||
// border-radius: 14rpx;
|
||
// padding-bottom: 20rpx;
|
||
.sh_popup_title {
|
||
font-weight: 500;
|
||
font-size: 32rpx;
|
||
color: #333333;
|
||
text-align: center;
|
||
margin-top: 40rpx;
|
||
}
|
||
|
||
.sh_popup_text {
|
||
font-weight: 400;
|
||
font-size: 30rpx;
|
||
color: #666666;
|
||
text-align: center;
|
||
margin-top: 30rpx;
|
||
}
|
||
|
||
.sh_popup_btn {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-top: 40rpx;
|
||
padding: 0 47rpx;
|
||
|
||
.btn {
|
||
width: 244rpx;
|
||
height: 72rpx;
|
||
border-radius: 50rpx;
|
||
text-align: center;
|
||
line-height: 72rpx;
|
||
}
|
||
|
||
.no_btn {
|
||
border: 1px solid #2A7EFB;
|
||
color: #2A7EFB;
|
||
}
|
||
|
||
.yes_btn {
|
||
background: #2A7EFB;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
}
|
||
|
||
.info-text {
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: space-between;
|
||
padding: 10rpx 0;
|
||
}
|
||
|
||
.line1 {
|
||
width: 90%;
|
||
}
|
||
|
||
.order-details .wrapper {
|
||
padding: 0;
|
||
}
|
||
|
||
.color-999 {
|
||
color: #999;
|
||
}
|
||
</style> |