上传代码

This commit is contained in:
2025-08-18 10:01:04 +08:00
commit d0be991e07
2614 changed files with 1130442 additions and 0 deletions

View File

@ -0,0 +1,278 @@
<template>
<view class="container">
<view class="history-list">
<view class="history-item" v-for="(item, index) in historyList" :key="index">
<view class="history-info">
<image class="history-img" :src="item.imgUrl"></image>
<view class="nameTime">
<text class="history-title">{{ item.title }}</text>
<text class="time">{{ item.time.substr(0, 19).replace('T', ' ') }}</text>
</view>
<view class="star">
<text class="history-sale">{{ item.sale }}</text>
<uni-rate :readonly="true" :value="item.star" active-color="#13c2c2" :is-fill="false"
color="#13c2c2" :size="16"/>
</view>
</view>
<view class="extend">
<text @click="reviewUser(item)" class="messageDetail">{{ item.message }}</text>
<template v-if="item.businessReview && item.businessReview.trim() !== ''">
<view class="business-reply-container">
<text class="businessReviewTitle">商家回复</text>
<text class="businessReview">{{ item.businessReview }}</text>
</view>
</template>
</view>
</view>
</view>
</view>
</template>
<script>
import { onMounted } from "vue";
import {
apiImageUrl
} from '../../API/api';
export default {
name: 'HistoryList',
data() {
return {
historyList: []
};
},
onLoad() {
this.review();
},
mounted() {
this.review();
},
methods: {
review() {
uni.request({
url: `${apiImageUrl}/api/level/list/business`,
method: 'POST',
data:{
id:uni.getStorageSync("businessId")
},
header: {
'Content-Type': 'application/json',
'cookie': uni.getStorageSync("cookie") || ''
},
success: (res) => {
console.log(res);
console.log("成功");
this.historyList = res.data.data.map(item => ({
id: item.id,
businessId: item.businessId,
userId: item.userId,
orderId: item.orderId,
star: item.rating,
review: item.review,
businessReview: item.businessReview,
createTime: item.createTime,
imgUrl: 'https://tse2-mm.cn.bing.net/th/id/OIP-C.B32YODeRecLlETs7eOvyXwHaHa?pid=ImgDet&w=474&h=474&rs=1',
title: '大表哥',
sale: item.rating,
time: item.createTime,
message: item.review
}));
},
fail: () => {
console.log("失败");
}
});
},
reviewUser(item){
console.log(item.id);
const replyId=item.id
uni.showModal({
title: '请完成数据填写',
content: '',
editable:true,
placeholderText:'请输入回复信息',
confirmText: '确认',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
console.log('输入的内容:', res.content);
const content=res.content
uni.request({
url:apiImageUrl+'/api/level/business/reply',
method:'POST',
header: {
'Content-Type': 'application/json',
'cookie': uni.getStorageSync("cookie") || ''
},
data:{
businessReview:content,
id:replyId
},
success(response) {
console.log("成功");
console.log(response);
onMounted(review())
},
fail(){
console.log("失败");
}
})
}
}
});
}
}
};
</script>
<style>
.container {
align-items: center;
padding: 20rpx;
}
.history-list {
width: 100%;
}
.history-item {
background-color: #fff;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
padding: 15px;
margin-bottom: 20rpx;
}
.extend .business-reply-container {
background-color: #f4f4f4;
border-radius: 8px;
padding: 10px;
margin: 5px 0;
display: block;
color: #666;
font-size: 14px;
}
.extend .business-reply-container .businessReviewTitle {
color: #666;
font-size: 14px;
font-weight: normal;
margin-bottom: 5px;
display: block;
}
.extend .business-reply-container .businessReview {
display: block;
}
.messageDetail {
color: #000;
font-size: 14px;
}
.history-info {
display: flex;
flex-direction: row;
align-items: center;
}
.history-img {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
margin-right: 10px;
}
.nameTime {
display: flex;
flex-direction: row;
align-items: flex-start;
margin-right: 10px;
}
.history-title,
.time {
margin: 0;
font-size: 12px;
margin-right: 10px;
}
.star {
display: flex;
flex-direction: column;
align-items: flex-end;
}
.history-sale {
font-size: 30rpx;
color: #000;
margin-top: 0;
margin-right: 5px;
}
.example-body {
padding: 10px;
}
.scroll-view {
/* #ifndef APP-NVUE */
width: 100%;
height: 100%;
/* #endif */
flex: 1
}
.scroll-view-box {
flex: 1;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.info {
padding: 15px;
color: #666;
}
.info-text {
font-size: 14px;
color: #666;
}
.info-content {
padding: 5px 15px;
}
.card {
width: 100%;
height: 100px;
border-radius: 15px;
background-image: -webkit-linear-gradient(top, #fff, #B0D3F4);
}
.containerShow {
padding: 7px;
position: relative;
}
.img {
width: 60px;
height: 40px;
display: inline-block;
margin-top: 30px;
}
.imageItem {
width: 100%;
height: 100%;
border-radius: 15px;
margin: auto 0;
}
</style>