|
@@ -23,36 +23,19 @@
|
|
|
</view>
|
|
|
|
|
|
<view>
|
|
|
- <up-card
|
|
|
- title="服务信息"
|
|
|
- :head-style="{ height: '80rpx', padding: '20rpx' }"
|
|
|
- >
|
|
|
+ <up-card title="服务信息" :head-style="{ height: '80rpx', padding: '20rpx' }">
|
|
|
<template #body>
|
|
|
<view class="card-container">
|
|
|
- <image
|
|
|
- class="card-image"
|
|
|
- :src="listData.volunteerPicture"
|
|
|
- mode="aspectFill"
|
|
|
- >
|
|
|
+ <image class="card-image" :src="listData.volunteerPicture" mode="aspectFill">
|
|
|
</image>
|
|
|
|
|
|
<view class="card-info">
|
|
|
- <view class="info-item"
|
|
|
- >服务类别:{{ listData.businessManagementName }}</view
|
|
|
- >
|
|
|
- <view class="info-item"
|
|
|
- >服务时长:{{ listData.serviceDuration }}分钟</view
|
|
|
- >
|
|
|
- <view class="info-item"
|
|
|
- >服务价格:{{ listData.serviceOnePrice }}</view
|
|
|
- >
|
|
|
- <view class="info-item"
|
|
|
- >服务数量:{{ listData.singleQuantity
|
|
|
- }}{{ listData.businessUnit }}</view
|
|
|
- >
|
|
|
- <view class="info-item"
|
|
|
- >服务类别:{{ listData.businessDescribe }}</view
|
|
|
- >
|
|
|
+ <view class="info-item">服务类别:{{ listData.businessManagementName }}</view>
|
|
|
+ <view class="info-item">服务时长:{{ listData.serviceDuration }}分钟</view>
|
|
|
+ <view class="info-item">服务价格:{{ listData.serviceOnePrice }}</view>
|
|
|
+ <view class="info-item">服务数量:{{ listData.singleQuantity
|
|
|
+ }}{{ listData.businessUnit }}</view>
|
|
|
+ <view class="info-itemIform">服务描述:{{ listData.businessDescribe }}</view>
|
|
|
</view>
|
|
|
|
|
|
<view class="card-rating">4.5 评分</view>
|
|
@@ -60,17 +43,10 @@
|
|
|
</template>
|
|
|
</up-card>
|
|
|
|
|
|
- <up-card
|
|
|
- title="志愿者介绍"
|
|
|
- :head-style="{ height: '80rpx', padding: '20rpx' }"
|
|
|
- >
|
|
|
+ <up-card title="志愿者介绍" :head-style="{ height: '80rpx', padding: '20rpx' }">
|
|
|
<template #body>
|
|
|
<view class="card-container">
|
|
|
- <image
|
|
|
- class="card-image"
|
|
|
- :src="listData.volunteerPicture"
|
|
|
- mode="aspectFill"
|
|
|
- >
|
|
|
+ <image class="card-image" :src="listData.volunteerPicture" mode="aspectFill">
|
|
|
</image>
|
|
|
|
|
|
<view class="card-info">
|
|
@@ -84,81 +60,62 @@
|
|
|
</view>
|
|
|
</template>
|
|
|
</up-card>
|
|
|
- <up-card
|
|
|
- title="技能介绍"
|
|
|
- :head-style="{ height: '80rpx', padding: '20rpx' }"
|
|
|
- >
|
|
|
+ <up-card title="技能介绍" :head-style="{ height: '80rpx', padding: '20rpx' }">
|
|
|
<template #body>
|
|
|
{{ listData.skillDescribe }}
|
|
|
</template>
|
|
|
</up-card>
|
|
|
<up-card title="证书" :head-style="{ height: '80rpx', padding: '20rpx' }">
|
|
|
<template #body>
|
|
|
- <view
|
|
|
- class="certificate-container"
|
|
|
- v-if="certificationPictures.length > 0"
|
|
|
- >
|
|
|
- <image
|
|
|
- v-for="(image, index) in certificationPictures"
|
|
|
- :key="index"
|
|
|
- :src="image"
|
|
|
- mode="widthFix"
|
|
|
- class="certificate-img"
|
|
|
- @click="previewImage(image, certificationPictures)"
|
|
|
- ></image>
|
|
|
+ <view class="certificate-container" v-if="certificationPictures.length > 0">
|
|
|
+ <image v-for="(image, index) in certificationPictures" :key="index" :src="image" mode="widthFix"
|
|
|
+ class="certificate-img" @click="previewImage(image, certificationPictures)"></image>
|
|
|
</view>
|
|
|
<view v-else class="no-certificate">暂无证书</view>
|
|
|
</template>
|
|
|
</up-card>
|
|
|
</view>
|
|
|
|
|
|
- <up-card
|
|
|
- v-for="(item, index) in listData.secondOrderList"
|
|
|
- :key="index"
|
|
|
- :title="'订单号'"
|
|
|
- >
|
|
|
- <template #head>
|
|
|
- <view class="custom-order-title">
|
|
|
- <text>订单号:</text>
|
|
|
- <text class="order-number">{{ item.secondOutTradeNo }}</text>
|
|
|
- </view>
|
|
|
- </template>
|
|
|
- <template #body>
|
|
|
- <view class="list-item">
|
|
|
- <image
|
|
|
- :src="listData.volunteerPicture"
|
|
|
- mode="aspectFill"
|
|
|
- class="item-image"
|
|
|
- >
|
|
|
- </image>
|
|
|
- <view class="item-info">
|
|
|
- <view class="info-line">
|
|
|
- 服务类别:{{ listData.businessManagementName }}
|
|
|
- </view>
|
|
|
- <text>服务价格:{{ item.serviceTotalPrice }}</text>
|
|
|
- <view class="info-item"
|
|
|
- >服务数量:{{ listData.singleQuantity
|
|
|
- }}{{ listData.businessUnit }}</view
|
|
|
- >
|
|
|
- <text
|
|
|
- >服务状态:{{
|
|
|
- dictSortMap[item.orderStatus] || item.orderStatus
|
|
|
- }}</text
|
|
|
- >
|
|
|
+ <up-card v-for="(item, index) in listData.secondOrderList" :key="index" :title="'订单号'">
|
|
|
+ <template #head>
|
|
|
+ <view class="custom-order-title">
|
|
|
+ <text>订单号:</text>
|
|
|
+ <text class="order-number">{{ item.secondOutTradeNo }}</text>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ <template #body>
|
|
|
+ <view class="list-item">
|
|
|
+ <image :src="listData.volunteerPicture" mode="aspectFill" class="item-image">
|
|
|
+ </image>
|
|
|
+ <view class="item-info">
|
|
|
+ <view class="info-line">
|
|
|
+ 服务类别:{{ listData.businessManagementName }}
|
|
|
</view>
|
|
|
- <view class="right-corner-container" v-if="item.orderStatus !== '1'">
|
|
|
- <up-button
|
|
|
- type="error"
|
|
|
- text="评论"
|
|
|
- size="mini"
|
|
|
- @click="handlButClick(item)"
|
|
|
- :customStyle="hadlClickError"
|
|
|
- ></up-button>
|
|
|
+ <text>服务价格:<text style="color: red">¥{{ item.serviceTotalPrice }}</text></text>
|
|
|
+ <view class="info-item">服务数量:{{ listData.singleQuantity
|
|
|
+ }}{{ listData.businessUnit }}</view>
|
|
|
+ <text>服务状态:{{
|
|
|
+ dictSortMap[item.orderStatus] || item.orderStatus
|
|
|
+ }}</text>
|
|
|
+ <view class="info-line">
|
|
|
+ 预计开始服务日期:{{ item.workDate }}
|
|
|
</view>
|
|
|
+ <view class="info-line">
|
|
|
+ 预计开始服务时间:{{ item.workStartTime }}
|
|
|
+ </view>
|
|
|
+ <view class="info-line">
|
|
|
+ 预计结束服务时间:{{ item.workEndTime }}
|
|
|
+ </view>
|
|
|
+
|
|
|
</view>
|
|
|
- </template>
|
|
|
- </up-card>
|
|
|
- </view>
|
|
|
+ <view class="right-corner-container" v-if="item.orderStatus !== '1'">
|
|
|
+ <up-button type="error" text="评论" size="mini" @click="handlButClick(item)"
|
|
|
+ :customStyle="hadlClickError"></up-button>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </up-card>
|
|
|
+ </view>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
@@ -202,13 +159,25 @@ async function getData() {
|
|
|
}
|
|
|
|
|
|
const handlButClick = (item) => {
|
|
|
+ // 直接跳转到userComment页面并传递必要数据
|
|
|
uni.navigateTo({
|
|
|
- url: `/pages_classify/pages/orderItem/userComment?mainOrderId=${
|
|
|
- mainOrderId.value
|
|
|
- }&secondOrderId=${item.secondOrderId}&data=${encodeURIComponent(
|
|
|
- JSON.stringify(listData.value)
|
|
|
- )}`,
|
|
|
- })
|
|
|
+ url: `/pages_classify/pages/orderItem/userComment?secondOrderId=${item.secondOrderId}`
|
|
|
+ });
|
|
|
+
|
|
|
+ // 在跳转前存储必要数据
|
|
|
+ uni.setStorage({
|
|
|
+ key: 'orderDetailsData',
|
|
|
+ data: {
|
|
|
+ volunteerPicture: listData.value.volunteerPicture,
|
|
|
+ businessManagementName: listData.value.businessManagementName,
|
|
|
+ volunteerName: listData.value.volunteerName,
|
|
|
+ volunteerInfoId: listData.value.volunteerInfoId,
|
|
|
+ secondOrderId: item.secondOrderId
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.error('保存订单数据失败', err);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
// 获取传递的参数
|
|
@@ -308,12 +277,23 @@ onMounted(() => {
|
|
|
}
|
|
|
|
|
|
.info-item {
|
|
|
- margin-bottom: 24rpx;
|
|
|
+ margin-bottom: 15rpx;
|
|
|
font-size: 28rpx;
|
|
|
line-height: 1.6;
|
|
|
color: #333;
|
|
|
}
|
|
|
|
|
|
+.info-itemIform{
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-line-clamp: 3;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ margin-bottom: 15rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ line-height: 1.6;
|
|
|
+ color: #333;
|
|
|
+}
|
|
|
/* 右上角评分 */
|
|
|
.card-rating {
|
|
|
position: absolute;
|