Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
holo-web
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
xinkong
holo-web
Commits
618c0851
Commit
618c0851
authored
Apr 29, 2024
by
ninglx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wj-data-vision 适配快捷键keycode
parent
920e6ab1
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
456 additions
and
310 deletions
+456
-310
server.js
build-tools/tool/server.js
+1
-1
vue.config.js
login/vue.config.js
+4
-13
vue.config.js
wj-data-vision-new/vue.config.js
+20
-20
vue.config.js
wj-data-vision/vue.config.js
+4
-4
vue.config.js
wj-developer/vue.config.js
+1
-12
index.js
wj-manage-web/src/router/index.js
+51
-32
trafficFlow.vue
...web/src/views/situation/floatData/msgLeft/trafficFlow.vue
+4
-0
vue.config.js
wj-manage-web/vue.config.js
+6
-55
index.html
wj-smartcity/public/index.html
+6
-0
App.vue
wj-smartcity/src/App.vue
+2
-1
bottomCartHead.png
wj-smartcity/src/assets/images/holo/bottomCartHead.png
+0
-0
black-10.svg
wj-smartcity/src/assets/images/planMange/arrow/black-10.svg
+1
-1
black-7.svg
wj-smartcity/src/assets/images/planMange/arrow/black-7.svg
+1
-1
black-9.svg
wj-smartcity/src/assets/images/planMange/arrow/black-9.svg
+1
-1
white-10.svg
wj-smartcity/src/assets/images/planMange/arrow/white-10.svg
+1
-1
white-7.svg
wj-smartcity/src/assets/images/planMange/arrow/white-7.svg
+1
-1
white-9.svg
wj-smartcity/src/assets/images/planMange/arrow/white-9.svg
+1
-1
elementTable.less
wj-smartcity/src/assets/less/elementTable.less
+5
-2
signalEvaluation.js
wj-smartcity/src/common/api/signalEvaluation.js
+8
-0
utils.js
wj-smartcity/src/common/js/utils.js
+74
-14
loopVideo.vue
wj-smartcity/src/components/Standard/loopVideo.vue
+0
-1
msg-card.vue
wj-smartcity/src/components/Standard/msg-card.vue
+6
-5
simple-card.vue
wj-smartcity/src/components/Standard/simple-card.vue
+1
-1
coordInfoDialog.vue
wj-smartcity/src/components/dialog/coordInfoDialog.vue
+1
-1
routes.js
wj-smartcity/src/config/routes.js
+2
-2
index.js
wj-smartcity/src/directive/index.js
+41
-0
main.js
wj-smartcity/src/main.js
+1
-0
mapboxTools.js
wj-smartcity/src/utils/mapboxTools.js
+12
-10
tools.js
wj-smartcity/src/utils/tools.js
+4
-0
index.vue
wj-smartcity/src/views/more/index.vue
+0
-15
crossDistance.vue
...city/src/views/signal/dialogs/greenWave/crossDistance.vue
+22
-4
index.vue
wj-smartcity/src/views/signal/index.vue
+1
-1
trunkLine.vue
wj-smartcity/src/views/signal/msgs/left/trunkLine.vue
+3
-2
cross.vue
wj-smartcity/src/views/signal/msgs/right/cross.vue
+170
-108
No files found.
build-tools/tool/server.js
View file @
618c0851
...
...
@@ -67,4 +67,4 @@ Object.keys(systemMap).forEach((item) => {
app
.
listen
(
port
||
3000
);
open
(
`http://localhost:
${
port
||
3000
}
`
);
//
open(`http://localhost:${port || 3000}`);
login/vue.config.js
View file @
618c0851
...
...
@@ -5,23 +5,14 @@ const port = 9000
const
CompressionWebpackPlugin
=
require
(
'
compression-webpack-plugin
'
)
const
productionGzipExtensions
=
[
'
js
'
,
'
css
'
]
const
proxy
=
{
// '/sso': {
// target: 'http://10.102.1.182:9000',
// },
// '/design': {
// target: 'http://10.102.1.182:9000',
// },
'
/sso
'
:
{
target
:
'
http://37.12.182.29:9000
'
,
},
'
/design
'
:
{
target
:
'
http://37.12.182.29:9000
'
,
'
/sso|/design
'
:
{
// target: 'http://10.102.1.181:9000',
target
:
'
http://10.102.1.182:9000
'
,
// target: 'http://10.102.1.182:9100',
},
'
/cdn
'
:
{
target
:
'
http://127.0.0.1:3000
'
,
},
}
module
.
exports
=
{
...
...
wj-data-vision-new/vue.config.js
View file @
618c0851
const
path
=
require
(
'
path
'
)
//
const pxtovw = require('postcss-px-to-viewport')
const
pxtovw
=
require
(
'
postcss-px-to-viewport
'
)
const
publicPath
=
'
/wj-data-vision-new
'
const
port
=
9300
const
CompressionWebpackPlugin
=
require
(
'
compression-webpack-plugin
'
)
...
...
@@ -32,7 +32,7 @@ module.exports = {
publicPath
,
outputDir
:
'
dist
'
,
assetsDir
:
'
static
'
,
productionSourceMap
:
fals
e
,
productionSourceMap
:
tru
e
,
devServer
:
{
port
,
overlay
:
{
...
...
@@ -43,24 +43,24 @@ module.exports = {
},
css
:
{
loaderOptions
:
{
//
postcss: {
//
//给postcss-loader传递选项
//
plugins: [
//
new pxtovw({
//
unitToConvert: 'px', //需要转换的单位,默认为"px";
// viewportWidth: 192
0, //设计稿的视口宽度
//
unitPrecision: 5, //单位转换后保留的小数位数
//
propList: ['*'], //要进行转换的属性列表,*表示匹配所有,!表示不转换
//
viewportUnit: 'vw', //转换后的视口单位
//
fontViewportUnit: 'vw', //转换后字体使用的视口单位
//
selectorBlackList: [], //不进行转换的css选择器,继续使用原有单位
//
minPixelValue: 1, //设置最小的转换数值
//
mediaQuery: false, //设置媒体查询里的单位是否需要转换单位
//
replace: true, //是否直接更换属性值,而不添加备用属性
//
exclude: [/node_modules/], //忽略某些文件夹下的文件
//
}),
//
],
//
},
postcss
:
{
//给postcss-loader传递选项
plugins
:
[
new
pxtovw
({
unitToConvert
:
'
px
'
,
//需要转换的单位,默认为"px";
viewportWidth
:
384
0
,
//设计稿的视口宽度
unitPrecision
:
5
,
//单位转换后保留的小数位数
propList
:
[
'
*
'
],
//要进行转换的属性列表,*表示匹配所有,!表示不转换
viewportUnit
:
'
vw
'
,
//转换后的视口单位
fontViewportUnit
:
'
vw
'
,
//转换后字体使用的视口单位
selectorBlackList
:
[],
//不进行转换的css选择器,继续使用原有单位
minPixelValue
:
1
,
//设置最小的转换数值
mediaQuery
:
false
,
//设置媒体查询里的单位是否需要转换单位
replace
:
true
,
//是否直接更换属性值,而不添加备用属性
exclude
:
[
/node_modules/
],
//忽略某些文件夹下的文件
}),
],
},
},
},
configureWebpack
:
{
...
...
wj-data-vision/vue.config.js
View file @
618c0851
...
...
@@ -6,7 +6,7 @@ const CompressionWebpackPlugin = require('compression-webpack-plugin')
const
productionGzipExtensions
=
[
'
js
'
,
'
css
'
]
const
proxy
=
{
'
/sso
'
:
{
target
:
'
http://10.102.1.18
1
:9000
'
,
target
:
'
http://10.102.1.18
2
:9000
'
,
},
'
/holo
'
:
{
target
:
'
http://10.102.1.181:9000
'
,
...
...
@@ -15,16 +15,16 @@ const proxy = {
target
:
'
http://10.102.1.181:9000
'
,
},
'
/design
'
:
{
target
:
'
http://10.102.1.18
1
:9000
'
,
target
:
'
http://10.102.1.18
2
:9000
'
,
},
'
/develop
'
:
{
target
:
'
http://10.102.1.18
1
:9000
'
,
target
:
'
http://10.102.1.18
2
:9000
'
,
},
'
/cdn
'
:
{
target
:
'
http://127.0.0.1:3000
'
,
},
'
/opt
'
:
{
target
:
'
http://10.102.1.18
1
:9000
'
,
target
:
'
http://10.102.1.18
2
:9000
'
,
},
}
...
...
wj-developer/vue.config.js
View file @
618c0851
...
...
@@ -5,23 +5,12 @@ const port = 9400
const
CompressionWebpackPlugin
=
require
(
'
compression-webpack-plugin
'
)
const
productionGzipExtensions
=
[
'
js
'
,
'
css
'
]
const
proxy
=
{
// '/sso': {
// target: 'http://10.102.1.182:9000',
// },
// '/design': {
// target: 'http://10.102.1.182:9000',
// },
'
/sso
'
:
{
'
/sso|/design
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
},
'
/design
'
:
{
target
:
'
http://127.0.0.1:17010
'
,
},
'
/cdn
'
:
{
target
:
'
http://127.0.0.1:3000
'
,
},
}
module
.
exports
=
{
...
...
wj-manage-web/src/router/index.js
View file @
618c0851
...
...
@@ -10,53 +10,72 @@ Vue.use(Router);
const
originalPush
=
Router
.
prototype
.
push
;
const
originalReplace
=
Router
.
prototype
.
replace
;
Router
.
prototype
.
push
=
function
push
(
location
,
onResolve
,
onReject
)
{
if
(
onResolve
||
onReject
)
return
originalPush
.
call
(
this
,
location
,
onResolve
,
onReject
);
return
originalPush
.
call
(
this
,
location
).
catch
((
err
)
=>
err
);
if
(
onResolve
||
onReject
)
return
originalPush
.
call
(
this
,
location
,
onResolve
,
onReject
);
return
originalPush
.
call
(
this
,
location
).
catch
((
err
)
=>
err
);
};
Router
.
prototype
.
replace
=
function
push
(
location
,
onResolve
,
onReject
)
{
if
(
onResolve
||
onReject
)
return
originalReplace
.
call
(
this
,
location
,
onResolve
,
onReject
);
return
originalReplace
.
call
(
this
,
location
).
catch
((
err
)
=>
err
);
if
(
onResolve
||
onReject
)
return
originalReplace
.
call
(
this
,
location
,
onResolve
,
onReject
);
return
originalReplace
.
call
(
this
,
location
).
catch
((
err
)
=>
err
);
};
// 配置路由
const
router
=
new
Router
({
routes
:
[
{
path
:
"
*
"
,
name
:
"
404
"
,
component
:
(
resolve
)
=>
require
([
"
@/views/404/index
"
],
resolve
),
},
...
routes
,
],
routes
:
[
{
path
:
"
*
"
,
name
:
"
404
"
,
component
:
(
resolve
)
=>
require
([
"
@/views/404/index
"
],
resolve
),
},
...
routes
,
],
});
// 路由白名单
const
whiteList
=
[
"
/situation/cameraView
"
,
"
/analysis/reportPreview
"
];
function
parseQueryString
(
url
)
{
var
obj
=
{};
var
keyvalue
=
[];
var
key
=
""
,
value
=
""
;
var
paraString
=
url
.
substring
(
url
.
indexOf
(
"
?
"
)
+
1
,
url
.
length
).
split
(
"
&
"
);
for
(
var
i
in
paraString
)
{
keyvalue
=
paraString
[
i
].
split
(
"
=
"
);
key
=
keyvalue
[
0
];
value
=
keyvalue
[
1
];
obj
[
key
]
=
value
;
}
return
obj
;
}
// 全局路由守卫
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
if
(
whiteList
.
includes
(
to
.
path
))
{
next
();
return
;
}
const
parentId
=
map_config
.
SYS_ID
;
AuthDao
.
queryMenu
({
params
:
{
parentId
,
isRecursion
:
true
,
},
}).
then
((
res
)
=>
{
let
routes
=
res
.
data
.
content
;
for
(
let
route
of
routes
)
{
if
(
route
.
url
===
to
.
path
)
{
if
(
whiteList
.
includes
(
to
.
path
))
{
next
();
}
return
;
}
});
let
param
=
parseQueryString
(
to
.
fullPath
)
// if (param.tokenId) {
// document.cookie = `tokenId=${param.tokenId}`
// }
const
parentId
=
map_config
.
SYS_ID
;
AuthDao
.
queryMenu
({
params
:
{
parentId
,
isRecursion
:
true
,
},
}).
then
((
res
)
=>
{
let
routes
=
res
.
data
.
content
;
for
(
let
route
of
routes
)
{
if
(
route
.
url
===
to
.
path
)
{
next
();
}
}
});
});
router
.
afterEach
((
to
,
from
)
=>
{
store
.
commit
(
"
setPathActive
"
,
to
.
fullPath
);
router
.
afterEach
((
to
,
from
)
=>
{
store
.
commit
(
"
setPathActive
"
,
to
.
fullPath
);
})
export
default
router
;
wj-manage-web/src/views/situation/floatData/msgLeft/trafficFlow.vue
View file @
618c0851
...
...
@@ -157,6 +157,10 @@ export default {
label: {
show: false,
},
// color: {
// image: require('../../../../assets/images/holo/event.png'),
// repeat: 'repeat'
// },
emphasis: {
focus: "series",
},
...
...
wj-manage-web/vue.config.js
View file @
618c0851
const
path
=
require
(
'
path
'
)
const
pxtovw
=
require
(
'
postcss-px-to-viewport
'
)
const
publicPath
=
'
/wj-manage-web
'
const
port
=
9100
const
CompressionWebpackPlugin
=
require
(
'
compression-webpack-plugin
'
)
const
productionGzipExtensions
=
[
'
js
'
,
'
css
'
]
const
proxy
=
{
'
/sso
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
},
'
/holo
'
:
{
target
:
'
http://10.100.1.33:17020
'
,
},
'
/web
'
:
{
target
:
'
http://10.102.1.182:9100
'
,
},
'
/design
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
},
'
/develop
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
},
'
/opt
'
:
{
'
/sso|/design|/develop|/group1|/holo|/web|/opt
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
// target: 'http://10.102.1.181:9000',
},
'
/nvr
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
},
'
/group1
'
:
{
target
:
'
http://10.102.1.182:9000
'
,
target
:
'
http://10.100.1.154:19830
'
,
// 回放视频
},
// '/sso': {
// target: 'http://37.12.182.29:9000',
// },
// '/utc': {
// target: 'http://37.12.182.29:32000',
// },
// '/holo': {
// target: 'http://37.12.182.29:9000',
// // target: 'http://10.10.20.115:16020',
// },
// '/web': {
// target: 'http://37.12.182.29:9100',
// },
// '/design': {
// target: 'http://37.12.182.29:9000',
// },
// '/develop': {
// target: 'http://37.12.182.29:9000',
// },
// '/opt': {
// target: 'http://37.12.182.29:9000',
// },
// '/nvr': {
// target: 'http://37.12.182.29:9000',
// },
// '/group1': {
// target: 'http://37.12.182.29:9000',
// },
'
/cdn
'
:
{
target
:
'
http://127.0.0.1:3000
'
,
},
...
...
@@ -71,7 +22,7 @@ module.exports = {
assetsDir
:
'
static
'
,
productionSourceMap
:
false
,
devServer
:
{
port
,
port
:
9100
,
overlay
:
{
warnings
:
false
,
errors
:
true
,
...
...
@@ -112,9 +63,9 @@ module.exports = {
plugins
:
[
new
CompressionWebpackPlugin
({
algorithm
:
'
gzip
'
,
test
:
new
RegExp
(
'
\\
.(
'
+
productionGzipExtensions
.
join
(
'
|
'
)
+
'
)$
'
),
test
:
/
\.
js$|
\.
css$/
,
// 匹配文件名
threshold
:
10240
,
minRatio
:
0.8
,
minRatio
:
1
,
// 压缩率小于1才会压缩
}),
],
},
...
...
wj-smartcity/public/index.html
View file @
618c0851
...
...
@@ -105,6 +105,11 @@
display
:
none
!important
;
}
.mapboxgl-ctrl-group
{
background
:
transparent
!important
;
border-radius
:
6px
!important
;
}
.mapboxgl-popup-close-button
{
font-size
:
26px
;
color
:
white
;
...
...
@@ -134,6 +139,7 @@
src=
"/cdn/libs/threebox/threebox.js"
type=
"text/javascript"
></script>
<script
src=
"/cdn/libs/heatmap/heatmap.min.js"
></script>
<script
src=
"/cdn/libs/turf/turf.min.js"
type=
"text/javascript"
></script>
<script
src=
"/cdn/libs/cesium/Cesium.js"
type=
"text/javascript"
></script>
<script
...
...
wj-smartcity/src/App.vue
View file @
618c0851
...
...
@@ -75,6 +75,7 @@ export default {
top: 80px;
left: 0;
height: calc(100% - 80px);
padding: 8px; color: white;
padding: 8px;
color: white;
}
</
style
>
wj-smartcity/src/assets/images/holo/bottomCartHead.png
deleted
100644 → 0
View file @
920e6ab1
3.64 KB
wj-smartcity/src/assets/images/planMange/arrow/black-10.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0.0000021487912817974575 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(23.323308270675625 7.508055853920496) rotate(0 16.53061224489795 33.64124597207304)"
><path
id=
"路径 9"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 16.53061224489795 33.64124597207304)"
opacity=
"1"
d=
"M33.06,16.82L27.84,0L27.84,11.6L16.82,22.04L5.22,11.6L5.22,0L0,16.82L5.22,34.8L5.22,24.36L14.5,33.64L14.5,67.28L18.56,67.28L18.56,33.64L27.84,24.36L27.84,34.8L33.06,16.82Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(-0.000009456261977902614 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(29.12996777658327 6.212674543501862) rotate(0 10.730397422126739 33.64124597207302)"
><path
id=
"路径 8"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 10.730397422126739 33.64124597207302)"
opacity=
"1"
d=
"M11.02,25.88L14.5,25.88L14.5,35.96L6.66,35.96C5.82,35.96 5.01,36.29 4.41,36.89C3.81,37.49 3.48,38.3 3.48,39.14L3.48,51.04L0,51.04L5.22,66.12L9.86,51.04L6.38,51.04L6.38,41.89C6.38,40.84 7.24,39.99 8.29,39.99L14.5,39.99L14.5,67.28L17.98,67.28L17.98,25.88L21.46,25.88L16.24,0L11.02,25.88Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/images/planMange/arrow/black-7.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(31.508055853920723 6.792696025778923) rotate(0 8.990332975295381 33.0612244897959)"
><path
id=
"路径 7"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 8.99033297529538 33.0612244897959)"
opacity=
"1"
d=
"M5.22,50.05L1.74,50.05L6.96,64.93L11.6,50.05L8.7,50.05L8.7,44.07C8.7,43.01 9.23,42.02 10.11,41.43C10.98,40.84 12.1,40.73 13.08,41.13L14.5,41.71L14.5,66.12L17.98,66.12L17.98,21.47L5.22,11.34L5.22,0L0,17.89L5.22,33.37L5.22,23.25L14.5,30.99L14.5,36.95L8.4,36.95C6.65,36.95 5.22,38.37 5.22,40.12L5.22,50.05Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0.000011605054623942124 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(23.10418904403832 6.283566058002407) rotate(0 17.40064446831364 34.22126745435016)"
><path
id=
"路径 11"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 17.40064446831364 34.22126745435016)"
opacity=
"1"
d=
"M19.14,59.74L29,51.04L29,61.48L34.8,45.82L29,30.16L29,40.6L19.14,48.72L19.14,30.74L22.62,30.74L16.82,0L11.6,30.74L15.08,30.74L15.08,48.72L5.22,40.6L5.22,30.16L0,45.82L5.22,61.48L5.22,51.04L15.08,59.74L15.08,68.44L19.14,68.44L19.14,59.74Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/images/planMange/arrow/black-9.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0.000011605054623942124 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(23.10418904403832 6.283566058002407) rotate(0 17.40064446831364 34.22126745435016)"
><path
id=
"路径 11"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 17.40064446831364 34.22126745435016)"
opacity=
"1"
d=
"M19.14,59.74L29,51.04L29,61.48L34.8,45.82L29,30.16L29,40.6L19.14,48.72L19.14,30.74L22.62,30.74L16.82,0L11.6,30.74L15.08,30.74L15.08,48.72L5.22,40.6L5.22,30.16L0,45.82L5.22,61.48L5.22,51.04L15.08,59.74L15.08,68.44L19.14,68.44L19.14,59.74Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"81"
height=
"81"
viewBox=
"0 0 81 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 1.347352736047469e-7) rotate(0 40.5 40.5)"
><g
opacity=
"1"
transform=
"translate(31.508055853920723 6.792696025778923) rotate(0 8.990332975295381 33.0612244897959)"
><path
id=
"路径 7"
fill-rule=
"evenodd"
style=
"fill:#666666"
transform=
"translate(0 0) rotate(0 8.99033297529538 33.0612244897959)"
opacity=
"1"
d=
"M5.22,50.05L1.74,50.05L6.96,64.93L11.6,50.05L8.7,50.05L8.7,44.07C8.7,43.01 9.23,42.02 10.11,41.43C10.98,40.84 12.1,40.73 13.08,41.13L14.5,41.71L14.5,66.12L17.98,66.12L17.98,21.47L5.22,11.34L5.22,0L0,17.89L5.22,33.37L5.22,23.25L14.5,30.99L14.5,36.95L8.4,36.95C6.65,36.95 5.22,38.37 5.22,40.12L5.22,50.05Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/images/planMange/arrow/white-10.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 1.347352736047469e-7) rotate(0 17.5 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395904"
height=
"80.11788395904"
/><path
id=
"路径 9"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(0.9693877551020478 6.858754027927034) rotate(0 16.53061224489795 33.64124597207304)"
opacity=
"1"
d=
"M33.06,16.82L27.84,0L27.84,11.6L16.82,22.04L5.22,11.6L5.22,0L0,16.82L5.22,34.8L5.22,24.36L14.5,33.64L14.5,67.28L18.56,67.28L18.56,33.64L27.84,24.36L27.84,34.8L33.06,16.82Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395904"
height=
"80.11788395904"
/><path
id=
"路径 8"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(6.769602577873258 6.858754027927034) rotate(0 10.730397422126739 33.64124597207302)"
opacity=
"1"
d=
"M14.5,67.28L17.98,67.28L17.98,25.88L21.46,25.88L16.24,0L11.02,25.88L14.5,25.88L14.5,35.96L6.66,35.96C5.82,35.96 5.01,36.29 4.41,36.89C3.81,37.49 3.48,38.3 3.48,39.14L3.48,51.04L0,51.04L5.22,66.12L9.86,51.04L6.38,51.04L6.38,41.89C6.38,40.84 7.24,39.99 8.29,39.99L14.5,39.99L14.5,67.28Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/images/planMange/arrow/white-7.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395904"
height=
"80.11788395904"
/><path
id=
"路径 7"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(8.509667024704612 7.4387755102040956) rotate(0 8.99033297529538 33.0612244897959)"
opacity=
"1"
d=
"M5.22,33.37L5.22,23.25L14.5,30.99L14.5,36.95L8.4,36.95C6.65,36.95 5.22,38.37 5.22,40.12L5.22,50.05L1.74,50.05L6.96,64.93L11.6,50.05L8.7,50.05L8.7,44.07C8.7,43.01 9.23,42.02 10.11,41.43C10.98,40.84 12.1,40.73 13.08,41.13L14.5,41.71L14.5,66.12L17.98,66.12L17.98,21.47L5.22,11.34L5.22,0L0,17.89L5.22,33.37Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 1.347352736047469e-7) rotate(0 17.499999999999996 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.499999999999996 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.499999999999996 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395903999"
height=
"80.11788395904"
/><path
id=
"路径 11"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(0.02500753385857024 6.283566058002407) rotate(0 17.40064446831364 34.22126745435016)"
opacity=
"1"
d=
"M29,30.16L29,40.6L19.14,48.72L19.14,30.74L22.62,30.74L16.82,0L11.6,30.74L15.08,30.74L15.08,48.72L5.22,40.6L5.22,30.16L0,45.82L5.22,61.48L5.22,51.04L15.08,59.74L15.08,68.44L19.14,68.44L19.14,59.74L29,51.04L29,61.48L34.8,45.82L29,30.16Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/images/planMange/arrow/white-9.svg
View file @
618c0851
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 1.347352736047469e-7) rotate(0 17.499999999999996 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.499999999999996 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.499999999999996 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395903999"
height=
"80.11788395904"
/><path
id=
"路径 11"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(0.02500753385857024 6.283566058002407) rotate(0 17.40064446831364 34.22126745435016)"
opacity=
"1"
d=
"M29,30.16L29,40.6L19.14,48.72L19.14,30.74L22.62,30.74L16.82,0L11.6,30.74L15.08,30.74L15.08,48.72L5.22,40.6L5.22,30.16L0,45.82L5.22,61.48L5.22,51.04L15.08,59.74L15.08,68.44L19.14,68.44L19.14,59.74L29,51.04L29,61.48L34.8,45.82L29,30.16Z "
/></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"35"
height=
"81"
viewBox=
"0 0 35 81"
fill=
"none"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><g
opacity=
"1"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
><rect
id=
"矩形 1"
style=
"stroke:#000000; stroke-width:0.88211604096; stroke-opacity:0.15; stroke-dasharray:0 0"
transform=
"translate(0 0) rotate(0 17.5 40.5)"
x=
"0.44105802048"
y=
"0.44105802048"
rx=
"3.36894197952"
width=
"34.11788395904"
height=
"80.11788395904"
/><path
id=
"路径 7"
fill-rule=
"evenodd"
style=
"fill:#FFFFFF"
transform=
"translate(8.509667024704612 7.4387755102040956) rotate(0 8.99033297529538 33.0612244897959)"
opacity=
"1"
d=
"M5.22,33.37L5.22,23.25L14.5,30.99L14.5,36.95L8.4,36.95C6.65,36.95 5.22,38.37 5.22,40.12L5.22,50.05L1.74,50.05L6.96,64.93L11.6,50.05L8.7,50.05L8.7,44.07C8.7,43.01 9.23,42.02 10.11,41.43C10.98,40.84 12.1,40.73 13.08,41.13L14.5,41.71L14.5,66.12L17.98,66.12L17.98,21.47L5.22,11.34L5.22,0L0,17.89L5.22,33.37Z "
/></g></g></svg>
\ No newline at end of file
wj-smartcity/src/assets/less/elementTable.less
View file @
618c0851
...
...
@@ -11,6 +11,9 @@
.building-top .el-table th.is-leaf {
border-bottom: none;
}
::v-deep .el-table .cell{
line-height: 33px;
}
::v-deep .custom-table-header-cell {
background-color: #012b53 !important;
...
...
@@ -19,8 +22,8 @@
::v-deep .cell {
padding: 2px 2px;
line-height: unset
;
height:
34
px;
//line-height: 3
;
height:
50
px;
text-align: center;
font-size: 16px;
font-weight: 400;
...
...
wj-smartcity/src/common/api/signalEvaluation.js
View file @
618c0851
...
...
@@ -205,6 +205,14 @@ export function mainlineSchemeAnalysis(data) {
data
:
data
})
}
// 干线运行分析溢出畅通拥堵占比饼图
export
function
mainlineRunAnalyse
(
data
){
return
axios
({
url
:
optBaseUrl
+
"
/mainlineEvaluate/mainlineRunningAnalyse
"
,
method
:
'
post
'
,
data
:
data
})
}
//干线列表
export
function
mainlineList
(
data
)
{
return
axios
({
...
...
wj-smartcity/src/common/js/utils.js
View file @
618c0851
//
import axios from 'axios';
import
axios
from
'
axios
'
;
/**
* @desc 函数防抖
* @param func 函数
...
...
@@ -85,6 +85,17 @@ function createGuid() {
});
}
/**
*UUID
*/
export
function
createGuid8
()
{
return
'
xxxxxxxx
'
.
replace
(
/
[
xy
]
/g
,
function
(
c
)
{
var
r
=
(
Math
.
random
()
*
16
)
|
0
;
var
v
=
c
===
'
x
'
?
r
:
(
r
&
0x3
)
|
0x8
;
return
v
.
toString
(
17
);
});
}
/**
*
* @returns 获取当前时间年+月+日+时+分+秒
...
...
@@ -146,24 +157,57 @@ export function supWholeDataTime(n = 1) {
return
dateTime
;
}
export
function
formatTime
(
date
)
{
const
currentDate
=
date
;
const
currentHour
=
currentDate
.
getHours
();
const
currentMinute
=
currentDate
.
getMinutes
();
const
currentSecond
=
currentDate
.
getSeconds
();
const
formattedTime
=
`
${
currentHour
}
:
${
currentMinute
}
:
${
currentSecond
}
`
;
return
formattedTime
;
}
export
function
formatDate
(
date
)
{
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
"
0
"
);
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
"
0
"
);
return
`
${
year
}
-
${
month
}
-
${
day
}
`
;
}
export
function
formatDateTime
(
currentDate
)
{
// 获取年、月、日、小时、分钟和秒
const
year
=
currentDate
.
getFullYear
();
const
month
=
String
(
currentDate
.
getMonth
()
+
1
).
padStart
(
2
,
"
0
"
);
// 月份从0开始,需要加1
const
day
=
String
(
currentDate
.
getDate
()).
padStart
(
2
,
"
0
"
);
const
hours
=
String
(
currentDate
.
getHours
()).
padStart
(
2
,
"
0
"
);
const
minutes
=
String
(
currentDate
.
getMinutes
()).
padStart
(
2
,
"
0
"
);
const
seconds
=
String
(
currentDate
.
getSeconds
()).
padStart
(
2
,
"
0
"
);
// 格式化为 "YYYY-MM-DD HH:mm:ss" 的字符串
const
formattedDateTime
=
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
return
formattedDateTime
;
}
/**
* ping链接
* @param {String} ip
* @param {Function} cb
*/
//
function ping(ip, cb) {
//
axios({
//
method: 'post',
//
url: `${ip}/cache/service/connectivity`,
//
timeout: 1000,
//
})
//
.then(res => {
//
cb(true);
//
})
//
.catch(error => {
//
cb(false);
//
});
//
}
function
ping
(
ip
,
cb
)
{
axios
({
method
:
'
post
'
,
url
:
`
${
ip
}
/cache/service/connectivity`
,
timeout
:
1000
,
})
.
then
(
res
=>
{
cb
(
true
);
})
.
catch
(
error
=>
{
cb
(
false
);
});
}
/**
* echarts字体自适应
* @param {*} font 字号大小
...
...
@@ -178,6 +222,22 @@ export function fontPxToRem(font) {
let
fontSize
=
clientWidth
/
1920
;
return
font
*
fontSize
;
}
/**
* echarts字体自适应
* @param {*} font 字号大小
*/
export
function
getFontSize
(
font
)
{
let
clientWidth
=
window
.
innerWidth
||
document
.
documentElement
.
clientWidth
||
document
.
body
.
clientWidth
if
(
!
clientWidth
)
return
let
fontSize
=
clientWidth
/
1920
return
font
*
fontSize
}
export
function
getFontSizeHeight
(
font
)
{
let
clientHeight
=
window
.
innerHeight
||
document
.
documentElement
.
clientHeight
||
document
.
body
.
clientHeight
if
(
!
clientHeight
)
return
let
fontSize
=
clientHeight
/
937
return
font
*
fontSize
}
// 对象深拷贝
export
function
deepClone
(
data
)
{
let
type
=
getObjectType
(
data
)
...
...
wj-smartcity/src/components/Standard/loopVideo.vue
View file @
618c0851
...
...
@@ -3,7 +3,6 @@
class=
"loopVideo"
v-loading=
"videoLoading"
element-loading-text=
"加载中..."
v-show=
"videoUrl"
element-loading-spinner=
"el-icon-loading"
element-loading-background=
"rgba(0, 0, 0, 0.8)"
>
...
...
wj-smartcity/src/components/Standard/msg-card.vue
View file @
618c0851
...
...
@@ -25,9 +25,7 @@ export default {
</
script
>
<
style
lang=
"less"
scoped
>
.long {
background-image: url("../../assets/images/holo/bottomCartHead.png");
}
.text {
padding: 4px 0 4px 30px;
position: relative;
...
...
@@ -53,9 +51,12 @@ export default {
background-image: url("../../assets/images/holo/msgCardHead.png");
background-size: 100% 100%;
}
.long {
background-image: url("../../assets/images/holo/msgCardHeadLong.png");
}
.msg-card-content {
overflow
-y
: hidden;
padding: 10px
10px 0 10px
;
overflow: hidden;
padding: 10px
0 0 0
;
background-size: 100% 100%;
height: calc(100% - 45px);
}
...
...
wj-smartcity/src/components/Standard/simple-card.vue
View file @
618c0851
...
...
@@ -53,7 +53,7 @@ export default {
text-align: left;
}
.long{
background-image: url('../../assets/images/holo/
bottomCartHead
.png');
background-image: url('../../assets/images/holo/
msgCardHeadLong
.png');
}
.content {
overflow-y: hidden;
...
...
wj-smartcity/src/components/dialog/coordInfoDialog.vue
View file @
618c0851
...
...
@@ -41,7 +41,7 @@ export default {
};
</
script
>
<
style
lang=
"
sc
ss"
>
<
style
lang=
"
le
ss"
>
.img-dialog {
position: absolute;
.el-dialog__header {
...
...
wj-smartcity/src/config/routes.js
View file @
618c0851
...
...
@@ -9,7 +9,7 @@ export default [
component
:
(
resolve
)
=>
require
([
"
@/views/signal/index.vue
"
],
resolve
),
},
{
path
:
"
/
more
"
,
component
:
(
resolve
)
=>
require
([
"
@/views/
more
/index.vue
"
],
resolve
),
path
:
"
/
signalEvaluation
"
,
component
:
(
resolve
)
=>
require
([
"
@/views/
signalEvaluation
/index.vue
"
],
resolve
),
},
];
wj-smartcity/src/directive/index.js
View file @
618c0851
...
...
@@ -11,6 +11,47 @@ Vue.directive("scroll", {
};
}
});
Vue
.
directive
(
'
dragable
'
,(
el
)
=>
{
let
oDiv
=
el
;
//当前元素
let
self
=
this
;
//上下文
//禁止选择网页上的文字
document
.
onselectstart
=
function
()
{
return
false
;
};
oDiv
.
onmousedown
=
function
(
e
)
{
//鼠标按下,计算当前元素距离可视区的距离
let
disX
=
e
.
clientX
-
oDiv
.
offsetLeft
;
let
disY
=
e
.
clientY
-
oDiv
.
offsetTop
;
document
.
onmousemove
=
function
(
e
)
{
//通过事件委托,计算移动的距离
let
l
=
e
.
clientX
-
disX
;
let
t
=
e
.
clientY
-
disY
;
// 获取html可视区域高度
const
width
=
document
.
querySelector
(
"
.area
"
).
clientWidth
;
const
height
=
document
.
querySelector
(
"
.area
"
).
clientHeight
;
if
(
l
>=
width
-
100
)
{
l
=
width
-
100
;
}
else
if
(
l
<=
0
)
{
l
=
0
;
}
if
(
t
>=
height
-
100
)
{
t
=
height
-
100
;
}
else
if
(
t
<=
0
)
{
t
=
0
;
}
//移动当前元素
oDiv
.
style
.
left
=
l
+
"
px
"
;
oDiv
.
style
.
top
=
t
+
"
px
"
;
};
document
.
onmouseup
=
function
(
e
)
{
document
.
onmousemove
=
null
;
document
.
onmouseup
=
null
;
};
//return false不加的话可能导致黏连,就是拖到一个地方时div粘在鼠标上不下来,相当于onmouseup失效
return
false
;
};
})
Vue
.
directive
(
'
resize
'
,
{
bind
(
el
)
{
let
scale
=
1
;
...
...
wj-smartcity/src/main.js
View file @
618c0851
...
...
@@ -10,6 +10,7 @@ import './components'
import
'
@/assets/less/component.less
'
// import '@/assets/font/font.css'
import
'
./assets/icon/iconfont.css
'
import
'
./assets/css/layout.css
'
;
// vdr拖动缩放组件
import
VueDraggableResizable
from
'
vue-draggable-resizable
'
import
'
vue-draggable-resizable/dist/VueDraggableResizable.css
'
...
...
wj-smartcity/src/utils/mapboxTools.js
View file @
618c0851
...
...
@@ -203,6 +203,8 @@ export function sAddOrUpdateCrossStatus(map, geo){
type
:
"
symbol
"
,
source
:
"
crossStatus
"
,
layout
:
{
"
icon-allow-overlap
"
:
true
,
"
icon-ignore-placement
"
:
true
,
"
icon-image
"
:[
"
concat
"
,
"
crossStatus
"
,
[
"
get
"
,
"
realtimeStatus
"
]],
"
icon-size
"
:
0.7
,
"
icon-offset
"
:
[
0
,
-
10
],
...
...
@@ -658,16 +660,16 @@ export function addOrUpdateEquipCamera(map, geo, callback) {
type
:
"
symbol
"
,
source
:
"
camera
"
,
layout
:
{
"
icon-image
"
:
[
"
match
"
,
[
"
get
"
,
"
status
"
],
// 属性字段名称
'
0
'
,
"
cameraFalse
"
,
'
1
'
,
'
camera
'
,
"
cameraFalse
"
,
],
// 默认值,如果没有匹配到上述枚举值]
//
"icon-image": "camera",
//
"icon-image": [
//
"match",
//
["get", "status"], // 属性字段名称
//
'0',
//
"cameraFalse",
//
'1',
//
'camera',
//
"cameraFalse",
//
], // 默认值,如果没有匹配到上述枚举值]
"
icon-image
"
:
"
camera
"
,
"
icon-size
"
:
0.6
,
"
icon-ignore-placement
"
:
true
,
// 'icon-offset': [0, -10]
...
...
wj-smartcity/src/utils/tools.js
View file @
618c0851
export
function
px2vw
(
px
)
{
let
width
=
1920
return
px
*
(
100
/
width
)
}
/**
* 通用js方法封装处理
...
...
wj-smartcity/src/views/more/index.vue
deleted
100644 → 0
View file @
920e6ab1
<
template
>
<div>
1111
</div>
</
template
>
<
script
>
export
default
{
}
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
wj-smartcity/src/views/signal/dialogs/greenWave/crossDistance.vue
View file @
618c0851
...
...
@@ -6,11 +6,11 @@
v-for="item in crossData"
:key="item.id"
>
<p
class=
"name"
:title=
"item.crossName"
>
<p
:class=
"
{active:active===item.crossName}" style="cursor: pointer" @click="crossClick(item.crossName)"
class="name" :title="item.crossName">
{{
item
.
crossName
}}
</p>
<div
class=
"item-box"
>
<i
class=
"title-icon"
></i>
<i
style=
"cursor: pointer"
@
click=
"crossClick(item.crossName)"
class=
"title-icon"
></i>
<div
class=
"distance-line"
v-if=
"item.distanceToNextCross"
>
<span>
{{
item
.
distanceToNextCross
}}
米
</span>
<span
class=
"distance-icon el-icon-caret-right"
></span>
...
...
@@ -25,6 +25,7 @@
export
default
{
data
()
{
return
{
active
:
''
,
crossData
:
[
{
name
:
"
相城大道与朱径支路交叉口
"
,
...
...
@@ -39,10 +40,24 @@ export default {
],
};
},
props
:
[
"
contentData
"
,
"
type
"
],
props
:
[
"
contentData
"
,
"
type
"
,
'
canClick
'
],
mounted
()
{
this
.
crossData
=
this
.
contentData
.
greenwaveCrossList
;
setTimeout
(()
=>
{
if
(
this
.
canClick
){
this
.
crossClick
(
this
.
crossData
[
0
].
crossName
)
}
},
0
)
},
methods
:{
crossClick
(
crossName
){
console
.
log
(
'
in zujian
'
,
crossName
)
this
.
$emit
(
'
crossClick
'
,
crossName
)
if
(
this
.
canClick
){
this
.
active
=
crossName
}
}
}
};
</
script
>
...
...
@@ -50,7 +65,9 @@ export default {
.cross-distance {
display: flex;
color: #c1c6ce;
.active{
background: radial-gradient(#025186, rgba(2, 81, 134,0.8),transparent,transparent);
}
.cross-item {
position: relative;
flex: 1;
...
...
@@ -84,6 +101,7 @@ export default {
align-items: center;
margin: 0 16px;
margin-top: 30px;
}
justify-content: space-between;
...
...
wj-smartcity/src/views/signal/index.vue
View file @
618c0851
...
...
@@ -269,7 +269,7 @@ export default {
transition
:
0.5s
all
ease
!important
;
.mapboxgl-ctrl-group
{
background
-color
:
transparent
!important
;
background
:
transparent
!important
;
border-radius
:
6px
!important
;
}
}
...
...
wj-smartcity/src/views/signal/msgs/left/trunkLine.vue
View file @
618c0851
...
...
@@ -306,9 +306,10 @@ export default {
}
}
.i_indexVal{
font-weight:
bold
;
font-size:
18
px;
font-weight:
normal
;
font-size:
22
px;
margin-right: 10px;
font-family: YouSheBiaoTiHei,serif;
}
.i_arrow{
font-weight: bold;
...
...
wj-smartcity/src/views/signal/msgs/right/cross.vue
View file @
618c0851
...
...
@@ -27,7 +27,7 @@
<div
class=
"alarm-title-box"
>
<div
class=
"alarm-title"
>
<img
src=
"../../../../assets/images/homepage/second-title-icon.svg"
alt=
""
/>
<img
src=
"../../../../assets/images/homepage/second-title-icon.svg"
alt=
""
/>
路口列表
{{
kipActive
.
name
?
"
-
"
:
""
}}{{
kipActive
.
name
}}
</div>
<!--
...
...
@@ -60,19 +60,20 @@
<el-table
@
row-click=
"rowClick"
:data=
"listDataCopy"
style=
"width: 100%"
>
:row-class-name=
"getRowClassName"
style=
"width: 100%"
height=
"100%"
>
<el-table-column
width=
"50"
align=
"center"
prop=
"index"
label=
"排名"
show-overflow-tooltip
>
label=
"排名"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"name"
label=
"路口名称"
width=
"100"
show-overflow-tooltip
>
width=
"130"
>
</el-table-column>
<el-table-column
prop=
"congestionIndex"
...
...
@@ -83,69 +84,70 @@
<el-table-column
align=
"center"
label=
"同比"
show-overflow-tooltip
>
width=
"70"
>
<template
slot-scope=
"scope"
>
{{
Math
.
abs
(
scope
.
row
.
lastPeriodIndex
)
}}
%
<img
:src=
"getDownUpImg(scope.row.lastPeriodIndex)"
alt=
""
/>
{{
Math
.
abs
(
scope
.
row
.
lastPeriodIndex
)
}}
%
<img
:src=
"getDownUpImg(scope.row.lastPeriodIndex)"
alt=
""
/>
</
template
>
</el-table-column>
<el-table-column
label=
"环比"
width=
"70"
align=
"center"
show-overflow-tooltip
>
>
<
template
slot-scope=
"scope"
>
{{
Math
.
abs
(
scope
.
row
.
lastWeekIndex
)
}}
%
<img
:src=
"getDownUpImg(scope.row.lastWeekIndex)"
alt=
""
/>
{{
Math
.
abs
(
scope
.
row
.
lastWeekIndex
)
}}
%
<img
:src=
"getDownUpImg(scope.row.lastWeekIndex)"
alt=
""
/>
</
template
>
</el-table-column>
</el-table>
<!-- <div-->
<!-- class="alarm-list"-->
<!-- v-for="(item, index) in listData"-->
<!-- :key="index"-->
<!-- @click="listClick(item)"-->
<!-- >-->
<!-- <div class="list-item">-->
<!-- <div class="title">-->
<!-- <img-->
<!-- src="../../../../assets/images/homepage/localtion-icon.svg"-->
<!-- alt-->
<!-- @click="flyTo(item, true)"-->
<!-- />-->
<!-- <span class="title-txt" :title="item.name">{{ item.name }}</span>-->
<!-- <!– <el-button @click.stop="opDialogClick(item)">优化</el-button> –>-->
<!-- </div>-->
<!-- <div class="content" v-if="item.realtimeStatus">-->
<!-- <template v-if="item.isCongestion">-->
<!-- <span>拥堵方向:</span>-->
<!-- <span class="value" :title="item.congestionDirs">{{-->
<!-- dirObj[item.congestionDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <template v-else-if="item.isSpillover">-->
<!-- <span>溢出方向:</span>-->
<!-- <span class="value" :title="item.spilloverDirs">{{-->
<!-- dirObj[item.spilloverDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <template v-else-if="item.isUnbalance">-->
<!-- <span>失衡方向:</span>-->
<!-- <span class="value" :title="item.unbalanceDirs">{{-->
<!-- dirObj[item.unbalanceDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <span>开始时间:</span>-->
<!-- <span class="value" :title="item.startTime">{{-->
<!-- item.startTime-->
<!-- }}</span>-->
<!-- <span>持续时间:</span>-->
<!-- <span class="value" :title="item.duration + 'min'">{{-->
<!-- item.duration + "min"-->
<!-- }}</span>-->
<!-- </div>-->
<!-- <div class="content" v-else style="margin-left: 26px;">-->
<!-- 路口状态:正常-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div-->
<!-- class="alarm-list"-->
<!-- v-for="(item, index) in listData"-->
<!-- :key="index"-->
<!-- @click="listClick(item)"-->
<!-- >-->
<!-- <div class="list-item">-->
<!-- <div class="title">-->
<!-- <img-->
<!-- src="../../../../assets/images/homepage/localtion-icon.svg"-->
<!-- alt-->
<!-- @click="flyTo(item, true)"-->
<!-- />-->
<!-- <span class="title-txt" :title="item.name">{{ item.name }}</span>-->
<!-- <!– <el-button @click.stop="opDialogClick(item)">优化</el-button> –>-->
<!-- </div>-->
<!-- <div class="content" v-if="item.realtimeStatus">-->
<!-- <template v-if="item.isCongestion">-->
<!-- <span>拥堵方向:</span>-->
<!-- <span class="value" :title="item.congestionDirs">{{-->
<!-- dirObj[item.congestionDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <template v-else-if="item.isSpillover">-->
<!-- <span>溢出方向:</span>-->
<!-- <span class="value" :title="item.spilloverDirs">{{-->
<!-- dirObj[item.spilloverDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <template v-else-if="item.isUnbalance">-->
<!-- <span>失衡方向:</span>-->
<!-- <span class="value" :title="item.unbalanceDirs">{{-->
<!-- dirObj[item.unbalanceDirs]-->
<!-- }}</span>-->
<!-- </template>-->
<!-- <span>开始时间:</span>-->
<!-- <span class="value" :title="item.startTime">{{-->
<!-- item.startTime-->
<!-- }}</span>-->
<!-- <span>持续时间:</span>-->
<!-- <span class="value" :title="item.duration + 'min'">{{-->
<!-- item.duration + "min"-->
<!-- }}</span>-->
<!-- </div>-->
<!-- <div class="content" v-else style="margin-left: 26px;">-->
<!-- 路口状态:正常-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>
...
...
@@ -192,54 +194,62 @@ export default {
listData
:
[],
listDataCopy
:
[],
kipData
:
[
{
name
:
"
拥堵
"
,
type
:
2
,
value
:
0
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
0
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
0
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
0
},
{
name
:
"
拥堵
"
,
type
:
2
,
value
:
0
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
0
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
0
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
0
},
],
infoStatusObj
:
{
"
0
"
:
"
未开启
"
,
"
1
"
:
"
相位差优化
"
,
"
2
"
:
"
选择方案
"
,
},
kipActive
:
{
name
:
""
,
type
:
null
},
kipActive
:
{
name
:
""
,
type
:
null
},
radio
:
""
,
loading
:
false
,
};
},
methods
:
{
getDownUpImg
(
number
){
if
(
number
>
0
){
getRowClassName
(
e
){
if
(
e
.
rowIndex
%
2
!==
0
)
{
return
"
row-even
"
;
}
else
{
return
"
row-odd
"
;
}
},
getDownUpImg
(
number
)
{
if
(
number
>
0
)
{
return
require
(
'
@/assets/images/smartCityMain/up.png
'
)
}
if
(
number
<
0
)
{
if
(
number
<
0
)
{
return
require
(
'
@/assets/images/smartCityMain/down.png
'
)
}
},
typeChange
(
targetType
){
if
(
targetType
===
'
-
'
)
{
this
.
listDataCopy
=
this
.
listData
.
sort
((
a
,
b
)
=>
{
typeChange
(
targetType
)
{
if
(
targetType
===
'
-
'
)
{
this
.
listDataCopy
=
this
.
listData
.
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
})
}
else
{
this
.
listDataCopy
=
this
.
listData
.
sort
((
a
,
b
)
=>
{
}
else
{
this
.
listDataCopy
=
this
.
listData
.
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
}).
filter
(
item
=>
{
}).
filter
(
item
=>
{
return
item
.
frequent
==
targetType
})
}
},
rowClick
(
data
){
this
.
$emit
(
'
openCrossIndexDetail
'
,
data
)
rowClick
(
data
)
{
this
.
$emit
(
'
openCrossIndexDetail
'
,
data
)
},
initData
(){
initData
()
{
this
.
typeVal
=
'
-
'
getAbnormalList
({
name
:
this
.
filterText
,
status
:
this
.
kipActive
.
type
,
type
:
null
,
}).
then
((
res
)
=>
{
console
.
log
(
'
res right
'
,
res
)
console
.
log
(
'
res right
'
,
res
)
if
(
res
&&
res
.
code
===
200
)
{
const
data
=
res
.
content
;
this
.
kipData
=
[
...
...
@@ -248,14 +258,16 @@ export default {
type
:
2
,
value
:
data
.
abnormalCrossStats
.
congestion
,
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
data
.
abnormalCrossStats
.
unbalance
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
data
.
abnormalCrossStats
.
spillover
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
data
.
abnormalCrossStats
.
normal
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
data
.
abnormalCrossStats
.
unbalance
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
data
.
abnormalCrossStats
.
spillover
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
data
.
abnormalCrossStats
.
normal
},
];
this
.
listData
=
data
.
abnormalCrossList
.
map
((
item
,
index
)
=>
{
return
{
index
:
index
+
1
,
...
item
}
this
.
listData
=
data
.
abnormalCrossList
.
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
}).
map
((
item
,
index
)
=>
{
return
{
index
:
index
+
1
,
...
item
}
});
this
.
listDataCopy
=
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
listData
))).
sort
((
a
,
b
)
=>
{
this
.
listDataCopy
=
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
listData
))).
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
})
// this.$emit("update:areaId", this.listData[0]?.id);
...
...
@@ -265,15 +277,15 @@ export default {
}
});
},
kipClick
(
item
){
kipClick
(
item
)
{
if
(
item
.
type
===
this
.
kipActive
.
type
)
{
this
.
kipActive
=
{
name
:
""
,
type
:
null
};
this
.
kipActive
=
{
name
:
""
,
type
:
null
};
}
else
{
this
.
kipActive
=
{
name
:
item
.
name
,
type
:
item
.
type
};
this
.
kipActive
=
{
name
:
item
.
name
,
type
:
item
.
type
};
}
this
.
initData
();
},
getAll
(){
getAll
()
{
this
.
typeVal
=
'
-
'
getAbnormalList
({
name
:
''
,
...
...
@@ -288,16 +300,18 @@ export default {
type
:
2
,
value
:
data
.
abnormalCrossStats
.
congestion
,
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
data
.
abnormalCrossStats
.
unbalance
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
data
.
abnormalCrossStats
.
spillover
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
data
.
abnormalCrossStats
.
normal
},
{
name
:
"
失衡
"
,
type
:
1
,
value
:
data
.
abnormalCrossStats
.
unbalance
},
{
name
:
"
溢出
"
,
type
:
3
,
value
:
data
.
abnormalCrossStats
.
spillover
},
{
name
:
"
正常
"
,
type
:
0
,
value
:
data
.
abnormalCrossStats
.
normal
},
];
this
.
listData
=
data
.
abnormalCrossList
.
map
((
item
,
index
)
=>
{
return
{
index
:
index
+
1
,
...
item
}
this
.
listData
=
data
.
abnormalCrossList
.
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
}).
map
((
item
,
index
)
=>
{
return
{
index
:
index
+
1
,
...
item
}
});
this
.
$emit
(
'
showCrossStatus
'
,
this
.
listData
)
console
.
log
(
'
listData
'
,
this
.
listData
)
this
.
listDataCopy
=
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
listData
))).
sort
((
a
,
b
)
=>
{
this
.
$emit
(
'
showCrossStatus
'
,
this
.
listData
)
console
.
log
(
'
listData
'
,
this
.
listData
)
this
.
listDataCopy
=
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
listData
))).
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
congestionIndex
)
-
Number
(
a
.
congestionIndex
)
})
}
...
...
@@ -311,64 +325,85 @@ export default {
</
script
>
<
style
lang=
"less"
scoped
>
::v-deep .el-table th{
::v-deep .el-table {
background-color: transparent;
}
::v-deep .el-table th {
background-color: #030b19;
}
::v-deep .el-table tr{
::v-deep .el-table tr {
background-color: #030b19;
}
::v-deep .el-table td,.building-top .el-table th.is-leaf {
border-bottom: 0 solid #030b19;
::v-deep .el-table td, .building-top .el-table th.is-leaf {
border-bottom: 0 solid #030b19;
}
::v-deep .el-table::before {
border-bottom: 0 solid #030b19;
height: 0;
}
::v-deep .el-table th.el-table__cell{
::v-deep .el-table th.el-table__cell {
border-bottom: 0 solid #030b19;
font-size: 14px;
}
::v-deep .el-table__body tr:hover > td {
background-color: #03274c !important;
}
::v-deep .el-table__body tr > td {
cursor: pointer;
}
::v-deep .el-table__cell{
::v-deep .el-table__cell {
color: white;
font-size: 14px;
}
// 修改表格无数据背景,字体颜色
::v-deep .el-table__empty-block {
background: #030b19;
}
::v-deep .el-table__empty-text {
color: #ccc;
}
.item-cross {
::v-deep .el-input__inner{
::v-deep .el-input__inner
{
color: white;
}
.list_control{
.list_control
{
display: flex;
justify-content: space-between;
align-items: center;
//margin-bottom: 10px;
padding: 10px 0;
width: 100%;
.homepage-search{
.homepage-search {
width: 70%;
}
.sort_btn{
.sort_btn {
width: 25%;
}
}
.questionArea {
height: 495px;
height: 100%;
.kip-box {
margin: 0 20px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.kip-item {
cursor: pointer;
margin-bottom: 18px;
...
...
@@ -379,44 +414,53 @@ export default {
height: 65px;
border-radius: 3px;
border: 1px solid #112d47;
img {
width: 42px;
height: 42px;
}
&.active {
border: 1px solid #389fff;
box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.15);
}
.name {
margin-bottom: 4px;
font-size: 14px;
color: rgba(255,
255,255,
0.7);
color: rgba(255,
255, 255,
0.7);
}
.value {
font-size: 14px;
color: white;
}
}
}
.alarm-title-box {
display: flex;
justify-content: space-between;
align-items: center;
padding-right: 28px;
}
.alarm-title {
display: flex;
align-items: center;
margin-left: 15px;
margin-bottom: 10px;
img {
margin-right: 10px;
}
}
.alarm-list-box {
height: 2
5
0px;
height: 2
3
0px;
overflow: auto;
}
.alarm-list {
cursor: pointer;
display: flex;
...
...
@@ -424,9 +468,11 @@ export default {
padding: 12px 15px;
color: #383838;
background: rgba(227, 227, 227, 0.35);
&:nth-child(2n) {
background: #fff;
}
img {
cursor: pointer;
}
...
...
@@ -434,15 +480,18 @@ export default {
.value {
margin-right: 10px;
}
.title {
display: flex;
align-items: center;
font-size: 16px;
margin-bottom: 8px;
color: #383838;
img {
margin-right: 8px;
}
.title-txt {
overflow: hidden;
white-space: nowrap;
...
...
@@ -451,6 +500,7 @@ export default {
display: inline-block;
font-weight: 500;
}
.type {
margin-left: 8px;
font-size: 12px;
...
...
@@ -458,6 +508,7 @@ export default {
border-radius: 3px;
}
}
.content {
overflow: hidden;
text-overflow: ellipsis;
...
...
@@ -471,5 +522,16 @@ export default {
}
}
}
::v-deep .row-even {
td {
background-color: #030d1e;
}
}
::v-deep .row-odd {
td {
background-color: #0b1933;
}
}
}
</
style
>
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