From ccf28d1fed1aa2e5437dbe64b5133ba1cbde6ec7 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 03 一月 2025 15:30:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
h5/pages/workOrder/detail.vue | 152 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 127 insertions(+), 25 deletions(-)
diff --git a/h5/pages/workOrder/detail.vue b/h5/pages/workOrder/detail.vue
index f1726d3..c112a22 100644
--- a/h5/pages/workOrder/detail.vue
+++ b/h5/pages/workOrder/detail.vue
@@ -4,14 +4,19 @@
<view class="title">
<text>{{ info.projectName }}/{{ info.buildingName }}/{{info.roomNum || info.floorName}}</text>
<text class="status" v-if="info.dealStatus == 0">寰呭鐞�</text>
- <text class="status" v-if="info.dealStatus == 1">宸叉寚娲�</text>
+ <text class="status" v-if="info.dealStatus == 1">寰呭鐞�</text>
<text class="status gray" v-if="info.dealStatus == 2">宸插鐞�</text>
</view>
<view class="desc">{{ info.content }}</view>
<view class="file_list">
<view class="file" v-for="(item,index) in info.fileList">
<image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <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" autoplay muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
<view class="content">
@@ -23,7 +28,7 @@
<view class="la">涓婃姤浜猴細</view>
<view class="val">{{ info.creatorName }}{{info.creatorCompany ? '-' + info.creatorCompany : ''}}</view>
</view>
- <view class="line" v-if="info.creatorPhone || info.creatorMobile">
+ <view class="line" v-if="info.creatorPhone || info.creatorMobile">
<view class="la">鑱旂郴鐢佃瘽锛�</view>
<view class="val">{{ info.creatorMobile || info.creatorPhone }}</view>
</view>
@@ -58,12 +63,12 @@
</view>
</view>
<!-- -->
- <view class="btns" v-if="info.dealStatus == 0">
- <view class="btn">
+ <view class="btns" v-if="info.dealStatus == 0 || (info.dealUserId === userInfo.id && info.dealStatus == 1)">
+ <view class="btn" @click="handleCall">
<image src="@/static/side/phoneed.png" class="icon"></image>
<text>涓婃姤浜�</text>
</view>
- <view class="btn active" @click="isShowHandle = true">鍘诲鐞�</view>
+ <view class="btn active" @click="handleOpen">鍘诲鐞�</view>
</view>
<!-- -->
<u-popup :show="showUpload" @close="showUpload = false" zIndex="10076" closeOnClickOverlay>
@@ -74,8 +79,8 @@
</u-popup>
<!-- -->
<!-- 宸ュ崟澶勭悊 -->
- <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable
- @close="isShowHandle = false">
+ <u-popup :show="isShowHandle" :round="10" :safeAreaInsetTop="true" :safeAreaInsetBottom="true" mode="bottom"
+ closeable @close="isShowHandle = false">
<view class="appr_modal">
<view class="title">宸ュ崟澶勭悊</view>
<view class="df_sb">
@@ -118,13 +123,18 @@
<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>
<script>
import {
uploadUrl,
- ywWorkorderD,
+ ywWorkorderD,
ywWorkorderDeal
} from '@/api'
import dayjs from 'dayjs';
@@ -136,8 +146,13 @@
showUpload: false,
isShowHandle: false,
isShowHandleDate: false,
+ userInfo: uni.getStorageSync('userInfo') || {},
handleParam: {},
- dealFileList: []
+ dealFileList: [],
+
+ videoPlay: false,
+ videoContext: null,
+ videoUrl: ''
};
},
onLoad(option) {
@@ -146,19 +161,55 @@
this.getDetail()
},
methods: {
- onSubmit() {
- const { handleParam, dealFileList, id } = this
- if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
- ywWorkorderDeal({
- ...handleParam,
- id,
- dealFileList
- }).then(res => {
- if(res.code == 200){
- this.showToast('鎿嶄綔鎴愬姛')
- uni.navigateBack()
- }
+ handleOpen() {
+ this.isShowHandle = true
+ this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
+ },
+ 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 // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
+ if (!fullScreen) {
+ //閫�鍑哄叏灞�
+ this.videoPlay = false // 闅愯棌鎾斁鐩掑瓙
+ }
+ },
+ closeVideo() {
+ this.videoPlay = false
+ this.videoContext = null
+ },
+ onSubmit() {
+ const {
+ handleParam,
+ dealFileList,
+ id
+ } = this
+ if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
+ ywWorkorderDeal({
+ ...handleParam,
+ id,
+ dealFileList
+ }).then(res => {
+ if (res.code == 200) {
+ this.showToast('鎿嶄綔鎴愬姛')
+ uni.navigateBack()
+ }
+ })
+ },
+ handleCall() {
+ const {
+ info
+ } = this
+ uni.makePhoneCall({
+ phoneNumber: info.creatorMobile
+ });
},
getDetail() {
ywWorkorderD(this.id).then(res => {
@@ -316,7 +367,7 @@
image,
video {
- width: 156rpx;
+ width: 156rpx;
height: 156rpx;
}
}
@@ -481,28 +532,37 @@
display: flex;
flex-wrap: wrap;
margin-bottom: 30rpx;
+ max-height: 362rpx;
+ overflow-y: auto;
+ margin-right: -30rpx;
}
.adduser_list_item_ipt1_upload {
margin-top: 24rpx;
width: 156rpx;
height: 156rpx;
- margin-right: 24rpx;
- border: 2rpx solid #e5e5e5;
+ margin-right: 22rpx;
+ border: 1rpx solid #e5e5e5;
background: #f7f7f7;
color: #666666;
font-size: 22rpx;
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
+ &:nth-of-type(4n) {
+ margin-right: 0;
+ }
+
.close {
position: absolute;
right: -20rpx;
top: -20rpx;
z-index: 9999;
+ background-color: #fff;
}
image {
@@ -516,4 +576,46 @@
}
}
}
+
+ .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>
\ No newline at end of file
--
Gitblit v1.9.3