flx:修改ios视频格式 企业账号底部换icon
@ -160,8 +160,8 @@
|
||||
}
|
||||
that.tabList.push({
|
||||
appName: 'AI预警',
|
||||
moduleIcon2: 'menu-icon',
|
||||
moduleIcon: 'menu-icon_active',
|
||||
moduleIcon2: 'ai-icon',
|
||||
moduleIcon: 'ai-icon_active',
|
||||
plugin: 'aIEarlyWarn',
|
||||
appShow: 1,
|
||||
isShow: true,
|
||||
@ -184,8 +184,8 @@
|
||||
})
|
||||
that.tabList.push({
|
||||
appName: '我的',
|
||||
moduleIcon2: 'tabIcon-my',
|
||||
moduleIcon: 'tabIcon-my-select',
|
||||
moduleIcon2: 'my-icon',
|
||||
moduleIcon: 'my-icon_active',
|
||||
plugin: 'my',
|
||||
appShow: 1,
|
||||
isShow: true,
|
||||
|
||||
@ -14,15 +14,15 @@
|
||||
@play="onPlay" @pause="onPause" @error="onVideoError" @ended="onEnded" @timeupdate="onTimeUpdate"
|
||||
@fullscreenchange="onFullscreenChange">
|
||||
<cover-view @click="onVideoClick" v-if="!error && !loading" class="maskleft"></cover-view>
|
||||
</video>
|
||||
<!-- 加载状态 - APP平台使用cover-view覆盖 -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<cover-view v-if="loading" class="loading-overlay">
|
||||
<cover-image src="@/static/iscImage/loading.gif" class="loading-spinner"></cover-image>
|
||||
<!-- <cover-view class="loading-text">加载中...</cover-view> -->
|
||||
</cover-view>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- 加载状态 - APP平台使用cover-view覆盖 -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<cover-view v-if="loading" class="loading-overlay">
|
||||
<cover-image src="@/static/iscImage/loading.gif" class="loading-spinner"></cover-image>
|
||||
<!-- <cover-view class="loading-text">加载中...</cover-view> -->
|
||||
</cover-view>
|
||||
<!-- #endif -->
|
||||
</video>
|
||||
|
||||
<!-- 加载状态 - H5平台使用普通view -->
|
||||
<!-- #ifdef H5 -->
|
||||
@ -680,16 +680,21 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/deep/ .uni-video-slots {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
/deep/ .uni-video-slot {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 80%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.maskleft {
|
||||
width: calc(100% - 2rpx);
|
||||
height: 80%;
|
||||
/* #ifdef APP-PLUS */
|
||||
// cover-view 在 video 内部需要绝对定位才能覆盖并接收点击事件
|
||||
position: absolute;
|
||||
@ -712,9 +717,9 @@
|
||||
z-index: 1;
|
||||
/* #ifdef APP-PLUS */
|
||||
// 防止在swiper中滑动时错位
|
||||
transform: translateZ(0);
|
||||
-webkit-transform: translateZ(0);
|
||||
will-change: transform;
|
||||
// transform: translateZ(0);
|
||||
// -webkit-transform: translateZ(0);
|
||||
// will-change: transform;
|
||||
/* #endif */
|
||||
|
||||
.video-container {
|
||||
@ -747,17 +752,12 @@
|
||||
|
||||
.loading-overlay {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
// flex-direction: column;
|
||||
// align-items: center;
|
||||
justify-content: center;
|
||||
// background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 10;
|
||||
// z-index: 10;
|
||||
|
||||
.loading-spinner {
|
||||
width: 500rpx;
|
||||
@ -831,7 +831,7 @@
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
// height: 80%;
|
||||
z-index: 1000;
|
||||
// 确保可以接收点击事件
|
||||
pointer-events: auto;
|
||||
@ -843,25 +843,20 @@
|
||||
}
|
||||
|
||||
cover-view.loading-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
// background: rgba(0, 0, 0, 0.5);
|
||||
width: 100%;
|
||||
z-index: 998;
|
||||
height: 80%;
|
||||
// z-index: 998;
|
||||
// 防止在swiper中滑动时错位
|
||||
transform: translateZ(0);
|
||||
-webkit-transform: translateZ(0);
|
||||
// transform: translateZ(0);
|
||||
// -webkit-transform: translateZ(0);
|
||||
|
||||
cover-view.loading-spinner {
|
||||
width: 500rpx;
|
||||
height: 500rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
cover-view.loading-text {
|
||||
@ -885,8 +880,8 @@
|
||||
z-index: 999;
|
||||
width: 99%;
|
||||
// 防止在swiper中滑动时错位
|
||||
transform: translateZ(0);
|
||||
-webkit-transform: translateZ(0);
|
||||
// transform: translateZ(0);
|
||||
// -webkit-transform: translateZ(0);
|
||||
|
||||
cover-view.error-icon {
|
||||
width: 120rpx;
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
"sassImplementationName" : "node-sass",
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
"orientation" : [
|
||||
"screenOrientation" : [
|
||||
// //竖屏正方向
|
||||
"portrait-primary",
|
||||
"portrait-secondary",
|
||||
|
||||
@ -95,8 +95,8 @@
|
||||
</view>
|
||||
<u-calendar v-model="constructionTimeShow" mode="range" :max-date="'2300-01-01'"
|
||||
@change="onConstructionTimeChange"></u-calendar>
|
||||
<u-popup v-model="detailShow" mode="bottom" :closeable="true">
|
||||
<view class="popup-main">
|
||||
<u-popup class="my-popup" v-model="detailShow" :mask="false" mode="bottom" :closeable="true">
|
||||
<view class="popup-main" :style="{height: `calc(100vh - ${mobileTopHeight + 44}px - 110rpx)`}">
|
||||
<view class="popup-box_header">{{alarmTypeName(detailInfo.alarmType)}}</view>
|
||||
<view class="popup-box_item">
|
||||
<view>时间:</view>
|
||||
@ -486,12 +486,14 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/deep/ .u-drawer .u-icon__icon {
|
||||
color: white !important;
|
||||
/deep/ .my-popup {
|
||||
bottom: 110rpx;
|
||||
.u-icon__icon {
|
||||
color: white !important;
|
||||
}
|
||||
}
|
||||
|
||||
.popup-main {
|
||||
height: 100vh;
|
||||
padding-top: 164rpx;
|
||||
background: #000000;
|
||||
|
||||
|
||||
@ -380,12 +380,19 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
|
||||
>view:first-child {
|
||||
flex: 1;
|
||||
white-space: nowrap; /* 不换行 */
|
||||
overflow: hidden; /* 隐藏溢出的内容 */
|
||||
text-overflow: ellipsis; /* 用省略号表示溢出的文本 */
|
||||
}
|
||||
>view:last-child {
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
background-color: #D8DBE8;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.onLine {
|
||||
|
||||
@ -134,9 +134,9 @@
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="content-footer">
|
||||
<view class="" @click="onVideoStop">
|
||||
<!-- <view class="" @click="onVideoStop">
|
||||
<image src="/static/stop-icon.png" mode=""></image>
|
||||
</view>
|
||||
</view> -->
|
||||
<view :class="{'showDetail': showDetail}" @click="getDetail">
|
||||
<image src="/static/detail-icon.png" mode=""></image>
|
||||
</view>
|
||||
@ -642,7 +642,8 @@
|
||||
.content-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
// justify-content: space-between;
|
||||
justify-content: flex-end;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
|
||||
@ -9,7 +9,8 @@
|
||||
<template v-if="videoConfig.enableNotPlugin != 1">
|
||||
<!-- APP环境使用web-view -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<video v-if="!isYsy" class="videoBox" id="myVideo" :custom-cache="false" :src="playUrlFilter" controls
|
||||
<video v-if="!isYsy && isIOS" class="videoBox" id="myVideo" :src="audioUrl" controls autoplay></video>
|
||||
<video v-if="!isYsy && !isIOS" class="videoBox" id="myVideo" :custom-cache="false" :src="playUrlFilter" controls
|
||||
autoplay></video>
|
||||
<!-- #endif -->
|
||||
<!-- H5环境使用ezuikit -->
|
||||
@ -222,6 +223,7 @@
|
||||
seconds: 0,
|
||||
secondsTime: null,
|
||||
testModule: null,
|
||||
audioUrl: "",
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
@ -285,6 +287,10 @@
|
||||
formattedTime() {
|
||||
return this.$dayjs.duration(this.seconds, 'seconds').format('HH:mm:ss');
|
||||
},
|
||||
isIOS() {
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
return systemInfo.platform === 'ios';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
setHeight() {
|
||||
@ -413,7 +419,7 @@
|
||||
that.secondsTime = setInterval(() => {
|
||||
that.seconds += 1;
|
||||
}, 1000);
|
||||
} else if(res.status == "EXCEPTION" || res.status == "FAILED") {
|
||||
} else if (res.status == "EXCEPTION" || res.status == "FAILED") {
|
||||
uni.showToast({
|
||||
title: '连接失败!',
|
||||
icon: 'none'
|
||||
@ -1081,29 +1087,47 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
this.sendRequest({
|
||||
url: "xmgl/videoItem/getVideoItemInfo",
|
||||
data: {
|
||||
...json,
|
||||
type: "wss", //rtsp或者hls
|
||||
},
|
||||
method: "post",
|
||||
success(res) {
|
||||
let isProd = process.env.NODE_ENV === 'development' ? "" : "" // '/mlh5'
|
||||
switch (that.videoInfo.videoType) {
|
||||
case 1:
|
||||
that.webURL = isProd + '/static/monitor/player.html?cameraUrl=' + res.result
|
||||
.videoInfo
|
||||
.hdFlvAddress
|
||||
break;
|
||||
default:
|
||||
that.webURL = isProd + '/static/monitor/player.html?cameraUrl=' + res.result
|
||||
.videoInfo
|
||||
.url
|
||||
break;
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
if (systemInfo.platform === 'ios') {
|
||||
this.sendRequest({
|
||||
url: "xmgl/videoItem/getVideoItemInfo",
|
||||
data: {
|
||||
...json,
|
||||
type: "hls", //rtsp或者hls
|
||||
},
|
||||
method: "post",
|
||||
success(res) {
|
||||
if (res.code == 200) {
|
||||
console.log(778877, res.result.videoInfo.url);
|
||||
that.audioUrl = res.result.videoInfo.url;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.sendRequest({
|
||||
url: "xmgl/videoItem/getVideoItemInfo",
|
||||
data: {
|
||||
...json,
|
||||
type: "wss", //rtsp或者hls
|
||||
},
|
||||
method: "post",
|
||||
success(res) {
|
||||
let isProd = process.env.NODE_ENV === 'development' ? "" : "" // '/mlh5'
|
||||
switch (that.videoInfo.videoType) {
|
||||
case 1:
|
||||
that.webURL = isProd + '/static/monitor/player.html?cameraUrl=' + res.result
|
||||
.videoInfo
|
||||
.hdFlvAddress
|
||||
break;
|
||||
default:
|
||||
that.webURL = isProd + '/static/monitor/player.html?cameraUrl=' + res.result
|
||||
.videoInfo
|
||||
.url
|
||||
break;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// #endif
|
||||
|
||||
},
|
||||
|
||||
BIN
static/ai-icon.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
static/ai-icon_active.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 856 B |
BIN
static/my-icon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/my-icon_active.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |