Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
0b229e43
Commit
0b229e43
authored
May 30, 2023
by
ww-xxy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加模型
parent
1e4521b1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
90 additions
and
50 deletions
+90
-50
device-manager-ui/admin/package.json
device-manager-ui/admin/package.json
+3
-3
device-manager-ui/admin/src/views/analysis/Analysis.vue
device-manager-ui/admin/src/views/analysis/Analysis.vue
+43
-16
device-manager-ui/admin/src/views/analysis/components/three/three.vue
...er-ui/admin/src/views/analysis/components/three/three.vue
+44
-31
device-manager-ui/admin/src/views/analysis/components/three/ycjg.png
...ger-ui/admin/src/views/analysis/components/three/ycjg.png
+0
-0
No files found.
device-manager-ui/admin/package.json
View file @
0b229e43
...
...
@@ -10,12 +10,11 @@
"build:prod"
:
"vue-cli-service build --model prod"
},
"dependencies"
:
{
"@tweenjs/tween.js"
:
"^18.6.4"
,
"three-css2drender"
:
"^1.0.0"
,
"@ampproject/remapping"
:
"^2.2.0"
,
"@chenfengyuan/vue-qrcode"
:
"^1.0.2"
,
"@jiaminghi/data-view"
:
"^2.10.0"
,
"@riophae/vue-treeselect"
:
"0.4.0"
,
"@tweenjs/tween.js"
:
"^18.6.4"
,
"@vue/babel-preset-app"
:
"^4.5.13"
,
"@xunlei/vue-context-menu"
:
"^1.0.2"
,
"axios"
:
"^0.18.0"
,
...
...
@@ -33,7 +32,7 @@
"quill"
:
"1.3.7"
,
"screenfull"
:
"5.0.2"
,
"sockjs-client"
:
"^1.5.1"
,
"three
"
:
"^0.152.2
"
,
"three
-css2drender"
:
"^1.0.0
"
,
"v-charts"
:
"^1.17.10"
,
"vue"
:
"^2.6.14"
,
"vue-amap"
:
"^0.5.10"
,
...
...
@@ -62,6 +61,7 @@
"sass-loader"
:
"^7.1.0"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"svg-sprite-loader"
:
"5.1.1"
,
"three"
:
"^0.149.0"
,
"vue-formatter"
:
"^0.0.8"
,
"vue-template-compiler"
:
"^2.6.10"
},
...
...
device-manager-ui/admin/src/views/analysis/Analysis.vue
View file @
0b229e43
...
...
@@ -62,7 +62,7 @@
</div>
</div>
<div
class=
"center"
>
<three
:floorArr=
"floorArr"
lv=
"1"
/>
<three
:floorArr=
"floorArr"
lv=
"1"
:checkItem=
"checkDeviceItem"
/>
</div>
<div
class=
"right"
>
<div
class=
"right-content"
>
...
...
@@ -184,7 +184,7 @@ export default {
waitTime
:
2000
,
},
realTimeInfo
:
{
header
:
[
"
设备名称
"
,
"
告警次数
"
,
"
告警时间
"
,
"
告警类型
"
],
header
:
[
"
设备名称
"
,
"
告警次数
"
,
"
告警时间
"
,
"
告警类型
"
,
'
设备编码
'
],
headerHeight
:
30
,
headerBGC
:
"
#3B5A9E
"
,
oddRowBGC
:
""
,
...
...
@@ -205,9 +205,12 @@ export default {
deviceFirmCollect
:
{},
// 设备厂家排名
alarmLevelCollect
:
{},
// 今日告警等级分布
deviceAlarmMapInfoList
:
[],
// 实施告警消息
Statlist
:[],
//设备列表
checkDeviceItem
:{}
//选中设备
};
},
created
()
{
this
.
getStatlist
()
this
.
getDevAlarm
();
this
.
getData
();
setTimeout
(()
=>
{
...
...
@@ -216,8 +219,10 @@ export default {
},
methods
:
{
// 点击设备
tabelRow
(
row
){
console
.
log
(
row
)
tabelRow
(
arr
){
const
{
rowIndex
}
=
arr
this
.
checkDeviceItem
=
this
.
Statlist
[
rowIndex
]
},
// 获取今日告警设备统计
getDevAlarm
()
{
...
...
@@ -247,19 +252,18 @@ export default {
this
.
siteDeviceAlarmCollect
=
siteDeviceAlarmCollect
;
this
.
alarmLevelCollect
=
alarmLevelCollect
;
this
.
deviceAlarmMapInfoList
=
deviceAlarmMapInfoList
;
if
(
deviceAlarmMapInfoList
.
length
)
{
let
arr
=
deviceAlarmMapInfoList
.
map
((
v
)
=>
{
return
[
v
.
deviceName
,
v
.
count
,
v
.
alarmTime
,
this
.
filterDevAlarmType
(
v
.
alarmType
),
];
});
//
if (deviceAlarmMapInfoList.length) {
//
let arr = deviceAlarmMapInfoList.map((v) => {
//
return [
//
v.deviceName,
//
v.count,
//
v.alarmTime,
//
this.filterDevAlarmType(v.alarmType),
//
];
//
});
this
.
realTimeInfo
=
{
...
this
.
realTimeInfo
,
data
:
arr
};
}
console
.
log
(
this
.
deviceAlarmMapInfoList
,
"
@@@@@@@@@@@
"
)
// this.realTimeInfo = { ...this.realTimeInfo, data: arr };
// }
let
{
直连设备
,
子设备
,
网关设备
}
=
deviceConnTypeCollect
;
let
{
在线
,
离线
,
缺纸
}
=
alarmTypeCollect
;
let
firmName
=
Object
.
keys
(
deviceFirmCollect
).
map
((
key
)
=>
key
);
...
...
@@ -286,6 +290,29 @@ export default {
}
);
},
// 查询单个异常设备
getStatlist
(){
this
.
$post
(
"
/device/alarm/info/statlist
"
,
{
siteId
:
this
.
siteId
}).
then
(
res
=>
{
console
.
log
(
res
,
"
@@@@@
"
)
const
{
code
,
data
}
=
res
if
(
code
==
1
){
this
.
Statlist
=
data
||
[]
if
(
data
.
length
)
{
let
arr
=
data
.
map
((
v
)
=>
{
return
[
v
.
device
.
deviceName
,
v
.
todayAlarmDeviceCount
,
this
.
$moment
(
v
.
alarmTime
).
format
(
'
YYYY-MM-DD HH:mm
'
),
v
.
alarmTypeStr
,
v
.
device
.
deviceCode
];
});
this
.
realTimeInfo
=
{
...
this
.
realTimeInfo
,
data
:
arr
};
}
}
})
},
// 获取设备类型分布图标
getDevTypeDisEchart
(
direct
,
subset
,
network
)
{
let
chartDom
=
document
.
getElementById
(
"
devTypeDis
"
);
...
...
device-manager-ui/admin/src/views/analysis/components/three/three.vue
View file @
0b229e43
...
...
@@ -8,11 +8,18 @@
<div
class=
"marke-win"
>
{{
checkWind
.
window_name
}}
-
{{
checkWind
.
window_fromnum
}}
</div>
<div
class=
"marke-box"
>
<div
class=
"marke-box-c"
>
<p>
设备编码:1565155
</p>
<p>
MAC地址:70:70:70:70:70:705
</p>
<p>
设备位置:1楼医保大厅
</p>
<p>
负责人:刘德华
</p>
<p>
联系电话:13088088888
</p>
<p
class=
"b"
>
所在部门:
{{
checkWind
.
section_name
}}
</p>
<p
class=
"y"
>
办理业务:
<span
v-for=
"(itemm, index) in checkWind.business"
:key=
"index"
style=
"padding-right:5px"
>
{{
itemm
}}
</span></p>
</div>
<div
class=
"ant-popover-arrow"
></div>
<div
class=
"ant-popover-arrow"
>
<img
src=
"./ycjg.png"
alt=
""
>
</div>
</div>
</div>
...
...
@@ -101,7 +108,7 @@ class PositionGUI {
}
let
bmMark
=
[]
//dom节点
export
default
{
props
:
[
'
lv
'
,
'
floorArr
'
,
'
winMarkeList
'
,
'
bm
'
],
props
:
[
'
lv
'
,
'
floorArr
'
,
'
winMarkeList
'
,
'
bm
'
,
'
checkItem
'
],
//checkItem选中窗口
data
()
{
return
{
bmkb
,
//便民看板
...
...
@@ -114,6 +121,25 @@ export default {
}
},
watch
:
{
checkItem
:{
handler
:
function
(
str
)
{
let
winName
=
str
.
device
.
deviceCode
// Tips.visible = true
console
.
log
(
keyobj
,
winName
)
if
(
keyobj
[
winName
])
{
const
{
x
,
y
,
z
}
=
keyobj
[
winName
].
positions
Tips
.
position
.
set
(
x
,
y
,
z
);
//文字地址
Tips
.
visible
=
true
// camera.position.x = x*0.5;
// camera.position.y = y*0.8;
// camera.position.z = z;
}
else
{
Tips
.
visible
=
false
this
.
_initCamera
()
}
},
deep
:
true
},
bm
:
{
handler
:
function
(
str
)
{
// 保存节点
...
...
@@ -338,7 +364,7 @@ export default {
let
css2dom
=
document
.
getElementById
(
'
alert-css2
'
)
Tips
=
new
CSS2DObject
(
css2dom
);
Tips
.
position
.
set
(
0
,
0
,
0
);
//文字地址
Tips
.
visible
=
fals
e
Tips
.
visible
=
tru
e
scene
.
add
(
Tips
);
labelRenderer
=
new
CSS2DRenderer
();
//新建CSS2DRenderer
labelRenderer
.
setSize
(
screenW
,
screenH
);
...
...
@@ -404,9 +430,9 @@ export default {
const
children
=
obj
.
scene
.
children
[
0
].
children
children
.
forEach
(
element
=>
{
let
objname
=
element
.
name
console
.
log
(
objname
,
"
#######
"
);
//
窗口
if
(
/^
\d
_/
.
test
(
objname
)
)
{
//
console.log(objname,"#######");
//
mac地址模型
if
(
objname
,
length
==
17
)
{
// 获取外部模型具体点击位置 obj模型没有位置
element
.
geometry
.
computeBoundingSphere
();
// 球体中心点
...
...
@@ -578,42 +604,36 @@ export default {
.marke {
position: absolute;
width:
314
px;
width:
200
px;
background: rgba(183, 206, 255, .9);
.marke-win {
height: 40px;
line-height: 40px;
background: #FFFFFF;
box-shadow: 0px 0px 8px 0px rgba(19, 43, 78, 0.3);
border-radius: 16px;
background: rgba(59, 90, 158, 0.76);
font-size: 20px;
font-weight: bold;
color: #
F77234
;
color: #
fff
;
padding: 0 24px;
box-sizing: border-box;
}
.marke-box {
border-radius: 16px;
margin-top: 4px;
padding: 12px 24px 0 24px;
background: #fff;
box-shadow: 0px 0px 8px 0px rgba(19, 43, 78, 0.3);
padding: 12px 12px 0 12px;
position: relative;
.marke-box-c {
position: relative;
z-index: 1;
background-color: #fff;
height: 100%;
padding-bottom: 12px;
}
p {
font-size: 1
4
px;
font-weight: bold;
color: #
F77234
;
line-height:
30px
;
font-size: 1
2
px;
//
font-weight: bold;
color: #
fff
;
line-height:
1.5
;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
...
...
@@ -630,17 +650,10 @@ export default {
.ant-popover-arrow {
position: absolute;
display: block;
width: 8.48528137px;
height: 8.48528137px;
background: transparent;
border-style: solid;
border-width: 8px;
transform: rotate(45deg);
width: 20px;
height: 20ox;
left: 50%;
transform: translateX(-50%) rotate(45deg);
bottom: -6px;
border-color: transparent #fff #fff transparent;
box-shadow: 3px 3px 7px rgb(0 0 0 / 7%);
bottom: -40px;
}
}
...
...
device-manager-ui/admin/src/views/analysis/components/three/ycjg.png
0 → 100644
View file @
0b229e43
375 Bytes
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