|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |  | <template>	<view>		<navbar title="订单详情" leftClick @leftClick="$utils.navigateBack" />
		<!-- <view class="">			<view class="controls">				<view class="title">					<image src="../static/order/icon.png" mode=""></image>					服务完成				</view>				<view class="tips">					待送回				</view>				<view class="btns">					<view class="btn1">						快递寄回					</view>					<view class="btn2">						线下配送					</view>				</view>			</view>			<view class="steps">				<uv-steps 				activeColor="#FD5100"				:current="stepsCurrent" dot>					<uv-steps-item :title="item"					:key="index"					v-for="(item, index) in steps"></uv-steps-item>				</uv-steps>			</view>		</view> -->
		<view class="info">			<view class="flex" style="display: flex;">				<view style="width: 8rpx;height: 30rpx;				background: #E3441A;border-radius: 6rpx;" />				<view class="head-title">订单详情</view>			</view>
			<view class="flex">				<view class="server-item" :key="index" v-for="(good, index) in order.commonOrderSkuList">
					<view class="img-box">						<image :src="good.image && good.image.split(',')[0]" mode="aspectFill"></image>					</view>
					<view class="server-info">
						<view class="server-title">							{{good.title}}							<!-- <view class="coupon">领券立减</view> -->						</view>
						<!-- <view class="current-price">							<text class="unit">¥</text>{{good.price}}						</view>
						<view class="sales-volume" style="margin-top: 5px;">							<view class="desc">规格:{{good.sku}}</view>						</view> -->
						<view class="texture">							产品材质:{{ good.subText }}						</view>
						<view class="num">							产品数量:{{good.num}}						</view>
						<view class="total-price">							<div class="total-title">总价格</div>							<view class="price">								<text class="unit">¥</text>								{{ good.price }}							</view>						</view>
						<!-- <view class="time-coupon">
							<view class="flex">								<image src="@/static/home/time-icon.png"></image>								<view class="time">{{order.useTime}}分钟</view>							</view>
							<view class="sales-volume">								<image src="@/static/icons/icon1.png"></image>								<view class="desc">已售出{{msgShop.payNum}}+单</view>							</view>
						</view> -->
					</view>
				</view>			</view>
			<!-- <view class="line min_tips">				<view class="head-div flex">					<view style="width: 118rpx;height: 118rpx;border-radius: 50%;overflow: hidden;">						<image style="width: 118rpx;" :src="msgTechnician.image" mode="widthFix"></image>					</view>					<view style="padding: 10rpx 34rpx;display: flex;flex-direction: column;justify-content: space-around;">						<view class="nickname">							{{msgTechnician.title}}							<view v-if="msgTechnician.isVip" class="tag">								<image src="@/static/order/s.png" mode="aspectFit"></image>								<view class="auth">官方认证</view>							</view>						</view>						<view class="days">							<van-rate v-model="msgTechnician.score" :size="10" readonly color="#ffb54c" void-icon="star"								void-color="#eee" />							<view class="">								好评{{msgTechnician.pinNum}}							</view>						</view>					</view>				</view>				<view @tap="gototechnicianDetail(msgTechnician)" class="btn-x">					服务技师				</view>			</view> -->
			<view class="line address">				<view class="addressDetail">					<view class="address-line">						<view class="main">{{order.name}} {{order.phone}}</view>						<view @tap="copy(order.name + ' ' + order.phone)" class="copy">复制</view>					</view>					<view class="address-line">						<view class="main">{{order.address}} {{order.addressDetails}}</view>						<view @tap="copy(order.address + ' ' + order.addressDetails)" class="copy">复制</view>					</view>				</view>			</view>
			<!-- <view class="line">				<view class="t min_tips">					<view class="">						实付款					</view>					<view class="current-price">						¥{{ order.price }}					</view>				</view>			</view> -->
			<!-- 订单信息 -->			<view class="line">				<view class="t min_tips">					<view class="">						订单信息					</view>				</view>				<view class="min_tips">					<view class="">						订单编号					</view>					<view class="">						{{order.id}}					</view>				</view>				<view class="min_tips">					<view class="">						下单时间					</view>					<view class="">						{{order.createTime}}					</view>				</view>			</view>
			<!-- 下单须知 -->			<view class="line">				<view class="t min_tips">					<view class="">						下单须知					</view>				</view>				<view class="min_tips" style="line-height: 40rpx;">					{{ order.orderDetails }}				</view>				<view class="btns">					<button open-type="contact" class="btn">						联系客服					</button>				</view>			</view>
		</view>
		<customerServicePopup ref="customerServicePopup" />	</view></template>
<script>	import customerServicePopup from '@/components/config/customerServicePopup.vue'	import {		mapState	} from 'vuex'	export default {		components: {			customerServicePopup		},		computed: {},		data() {			return {				stepsCurrent: 0,				steps: [					'接单',					'检查',					'开始清洗',					'服务完成',				],				order: {},				id: 0,			}		},		onLoad(args) {			this.id = args.id		},		onShow() {			this.getOrderDetail()		},		onPullDownRefresh() {			this.getOrderDetail()		},		methods: {			getOrderDetail() {				this.$api('getOrderDetail', {					id: this.id				}, res => {					uni.stopPullDownRefresh()					if (res.code == 200) {						this.order = res.result					}				})			},
			//复制内容
			copy(content) {				uni.setClipboardData({					data: content,					success: () => {						uni.showToast({							title: '复制成功',							icon: 'none'						})					}				})			},		}	}</script>
<style scoped lang="scss">	.order {		background: linear-gradient(#4899a6, #6fc6ad, #6fc6ad);		padding-bottom: 10px;	}
	.controls {		margin: 20rpx;		background-color: #fff;		height: 400rpx;		display: flex;		flex-direction: column;		width: 710rpx;		border-radius: 20rpx;		justify-content: center;		align-items: center;
		.title {			display: flex;			justify-content: center;			align-items: center;			font-size: 40rpx;
			image {				width: 100rpx;				height: 100rpx;				margin-right: 20rpx;			}		}
		.tips {			font-size: 26rpx;			color: #FD5100;			margin-top: 10rpx;		}
		.btns {			margin-top: 50rpx;			display: flex;
			view {				margin: 0 20rpx;				display: flex;				justify-content: center;				align-items: center;				color: #fff;				background-color: $uni-color;				padding: 15rpx 40rpx;				border-radius: 40rpx;			}
			.btn2 {				background-color: #FFFFFF;				border: 1px solid #A7A7A7;				color: #A7A7A7;			}		}	}
	.steps {		margin: 20rpx;		background-color: #fff;		display: flex;		flex-direction: column;		width: 710rpx;		border-radius: 20rpx;		padding: 70rpx 0;
		/deep/ .uv-text__value {			font-size: 22rpx !important;		}	}
	.box {		padding: 20px;
		.btns {			display: flex;			justify-content: center;			align-items: center;			margin-top: 10px;
			.btn {				color: #fff;				padding: 10rpx 50rpx;				background-color: #ffb300;				border-radius: 30rpx;				font-size: 25rpx;				margin-right: 10rpx;			}
			.btc {				background: #ccc;			}		}	}
	.info {		margin: 10px;		padding: 20rpx;		background-color: #fff;		width: calc(100% - 40px);		border-radius: 10px;
		.head-title {			font-family: PingFang SC, PingFang SC-Bold;			color: #2f2e2e;			line-height: 30rpx;			margin-left: 10rpx;		}
		.server-item {			display: flex;			flex-wrap: wrap;			align-items: center;			justify-content: space-between;			background: white;			border-radius: 15rpx;			box-sizing: border-box;			margin: 20rpx 0rpx;			width: 100%;
			.img-box {				width: 180rpx;				height: 180rpx;				border-radius: 10rpx;				overflow: hidden;				box-sizing: border-box;
				image {					width: 100%;					height: 100%;					border-radius: 10rpx;				}			}
			.server-info {				display: flex;				flex-direction: column;				justify-content: space-around;				width: calc(100% - 180rpx);				box-sizing: border-box;				padding: 20rpx 15rpx;
				.server-title {					display: flex;					font-weight: bold;				}
				.texture,				.num {					font-size: 24rpx;					color: #717171;				}
				.total-price {					display: flex;					justify-content: space-between;
					.price {						color: #F85023;					}				}
				.coupon {					display: flex;					justify-content: center;					align-items: center;					background: #F29E45;					color: white;					width: 120rpx;					height: 40rpx;					border-radius: 10rpx;					margin-left: 10rpx;					font-size: 22rpx;				}
				.time-coupon,				.price {					display: flex;					flex-wrap: wrap;					align-items: center;				}
				.time-coupon {					margin: 10rpx 0rpx;					font-size: 26rpx;					justify-content: space-between;					width: 100%;
					.flex {						justify-content: center;						align-items: center;					}
					image {						width: 25rpx;						height: 25rpx;					}
					.time {						color: #B8B8B8;						margin-left: 6rpx;					}				}
				.sales-volume {					display: flex;					align-items: center;					color: #B8B8B8;					font-size: 24rpx;
					image {						width: 25rpx;						height: 25rpx;					}				}			}		}
		.address {
			.address-top {				display: flex;				justify-content: space-between;				align-items: center;
				image {					width: 30rpx;					height: 30rpx;				}			}
			.addressDetail {				color: #777;				font-size: 22rpx;				padding: 5px 0;
				.address-line {					display: flex;					flex-wrap: wrap;					align-items: center;
					.main {						width: 88%;						box-sizing: border-box;						padding-right: 20rpx;						overflow: hidden; // 超出的文本隐藏
						text-overflow: ellipsis; // 溢出用省略号显示
						display: -webkit-box; // 将对象作为弹性伸缩盒子模型显示。
						-webkit-line-clamp: 2; // 这个属性不是css的规范属性,需要组合上面两个属性,表示显示的行数。
						-webkit-box-orient: vertical; // 从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)
					}
					.copy {						width: 12%;						background: #FEBC3A;						color: white;						font-size: 20rpx;						border-radius: 20rpx;						display: flex;						align-items: center;						justify-content: center;						height: 40rpx;					}				}			}
			text {				background-color: #F29E45;				padding: 8rpx 10rpx;				color: #fff;				font-size: 20rpx;				margin-left: 10px;				border-radius: 5px;			}		}
		.min_tips {			font-size: 22rpx;			color: #777;			display: flex;			justify-content: space-between;			padding: 5px 0;			align-items: center;		}
		.current-price {			font-size: 30rpx;			color: #FD5100;		}
		.line {			border-top: 2px dotted #00000011;			padding: 20rpx 0;
			.t {				padding: 5px 0;				color: #000;				font-size: 26rpx;			}		}
		.head-div {			.nickname {				font-size: 30rpx;				font-weight: 600;				text-align: left;				line-height: 42rpx;				display: flex;				align-items: center;
				.tag {					position: relative;					display: flex;					align-items: center;
					image {						height: 45rpx;						width: 90rpx;						vertical-align: middle;					}
					.auth {						position: absolute;						white-space: nowrap;						color: #FF6200;						left: 23rpx;						font-size: 17rpx;					}				}			}
			.days {				font-size: 20rpx;				font-weight: 400;				text-align: left;				line-height: 56rpx;				display: flex;				align-items: center;
				view {					padding-left: 5px;				}			}		}
		.btn-x {			color: #6fc6ad;			border: 1px solid #6fc6ad;			padding: 10rpx 20rpx;			border-radius: 30rpx;		}
		.btns {			display: flex;			justify-content: center;			margin-top: 100rpx;
			.btn {				color: #A9A7A7;				border: 1px solid #A9A7A7;				padding: 10rpx 20rpx;				border-radius: 30rpx;				background-color: transparent;				font-size: 24rpx;				margin: 0;				&::after{					border: 0;				}			}		}	}</style>
 |