Compare commits

...

4 Commits
main ... master

Author SHA1 Message Date
68e08d187c init 2024-07-28 19:44:56 +08:00
702c6b3b0e 1.17 2024-01-17 15:35:30 +08:00
code_nan
6f92ef1360 主页登录页 2024-01-15 21:30:37 +08:00
code_nan
48adb7ca3e 主页与登录页面 2024-01-15 21:28:47 +08:00
28 changed files with 2444 additions and 2375 deletions

4487
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
window.GLOBAL_CONFIG = { window.GLOBAL_CONFIG = {
apiURL: "http://127.0.0.1:8889/face", apiURL: "http://127.0.0.1:8889/face",
IMG_SERVER_URL: "http://192.168.1.133:9000", IMG_SERVER_URL: "http://192.168.1.133:9000",
SOCKET_URL: "ws://127.0.0.1:8889/face/webSocketServer", SOCKET_URL: "ws://192.168.1.109:8889/face/webSocketServer",
rtspApi_URL: window.location.protocol + '//' + window.location.hostname + ':' + window.location.port, rtspApi_URL: window.location.protocol + '//' + window.location.hostname + ':' + window.location.port,
} }

BIN
src/assets/images/bg2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 KiB

BIN
src/assets/images/bg3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
src/assets/img/camera2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 KiB

View File

@ -4,7 +4,7 @@ t.loading = '加载中...'
t.brand = {} t.brand = {}
t.brand.lg = '室外图像采集平台' t.brand.lg = '室外图像采集平台'
t.brand.mini = '像' t.brand.mini = '像'
t.add = '新增' t.add = '新增'
t.delete = '删除' t.delete = '删除'
@ -364,6 +364,7 @@ t.role = {}
t.role.name = '名称' t.role.name = '名称'
t.role.remark = '备注' t.role.remark = '备注'
t.role.createDate = '创建时间' t.role.createDate = '创建时间'
t.role.updateDate = '更新时间'
t.role.menuList = '菜单授权' t.role.menuList = '菜单授权'
t.role.deptList = '数据授权' t.role.deptList = '数据授权'

0
src/mixins/resize.js Normal file
View File

View File

@ -2,9 +2,18 @@ import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import http from '@/utils/request' import http from '@/utils/request'
import { isURL } from '@/utils/validate' import { isURL } from '@/utils/validate'
import F1 from '@/views/modules/monitoring/ifarm'
Vue.use(Router) Vue.use(Router)
//ifarm 单独路由
export const ifarmRoutes =[
{
path:'/monitoring/ifarm',
name:'ifarm',
// ifarmComponent:printReportShow,
// component:() => import('@/views/modules/monitoring/ifarm')
}
]
// 页面路由(独立页面) // 页面路由(独立页面)
export const pageRoutes = [ export const pageRoutes = [
{ {
@ -33,6 +42,7 @@ export const moduleRoutes = {
meta: { title: '主入口布局' }, meta: { title: '主入口布局' },
children: [ children: [
{ path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } } { path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } }
//此处为自己添加的页面
] ]
} }

View File

@ -23,11 +23,11 @@ export default new Vuex.Store({
contentTabs: [ contentTabs: [
{ {
...window.SITE_CONFIG['contentTabDefault'], ...window.SITE_CONFIG['contentTabDefault'],
'name': 'monitoring-home', 'name': 'monitoring-chart-test2',
'title': '首页' 'title': '首页'
} }
], ],
contentTabsActiveName: 'monitoring-home', contentTabsActiveName: 'monitoring-chart-test2',
//人像库 跳转页面 数据 //人像库 跳转页面 数据
libraryurl:'' libraryurl:''
}, },

View File

@ -112,3 +112,25 @@ export function replaceImgUrl(url) {
return url return url
} }
} }
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function() {
// 据上一次触发时间间隔
const last = +new Date() - timestamp
// 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
if (last < wait && last > 0) {
timeout = setTimeout(later, wait - last)
} else {
timeout = null
// 如果设定为immediate===true因为开始边界已经调用过了此处无需调用
if (!immediate) {
result = func.apply(context, args)
if (!timeout) context = args = null
}
}
}
}

View File

@ -12,7 +12,7 @@
</el-dropdown> </el-dropdown>
<el-tabs v-model="$store.state.contentTabsActiveName" @tab-click="tabSelectedHandle" @tab-remove="tabRemoveHandle"> <el-tabs v-model="$store.state.contentTabsActiveName" @tab-click="tabSelectedHandle" @tab-remove="tabRemoveHandle">
<el-tab-pane v-for="item in $store.state.contentTabs" :key="item.name" :name="item.name" :label="item.title" <el-tab-pane v-for="item in $store.state.contentTabs" :key="item.name" :name="item.name" :label="item.title"
:closable="item.name !== 'monitoring-home'" :class="{ 'is-iframe': tabIsIframe(item.iframeURL) }"> :closable="item.name !== 'monitoring-chart-test2'" :class="{ 'is-iframe': tabIsIframe(item.iframeURL) }">
<!-- <template v-if="item.name === 'monitoring-home'"> <!-- <template v-if="item.name === 'monitoring-home'">
<svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"> <svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true">
<use xlink:href="#icon-home"></use> <use xlink:href="#icon-home"></use>
@ -76,12 +76,12 @@
}, },
// tabs, tab // tabs, tab
tabRemoveHandle(tabName) { tabRemoveHandle(tabName) {
if (tabName === 'monitoring-home') { if (tabName === 'monitoring-chart-test2') {
return false return false
} }
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
if (this.$store.state.contentTabs.length <= 0) { if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'monitoring-home' this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'monitoring-chart-test2'
return false return false
} }
// tab // tab
@ -99,14 +99,14 @@
// tabs, // tabs,
tabsCloseOtherHandle() { tabsCloseOtherHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => { this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => {
return item.name === 'monitoring-home' || item.name === this.$store.state.contentTabsActiveName return item.name === 'monitoring-chart-test2' || item.name === this.$store.state.contentTabsActiveName
}) })
}, },
// tabs, // tabs,
tabsCloseAllHandle() { tabsCloseAllHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name === 'monitoring-home') this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name === 'monitoring-chart-test2')
this.$router.push({ this.$router.push({
name: 'monitoring-home' name: 'monitoring-chart-test2'
}) })
} }
} }

View File

@ -9,7 +9,7 @@
activated() { activated() {
this.$store.state.contentTabs.pop() this.$store.state.contentTabs.pop()
this.$router.push({ this.$router.push({
name: "monitoring-home" name: "monitoring-chart-test2"
}) })
} }
} }

View File

@ -2,61 +2,62 @@
<div> <div>
<div v-show="!allPicState"> <div v-show="!allPicState">
<!-- 预警--> <!-- 预警-->
<div style="float:right;width: 528px;box-sizing: border-box;"> <!-- <div style="float:right;width: 528px;box-sizing: border-box;">-->
<div style="margin-bottom: 8px; display: flex;justify-content: space-between;"> <!-- <div style="margin-bottom: 8px; display: flex;justify-content: space-between;">-->
<i style="font-size: 18px;font-weight: bold;color: #333;">人脸比中</i> <!-- <i style="font-size: 18px;font-weight: bold;color: #333;">人脸比中</i>-->
<i @click="showAllClick()" style="cursor: pointer;">查看全部 <!-- <i @click="showAllClick()" style="cursor: pointer;">查看全部-->
<i class="el-icon-arrow-right"> <!-- <i class="el-icon-arrow-right">-->
</i> <!-- </i>-->
</i> <!-- </i>-->
</div> <!-- </div>-->
<div style="width: 528px;height: 190px;margin-bottom: 10px;background: #FFF;border-radius:2px; cursor: pointer;" <!-- <div style="width: 528px;height: 190px;margin-bottom: 10px;background: #FFF;border-radius:2px; cursor: pointer;"-->
v-for="(item,index) in videoFaceList" v-if = "item.xsd > textStyle" class="warning-class" @click="openTask(item)"> <!-- v-for="(item,index) in videoFaceList" v-if = "item.xsd > textStyle" class="warning-class" @click="openTask(item)">-->
<div v-if = "item.xsd > textStyle" <!-- <div v-if = "item.xsd > textStyle"-->
style="height:40px;display:flex;align-items: center; justify-content: space-between;border-bottom: 1px solid #F1F8FF;box-sizing: border-box;"> <!-- style="height:40px;display:flex;align-items: center; justify-content: space-between;border-bottom: 1px solid #F1F8FF;box-sizing: border-box;">-->
<!-- <i style="font-weight: bold;color: #333333;margin-left: 20px">{{item.cameraRegion}}</i>--> <!--&lt;!&ndash; <i style="font-weight: bold;color: #333333;margin-left: 20px">{{item.cameraRegion}}</i>&ndash;&gt;-->
<i style="font-weight: bold;color: #333333;margin-left: 20px">{{"十楼工位"}}</i> <!-- <i style="font-weight: bold;color: #333333;margin-left: 20px">{{"十楼工位"}}</i>-->
<i style="font-weight: bold;color: #333333;margin-right: 20px;">{{item.time}}</i> <!-- <i style="font-weight: bold;color: #333333;margin-right: 20px;">{{item.time}}</i>-->
</div> <!-- </div>-->
<div v-if = "item.xsd > textStyle" style="display: flex;align-items: center;height: 150px;margin-left: 34px;"> <!-- <div v-if = "item.xsd > textStyle" style="display: flex;align-items: center;height: 150px;margin-left: 34px;">-->
<div style="width: 120px;height: 120px;background: #F1F6F9;"> <!-- <div style="width: 120px;height: 120px;background: #F1F6F9;">-->
<!--<canvas width=120 height=120 :ref="'warningImage'+index"> <!-- &lt;!&ndash;<canvas width=120 height=120 :ref="'warningImage'+index">-->
</canvas>--> <!-- </canvas>&ndash;&gt;-->
<img style="width: 120px;height: 120px;" :src="videoFaceList[index].cphoto" fit="contain"/> <!-- <img style="width: 120px;height: 120px;" :src="videoFaceList[index].cphoto" fit="contain"/>-->
</div> <!-- </div>-->
<div <!-- <div-->
style="width: 120px;height: 120px;background: #F1F6F9;margin: 0 20px;text-align: center;position: relative;"> <!-- style="width: 120px;height: 120px;background: #F1F6F9;margin: 0 20px;text-align: center;position: relative;">-->
<!-- src="item.rphoto"--> <!-- &lt;!&ndash; src="item.rphoto"&ndash;&gt;-->
<img style="width: 120px;height: 120px;" :src="item.rphoto" /> <!-- <img style="width: 120px;height: 120px;" :src="item.rphoto" />-->
<div <!-- <div-->
style="position: absolute;width: 100%;background-color: red;bottom: 0;opacity: 0.6;background: #000;color: #FFF;line-height: 1.8;"> <!-- style="position: absolute;width: 100%;background-color: red;bottom: 0;opacity: 0.6;background: #000;color: #FFF;line-height: 1.8;">-->
<i>测试库</i> <!-- <i>测试库</i>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div style="width: 194px;height: 120px;position: relative;"> <!-- <div style="width: 194px;height: 120px;position: relative;">-->
<div <!-- <div-->
style="display: flex;flex-direction: column;justify-content: space-around;height: 120px;"> <!-- style="display: flex;flex-direction: column;justify-content: space-around;height: 120px;">-->
<span><iv <!-- <span><iv-->
style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgritem.name}}</i></span> <!-- style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgr style="width: 120px;height: 120px;backgritem.name}}</i></span>-->
<span><i>性别未知</i></span> <!-- <span><i>性别未知</i></span>-->
<span><i>来源测试库</i></span> <!-- <span><i>来源测试库</i></span>-->
<span><i>相似度</i><i style="font-size: 30px;font-weight: 600;color: #FF343E; font-family:Bahnschrift;"> <!-- <span><i>相似度</i><i style="font-size: 30px;font-weight: 600;color: #FF343E; font-family:Bahnschrift;">-->
{{item.xsd+"%"}}</i></span> <!-- {{item.xsd+"%"}}</i></span>-->
</div> <!-- </div>-->
<div style="position: absolute;top:0;right: 0;"> <!-- <div style="position: absolute;top:0;right: 0;">-->
<img src="../../../assets/img/warning/jk.png" alt="监控"> <!-- <img src="../../../assets/img/warning/jk.png" alt="监控">-->
<img v-if="item.taskType=='3'" src="../../../assets/img/warning/ts.png" alt="提示"> <!-- <img v-if="item.taskType=='3'" src="../../../assets/img/warning/ts.png" alt="提示">-->
<img v-if="item.taskType=='2'" src="../../../assets/img/warning/jk.png" alt="监控"> <!-- <img v-if="item.taskType=='2'" src="../../../assets/img/warning/jk.png" alt="监控">-->
<img v-if="item.taskType=='1'" src="../../../assets/img/warning/zb.png" alt="抓捕"> <!-- <img v-if="item.taskType=='1'" src="../../../assets/img/warning/zb.png" alt="抓捕">-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<!-- 子组件 任务详情 --> <!-- &lt;!&ndash; 子组件 任务详情 &ndash;&gt;-->
<task v-if="taskVisible" ref="task" @refreshTaskList></task> <!-- <task v-if="taskVisible" ref="task" @refreshTaskList></task>-->
</div> <!-- </div>-->
<!-- 抓拍--> <!-- 抓拍-->
<div style="margin-right:548px;"> <!-- <div style="margin-right:548px;">-->
<div >
<!-- 条件 --> <!-- 条件 -->
<div style=";margin-bottom: 8px;"> <div style=";margin-bottom: 8px;">
<i style="font-size: 18px;font-weight: bold;color: #333;">卡口切换</i> <i style="font-size: 18px;font-weight: bold;color: #333;">卡口切换</i>
@ -65,7 +66,7 @@
<span class="el-icon-caret-bottom" style="font-size: 18px;cursor: pointer;" <span class="el-icon-caret-bottom" style="font-size: 18px;cursor: pointer;"
@click.stop="barrierSelectStateClick" v-show="barrierState"></span> @click.stop="barrierSelectStateClick" v-show="barrierState"></span>
<i style="font-size: 18px;margin-left: 30px;">{{barrierName}}</i> <i style="font-size: 18px;margin-left: 30px;">{{barrierName}}</i>
<i style="font-size: 18px;float:right">布控任务:{{taskName}}</i> <!-- <i style="font-size: 18px;float:right">布控任务:{{taskName}}</i>-->
</div> </div>
<!-- 卡口树 --> <!-- 卡口树 -->
<div style="width: 305px;height: 600px;position: absolute;background-color: #FFF;z-index:1" <div style="width: 305px;height: 600px;position: absolute;background-color: #FFF;z-index:1"
@ -97,36 +98,36 @@
<!-- </div>--> <!-- </div>-->
<!-- </el-image>--> <!-- </el-image>-->
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div style="border: 1px solid #000000;height: 100%;width: 100%;float: left" v-for="item in cameraList" > <div style="border: 1px solid #000000;height: 400px;width: 50%;float: left" v-for="item in cameraList" >
<video-control :msg=nowRtspurl :key="nowRtspurl" ></video-control> <video-control :msg=item.rtspUrl ></video-control>
</div> </div>
<!-- <button style="width: 200px;height: 200px;" @click="plays"></button>--> <button style="width: 200px;height: 200px;" @click="plays"></button>
</el-card> </el-card>
</div> </div>
<!-- 抓拍图片详情 --> <!-- 抓拍图片详情 -->
<div style="display: flex;justify-content: space-between;margin: 10px 0 8px 0;"> <!-- <div style="display: flex;justify-content: space-between;margin: 10px 0 8px 0;">-->
<span> <!-- <span>-->
<i style="color:#333;font-size: 14px;font-weight:bold ;">今日抓拍</i> <!-- <i style="color:#333;font-size: 14px;font-weight:bold ;">今日抓拍</i>-->
<i <!-- <i-->
style="color:#333;font-size: 18px;font-weight:bold;margin-left: 5px;font-family:Bahnschrift">{{toDaySnapShot}}</i> <!-- style="color:#333;font-size: 18px;font-weight:bold;margin-left: 5px;font-family:Bahnschrift">{{toDaySnapShot}}</i>-->
<i style="color:#333;font-size: 14px;font-weight:bold ;">/累计抓拍 </i> <!-- <i style="color:#333;font-size: 14px;font-weight:bold ;">/累计抓拍 </i>-->
<i <!-- <i-->
style="color:#333;font-size: 18px;font-weight:bold;margin-left: 5px;font-family:Bahnschrift">{{totalSnapShot}}</i> <!-- style="color:#333;font-size: 18px;font-weight:bold;margin-left: 5px;font-family:Bahnschrift">{{totalSnapShot}}</i>-->
</span> <!-- </span>-->
<i style="font-size: 14px;font-weight: 400;cursor: pointer;" @click="showAllPicClick()">查看全部 <!-- <i style="font-size: 14px;font-weight: 400;cursor: pointer;" @click="showAllPicClick()">查看全部-->
<span class="el-icon-arrow-right"> <!-- <span class="el-icon-arrow-right">-->
</span> <!-- </span>-->
</i> <!-- </i>-->
</div> <!-- </div>-->
<!-- 抓拍图片 --> <!-- 抓拍图片 -->
<div class="pic-div"> <!-- <div class="pic-div">-->
<div style="display: flex;align-items: center;"> <!-- <div style="display: flex;align-items: center;">-->
<template v-for="(item,i) in videoFaceList"> <!-- <template v-for="(item,i) in videoFaceList">-->
<img width=120 height=120 style="margin-left: 12px;" :src="item.cphoto"> <!-- <img width=120 height=120 style="margin-left: 12px;" :src="item.cphoto">-->
</template> <!-- </template>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<!-- 声音提醒 --> <!-- 声音提醒 -->
<!-- <audio ref="notice">--> <!-- <audio ref="notice">-->
<!-- <source src="../../../assets/mp3/warning1.mp3" type="audio/mpeg">--> <!-- <source src="../../../assets/mp3/warning1.mp3" type="audio/mpeg">-->
@ -220,13 +221,20 @@
flag : false, flag : false,
//70 //70
textStyle : 70.00, textStyle : 70.00,
// websock: null
} }
}, },
mounted() { mounted() {
//this.timer = setInterval(this.get, 1000); //this.timer = setInterval(this.get, 1000);
// this.get() // this.get()
}, },
beforeDestroy() {}, beforeDestroy() {
},
destroyed() {
//this.websocketclose();
//ws
this.websock.close() // websocket
},
created() { created() {
// //
this.initGetCameraId() this.initGetCameraId()
@ -265,10 +273,10 @@
this.getCurrentTime() this.getCurrentTime()
} }
}, },
// plays(){ plays(){
// // this.cameraList.pop(); // this.cameraList.pop();
// this.cameraList.push({rtspUrl: "rtsp://admin:123uestc@192.168.1.32:554"}); this.cameraList.push({rtspUrl: "rtsp://admin:123uestc@192.168.1.32:554"});
// }, },
// 4 // 4
initGetWarningPicture() { initGetWarningPicture() {
this.$http.post("/faces/compareList", { this.$http.post("/faces/compareList", {

View File

@ -41,9 +41,9 @@
<el-form-item label="IP" prop="ip"> <el-form-item label="IP" prop="ip">
<el-input v-model="formModel.ip" placeholder="ip" clearable></el-input> <el-input v-model="formModel.ip" placeholder="ip" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="端口" prop="port"> <!-- <el-form-item label="端口" prop="port">-->
<el-input v-model="formModel.port" placeholder="端口" clearable></el-input> <!-- <el-input v-model="formModel.port" placeholder="端口" clearable></el-input>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="用户名" prop="userName"> <el-form-item label="用户名" prop="userName">
<el-input <el-input
v-model="formModel.userName" v-model="formModel.userName"
@ -51,17 +51,18 @@
clearable clearable
maxlength="30" maxlength="30"
show-word-limit show-word-limit
disabled="true"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="passwd"> <!-- <el-form-item label="密码" prop="passwd">-->
<el-input <!-- <el-input-->
v-model="formModel.passwd" <!-- v-model="formModel.passwd"-->
placeholder="密码" <!-- placeholder="密码"-->
clearable <!-- clearable-->
maxlength="30" <!-- maxlength="30"-->
show-word-limit <!-- show-word-limit-->
></el-input> <!-- ></el-input>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="品牌" prop="idBrand"> <el-form-item label="品牌" prop="idBrand">
<el-select <el-select
style="width:100%" style="width:100%"
@ -246,7 +247,7 @@ export default {
cameraRegionFirstlevelArrays: [], cameraRegionFirstlevelArrays: [],
cameraAddress: "", cameraAddress: "",
ip: "", ip: "",
userName: "", userName: this.$store.state.user.name,
passwd: "", passwd: "",
idBrand: "", idBrand: "",
version: "", version: "",

View File

@ -266,7 +266,8 @@ export default {
}, },
// //
commonSeach(pageObj = this.pageObj) { commonSeach(pageObj = this.pageObj) {
this.$http.post("/camera/getList", pageObj).then(res => { let userName =this.$store.state.user.name;
this.$http.post(`/camera/getList?userName=${userName}`, pageObj).then(res => {
if (res.data.code === 0) { if (res.data.code === 0) {
this.cameraList = res.data.data.records; this.cameraList = res.data.data.records;
this.total = Number(res.data.data.total); this.total = Number(res.data.data.total);
@ -276,7 +277,7 @@ export default {
console.log(res); console.log(res);
} }
}); });
this.$http.get("/camera/getAllList").then(res => { this.$http.get("/camera/getAllList",{params:{userName:this.$store.state.user.name}}).then(res => {
this.mapList = res.data.data; this.mapList = res.data.data;
this.mapList.forEach(item => { this.mapList.forEach(item => {
item.displayCss = "block"; item.displayCss = "block";

View File

@ -98,6 +98,7 @@ export default {
count: '209' count: '209'
}, { }, {
id: '2', id: '2',
name: '设备2', name: '设备2',
count: '126' count: '126'
}, { }, {

View File

@ -4,33 +4,33 @@
<el-header> <el-header>
<div class="home_content"> <div class="home_content">
<div > <div >
<p class="home_title" style="color: blue">欢迎登录{{$store.state.user.name}}&nbsp;!</p> <p class="home_title" style="color: rgb(0, 47, 255);font-size:45px">欢迎登录{{$store.state.user.name}}用户,好久不见!</p>
<p class="home_data" style="color: blue">系统已经安全运行<span>&nbsp;{{homeData.daysOfOperation}}&nbsp;</span></p> <p class="home_data" style="color: blue;font-size:45px">采集平台已经安全运行<span style="font-size:65x">&nbsp;{{homeData.daysOfOperation}}&nbsp;</span></p>
</div> </div>
</div> </div>
</el-header> </el-header>
<el-main> <el-main>
<div class="home_main_box1"> <div class="home_main_box1">
<div class="home_m_b_f"> <div class="home_m_b_f">
<div class="home_m_b_f_t">人像库数量</div> <div class="home_m_b_f_t">采集群数量</div>
<div class="home_m_b_f_b">{{homeData.libNumber}}</div> <div class="home_m_b_f_b">{{homeData.libNumber}}</div>
</div> </div>
</div> </div>
<div class="home_main_box2"> <div class="home_main_box2">
<div class="home_m_b_f"> <div class="home_m_b_f">
<div class="home_m_b_f_t">人脸数量</div> <div class="home_m_b_f_t">设备数量</div>
<div class="home_m_b_f_b">{{homeData.faceNumber}}</div> <div class="home_m_b_f_b">{{homeData.faceNumber}}</div>
</div> </div>
</div> </div>
<div class="home_main_box3"> <div class="home_main_box3">
<div class="home_m_b_f"> <div class="home_m_b_f">
<div class="home_m_b_f_t">布控任务数</div> <div class="home_m_b_f_t">运行任务数</div>
<div class="home_m_b_f_b">{{homeData.taskNumber}}</div> <div class="home_m_b_f_b">{{homeData.taskNumber}}</div>
</div> </div>
</div> </div>
<div class="home_main_box4"> <div class="home_main_box4">
<div class="home_m_b_f"> <div class="home_m_b_f">
<div class="home_m_b_f_t">预警数量</div> <div class="home_m_b_f_t">运行峰值</div>
<div class="home_m_b_f_b">{{homeData.warnNumber}}</div> <div class="home_m_b_f_b">{{homeData.warnNumber}}</div>
</div> </div>
</div> </div>
@ -40,6 +40,8 @@
</template> </template>
<script> <script>
import Cookies from "js-cookie";
export default { export default {
data() { data() {
return { return {
@ -82,6 +84,7 @@
}).catch(() => {}) }).catch(() => {})
}, },
data() { data() {
console.log(Cookies)
this.$http.get('/index/show') this.$http.get('/index/show')
.then(res => { .then(res => {
if (res.data.code == 0) { if (res.data.code == 0) {
@ -106,7 +109,7 @@
color: #fff; color: #fff;
margin-bottom: 20px; margin-bottom: 20px;
/*background: url(~@/assets/img/home_bgc0.png) no-repeat;*/ /*background: url(~@/assets/img/home_bgc0.png) no-repeat;*/
background: url("~@/assets/images/sensitive_bg.png") ; background: url("~@/assets/images/bg3.jpg") ;
} }
.home_content { .home_content {
@ -170,7 +173,7 @@
} }
.el-main .home_main_box2 { .el-main .home_main_box2 {
background-image: url("../../../assets/img/123_08.png") background-image: url("../../../assets/img/home_02_01.jpg")
} }
.el-main .home_main_box3 { .el-main .home_main_box3 {

View File

@ -2,7 +2,7 @@
<!-- <iframe style="width: 800px; height: 600px;" src="../../../../020/index.html"/>--> <!-- <iframe style="width: 800px; height: 600px;" src="../../../../020/index.html"/>-->
<!-- <iframe :src="this.txtUrl" width="100%" :style="{height:calHeight}" sandbox></iframe>--> <!-- <iframe :src="this.txtUrl" width="100%" :style="{height:calHeight}" sandbox></iframe>-->
<!-- <iframe src="../../../../public/index.html" width="100%" :style="{height:calHeight}" ></iframe>--> <!-- <iframe src="../../../../public/index.html" width="100%" :style="{height:calHeight}" ></iframe>-->
<iframe src=" http://localhost:8080" width="100%" :style="{height:calHeight}" ></iframe> <iframe src=" http://192.168.1.109:8008" width="100%" :style="{height:calHeight}" ></iframe>
<!-- <div class="baidu-page">--> <!-- <div class="baidu-page">-->
<!-- <h1>嵌套百度页面</h1>--> <!-- <h1>嵌套百度页面</h1>-->
<!-- <iframe src="https://www.baidu.com" frameborder="0"></iframe>--> <!-- <iframe src="https://www.baidu.com" frameborder="0"></iframe>-->

View File

@ -0,0 +1,23 @@
<!--// -->
<template>
<div class="dashboard-editor-container">
<div style="width: 100%" class="itemflex-div">
<iframe
:src="newSrc"
class="iframemain"
allowfullscreen="true"
id="iframeId"
></iframe>
</div>
</div>
</template>
<script>
export default {
props:{
newSrc:{
type:String,
default:''
}
},
};
</script>

View File

@ -108,7 +108,7 @@
{ id: 12, message: "日志12", timestamp: "2024-01-09 11:15:00" }, { id: 12, message: "日志12", timestamp: "2024-01-09 11:15:00" },
], // ], //
currentPage:1, // currentPage:1, //
pagesize:3, // pagesize:10, //
accounts: [ accounts: [
{ id: 1, name: "子账号1" }, { id: 1, name: "子账号1" },
{ id: 2, name: "子账号2" }, { id: 2, name: "子账号2" },

View File

@ -26,6 +26,7 @@
<el-table-column prop="name" :label="$t('role.name')" header-align="center" align="center"></el-table-column> <el-table-column prop="name" :label="$t('role.name')" header-align="center" align="center"></el-table-column>
<el-table-column prop="remark" :label="$t('role.remark')" header-align="center" align="center"></el-table-column> <el-table-column prop="remark" :label="$t('role.remark')" header-align="center" align="center"></el-table-column>
<el-table-column prop="createDate" :label="$t('role.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column> <el-table-column prop="createDate" :label="$t('role.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column>
<el-table-column prop="updateDate" :label="$t('role.updateDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> <el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('sys:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button v-if="$hasPermission('sys:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>

View File

@ -145,6 +145,8 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
console.log("角色列表")
console.log(res.data)
this.roleList = res.data this.roleList = res.data
}).catch(() => {}) }).catch(() => {})
}, },

View File

@ -3,11 +3,11 @@
<div class="aui-content__wrapper"> <div class="aui-content__wrapper">
<main class="aui-content"> <main class="aui-content">
<div class="login-header"> <div class="login-header">
<h2 class="login-brand">室外图像采集系统</h2> <h1 class="login-brand">室外图像采集系统</h1>
</div> </div>
<div class="login-body"> <div class="login-body">
<div class="login_p"> <div class="login_p">
<img src="../../../src/assets/img/login_bg.jpg" alt="" style="object-fit: contain"> <img src="../../../src/assets/img/camera2.jpg" alt="" style="object-fit: contain; position: relative;left: 35%;top: 50%;transform: translate(-50%,-50%);">
</div> </div>
<div class="login_dl"> <div class="login_dl">
<div class="login-title">{{ $t('login.title') }}</div> <div class="login-title">{{ $t('login.title') }}</div>
@ -108,6 +108,7 @@
// //
getCaptcha() { getCaptcha() {
this.dataForm.uuid = getUUID() this.dataForm.uuid = getUUID()
console.log("uuid"+this.dataForm.uuid)
this.captchaPath = `${window.SITE_CONFIG['apiURL']}/captcha?uuid=${this.dataForm.uuid}` this.captchaPath = `${window.SITE_CONFIG['apiURL']}/captcha?uuid=${this.dataForm.uuid}`
}, },
// //
@ -124,8 +125,9 @@
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
Cookies.set('token', res.data.token) Cookies.set('token', res.data.token)
//console.log(Cookies.get('token'))
this.$router.replace({ this.$router.replace({
name: 'monitoring-home' name: 'monitoring-chart-test2'
}) })
}).catch(() => {}) }).catch(() => {})
}) })
@ -138,7 +140,10 @@
</script> </script>
<style scoped> <style scoped>
.aui-page__login { .aui-page__login {
background-image: url("../../assets/img/login_bg.jpg") background-image: url("../../assets/img/login_bg_tech3.jpg");
background-size: cover;
position: absolute;
width: 100%;height: 100%;
} }
.login-body { .login-body {