Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
V
V3-TailingPond
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
xinzhedeai
V3-TailingPond
Commits
4dc1e2eb
Commit
4dc1e2eb
authored
Jun 07, 2025
by
lei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:普通用户不可以解除警报、浸润线的tootip非共享显示
parent
b58506ca
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
2726 additions
and
1639 deletions
+2726
-1639
chartTemplates.js
src/assets/js/chartTemplates.js
+218
-212
MainNavbar.vue
src/layout/components/MainNavbar.vue
+230
-153
index.vue
src/views/Screen/index.vue
+1839
-946
login.vue
src/views/system/user/login.vue
+353
-242
vue.config.js
vue.config.js
+86
-86
No files found.
src/assets/js/chartTemplates.js
View file @
4dc1e2eb
This diff is collapsed.
Click to expand it.
src/layout/components/MainNavbar.vue
View file @
4dc1e2eb
<
template
>
<
template
>
<div
class=
"mian-navbar"
>
<div
class=
"mian-navbar"
>
<div
class=
"title-ctn"
>
<div
class=
"title-ctn"
>
<h2
v-if=
"!!pondName"
>
{{
pondName
}}
<!-- 安全监测系统 -->
</h2>
<h2
v-if=
"!!pondName"
>
{{
pondName
}}
<!-- 安全监测系统 -->
</h2>
</div>
</div>
<div
class=
"navbar"
>
<div
class=
"navbar"
>
<div
class=
"right"
>
<div
class=
"right"
>
<div
class=
"right-menu"
>
<div
class=
"right-menu"
>
<div>
<div>
<el-tooltip
content=
"三维大屏"
v-if=
"d3_screnn"
effect=
"dark"
placement=
"bottom"
>
<el-tooltip
<a
class=
"el-icon-monitor"
href=
"/3d/index.html"
target=
"_blank"
></a>
content=
"三维大屏"
v-if=
"d3_screnn"
effect=
"dark"
placement=
"bottom"
>
<a
class=
"el-icon-monitor"
href=
"/3d/index.html"
target=
"_blank"
></a>
</el-tooltip>
</el-tooltip>
<el-tooltip
content=
"风险大屏"
v-if=
"risk_entrance"
effect=
"dark"
placement=
"bottom"
>
<el-tooltip
<a
class=
"el-icon-data-line"
href=
"/edge/ScreenFX"
target=
"_blank"
></a>
content=
"风险大屏"
v-if=
"risk_entrance"
effect=
"dark"
placement=
"bottom"
>
<a
class=
"el-icon-data-line"
href=
"/edge/ScreenFX"
target=
"_blank"
></a>
</el-tooltip>
</el-tooltip>
<el-tooltip
content=
"可视化大屏"
effect=
"dark"
placement=
"bottom"
>
<el-tooltip
content=
"可视化大屏"
effect=
"dark"
placement=
"bottom"
>
<a
class=
"el-icon-s-platform"
href=
"/edge/Screen"
target=
"_blank"
></a>
<a
class=
"el-icon-s-platform"
href=
"/edge/Screen"
target=
"_blank"
></a>
</el-tooltip>
</el-tooltip>
</div>
</div>
<!--
<template
>
<!--
<template
>
...
@@ -25,10 +50,20 @@
...
@@ -25,10 +50,20 @@
</
template
>
-->
</
template
>
-->
</div>
</div>
<div
class=
"navbar-line"
>
<div
class=
"navbar-line"
>
<el-dropdown
class=
"avatar-container right-menu-item hover-effect"
trigger=
"click"
>
<el-dropdown
class=
"avatar-container right-menu-item hover-effect"
trigger=
"click"
>
<div
class=
"avatar-wrapper el-icon-caret-bottom"
>
<div
class=
"avatar-wrapper el-icon-caret-bottom"
>
<img
:src=
"user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar"
class=
"user-avatar"
>
<img
<span>
{{user.nickName}}
</span>
:src=
"
user.avatarName
? baseApi + '/avatar/' + user.avatarName
: Avatar
"
class=
"user-avatar"
/>
<span>
{{ user.nickName }}
</span>
</div>
</div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<!-- <span style="display:block;" @click="show = true">
<!-- <span style="display:block;" @click="show = true">
...
@@ -55,40 +90,38 @@
...
@@ -55,40 +90,38 @@
</template>
</template>
<
script
>
<
script
>
import
{
mapGetters
}
from
'
vuex
'
import
{
mapGetters
}
from
"
vuex
"
;
//import Screenfull from '@/components/Screenfull'
//import Screenfull from '@/components/Screenfull'
import
{
reqApi
}
from
'
@/assets/js/httpApi.js
'
;
import
{
reqApi
}
from
"
@/assets/js/httpApi.js
"
;
export
default
{
export
default
{
//components: {Screenfull},
//components: {Screenfull},
data
()
{
data
()
{
return
{
return
{
dialogVisible
:
false
,
dialogVisible
:
false
,
pondName
:
''
,
pondName
:
""
,
risk_entrance
:
0
,
risk_entrance
:
0
,
d3_screnn
:
1
,
d3_screnn
:
1
}
};
},
},
computed
:
{
computed
:
{
...
mapGetters
([
...
mapGetters
([
"
user
"
,
"
baseApi
"
,
"
device
"
]),
'
user
'
,
'
baseApi
'
,
'
device
'
,
]),
show
:
{
show
:
{
get
()
{
get
()
{
return
this
.
$store
.
state
.
settings
.
showSettings
return
this
.
$store
.
state
.
settings
.
showSettings
;
},
},
set
(
val
)
{
set
(
val
)
{
this
.
$store
.
dispatch
(
'
settings/changeSetting
'
,
{
this
.
$store
.
dispatch
(
"
settings/changeSetting
"
,
{
key
:
'
showSettings
'
,
key
:
"
showSettings
"
,
value
:
val
value
:
val
})
});
}
}
}
}
},
},
created
()
{
created
()
{
var
self
=
this
;
var
self
=
this
;
reqApi
.
common
.
requstEdge
(
'
get
'
,
'
tab/tailpondinfor/dryinfo
'
,
{}).
then
(
function
(
res
){
reqApi
.
common
.
requstEdge
(
"
get
"
,
"
tab/tailpondinfor/dryinfo
"
,
{})
.
then
(
function
(
res
)
{
var
body
=
res
.
body
||
{};
var
body
=
res
.
body
||
{};
var
tailingname
=
body
.
tailingname
;
var
tailingname
=
body
.
tailingname
;
//self.pondName = tailingname.indexOf('尾矿库') > -1 ? tailingname : (tailingname||'') + '尾矿库';
//self.pondName = tailingname.indexOf('尾矿库') > -1 ? tailingname : (tailingname||'') + '尾矿库';
...
@@ -102,70 +135,115 @@ export default {
...
@@ -102,70 +135,115 @@ export default {
},
},
methods
:
{
methods
:
{
open
()
{
open
()
{
this
.
$confirm
(
'
确定注销并退出系统吗?
'
,
'
提示
'
,
{
this
.
$confirm
(
"
确定注销并退出系统吗?
"
,
"
提示
"
,
{
confirmButtonText
:
'
确定
'
,
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
'
取消
'
,
cancelButtonText
:
"
取消
"
,
type
:
'
warning
'
type
:
"
warning
"
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
logout
()
this
.
logout
();
})
});
},
},
logout
()
{
logout
()
{
this
.
$store
.
dispatch
(
'
LogOut
'
).
then
(()
=>
{
this
.
$store
.
dispatch
(
"
LogOut
"
).
then
(()
=>
{
location
.
reload
()
location
.
reload
();
})
});
}
}
}
}
}
}
;
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.mian-navbar
{
.mian-navbar
{
position
:relative
;
height
:
.65rem
;
width
:
100%
;
line-height
:
.65rem
;
position
:
relative
;
background-image
:linear-gradient
(
to
right
,
#071C6B
,
#0C5AAF
,
#138FE7
)
;
height
:
0
.65rem
;
display
:flex
;
width
:
100%
;
line-height
:
0
.65rem
;
background-image
:
linear-gradient
(
to
right
,
#071c6b
,
#0c5aaf
,
#138fe7
);
display
:
flex
;
.title-ctn
{
.title-ctn
{
height
:
100%
;
display
:flex
;
align-items
:center
;
margin-left
:
1
.093vw
;
height
:
100%
;
h2
{
display
:
flex
;
font-size
:
.29rem
;
background-image
:
-webkit-linear-gradient
(
top
,
white
,
white
,
#b5cbfa
);
align-items
:
center
;
-webkit-background-clip
:text
;
margin-left
:
1
.093vw
;
-webkit-text-fill-color
:transparent
;
h2
{
font-size
:
0
.29rem
;
background-image
:
-webkit-linear-gradient
(
top
,
white
,
white
,
#b5cbfa
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
}
}
}
.navbar
{
.navbar
{
flex
:
1
;
height
:
100%
;
flex
:
1
;
background
:no-repeat
left
bottom
url
(
'~@/assets/images/layout/title_3.png'
)
;
height
:
100%
;
background-size
:
100%
auto
;
background
:
no-repeat
left
bottom
url("~@/assets/images/layout/title_3.png")
;
background-size
:
100%
auto
;
.right
{
.right
{
display
:flex
;
align-items
:center
;
justify-content
:flex-end
;
user-select
:none
;
cursor
:normal
;
display
:
flex
;
position
:absolute
;
top
:
0
;
right
:
1
.2vw
;
height
:
100%
;
align-items
:
center
;
&
>
div
{
justify-content
:
flex-end
;
display
:flex
;
align-items
:center
;
user-select
:
none
;
a
{
font-size
:
24px
;
margin-right
:
.10rem
;}
cursor
:
normal
;
position
:
absolute
;
top
:
0
;
right
:
1
.2vw
;
height
:
100%
;
&
>
div
{
display
:
flex
;
align-items
:
center
;
a
{
font-size
:
24px
;
margin-right
:
0
.1rem
;
}
}
}
}
}
.avatar-wrapper
{
.avatar-wrapper
{
&
:before
{
position
:absolute
;
right
:
0
;
height
:auto
;
width
:
12px
;}
&
:before
{
position
:
absolute
;
right
:
0
;
height
:
auto
;
width
:
12px
;
}
position
:relative
;
display
:flex
;
align-items
:center
;
padding-right
:
15px
;
color
:
#51dbff
;
font-size
:
13px
;
position
:
relative
;
img
{
height
:
26px
;
width
:
26px
;
border-radius
:
4px
;
margin-right
:
4px
;
border
:
0
;}
display
:
flex
;
span
{
display
:block
;
max-width
:
55px
;
overflow
:hidden
;
white-space
:nowrap
;
text-overflow
:ellipsis
;
word-wrap
:normal
;}
align-items
:
center
;
padding-right
:
15px
;
color
:
#51dbff
;
font-size
:
13px
;
img
{
height
:
26px
;
width
:
26px
;
border-radius
:
4px
;
margin-right
:
4px
;
border
:
0
;
}
span
{
display
:
block
;
max-width
:
55px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
word-wrap
:
normal
;
}
}
}
&
:focus
{
&
:focus
{
outline
:
none
;
outline
:
none
;
}
}
.right-menu
{
.right-menu
{
flex
:
1
;
color
:
#ADCBBC
;
margin-right
:
.20rem
;
flex
:
1
;
&
>
div
:last-child
{
color
:
#adcbbc
;
display
:flex
;
margin-left
:
10px
;
margin-right
:
0
.2rem
;
&
:not
(
rect
)
{
&
>
div
:last-child
{
font-size
:
18px
;
display
:
flex
;
margin-left
:
10px
;
&
:not
(
rect
)
{
font-size
:
18px
;
}
}
}
}
}
}
...
@@ -175,6 +253,5 @@ export default {
...
@@ -175,6 +253,5 @@ export default {
display
:
inline-block
;
display
:
inline-block
;
vertical-align
:
top
;
vertical-align
:
top
;
}
}
}
}
</
style
>
</
style
>
src/views/Screen/index.vue
View file @
4dc1e2eb
This diff is collapsed.
Click to expand it.
src/views/system/user/login.vue
View file @
4dc1e2eb
This diff is collapsed.
Click to expand it.
vue.config.js
View file @
4dc1e2eb
...
@@ -5,7 +5,7 @@ const Mode = 'src'; // 'src' 'src-neuter'(中性)
...
@@ -5,7 +5,7 @@ const Mode = 'src'; // 'src' 'src-neuter'(中性)
// copy-webpack-plugin@4.5.2
// copy-webpack-plugin@4.5.2
const
CopyWebpackPlugin
=
require
(
'
copy-webpack-plugin
'
);
const
CopyWebpackPlugin
=
require
(
'
copy-webpack-plugin
'
);
//var HtmlWebpackPlugin = require('html-webpack-plugin');
//var HtmlWebpackPlugin = require('html-webpack-plugin');
const
defaultSettings
=
require
(
'
./
'
+
Mode
+
'
/settings.js
'
);
const
defaultSettings
=
require
(
'
./
'
+
Mode
+
'
/settings.js
'
);
function
resolve
(
dir
)
{
function
resolve
(
dir
)
{
return
path
.
join
(
__dirname
,
dir
)
return
path
.
join
(
__dirname
,
dir
)
...
@@ -26,10 +26,10 @@ module.exports = {
...
@@ -26,10 +26,10 @@ module.exports = {
productionSourceMap
:
false
,
productionSourceMap
:
false
,
//indexPath: 'index3.html',
//indexPath: 'index3.html',
//integrity:true,
//integrity:true,
lintOnSave
:
false
,
// 关闭代码核查
lintOnSave
:
false
,
// 关闭代码核查
pages
:{
pages
:
{
index
:
{
index
:
{
entry
:
Mode
+
'
/main.js
'
,
entry
:
Mode
+
'
/main.js
'
,
// 模板来源
// 模板来源
template
:
'
./public/index.html
'
,
template
:
'
./public/index.html
'
,
// 在 dist/index.html 的输出
// 在 dist/index.html 的输出
...
@@ -45,17 +45,17 @@ module.exports = {
...
@@ -45,17 +45,17 @@ module.exports = {
},
},
edge
:
{
edge
:
{
// 页面的入口文件
// 页面的入口文件
entry
:
Mode
+
'
/edge.js
'
,
entry
:
Mode
+
'
/edge.js
'
,
// 页面的模板文件
// 页面的模板文件
template
:
'
./public/edge.html
'
,
template
:
'
./public/edge.html
'
,
// build 生成的文件名称 例: dist/index.html
// build 生成的文件名称 例: dist/index.html
filename
:
'
edge.html
'
,
filename
:
'
edge.html
'
,
chunks
:[
"
edge
"
,
"
runtime
"
,
"
chunk-libs
"
,
"
chunk-elementUI
"
],
chunks
:
[
"
edge
"
,
"
runtime
"
,
"
chunk-libs
"
,
"
chunk-elementUI
"
],
}
}
},
},
devServer
:
{
devServer
:
{
port
:
port
,
port
:
port
,
host
:
VUE_APP_BASE_API
&&
VUE_APP_BASE_API
.
split
(
/
\/\/
|:/
).
slice
(
-
2
)[
0
]
,
host
:
''
,
open
:
false
,
open
:
false
,
overlay
:
{
overlay
:
{
warnings
:
false
,
warnings
:
false
,
...
@@ -109,8 +109,8 @@ module.exports = {
...
@@ -109,8 +109,8 @@ module.exports = {
name
:
name
,
name
:
name
,
resolve
:
{
resolve
:
{
alias
:
{
alias
:
{
'
@
'
:
resolve
(
Mode
+
''
),
'
@
'
:
resolve
(
Mode
+
''
),
'
@crud
'
:
resolve
(
Mode
+
'
/components/Crud
'
)
'
@crud
'
:
resolve
(
Mode
+
'
/components/Crud
'
)
}
}
}
}
},
},
...
@@ -121,12 +121,12 @@ module.exports = {
...
@@ -121,12 +121,12 @@ module.exports = {
// set svg-sprite-loader
// set svg-sprite-loader
config
.
module
config
.
module
.
rule
(
'
svg
'
)
.
rule
(
'
svg
'
)
.
exclude
.
add
(
resolve
(
Mode
+
'
/assets/icons
'
))
.
exclude
.
add
(
resolve
(
Mode
+
'
/assets/icons
'
))
.
end
()
.
end
()
config
.
module
config
.
module
.
rule
(
'
icons
'
)
.
rule
(
'
icons
'
)
.
test
(
/
\.
svg$/
)
.
test
(
/
\.
svg$/
)
.
include
.
add
(
resolve
(
Mode
+
'
/assets/icons
'
))
.
include
.
add
(
resolve
(
Mode
+
'
/assets/icons
'
))
.
end
()
.
end
()
.
use
(
'
svg-sprite-loader
'
)
.
use
(
'
svg-sprite-loader
'
)
.
loader
(
'
svg-sprite-loader
'
)
.
loader
(
'
svg-sprite-loader
'
)
...
@@ -180,7 +180,7 @@ module.exports = {
...
@@ -180,7 +180,7 @@ module.exports = {
},
},
commons
:
{
commons
:
{
name
:
'
chunk-commons
'
,
name
:
'
chunk-commons
'
,
test
:
resolve
(
Mode
+
'
/components
'
),
// can customize your rules
test
:
resolve
(
Mode
+
'
/components
'
),
// can customize your rules
minChunks
:
3
,
// minimum common number
minChunks
:
3
,
// minimum common number
priority
:
5
,
priority
:
5
,
reuseExistingChunk
:
true
reuseExistingChunk
:
true
...
...
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