baodeng_xcx/page_user/pingzhuo/index.vue
2025-06-06 11:14:06 +08:00

576 lines
14 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<u-navbar title="拼桌" :border-bottom="false" :background="bgc" back-icon-color="#fff" title-color='#fff'
title-size='36' height='36' id="navbar">
</u-navbar>
<view class="tab">
<view class="top">
<view class="">
<image src="https://api.ccttiot.com/smartmeter/img/static/uGaLZEBgL84ajaRfZ3Ja" mode=""></image>深度酒吧
</view>
<view class="" style="color: #B8B8B8;text-decoration: underline;" @click="btnjilu">
我的记录
</view>
</view>
<view class="bot">
<view :class="tabindex == 1 ? 'active' : ''" @click="btntab(1)">
现场拼桌
<view class="" v-if="tabindex == 1"></view>
</view>
<view :class="tabindex == 2 ? 'active' : ''" @click="btntab(2)">
预约拼桌
<view class="" v-if="tabindex == 2"></view>
</view>
</view>
</view>
<view class="bd" v-if="dateflag" @click="btnchaxun">
<view class="bdtop">
<image src="https://api.ccttiot.com/smartmeter/img/static/uFfH3gMS0VJVIvFPFzRR" class="bj" mode=""></image>
<view class="fabu">
发布拼桌,找人一起玩
</view>
<view class="myxx">
<view class="myimg">
<image class="tx" :src="teamobj.sponsorAvatar == null ? 'https://api.ccttiot.com/smartmeter/img/static/uykK7yDBpbUQoLZFZlXo' : teamobj.sponsorAvatar" mode=""></image>
<image class="xb" src="https://api.ccttiot.com/smartmeter/img/static/urkC56KUGEuJxuV58Foa" mode=""></image>
<image class="xb" src="https://api.ccttiot.com/smartmeter/img/static/uK5bsCu9k1JFbVfIINRV" mode=""></image>
</view>
<view class="myname">
<view class="wo">
<text v-if="teamtwoobj.userId == teamobj.sponsorId">我</text> {{teamobj.name}}
</view>
<view class="zhuohao">
当前桌号:{{teamobj.boothName}}
</view>
</view>
</view>
</view>
<view class="bdbot">
<view class="lt">
正在拼 : {{ dots }}
</view>
<view class="cen">
<text>{{teamobj.currentNum}}</text> / {{teamobj.limitNum == null ? 0 : teamobj.limitNum}} · <text>拼桌成功</text>
</view>
<view class="rt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uYtfNn24hW5c7V1upB2T" mode=""></image>
</view>
</view>
</view>
<view class="yuyue" v-else @click="btnfabu">
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/uKUaflogbDvZoaRlGXhL" mode=""></image>
<view class="wenzi">
<view class="top">
发布拼桌,找人一起玩
</view>
<view class="duoshao">
<view class="img">
<image v-for="(img, index) in randomImages" :key="index" :src="img" mode=""></image>
</view>
<text style="margin-left: 30rpx;">快来一起发起拼桌吧</text>
</view>
</view>
</view>
<view class="xzname">
{{tabindex == 1 ? '现成拼桌池' : '预约拼桌池'}}
</view>
<view class="list">
<view class="item_list" v-for="(item,index) in pinzhuolist" :key="index">
<view class="top">
{{item.name}}
</view>
<view class="myxx">
<view class="myimg">
<image class="tx" :src="item.sponsorAvatar" mode=""></image>
<image v-if="item.sponsorSex == 1" class="xb" src="https://api.ccttiot.com/smartmeter/img/static/urkC56KUGEuJxuV58Foa" mode=""></image>
<image v-if="item.sponsorSex == 0" class="xb" src="https://api.ccttiot.com/smartmeter/img/static/uK5bsCu9k1JFbVfIINRV" mode=""></image>
</view>
<view class="myname">
<view class="wo" v-if="user.userId == item.sponsorId">
<text>我</text> {{item.sponsorName}}
</view>
<view class="zhuohao">
桌号:{{item.boothName}}
</view>
</view>
</view>
<view class="jairu">
<image :src="i" mode=""></image>
已加{{item.currentNum == null ? '0' : item.currentNum}}人 | 剩余<text style="color: #FF8998;">{{Number(item.limitNum == null ? 0 : item.limitNum) - Number(item.currentNum == null ? 0 : item.currentNum)}}</text>人
</view>
<view class="jairu">
<image src="https://api.ccttiot.com/smartmeter/img/static/uQJLuuCQzeAGrFQ995Nm" mode=""></image>
{{item.prefer == 1 ? '偏好男性' : item.prefer == 2 ? '偏好女性' : '男女不限'}}
</view>
<!-- <view class="anniu">
进入群聊
</view> -->
<view class="anniu" v-if="dateflag" style="background-color: #ccc;color: #fff;" @click="btnjrpz(item)">
加入拼桌
</view>
<view class="anniu" v-else style="background-color: #FF8998;color: #fff;" @click="btnjrpz(item)">
加入拼桌
</view>
</view>
<view class="wu" style="width: 480rpx;height: 370rpx;margin: auto;margin-top: 80rpx;" v-if="pinzhuolist.length == 0">
<image style="width: 480rpx;height: 370rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uQziwcKvCYhaHoaw5u93" mode=""></image>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#010000",
},
tabindex:1,
pinzhuolist:[],
user:'',
teamobj:{},
teamtwoobj:{},
dateflag:false,
dots: '.',
timer: null,
// 添加所有可选的图片数组
allImages: [
'https://api.ccttiot.com/smartmeter/img/static/uW6Nsdsbk3cm0JZcYdZ3',
'https://api.ccttiot.com/smartmeter/img/static/u7ZMnMLrVfVloU1aQqlk',
'https://api.ccttiot.com/smartmeter/img/static/uL3sR8uy6FQGX1WJlcuc',
'https://api.ccttiot.com/smartmeter/img/static/uXnB3jfIGCwoAIGcNPsC',
'https://api.ccttiot.com/smartmeter/img/static/uMo03QdTdngUdZXCXZLx',
'https://api.ccttiot.com/smartmeter/img/static/uVbSWjNqRhZPiho4AIiJ',
'https://api.ccttiot.com/smartmeter/img/static/uac9z9s7LPIMjidGwEUU',
'https://api.ccttiot.com/smartmeter/img/static/uJPWutuFYeOejOAXn8FI',
'https://api.ccttiot.com/smartmeter/img/static/uc95pV4gpCPfacUT56Sb',
'https://api.ccttiot.com/smartmeter/img/static/uw3LumlMvIFxoR46Nk2M',
'https://api.ccttiot.com/smartmeter/img/static/uWWUYfXUOpWsDGKO2cXT',
'https://api.ccttiot.com/smartmeter/img/static/uuMZ9EM9dNIxvJJQ8PyG',
'https://api.ccttiot.com/smartmeter/img/static/uAgBadpkh4G5w2ICo3Ri',
'https://api.ccttiot.com/smartmeter/img/static/uQbjOPxJQsghlY79wutq',
'https://api.ccttiot.com/smartmeter/img/static/u2ZFV9n4icW2oQr3rXPj',
'https://api.ccttiot.com/smartmeter/img/static/ulR8mk1SEOghBK40NV6a',
'https://api.ccttiot.com/smartmeter/img/static/uJpyxbAjX1iI0qRfXxHj',
'https://api.ccttiot.com/smartmeter/img/static/uoxy6mhPIFyO2ojpEPNW',
],
// 随机选择的4张图片
randomImages: []
}
},
onLoad() {
},
onShow() {
this.getdangqian()
this.getinfo()
this.getlist()
this.getRandomImages() // 添加获取随机图片的调用
},
mounted() {
this.timer = setInterval(() => {
this.dots = this.dots.length >= 3 ? '.' : this.dots + '.'
}, 500)
},
beforeDestroy() {
clearInterval(this.timer)
},
methods: {
// 查询是否有拼桌
getdangqian(){
this.$u.get(`/app/team/myTeam`).then(res => {
if (res.code == 200) {
this.teamtwoobj = res.data
if (res.data) {
this.teamobj = res.data.team
this.dateflag = true
}else{
this.dateflag = false
}
}
})
},
// 获取个人信息
getinfo(){
this.$u.get(`/getInfo`).then(res => {
if (res.code == 200) {
this.user = res.user
}
})
},
// 点击跳转到发布拼桌
btnfabu(){
uni.navigateTo({
url:'/page_user/pingzhuo/cjpinzhuo?type=' + this.tabindex
})
},
// 请求拼桌列表
getlist(){
this.$u.get(`/app/team/getTeamList?pageNum=1&pageSize=99&type=${this.tabindex}`).then(res =>{
if(res.code == 200){
this.pinzhuolist = res.rows
}
})
},
// 点击切换tab
btntab(num){
this.tabindex = num
this.getlist()
},
// 点击我的记录
btnjilu(){
uni.navigateTo({
url:'/page_user/pingzhuo/jilu?userid=' + this.user.userId
})
},
// 点击进入我的拼桌详情
btnchaxun(){
uni.navigateTo({
url:'/page_user/pingzhuo/zhuozixq?teamId=' + this.teamobj.id
})
},
// 点击加入拼桌
btnjrpz(item){
this.$u.post(`/app/team/joinTeam?teamId=${item.id}`).then(res =>{
if(res.code == 200){
uni.navigateTo({
url:'/page_user/pingzhuo/zhuozixq?teamId=' + item.id
})
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration:2000
})
}
})
},
// 获取随机图片
getRandomImages() {
// 复制原数组
let tempArray = [...this.allImages]
// 随机选择4张图片
this.randomImages = []
for(let i = 0; i < 4; i++) {
if(tempArray.length > 0) {
const randomIndex = Math.floor(Math.random() * tempArray.length)
this.randomImages.push(tempArray[randomIndex])
tempArray.splice(randomIndex, 1)
}
}
},
}
}
</script>
<style lang="scss">
page {
background: #010000;
padding-bottom: 50rpx;
box-sizing: border-box;
}
.active{
font-weight: 600;
font-size: 32rpx !important;
color: #FFFFFF !important;
}
.yuyue{
width: 700rpx;
height: 202rpx;
position: relative;
margin: auto;
margin-top: 42rpx;
.wenzi{
position: absolute;
top: 0;
left: 0;
padding: 36rpx 32rpx;
box-sizing: border-box;
.top{
font-weight: 600;
font-size: 32rpx;
color: #FFFFFF;
}
.duoshao{
display: flex;
align-items: center;
margin-top: 44rpx;
.img{
display: flex;
align-items: center;
image{
width: 34rpx;
height: 34rpx;
border-radius: 50%;
margin-left: -10rpx;
filter: blur(10px);
-webkit-filter: blur(1px);
}
}
}
}
.bj{
position: absolute;
top: 0;
left: 0;
width: 700rpx;
height: 202rpx;
}
}
.list{
width: 100%;
padding: 0 24rpx;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.item_list{
width: 340rpx;
height: 344rpx;
background: #1C1C1E;
border-radius: 14rpx 14rpx 14rpx 14rpx;
padding: 26rpx 22rpx;
box-sizing: border-box;
margin-top: 22rpx;
.anniu{
width: 296rpx;
height: 56rpx;
background: #322C2D;
border-radius: 6rpx 6rpx 6rpx 6rpx;
font-weight: 600;
font-size: 24rpx;
color: #FF8998;
text-align: center;
line-height: 56rpx;
margin-top: 18rpx;
}
.top{
font-size: 24rpx;
color: #FFFFFF;
}
.jairu{
margin-top: 22rpx;
display: flex;
align-items: center;
image{
width: 22rpx;
height: 22rpx;
margin-right: 10rpx;
}
font-size: 22rpx;
color: #FFFFFF;
}
.myxx{
display: flex;
align-items: center;
margin-top: 26rpx;
.myname{
.zhuohao{
font-weight: 600;
font-size: 24rpx;
color: #FFFFFF;
}
.wo{
display: flex;
align-items: center;
font-size: 24rpx;
color: #FFFFFF;
text{
width: 24rpx;
height: 24rpx;
background: linear-gradient( 135deg, #76FF8E 0%, #BAFFE5 100%);
border-radius: 6rpx 6rpx 6rpx 6rpx;
font-size: 16rpx;
color: #1D5013;
text-align: center;
line-height: 24rpx;
margin-right: 8rpx;
}
}
}
.myimg{
width: 62rpx;
height: 62rpx;
position: relative;
margin-right: 30rpx;
.tx{
width: 62rpx;
height: 62rpx;
border-radius: 50%;
}
.xb{
width: 26rpx;
height: 26rpx;
position: absolute;
bottom: 0;
right: 0;
}
}
}
}
}
.xzname{
font-weight: 600;
font-size: 28rpx;
color: #FFFFFF;
width: 700rpx;
margin: auto;
margin-top: 42rpx;
}
.bd{
width: 700rpx;
height: 284rpx;
margin: auto;
margin-top: 42rpx;
position: relative;
.bdbot{
position: absolute;
bottom:0;
left: 0;
width: 700rpx;
height: 82rpx;
background: #1C1C1E;
display: flex;
justify-content: space-between;
align-items:center;
padding: 26rpx 40rpx;
box-sizing: border-box;
border-radius: 0 0 24rpx 24rpx;
.lt{
font-size: 24rpx;
color: #FFFFFF;
width: 200rpx;
}
.cen{
font-size: 24rpx;
color: #FFFFFF;
text{
color: #FF8998;
}
}
.rt{
image{
width: 32rpx;
height: 32rpx;
}
}
}
.bdtop{
position: absolute;
top: 0;
left: 0;
padding: 36rpx 32rpx;
box-sizing: border-box;
.myxx{
display: flex;
align-items: center;
margin-top: 26rpx;
.myname{
.zhuohao{
font-weight: 600;
font-size: 24rpx;
color: #FFFFFF;
}
.wo{
display: flex;
align-items: center;
font-size: 24rpx;
color: #FFFFFF;
text{
width: 24rpx;
height: 24rpx;
background: linear-gradient( 135deg, #76FF8E 0%, #BAFFE5 100%);
border-radius: 6rpx 6rpx 6rpx 6rpx;
font-size: 16rpx;
color: #1D5013;
text-align: center;
line-height: 24rpx;
margin-right: 8rpx;
}
}
}
.myimg{
width: 62rpx;
height: 62rpx;
position: relative;
margin-right: 30rpx;
.tx{
width: 62rpx;
height: 62rpx;
border-radius: 50%;
}
.xb{
width: 16rpx;
height: 16rpx;
position: absolute;
bottom: 0;
right: 0;
}
}
}
.fabu{
font-weight: 600;
font-size: 32rpx;
color: #FFFFFF;
}
.bj{
width: 700rpx;
height: 202rpx;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
}
}
.tab{
width: 750rpx;
height: 180rpx;
background: #1C1C1E;
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding-top: 24rpx;
padding-left: 52rpx;
padding-right: 52rpx;
padding-bottom: 28rpx;
margin-top: 28rpx;
box-sizing: border-box;
color: #fff;
font-size: 28rpx;
.bot{
display: flex;
justify-content: space-between;
padding: 0 140rpx;
box-sizing: border-box;
font-size: 32rpx;
color: #808080;
margin-top: 38rpx;
view{
view{
width: 40rpx;
height: 6rpx;
background: #FF8998;
border-radius: 5rpx 5rpx 5rpx 5rpx;
margin: auto;
margin-top: 10rpx;
}
}
}
.top{
display: flex;
justify-content: space-between;
view{
display: flex;
align-items: center;
image{
width: 26rpx;
height: 26rpx;
margin-right: 14rpx;
}
}
}
}
</style>