feat(视频监控): 添加视频监控模块,屏蔽部分打包文件,更新后端exe和插件,取消csp屏蔽

This commit is contained in:
fhysy 2024-08-09 09:20:04 +08:00
parent 5a0304a8d6
commit 06edc35679
12 changed files with 120060 additions and 7 deletions

View File

@ -11,7 +11,7 @@ files:
- '!src/*' # 排除源代码目录
- '!electron.vite.config.{js,ts,mjs,cjs}' # 排除Electron构建配置文件
- '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' # 排除开发和文档文件
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' # 排除环境和包管理配置文件
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml,*.zip,app.log}' # 排除环境和包管理配置文件
# 定义需要解压的asar文件
asarUnpack:
- resources/** # 解压资源目录下的所有文件

View File

@ -34,7 +34,7 @@ function createWindow() {
// 禁用同源策略,允许跨域请求
webSecurity: false,
contextIsolation: false,
csp: "default-src 'self'; connect-src 'self' *",
// csp: "default-src 'self'; connect-src 'self' *",
// 禁止build环境使用DevTool
// devTools: is.dev ? true : false
devTools: true

View File

@ -5,10 +5,11 @@
<title>谷云工具</title>
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<link rel="stylesheet" href="/src/assets/iconfont/iconfont.css">
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; connect-src 'self' *; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"
/>
<!-- <meta-->
<!-- http-equiv="Content-Security-Policy"-->
<!-- content="default-src 'self'; connect-src 'self' *; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"-->
<!-- />-->
<script type="text/javascript" src="./videoplayer/EasyPlayer-element.min.js"></script>
</head>
<body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

View File

@ -10,7 +10,7 @@ const settings = defineProps({
<el-scrollbar>
<el-menu default-active="/system/switch" :collapse="settings.collapse" :router="true">
<el-menu-item index="/system/switch"> <span class="iconfont icon-icon_duanluqi"></span> 断路器调试</el-menu-item>
<!-- <el-menu-item index="/system/about"><span class="iconfont icon-icon_jiankong"></span> 视频监控</el-menu-item>-->
<el-menu-item index="/system/videoplayer"><span class="iconfont icon-icon_jiankong"></span> 视频监控</el-menu-item>
<!-- <el-menu-item index="/system/test"><el-icon> <Menu /> </el-icon></el-menu-item>-->
</el-menu>
</el-scrollbar>

View File

@ -26,6 +26,15 @@ const router = createRouter({
keepAlive: true
}
},
{
path: 'videoplayer',
name: 'videoplayer',
component: () => import('@renderer/views/system/videoplayer/index.vue'),
meta: {
menu: 'videoplayer',
keepAlive: true
}
},
{
path: 'about',
name: 'about',

View File

@ -0,0 +1,62 @@
<template>
<div id="video-player-box">
<easy-player id="EasyPlayer" ref="vVideoPlayerRef" live muted autoplay :has-audio="videoOption.hasAudio" :video-url="videoOption.videoUrl"></easy-player>
<div class="operation-box">
<div>
<el-checkbox v-model="videoOption.hasAudio" label="音频(音频有问题,请设置成false仅支持flv" size="large" />
</div>
<div>
<span>视频地址</span>
<el-input v-model="videoOption.videoUrl" style="width: 500px; margin-right: 10px" placeholder="请输入视频地址" />
<el-button type="primary" @click="initPlay">初始化</el-button>
<el-button v-if="videoOption.status" type="primary" @click="switchVideo">播放</el-button>
<el-button v-else @click="switchVideo">暂停</el-button>
</div>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue';
const videoOption = ref({
//
videoUrl: '',
//
hasAudio: false,
status: true
});
const vVideoPlayerRef = ref(null);
const initPlay = () => {
let player = vVideoPlayerRef.value.getVueInstance();
player.destroyPlayer();
player.initPlayer();
};
const switchVideo = () => {
let player = vVideoPlayerRef.value.getVueInstance();
player.switchVideo();
videoOption.value.status = !player.pause;
};
</script>
<style lang="less" scoped>
#video-player-box {
height: 100%;
//position: relative;
//padding-bottom: 5px;
}
#EasyPlayer {
display: inline-block;
width: 100% !important;
height: 500px !important;
margin: 0 auto;
}
:deep(.easy-player-loading .logo) {
display: none;
}
:deep(.easy-player-right-menu) {
display: none;
}
</style>