Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
E
energyai_vue
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
葛齐林
energyai_vue
Commits
db3f247e
Commit
db3f247e
authored
Apr 01, 2021
by
caojm
Browse files
Options
Browse Files
Download
Plain Diff
页面大致结构完成
parents
4d1ec48f
f73abedb
Changes
37
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
2215 additions
and
124 deletions
+2215
-124
App.vue
src/App.vue
+2
-2
public.scss
src/assets/style/public.scss
+21
-0
theme-base.scss
src/assets/style/theme/theme-base.scss
+0
-2
theme.scss
src/assets/style/theme/theme.scss
+1
-0
main.js
src/main.js
+2
-1
page.vue
src/pages/analysis/energy/page.vue
+1
-0
index.vue
src/pages/analysis/fault/index.vue
+118
-6
pie.vue
src/pages/analysis/fault/pie.vue
+46
-0
pie2.vue
src/pages/analysis/fault/pie2.vue
+97
-0
pie3.vue
src/pages/analysis/fault/pie3.vue
+46
-0
pie4.vue
src/pages/analysis/fault/pie4.vue
+117
-0
chart.vue
src/pages/analysis/indoor/chart.vue
+87
-0
chart2.vue
src/pages/analysis/indoor/chart2.vue
+87
-0
chart3.vue
src/pages/analysis/indoor/chart3.vue
+87
-0
index.vue
src/pages/analysis/indoor/index.vue
+173
-0
pie4.vue
src/pages/analysis/indoor/pie4.vue
+68
-0
chart.vue
src/pages/analysis/outdoor/chart.vue
+87
-0
chart2.vue
src/pages/analysis/outdoor/chart2.vue
+87
-0
chart3.vue
src/pages/analysis/outdoor/chart3.vue
+87
-0
chart4.vue
src/pages/analysis/outdoor/chart4.vue
+87
-0
chart5.vue
src/pages/analysis/outdoor/chart5.vue
+88
-0
chart6.vue
src/pages/analysis/outdoor/chart6.vue
+88
-0
chart7.vue
src/pages/analysis/outdoor/chart7.vue
+88
-0
index.vue
src/pages/analysis/outdoor/index.vue
+175
-0
pie8.vue
src/pages/analysis/outdoor/pie8.vue
+75
-0
cardWarp.vue
src/pages/components/cardWarp.vue
+65
-0
tablePagination.vue
src/pages/components/tablePagination.vue
+56
-0
page.vue
src/pages/eq/hall/page.vue
+1
-0
page.vue
src/pages/home/page.vue
+1
-0
index.vue
src/pages/kb/indoor copy/index.vue
+15
-0
index.vue
src/pages/kb/indoor/index.vue
+140
-0
page.vue
src/pages/kb/power/page.vue
+1
-0
page.vue
src/pages/login/page.vue
+115
-110
index 复制.vue
src/pages/sys/role/index 复制.vue
+0
-0
role-add-or-update.vue
src/pages/sys/role/role-add-or-update.vue
+1
-1
index.js
src/plugin/axios/index.js
+0
-1
routes.js
src/router/routes.js
+5
-1
No files found.
src/App.vue
View file @
db3f247e
...
@@ -843,8 +843,8 @@ export default {
...
@@ -843,8 +843,8 @@ export default {
.el-table
td
,
.el-table
td
,
.el-table
th
{
.el-table
th
{
padding
:
0
!
important
;
padding
:
0
!
important
;
line-height
:
4
9
px
;
line-height
:
4
0
px
;
height
:
4
9
px
;
height
:
4
0
px
;
}
}
</
style
>
</
style
>
...
...
src/assets/style/public.scss
View file @
db3f247e
...
@@ -107,6 +107,7 @@ $el-bg-color-4: #F2F6FC;
...
@@ -107,6 +107,7 @@ $el-bg-color-4: #F2F6FC;
// 表格大概样式
// 表格大概样式
.hall
,
.office-area-control
{
.hall
,
.office-area-control
{
.el-table__row
>
td
{
.el-table__row
>
td
{
...
@@ -124,4 +125,24 @@ $el-bg-color-4: #F2F6FC;
...
@@ -124,4 +125,24 @@ $el-bg-color-4: #F2F6FC;
.
el-table--group
::
after
{
.
el-table--group
::
after
{
width
:
0
;
width
:
0
;
}
}
}
.margin-lr-20
{
margin
:
0
20px
;
}
// color
.color-blue
{
color
:
#21ACFC
;
}
.color-cyan
{
color
:
#36CBCB
;
}
.color-green
{
color
:
#4ECB74
;
}
}
\ No newline at end of file
src/assets/style/theme/theme-base.scss
View file @
db3f247e
...
@@ -99,8 +99,6 @@
...
@@ -99,8 +99,6 @@
}
}
.d2-theme-container-main-body
{
.d2-theme-container-main-body
{
position
:
relative
;
position
:
relative
;
margin
:
24px
24px
85px
;
}
}
}
}
}
}
...
...
src/assets/style/theme/theme.scss
View file @
db3f247e
...
@@ -176,6 +176,7 @@
...
@@ -176,6 +176,7 @@
.d2-theme-container
{
.d2-theme-container
{
// 侧边栏
// 侧边栏
.d2-theme-container-aside
{
.d2-theme-container-aside
{
border-right
:
1px
solid
#ECECEC
;
// 菜单为空的时候显示的信息
// 菜单为空的时候显示的信息
.d2-layout-header-aside-menu-empty
{
.d2-layout-header-aside-menu-empty
{
background
:
$theme-aside-menu-empty-background-color
;
background
:
$theme-aside-menu-empty-background-color
;
...
...
src/main.js
View file @
db3f247e
...
@@ -44,8 +44,9 @@ import { preventReClick } from '@/util/plugins'
...
@@ -44,8 +44,9 @@ import { preventReClick } from '@/util/plugins'
// import './promission'
// import './promission'
//自定义提示框
//自定义提示框
import
toastRegistry
from
'./components/toast/index'
import
toastRegistry
from
'./components/toast/index'
import
cardWarp
from
'@/pages/components/cardWarp.vue'
import
ElementUI
from
'element-ui'
//element-ui的全部组件
import
ElementUI
from
'element-ui'
//element-ui的全部组件
Vue
.
component
(
'cardWarp'
,
cardWarp
)
// import 'element-ui/lib/theme-chalk/index.css'
// import 'element-ui/lib/theme-chalk/index.css'
Vue
.
use
(
toastRegistry
)
//element-ui的css
Vue
.
use
(
toastRegistry
)
//element-ui的css
Vue
.
use
(
ElementUI
)
//使用elementUI
Vue
.
use
(
ElementUI
)
//使用elementUI
...
...
src/pages/analysis/energy/page.vue
View file @
db3f247e
...
@@ -101,6 +101,7 @@ export default {
...
@@ -101,6 +101,7 @@ export default {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.energy-page
{
.energy-page
{
padding
:
10px
10px
40px
10px
;
.el-input__inner
{
.el-input__inner
{
// height: 30px;
// height: 30px;
}
}
...
...
src/pages/analysis/fault/index.vue
View file @
db3f247e
<
template
>
<
template
lang=
'pug'
>
<div>
card-warp(title="故障报警分析")
设备故障报警
div(slot="right")
</div>
span 时间范围:
el-date-picker.margin-lr-20(
size='mini'
v-model="dateValue",
type="daterange",
align="right",
unlink-panels,
range-separator="至",
start-placeholder="开始日期",
end-placeholder="结束日期",
:picker-options="pickerOptions"
)
el-button(size='mini' type='primary') 查询
div(slot="content")
.echartsWarp(width="100%", flex)
//- div
//- .title 设备故障统计
//- pie
//- div
//- .title 设备报警统计
//- pie2
div
.title 设备类型故障数量统计
pie3
div
.title 设备故障数量统计
pie4
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
// import pie from './pie'
// import pie2 from './pie2'
import
pie3
from
'./pie3'
import
pie4
from
'./pie4'
export
default
{
components
:
{
// pie,
// pie2,
pie3
,
pie4
},
data
()
{
return
{
dateValue
:
''
,
pickerOptions
:
{
shortcuts
:
[
{
text
:
'最近一周'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近一个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近三个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
}
]
}
}
},
methods
:
{
tabClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
)
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.echartsWarp
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
height
:
calc
(
100vh
-
260px
);
>
div
{
width
:
47%
;
// height: calc(90% / 2);
height
:
95%
;
margin
:
3px
;
padding
:
13px
;
box-shadow
:
0px
0px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
.title
{
font-size
:
16px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
600
;
color
:
#000000
;
line-height
:
40px
;
&
:
:
before
{
content
:
""
;
display
:
inline-block
;
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
background
:
#0097ff
;
margin
:
0
10px
;
}
}
}
}
</
style
>
</
style
>
src/pages/analysis/fault/pie.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
pie
()
},
methods
:
{
pie
()
{
let
dom
=
document
.
getElementById
(
'pie'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
tooltip
:
{
trigger
:
'item'
},
legend
:
{
orient
:
'horizontal'
,
top
:
'1%'
},
series
:
[
{
type
:
'pie'
,
radius
:
'50%'
,
data
:
[
{
value
:
1048
,
name
:
'搜索引擎'
},
{
value
:
735
,
name
:
'直接访问'
},
{
value
:
580
,
name
:
'邮件营销'
},
{
value
:
484
,
name
:
'联盟广告'
},
{
value
:
300
,
name
:
'视频广告'
}
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/fault/pie2.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie2(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
data
()
{
return
{
legendData
:
[],
nameList
:
[
'赵'
,
'钱'
,
'孙'
,
'李'
,
'周'
,
'吴'
,
'郑'
,
'王'
,
'冯'
,
'陈'
,
'褚'
,
'卫'
,
'蒋'
,
'沈'
,
'韩'
],
list
:
{}
}
},
created
()
{
this
.
list
=
this
.
genData
(
20
)
},
mounted
()
{
this
.
ring
()
console
.
log
(
this
.
list
)
},
methods
:
{
ring
()
{
let
dom
=
document
.
getElementById
(
'pie2'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
tooltip
:
{
trigger
:
'item'
,
formatter
:
'{a} <br/>{b} : {c} ({d}%)'
},
legend
:
{
type
:
'scroll'
,
orient
:
'vertical'
,
right
:
10
,
top
:
20
,
bottom
:
20
,
data
:
this
.
list
.
legendData
,
selected
:
this
.
list
.
selected
},
series
:
[
{
name
:
'姓名'
,
type
:
'pie'
,
radius
:
'55%'
,
center
:
[
'40%'
,
'50%'
],
data
:
this
.
list
.
seriesData
,
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
myCharts
.
setOption
(
option
)
},
genData
(
count
)
{
var
legendData
=
[]
var
seriesData
=
[]
for
(
var
i
=
0
;
i
<
count
;
i
++
)
{
var
name
=
Math
.
random
()
>
0.65
?
this
.
makeWord
(
4
,
1
)
+
'·'
+
this
.
makeWord
(
3
,
0
)
:
this
.
makeWord
(
2
,
1
)
legendData
.
push
(
name
)
seriesData
.
push
({
name
:
name
,
value
:
Math
.
round
(
Math
.
random
()
*
100000
)
})
}
return
{
legendData
:
legendData
,
seriesData
:
seriesData
}
},
makeWord
(
max
,
min
)
{
var
nameLen
=
Math
.
ceil
(
Math
.
random
()
*
max
+
min
)
var
name
=
[]
for
(
var
i
=
0
;
i
<
nameLen
;
i
++
)
{
name
.
push
(
this
.
nameList
[
Math
.
round
(
Math
.
random
()
*
this
.
nameList
.
length
-
1
)
]
)
}
return
name
.
join
(
''
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/fault/pie3.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie3(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
pie
()
},
methods
:
{
pie
()
{
let
dom
=
document
.
getElementById
(
'pie3'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
tooltip
:
{
trigger
:
'item'
},
legend
:
{
orient
:
'horizontal'
,
top
:
'1%'
},
series
:
[
{
type
:
'pie'
,
radius
:
'50%'
,
data
:
[
{
value
:
1048
,
name
:
'搜索引擎'
},
{
value
:
735
,
name
:
'直接访问'
},
{
value
:
580
,
name
:
'邮件营销'
},
{
value
:
484
,
name
:
'联盟广告'
},
{
value
:
300
,
name
:
'视频广告'
}
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/fault/pie4.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie4(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
data
()
{
return
{
legendData
:
[],
nameList
:
[
'赵'
,
'钱'
,
'孙'
,
'范'
,
'屈'
,
'项'
,
'祝'
,
'董'
,
'梁'
,
'杜'
,
'阮'
,
'蓝'
,
'闵'
,
'席'
,
'季'
,
'麻'
,
'强'
,
'贾'
,
'路'
,
'娄'
,
'危'
],
list
:
{}
}
},
created
()
{
this
.
list
=
this
.
genData
(
30
)
},
mounted
()
{
this
.
ring
()
console
.
log
(
this
.
list
)
},
methods
:
{
ring
()
{
let
dom
=
document
.
getElementById
(
'pie4'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
tooltip
:
{
trigger
:
'item'
,
formatter
:
'{a} <br/>{b} : {c} ({d}%)'
},
legend
:
{
type
:
'scroll'
,
orient
:
'vertical'
,
right
:
10
,
top
:
20
,
bottom
:
20
,
data
:
this
.
list
.
legendData
,
selected
:
this
.
list
.
selected
},
series
:
[
{
name
:
'姓名'
,
type
:
'pie'
,
radius
:
'55%'
,
center
:
[
'40%'
,
'50%'
],
data
:
this
.
list
.
seriesData
,
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
myCharts
.
setOption
(
option
)
},
genData
(
count
)
{
var
legendData
=
[]
var
seriesData
=
[]
for
(
var
i
=
0
;
i
<
count
;
i
++
)
{
var
name
=
Math
.
random
()
>
0.65
?
this
.
makeWord
(
4
,
1
)
+
'·'
+
this
.
makeWord
(
3
,
0
)
:
this
.
makeWord
(
2
,
1
)
legendData
.
push
(
name
)
seriesData
.
push
({
name
:
name
,
value
:
Math
.
round
(
Math
.
random
()
*
100000
)
})
}
return
{
legendData
:
legendData
,
seriesData
:
seriesData
}
},
makeWord
(
max
,
min
)
{
var
nameLen
=
Math
.
ceil
(
Math
.
random
()
*
max
+
min
)
var
name
=
[]
for
(
var
i
=
0
;
i
<
nameLen
;
i
++
)
{
name
.
push
(
this
.
nameList
[
Math
.
round
(
Math
.
random
()
*
this
.
nameList
.
length
-
1
)
]
)
}
return
name
.
join
(
''
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/indoor/chart.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart
()
},
methods
:
{
chart
()
{
let
dom
=
document
.
getElementById
(
'chart'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'温度(℃)'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
label
:
{
show
:
true
,
position
:
'top'
},
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#81befd'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#13B0FF'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/indoor/chart2.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart2(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart2
()
},
methods
:
{
chart2
()
{
let
dom
=
document
.
getElementById
(
'chart2'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'湿度(%)'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
label
:
{
show
:
true
,
position
:
'top'
},
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#36CBCB'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#13B0FF'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/indoor/chart3.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart3(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart3
()
},
methods
:
{
chart3
()
{
let
dom
=
document
.
getElementById
(
'chart3'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'CO2(PPM)'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
label
:
{
show
:
true
,
position
:
'top'
},
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#4ECB74'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#13B0FF'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/indoor/index.vue
0 → 100644
View file @
db3f247e
<
template
lang=
"pug"
>
card-warp(title="室内气象分析" height='45px' )
div(slot="right")
//- span 时间范围:
//- el-date-picker.margin-lr-20(
//- size='mini'
//- v-model="dateValue",
//- type="daterange",
//- align="right",
//- unlink-panels,
//- range-separator="至",
//- start-placeholder="开始日期",
//- end-placeholder="结束日期",
//- :picker-options="pickerOptions"
//- )
//- el-button(size='mini' type='primary') 查询
router-link.margin-lr-20(:to="{name:'kb-indoor'}")
el-button(size='mini' type='primary') 图形 / 列表
//- el-button(size='mini' type='primary' icon='el-icon-download') 下载
div(slot="content", style="height: 90%")
el-tabs.myTabs(v-model="activeName", @tab-click="tabClick")
el-tab-pane(label="候车室区域", name="1")
el-tab-pane(label="办公区域", name="2")
el-form(:inline='true')
el-form-item(label='时间范围:')
el-date-picker.margin-lr-20(
size='mini'
v-model="dateValue",
type="daterange",
align="right",
unlink-panels,
range-separator="至",
start-placeholder="开始日期",
end-placeholder="结束日期",
:picker-options="pickerOptions"
)
el-form-item(label='')
el-button(size='mini' type='primary') 查询
.echartsWarp(width="100%", flex)
div
chart
div
chart2
div
chart3
div
pie4
</
template
>
<
script
>
import
chart
from
'./chart'
import
chart2
from
'./chart2'
import
chart3
from
'./chart3'
import
pie4
from
'./pie4'
export
default
{
components
:
{
chart
,
chart2
,
chart3
,
pie4
},
data
()
{
return
{
activeName
:
'1'
,
dateValue
:
''
,
pickerOptions
:
{
shortcuts
:
[
{
text
:
'最近一周'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近一个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近三个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
}
]
}
}
},
methods
:
{
tabClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
)
},
getDataList
()
{
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.myTabs
{
/
deep
/ .
el-tabs__nav-wrap
:
:
after
{
height
:
0
;
}
/
deep
/
.el-tabs__nav-wrap
{
background
:
#f2f4f5
;
.el-tabs__nav
{
// background: #E5E9EC;
border-bottom
:
1px
solid
#e5e9ec
;
}
}
/
deep
/
.el-tabs__header
{
border
:
1px
solid
#e5e9ec
;
}
/
deep
/
.el-tabs__item
:nth-child
(
2
)
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item
:last-child
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item.is-active
{
background
:
#fff
;
}
}
.echartsWarp
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
height
:
calc
(
100vh
-
350px
);
>
div
{
width
:
48%
;
height
:
calc
(
90%
/
2
);
margin
:
3px
;
padding
:
13px
;
box-shadow
:
0px
0px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
.title
{
font-size
:
16px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
600
;
color
:
#000000
;
line-height
:
40px
;
&
:
:
before
{
content
:
""
;
display
:
inline-block
;
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
background
:
#0097ff
;
margin
:
0
10px
;
}
}
}
}
</
style
>
src/pages/analysis/indoor/pie4.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie4(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
pie
()
},
methods
:
{
pie
()
{
let
dom
=
document
.
getElementById
(
'pie4'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
title
:
{
text
:
'故障报警'
},
tooltip
:
{
trigger
:
'item'
},
legend
:
{
top
:
'5%'
,
left
:
'center'
},
series
:
[
{
name
:
'访问来源'
,
type
:
'pie'
,
radius
:
[
'40%'
,
'70%'
],
avoidLabelOverlap
:
false
,
itemStyle
:
{
borderRadius
:
10
,
borderColor
:
'#fff'
,
borderWidth
:
2
},
label
:
{
show
:
false
,
position
:
'center'
},
emphasis
:
{
label
:
{
show
:
true
,
fontSize
:
'20'
,
fontWeight
:
'bold'
}
},
labelLine
:
{
show
:
false
},
data
:
[
{
value
:
1048
,
name
:
'搜索引擎'
},
{
value
:
735
,
name
:
'直接访问'
},
{
value
:
580
,
name
:
'邮件营销'
},
{
value
:
484
,
name
:
'联盟广告'
},
{
value
:
300
,
name
:
'视频广告'
}
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart
()
},
methods
:
{
chart
()
{
let
dom
=
document
.
getElementById
(
'chart'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'温度'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#21ACFC'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#21ACFC'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart2.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart2(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart2
()
},
methods
:
{
chart2
()
{
let
dom
=
document
.
getElementById
(
'chart2'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'湿度'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#36CBCB'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#36CBCB'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart3.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart3(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart3
()
},
methods
:
{
chart3
()
{
let
dom
=
document
.
getElementById
(
'chart3'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'风速'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#3AA0FF'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#3AA0FF'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart4.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart4(:style="{ width: '100%', height: '90%'}")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart4
()
},
methods
:
{
chart4
()
{
let
dom
=
document
.
getElementById
(
'chart4'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'光照'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#FAD337'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#FAD337'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart5.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart5(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart5
()
},
methods
:
{
chart5
()
{
let
dom
=
document
.
getElementById
(
'chart5'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'CO2'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#4ECB74'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#4ECB74'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart6.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart6(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart6
()
},
methods
:
{
chart6
()
{
let
dom
=
document
.
getElementById
(
'chart6'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'PM2.5'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#999999'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#999999'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/chart7.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#chart7(:style="{ width: '100%', height: '90%' }")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
chart7
()
},
methods
:
{
chart7
()
{
let
dom
=
document
.
getElementById
(
'chart7'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
// color:['#D0F0FF'],
title
:
{
text
:
'辐射'
},
tooltip
:
{
trigger
:
'axis'
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'订单数量'
,
type
:
'line'
,
stack
:
'总量'
,
smooth
:
true
,
// label: {
// show: true,
// position: 'top'
// },
areaStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
'#975FE4'
// 0% 处的颜色
},
{
offset
:
1
,
color
:
'#fff'
// 100% 处的颜色
}
])
}
},
lineStyle
:
{
color
:
'#975FE4'
},
itemStyle
:
{
normal
:
{
color
:
'#13B0FF'
}
},
emphasis
:
{
focus
:
'series'
},
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/analysis/outdoor/index.vue
0 → 100644
View file @
db3f247e
<
template
lang=
"pug"
>
card-warp(title="室外气象分析" height='45px' )
div(slot="right")
router-link.margin-lr-20(:to="{name:'kb-indoor'}")
el-button(size='mini' type='primary') 图形 / 列表
div(slot="content", style="height: 90%")
el-tabs.myTabs(v-model="activeName", @tab-click="tabClick")
el-tab-pane(label="候车室区域", name="1")
el-tab-pane(label="办公区域", name="2")
el-form(:inline='true' size="mini" )
el-form-item(label='设备名称:')
el-input(type='primary' size='mini')
el-form-item(label='时间范围:')
el-date-picker(
size='mini'
v-model="dateValue",
type="daterange",
align="right",
unlink-panels,
range-separator="至",
start-placeholder="开始日期",
end-placeholder="结束日期",
:picker-options="pickerOptions"
)
el-button(size='mini' type='primary') 查询
.echartsWarp(width="100%", flex)
div
chart
div
chart2
div
chart3
div
chart4
div
chart5
div
chart6
div
chart7
div
pie8
</
template
>
<
script
>
import
chart
from
'./chart'
import
chart2
from
'./chart2'
import
chart3
from
'./chart3'
import
chart4
from
'./chart4'
import
chart5
from
'./chart5'
import
chart6
from
'./chart6'
import
chart7
from
'./chart7'
import
pie8
from
'./pie8'
export
default
{
components
:
{
chart
,
chart2
,
chart3
,
chart4
,
chart5
,
chart6
,
chart7
,
pie8
},
data
()
{
return
{
activeName
:
'1'
,
dateValue
:
''
,
pickerOptions
:
{
shortcuts
:
[
{
text
:
'最近一周'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近一个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
},
{
text
:
'最近三个月'
,
onClick
(
picker
)
{
const
end
=
new
Date
()
const
start
=
new
Date
()
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
)
picker
.
$emit
(
'pick'
,
[
start
,
end
])
}
}
]
}
}
},
methods
:
{
tabClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
)
},
getDataList
()
{
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.myTabs
{
/
deep
/ .
el-tabs__nav-wrap
:
:
after
{
height
:
0
;
}
/
deep
/
.el-tabs__nav-wrap
{
background
:
#f2f4f5
;
.el-tabs__nav
{
// background: #E5E9EC;
border-bottom
:
1px
solid
#e5e9ec
;
}
}
/
deep
/
.el-tabs__header
{
border
:
1px
solid
#e5e9ec
;
}
/
deep
/
.el-tabs__item
:nth-child
(
2
)
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item
:last-child
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item.is-active
{
background
:
#fff
;
}
}
.echartsWarp
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
wrap
;
height
:
calc
(
100vh
-
350px
);
>
div
{
width
:
23%
;
height
:
calc
(
90%
/
2
);
margin
:
3px
;
padding
:
13px
;
box-shadow
:
0px
0px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
.title
{
font-size
:
16px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
600
;
color
:
#000000
;
line-height
:
40px
;
&
:
:
before
{
content
:
""
;
display
:
inline-block
;
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
background
:
#0097ff
;
margin
:
0
10px
;
}
}
}
}
</
style
>
src/pages/analysis/outdoor/pie8.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
#pie4(:style="{ width: '100%', height: '95%' }")
</
template
>
<
script
>
export
default
{
mounted
()
{
this
.
pie
()
},
methods
:
{
pie
()
{
let
dom
=
document
.
getElementById
(
'pie4'
)
if
(
!
dom
)
return
let
myCharts
=
this
.
$echarts
.
init
(
dom
)
let
option
=
{
color
:
[
'#F2637B'
,
'#eeeeee'
],
title
:
{
text
:
'故障报警'
},
series
:
[
{
name
:
''
,
type
:
'pie'
,
radius
:
[
'50%'
,
'70%'
],
avoidLabelOverlap
:
false
,
hoverAnimation
:
false
,
//关闭放大动画
selectedOffset
:
0
,
//选中块的偏移量
label
:
{
show
:
false
,
position
:
'center'
,
formatter
:
'{d}%'
},
emphasis
:
{
label
:
{
show
:
true
,
fontSize
:
'20'
,
fontWeight
:
'bold'
}
},
labelLine
:
{
show
:
false
},
data
:
[
{
value
:
60
,
name
:
'直接访问'
,
selected
:
true
,
//默认选中第一块
label
:
{
show
:
true
,
//默认显示第一块
fontSize
:
'20'
,
fontWeight
:
'bold'
}
},
{
value
:
100
,
name
:
'总故障'
,
label
:
{
show
:
false
,
//默认显示第一块
fontSize
:
'20'
,
fontWeight
:
'bold'
}
}
]
}
]
}
myCharts
.
setOption
(
option
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/components/cardWarp.vue
0 → 100644
View file @
db3f247e
<
template
lang=
'pug'
>
.card-warp
.card-header(:style="{height,'line-height':height}" :class=" showBackground ? 'bg' : '' ")
span.card-title
{{
title
}}
slot(name="right")
.card-content
slot(name="content")
</
template
>
<
script
>
export
default
{
name
:
'card-warp'
,
props
:
{
title
:
{
type
:
String
,
default
:
'数据统计'
},
height
:
{
type
:
String
,
default
:
'74px'
},
showBackground
:
{
type
:
Boolean
,
default
:
false
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.card-warp
{
width
:
100%
;
height
:
100%
;
.card-header
{
display
:
flex
;
justify-content
:
space-between
;
// height: 74px;
// line-height: 74px;
padding
:
0
20px
;
border-bottom
:
1px
solid
#ececec
;
.card-title
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
font-size
:
16px
;
font-weight
:
600
;
&
:
:
before
{
content
:
""
;
display
:
inline-block
;
padding-right
:
5px
;
margin-right
:
10px
;
height
:
16px
;
background
:
#21acfc
;
}
}
}
.card-content
{
margin
:
20px
;
height
:
calc
(
100%
-
100px
);
}
}
.bg
{
background
:
#F2FAFF
;
}
</
style
>
src/pages/components/tablePagination.vue
0 → 100644
View file @
db3f247e
<
template
>
<el-pagination
:current-page=
"currentPage"
:page-sizes=
"[10, 20, 50, 100]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"newtotalSize"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
>
</el-pagination>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
newtotalSize
:
this
.
totalSize
,
newpageSize
:
this
.
pageSize
,
currentPage
:
1
// 当前页
}
},
watch
:
{
totalSize
(
n
,
o
)
{
this
.
newtotalSize
=
n
}
},
props
:
{
// 每页展示多少条数据
pageSize
:
{
type
:
Number
,
default
:
10
},
// 数据总条数
totalSize
:
{
type
:
Number
,
default
:
0
}
},
methods
:
{
// pageSize 改变时会触发
handleSizeChange
(
val
)
{
this
.
newpageSize
=
val
this
.
$emit
(
'parentMethod'
,
this
.
currentPage
,
val
)
},
// currentPage 改变时会触发
handleCurrentChange
(
val
)
{
this
.
currentPage
=
val
this
.
$emit
(
'parentMethod'
,
val
,
this
.
newpageSize
)
}
}
}
</
script
>
<
style
>
</
style
>
src/pages/eq/hall/page.vue
View file @
db3f247e
...
@@ -260,6 +260,7 @@ export default {
...
@@ -260,6 +260,7 @@ export default {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.hall
{
.hall
{
height
:
100%
;
height
:
100%
;
padding
:
10px
10px
40px
10px
;
.el-input__inner
{
.el-input__inner
{
height
:
30px
;
height
:
30px
;
}
}
...
...
src/pages/home/page.vue
View file @
db3f247e
...
@@ -200,6 +200,7 @@ export default {
...
@@ -200,6 +200,7 @@ export default {
.home-page
{
.home-page
{
height
:
100%
;
height
:
100%
;
width
:
100%
;
width
:
100%
;
padding
:
10px
10px
40px
10px
;
// overflow: auto;
// overflow: auto;
&
-top
{
&
-top
{
margin-bottom
:
24px
;
margin-bottom
:
24px
;
...
...
src/pages/kb/indoor copy/index.vue
0 → 100644
View file @
db3f247e
<
template
>
<div>
</div>
</
template
>
<
script
>
export
default
{
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/pages/kb/indoor/index.vue
0 → 100644
View file @
db3f247e
<
template
lang=
"pug"
>
card-warp(title="室内气象数据" height='45px' showBackground )
div(slot='right')
router-link.margin-lr-20(:to="{name:'analysis-indoor'}")
el-button(size='mini' type='primary') 综合图形
div(slot="content", style="height: 90%")
el-tabs.myTabs(v-model="activeName", @tab-click="tabClick")
el-tab-pane(label="候车室区域", name="1")
el-tab-pane(label="办公区域", name="2")
el-form(:inline='true')
el-form-item(label='设备编号:')
el-input(size='mini')
el-form-item(label='')
el-button(type='primary' size='mini') 查询
.data-warp
div.data-item
p.type 温度
p.color-blue
span.num 37
span.unit ℃
div.data-item
p.type 湿度
p.color-cyan
span.num 25
span.unit %RH
div.data-item()
p.type CO2
p.color-green
span.num 17
span.unit PPM
el-table(size="mini" :data='dataList' stripe v-loading='dataListLoading' style='width: 100%;' :header-cell-style="{ background: '#EEF8FF', color: '#333333' }")
el-table-column(:resizable="false" type="index" header-align='center' align='center' width="50" label='序号')
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' width='240' label='设备编号')
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' width='240' label='设备名称')
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' width='240' label='温度(℃)')
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' label='混度(%RH)')
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' )
span(slot='header')
span CO
sub 2
span ( PPM )
el-table-column(:resizable="false" prop='visitorId' header-align='center' align='center' label='设备状态')
el-table-column( :resizable="false" header-align='center' align='center' width='180' label='操作内容')
template(slot-scope='scope')
el-button(type='text' size='small' @click='showParams(scope.row)') 历史数据
el-button(type='text' size='small' @click='showParams(scope.row)') 统计图表
tablePagination(:pageSize="pageSize" :totalSize="totalPage" @parentMethod='getDataList')
</
template
>
<
script
>
import
tablePagination
from
'@/pages/components/tablePagination'
export
default
{
components
:
{
tablePagination
},
data
()
{
return
{
activeName
:
'1'
,
dataList
:
[{
id
:
1
}],
dataListLoading
:
false
,
pageSize
:
50
,
totalPage
:
0
}
},
methods
:
{
tabClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
)
},
getDataList
()
{
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.myTabs
{
/
deep
/ .
el-tabs__nav-wrap
:
:
after
{
height
:
0
;
}
/
deep
/
.el-tabs__nav-wrap
{
background
:
#f2f4f5
;
.el-tabs__nav
{
// background: #E5E9EC;
border-bottom
:
1px
solid
#e5e9ec
;
}
}
/
deep
/
.el-tabs__header
{
border
:
1px
solid
#e5e9ec
;
}
/
deep
/
.el-tabs__item
:nth-child
(
2
)
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item
:last-child
{
padding
:
0
20px
;
}
/
deep
/
.el-tabs__item.is-active
{
background
:
#fff
;
}
}
.data-warp
{
display
:
flex
;
justify-content
:
space-between
;
text-align
:
center
;
margin-bottom
:
20px
;
.data-item
{
width
:
32%
;
height
:
153px
;
background
:
#FFFFFF
;
border
:
1px
solid
#ECECEC
;
box-shadow
:
0px
0px
10px
0px
rgba
(
0
,
0
,
0
,
0
.08
);
.type
{
height
:
19px
;
font-size
:
18px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
400
;
color
:
#333333
;
line-height
:
60px
;
}
.num
{
height
:
28px
;
font-size
:
36px
;
font-family
:
PingFang
SC
;
font-weight
:
600
;
color
:
#21ACFC
;
line-height
:
60px
;
}
.unit
{
height
:
15px
;
font-size
:
18px
;
font-family
:
Microsoft
YaHei
;
font-weight
:
400
;
}
}
}
</
style
>
src/pages/kb/power/page.vue
View file @
db3f247e
...
@@ -222,6 +222,7 @@ export default {
...
@@ -222,6 +222,7 @@ export default {
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.use-electro-data
{
.use-electro-data
{
padding
:
10px
10px
40px
10px
;
.el-form-item
{
.el-form-item
{
margin-bottom
:
15px
;
margin-bottom
:
15px
;
margin-top
:
15px
;
margin-top
:
15px
;
...
...
src/pages/login/page.vue
View file @
db3f247e
This diff is collapsed.
Click to expand it.
src/pages/sys/role/index 复制.vue
deleted
100644 → 0
View file @
4d1ec48f
This diff is collapsed.
Click to expand it.
src/pages/sys/role/role-add-or-update.vue
View file @
db3f247e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
div.title-bold(slot='title')
{{
!
id
?
'新增角色'
:
'编辑角色'
}}
div.title-bold(slot='title')
{{
!
id
?
'新增角色'
:
'编辑角色'
}}
div()
div()
el-form(:model='dataForm' :rules='dataRule', ref='dataForm', label-width='80px')
el-form(:model='dataForm' :rules='dataRule', ref='dataForm', label-width='80px')
el-row(
:sapn='24'
)
el-row()
el-col(:span='24' )
el-col(:span='24' )
el-form-item(label='角色名称', prop='roleName')
el-form-item(label='角色名称', prop='roleName')
el-input.mywidth(v-model='dataForm.roleName', placeholder='角色名称')
el-input.mywidth(v-model='dataForm.roleName', placeholder='角色名称')
...
...
src/plugin/axios/index.js
View file @
db3f247e
...
@@ -230,7 +230,6 @@ service.interceptors.response.use(
...
@@ -230,7 +230,6 @@ service.interceptors.response.use(
sessionStorage
.
removeItem
(
'token'
)
sessionStorage
.
removeItem
(
'token'
)
sessionStorage
.
removeItem
(
'uuid'
)
sessionStorage
.
removeItem
(
'uuid'
)
if
(
this
)
{
if
(
this
)
{
this
.
$parent
.
getDateList
()
//清空接管提示框
//清空接管提示框
this
.
$store
.
dispatch
(
'd2admin/takeover/setTakeover'
,
null
)
this
.
$store
.
dispatch
(
'd2admin/takeover/setTakeover'
,
null
)
}
}
...
...
src/router/routes.js
View file @
db3f247e
...
@@ -39,10 +39,12 @@ const frameIn = [
...
@@ -39,10 +39,12 @@ const frameIn = [
component
:
layoutHeaderAside
,
component
:
layoutHeaderAside
,
children
:(
pre
=>
[
children
:(
pre
=>
[
{
path
:
'power'
,
name
:
`
${
pre
}
power`
,
component
:
()
=>
import
(
'@/pages/kb/power'
),
meta
:
{
...
meta
,
title
:
'用电数据'
}
},
{
path
:
'power'
,
name
:
`
${
pre
}
power`
,
component
:
()
=>
import
(
'@/pages/kb/power'
),
meta
:
{
...
meta
,
title
:
'用电数据'
}
},
{
path
:
'indoor'
,
name
:
`
${
pre
}
indoor`
,
component
:
()
=>
import
(
'@/pages/kb/indoor'
),
meta
:
{
...
meta
,
title
:
'室内气象数据'
}
}
])(
'kb-'
)
])(
'kb-'
)
},
},
// 数据分析
// 数据分析
{
{
path
:
'/analysis'
,
path
:
'/analysis'
,
...
@@ -52,8 +54,10 @@ const frameIn = [
...
@@ -52,8 +54,10 @@ const frameIn = [
children
:
(
pre
=>
[
children
:
(
pre
=>
[
{
path
:
'fault'
,
name
:
`
${
pre
}
fault`
,
component
:
()
=>
import
(
'@/pages/analysis/fault'
),
meta
:
{
...
meta
,
title
:
'设备故障报警'
}
},
{
path
:
'fault'
,
name
:
`
${
pre
}
fault`
,
component
:
()
=>
import
(
'@/pages/analysis/fault'
),
meta
:
{
...
meta
,
title
:
'设备故障报警'
}
},
{
path
:
'energy'
,
name
:
`
${
pre
}
energy`
,
component
:
()
=>
import
(
'@/pages/analysis/energy'
),
meta
:
{
...
meta
,
title
:
'能耗数据分析'
}
}
{
path
:
'energy'
,
name
:
`
${
pre
}
energy`
,
component
:
()
=>
import
(
'@/pages/analysis/energy'
),
meta
:
{
...
meta
,
title
:
'能耗数据分析'
}
}
,
{
path
:
'indoor'
,
name
:
`
${
pre
}
indoor`
,
component
:
()
=>
import
(
'@/pages/analysis/indoor'
),
meta
:
{
...
meta
,
title
:
'室内气象分析'
}
},
{
path
:
'outdoor'
,
name
:
`
${
pre
}
outdoor`
,
component
:
()
=>
import
(
'@/pages/analysis/outdoor'
),
meta
:
{
...
meta
,
title
:
'室外气象分析'
}
}
])(
'analysis-'
)
])(
'analysis-'
)
},
},
// 系统管理
// 系统管理
...
...
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