From 2f66b264fed5d3b9d0132281b63c7037c886e040 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 09 十月 2024 13:43:41 +0800
Subject: [PATCH] ll

---
 h5_meeting/pages/index/index.vue |  565 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 376 insertions(+), 189 deletions(-)

diff --git a/h5_meeting/pages/index/index.vue b/h5_meeting/pages/index/index.vue
index 4fb0f3a..6f01181 100644
--- a/h5_meeting/pages/index/index.vue
+++ b/h5_meeting/pages/index/index.vue
@@ -1,211 +1,398 @@
 <template>
-	<view class="main_app">
+	<view class="main_app">
 		<image src="@/static/bg@2x.png" class="main_bg" mode=""></image>
-		<view class="header_wrap">
-			<view class="title">浼氳瀹�</view>
-			<view class="time_wrap">
-				<view class="time">{{time}}</view>
-				<view class="date">{{date}}</view>
-			</view>
+		<view class="header_wrap">
+			<view class="title" @touchend="touchend">{{info.roomName}}</view>
+			<view class="time_wrap">
+				<view class="time">{{time}}</view>
+				<view class="date">{{date}}</view>
+			</view>
 		</view>
-		<view class="home_status orange">浼氳涓�</view>
-		<view class="meeting_name">浼氳鍚嶇О</view>
-		<view class="meeting_con">
-			<view class="content">
-				<view class="line">
-					<image src="@/static/ic_time@2x.png"></image>
-					<text>10~12</text>
-				</view>
-				<view class="line">
-					<image src="@/static/ic_people@2x.png"></image>
-					<text>10~12</text>
-				</view>
-			</view>
-			<view class="qrcode"></view>
-		</view>
-		<view class="meeting_wrap">
-			<view class="title">浠婃棩浼氳锛�6锛�</view>
-			<view class="list">
-				<view class="item">
-					<view class="name">寮�鍙戦儴浼氳</view>
-					<view class="line">棰勭害浜猴細鏉庢��鑻�</view>
-					<view class="line">13:30锝�15:00锛堝嵆灏嗗紑濮嬶級</view>
-					<image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
-				</view>
-				<view class="item empty">
-					<view class="name">鏆傛棤浼氳</view>
-					<view class="line">棰勭害浜猴細-</view>
-					<view class="line">-</view>
-					<image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
-				</view>
-			</view>
-		</view>
+		<view class="home_status">
+			<text v-if="!info.meetingListResponseList || info.meetingListResponseList.length == 0">绌洪棽涓�</text>
+			<text
+				v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 4">鍗冲皢寮�濮�</text>
+			<text class="orange"
+				v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 2">浼氳涓�</text>
+			<text
+				v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 1">鏈紑濮�</text>
+			<text
+				v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 3">宸茬粨鏉�</text>
+			<text
+				v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 5">宸叉挙閿�</text>
+		</view>
+		<view v-if="meetingInfo.meetingName" class="meeting_name">{{meetingInfo.meetingName}}</view>
+		<view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser" class="meeting_con">
+			<view class="content">
+				<view class="line">
+					<image src="@/static/ic_time@2x.png"></image>
+					<text>{{meetingInfo.meetingTime }}</text>
+				</view>
+				<view class="line">
+					<image src="@/static/ic_people@2x.png"></image>
+					<text>棰勭害浜猴細{{meetingInfo.bookingUser }}</text>
+				</view>
+			</view>
+			<view v-if="showQrbg" class="qrcode_wrap">
+				<canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
+			</view>
+		</view>
+		<view class="meeting_wrap">
+			<view class="title">
+				浠婃棩浼氳锛坽{ info.meetingListResponseList && info.meetingListResponseList.length > 0 ? info.meetingListResponseList.length : 0 }}锛�
+			</view>
+			<view class="list">
+				<view class="item" v-for="item in info.meetingListResponseList">
+					<view class="name">{{item.meetingName}}</view>
+					<view class="line">棰勭害浜猴細{{item.bookingUser}}</view>
+					<view class="line">{{item.meetingTime}}锛坽{statusMap[item.meetingStatus]}}锛�</view>
+					<image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
+				</view>
+				<view v-if="!info.meetingListResponseList || info.meetingListResponseList.length == 0" class="item empty">
+					<view class="name">鏆傛棤浼氳</view>
+					<view class="line">棰勭害浜猴細-</view>
+					<view class="line">-</view>
+					<image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
+				</view>
+			</view>
+		</view>
+
+		<!--  -->
+		<swiper
+			v-if="info.fileType == 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)"
+			class="swiper" circular autoplay indicator-dots>
+			<swiper-item v-for="item in info.multifileList">
+				<image class="swiper_item" :src="item.fileurlFull" mode="aspectFill"></image>
+			</swiper-item>
+		</swiper>
+		<!--  -->
+		<template
+			v-if="info.fileType == 1 && info.multifileList && info.multifileList.length > 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)">
+			<video :src="info.multifileList[0].fileurlFull" class="app_video" :autoplay="true" loop :controls="false"></video>
+		</template>
 	</view>
 </template>
 
-<script>
+<script>
 	import dayjs from 'dayjs'
+	// import vueQr from 'vue-qr/src/packages/vue-qr.vue'
+	import UQRCode from 'uqrcodejs'
+	import {
+		meetScreenData
+	} from '@/api/index.js'
 	export default {
+		// components: {vueQr},
 		data() {
 			return {
-				time: '',
-				date: '',
-				timer: null
+				time: '',
+				date: '',
+				showQrbg: false,
+				timer: null,
+				touchNum: 0,
+				param: {},
+				info: {},
+				statusMap: {
+					1: '鏈紑濮�',
+					2: '杩涜涓�',
+					3: '宸茬粨鏉�',
+					4: '鍗冲皢寮�濮�',
+					5: '宸叉挙閿�',
+				},
+				meetingInfo: {}
 			}
 		},
-		onLoad() {
+		onShow() {
 			this.initDatetime()
+			this.param = uni.getStorageSync('param') || {}
+			if (!this.param.code) {
+				return uni.navigateTo({
+					url: '/pages/index/config'
+				})
+			}
+			this.getData()
 		},
+		onReady() {},
 		methods: {
-			initDatetime() {
-				let weeks = ['鍛ㄦ棩','鍛ㄤ竴','鍛ㄤ簩','鍛ㄤ笁','鍛ㄥ洓','鍛ㄤ簲','鍛ㄥ叚']
-				this.time = dayjs().format('HH:mm')
-				this.date = dayjs().format('YYYY-MM-DD')+ ' ' + weeks[new Date().getDay()]
-				this.timer = setInterval(() => {
-					this.time = dayjs().format('HH:mm')
-					this.date = dayjs().format('YYYY-MM-DD')+ ' ' + weeks[new Date().getDay()]
-				},1000)
+			getData() {
+				this.showQrbg = false
+				meetScreenData({
+					roomId: this.param.code
+				}).then(res => {
+					this.info = res.data
+					if (this.info.meetingListResponseList && this.info.meetingListResponseList.length > 0) {
+						this.meetingInfo = this.info.meetingListResponseList[0]
+						this.$nextTick(() => {
+							this.qrcodeCreate()
+							this.$forceUpdate()
+						})
+					} else {
+						this.showQrbg = false
+						this.meetingInfo = {}
+					}
+				})
+			},
+			qrcodeCreate() {
+				this.showQrbg = true
+				this.$nextTick(() => {
+					// 鑾峰彇uQRCode瀹炰緥
+					var qr = new UQRCode();
+					// 璁剧疆浜岀淮鐮佸唴瀹�
+					// qr.data = "https://uqrcode.cn/doc";
+					qr.data =
+						"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxac2a80c2144c4ee0&redirect_uri=http://192.168.0.109:8080/redirect.html&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
+					// 璁剧疆浜岀淮鐮佸ぇ灏忥紝蹇呴』涓巆anvas璁剧疆鐨勫楂樹竴鑷�
+					qr.size = 83;
+					// 璋冪敤鍒朵綔浜岀淮鐮佹柟娉�
+					qr.make();
+					// 鑾峰彇canvas涓婁笅鏂�
+					var canvasContext = uni.createCanvasContext('qrcode', this); // 濡傛灉鏄粍浠讹紝this蹇呴』浼犲叆
+					// 璁剧疆uQRCode瀹炰緥鐨刢anvas涓婁笅鏂�
+					qr.canvasContext = canvasContext;
+					// 璋冪敤缁樺埗鏂规硶灏嗕簩缁寸爜鍥炬缁樺埗鍒癱anvas涓�
+					qr.drawCanvas();
+				})
+			},
+			touchend() {
+				this.touchNum++
+				setTimeout(() => {
+					if (this.touchNum == 1) {
+						console.log('鍗曞嚮')
+					}
+					if (this.touchNum >= 2) {
+						uni.navigateTo({
+							url: '/pages/index/config'
+						})
+					}
+					this.touchNum = 0
+				}, 250)
+			},
+			initDatetime() {
+				let weeks = ['鍛ㄦ棩', '鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚']
+				this.time = dayjs().format('HH:mm')
+				this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
+				this.timer = setInterval(() => {
+					this.time = dayjs().format('HH:mm')
+					this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
+				}, 1000)
+				setInterval(() => {
+					this.getData()
+				}, this.param.time ? this.param.time * 1000 : 60 * 1000)
 			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	.main_app{
-		width: 100%;
-		min-height: 100vh;
-		position: relative;
-		font-size: 28rpx;
-		display: flex;
-		flex-direction: column;
-		justify-content: space-between;
-		padding-bottom: 35rpx;
-		color: #fff;
-		.meeting_wrap{
-			margin-left: 42rpx;
-			margin-top: 85rpx;
-			.title{
-				font-weight: 500;
-				font-size: 42rpx;
-				color: #FFFFFF;
-				line-height: 62rpx;
-				height: 62rpx;
-				margin-bottom: 32rpx;
-			}
-			.list{
-				display: flex;
-				width: calc( 100vw - 42rpx );
-				overflow-x: auto;
-				scrollbar-width: none; 
-				&:-webkit-scrollbar {
-				  display: none; /* Chrome Safari */
-				 }
-				.item{
-					padding: 34rpx 28rpx;
-					display: flex;
-					flex-shrink: 0;
-					flex-direction: column;
-					width: 403rpx;
-					height: 315rpx;
-					background: linear-gradient( 90deg, #0095AC 0%, #00B5D1 100%);
-					border-radius: 7rpx;
-					margin-right: 28rpx;
-					position: relative;
-					.item_bg{
-						position: absolute;
-						width: 178rpx;
-						height: 178rpx;
-						right: 0;
-						bottom: 0;
-						// z-index: -1;
-					}
-					.name{
-						flex: 1;
-						font-weight: bold;
-						font-size: 39rpx;
-					}
-					.line{
-						font-weight: 500;
-						margin-bottom: 7rpx;
-					}
-				}
-				.empty{
-					background: rgba(255,255,255,0.11);
-				}
-			}
-		}
-		.meeting_con{
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 0 42rpx;
-			.content{
-				.line{
-					display: flex;
-					align-items: center;
-					font-weight: 500;
-					font-size: 32rpx;
-					margin: 24rpx 0;
-					image{
-						width: 30rpx;
-						height: 30rpx;
-						margin-right: 20rpx;
-					}
-				}
-			}
-			.qrcode{
-				width: 166rpx;
-				height: 166rpx;
-				border: 1px solid red;
-			}
-		}
-		.meeting_name{
-			margin-bottom: 12rpx;
-			font-weight: bold;
-			font-size: 49rpx;
-			padding-left: 42rpx;
-		}
-		.home_status{
-			font-weight: bold;
-			font-size: 125rpx;
-			margin: 70rpx 42rpx;
-			line-height: 185rpx;
-			height: 185rpx;
-		}
-		.orange{
-			color: #FFB100;
-		}
-		.header_wrap{
-			padding: 34rpx 34rpx 0 0;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			.time_wrap{
-				text-align: right;
-				.time{
-					font-size: 56rpx;
-					margin-bottom: 4rpx;
-				}
-			}
-			.title{
-				font-size: 56rpx;
-				font-weight: bold;
-				width: 430rpx;
-				height: 125rpx;
-				line-height: 125rpx;
-				text-align: center;
-				background: #00B5D1;
-				border-radius: 0rpx 7rpx 7rpx 0rpx;
-			}
-		}
-		.main_bg{
-			position: absolute;
-			width: 100%;
-			height: 100%;
-			top: 0;
-			left: 0;
-			object-fit: cover;
-			z-index: -1;
-		}
+	page,
+	body {
+		overflow: hidden;
 	}
-</style>
+
+	.swiper {
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 999;
+		width: 100%;
+		height: 100vh;
+
+		.swiper_item {
+			background-color: #0095AC;
+			width: 100%;
+			height: 100vh;
+		}
+	}
+
+	.app_video {
+		width: 100%;
+		height: 100vh;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 999;
+	}
+
+	.main_app {
+		width: 100%;
+		height: 100vh;
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		font-size: 28rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+		padding-bottom: 42rpx;
+		color: #fff;
+		overflow: hidden;
+		.meeting_wrap {
+			margin-left: 42rpx;
+			margin-top: 85rpx;
+
+			.title {
+				font-weight: 500;
+				font-size: 42rpx;
+				color: #FFFFFF;
+				line-height: 62rpx;
+				height: 62rpx;
+				margin-bottom: 32rpx;
+			}
+
+			.list {
+				display: flex;
+				width: calc(100vw - 42rpx);
+				overflow-x: auto;
+				scrollbar-width: none;
+
+				&:-webkit-scrollbar {
+					display: none;
+					/* Chrome Safari */
+				}
+
+				.item {
+					padding: 34rpx 28rpx;
+					display: flex;
+					flex-shrink: 0;
+					flex-direction: column;
+					width: 403rpx;
+					height: 315rpx;
+					background: linear-gradient(90deg, #0080FF 0%, #00B0FF 100%);
+					border-radius: 7rpx;
+					margin-right: 28rpx;
+					position: relative;
+
+					&:nth-of-type(1) {
+						background: linear-gradient(90deg, #0095AC 0%, #00B5D1 100%);
+					}
+
+					.item_bg {
+						position: absolute;
+						width: 178rpx;
+						height: 178rpx;
+						right: 0;
+						bottom: 0;
+						// z-index: -1;
+					}
+
+					.name {
+						flex: 1;
+						font-weight: bold;
+						font-size: 39rpx;
+						width: 100%;
+						word-break: break-all;
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 3;
+						/* 瓒呭嚭鍑犺鐪佺暐 */
+					}
+
+					.line {
+						font-weight: 500;
+						margin-bottom: 7rpx;
+					}
+				}
+
+				.empty {
+					background: rgba(255, 255, 255, 0.11) !important;
+				}
+			}
+		}
+
+		.meeting_con {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 0 42rpx;
+
+			.content {
+				.line {
+					display: flex;
+					align-items: center;
+					font-weight: 500;
+					font-size: 32rpx;
+					margin: 24rpx 0;
+
+					image {
+						width: 30rpx;
+						height: 30rpx;
+						margin-right: 20rpx;
+					}
+				}
+			}
+
+			.qrcode_wrap {
+				width: 92px;
+				height: 92px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background-color: #fff;
+
+				.qrcode {
+					width: 84px;
+					height: 84px;
+				}
+			}
+
+		}
+
+		.meeting_name {
+			margin-bottom: 12rpx;
+			font-weight: bold;
+			font-size: 49rpx;
+			padding-left: 42rpx;
+		}
+
+		.home_status {
+			font-weight: bold;
+			font-size: 125rpx;
+			margin: 70rpx 42rpx;
+			line-height: 185rpx;
+			height: 185rpx;
+		}
+
+		.orange {
+			color: #FFB100;
+		}
+
+		.header_wrap {
+			padding: 42rpx 34rpx 0 0;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.time_wrap {
+				text-align: right;
+
+				.time {
+					font-size: 56rpx;
+					margin-bottom: 4rpx;
+				}
+			}
+
+			.title {
+				font-size: 56rpx;
+				font-weight: bold;
+				width: 430rpx;
+				height: 125rpx;
+				line-height: 125rpx;
+				text-align: center;
+				background: #00B5D1;
+				border-radius: 0rpx 7rpx 7rpx 0rpx;
+			}
+		}
+
+		.main_bg {
+			position: absolute;
+			width: 100%;
+			height: 100%;
+			top: 0;
+			left: 0;
+			object-fit: cover;
+			z-index: -1;
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3