Files
MER-2.2_2601/mer_uniapp/pages/admin/order/detail.vue

1282 lines
30 KiB
Vue
Raw Normal View History

<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>