Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
ZiBoYingJI
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kimber
ZiBoYingJI
Commits
c862ab59
Commit
c862ab59
authored
Sep 22, 2024
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
内页菜单公共处理
parent
b70f0529
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
244 additions
and
1024 deletions
+244
-1024
humidity-monitor.html
public/datav/detail/humidity-monitor.html
+7
-50
people-monitor.html
public/datav/detail/people-monitor.html
+15
-560
shape-monitor.html
public/datav/detail/shape-monitor.html
+5
-53
public-detail.js
public/datav/detail/static/js/public-detail.js
+183
-49
temperature-monitor.html
public/datav/detail/temperature-monitor.html
+4
-55
video-monitor.html
public/datav/detail/video-monitor.html
+18
-166
water-monitor.html
public/datav/detail/water-monitor.html
+6
-38
wind-monitor.html
public/datav/detail/wind-monitor.html
+6
-53
No files found.
public/datav/detail/humidity-monitor.html
View file @
c862ab59
...
...
@@ -66,17 +66,13 @@
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
</div>
<!-- 视频监控列表 -->
...
...
@@ -142,7 +138,7 @@
<script
src=
"../js/js.cookie.js"
></script>
<!-- 详情内页公用js -->
<
!-- <script src="./static/js/public-detail.js"></script> --
>
<
script
src=
"./static/js/public-detail.js"
></script
>
<script>
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
...
...
@@ -182,7 +178,7 @@
const
host
=
location
.
protocol
+
'
//
'
+
(
location
.
hostname
===
'
192.168.3.38
'
?
'
192.168.3.37
'
:
'
192.168.13.200
'
)
+
'
:8013
'
;
const
selfHost
=
location
.
hostname
===
'
192.168.3.38
'
?
'
http://192.168.3.
226
:8057
'
:
location
.
protocol
+
'
//
'
+
window
.
location
.
host
;
const
selfHost
=
location
.
hostname
===
'
192.168.3.38
'
?
'
http://192.168.3.
38
:8057
'
:
location
.
protocol
+
'
//
'
+
window
.
location
.
host
;
// 请求 token 用
...
...
@@ -191,24 +187,14 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
// 公共信息
selectedMine
:
{},
// 菜单折叠显隐
showMenu4bianpo
:
true
,
sensorLIst
:
[],
currentSensorId
:
''
,
showMenu4weikuangku
:
true
,
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
// 菜单折叠显隐 - 结束
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
bigScreenDetailMenu
:
''
,
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 表格数据
tableList
:
[]
...
...
@@ -283,16 +269,6 @@
console
.
log
(
'
sdfsdf
'
,
res
)
});
},
menuChange
(
type
)
{
[
'
showMenu4bianpo
'
,
'
showMenu4weikuangku
'
,
'
showMenu4chenjiang
'
,
'
showMenu4diya
'
].
forEach
((
item
)
=>
{
if
(
item
===
type
)
{
this
[
type
]
=
!
this
[
type
]
}
else
{
this
[
item
]
=
false
}
})
},
getChartsData
()
{
const
yAxisOption
=
{
...
...
@@ -397,25 +373,6 @@
loading
&&
loading
.
close
();
this
.
isReady
=
true
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
getAccessToken
(
appKey
,
appSecret
)
{
var
dataJson
=
'
appKey=
'
+
appKey
+
'
&appSecret=
'
+
appSecret
;
return
request
.
post
(
"
/ys7com
"
,
dataJson
).
then
(
res
=>
{
var
data
=
res
.
data
||
{};
if
(
data
[
'
code
'
]
==
'
200
'
)
{
return
data
[
'
data
'
][
'
accessToken
'
]
}
else
{
return
null
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
return
err
})
},
},
})
</script>
...
...
public/datav/detail/people-monitor.html
View file @
c862ab59
...
...
@@ -11,150 +11,15 @@
<link
rel=
"stylesheet"
href=
"../css/element-ui.css"
>
<!-- 引入样式文件 -->
<link
rel=
"stylesheet"
href=
"../css/vant@4.css"
/>
<!-- 引入大屏内页公共样式 -->
<link
rel=
"stylesheet"
href=
"./static/css/public-detail.css"
/>
<!-- 先引入 Vue -->
<script
src=
"../js/vue.min.js"
></script>
<!-- 引入 Vue 和 Vant 的 JS 文件 -->
<script
src=
"../js/vue@2.6.14"
></script>
<script
src=
"../js/vant.min.js"
></script>
<style>
.amap-logo
{
z-index
:
-10
;
}
.amap-copyright
{
z-index
:
-10
;
}
.el-autocomplete-suggestion
{
width
:
330px
!important
;
}
.buttons-box
{
width
:
100%
;
height
:
28px
;
background-color
:
rgba
(
43
,
51
,
63
,
0.7
);
position
:
absolute
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
left
:
0
;
bottom
:
0
;
user-select
:
none
;
z-index
:
10
;
}
.jessibuca-btn
{
width
:
20px
;
color
:
rgb
(
255
,
255
,
255
);
line-height
:
27px
;
margin
:
0px
10px
;
padding
:
0px
2px
;
cursor
:
pointer
;
text-align
:
center
;
font-size
:
0.8rem
!important
;
}
.buttons-box-right
{
position
:
absolute
;
right
:
0
;
}
.mineInfo
{
padding-left
:
10px
;
}
.mineInfo
p
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.menuInfo
{
overflow
:
hidden
;
margin-top
:
28px
;
margin-left
:
10px
;
}
.menuInfo
li
{
float
:
left
;
margin-right
:
16px
;
margin-bottom
:
16px
;
width
:
100px
;
height
:
30px
;
text-align
:
center
;
line-height
:
30px
;
cursor
:
pointer
;
background-image
:
url('./static/detail/menuBtnBg.png')
;
background-size
:
cover
;
}
.menuInfo
li
:hover
{
background-color
:
#084291
;
}
.menuInfo
li
.active
{
background-color
:
#084291
;
}
/*elementui 样式重写*/
.el-range-editor
.el-range-input
{
background
:
transparent
;
color
:
#dbdbdb
;
}
.el-range-editor.el-input__inner
{
border
:
1px
solid
#7c7e7f
!important
;
}
.el-input--small
.el-input__inner
{
color
:
#bababa
!important
;
}
.el-date-editor
.el-range__icon
{
margin-left
:
5px
;
}
section
{
width
:
440px
;
}
section
.header
{
height
:
40px
;
background-color
:
#b8b1b266
;
line-height
:
40px
;
border-bottom
:
1px
solid
#9797ac
;
cursor
:
pointer
;
}
section
.header
.el-icon-caret-right
:before
,
section
.header
.el-icon-caret-down
:before
{
content
:
"\e791"
;
color
:
#a5a4a4
;
font-size
:
22px
;
}
section
.list-wrapper
{
max-height
:
300px
;
overflow-y
:
auto
;
}
section
.list-item
{
height
:
40px
;
margin-left
:
20px
;
line-height
:
40px
;
border-bottom
:
1px
solid
#fff
;
cursor
:
pointer
;
}
section
.list-item
.el-icon-caret-right
:before
{
content
:
"\e791"
;
color
:
#a5a4a4
;
font-size
:
18px
;
}
.titleColor
{
color
:
#0ac4d1
;
}
</style>
</head>
...
...
@@ -163,13 +28,6 @@
<div
class=
"fixed wp100 hv100"
style=
"background-color: #000000;left: 0;top: 0;z-index: 1999;"
v-show=
"!isReady"
></div>
<!-- title -->
<!--<div style="height: 80px;">
<div class="flex-text color-theme f30 wp100 relative maxIndex fixed"
style="height: 80px;background-image: url('../static/title-bg.png');background-size: 100% 100%;">
<div style="margin-top: -10px;">{{selectedMine.name || ''}}</div>
</div>
</div>-->
<div
style=
"height: 80px;"
>
<div
class=
"flex-text color-theme f30 wp100 relative maxIndex fixed"
style=
"height: 80px;"
>
<div
class=
"flex-1"
...
...
@@ -199,28 +57,17 @@
<div
style=
"width: 490px;height: calc(100vh - 110px);"
>
<!-- 通知公告 -->
<div
style=
"background: linear-gradient(to bottom, rgba(13,27,48,.7), rgba(13,27,48,0));"
>
<!-- <div class="h50 flex-text pointer"
style="background: linear-gradient(to bottom, rgba(171,238,255,0), rgba(171,238,255,.2));border-bottom: 1px solid rgba(171,238,255,.5);">
<div class="flex-1" v-if="isReady">
<van-notice-bar background="none" left-icon="volume-o" color="#ffffff" :speed="80"
:text="notice.title" @click="noticeMask = true" />
</div>
</div> -->
<div
class=
"mineInfo"
>
<p>
矿山名称:
淄博红圈石料厂
</p>
<p>
矿山地
质:谁看得见风离开世界的副卡时刻记得发
</p>
<p>
联系人:
开始对
</p>
<p>
联系方式:
xxx
</p>
<p>
矿山名称:
{{selectedMine.name}}
</p>
<p>
矿山地
址:{{selectedMine.address}}
</p>
<p>
联系人:
{{selectedMine.liablePerson}}
</p>
<p>
联系方式:
{{selectedMine.liablePersonPhone}}
</p>
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -380,23 +227,15 @@
<script
src=
"../js/echarts-gl.js"
></script>
<!-- 引入组件库 -->
<script
src=
"../js/element-ui.js"
></script>
<!-- 引入高德js -->
<script
src=
"../js/maps.js"
></script>
<script
src=
"../js/loca.js"
></script>
<script
src=
"../js/es5.min.js"
></script>
<script
src=
"../js/maps-MouseTool.js"
></script>
<!-- axios -->
<script
src=
"../js/axios.min.js"
></script>
<!-- cookie -->
<script
src=
"../js/js.cookie.js"
></script>
<!-- <script type="text/javascript" src="../static/js/jessibuca/jessibuca.js"></script>
<script type="text/javascript" src="../static/js/EasyWasmPlayer.js"></script>
<script type="text/javascript" src="../static/js/liveplayer-lib.min.js"></script>
<script type="text/javascript" src="../static/js/ZLMRTCClient.js"></script> -->
<
script
type=
"text/javascript"
src=
"../static/ezuikit-js/ezuikit.js"
></script
>
<script
type=
"text/javascript"
src=
"../static/js/config
.js"
></script>
<
!-- 详情内页公用js --
>
<script
src=
"./static/js/public-detail
.js"
></script>
<script>
let
jessibucaPlayer
=
{};
...
...
@@ -447,76 +286,23 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
showMenu4bianpo
:
true
,
showMenu4weikuangku
:
true
,
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
createTime
:
''
,
bigScreenDetailMenu
:
''
,
// video
aiWarnCount
:
0
,
videoUrl
:
null
,
error
:
null
,
hasAudio
:
false
,
height
:
null
,
playing
:
false
,
isNotMute
:
false
,
quieting
:
false
,
fullscreen
:
false
,
loaded
:
false
,
// mute
speed
:
0
,
performance
:
""
,
// 工作情况
kBps
:
0
,
btnDom
:
null
,
videoInfo
:
null
,
volume
:
1
,
rotate
:
0
,
vod
:
true
,
// 点播
forceNoOffscreen
:
false
,
// video end
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 公告信息
notice
:
{
title
:
'
【应急公告】通知各矿山,10点之前停止应急作业,通知各矿山,10点之前停止应急作业,通知各矿山,10点之前停止应急作业!
'
,
type
:
'
应急公告
'
,
desc
:
'
由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!
'
,
mine
:
'
所有矿山
'
,
annexName
:
'
无
'
},
noticeMask
:
false
,
// 视频监控列表
// 视频监控
videos
:
[
{
id
:
1
,
video
:
'
https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4
'
,
name
:
'
青岛豪杰矿业有限公司平度市新
'
},
],
TabCur
:
0
,
// 视频ai报警 列表
aiList
:
[],
imageMaskUrl
:
''
}
},
watch
:
{
videoUrl
(
newData
,
oldData
)
{
this
.
play
(
newData
)
},
immediate
:
true
},
mounted
()
{
if
(
!
token
)
{
window
.
open
(
host
+
'
/#/login
'
,
'
_self
'
)
return
}
this
.
bigScreenDetailMenu
=
window
.
localStorage
.
getItem
(
'
bigScreenDetailMenu
'
)
// 当前矿山
const
selectedMineJson
=
window
.
localStorage
.
getItem
(
'
kd.selected.mine
'
)
...
...
@@ -561,16 +347,6 @@
},
methods
:
{
menuChange
(
type
)
{
[
'
showMenu4bianpo
'
,
'
showMenu4weikuangku
'
,
'
showMenu4chenjiang
'
,
'
showMenu4diya
'
].
forEach
((
item
)
=>
{
if
(
item
===
type
)
{
this
[
type
]
=
!
this
[
type
]
}
else
{
this
[
item
]
=
false
}
})
},
async
getData
(
e
)
{
var
loading
if
(
!
e
)
{
...
...
@@ -747,327 +523,6 @@
},
800
);
}
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
createVideo
:
function
(
item
)
{
this
.
getAccessToken
(
this
.
info
.
appKey
,
this
.
info
.
appSecret
).
then
(
accessToken
=>
{
var
url
=
this
.
getUrl
(
item
);
var
video
=
document
.
getElementById
(
"
video-container
"
);
video
.
innerHTML
=
''
;
this
.
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
"
video-container
"
,
accessToken
:
accessToken
,
url
:
url
,
template
:
"
standard
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
// 视频上方头部控件
//header: ["capturePicture", "save", "zoom"], // 如果templete参数不为simple,该字段将被覆盖
//plugin: ['talk'], // 加载插件,talk-对讲
// 视频下方底部控件
// footer: ["talk", "broadcast", "hd", "fullScreen"], // 如果template参数不为simple,该字段将被覆盖
// audio: 1, // 是否默认开启声音 0 - 关闭 1 - 开启
// openSoundCallBack: data => console.log("开启声音回调", data),
// closeSoundCallBack: data => console.log("关闭声音回调", data),
// startSaveCallBack: data => console.log("开始录像回调", data),
// stopSaveCallBack: data => console.log("录像回调", data),
// capturePictureCallBack: data => console.log("截图成功回调", data),
// fullScreenCallBack: data => console.log("全屏回调", data),
// getOSDTimeCallBack: data => console.log("获取OSDTime回调", data),
});
})
},
getAccessToken
(
appKey
,
appSecret
)
{
var
dataJson
=
'
appKey=
'
+
appKey
+
'
&appSecret=
'
+
appSecret
;
return
request
.
post
(
"
/ys7com
"
,
dataJson
).
then
(
res
=>
{
var
data
=
res
.
data
||
{};
if
(
data
[
'
code
'
]
==
'
200
'
)
{
return
data
[
'
data
'
][
'
accessToken
'
]
}
else
{
return
null
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
return
err
})
},
getUrl
(
item
)
{
var
captcha
=
item
.
captcha
?
item
.
captcha
+
'
@
'
:
''
;
var
id
=
item
.
id
||
this
.
info
.
id
||
''
;
return
'
ezopen://
'
+
captcha
+
'
open.ys7.com/
'
+
id
+
'
/
'
+
item
.
channel
;
},
chickVideo
(
video
,
index
)
{
this
.
createVideo
(
video
);
this
.
TabCur
=
index
;
this
.
showMask
=
false
;
},
// video -----------------------------------
updatePlayerDomSize
()
{
let
dom
=
this
.
$refs
.
container
;
let
width
=
dom
.
parentNode
.
clientWidth
let
height
=
(
9
/
16
)
*
width
const
clientHeight
=
Math
.
min
(
document
.
body
.
clientHeight
,
document
.
documentElement
.
clientHeight
)
if
(
height
>
clientHeight
)
{
height
=
clientHeight
width
=
(
16
/
9
)
*
height
}
dom
.
style
.
width
=
width
+
'
px
'
;
dom
.
style
.
height
=
height
+
"
px
"
;
},
create
()
{
let
options
=
{};
console
.
log
(
"
hasAudio
"
+
this
.
hasAudio
)
jessibucaPlayer
[
this
.
_uid
]
=
new
window
.
Jessibuca
(
Object
.
assign
(
{
container
:
this
.
$refs
.
container
,
autoWasm
:
true
,
background
:
""
,
controlAutoHide
:
false
,
debug
:
false
,
decoder
:
"
static/js/jessibuca/decoder.js
"
,
forceNoOffscreen
:
true
,
hasAudio
:
typeof
(
this
.
hasAudio
)
==
"
undefined
"
?
true
:
this
.
hasAudio
,
hasVideo
:
true
,
heartTimeout
:
5
,
heartTimeoutReplay
:
true
,
heartTimeoutReplayTimes
:
3
,
hiddenAutoPause
:
false
,
hotKey
:
false
,
isFlv
:
false
,
isFullResize
:
false
,
isNotMute
:
this
.
isNotMute
,
isResize
:
false
,
keepScreenOn
:
false
,
loadingText
:
"
请稍等, 视频加载中......
"
,
loadingTimeout
:
10
,
loadingTimeoutReplay
:
true
,
loadingTimeoutReplayTimes
:
3
,
openWebglAlignment
:
false
,
operateBtns
:
{
fullscreen
:
false
,
screenshot
:
false
,
play
:
false
,
audio
:
false
,
record
:
false
},
recordType
:
"
webm
"
,
rotate
:
0
,
showBandwidth
:
false
,
supportDblclickFullscreen
:
false
,
timeout
:
10
,
useMSE
:
location
.
hostname
!==
"
localhost
"
&&
location
.
protocol
!==
"
https:
"
,
useOffscreen
:
false
,
useWCS
:
location
.
hostname
===
"
localhost
"
||
location
.
protocol
===
"
https
"
,
useWebFullScreen
:
false
,
videoBuffer
:
0
,
wasmDecodeAudioSyncVideo
:
true
,
wasmDecodeErrorReplay
:
true
,
wcsUseVideoRender
:
true
},
options
));
let
jessibuca
=
jessibucaPlayer
[
this
.
_uid
];
let
_this
=
this
;
jessibuca
.
on
(
"
load
"
,
function
()
{
console
.
log
(
"
on load init
"
);
});
jessibuca
.
on
(
"
log
"
,
function
(
msg
)
{
console
.
log
(
"
on log
"
,
msg
);
});
jessibuca
.
on
(
"
record
"
,
function
(
msg
)
{
console
.
log
(
"
on record:
"
,
msg
);
});
jessibuca
.
on
(
"
pause
"
,
function
()
{
_this
.
playing
=
false
;
});
jessibuca
.
on
(
"
play
"
,
function
()
{
_this
.
playing
=
true
;
});
jessibuca
.
on
(
"
fullscreen
"
,
function
(
msg
)
{
console
.
log
(
"
on fullscreen
"
,
msg
);
_this
.
fullscreen
=
msg
});
jessibuca
.
on
(
"
mute
"
,
function
(
msg
)
{
console
.
log
(
"
on mute
"
,
msg
);
_this
.
isNotMute
=
!
msg
;
});
jessibuca
.
on
(
"
audioInfo
"
,
function
(
msg
)
{
console
.
log
(
"
audioInfo
"
,
msg
);
});
jessibuca
.
on
(
"
bps
"
,
function
(
bps
)
{
// console.log('bps', bps);
});
let
_ts
=
0
;
jessibuca
.
on
(
"
timeUpdate
"
,
function
(
ts
)
{
// console.log('timeUpdate,old,new,timestamp', _ts, ts, ts - _ts);
_ts
=
ts
;
});
jessibuca
.
on
(
"
videoInfo
"
,
function
(
info
)
{
console
.
log
(
"
videoInfo
"
,
info
);
});
jessibuca
.
on
(
"
error
"
,
function
(
error
)
{
console
.
log
(
"
error
"
,
error
);
});
jessibuca
.
on
(
"
timeout
"
,
function
()
{
console
.
log
(
"
timeout
"
);
});
jessibuca
.
on
(
'
start
'
,
function
()
{
console
.
log
(
'
start
'
);
})
jessibuca
.
on
(
"
performance
"
,
function
(
performance
)
{
let
show
=
"
卡顿
"
;
if
(
performance
===
2
)
{
show
=
"
非常流畅
"
;
}
else
if
(
performance
===
1
)
{
show
=
"
流畅
"
;
}
_this
.
performance
=
show
;
});
jessibuca
.
on
(
'
buffer
'
,
function
(
buffer
)
{
// console.log('buffer', buffer);
})
jessibuca
.
on
(
'
stats
'
,
function
(
stats
)
{
// console.log('stats', stats);
})
jessibuca
.
on
(
'
kBps
'
,
function
(
kBps
)
{
_this
.
kBps
=
Math
.
round
(
kBps
);
});
// 显示时间戳 PTS
jessibuca
.
on
(
'
videoFrame
'
,
function
()
{
})
//
jessibuca
.
on
(
'
metadata
'
,
function
()
{
});
},
playBtnClick
:
function
(
event
)
{
this
.
play
(
this
.
videoUrl
)
},
play
:
function
(
url
)
{
console
.
log
(
url
)
if
(
jessibucaPlayer
[
this
.
_uid
])
{
this
.
destroy
();
}
this
.
create
();
jessibucaPlayer
[
this
.
_uid
].
on
(
"
play
"
,
()
=>
{
this
.
playing
=
true
;
this
.
loaded
=
true
;
this
.
quieting
=
jessibuca
.
quieting
;
});
if
(
jessibucaPlayer
[
this
.
_uid
].
hasLoaded
())
{
jessibucaPlayer
[
this
.
_uid
].
play
(
url
);
}
else
{
jessibucaPlayer
[
this
.
_uid
].
on
(
"
load
"
,
()
=>
{
console
.
log
(
"
load 播放
"
)
jessibucaPlayer
[
this
.
_uid
].
play
(
url
);
});
}
},
pause
:
function
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
pause
();
}
this
.
playing
=
false
;
this
.
err
=
""
;
this
.
performance
=
""
;
},
screenshot
:
function
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
screenshot
();
}
},
mute
:
function
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
mute
();
}
},
cancelMute
:
function
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
cancelMute
();
}
},
destroy
:
function
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
destroy
();
}
if
(
document
.
getElementById
(
"
buttonsBox
"
)
==
null
)
{
this
.
$refs
.
container
.
appendChild
(
this
.
btnDom
)
}
jessibucaPlayer
[
this
.
_uid
]
=
null
;
this
.
playing
=
false
;
this
.
err
=
""
;
this
.
performance
=
""
;
},
eventcallbacK
:
function
(
type
,
message
)
{
// console.log("player 事件回调")
// console.log(type)
// console.log(message)
},
isFullscreen
:
function
()
{
return
document
.
fullscreenElement
||
document
.
msFullscreenElement
||
document
.
mozFullScreenElement
||
document
.
webkitFullscreenElement
||
false
;
},
// video end
// 点击选中一路视频
chickVideo222
(
video
,
index
)
{
console
.
log
(
'
video====
'
,
video
,
index
)
if
(
video
.
videoUrl
==
null
)
{
Axiosx
.
get
(
'
/wvp/api/play/start/
'
+
video
.
deviceId
+
'
/
'
+
video
.
videoId
).
then
(
res
=>
{
console
.
log
(
'
res====
'
,
res
)
if
(
res
.
status
&&
res
.
status
>=
200
&&
res
.
status
-
200
<
100
)
{
if
(
res
.
data
.
code
==
0
)
{
console
.
log
(
'
videos===
'
,
this
.
videos
)
this
.
videoUrl
=
res
.
data
.
data
.
ws_flv
}
}
})
}
this
.
TabCur
=
index
this
.
showMask
=
false
},
// 跳转到后台管理
gotoManagement
()
{
window
.
open
(
location
.
protocol
+
'
//
'
+
window
.
location
.
host
+
'
/#/home4Mine
'
,
'
_self
'
)
},
destroyed
()
{
if
(
jessibucaPlayer
[
this
.
_uid
])
{
jessibucaPlayer
[
this
.
_uid
].
destroy
();
}
this
.
playing
=
false
;
this
.
loaded
=
false
;
this
.
performance
=
""
;
},
})
</script>
...
...
public/datav/detail/shape-monitor.html
View file @
c862ab59
...
...
@@ -49,22 +49,11 @@
<div
class=
"f20 color-theme ml10"
>
返回
</div>
</div>
<div
class=
"fixed flex-text maxIndex pointer"
style=
"right: 30px;top: 45px;"
@
click=
"gotoManagement()"
>
<img
style=
"width: 24px;height: 24px;"
src=
"../static/backstage.png"
alt=
""
>
<div
class=
"f20 color-theme ml10"
>
后台管理
</div>
</div>
<div
class=
"flex-text ml10 mr10 mt15"
>
<div
style=
"width: 490px;height: calc(100vh - 110px);"
>
<!-- 通知公告 -->
<div
style=
"background: linear-gradient(to bottom, rgba(13,27,48,.7), rgba(13,27,48,0));"
>
<!-- <div class="h50 flex-text pointer"
style="background: linear-gradient(to bottom, rgba(171,238,255,0), rgba(171,238,255,.2));border-bottom: 1px solid rgba(171,238,255,.5);">
<div class="flex-1" v-if="isReady">
<van-notice-bar background="none" left-icon="volume-o" color="#ffffff" :speed="80"
:text="notice.title" @click="noticeMask = true" />
</div>
</div> -->
<div
class=
"mineInfo"
>
<p>
矿山名称: {{selectedMine.name}}
</p>
<p>
矿山地址:{{selectedMine.address}}
</p>
...
...
@@ -73,13 +62,8 @@
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -193,7 +177,7 @@
<script
src=
"../js/js.cookie.js"
></script>
<!-- 详情内页公用js -->
<
!-- <script src="./static/js/public-detail.js"></script> --
>
<
script
src=
"./static/js/public-detail.js"
></script
>
<script>
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
...
...
@@ -242,11 +226,9 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
// 公共信息
selectedMine
:
{},
// 菜单折叠显隐
showMenu4bianpo
:
true
,
sensorLIst
:
[],
...
...
@@ -255,10 +237,6 @@
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
// 菜单折叠显隐 - 结束
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
bigScreenDetailMenu
:
''
,
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 表格数据
tableList
:
[]
...
...
@@ -266,13 +244,6 @@
}
},
mounted
()
{
for
(
var
i
=
0
;
i
<
10
;
i
++
)
{
this
.
tableList
.
push
({
videoName
:
'
sdfksdfxxxxx
'
,
warnTypeName
:
'
扣税的交流方
'
,
warnDatetime
:
'
ksdlfsdf
'
})
}
if
(
!
token
)
{
window
.
open
(
host
+
'
/#/login
'
,
'
_self
'
)
return
...
...
@@ -465,25 +436,6 @@
loading
&&
loading
.
close
();
this
.
isReady
=
true
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
getAccessToken
(
appKey
,
appSecret
)
{
var
dataJson
=
'
appKey=
'
+
appKey
+
'
&appSecret=
'
+
appSecret
;
return
request
.
post
(
"
/ys7com
"
,
dataJson
).
then
(
res
=>
{
var
data
=
res
.
data
||
{};
if
(
data
[
'
code
'
]
==
'
200
'
)
{
return
data
[
'
data
'
][
'
accessToken
'
]
}
else
{
return
null
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
return
err
})
},
},
})
</script>
...
...
public/datav/detail/static/js/public-detail.js
View file @
c862ab59
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
window
.
detail_token
=
Cookies
.
get
(
'
ELADMIN-TOEKN
'
);
console
.
log
(
'
axios
'
,
axios
)
window
.
detail_axios
=
axios
.
create
({
headers
:
{
'
Authorization
'
:
window
.
detail_token
}
});
window
.
detail_axios
.
defaults
.
headers
[
'
Content-Type
'
]
=
'
application/x-www-form-urlencoded; charset=UTF-8
'
;
console
.
log
(
'
window.detail_axios
'
,
window
.
detail_axios
)
window
.
detail_axios
.
interceptors
.
response
.
use
(
response
=>
{
return
response
},
error
=>
{
console
.
error
(
error
)
let
code
=
0
try
{
code
=
error
.
response
.
data
.
status
}
catch
(
e
)
{
if
(
error
.
toString
().
indexOf
(
'
Error: timeout
'
)
!==
-
1
)
{
console
.
error
(
'
当前网络不佳
'
)
return
}
}
if
(
!
code
)
{
console
.
error
(
'
当前网络不佳
'
)
return
}
if
(
code
===
401
)
{
alert
(
'
登录信息失效,请重新登录
'
)
window
.
open
(
host
+
'
/#/login
'
,
'
_self
'
)
return
}
if
(
code
===
400
&&
message
===
'
不允许访问
'
)
{
alert
(
'
您没有权限使用此功能,请联系管理员开通
'
)
return
}
}
);
// let jessibucaPlayer = {};
// //const host = location.protocol + '//' + window.location.host;
// window.detail_token = Cookies.get('ELADMIN-TOEKN');
// console.log('axios',axios)
// window.detail_axios = axios.create({
// headers: { 'Authorization': window.detail_token }
// });
// window.detail_axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
const
host
=
location
.
protocol
+
'
//
'
+
(
location
.
hostname
===
'
192.168.3.38
'
?
'
192.168.3.37
'
:
'
192.168.13.200
'
)
+
'
:8013
'
;
// console.log('window.detail_axios',window.detail_axios)
// window.detail_axios.interceptors.response.use(
// response => {
// return response
// }, error => {
// console.error(error)
// let code = 0
// try {
// code = error.response.data.status
// } catch (e) {
// if (error.toString().indexOf('Error: timeout') !== -1) {
// console.error('当前网络不佳')
// return
// }
// }
// if (!code) {
// console.error('当前网络不佳')
// return
// }
// if (code === 401) {
// alert('登录信息失效,请重新登录')
// window.open(host + '/#/login', '_self')
// return
// }
// if (code === 400 && message === '不允许访问') {
// alert('您没有权限使用此功能,请联系管理员开通')
// return
// }
// }
// );
const
selfHost
=
location
.
hostname
===
'
192.168.3.38
'
?
'
http://192.168.3.226:8057
'
:
location
.
protocol
+
'
//
'
+
window
.
location
.
host
;
// const host = location.protocol + '//' + (location.hostname === '192.168.3.38' ? '192.168.3.37' : '192.168.13.200') + ':8013'
;
// const selfHost = location.hostname === '192.168.3.38' ? 'http://192.168.3.226:8057' : location.protocol + '//' + window.location.host;
if
(
!
window
.
detail_token
)
{
window
.
open
(
host
+
'
/#/login
'
,
'
_self
'
)
return
}
// if (this.selectedMine.mineType != 2) {
// alert('您当前选择的不是露天矿山,请先选择露天矿山,再查看此大屏')
// window.history.go(-1)
// if (!window.detail_token) {
// window.open(host + '/#/login', '_self')
// return
// }
\ No newline at end of file
// }
// // if (this.selectedMine.mineType != 2) {
// // alert('您当前选择的不是露天矿山,请先选择露天矿山,再查看此大屏')
// // window.history.go(-1)
// // return
// // }
var
gemhoUtil
=
{
goToPage
:
function
(
url
){
window
.
open
(
url
)
},
detailPageMixin
:
{
data
:
function
()
{
return
{
// 公共信息
selectedMine
:
{},
menuObj
:
menuObj
,
bigScreenDetailMenu
:
''
,
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
};
},
methods
:
{
changeMenu
(
item
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
item
.
name
)
this
.
bigScreenDetailMenu
=
item
.
name
// 跳转页面
window
.
open
(
item
.
url
)
},
}
}
}
var
menuObj
=
{
emergency
:
{
menuList
:
[{
name
:
'
视频监控
'
,
url
:
'
/datav/detail/video-monitor.html
'
},{
name
:
'
变形监控
'
,
url
:
'
/datav/detail/shape-monitor.html
'
},{
name
:
'
温度监控
'
,
url
:
'
/datav/detail/temperature-monitor.html
'
},{
name
:
'
湿度监控
'
,
url
:
'
/datav/detail/humidity-monitor.html
'
},{
name
:
'
风速监控
'
,
url
:
'
/datav/detail/wind-monitor.html
'
},{
name
:
'
降水监控
'
,
url
:
'
/datav/detail/water-monitor.html
'
},{
name
:
'
人员定位
'
,
url
:
'
/datav/detail/people-monitor.html
'
,
subMenu
:
[{
name
:
'
人员数据统计
'
,
url
:
'
/datav/detail/people-monitor.html
'
},{
name
:
'
人员定位图
'
,
url
:
'
/datav/detail/people-monitor.html
'
}]
}],
},
natural
:
{
menuList
:
[{
name
:
'
视频监控
'
,
url
:
'
/datav/detail/video-monitor.html
'
},{
name
:
'
矿山全景
'
,
url
:
'
/datav/detail/shape-monitor.html
'
},{
name
:
'
资源储备
'
,
url
:
'
/datav/detail/temperature-monitor.html
'
},{
name
:
'
水检测
'
,
url
:
'
/datav/detail/humidity-monitor.html
'
},{
name
:
'
土监测
'
,
url
:
'
/datav/detail/wind-monitor.html
'
},{
name
:
'
地质环境
'
,
url
:
'
/datav/detail/water-monitor.html
'
},{
name
:
'
绿色矿山
'
,
url
:
'
/datav/detail/shape-monitor.html
'
,
},{
name
:
'
开发利用
'
,
url
:
'
/datav/detail/shape-monitor.html
'
,
},{
name
:
'
变形监测
'
,
url
:
'
/datav/detail/shape-monitor.html
'
,
}],
},
water
:
{
menuList
:
[{
name
:
'
视频监控
'
,
url
:
'
/datav/detail/video-monitor.html
'
},{
name
:
'
水土流失
'
,
url
:
'
/datav/detail/shape-monitor.html
'
},{
name
:
'
降水监测
'
,
url
:
'
/datav/detail/water-monitor.html
'
},{
name
:
'
温度监测
'
,
url
:
'
/datav/detail/humidity-monitor.html
'
},{
name
:
'
湿度监控
'
,
url
:
'
/datav/detail/wind-monitor.html
'
},{
name
:
'
风速监测
'
,
url
:
'
/datav/detail/water-monitor.html
'
}],
},
shengtai
:
{
menuList
:
[{
name
:
'
视频监控
'
,
url
:
'
/datav/detail/video-monitor.html
'
},{
name
:
'
水土流失
'
,
url
:
'
/datav/detail/shape-monitor.html
'
},{
name
:
'
土壤监测
'
,
url
:
'
/datav/detail/water-monitor.html
'
},{
name
:
'
噪声监测
'
,
url
:
'
/datav/detail/humidity-monitor.html
'
},{
name
:
'
大气监测
'
,
url
:
'
/datav/detail/wind-monitor.html
'
},{
name
:
'
烟道监测
'
,
url
:
'
/datav/detail/water-monitor.html
'
}],
},
}
public/datav/detail/temperature-monitor.html
View file @
c862ab59
...
...
@@ -49,11 +49,6 @@
<div
class=
"f20 color-theme ml10"
>
返回
</div>
</div>
<div
class=
"fixed flex-text maxIndex pointer"
style=
"right: 30px;top: 45px;"
@
click=
"gotoManagement()"
>
<img
style=
"width: 24px;height: 24px;"
src=
"../static/backstage.png"
alt=
""
>
<div
class=
"f20 color-theme ml10"
>
后台管理
</div>
</div>
<div
class=
"flex-text ml10 mr10 mt15"
>
<div
style=
"width: 490px;height: calc(100vh - 110px);"
>
<div
style=
"background: linear-gradient(to bottom, rgba(13,27,48,.7), rgba(13,27,48,0));"
>
...
...
@@ -66,13 +61,8 @@
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -142,7 +132,7 @@
<script
src=
"../js/js.cookie.js"
></script>
<!-- 详情内页公用js -->
<
!-- <script src="./static/js/public-detail.js"></script> --
>
<
script
src=
"./static/js/public-detail.js"
></script
>
<script>
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
...
...
@@ -191,27 +181,15 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
// 公共信息
selectedMine
:
{},
// 菜单折叠显隐
showMenu4bianpo
:
true
,
sensorLIst
:
[],
currentSensorId
:
''
,
showMenu4weikuangku
:
true
,
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
// 菜单折叠显隐 - 结束
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
bigScreenDetailMenu
:
''
,
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 表格数据
tableList
:
[]
}
},
mounted
()
{
...
...
@@ -283,16 +261,6 @@
console
.
log
(
'
sdfsdf
'
,
res
)
});
},
menuChange
(
type
)
{
[
'
showMenu4bianpo
'
,
'
showMenu4weikuangku
'
,
'
showMenu4chenjiang
'
,
'
showMenu4diya
'
].
forEach
((
item
)
=>
{
if
(
item
===
type
)
{
this
[
type
]
=
!
this
[
type
]
}
else
{
this
[
item
]
=
false
}
})
},
getChartsData
()
{
const
yAxisOption
=
{
...
...
@@ -397,25 +365,6 @@
loading
&&
loading
.
close
();
this
.
isReady
=
true
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
getAccessToken
(
appKey
,
appSecret
)
{
var
dataJson
=
'
appKey=
'
+
appKey
+
'
&appSecret=
'
+
appSecret
;
return
request
.
post
(
"
/ys7com
"
,
dataJson
).
then
(
res
=>
{
var
data
=
res
.
data
||
{};
if
(
data
[
'
code
'
]
==
'
200
'
)
{
return
data
[
'
data
'
][
'
accessToken
'
]
}
else
{
return
null
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
return
err
})
},
},
})
</script>
...
...
public/datav/detail/video-monitor.html
View file @
c862ab59
...
...
@@ -11,6 +11,8 @@
<link
rel=
"stylesheet"
href=
"../css/element-ui.css"
>
<!-- 引入样式文件 -->
<link
rel=
"stylesheet"
href=
"../css/vant@4.css"
/>
<!-- 引入大屏内页公共样式 -->
<link
rel=
"stylesheet"
href=
"./static/css/public-detail.css"
/>
<!-- 先引入 Vue -->
<script
src=
"../js/vue.min.js"
></script>
<!-- 引入 Vue 和 Vant 的 JS 文件 -->
...
...
@@ -56,37 +58,6 @@
right
:
0
;
}
.mineInfo
{
padding-left
:
10px
;
}
.mineInfo
p
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.menuInfo
{
overflow
:
hidden
;
margin-top
:
28px
;
margin-left
:
10px
;
}
.menuInfo
li
{
float
:
left
;
margin-right
:
16px
;
margin-bottom
:
16px
;
width
:
100px
;
height
:
30px
;
text-align
:
center
;
line-height
:
30px
;
cursor
:
pointer
;
background-image
:
url('./static/detail/menuBtnBg.png')
;
background-size
:
cover
;
}
.menuInfo
li
:hover
{
background-color
:
#084291
;
}
.menuInfo
li
.active
{
background-color
:
#084291
;
}
</style>
</head>
...
...
@@ -95,13 +66,6 @@
<div
class=
"fixed wp100 hv100"
style=
"background-color: #000000;left: 0;top: 0;z-index: 1999;"
v-show=
"!isReady"
></div>
<!-- title -->
<!--<div style="height: 80px;">
<div class="flex-text color-theme f30 wp100 relative maxIndex fixed"
style="height: 80px;background-image: url('../static/title-bg.png');background-size: 100% 100%;">
<div style="margin-top: -10px;">{{selectedMine.name || ''}}</div>
</div>
</div>-->
<div
style=
"height: 80px;"
>
<div
class=
"flex-text color-theme f30 wp100 relative maxIndex fixed"
style=
"height: 80px;"
>
<div
class=
"flex-1"
...
...
@@ -122,36 +86,21 @@
<div
class=
"f20 color-theme ml10"
>
返回
</div>
</div>
<div
class=
"fixed flex-text maxIndex pointer"
style=
"right: 30px;top: 45px;"
@
click=
"gotoManagement()"
>
<img
style=
"width: 24px;height: 24px;"
src=
"../static/backstage.png"
alt=
""
>
<div
class=
"f20 color-theme ml10"
>
后台管理
</div>
</div>
<div
class=
"flex-text ml10 mr10 mt15"
>
<div
style=
"width: 490px;height: calc(100vh - 110px);"
>
<!-- 通知公告 -->
<div
style=
"background: linear-gradient(to bottom, rgba(13,27,48,.7), rgba(13,27,48,0));"
>
<!-- <div class="h50 flex-text pointer"
style="background: linear-gradient(to bottom, rgba(171,238,255,0), rgba(171,238,255,.2));border-bottom: 1px solid rgba(171,238,255,.5);">
<div class="flex-1" v-if="isReady">
<van-notice-bar background="none" left-icon="volume-o" color="#ffffff" :speed="80"
:text="notice.title" @click="noticeMask = true" />
</div>
</div> -->
<div
class=
"mineInfo"
>
<p>
矿山名称:
淄博红圈石料厂
</p>
<p>
矿山地
质:谁看得见风离开世界的副卡时刻记得发
</p>
<p>
联系人:
开始对
</p>
<p>
联系方式:
xxx
</p>
<p>
矿山名称:
{{selectedMine.name}}
</p>
<p>
矿山地
址:{{selectedMine.address}}
</p>
<p>
联系人:
{{selectedMine.liablePerson}}
</p>
<p>
联系方式:
{{selectedMine.liablePersonPhone}}
</p>
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
</li>
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -192,31 +141,6 @@
style=
"width:100%;height:100%;background-color: #000000;margin:0 auto;"
>
<div
class=
"EZUIKit-video"
id=
"video-container"
style=
"height:100%;"
></div>
<!--
<div class="buttons-box" id="buttonsBox">
<div class="buttons-box-left">
<i v-if="!playing" class="iconfont icon-play jessibuca-btn"
@click="playBtnClick"></i>
<i v-if="playing" class="iconfont icon-pause jessibuca-btn" @click="pause"></i>
<i class="iconfont icon-stop jessibuca-btn" @click="destroy"></i>
<i v-if="isNotMute" class="iconfont icon-audio-high jessibuca-btn"
@click="mute()"></i>
<i v-if="!isNotMute" class="iconfont icon-audio-mute jessibuca-btn"
@click="cancelMute()"></i>
</div>
<div class="buttons-box-right">
<span class="jessibuca-btn">{{ kBps }} kb/s</span>
<i class="iconfont icon-camera1196054easyiconnet jessibuca-btn" @click="screenshot"
style="font-size: 1rem !important"></i>
<i class="iconfont icon-shuaxin11 jessibuca-btn" @click="playBtnClick"></i>
<i v-if="!fullscreen" class="iconfont icon-weibiaoti10 jessibuca-btn"
@click="fullscreenSwich"></i>
<i v-if="fullscreen" class="iconfont icon-weibiaoti11 jessibuca-btn"
@click="fullscreenSwich"></i>
</div>
</div>
-->
</div>
<!-- video end -->
</div>
...
...
@@ -283,55 +207,7 @@
</div>
</div>
</div>
<!-- 图片 mask -->
<div
class=
"fixed wp100 hv100 flex-text maxIndex"
style=
"left: 0;top: 0;background-color: rgba(0,0,0,1);"
v-if=
"imageMaskUrl"
>
<div
class=
""
style=
"width: 1200px;max-height: 100vh;overflow-y: auto;"
>
<img
class=
"wp100"
:src=
"imageMaskUrl"
alt=
""
>
</div>
<img
class=
"absolute pointer"
style=
"width: 35px;height: 35px;top: 30px;right: 30px;"
src=
"../static/close-icon.png"
alt=
""
@
click=
"imageMaskUrl = ''"
>
</div>
<!-- 公告弹窗 -->
<div
class=
"fixed maxIndex wp100 hv100 flex-text"
style=
"left: 0;top: 0;"
v-if=
"noticeMask && isReady"
>
<div
class=
"bg-mask relative"
style=
"border-radius: 10px;width: 1200px;height: 55vh;padding: 30px;"
>
<div
class=
"flex align-center space-between"
>
<div></div>
<img
class=
"pointer mr10"
style=
"width: 35px;height: 35px;"
src=
"../static/close-icon.png"
alt=
""
@
click=
"noticeMask = false"
>
</div>
<div
class=
"absolute"
style=
"line-height: 1.6;max-height: calc(100% - 125px);overflow-y: auto;margin-top: 30px;width: calc(100% - 80px);"
>
<div
class=
"flex align-start f18"
>
<div
class=
"text-right color-theme"
style=
"width: 10%;"
>
标题:
</div>
<div
class=
"flex-1 ml20"
style=
"margin-right: 100px;"
>
{{ notice.title }}
</div>
</div>
<div
class=
"flex align-start f18 mt20"
>
<div
class=
"text-right color-theme"
style=
"width: 10%;"
>
类型:
</div>
<div
class=
"flex-1 ml20"
style=
"margin-right: 100px;"
>
{{ notice.type }}
</div>
</div>
<div
class=
"flex align-start f18 mt20"
>
<div
class=
"text-right color-theme"
style=
"width: 10%;"
>
描述:
</div>
<div
class=
"flex-1 ml20"
style=
"margin-right: 100px;"
>
{{ notice.desc }}
</div>
</div>
<div
class=
"flex align-start f18 mt20"
>
<div
class=
"text-right color-theme"
style=
"width: 10%;"
>
通知矿山:
</div>
<div
class=
"flex-1 ml20"
style=
"margin-right: 100px;"
>
{{ notice.mine }}
</div>
</div>
<div
class=
"flex align-start f18 mt20"
>
<div
class=
"text-right color-theme"
style=
"width: 10%;"
>
附件:
</div>
<div
class=
"flex-1 ml20"
style=
"margin-right: 100px;"
>
<a
class=
"color-white"
:href=
"notice.annexLink"
target=
"_blank"
>
{{ notice.annexName
}}
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
...
...
@@ -340,24 +216,17 @@
<script
src=
"../js/echarts-gl.js"
></script>
<!-- 引入组件库 -->
<script
src=
"../js/element-ui.js"
></script>
<!-- 引入高德js -->
<script
src=
"../js/maps.js"
></script>
<script
src=
"../js/loca.js"
></script>
<script
src=
"../js/es5.min.js"
></script>
<script
src=
"../js/maps-MouseTool.js"
></script>
<!-- axios -->
<script
src=
"../js/axios.min.js"
></script>
<!-- cookie -->
<script
src=
"../js/js.cookie.js"
></script>
<!-- <script type="text/javascript" src="../static/js/jessibuca/jessibuca.js"></script>
<script type="text/javascript" src="../static/js/EasyWasmPlayer.js"></script>
<script type="text/javascript" src="../static/js/liveplayer-lib.min.js"></script>
<script type="text/javascript" src="../static/js/ZLMRTCClient.js"></script> -->
<script
type=
"text/javascript"
src=
"../static/ezuikit-js/ezuikit.js"
></script>
<script
type=
"text/javascript"
src=
"../static/js/config.js"
></script>
<!-- 详情内页公用js -->
<script
src=
"./static/js/public-detail.js"
></script>
<script>
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
...
...
@@ -395,9 +264,9 @@
}
);
const
host
=
location
.
protocol
+
'
//
'
+
(
location
.
hostname
===
'
192.168.3.
226
'
?
'
192.168.3.37
'
:
'
192.168.13.200
'
)
+
'
:8013
'
;
const
host
=
location
.
protocol
+
'
//
'
+
(
location
.
hostname
===
'
192.168.3.
38
'
?
'
192.168.3.37
'
:
'
192.168.13.200
'
)
+
'
:8013
'
;
const
selfHost
=
location
.
hostname
===
'
192.168.3.226
'
?
'
http://192.168.3.
226
:8057
'
:
location
.
protocol
+
'
//
'
+
window
.
location
.
host
;
const
selfHost
=
location
.
hostname
===
'
192.168.3.226
'
?
'
http://192.168.3.
38
:8057
'
:
location
.
protocol
+
'
//
'
+
window
.
location
.
host
;
// 请求 token 用
...
...
@@ -407,9 +276,9 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
bigScreenDetailMenu
:
''
,
// video
aiWarnCount
:
0
,
videoUrl
:
null
,
...
...
@@ -431,19 +300,7 @@
vod
:
true
,
// 点播
forceNoOffscreen
:
false
,
// video end
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 公告信息
notice
:
{
title
:
'
【应急公告】通知各矿山,10点之前停止应急作业,通知各矿山,10点之前停止应急作业,通知各矿山,10点之前停止应急作业!
'
,
type
:
'
应急公告
'
,
desc
:
'
由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!由于气象原因,通知各矿山,10点之前停止应急作业。开放时间另行通知!
'
,
mine
:
'
所有矿山
'
,
annexName
:
'
无
'
},
noticeMask
:
false
,
// 视频监控列表
// 视频监控
videos
:
[
...
...
@@ -514,11 +371,6 @@
});
},
methods
:
{
changeMenu
(
menuName
){
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
createVideo
:
function
(
item
){
this
.
getAccessToken
(
this
.
info
.
appKey
,
this
.
info
.
appSecret
).
then
(
accessToken
=>
{
var
url
=
this
.
getUrl
(
item
);
...
...
public/datav/detail/water-monitor.html
View file @
c862ab59
...
...
@@ -59,13 +59,8 @@
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -149,6 +144,8 @@
<script
src=
"../js/axios.min.js"
></script>
<!-- cookie -->
<script
src=
"../js/js.cookie.js"
></script>
<!-- 详情内页公用js -->
<script
src=
"./static/js/public-detail.js"
></script>
<script>
let
jessibucaPlayer
=
{};
...
...
@@ -199,24 +196,14 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
// 公共信息
selectedMine
:
{},
// 菜单折叠显隐
showMenu4bianpo
:
true
,
sensorLIst
:
[],
currentSensorId
:
''
,
showMenu4weikuangku
:
true
,
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
// 菜单折叠显隐 - 结束
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
bigScreenDetailMenu
:
''
,
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 表格数据
tableList
:
[]
}
...
...
@@ -437,21 +424,6 @@
loading
&&
loading
.
close
();
this
.
isReady
=
true
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
menuChange
(
type
)
{
[
'
showMenu4bianpo
'
,
'
showMenu4weikuangku
'
,
'
showMenu4chenjiang
'
,
'
showMenu4diya
'
].
forEach
((
item
)
=>
{
if
(
item
===
type
)
{
this
[
type
]
=
!
this
[
type
]
}
else
{
this
[
item
]
=
false
}
})
},
async
getData
(
e
)
{
var
loading
if
(
!
e
)
{
...
...
@@ -568,11 +540,7 @@
this
.
isReady
=
true
},
800
);
}
},
})
</script>
...
...
public/datav/detail/wind-monitor.html
View file @
c862ab59
...
...
@@ -49,11 +49,6 @@
<div
class=
"f20 color-theme ml10"
>
返回
</div>
</div>
<div
class=
"fixed flex-text maxIndex pointer"
style=
"right: 30px;top: 45px;"
@
click=
"gotoManagement()"
>
<img
style=
"width: 24px;height: 24px;"
src=
"../static/backstage.png"
alt=
""
>
<div
class=
"f20 color-theme ml10"
>
后台管理
</div>
</div>
<div
class=
"flex-text ml10 mr10 mt15"
>
<div
style=
"width: 490px;height: calc(100vh - 110px);"
>
<div
style=
"background: linear-gradient(to bottom, rgba(13,27,48,.7), rgba(13,27,48,0));"
>
...
...
@@ -66,13 +61,8 @@
</div>
<div
class=
"menuInfo"
>
<ul>
<li
@
click=
"changeMenu('video')"
:class=
"{active: bigScreenDetailMenu==='video'}"
>
视频监控
</li>
<li
@
click=
"changeMenu('shape')"
:class=
"{active: bigScreenDetailMenu==='shape'}"
>
变形监测
</li>
<li
@
click=
"changeMenu('temprate')"
:class=
"{active: bigScreenDetailMenu==='temprate'}"
>
温度监测
</li>
<li
@
click=
"changeMenu('wind')"
:class=
"{active: bigScreenDetailMenu==='wind'}"
>
风速监测
</li>
<li
@
click=
"changeMenu('water')"
:class=
"{active: bigScreenDetailMenu==='water'}"
>
降水监测
</li>
<li
@
click=
"changeMenu('people')"
:class=
"{active: bigScreenDetailMenu==='people'}"
>
人员定位
<li
v-for=
"(item, index) in menuObj.emergency.menuList"
@
click=
"changeMenu(item)"
:class=
"{active: bigScreenDetailMenu===item.name}"
>
{{item.name}}
</li>
</ul>
</div>
...
...
@@ -142,7 +132,7 @@
<script
src=
"../js/js.cookie.js"
></script>
<!-- 详情内页公用js -->
<
!-- <script src="./static/js/public-detail.js"></script> --
>
<
script
src=
"./static/js/public-detail.js"
></script
>
<script>
let
jessibucaPlayer
=
{};
//const host = location.protocol + '//' + window.location.host;
...
...
@@ -191,23 +181,13 @@
var
map
;
// 地图
new
Vue
({
el
:
'
#app
'
,
mixins
:
[
gemhoUtil
.
detailPageMixin
],
data
()
{
return
{
// 公共信息
selectedMine
:
{},
// 菜单折叠显隐
showMenu4bianpo
:
true
,
sensorLIst
:
[],
currentSensorId
:
''
,
showMenu4weikuangku
:
true
,
showMenu4chenjiang
:
true
,
showMenu4diya
:
true
,
// 菜单折叠显隐 - 结束
createTime
:
[
'
2024-01-01
'
,
'
2024-09-30
'
],
bigScreenDetailMenu
:
''
,
selectedMine
:
{},
isReady
:
false
,
// 页面是否准备好 请求完接口变为true
// 表格数据
tableList
:
[]
...
...
@@ -241,6 +221,8 @@
});
this
.
getTableList
();
console
.
log
(
'
menuList
'
,
menuList
)
// this.getChartsData();
},
...
...
@@ -283,16 +265,6 @@
console
.
log
(
'
sdfsdf
'
,
res
)
});
},
menuChange
(
type
)
{
[
'
showMenu4bianpo
'
,
'
showMenu4weikuangku
'
,
'
showMenu4chenjiang
'
,
'
showMenu4diya
'
].
forEach
((
item
)
=>
{
if
(
item
===
type
)
{
this
[
type
]
=
!
this
[
type
]
}
else
{
this
[
item
]
=
false
}
})
},
getChartsData
()
{
const
yAxisOption
=
{
...
...
@@ -397,25 +369,6 @@
loading
&&
loading
.
close
();
this
.
isReady
=
true
},
changeMenu
(
menuName
)
{
localStorage
.
setItem
(
'
bigScreenDetailMenu
'
,
menuName
)
this
.
bigScreenDetailMenu
=
menuName
},
getAccessToken
(
appKey
,
appSecret
)
{
var
dataJson
=
'
appKey=
'
+
appKey
+
'
&appSecret=
'
+
appSecret
;
return
request
.
post
(
"
/ys7com
"
,
dataJson
).
then
(
res
=>
{
var
data
=
res
.
data
||
{};
if
(
data
[
'
code
'
]
==
'
200
'
)
{
return
data
[
'
data
'
][
'
accessToken
'
]
}
else
{
return
null
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
return
err
})
},
},
})
</script>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment