doum
3 天以前 6356dff6dabcaee38ccd48e3d2673a31f87491e3
h5_meeting/pages/index/index.vue
@@ -21,20 +21,34 @@
         <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="showQrbg" class="qrcode_wrap">
            <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
         <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">
@@ -43,7 +57,9 @@
         </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>
@@ -62,13 +78,17 @@
         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>
         <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>
@@ -88,6 +108,7 @@
            date: '',
            showQrbg: false,
            timer: null,
            timer2: null,
            touchNum: 0,
            param: {},
            info: {},
@@ -98,27 +119,40 @@
               4: '即将开始',
               5: '已撤销',
            },
            meetingInfo: {}
            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()
         this.initDatetime()
      },
      onReady() {},
      onReady() {
      },
      onHide() {
         if (this.timer) {
            clearInterval(this.timer)
         }
         if (this.timer2) {
            clearInterval(this.timer2)
         }
      },
      methods: {
         getData() {
            this.showQrbg = false
            meetScreenData({
               roomId: this.param.code
            }).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(() => {
@@ -128,6 +162,7 @@
               } else {
                  this.showQrbg = false
                  this.meetingInfo = {}
                  this.$forceUpdate()
               }
            })
         },
@@ -139,9 +174,9 @@
               // 设置二维码内容
               // 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";
                  "https://atwl.ahzyssl.com/zhyq_h5/#/pages/login/login/?type=2&yw=1&ywid=" + this.meetingInfo.id
               // 设置二维码大小,必须与canvas设置的宽高一致
               qr.size = 83;
               qr.size = this.rpxToPx(208);
               // 调用制作二维码方法
               qr.make();
               // 获取canvas上下文
@@ -166,6 +201,17 @@
               this.touchNum = 0
            }, 250)
         },
         //rpx转px
         rpxToPx(rpx) {
             const screenWidth = uni.getSystemInfoSync().screenWidth
                 return (screenWidth * Number.parseInt(rpx)) / 750
         },
         //px转rpx
         pxToRpx(px) {
             const screenWidth = uni.getSystemInfoSync().screenWidth
             return (750 * Number.parseInt(px)) / screenWidth
         },
         initDatetime() {
            let weeks = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
            this.time = dayjs().format('HH:mm')
@@ -174,7 +220,10 @@
               this.time = dayjs().format('HH:mm')
               this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
            }, 1000)
            setInterval(() => {
            this.param = uni.getStorageSync('param') || {}
            this.getData()
            this.timer2 = setInterval(() => {
               this.getData()
            }, this.param.time ? this.param.time * 1000 : 60 * 1000)
         }
@@ -215,22 +264,25 @@
   .main_app {
      width: 100%;
      height: 100vh;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      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;
@@ -275,17 +327,23 @@
                  bottom: 0;
                  // z-index: -1;
               }
               .name {
                  flex: 1;
                  font-weight: bold;
                  font-size: 39rpx;
               .nameBox{
                  flex: 1;
                  width: 100%;
               }
               .name {
                  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;
                  -webkit-line-clamp: 3;
                  overflow: hidden;
                   white-space: normal; /* 保证文本正常换行 */
                  /* 超出几行省略 */
               }
@@ -306,6 +364,7 @@
         justify-content: space-between;
         align-items: center;
         padding: 0 42rpx;
         padding-right: 64rpx;
         .content {
            .line {
@@ -323,35 +382,63 @@
            }
         }
         .qrcode_wrap {
            width: 92px;
            height: 92px;
            width: 208rpx;
            height: 208rpx;
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: #fff;
            .qrcode {
               width: 84px;
               height: 84px;
               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; /* 保证文本正常换行 */
      }
      .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 {