jiangping
2024-12-20 53b6400ec10c8ca61ccec91c82c358d2488eead8
h5/pages/staff/task/vDangetAppr.vue
@@ -9,10 +9,14 @@
            class="status_img"></image>
         <view>{{ info.content }}</view>
         <view class="file_list">
            <view class="img_wrap" v-for="item in info.submitFileList" :key="item.id">
            <view class="img_wrap" v-for="item,i in info.submitFileList" :key="item.id">
               <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
                  class="img" />
               <video v-if="item.type == 1" :src="item.fileurlFull" class="video" :controls="false" />
               <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
                  <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
                     class="video" :enable-progress-gesture="false" autoplay muted />
                  <image src="@/static/play.png" class="play" mode=""></image>
               </view>
            </view>
         </view>
         <view class="text_wrap">
@@ -38,8 +42,15 @@
            <view class="label">{{info.status == '1' ? '整改前' : '视频/图片'}}</view>
            <view class="value">
               <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :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>
                  <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
                     mode="widthFix"></image>
                  <!--                   <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
                  :enable-progress-gesture="false" autoplay muted></video> -->
                  <view v-if="item.type == 1" @click="videoClick(item, i)" 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>
         </view>
@@ -47,8 +58,15 @@
            <view class="label">整改后</view>
            <view class="value">
               <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :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>
                  <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
                     mode="widthFix"></image>
                  <!--                   <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false" class="video"
                  :enable-progress-gesture="false" autoplay muted></video> -->
                  <view v-if="item.type == 1" @click="videoClick(item, i)" 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>
         </view>
@@ -96,9 +114,9 @@
         </view>
      </view>
      <view class="emyty"></view>
      <view class="main_footer">
      <view class="main_footer" v-if="info.status==0&& info.checkUserId == userInfo.memberId">
         <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">退回</view>
         <view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">
         <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">
            转交</view>
         <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">处理
         </view>
@@ -129,8 +147,15 @@
               <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealBeforeFileList" :key="i">
                  <u-icon class="close" size="20" name="close-circle-fill" color="red"
                     @click="fileDel('dealBeforeFileList', i)"></u-icon>
                  <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
                  <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
                  <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
                     mode="widthFix"></image>
                  <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" show-center-play-btn="false" :controls="false" class="video"
                  :enable-progress-gesture="false" autoplay muted></video> -->
                  <view v-if="item.type == 1" @click="videoClick(item, i)" 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>
            <view class="label">退回说明</view>
@@ -170,7 +195,13 @@
                  <u-icon class="close" size="20" name="close-circle-fill" color="red"
                     @click="fileDel('dealBeforeFileList', i)"></u-icon>
                  <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
                  <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
                  <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
                  :enable-progress-gesture="false" muted></video> -->
                  <view v-if="item.type == 1" 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>
            <view class="label">
@@ -186,7 +217,12 @@
                  <u-icon class="close" size="20" name="close-circle-fill" color="red"
                     @click="fileDel('dealAfterFileList', i)"></u-icon>
                  <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
                  <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
                  <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false"></video> -->
                  <view v-if="item.type == 1" 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>
            <view class="label">整改说明</view>
@@ -257,6 +293,13 @@
      <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
         @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-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>
</template>
@@ -327,12 +370,16 @@
               page: 1,
               capacity: 50
            },
            memberList: []
            memberList: [],
            videoPlay: false,
            videoContext: null,
            videoUrl: ''
         };
      },
      onLoad(op) {
      onLoad(op) {
         uni.setStorageSync('ywinfo',{})
         this.id = op.id;
         this.type = op.objType;
         this.getDetail();
      },
      methods: {
@@ -341,9 +388,31 @@
               urls: [url]
            });
         },
         screenChange(e) {
            let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏
            if (!fullScreen) {
               //退出全屏
               this.videoPlay = false; // 隐藏播放盒子
            }
         },
         closeVideo() {
            this.videoPlay = false
            this.videoContext = null
         },
         videoClick(item, i) {
            this.videoPlay = true;
            this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
            this.videoUrl = item.fileurlFull;
            this.videoContext.requestFullScreen();
            this.$nextTick(() => {
               this.videoContext.play();
            })
         },
         handleOpen() {
            this.isShowHandle = true;
            const submitFileList = this.info.submitFileList || []
            this.dealBeforeFileList = [...submitFileList]
            this.submitFileList = [...submitFileList];
            this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
         },
@@ -482,7 +551,7 @@
            this.showUploadBe = false;
            let token = uni.getStorageSync('token') || '';
            uni.chooseImage({
               count: 4,
               count: 9,
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
@@ -573,7 +642,7 @@
            this.showUploadAf = false;
            let token = uni.getStorageSync('token') || '';
            uni.chooseImage({
               count: 4,
               count: 9,
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
@@ -661,7 +730,7 @@
            this.showUpload = false;
            let token = uni.getStorageSync('token') || '';
            uni.chooseImage({
               count: 4,
               count: 9,
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
@@ -770,7 +839,7 @@
      }
      .flow_wrap {
         padding: 30rpx 0;
         padding: 30rpx 0 90rpx;
         .list {
            .item {
@@ -807,6 +876,7 @@
                     position: absolute;
                     right: 0;
                     bottom: 0;
                     z-index: 999;
                  }
               }
@@ -897,9 +967,9 @@
      }
      .adduser_list_item_ipt1_upload {
         width: 120rpx;
         height: 120rpx;
         margin-right: 24rpx;
         width: 156rpx;
         height: 156rpx;
         margin-right: 20rpx;
         border: 2rpx solid #e5e5e5;
         background: #f7f7f7;
         color: #666666;
@@ -909,6 +979,10 @@
         align-items: center;
         justify-content: center;
         position: relative;
         &:nth-of-type(4n) {
            margin-right: 0;
         }
         .close {
            position: absolute;
@@ -924,7 +998,7 @@
         video {
            width: 100%;
            max-height: 120rpx;
            max-height: 156rpx;
         }
      }
@@ -999,24 +1073,30 @@
         .file_list {
            display: flex;
            margin-bottom: 20rpx;
            overflow-x: auto;
            flex-wrap: wrap;
            .img_wrap {
               margin-top: 24rpx;
               min-width: 160rpx;
               height: 160rpx;
               width: 156rpx;
               height: 156rpx;
               border: 2rpx solid #e5e5e5;
               background: #f7f7f7;
               color: #666666;
               font-size: 22rpx;
               display: flex;
               border-radius: 4rpx;
               flex-direction: column;
               align-items: center;
               justify-content: center;
               position: relative;
               margin-right: 16rpx;
               margin-right: 20rpx;
               flex-shrink: 0;
               &:nth-of-type(4n) {
                  margin-right: 0;
               }
            }
            .img {
               width: 100%;
@@ -1036,9 +1116,13 @@
            margin-top: 20rpx;
            .line {
               margin-bottom: 12rpx;
               margin-bottom: 18rpx;
               display: flex;
               font-size: 24rpx;
               &:nth-last-child(1) {
                  margin-bottom: 0;
               }
               .label {
                  color: #999999;
@@ -1055,7 +1139,7 @@
            line-height: 60rpx;
            padding: 0 32rpx;
            border-radius: 0rpx 0rpx 0rpx 30rpx;
            background-color: #e9edff;
            background: rgba(39, 155, 170, 0.12);
            color: $uni-color-primary;
         }
@@ -1071,6 +1155,7 @@
         position: fixed;
         bottom: 0;
         width: 100%;
         z-index: 9999;
         left: 0;
         padding: 30rpx 10rpx 60rpx;
         display: flex;
@@ -1169,10 +1254,10 @@
         }
         .adduser_list_item_ipt1_upload {
            margin-top: 24rpx;
            width: 120rpx;
            height: 120rpx;
            margin-right: 24rpx;
            margin-top: 20rpx;
            width: 156rpx;
            height: 156rpx;
            margin-right: 20rpx;
            border: 2rpx solid #e5e5e5;
            background: #f7f7f7;
            color: #666666;
@@ -1183,11 +1268,16 @@
            justify-content: center;
            position: relative;
            &:nth-of-type(4n) {
               margin-right: 0;
            }
            .close {
               position: absolute;
               right: -20rpx;
               top: -20rpx;
               z-index: 9999;
               z-index: 999999999999;
               color: #fff;
            }
            image {
@@ -1209,7 +1299,22 @@
         margin: 0 -30rpx;
      }
   }
   .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%);
         }
      }
   .sel_upload_wrap {
      width: 100%;
      border-top: 1px solid #333333;
@@ -1308,6 +1413,30 @@
      }
   }
   .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;
      }
   }
   .Transfer_footer {
      display: flex;