Files
zhxg_app_v1.0/pages/functionRoom/functionRoom.vue

378 lines
8.1 KiB
Vue
Raw Permalink Normal View History

2025-07-16 15:34:34 +08:00
<template>
<view class="functionroom">
<view class="pic">
<image src="../../static/functionpic.png" mode="aspectFit"></image>
</view>
<view class="condition">
<text class="title">活动室</text>
<view class="sum">
<view>
<text>40</text>
<text> /</text>
</view>
<text>未使用</text>
</view>
</view>
<view class="btn">
<text>使用事项</text>
<view class="item">
<text>1遵守社区功能房使用规则</text>
</view>
<view class="item">
<text>2不恶意破坏功能房设备</text>
</view>
<view class="item">
<text>3使用完要打扫好环境</text>
</view>
</view>
<view class="bottom-container">
<button @click="showPopup">立即预约</button>
</view>
<zwy-popup :ishide="popupVisible">
<view class="count">
<!-- 主题 -->
<view class="form-item">
<text>主题</text>
<input type="text" placeholder="请输入" v-model="theme" />
</view>
<!-- 参与人员 -->
<view class="form-item">
<text>参与人员</text>
<input type="text" placeholder="请输入" v-model="participants" />
</view>
<!-- 人员类型 -->
<view class="form-item">
<text>人员类型</text>
<view class="type">
<uni-data-select class="type" v-model="selectedType" :localdata="range" @change="change"
placeholder="请选择参与人员类型"></uni-data-select>
</view>
</view>
<!-- 预约用途 -->
<view class="form-item">
<text>预约用途</text>
<view class="type">
<uni-data-select class="type" v-model="selectedPurpose" :localdata="purpose" @change="change"
placeholder="请选择用途"></uni-data-select>
</view>
</view>
<!-- 预约时间段 -->
<view class="form-item">
<text>预约时间段</text>
<view class="times">
<view class="">
开始时间
</view>
<view class="top">
<picker mode="date" :range="startDate" @change="bindDateChange">
<view>{{startDate}}</view>
</picker>
</view>
<view class="">
结束时间
</view>
<view class="botton">
<picker mode="date" :range="endDate" @change="bindEndDateChange">
<view>{{endDate}}</view>
</picker>
</view>
</view>
</view>
<view class="bottom-container">
<button>提交</button>
</view>
</view>
<view class="xclose" :style="closeButtonStyle" @click="closeModal">
<image src="../../static/取消.png" mode=""></image>
</view>
</zwy-popup>
</view>
</template>
<script>
export default {
data() {
return {
popupVisible: false, // 控制弹窗显示隐藏的变量
value: 0,
Type: "", //一开始为空
purposeType: "", //一开始为空
theme: '', // 主题
participants: '', // 参与人员
selectedType: '', // 人员类型
selectedPurpose: '', // 预约用途
selectedStartTime: '', // 开始时间
selectedEndTime: '' ,// 结束时间
startDate: this.getDate(),
endDate: this.getDate(),
range: [{
value: 0,
text: "学生"
},
{
value: 1,
text: "教师"
},
{
value: 2,
text: "领导"
},
],
purpose: [{
value: 0,
text: "会议"
},
{
value: 1,
text: "健身"
},
{
value: 2,
text: "游泳"
}
]
};
},
computed: {
// 关闭按钮样式
closeButtonStyle() {
return `position: absolute; bottom: -50px; left: 50%; transform: translateX(-50%); z-index:${this.zindex + 1};`
}
},
methods: {
closeModal() {
// 触发关闭弹窗事件
this.popupVisible = !this.popupVisible
},
// 控制弹窗显示
showPopup() {
this.popupVisible = true;
},
change(e) {
console.log("e:", e);
},
getDate() {
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
month = month > 9 ? month : '0' + month;
day = day > 9 ? day : '0' + day;
return `${year}-${month}-${day}`;
},
bindDateChange: function(e) {
this.startDate = e.detail.value;
},
bindEndDateChange: function(e) {
this.endDate = e.detail.value;
}
},
};
</script>
<style lang="scss" scoped>
.functionroom {
background-color: #e2e2e2;
position: relative;
.pic {
background-color: #F8F8F8;
height: 600rpx;
border: 1px solid #d7d7d7;
border-radius: 5px;
display: flex;
justify-content: center;
align-items: center;
image {
// margin-top: 20rpx;
// background-color: red;
width: 300px;
height: 500rpx;
border: 1px solid #d5d5d5;
}
}
.condition {
margin: 25rpx 0;
background-color: #F8F8F8;
padding: 30rpx;
.title {
font-size: 36rpx;
// font-weight: bold;
}
.sum {
margin-top: 10rpx;
display: flex;
justify-content: space-between;
text:first-child {
color: red;
margin-right: 10rpx;
}
}
}
.btn {
// margin-top: 25rpx;
background-color: #F8F8F8;
height: 600rpx;
padding: 30rpx;
.item {
margin-top: 20rpx;
padding: 5rpx;
}
}
.bottom-container {
position: fixed;
width: 100%;
bottom: 0;
button {
display: flex;
justify-content: center;
align-items: center;
height: 120rpx;
width: 100%;
font-size: 45rpx;
background-color: #2893d9;
color: white;
}
}
.popup {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 9999;
.popup-box {
background-color: #fff;
width: 80%;
height: 40%;
margin: 60% auto 0rpx; // 居中显示弹窗内容
padding: 20rpx; // 添加一些内边距,使内容不会紧贴边缘
border-radius: 10rpx; // 添加一些圆角,使内容更美观
box-sizing: border-box; // 确保内边距不会影响内容宽度和高度
overflow: auto; // 添加滚动条,如果内容超出弹窗框的高度
box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.5); // 添加一些阴影,使内容更突出
.btn-box {
display: flex; // 使用flex布局使按钮水平排列
justify-content: space-between; // 使按钮平均分布,两端对齐
align-items: center;
.btn {
margin-top: 80rpx;
width: 200rpx;
height: 80rpx;
line-height: 80rpx;
}
.cancel {
background-color: #fff;
color: #000;
border-radius: 10rpx; // 添加一些圆角,使内容更美观
border: 1rpx solid #ccc; // 添加一些边框,使内容更突出
text-align: center;
}
.confirm {
background-color: #1BA035;
color: #fff; // 添加一些内边距,使内容不会紧贴边缘
border-radius: 10rpx; // 添加一些边框,使内容更突出
text-align: center;
}
}
}
}
.count {
width: 86.5vw;
position: absolute;
padding: 60rpx;
.form-item {
width: 100%;
height: 80rpx;
display: flex;
align-items: center;
margin-bottom: 50rpx;
justify-content: space-between;
// border-bottom: 1px solid #ededee;
input {
border: 1px solid #b1b1b1;
padding: 10rpx 10px 10rpx;
}
.type {
width: 392rpx;
}
.times {
margin-top: 220rpx;
width: 360rpx;
// height: 200rpx;
// display: flex;
// align-items: center;
// justify-content: center;
// background-color: #ffffff;
// text-align: center;
// justify-content: space-between;
margin-bottom: 100rpx;
.top {
border: 1px solid #b1b1b1;
margin: 10rpx 0;
}
.botton {
margin: 10rpx 0;
border: 1px solid #b1b1b1;
}
}
}
.bottom-container {
position: fixed;
width: 95%;
bottom: 100rpx;
left: 50%;
transform: translateX(-50%);
button {
padding: 15rpx;
color: #000;
height: 40px;
font-size: 30rpx;
width: 90%;
// height: 100rpx;
background-color: rgba(0, 0, 0, 0);
border: 1px solid #b1b1b1;
}
}
}
.xclose {
image {
width: 60rpx;
height: 60rpx;
color: white;
}
cursor: pointer;
}
}
</style>