zyejMAll-mobile/pages/reservation_record/reservation_record.vue

245 lines
5.0 KiB
Vue
Raw Normal View History

2024-10-14 19:12:22 +08:00
<template>
<s-layout title="预约记录" :bgStyle="{ color: '#fff' }">
2024-10-16 18:09:51 +08:00
<view class="container">
<view class="cards">
<view class="card" v-for="(item, index) in reservationList" :key="index">
<view class="card-content">
<text class="type">预约信息</text>
2024-10-21 17:47:58 +08:00
<text class="time">订单日期{{ sheep.$helper.timeFormat(item.createTime, 'yyyy-mm-dd') }}</text>
2024-10-16 18:09:51 +08:00
</view>
<view>
2024-10-21 17:47:58 +08:00
<text class="address">预约姓名<text class="title">{{ item.technicianName }}</text></text>
<text class="address">预约电话<text class="title">{{ item.memberphone }}</text></text>
<text class="address">预约时间<text
class="title">{{ sheep.$helper.timeFormat(item.reAddTime, 'yyyy-mm-dd') }}</text></text>
<text class="address">门店名称<text class="title">{{ item.brandName }}</text> </text>
2024-10-16 18:09:51 +08:00
<div class="address-container">
2024-10-21 17:47:58 +08:00
<text class="address">门店地址<text class="title">{{ item.brandaddress }}</text></text>
2024-10-16 18:09:51 +08:00
</div>
2024-10-21 17:47:58 +08:00
<text class="address">备注留言<text class="title">{{ item.remark }}</text></text>
2024-10-16 18:09:51 +08:00
</view>
<view>
<text class="status"
2024-10-21 17:47:58 +08:00
style="float: right; border-radius: 10px; background-color: rgba(0,149,243); padding: 5px 10px; color: white;"
2024-10-16 18:09:51 +08:00
v-if=" item.reStatus===0">待审核</text>
<text class="status"
style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;"
v-if=" item.reStatus===1">预约成功</text>
<text class="status"
style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;"
2024-10-21 17:47:58 +08:00
v-if=" item.reStatus===2">已完结</text>
2024-10-16 18:09:51 +08:00
</view>
</view>
</view>
</view>
</s-layout>
2024-10-14 19:12:22 +08:00
</template>
<script>
2024-10-16 18:09:51 +08:00
import {
ref,
computed,
onMounted
} from 'vue';
2024-10-14 19:12:22 +08:00
import request from '@/sheep/request';
import {
baseUrl,
apiPath
} from '@/sheep/config';
2024-10-16 18:09:51 +08:00
import sheep from '@/sheep';
2024-10-14 19:12:22 +08:00
export default {
2024-10-16 18:09:51 +08:00
setup() {
// 使用 ref 创建响应式数据
const memberId = ref(null);
const reservationList = ref([]);
const page = ref(1);
const limit = ref(10);
const totalPages = ref(1);
// 使用 computed 创建计算属性
const userInfo = computed(() => sheep.$store('user').userInfo);
memberId.value = userInfo.value.id;
// 使用 onMounted 生命周期钩子
onMounted(() => {
getList();
});
// 定义方法
function getList() {
2024-10-14 19:12:22 +08:00
request({
url: `${baseUrl}${apiPath}/h5/reservation/list`,
method: 'GET',
2024-10-16 18:09:51 +08:00
params: {
userId: memberId.value,
2024-10-14 19:12:22 +08:00
},
custom: {
showLoading: false,
},
}).then((res) => {
2024-10-16 18:09:51 +08:00
reservationList.value = res.data.list;
2024-10-14 19:12:22 +08:00
});
2024-10-16 18:09:51 +08:00
}
// 将响应式数据和方法暴露给模板
return {
memberId,
reservationList,
page,
limit,
totalPages,
getList,
2024-10-21 17:47:58 +08:00
sheep
2024-10-16 18:09:51 +08:00
};
},
2024-10-14 19:12:22 +08:00
};
</script>
2024-10-16 18:09:51 +08:00
<style scoped lang="scss">
2024-10-14 19:12:22 +08:00
.address-container {
2024-10-16 18:09:51 +08:00
display: flex;
align-items: center;
2024-10-14 19:12:22 +08:00
}
2024-10-16 18:09:51 +08:00
2024-10-14 19:12:22 +08:00
.container {
display: flex;
flex-direction: column;
/* align-items: center; */
background-color: #f5f5f5;
2024-10-16 18:09:51 +08:00
padding: 15px;
2024-10-14 19:12:22 +08:00
}
.header {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.title {
font-size: 24px;
font-weight: bold;
color: #333;
}
.cards {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-top: 0px;
}
.card {
/* width: calc(50% - 10px); */
width: 100%;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
margin-bottom: 20px;
padding: 10px;
}
.card-content {
display: flex;
justify-content: space-between;
2024-10-21 17:47:58 +08:00
margin-bottom: 20px;
2024-10-16 18:09:51 +08:00
.type {
position: relative;
padding-left: 20px;
2024-10-21 17:47:58 +08:00
font-size: 16px;
2024-10-16 18:09:51 +08:00
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 10px;
height: 100%;
2024-10-21 17:47:58 +08:00
background: url('https://zysc.fjptzykj.com:3000/shangcheng/617bb18286a76a4c8bfc377bf69f7436c478252e419f04cdd9a6070dd352d00f.png') no-repeat;
2024-10-16 18:09:51 +08:00
background-size: 60%;
}
}
2024-10-21 17:47:58 +08:00
.time{
font-size: 15px;
}
2024-10-14 19:12:22 +08:00
}
.card-contentinfo {
margin-top: 20px;
text-align: center;
}
.card-image {
width: 50px;
height: 50px;
border-radius: 25px;
}
.technician {
margin-left: 20%;
}
.hospital,
.technician,
2024-10-16 18:09:51 +08:00
.type {
/* margin-left: 20px; */
2024-10-14 19:12:22 +08:00
font-size: 15px;
color: #161616;
font-weight: bold;
}
2024-10-16 18:09:51 +08:00
2024-10-14 19:12:22 +08:00
.status {
font-size: 15px;
color: #666;
}
2024-10-16 18:09:51 +08:00
.address {
2024-10-21 17:47:58 +08:00
display: block;
margin-bottom: 10px;
2024-10-14 19:12:22 +08:00
font-size: 15px;
2024-10-21 17:47:58 +08:00
color: rgba(174, 174, 174);
.title {
font-size: 15px;
font-weight: 300;
}
2024-10-16 18:09:51 +08:00
}
2024-10-14 19:12:22 +08:00
.health-list {
background-color: #FFFFFF;
height: 100%;
width: 98%;
margin: 5PX;
padding-left: 15px;
padding-top: 10px;
/* padding: 10px; */
border-radius: 12px;
}
.health_title {
padding: 5px;
}
.health_title_img {
float: left;
width: 40px;
height: 40px;
}
.health-title-title {
float: none;
font-size: 18px;
font-weight: bold;
margin-top: 10px;
margin-left: 10px;
}
.time {
/* margin-top: 20px; */
2024-10-21 17:47:58 +08:00
font-size: 12px;
color: #aeaeae;
2024-10-14 19:12:22 +08:00
}
2024-10-16 18:09:51 +08:00
</style>