ll
liukangdong
2025-02-12 9375dfbf2ea9c082d78f82abe072a4ef9521728e
h5/pages/polling/point.vue
@@ -8,7 +8,8 @@
         <template v-if="info.status == 1">
            <view class="line">
               <div class="la">巡检结果:</div>
               <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? '正常' : info.dealStatus == 1 ? '异常' : '-' }}
               <div class="val primaryColor" :class="{red: info.dealStatus == 1}">
                  {{ info.dealStatus == 0 ? '正常' : info.dealStatus == 1 ? '异常' : '-' }}
               </div>
            </view>
            <view class="line">
@@ -28,11 +29,11 @@
         <view class="files">
            <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.multifileList" :key="i">
               <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
               <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
               <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
                  <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
                     class="video" :enable-progress-gesture="false" muted />
                  <image src="@/static/play.png" class="play" mode=""></image>
               <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
               <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
                  <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
                     class="video" :enable-progress-gesture="false" muted />
                  <image src="@/static/play.png" class="play" mode=""></image>
               </view>
            </view>
         </view>
@@ -101,13 +102,13 @@
         @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
      <u-picker :show="isShowRes" keyName="name" @cancel="isShowRes = false" @confirm='confirmRes'
         :columns="columns"></u-picker>
         <!--  -->
         <view v-if="videoPlay" class="video_app">
            <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
               :src="videoUrl" @fullscreenchange="screenChange"></video>
            <view class="bg" @click="closeVideo"></view>
         </view>
         <!--  -->
      <!--  -->
      <view v-if="videoPlay" class="video_app">
         <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
            :src="videoUrl" @fullscreenchange="screenChange"></video>
         <view class="bg" @click="closeVideo"></view>
      </view>
      <!--  -->
   </view>
</template>
@@ -146,11 +147,11 @@
                  //    name: '跳过'
                  // },
               ]
            ],
            videoPlay: false,
            videoContext: null,
            videoUrl: ''
            ],
            videoPlay: false,
            videoContext: null,
            videoUrl: ''
         };
      },
      onLoad(option) {
@@ -170,32 +171,35 @@
               multifileList: fileList,
               id,
            }).then(res => {
               if (handleParam.dealStatus == 1) {
                  return uni.showModal({
                     title: '温馨提示',
                     content: '巡检结果异常,是否前往提交工单?',
                     success: (res) => {
                        if (res.confirm) {
                           this.showToast('操作成功')
                           setTimeout(() => {
                              uni.redirectTo({
                                 url: '/pages/workOrder/edit'
                              })
                           }, 300)
                        }else{
                           this.showToast('操作成功')
                           setTimeout(() => {
                              uni.navigateBack()
                           }, 300)
               if (res.code == 200) {
                  if (handleParam.dealStatus == 1) {
                     return uni.showModal({
                        title: '温馨提示',
                        content: '巡检结果异常,是否前往提交工单?',
                        success: (res) => {
                           if (res.confirm) {
                              this.showToast('操作成功')
                              setTimeout(() => {
                                 uni.redirectTo({
                                    url: '/pages/workOrder/edit'
                                 })
                              }, 300)
                           } else {
                              this.showToast('操作成功')
                              setTimeout(() => {
                                 uni.navigateBack()
                              }, 300)
                           }
                        }
                     }
                  });
               } else {
                  this.showToast('操作成功')
                  setTimeout(() => {
                     uni.navigateBack()
                  }, 300)
                     });
                  } else {
                     this.showToast('操作成功')
                     setTimeout(() => {
                        uni.navigateBack()
                     }, 300)
                  }
               }
            })
         },
         getDetail() {
@@ -219,26 +223,26 @@
            this.$set(this.handleParam, 'dealStatus', e.value[0].id)
            this.$set(this.handleParam, 'dealName', e.value[0].name)
            this.isShowRes = false
         },
         videoClick(item) {
            this.videoPlay = true;
            this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
            this.videoUrl = item.fileurlFull;
            this.videoContext.requestFullScreen();
            this.$nextTick(() => {
               this.videoContext.play();
            })
         },
         screenChange(e) {
            let fullScreen = e.detail.fullScreen // 值true为进入全屏,false为退出全屏
            if (!fullScreen) {
               //退出全屏
               this.videoPlay = false // 隐藏播放盒子
            }
         },
         closeVideo() {
            this.videoPlay = false
            this.videoContext = null
         },
         videoClick(item) {
            this.videoPlay = true;
            this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
            this.videoUrl = item.fileurlFull;
            this.videoContext.requestFullScreen();
            this.$nextTick(() => {
               this.videoContext.play();
            })
         },
         screenChange(e) {
            let fullScreen = e.detail.fullScreen // 值true为进入全屏,false为退出全屏
            if (!fullScreen) {
               //退出全屏
               this.videoPlay = false // 隐藏播放盒子
            }
         },
         closeVideo() {
            this.videoPlay = false
            this.videoContext = null
         },
         fileDel(str, i) {
            this[str].splice(i, 1);
@@ -505,51 +509,53 @@
      image {
         width: 100%;
         height: 100%;
      }
      video {
         width: 100%;
         height: 100%;
      }
      .video_wrap {
         position: relative;
         border: 1px solid;
         width: 156rpx;
         height: 156rpx;
         border-radius: 4rpx;
         .play {
            width: 60rpx !important;
            height: 60rpx !important;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
         }
      video {
         width: 100%;
         height: 100%;
      }
   }
   .video_app {
      overflow: hidden;
      position: fixed;
      left: 0;
      top: 0;
      width: 100vw;
      height: 100vh;
      display: flex;
      align-items: center;
      z-index: 9990;
      .bg {
         background-color: rgba(0, 0, 0, .6);
         position: absolute;
         width: 100%;
         height: 100%;
         z-index: -1;
      }
      video {
         width: 100%;
         height: 42vh;
      }
      .video_wrap {
         position: relative;
         border: 1px solid;
         width: 156rpx;
         height: 156rpx;
         border-radius: 4rpx;
         .play {
            width: 60rpx !important;
            height: 60rpx !important;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
         }
      }
   }
   .video_app {
      overflow: hidden;
      position: fixed;
      left: 0;
      top: 0;
      width: 100vw;
      height: 100vh;
      display: flex;
      align-items: center;
      z-index: 9990;
      .bg {
         background-color: rgba(0, 0, 0, .6);
         position: absolute;
         width: 100%;
         height: 100%;
         z-index: -1;
      }
      video {
         width: 100%;
         height: 42vh;
      }
   }
</style>