This commit is contained in:
zpc 2025-12-02 14:07:08 +08:00
commit db0250db89
7 changed files with 1227 additions and 720 deletions

View File

@ -1,6 +1,6 @@
{
"name" : "mahjong_group",
"appid" : "__UNI__6A23109",
"name" : "山雀搭子",
"appid" : "__UNI__60D9924",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",

View File

@ -97,6 +97,29 @@
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/me/my-message-page",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
{
"path" : "pages/appointment/book-room-page",
"style" :
{
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
},
{
"path" : "pages/me/my-earnings-page",
"style" :
{
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
}
],
"globalStyle": {
@ -118,7 +141,8 @@
"text": "首页"
},
{
"pagePath": "pages/appointment/appointment-page",
// "pagePath": "pages/appointment/appointment-page",
"pagePath": "pages/appointment/book-room-page",
"iconPath": "/static/tabbar/appointment.png",
"selectedIconPath": "/static/tabbar/appointment_s.png",
"text": "预约"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,176 @@
<template>
<view class="content column">
<view class="column" style="width: 100%; height: 308rpx; background-color: white;">
<view style="flex: 1;"></view>
<text class="page-title">发起预约</text>
<view class="row" style="width: 90%; height: 120rpx; margin: 20rpx auto 0;">
<view class="column center" v-for="(item,index) in dateList" :style="setBgColor(index)"
@click="clickTime(index)" style="width: 96rpx; height: 100%;">
<text style="font-size: 26rpx;">{{item.time}}</text>
<text style="font-size: 22rpx;">{{item.weekday}}</text>
</view>
</view>
</view>
<text style="margin-top: 20rpx; margin-left: 32rpx; font-size: 24rpx;">营业时间早XX点 晚XX点</text>
<view class="row"
style="width: 686rpx; height: 56rpx; background-color: #2ED9BF; border-radius: 5rpx; margin: 20rpx auto 0; align-items: center;">
<text style="font-size: 22rpx; color: #262626; margin-left: 16rpx;">查看当前时段空闲时间</text>
<up-switch style="margin-right: 16rpx; margin-left: auto; " v-model="value" @change="change"
size="20"></up-switch>
</view>
<view class="" style="width: 100%; flex: 1; margin-top: 12rpx; overflow-y: auto;">
<view class="" v-for="(item,index) in roomList"
style="position: relative; width: 706rpx; height: 270rpx; border-radius: 20rpx; background-color: white; margin: 0 auto 20rpx;">
<image src=""
style="width: 180rpx; height: 156rpx; background-color: #DEDEDE; border-radius: 14rpx; position: absolute; top: 10rpx; left: 10rpx;"
mode=""></image>
<view class="column" style=" position: absolute; left: 200rpx; top: 20rpx;">
<text style="font-size: 28rpx;">房间号或房间名</text>
<text style="font-size: 20rpx;">房间类型</text>
<text style="font-size: 24rpx; margin-top: 24rpx;">¥30/4小时</text>
<text style="font-size: 24rpx; color: #FF0000;">会员价¥30/5小时</text>
</view>
<text
style="font-size: 20rpx; position: absolute; top: 10rpx; right: 16rpx; color: #FF9901;">当前使用中</text>
<view class="center"
style="width: 92rpx; height: 46rpx; background-color: #20BBA4; border-radius: 52rpx; font-size: 26rpx; color: white; position: absolute; bottom: 94rpx; right: 10rpx;">
预约
</view>
<view class="row" style="align-items: center; position: absolute; left: 10rpx; bottom: 60rpx;">
<view style="width: 24rpx; height: 4rpx; background-color: #FF9901;"></view>
<text style="font-size: 16rpx; color: #323232; margin-left: 8rpx;">已预定时段</text>
<view style="width: 24rpx; height: 4rpx; background-color: #E6E6E6; margin-left: 22rpx;"></view>
<text style="font-size: 16rpx; color: #323232; margin-left: 8rpx;">已预定时段</text>
</view>
<view class="row" style="align-items: center; position: absolute; left: 10rpx; bottom: 14rpx;">
<view class="column center" style="margin-right: 20rpx;">
<view style="width: 70rpx; height: 4rpx; background-color: #FF9901;"></view>
<text style="font-size: 12rpx; margin-top: 4rpx;">凌晨</text>
</view>
<view class="column center" style="margin-right: 20rpx;">
<view style="width: 70rpx; height: 4rpx; background-color: #E6E6E6;"></view>
<text style="font-size: 12rpx; margin-top: 4rpx;">上午</text>
</view>
<view class="column center" style="margin-right: 20rpx;">
<view style="width: 70rpx; height: 4rpx; background-color: #FF9901;"></view>
<text style="font-size: 12rpx; margin-top: 4rpx;">下午</text>
</view>
<view class="column center" style="margin-right: 20rpx;">
<view style="width: 70rpx; height: 4rpx; background-color: #E6E6E6;"></view>
<text style="font-size: 12rpx; margin-top: 4rpx;">晚上</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
currentTimeIndex: 0,
dateList: [],
value: false,
roomList: [1, 2, 3, 4, 5, 6],
}
},
onLoad() {
this.getDateList();
},
methods: {
change(e) {
console.log('change', e);
},
/**
* 生成日期列表当天+后续6天共7天
*/
getDateList() {
const list = [];
const today = new Date(); //
const weekNames = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
for (let i = 0; i < 7; i++) {
const current = new Date();
current.setDate(today.getDate() + i); // i
// 1. .10.112.30
const month = current.getMonth() + 1; // 0
const day = current.getDate();
const time = `${month}.${day}`;
// 2.
let weekday;
if (i === 0) {
weekday = "今天"; //
} else {
const weekIndex = current.getDay(); // 0=6=
weekday = weekNames[weekIndex];
}
list.push({
time,
weekday
});
}
this.dateList = list;
},
//
setBgColor(index) {
if (this.currentTimeIndex == index) {
return {
backgroundColor: "#20BBA4",
color: "#FFFFFF",
}
} else {
return {
backgroundColor: "#FFFFFF",
color: "#000000",
}
}
},
clickTime(index) {
this.currentTimeIndex = index;
}
}
}
</script>
<style lang="scss">
.content {
width: 100%;
height: 100vh;
background-color: #F7F7F7;
}
/* 页面标题 */
.page-title {
margin-top: 100rpx;
text-align: center;
margin-bottom: 20rpx;
}
</style>

View File

@ -154,7 +154,8 @@ const commonActions = [
{ label: '常见问题', icon: '@@:app/static/me/cjwt.png', action: 'faq' },
{ label: '黑名单', icon: '@@:app/static/me/hmd.png', action: 'blacklist' },
{ label: '联系我们', icon: '@@:app/static/me/lxwm.png', action: 'contact' },
{ label: '我的消息', icon: '@@:app/static/me/lxwm.png', action: 'message' },
{ label: '我的收益', icon: '@@:app/static/me/lxwm.png', action: 'revenue' },
]
const handleCommonAction = (item) => {
@ -192,6 +193,16 @@ const handleCommonAction = (item) => {
url: '/pages/other/agreement?type=about'
});
break;
case 'message':
uni.navigateTo({
url: '/pages/me/my-message-page'
});
break;
case 'revenue':
uni.navigateTo({
url: '/pages/me/my-earnings-page'
});
break;
default:
uni.showToast({ title: '敬请期待', icon: 'none' });
break;

View File

@ -0,0 +1,176 @@
<template>
<view class="content column">
<view class="row" style="width: 90%; margin: 100rpx auto 0; justify-content: space-between;">
<image src="/static/back.png" style="width: 40rpx; height: 40rpx;" @click="goBack()" mode=""></image>
<text style="font-size: 30rpx;">我的收益</text>
<view style="width: 40rpx;"></view>
</view>
<view class="" style="width: 728rpx; height: 2rpx; background-color: #EBEBEB; margin: 40rpx auto 0;"></view>
<view class="column"
style="width: 686rpx; height: 282rpx; box-shadow: 0 0 18rpx rgba(0, 0, 0, 0.08); margin: 20rpx auto 0; background-color: white; border-radius: 10rpx;">
<view class="row">
<view class="column" style="margin-top: 20rpx; margin-left: 24rpx;">
<text style="font-size: 28rpx;">待提取收益</text>
<text style="font-size: 48rpx;">0.00</text>
</view>
<view class="column" style="margin-top: 20rpx; margin-left: auto; margin-right: 22rpx;">
<text style="font-size: 28rpx;">已提取收益</text>
<text style="font-size: 48rpx;">0.00</text>
</view>
</view>
<view class="center" @click="reflectShow = true"
style="width: 640rpx; height: 76rpx; background-color: #00AC4E; border-radius: 48rpx; margin: 44rpx auto 0; font-size: 30rpx; color: #FFFFFF;">
去提现
</view>
</view>
<view class="center" style="color: #00A2FF; font-size: 24rpx; margin: 20rpx;" @click="show = true">
<text>点击查看收益规则</text>
</view>
<view class="column"
style="width: 686rpx; height: 744rpx; background-color: #FFFFFF; box-shadow: 0 0 18rpx rgba(0, 0, 0, 0.08); margin: 0 auto 0;">
<view class="row" style="width: 100%; height: 96rpx; background-color: #00AC4E;">
<view class="center" style="flex: 1;" :style="setColor(0)" @click="clickTab(0)">
收益记录
</view>
<view class="center" style="flex: 1;" :style="setColor(1)" @click="clickTab(1)">
提现记录
</view>
</view>
<view v-if="currentIndex == 0" class="row" style="font-size: 28rpx; margin-top: 20rpx;">
<view class="center" style="flex: 1;">时间</view>
<view class="center" style="flex: 1;">房号/房名</view>
<view class="center" style="flex: 1;">房费</view>
<view class="center" style="flex: 1;">收益</view>
</view>
<view v-else class="row" style="font-size: 28rpx; margin-top: 20rpx;">
<view class="center" style="flex: 1;">时间</view>
<view class="center" style="flex: 1;">提现金额</view>
<view class="center" style="flex: 1;">状态</view>
</view>
<view class="" v-if="currentIndex == 0" style="width: 100%; flex: 1; margin-top: 16rpx;">
<view class="row" v-for="(item,index) in dataList"
style="font-size: 28rpx; color: #555555; margin-bottom: 20rpx;">
<view class="center" style="flex: 1;">2025/1/1</view>
<view class="center" style="flex: 1;">305大包</view>
<view class="center" style="flex: 1;">12</view>
<view class="center" style="flex: 1;">0.12</view>
</view>
</view>
<view class="" v-else style="width: 100%; flex: 1; margin-top: 16rpx;">
<view class="row" v-for="(item,index) in dataList"
style="font-size: 28rpx; color: #555555; margin-bottom: 20rpx;">
<view class="center" style="flex: 1;">2025/1/1</view>
<view class="center" style="flex: 1;">12</view>
<view class="center" style="flex: 1;">提现中</view>
</view>
</view>
</view>
<up-popup v-model:show="show" @close="close" @open="open" :round="10" mode="center" :closeable="true">
<view style="width: 656rpx;">
<view class="center" style="margin-top: 28rpx;">规则说明</view>
<view class="center" style="width: 80%; margin: 44rpx auto 20rpx;">
正文正文正文正文正文正文正文正文正文正文正文正
文正文正文正文正文正文正文正文正文正文正文正文
正文正文正文正文正文正文正文
</view>
</view>
</up-popup>
<up-popup v-model:show="reflectShow" @close="close" @open="open" :round="10" mode="center" :closeable="true">
<view style="width: 656rpx;">
<view class="center" style="margin-top: 28rpx;">提现申请</view>
<view class="center"
style="width: 90%; height: 114rpx; margin: 26rpx auto 20rpx; background-color: rgba(0,172,78,0.37); border-radius: 30rpx;">
<up-input placeholder="请输入要提现的金额" placeholderStyle="color:'#818181'" border="none"
inputAlign="center" fontSize="32rpx" v-model="value"></up-input>
</view>
<view class="row" style="width: 90%; margin: 0 auto 0;">
<text style="font-size: 28rpx; color: #818181;">最高可提现0.00</text>
<text style="font-size: 28rpx; color: #00A2FF; margin-left: auto;">全部提现</text>
</view>
<view class="center"
style="width: 304rpx; height: 90rpx; background-color: #00AC4E; color: #FFFFFF; margin: 30rpx auto 0; font-size: 32rpx;">
申请提现
</view>
</view>
</up-popup>
</view>
</template>
<script>
export default {
data() {
return {
currentIndex: 0,
show: false,
reflectShow: false,
dataList: [1, 2, 3, 4, 5, 6],
value: ''
}
},
methods: {
//
goBack() {
uni.navigateBack({
delta: 1
})
},
setColor(index) {
if (this.currentIndex == index) {
return {
color: '#FFFFFF',
}
} else {
return {
color: '#686868',
}
}
},
clickTab(index) {
this.currentIndex = index;
},
open() {
},
close() {
},
}
}
</script>
<style lang="scss">
.content {
width: 100%;
height: 100vh;
background: #F7F7F7;
}
</style>

View File

@ -0,0 +1,87 @@
<template>
<view class="content column">
<view class="row" style="width: 90%; margin: 100rpx auto 0; justify-content: space-between;">
<image src="/static/back.png" style="width: 40rpx; height: 40rpx;" @click="goBack()" mode=""></image>
<text style="font-size: 30rpx;">我的消息</text>
<view style="width: 40rpx;"></view>
</view>
<view class="row" style="width: 100%; margin-top: 40rpx; margin-left: 56rpx;">
<view class="center" @click="clickTab(index)"
style="margin-right: 20rpx; width: 134rpx; height: 48rpx; font-size: 26rpx; border-radius: 34rpx;"
:style="setBgColor(index)" v-for="(item,index) in teabList">
{{item}}
</view>
</view>
<view class="" style="width: 100%; height: 1rpx; background-color: #EBEBEB; margin-top: 20rpx;"></view>
<view class="column"
style="width: 100%; flex: 1; margin-top: 20rpx; overflow-y: auto;">
<view class="column" v-for="(item,index) in messageList"
style="width: 686rpx; margin: 0rpx auto 30rpx; background-color: white; border-radius: 32rpx; ">
<text style="font-size: 32rpx; margin-top: 22rpx; margin-left: 30rpx;">标题标题标题</text>
<text
style="font-size: 32rpx; margin-top: 10rpx; margin-left: 30rpx;">正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文
正文正文正文正文正文正文正文</text>
<text
style="font-size: 32rpx; margin-top: 70rpx; margin-left: auto; margin-right: 18rpx; margin-bottom: 10rpx;">2025//1/1
1112</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
currentIndex: 0,
teabList: ["全部", "私信"],
messageList: [1, 2, 3, 4, 5]
}
},
methods: {
//
goBack() {
uni.navigateBack({
delta: 1
})
},
setBgColor(index) {
if (this.currentIndex == index) {
return {
backgroundColor: '#C4FFDF',
color: '#00AC4E',
border: 'solid 1rpx #00AC4E',
}
} else {
return {
backgroundColor: '#FFFFFF',
color: '#000000',
border: 'solid 1rpx #EBEBEB',
}
}
},
clickTab(index) {
this.currentIndex = index;
}
}
}
</script>
<style lang="scss">
.content {
width: 100%;
height: 100vh;
background: #F7F7F7;
}
</style>