<template>
|
|
<view class="order-detail-container">
|
|
<!-- 日期信息 -->
|
|
<view class="order-date">
|
|
<view class="order-date-icon">
|
|
<u-icon name="calendar" color="#FFAA48" size="22"></u-icon>
|
|
</view>
|
|
<view class="order-date-text">{{ orderDate }}</view>
|
|
</view>
|
|
|
|
<!-- 个人信息区域 -->
|
|
<view class="order-section">
|
|
<view class="order-section-title">个人信息</view>
|
|
<view class="order-section-content">
|
|
<view class="order-image-item">
|
|
<view class="order-image-label">手套照片 (共2张)</view>
|
|
<view class="order-image-container">
|
|
<image class="order-image" src="/static/images/personal/used.png" mode="aspectFill" @click="previewImage('/static/images/personal/used.png')"></image>
|
|
</view>
|
|
</view>
|
|
<view class="order-image-item">
|
|
<view class="order-image-label">鞋套照片 (共2张)</view>
|
|
<view class="order-image-container">
|
|
<image class="order-image" src="/static/images/personal/invalid.png" mode="aspectFill" @click="previewImage('/static/images/personal/invalid.png')"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 宠物状况记录 -->
|
|
<view class="order-section">
|
|
<view class="order-section-title">宠物状况记录</view>
|
|
<view class="order-section-content">
|
|
<view class="pet-record" v-for="(pet, index) in pets" :key="index">
|
|
<view class="pet-name">{{ pet.name }} (共{{ pet.photoCount }}张)</view>
|
|
<view class="pet-images">
|
|
<view class="pet-image-container" v-for="(photo, photoIndex) in pet.photos" :key="photoIndex">
|
|
<image class="pet-image" :src="photo" mode="aspectFill" @click="previewImage(photo)"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 基础服务记录 -->
|
|
<view class="order-section">
|
|
<view class="order-section-title">基础服务记录</view>
|
|
<view class="order-section-content">
|
|
<view class="service-record" v-for="(service, index) in services" :key="index">
|
|
<view class="service-name">{{ service.name }}</view>
|
|
<view class="service-comparison">
|
|
<view class="service-before-after">
|
|
<view class="service-image-container">
|
|
<image class="service-image" :src="service.beforeImage" mode="aspectFill" @click="previewImage(service.beforeImage)"></image>
|
|
<view class="service-image-label">前</view>
|
|
</view>
|
|
<view class="service-image-container">
|
|
<image class="service-image" :src="service.afterImage" mode="aspectFill" @click="previewImage(service.afterImage)"></image>
|
|
<view class="service-image-label">后</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 定制服务记录 -->
|
|
<view class="order-section">
|
|
<view class="order-section-title">定制服务记录</view>
|
|
<view class="order-section-content">
|
|
<view class="custom-service">
|
|
<view class="custom-service-item">
|
|
<view class="custom-service-name">遛狗 (5-30分钟)</view>
|
|
<view class="custom-service-images">
|
|
<image class="custom-service-image" src="/static/images/tabBar/dog.png" mode="aspectFill" @click="previewImage('/static/images/tabBar/dog.png')"></image>
|
|
<image class="custom-service-image" src="/static/images/tabBar/dog_.png" mode="aspectFill" @click="previewImage('/static/images/tabBar/dog_.png')"></image>
|
|
<image class="custom-service-image" src="/static/images/tabBar/home.png" mode="aspectFill" @click="previewImage('/static/images/tabBar/home.png')"></image>
|
|
</view>
|
|
</view>
|
|
<view class="custom-service-item">
|
|
<view class="custom-service-name">梳毛 (5-30分钟)</view>
|
|
<view class="custom-service-images">
|
|
<image class="custom-service-image" src="/static/images/tabBar/cat.png" mode="aspectFill" @click="previewImage('/static/images/tabBar/cat.png')"></image>
|
|
<image class="custom-service-image" src="/static/images/tabBar/cat_.png" mode="aspectFill" @click="previewImage('/static/images/tabBar/cat_.png')"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
orderId: null,
|
|
orderDate: '2024年12月08日',
|
|
pets: [
|
|
{
|
|
name: '小汪',
|
|
photoCount: 2,
|
|
photos: [
|
|
'/static/images/tabBar/dog.png',
|
|
'/static/images/tabBar/dog_.png'
|
|
]
|
|
},
|
|
{
|
|
name: 'Billion',
|
|
photoCount: 2,
|
|
photos: [
|
|
'/static/images/tabBar/cat.png',
|
|
'/static/images/tabBar/cat_.png'
|
|
]
|
|
}
|
|
],
|
|
services: [
|
|
{
|
|
name: '猫粮前后对比',
|
|
beforeImage: '/static/images/personal/invalid.png',
|
|
afterImage: '/static/images/personal/used.png'
|
|
},
|
|
{
|
|
name: '水碗前后对比',
|
|
beforeImage: '/static/images/personal/invalid.png',
|
|
afterImage: '/static/images/personal/used.png'
|
|
},
|
|
{
|
|
name: '猫砂盆 厚度前后对比',
|
|
beforeImage: '/static/images/personal/invalid.png',
|
|
afterImage: '/static/images/personal/used.png'
|
|
}
|
|
]
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
if (options.orderId) {
|
|
this.orderId = options.orderId;
|
|
// 这里可以根据orderId加载订单详情数据
|
|
this.loadOrderDetail();
|
|
}
|
|
},
|
|
methods: {
|
|
loadOrderDetail() {
|
|
// 这里可以调用API获取订单详情
|
|
// 示例代码,实际项目中需要替换为真实API调用
|
|
/*
|
|
getOrderDetail(this.orderId).then(res => {
|
|
if (res && res.code === 200) {
|
|
this.orderDate = res.data.orderDate;
|
|
this.pets = res.data.pets;
|
|
this.services = res.data.services;
|
|
}
|
|
});
|
|
*/
|
|
},
|
|
// 图片预览功能
|
|
previewImage(urls, current) {
|
|
// 调用uni-app的图片预览API
|
|
uni.previewImage({
|
|
urls,
|
|
current,
|
|
indicator: 'number',
|
|
loop: true
|
|
});
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.order-detail-container {
|
|
padding: 15px;
|
|
background-color: #f5f5f7;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.order-date {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 12px 16px;
|
|
background-color: #FFF9EF;
|
|
border-radius: 10px;
|
|
margin-bottom: 15px;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
|
|
|
|
.order-date-icon {
|
|
margin-right: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
background-color: rgba(255, 170, 72, 0.1);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.order-date-text {
|
|
color: #A94F20;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
}
|
|
|
|
.order-section {
|
|
background-color: #fff;
|
|
border-radius: 8px;
|
|
margin-bottom: 15px;
|
|
overflow: hidden;
|
|
|
|
.order-section-title {
|
|
padding: 12px 15px;
|
|
border-bottom: 1px solid #f0f0f0;
|
|
color: #333;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
position: relative;
|
|
|
|
&::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
top: 12px;
|
|
height: 16px;
|
|
width: 4px;
|
|
background-color: #ffaa48;
|
|
border-radius: 0 2px 2px 0;
|
|
}
|
|
}
|
|
|
|
.order-section-content {
|
|
padding: 15px;
|
|
}
|
|
}
|
|
|
|
.order-image-item {
|
|
margin-bottom: 15px;
|
|
|
|
.order-image-label {
|
|
color: #666;
|
|
font-size: 14px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.order-image-container {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
|
|
.order-image {
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 4px;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
}
|
|
|
|
.pet-record {
|
|
margin-bottom: 20px;
|
|
|
|
.pet-name {
|
|
color: #333;
|
|
font-size: 15px;
|
|
font-weight: 500;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.pet-images {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
|
|
.pet-image-container {
|
|
.pet-image {
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 4px;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.service-record {
|
|
margin-bottom: 20px;
|
|
|
|
.service-name {
|
|
color: #333;
|
|
font-size: 15px;
|
|
font-weight: 500;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.service-comparison {
|
|
.service-before-after {
|
|
display: flex;
|
|
gap: 15px;
|
|
|
|
.service-image-container {
|
|
position: relative;
|
|
|
|
.service-image {
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 4px;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.service-image-label {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
background-color: rgba(0,0,0,0.5);
|
|
color: #fff;
|
|
padding: 2px 8px;
|
|
font-size: 12px;
|
|
border-radius: 0 0 0 4px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.custom-service {
|
|
.custom-service-item {
|
|
margin-bottom: 15px;
|
|
|
|
.custom-service-name {
|
|
color: #333;
|
|
font-size: 15px;
|
|
font-weight: 500;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.custom-service-images {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
|
|
.custom-service-image {
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 4px;
|
|
object-fit: cover;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|