From f67e78a754fb8d7364d35aaafb0295690a4cc810 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 03 十二月 2025 10:37:06 +0800
Subject: [PATCH] 最新版本541200007
---
h5_meeting/pages/index/index.vue | 385 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 252 insertions(+), 133 deletions(-)
diff --git a/h5_meeting/pages/index/index.vue b/h5_meeting/pages/index/index.vue
index 6682e3c..2b0a0a5 100644
--- a/h5_meeting/pages/index/index.vue
+++ b/h5_meeting/pages/index/index.vue
@@ -8,35 +8,58 @@
<view class="date">{{date}}</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 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 v-if="meetingInfo.meetingName" class="meeting_name_box"><view class="meeting_name">{{meetingInfo.meetingName}}</view></view>
+ <view class="">
+ <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 class="line">
- <image src="@/static/ic_people@2x.png"></image>
- <text>棰勭害浜猴細{{meetingInfo.bookingUser }}</text>
+
+ <view v-show="showQrbg" class="qrcode_wrap">
+ <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
</view>
- </view>
- <view v-if="meetingInfo.meetingTime" class="qrcode_wrap">
- <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
+ </view>
+ <view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser && showQrbg" class="qrcode_box">
+ <view class="text"
+ v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 1">
+ 寰俊鎵竴鎵紑濮嬩細璁�</view>
+ <view class="text"
+ v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 4">
+ 寰俊鎵竴鎵紑濮嬩細璁�</view>
+ <view class="text"
+ v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 2">
+ 寰俊鎵竴鎵粨鏉熶細璁�</view>
</view>
</view>
<view class="meeting_wrap">
- <view class="title">浠婃棩浼氳锛坽{ info.meetingListResponseList && info.meetingListResponseList.length > 0 ? info.meetingListResponseList.length : 0 }}锛�</view>
+ <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="nameBox">
+ <view class="name">{{item.meetingName}}</view>
+ </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>
@@ -51,88 +74,118 @@
</view>
<!-- -->
- <swiper v-if="info.fileType == 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)" class="swiper" circular autoplay indicator-dots>
+ <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>
+ <image class="swiper_item"
+ :src="!param.officeFlag || param.officeFlag == '0' ? item.localFileurlFull : 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>
+ </swiper>
+ <!-- -->
+ <template
+ v-if="info.fileType == 1 && info.multifileList && info.multifileList.length > 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)">
+ <video
+ :src="!param.officeFlag || param.officeFlag == '0' ? info.multifileList[0].localFileurlFull : info.multifileList[0].fileurlFull"
+ class="app_video" :autoplay="true" loop :controls="false"></video>
</template>
</view>
</template>
<script>
- import dayjs from 'dayjs'
- // import vueQr from 'vue-qr/src/packages/vue-qr.vue'
+ 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 {
+ export default {
// components: {vueQr},
data() {
return {
time: '',
date: '',
+ showQrbg: false,
timer: null,
+ timer2: null,
touchNum: 0,
- param: {},
- info: {},
- statusMap: {
- 1: '鏈紑濮�',
- 2: '杩涜涓�',
- 3: '宸茬粨鏉�',
- 4: '鍗冲皢寮�濮�',
- 5: '宸叉挙閿�',
- },
- meetingInfo: {}
+ param: {},
+ info: {},
+ statusMap: {
+ 1: '鏈紑濮�',
+ 2: '杩涜涓�',
+ 3: '宸茬粨鏉�',
+ 4: '鍗冲皢寮�濮�',
+ 5: '宸叉挙閿�',
+ },
+ meetingInfo: {},
+ timer: null
}
},
onShow() {
- this.initDatetime()
- this.param = uni.getStorageSync('param') || {}
- if (!this.param.code) {
+ const param = uni.getStorageSync('param')
+ if (!param.code) {
return uni.navigateTo({
url: '/pages/index/config'
})
}
- this.getData()
- },
- onReady() {
+ this.initDatetime()
+
+ },
+ onReady() {
+
+ },
+ onHide() {
+ if (this.timer) {
+ clearInterval(this.timer)
+ }
+ if (this.timer2) {
+ clearInterval(this.timer2)
+ }
},
methods: {
getData() {
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()
- })
- }
+ }).then(res => {
+ this.info = res.data
+ /* if(this.info.title && this.info.title.length>0){
+ this.info.title = this.info.title.slice(0,20)+"..."
+ } */
+ 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 = {}
+ this.$forceUpdate()
+ }
})
- },
- qrcodeCreate(){
- // 鑾峰彇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();
+ },
+ qrcodeCreate() {
+ this.showQrbg = true
+ this.$nextTick(() => {
+ // 鑾峰彇uQRCode瀹炰緥
+ var qr = new UQRCode();
+ // 璁剧疆浜岀淮鐮佸唴瀹�
+ // qr.data = "https://uqrcode.cn/doc";
+ qr.data =
+ "https://atwl.ahzyssl.com/zhyq_h5/#/pages/login/login/?type=2&yw=1&ywid=" + this.meetingInfo.id
+ // 璁剧疆浜岀淮鐮佸ぇ灏忥紝蹇呴』涓巆anvas璁剧疆鐨勫楂樹竴鑷�
+ qr.size = this.rpxToPx(208);
+ // 璋冪敤鍒朵綔浜岀淮鐮佹柟娉�
+ qr.make();
+ // 鑾峰彇canvas涓婁笅鏂�
+ var canvasContext = uni.createCanvasContext('qrcode', this); // 濡傛灉鏄粍浠讹紝this蹇呴』浼犲叆
+ // 璁剧疆uQRCode瀹炰緥鐨刢anvas涓婁笅鏂�
+ qr.canvasContext = canvasContext;
+ // 璋冪敤缁樺埗鏂规硶灏嗕簩缁寸爜鍥炬缁樺埗鍒癱anvas涓�
+ qr.drawCanvas();
+ })
},
touchend() {
this.touchNum++
@@ -148,6 +201,17 @@
this.touchNum = 0
}, 250)
},
+
+ //rpx杞琾x
+ rpxToPx(rpx) {
+ const screenWidth = uni.getSystemInfoSync().screenWidth
+ return (screenWidth * Number.parseInt(rpx)) / 750
+ },
+ //px杞瑀px
+ pxToRpx(px) {
+ const screenWidth = uni.getSystemInfoSync().screenWidth
+ return (750 * Number.parseInt(px)) / screenWidth
+ },
initDatetime() {
let weeks = ['鍛ㄦ棩', '鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚']
this.time = dayjs().format('HH:mm')
@@ -155,55 +219,70 @@
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)
+ }, 1000)
+ this.param = uni.getStorageSync('param') || {}
+
+ this.getData()
+ this.timer2 = setInterval(() => {
+ this.getData()
+ }, this.param.time ? this.param.time * 1000 : 60 * 1000)
}
}
}
</script>
-<style lang="scss" scoped>
- page,body{
- overflow: hidden;
- }
- .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;
+<style lang="scss" scoped>
+ page,
+ body {
+ overflow: hidden;
}
+
+ .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: relative;
+ 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;
+ padding-bottom: 34rpx;
color: #fff;
overflow: hidden;
+
.meeting_wrap {
margin-left: 42rpx;
- margin-top: 85rpx;
-
+ // margin-top: 60rpx;
+ .titleBox{
+ height: 124rpx;
+ }
.title {
font-weight: 500;
font-size: 42rpx;
@@ -230,14 +309,16 @@
flex-shrink: 0;
flex-direction: column;
width: 403rpx;
- height: 315rpx;
- background: linear-gradient( 90deg, #0080FF 0%, #00B0FF 100%);
+ 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%);
+
+ &:nth-of-type(1) {
+ background: linear-gradient(90deg, #0095AC 0%, #00B5D1 100%);
}
+
.item_bg {
position: absolute;
width: 178rpx;
@@ -246,17 +327,24 @@
bottom: 0;
// z-index: -1;
}
-
+ .nameBox{
+ flex: 1;
+ width: 100%;
+ }
.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; /* 瓒呭嚭鍑犺鐪佺暐 */
+
+ font-weight: bold;
+ line-height: 40rpx;
+ max-height: 120rpx;
+ font-size: 39rpx;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+ overflow: hidden;
+ white-space: normal; /* 淇濊瘉鏂囨湰姝e父鎹㈣ */
+ /* 瓒呭嚭鍑犺鐪佺暐 */
}
.line {
@@ -276,6 +364,7 @@
justify-content: space-between;
align-items: center;
padding: 0 42rpx;
+ padding-right: 64rpx;
.content {
.line {
@@ -292,34 +381,64 @@
}
}
}
- .qrcode_wrap{
- width: 92px;
- height: 92px;
- display: flex;
- align-items: center;
- justify-content: center;
- background-color: #fff;
- .qrcode {
- width: 84px;
- height: 84px;
- }
+
+
+ .qrcode_wrap {
+ width: 208rpx;
+ height: 208rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #fff;
+
+ .qrcode {
+ width: 200rpx;
+ height: 200rpx;
+ }
}
-
+
}
+ .qrcode_box {
+ width: 100%;
+ display: flex;
+ justify-content: flex-end;
+ color: rgba(255, 255, 255, 0.6);
+ padding-right: 65rpx;
+ margin-top: 18rpx;
+ .text {
+ width: 200rpx;
+ text-align: right;
+ padding-right: 8rpx;
+ font-size: 21rpx;
+ // transform: scale(.84);
+ }
+ }
+ .meeting_name_box {
+ // max-height: 150rpx;
+ }
.meeting_name {
margin-bottom: 12rpx;
font-weight: bold;
font-size: 49rpx;
+ // height: 150rpx;
padding-left: 42rpx;
+ padding-right: 64rpx;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ overflow: hidden;
+ white-space: normal; /* 淇濊瘉鏂囨湰姝e父鎹㈣ */
}
.home_status {
font-weight: bold;
font-size: 125rpx;
- margin: 70rpx 42rpx;
- line-height: 185rpx;
- height: 185rpx;
+ margin: 140rpx 42rpx 22rpx;
+ line-height: 125rpx;
+ height: 125rpx;
}
.orange {
--
Gitblit v1.9.3