flx:修改ios视频格式 企业账号底部换icon

This commit is contained in:
Rain_ 2025-12-10 18:11:41 +08:00
parent fe531b881d
commit a4eea9cfa8
14 changed files with 101 additions and 72 deletions

View File

@ -160,8 +160,8 @@
} }
that.tabList.push({ that.tabList.push({
appName: 'AI预警', appName: 'AI预警',
moduleIcon2: 'menu-icon', moduleIcon2: 'ai-icon',
moduleIcon: 'menu-icon_active', moduleIcon: 'ai-icon_active',
plugin: 'aIEarlyWarn', plugin: 'aIEarlyWarn',
appShow: 1, appShow: 1,
isShow: true, isShow: true,
@ -184,8 +184,8 @@
}) })
that.tabList.push({ that.tabList.push({
appName: '我的', appName: '我的',
moduleIcon2: 'tabIcon-my', moduleIcon2: 'my-icon',
moduleIcon: 'tabIcon-my-select', moduleIcon: 'my-icon_active',
plugin: 'my', plugin: 'my',
appShow: 1, appShow: 1,
isShow: true, isShow: true,

View File

@ -14,8 +14,6 @@
@play="onPlay" @pause="onPause" @error="onVideoError" @ended="onEnded" @timeupdate="onTimeUpdate" @play="onPlay" @pause="onPause" @error="onVideoError" @ended="onEnded" @timeupdate="onTimeUpdate"
@fullscreenchange="onFullscreenChange"> @fullscreenchange="onFullscreenChange">
<cover-view @click="onVideoClick" v-if="!error && !loading" class="maskleft"></cover-view> <cover-view @click="onVideoClick" v-if="!error && !loading" class="maskleft"></cover-view>
</video>
<!-- 加载状态 - APP平台使用cover-view覆盖 --> <!-- 加载状态 - APP平台使用cover-view覆盖 -->
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<cover-view v-if="loading" class="loading-overlay"> <cover-view v-if="loading" class="loading-overlay">
@ -24,6 +22,8 @@
</cover-view> </cover-view>
<!-- #endif --> <!-- #endif -->
</video>
<!-- 加载状态 - H5平台使用普通view --> <!-- 加载状态 - H5平台使用普通view -->
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<view v-if="loading" class="loading-overlay"> <view v-if="loading" class="loading-overlay">
@ -680,16 +680,21 @@
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
/deep/ .uni-video-slots { /deep/ .uni-video-slots {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
/deep/ .uni-video-slot {
display: flex;
justify-content: space-between;
height: 80%;
position: relative;
}
.maskleft { .maskleft {
width: calc(100% - 2rpx); width: calc(100% - 2rpx);
height: 80%;
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
// cover-view video // cover-view video
position: absolute; position: absolute;
@ -712,9 +717,9 @@
z-index: 1; z-index: 1;
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
// swiper // swiper
transform: translateZ(0); // transform: translateZ(0);
-webkit-transform: translateZ(0); // -webkit-transform: translateZ(0);
will-change: transform; // will-change: transform;
/* #endif */ /* #endif */
.video-container { .video-container {
@ -747,17 +752,12 @@
.loading-overlay { .loading-overlay {
width: 100%; width: 100%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex; display: flex;
flex-direction: column; // flex-direction: column;
align-items: center; // align-items: center;
justify-content: center; justify-content: center;
// background: rgba(0, 0, 0, 0.5); // background: rgba(0, 0, 0, 0.5);
z-index: 10; // z-index: 10;
.loading-spinner { .loading-spinner {
width: 500rpx; width: 500rpx;
@ -831,7 +831,7 @@
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 80%; // height: 80%;
z-index: 1000; z-index: 1000;
// //
pointer-events: auto; pointer-events: auto;
@ -843,25 +843,20 @@
} }
cover-view.loading-overlay { cover-view.loading-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex; display: flex;
flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
// background: rgba(0, 0, 0, 0.5); // background: rgba(0, 0, 0, 0.5);
width: 100%; width: 100%;
z-index: 998; height: 80%;
// z-index: 998;
// swiper // swiper
transform: translateZ(0); // transform: translateZ(0);
-webkit-transform: translateZ(0); // -webkit-transform: translateZ(0);
cover-view.loading-spinner { cover-view.loading-spinner {
width: 500rpx; width: 500rpx;
height: 500rpx; height: 100%;
} }
cover-view.loading-text { cover-view.loading-text {
@ -885,8 +880,8 @@
z-index: 999; z-index: 999;
width: 99%; width: 99%;
// swiper // swiper
transform: translateZ(0); // transform: translateZ(0);
-webkit-transform: translateZ(0); // -webkit-transform: translateZ(0);
cover-view.error-icon { cover-view.error-icon {
width: 120rpx; width: 120rpx;

View File

@ -8,7 +8,7 @@
"sassImplementationName" : "node-sass", "sassImplementationName" : "node-sass",
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {
"orientation" : [ "screenOrientation" : [
// // // //
"portrait-primary", "portrait-primary",
"portrait-secondary", "portrait-secondary",

View File

@ -95,8 +95,8 @@
</view> </view>
<u-calendar v-model="constructionTimeShow" mode="range" :max-date="'2300-01-01'" <u-calendar v-model="constructionTimeShow" mode="range" :max-date="'2300-01-01'"
@change="onConstructionTimeChange"></u-calendar> @change="onConstructionTimeChange"></u-calendar>
<u-popup v-model="detailShow" mode="bottom" :closeable="true"> <u-popup class="my-popup" v-model="detailShow" :mask="false" mode="bottom" :closeable="true">
<view class="popup-main"> <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_header">{{alarmTypeName(detailInfo.alarmType)}}</view>
<view class="popup-box_item"> <view class="popup-box_item">
<view>时间</view> <view>时间</view>
@ -486,12 +486,14 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
/deep/ .u-drawer .u-icon__icon { /deep/ .my-popup {
bottom: 110rpx;
.u-icon__icon {
color: white !important; color: white !important;
} }
}
.popup-main { .popup-main {
height: 100vh;
padding-top: 164rpx; padding-top: 164rpx;
background: #000000; background: #000000;

View File

@ -381,11 +381,18 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
>view:first-child {
flex: 1;
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 隐藏溢出的内容 */
text-overflow: ellipsis; /* 用省略号表示溢出的文本 */
}
>view:last-child { >view:last-child {
width: 20rpx; width: 20rpx;
height: 20rpx; height: 20rpx;
background-color: #D8DBE8; background-color: #D8DBE8;
border-radius: 50%; border-radius: 50%;
flex-shrink: 0;
} }
.onLine { .onLine {

View File

@ -134,9 +134,9 @@
</scroll-view> </scroll-view>
</view> </view>
<view class="content-footer"> <view class="content-footer">
<view class="" @click="onVideoStop"> <!-- <view class="" @click="onVideoStop">
<image src="/static/stop-icon.png" mode=""></image> <image src="/static/stop-icon.png" mode=""></image>
</view> </view> -->
<view :class="{'showDetail': showDetail}" @click="getDetail"> <view :class="{'showDetail': showDetail}" @click="getDetail">
<image src="/static/detail-icon.png" mode=""></image> <image src="/static/detail-icon.png" mode=""></image>
</view> </view>
@ -642,7 +642,8 @@
.content-footer { .content-footer {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; // justify-content: space-between;
justify-content: flex-end;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
width: 100%; width: 100%;

View File

@ -9,7 +9,8 @@
<template v-if="videoConfig.enableNotPlugin != 1"> <template v-if="videoConfig.enableNotPlugin != 1">
<!-- APP环境使用web-view --> <!-- APP环境使用web-view -->
<!-- #ifdef APP-PLUS --> <!-- #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> autoplay></video>
<!-- #endif --> <!-- #endif -->
<!-- H5环境使用ezuikit --> <!-- H5环境使用ezuikit -->
@ -222,6 +223,7 @@
seconds: 0, seconds: 0,
secondsTime: null, secondsTime: null,
testModule: null, testModule: null,
audioUrl: "",
}; };
}, },
onLoad(options) { onLoad(options) {
@ -285,6 +287,10 @@
formattedTime() { formattedTime() {
return this.$dayjs.duration(this.seconds, 'seconds').format('HH:mm:ss'); return this.$dayjs.duration(this.seconds, 'seconds').format('HH:mm:ss');
}, },
isIOS() {
const systemInfo = uni.getSystemInfoSync();
return systemInfo.platform === 'ios';
}
}, },
methods: { methods: {
setHeight() { setHeight() {
@ -413,7 +419,7 @@
that.secondsTime = setInterval(() => { that.secondsTime = setInterval(() => {
that.seconds += 1; that.seconds += 1;
}, 1000); }, 1000);
} else if(res.status == "EXCEPTION" || res.status == "FAILED") { } else if (res.status == "EXCEPTION" || res.status == "FAILED") {
uni.showToast({ uni.showToast({
title: '连接失败!', title: '连接失败!',
icon: 'none' icon: 'none'
@ -1081,6 +1087,23 @@
} }
} }
}); });
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'ios') {
this.sendRequest({
url: "xmgl/videoItem/getVideoItemInfo",
data: {
...json,
type: "hls", //rtsphls
},
method: "post",
success(res) {
if (res.code == 200) {
console.log(778877, res.result.videoInfo.url);
that.audioUrl = res.result.videoInfo.url;
}
}
})
} else {
this.sendRequest({ this.sendRequest({
url: "xmgl/videoItem/getVideoItemInfo", url: "xmgl/videoItem/getVideoItemInfo",
data: { data: {
@ -1104,6 +1127,7 @@
} }
} }
}) })
}
// #endif // #endif
}, },

BIN
static/ai-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/ai-icon_active.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 668 B

After

Width:  |  Height:  |  Size: 856 B

BIN
static/my-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/my-icon_active.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB