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