diff --git a/src/assets/img/view/fire.png b/src/assets/img/view/fire.png
new file mode 100644
index 0000000..1e28f9f
Binary files /dev/null and b/src/assets/img/view/fire.png differ
diff --git a/src/assets/img/view/fire2.png b/src/assets/img/view/fire2.png
new file mode 100644
index 0000000..8ef599f
Binary files /dev/null and b/src/assets/img/view/fire2.png differ
diff --git a/src/assets/img/view/play.png b/src/assets/img/view/play.png
new file mode 100644
index 0000000..25a71ff
Binary files /dev/null and b/src/assets/img/view/play.png differ
diff --git a/src/assets/img/view/tree-icon.png b/src/assets/img/view/tree-icon.png
new file mode 100644
index 0000000..46fb1f0
Binary files /dev/null and b/src/assets/img/view/tree-icon.png differ
diff --git a/src/assets/img/view/view.png b/src/assets/img/view/view.png
new file mode 100644
index 0000000..cb3ab5b
Binary files /dev/null and b/src/assets/img/view/view.png differ
diff --git a/src/assets/style/pageCommon.component.scss b/src/assets/style/pageCommon.component.scss
index 599b63c..54a3d4b 100644
--- a/src/assets/style/pageCommon.component.scss
+++ b/src/assets/style/pageCommon.component.scss
@@ -2777,4 +2777,350 @@ svg.loading-icon {
margin-right: 6px;
}
}
+.tree-box{
+ width: 330px;
+ height: 300px;
+ padding: 14px;
+ background: rgba(0,0,0,0.5);
+ box-shadow: 0 10px 20px -10px #000000;
+ border-radius: 6px;
+ border: 1px solid;
+ border-image: linear-gradient(165deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0)) 1 1;
+}
+.tree-line{
+ &.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
+ background: rgba(125, 174, 255, 0.7);
+ }
+ &::before{
+ content: "";
+ height: 79%;
+ width: 1px;
+ position: absolute;
+ left: 23px;
+ top: 14px;
+ border-width: 1px;
+ border-left: 1px solid #ffffff;
+ }
+ & > div[role="treeitem"] {
+ padding-bottom: 10px;
+ }
+ .white{
+ color: #FFFFFF;
+ font-size: 14px;
+ }
+ .custom-tree-node{
+ position: relative;
+ left: 8px;
+ width: 100%;
+ .doc-style{
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ background-color: #FFFFFF;
+ position: absolute;
+ left: -11px;
+ }
+ }
+ .right-icon{
+ transition: all .3s linear;
+ position: relative;
+ left: -10px;
+ }
+ .sub-item{
+ padding-left: 16px;
+ &::before{
+ content: '';
+ width: 12px;
+ height: 20px;
+ position: absolute;
+ left: -3px;
+ top: 9px;
+ border-width: 1px;
+ //border-top: 1px solid #ffffff;
+ }
+ &::after{
+ content: "";
+ height: 130%;
+ width: 1px;
+ position: absolute;
+ left: -1px;
+ top: 0px;
+ border: none;
+ }
+ }
+ .is-expanded{
+ .sub-item{
+ padding-left: 8px;
+ &::before{
+ content: '';
+ width: 3px;
+ height: 20px;
+ position: absolute;
+ left: -3px;
+ top: 9px;
+ border-width: 1px;
+ //border-top: 1px solid #ffffff;
+ }
+ &::after{
+ content: "";
+ height: 100%;
+ width: 1px;
+ position: absolute;
+ left: -1px;
+ top: 10px;
+ border-width: 1px;
+ border-left: 1px solid #ffffff;
+ }
+ }
+ .sub-item-border-none{
+ &::after{
+ content: "";
+ height: 130%;
+ width: 1px;
+ position: absolute;
+ left: -1px;
+ top: 0px;
+ border: none;
+
+ }
+ }
+
+ }
+ div[role="treeitem"].is-expanded > div.el-tree-node__content > div > span:nth-child(2),
+ div[role="group"] div[role="treeitem"].is-expanded,
+ {
+ .right-icon{
+ transform: rotate(90deg);
+ transition: all .3s linear;
+ }
+ }
+
+ &.el-tree,.el-tree-node__content, .el-upload-list__item{
+ background: transparent;
+ &:hover,&:focus,&:active,&:visited{
+ background: transparent;
+
+ }
+ }
+ .el-tree-node:focus>.el-tree-node__content{
+ background: transparent;
+ }
+
+ .tree-level-1-icon{
+ width: 24px;
+ height: 24px;
+ background: #FFFFFF;
+ border-radius: 2px;
+ position: relative;
+ left: -12px;
+ }
+
+
+ margin-top:10px;
+ .el-tree-node {
+ position: relative;
+ color: black;
+ padding: 0;
+ padding-left: 10px; // 缩进量
+ }
+ .el-tree-node__children {
+ padding-left: 16px; // 缩进量
+ }
+
+ // 竖线
+ .el-tree-node::before {
+ content: "";
+ height: 100%;
+ width: 1px;
+ position: absolute;
+ left: -3px;
+ top: -13px;
+ border-width: 1px;
+ border-left: 1px solid #ffffff;
+ }
+ // 当前层最后一个节点的竖线高度固定
+ .el-tree-node:last-child::before {
+ height: 34px; // 可以自己调节到合适数值
+ }
+
+ // 横线
+ .el-tree-node::after {
+ content: "";
+ width: 27px;
+ //width: 16px;
+ height: 20px;
+ position: absolute;
+ left: -3px;
+ top: 20px;
+ border-width: 1px;
+ border-top: 1px solid #ffffff;
+ content: "";
+
+ }
+ // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
+ & > .el-tree-node::after {
+ border-top: none;
+ }
+ & > .el-tree-node::before {
+ border-left: none;
+ }
+
+ .el-tree-node__content{
+ padding-left:0 !important;
+ color:#444;
+ height: 40px;
+ // 树缩进样式
+ .el-icon-caret-right::before{
+ content: "";
+ width:14px;
+ height:14px;
+ background-size: 100% 100%;
+ border-radius: 3px;
+ display: inline-block;
+ }
+ .el-tree-node__expand-icon.expanded{
+ transform: rotate(0);
+ }
+ // 树展开样式
+ .el-tree-node__expand-icon.expanded::before{
+ content: "";
+ width:0;
+ height:0;
+ background-size: 100% 100%;
+ border-radius: 3px;
+ display: inline-block;
+ }
+ .el-tree-node__expand-icon.is-leaf::before{
+ content: "";
+ }
+ .el-icon-caret-right.is-leaf::before{
+ content: "";
+ display: none;
+ }
+ .custom-tree-node .file_class{
+ color: #ffb400;
+ }
+ .custom-tree-node .label{
+ margin-left:5px;
+ }
+ .custom-tree-node .no_children{
+ color: #aaa;
+ }
+ }
+ // 使用flex布局对custom-tree-node_body盒子进行排版
+ .custom-tree-node_body{
+ width:100%;
+ display: flex;
+ justify-content: space-between;
+ // margin-top:-3px;
+ }
+ .tree_form_left_tree_icon{
+ padding:0 3px;
+ font-size:16px;
+ color:#666;
+ i{
+ margin:0 4px;
+ }
+ }
+ .tree_form_left_tree_icon:hover{
+ cursor: pointer;
+ }
+ // 展开关闭的icon
+ .el-tree-node__expand-icon{
+ font-size: 16px;
+ padding: 0 3px;
+ // 叶子节点(无子节点)
+ &.is-leaf{
+ color: transparent;
+ // display: none; // 也可以去掉
+ }
+ }
+
+}
+.view-list{
+ &-item{
+ width: 330px;
+ height: 186px;
+ border-radius: 8px;
+ background-color: #1B6BEB;
+ position: relative;
+ margin-bottom: 20px;
+ &:last-child{
+ margin-bottom: 0;
+ }
+ &-title{
+ position: absolute;
+ bottom: 0;
+ border-radius: 0 0 8px 8px;
+ background: rgba(0,0,0,0.7);
+ height: 34px;
+ line-height: 34px;
+ width: 100%;
+ }
+
+ .cover {
+ top: 0;
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ position: absolute;
+ background-color: rgba(0, 0, 0, 0.5);
+ opacity: 0;
+ cursor: pointer;
+ }
+
+ /* 鼠标hover,显示遮罩,设置过渡时间 */
+ .cover:hover {
+ transition: all .4s;
+ opacity: 1;
+ }
+ }
+}
+.view-right-title{
+ font-size: 20px;
+ color: #FFFFFF;
+ padding: 20px 0;
+ border-bottom: 1px solid rgba(216,216,216,0.4);;
+}
+.sub-title{
+ font-size: 16px;
+ margin-bottom: 16px;
+ margin-top: 16px;
+}
+.text-con{
+ color: rgba(255, 255, 255, 0.6);
+ font-size: 14px;
+}
+.right-view-list{
+ height: 1px;
+ flex: 1;
+ overflow-y: auto;
+ @include scrollStyle(2px);
+}
+.right-view-item{
+ width: 350px;
+ height: 98px;
+ background: rgba(0,0,0,0.3);
+ border-radius: 8px;
+ border: 1px solid rgba(255,255,255,0.15);
+ padding-left: 3px;
+ margin-bottom: 10px;
+ cursor: pointer;
+ &:last-child{
+ margin-bottom: 0;
+ }
+ img{
+ margin-right: 12px;
+ }
+ p{
+ font-size: 16px;
+ padding: 0 0 10px 0;
+ }
+ .right-sub-text{
+ font-size: 12px;
+ }
+ .el-rate__icon{
+ margin-right: 0;
+ }
+}
diff --git a/src/components/home/right/chartData.js b/src/components/home/right/chartData.js
index 2c05362..92e12ff 100644
--- a/src/components/home/right/chartData.js
+++ b/src/components/home/right/chartData.js
@@ -98,9 +98,12 @@ export const lineChartData = function () {
],
tooltip: {
- show: false,
- alwaysShowContent: false,
- trigger: 'item'
+ trigger: 'item',
+ backgroundColor:"rgba(0,0,0,0.6)",
+ borderWidth:0,
+ textStyle:{
+ color:"rgba(255,255,255,0.8)",
+ },
},
grid: {
x: 30,
@@ -111,18 +114,23 @@ export const lineChartData = function () {
}
}
-export const roundChartData = function () {
+export const radarChartData = function () {
return {
- backgroundColor: "#0A2E5D",
- tooltip: {},
-
+ tooltip: {
+ trigger: 'item',
+ backgroundColor:"rgba(0,0,0,0.6)",
+ borderWidth:0,
+ textStyle:{
+ color:"rgba(255,255,255,0.8)",
+ },
+ },
radar: {
- radius: "50%", //大小
- nameGap: 20, // 图中工艺等字距离图的距离
+ radius: "70%", //大小
+ nameGap: 10, // 图中工艺等字距离图的距离
center: ["50%", "50%"], // 图的位置
name: {
textStyle: {
- color: "rgba(101, 213, 255, 1)",
+ color: "rgba(255,255,255,0.8)",
fontSize: 16
},
formatter: function(name) {
@@ -130,15 +138,14 @@ export const roundChartData = function () {
}
},
indicator: [
- {"name":'社会稳定',"max":"100"},
- {"name":'社会治安',"max":"100"},
- {"name":'交通安全',"max":"100"},
- {"name":'消防安全',"max":"100"},
- {"name":'公共安全',"max":"100"},
+ {"name":'1月',"max":"100"},
+ {"name":'2月',"max":"100"},
+ {"name":'3月',"max":"100"},
+ {"name":'4月',"max":"100"},
+ {"name":'5月',"max":"100"},
],
axisLine: {
lineStyle: {
-
color: "rgba(153, 409, 246, 0.2)"
},
show:true,
@@ -163,7 +170,7 @@ export const roundChartData = function () {
series: [
{
- name: "报警类型分析",
+ name: "物资统计",
type: "radar",
symbol: "angle",
itemStyle: {
@@ -176,16 +183,16 @@ export const roundChartData = function () {
symbol: "circle",
symbolSize: 5,
value: [70,42,63,84,75,34],
- areaStyle: { color: "rgba(64, 205, 241, 0.2)" },
+ areaStyle: { color: "rgba(125,174,255,0.5)" },
itemStyle: {
normal: {
borderWidth:1,
- color: "RGBA(0, 34, 66, 1)",
- borderColor: "rgba(146, 225, 255, 1)"
+ color: "#7FB0FF",
+ borderColor: "#7FB0FF"
}
},
lineStyle: {
- color: "rgba(146, 225, 255, 1)",
+ color: "#7FB0FF",
width: 1
}
}
diff --git a/src/components/home/right/confirm.component.vue b/src/components/home/right/confirm.component.vue
deleted file mode 100644
index 587a25c..0000000
--- a/src/components/home/right/confirm.component.vue
+++ /dev/null
@@ -1,289 +0,0 @@
-
-
-
-
- 确认警情
-
-
-
- 事故研判
-
-
- 预警类型:
- {{info.typeName}}
-
-
- 告警内容:
- {{info.content}}
-
-
- 告警级别:
- {{info.levelName}}
-
-
-
- 上报时间:
- {{info.time}}
-
-
- 上报位置:
- {{info.address}}
-
-
-
-
上报人:
-
{{info.reporter}}
-
一健联系
-
-
-
- 附近摄像头:
-
-
- 摄像头名称
- 类型
- 距离 (m)
-
-
-
- {{ item.name }}
- {{ item.type }}
- {{ item.distance }}
-
-
-
-
-
-
-
×
-
-
-
-
-
处理意见
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/home/right/homeRight.component.html b/src/components/home/right/homeRight.component.html
index 38b1646..bd8aa0f 100644
--- a/src/components/home/right/homeRight.component.html
+++ b/src/components/home/right/homeRight.component.html
@@ -3,7 +3,8 @@
能耗统计
-
+
@@ -13,7 +14,7 @@
安防设备
-
+
100/300
@@ -35,79 +36,8 @@
物资盘点
-
-
-
-
-
×
-
-
-
-
-
{{popTitle}}
-
-
- setData(val,'typeName')" class="item-radius-style">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
×
-
-
-
-
-
报警记录
-
- 告警类型
- 告警内容
- 报警内容
- 上报人员
- 事故地点
- 处理意见
-
-
-
- {{item.type}}
- {{item.content}}
- {{item.alarm}}
- {{item.reporter}}
- {{item.address}}
- {{item.suggestion}}
-
-
-
-
+
+
diff --git a/src/components/home/right/homeRight.component.ts b/src/components/home/right/homeRight.component.ts
index e2d28e6..c34b3ca 100644
--- a/src/components/home/right/homeRight.component.ts
+++ b/src/components/home/right/homeRight.component.ts
@@ -1,6 +1,6 @@
import {Component, Emit, Vue} from 'vue-property-decorator';
import template from "./homeRight.component.html"
-import {lineChartData} from "./chartData";
+import {lineChartData,radarChartData} from "./chartData";
import TitleComponent from "@/components/title.component.vue"
import * as echarts from 'echarts';
@@ -25,15 +25,11 @@ export default class HomeRightComponent extends Vue {
option: any = {}
//折线图实例
lineChart: any = {}
- // 计数
- count = 0
- public colors = [
- {color: '#FF5959', percentage: 20},
- {color: '#FFA900', percentage: 40},
- {color: '#FADFA4', percentage: 60},
- {color: '#C9FFD7', percentage: 80},
- {color: '#76c893', percentage: 100}
- ];
+ //雷达图数据
+ radarData: any = {}
+ //折线图实例
+ radar: any = {}
+
showPop = false
showLogPop = false
popTitle = '开启演练'
@@ -216,42 +212,17 @@ export default class HomeRightComponent extends Vue {
suggestion:'立即救援',
},
]
- //开始演练
- startDrill(){
- this.showPop = true
- }
- //报警记录
- showLog(){
- this.showLogPop = true
- }
- submitWaring(){
- this.showPop = false
- this.showPlan()
- }
- @Emit('showPlan')
- showPlan(){
- //
- }
- public textFormat(data){
- return ""
- }
- public getCount(data){
- this.count = 0;
- setTimeout(()=>{
- const timer = setInterval(()=>{
- if(this.count {
this.lineChart.clear()
this.lineChart.setOption(this.option)
- this.getCount(this.count)
}, 5000)
}
@@ -287,7 +257,6 @@ export default class HomeRightComponent extends Vue {
}
mounted() {
- this.getCount(70)
this.autoChangeLineData()
window.addEventListener("resize", this.resize);
}
diff --git a/src/components/home/right/judgment.component.vue b/src/components/home/right/judgment.component.vue
deleted file mode 100644
index f0ac06c..0000000
--- a/src/components/home/right/judgment.component.vue
+++ /dev/null
@@ -1,269 +0,0 @@
-
-
-
-
- 确认警情
-
-
- 事故研判
-
-
-
区域内人数:345
-
区域内车辆:45
-
附近危险源:4
-
附近应急设施:4
-
-
-
- 事故类型:
-
-
-
-
-
- 事故内容:
- {{info.content}}
-
- 修改
-
-
- 事故级别:
-
-
-
-
-
-
-
-
- 上报位置:
- {{info.address}}
-
-
- 修改
-
-
-
上报人:
-
{{ info.reporter }}
-
一健联系
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/title.component.vue b/src/components/title.component.vue
index c039363..645c342 100644
--- a/src/components/title.component.vue
+++ b/src/components/title.component.vue
@@ -8,18 +8,14 @@
查看更多
-
+
- 人工接警
+ 自由导览
-
- 缺失物资清单
-
-
@@ -36,9 +32,7 @@ export default class TitleComponent extends Vue {
//关闭按钮显示隐藏
@Prop({default: false}) showClose!: boolean;
//人工接警按钮显示隐藏
- @Prop({default: false}) showManual!: boolean;
- //缺失物资清单
- @Prop({default: false}) showList!: boolean;
+ @Prop({default: false}) showViewFlag!: boolean;
@Emit()
changeMore(){
@@ -48,13 +42,9 @@ export default class TitleComponent extends Vue {
changeClose(){
return this.showClose
}
- @Emit('addManual')
- addManual(){
- return this.showManual
- }
- @Emit('showListData')
- showListData(){
- return this.showManual
+ @Emit('showView')
+ showView(){
+ return this.showView
}
}
diff --git a/src/components/view/left/chartData.js b/src/components/view/left/chartData.js
new file mode 100644
index 0000000..efdb970
--- /dev/null
+++ b/src/components/view/left/chartData.js
@@ -0,0 +1,98 @@
+export const pieChartData = {
+ title: {
+ text: '90%',
+ subtext: '在线率',
+ itemGap: 5,
+ x: 105,
+ y: '37%',
+ textStyle: {
+ fontSize: 30,
+ fontWeight: '600',
+ fontStyle: 'italic',
+ color: '#E8E8E8',
+ },
+ subtextStyle: {
+ fontSize: 17,
+ fontWeight: 'normal',
+ align: "center",
+ color: '#E8E8E8'
+ },
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+ legend: {
+ orient: 'vertical',
+ right: '0%',
+ top: 'bottom',
+ height:100,
+ itemWidth: 10,
+ itemHeight: 10,
+ data: [
+ {value: 25, name: '气体'},
+ {value: 25, name: '水质'},
+ {value: 15, name: '特征污染物'},
+ {value: 20, name: '废气'},
+ {value: 15, name: '废水'}
+ ],
+ textStyle: {
+ color: '#D4E5FF',
+ padding: [5, 10, 5, 10]
+ },
+ },
+ series: [
+ {
+ type: 'pie',
+ selectedMode: 'single',
+ selectedOffset: 10,
+ left:-50,
+ radius: [50, 75],
+ data: [
+ {value: 25, name: '气体',num:90},
+ {value: 1, name: '',num:0},
+ {value: 25, name: '水质',num:95},
+ {value: 1, name: '',num:0},
+ {value: 15, name: '特征污染物',num:94},
+ {value: 1, name: '',num:0},
+ {value: 20, name: '废气',num:91},
+ {value: 1, name: '',num:0},
+ {value: 15, name: '废水',num:89},
+ {value: 1, name: '',num:0},
+ ],
+ color: ['#7FB0FF', null, '#947FEA', null, '#C9FFD7', null, '#FADFA4', null, '#FFFFFF', null],
+ emphasis: {
+ itemStyle: {
+ // shadowBlur: 10,
+ shadowOffsetX: 0,
+ // borderWidth:5,
+ // borderColor:"rgba(255,255,255,0)",
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ },
+ itemStyle: {},
+ select: {
+ itemStyle: {}
+ },
+ labelLine: {
+ show: false
+ },
+ label: {
+ show: false
+ },
+ tooltip:{
+ backgroundColor:'rgba(0,0,0,0.4)',
+ textStyle:{
+ color:'#ffffff'
+ },
+ formatter:function (params) {
+ return params.data.name+' : '+ params.data.num+'%'
+ }
+
+ }
+ }
+ ],
+ animationDuration: 0,
+ animationDurationUpdate: 3000,
+ animationEasing: 'linear',
+ animationEasingUpdate: 'linear'
+}
diff --git a/src/components/view/left/viewLeft.component.html b/src/components/view/left/viewLeft.component.html
new file mode 100644
index 0000000..e890cb0
--- /dev/null
+++ b/src/components/view/left/viewLeft.component.html
@@ -0,0 +1,63 @@
+
+
+
+
+ 训练设置
+
+
+
+
+
+
+
+

+
+
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+
+ 基地导览路线
+
+
+
+
+

+
+
+ 北大门东区
+
+ 南大门西区
+
+

+
+
+
+

+
+
+ 北大门东区
+
+ 南大门西区
+
+

+
+
+
+
diff --git a/src/components/view/left/viewLeft.component.ts b/src/components/view/left/viewLeft.component.ts
new file mode 100644
index 0000000..209dde6
--- /dev/null
+++ b/src/components/view/left/viewLeft.component.ts
@@ -0,0 +1,102 @@
+import {Component, Emit, Vue} from 'vue-property-decorator';
+import template from "./viewLeft.component.html"
+import TitleComponent from "@/components/title.component.vue"
+import WarningListComponent from "@/components/warningList.component.vue"
+import * as turf from '@turf/turf'
+import Mock from "mockjs"
+import moment from "moment"
+import("@/assets/style/pageCommon.component.scss")
+
+
+Component.registerHooks([
+ 'beforeRouteLeave',
+]);
+@Component({
+ template,
+ components: {
+ TitleComponent,
+ WarningListComponent
+ },
+})
+export default class ViewLeftComponent extends Vue {
+ //标题左侧图标
+ imgSrc = require("@/assets/icons/png/env/env-title-icon.png");
+
+ treeData = [
+ {
+ label: '技能训练设施',
+ children: []
+ }, {
+ label: '灾害事故处置训练设施',
+ children: [{
+ label: '火灾扑救训练设',
+ children: [
+ {
+ label: '综合训练楼',
+ children: []
+ },{
+ label: '化工装置火灾事故处置训练设施',
+ children: []
+ }
+ ]
+ }]
+ }, {
+ label: '战勤保障训练设施',
+ children: []
+ }]
+//获取class类
+ getNodeClass(node){
+ const arr:string[] = []
+ if (node.level>1){
+ arr.push('sub-item')
+ }
+ if (node.childNodes.length === 0 || !node.expanded){
+ arr.push('sub-item-border-none')
+ }
+ return arr
+ }
+ @Emit('showView')
+ showView(){
+ //todo 展开自由导览
+ }
+ //点击告警信息
+ @Emit()
+ getItem(item) {
+ // console.log('item', item)
+ }
+ //点击节点
+ nodeClick(data,node,self){
+ if (node.isLeaf){
+ this.showViewRight(node.data)
+ }
+
+ }
+ //显示右侧
+ @Emit('showViewRight')
+ showViewRight(item){
+ //
+ }
+ playView(){
+ console.log('导览')
+ }
+ count = 1
+
+
+ mounted() {
+
+ }
+
+ destroyed() {
+
+ }
+
+ changeMore() {
+ console.log(1)
+ }
+
+ changeClose() {
+ console.log(1)
+ }
+
+}
+
diff --git a/src/components/view/right/chartData.js b/src/components/view/right/chartData.js
new file mode 100644
index 0000000..92e12ff
--- /dev/null
+++ b/src/components/view/right/chartData.js
@@ -0,0 +1,203 @@
+
+export const lineChartData = function () {
+ return {
+ color:['#FADFA4','#947FEA'],
+ xAxis: {
+ type: 'category',
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#999999',
+ type: 'solid'
+ },
+ },
+ axisLabel: {
+ //x轴文字的配置
+ show: true,
+ interval: 0,//使x轴文字显示全
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#999999',
+ }
+ },
+
+ data: ['1月','2月','3月','4月','5月']
+ },
+ legend: {
+ top: 'top',
+ itemGap: 30,
+ itemWidth: 8,
+ itemHeight: 8,
+ textStyle: {
+ // 未单独设置样式的图例(即非上下标)
+ lineHeight: 12,
+ verticalAlign: "middle",
+ fontSize: 10,
+ color: "#fff"
+ },
+ data:[
+ {
+ name:'应急事件',
+ icon:'roundRect'
+ },{
+ name:'应急演练',
+ icon:'roundRect'
+ }
+ ]
+ },
+ yAxis: {
+ type: 'value',
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#999999',
+ type: 'solid'
+ },
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#999999',
+ }
+ },
+ },
+ series: [
+ {
+ name:'应急事件',
+ data: [60,80,140,70,100],
+ type: 'line',
+ symbolSize: 4,
+ symbol: 'circle',
+ lineStyle: {
+ width: 2
+ },
+ smooth: true,
+ label: {
+ show: false,
+ position: 'top',
+ color: '#ffffff',
+ borderWidth: 0
+ },
+ },{
+ name:'应急演练',
+ data: [50,70,130,60,90],
+ type: 'line',
+ symbolSize: 4,
+ symbol: 'circle',
+ lineStyle: {
+ width: 2
+ },
+ smooth: true,
+ label: {
+ show: false,
+ position: 'top',
+ color: '#ffffff',
+ borderWidth: 0
+ },
+ }
+ ],
+
+ tooltip: {
+ trigger: 'item',
+ backgroundColor:"rgba(0,0,0,0.6)",
+ borderWidth:0,
+ textStyle:{
+ color:"rgba(255,255,255,0.8)",
+ },
+ },
+ grid: {
+ x: 30,
+ y: 30,
+ x2: 12,
+ y2: 20,
+ }
+ }
+}
+
+export const radarChartData = function () {
+ return {
+ tooltip: {
+ trigger: 'item',
+ backgroundColor:"rgba(0,0,0,0.6)",
+ borderWidth:0,
+ textStyle:{
+ color:"rgba(255,255,255,0.8)",
+ },
+ },
+ radar: {
+ radius: "70%", //大小
+ nameGap: 10, // 图中工艺等字距离图的距离
+ center: ["50%", "50%"], // 图的位置
+ name: {
+ textStyle: {
+ color: "rgba(255,255,255,0.8)",
+ fontSize: 16
+ },
+ formatter: function(name) {
+ return name;
+ }
+ },
+ indicator: [
+ {"name":'1月',"max":"100"},
+ {"name":'2月',"max":"100"},
+ {"name":'3月',"max":"100"},
+ {"name":'4月',"max":"100"},
+ {"name":'5月',"max":"100"},
+ ],
+ axisLine: {
+ lineStyle: {
+ color: "rgba(153, 409, 246, 0.2)"
+ },
+ show:true,
+ symbolSize : [20,15],
+ symbolOffset:[0,15]
+
+ },
+ splitArea: {
+ show: false,
+ areaStyle: {
+ color: "rgba(255,0,0,0)" // 图表背景的颜色
+ }
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ width: 1,
+ color: "rgba(153, 209, 246, 0.2)" // 设置网格的颜色
+ }
+ }
+ },
+
+ series: [
+ {
+ name: "物资统计",
+ type: "radar",
+ symbol: "angle",
+ itemStyle: {
+ normal: {
+ areaStyle: { type: "default" }
+ }
+ },
+ data: [
+ {
+ symbol: "circle",
+ symbolSize: 5,
+ value: [70,42,63,84,75,34],
+ areaStyle: { color: "rgba(125,174,255,0.5)" },
+ itemStyle: {
+ normal: {
+ borderWidth:1,
+ color: "#7FB0FF",
+ borderColor: "#7FB0FF"
+ }
+ },
+ lineStyle: {
+ color: "#7FB0FF",
+ width: 1
+ }
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/components/view/right/viewRight.component.html b/src/components/view/right/viewRight.component.html
new file mode 100644
index 0000000..051b27b
--- /dev/null
+++ b/src/components/view/right/viewRight.component.html
@@ -0,0 +1,32 @@
+
+
+
+ 化工装置火灾事故装置训练设施
+
+
训练内容
+
+ 模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗
+
+
训练内容
+
+
+

+

+
+
{{item.title}}
+
+ 难度:
+
+
+
+ 火点:
+ {{item.point}}个
+
+
+
+
+
+
+
+
+
diff --git a/src/components/view/right/viewRight.component.ts b/src/components/view/right/viewRight.component.ts
new file mode 100644
index 0000000..254414a
--- /dev/null
+++ b/src/components/view/right/viewRight.component.ts
@@ -0,0 +1,72 @@
+import {Component, Emit, Vue} from 'vue-property-decorator';
+import template from "./viewRight.component.html"
+import {lineChartData,radarChartData} from "./chartData";
+import TitleComponent from "@/components/title.component.vue"
+import * as echarts from 'echarts';
+
+import("@/assets/style/pageCommon.component.scss")
+
+
+Component.registerHooks([
+ 'beforeRouteLeave',
+]);
+@Component({
+ template,
+ components: {
+ TitleComponent,
+ },
+})
+export default class ViewRightComponent extends Vue {
+
+ tableData = [
+ {
+ rate:3,
+ title:'顶层沸溢火',
+ point:'5',
+ },{
+ rate:4,
+ title:'顶层沸溢火',
+ point:'5',
+ },{
+ rate:2,
+ title:'顶层沸溢火',
+ point:'5',
+ },{
+ rate:3,
+ title:'顶层沸溢火',
+ point:'5',
+ },{
+ rate:4,
+ title:'顶层沸溢火',
+ point:'5',
+ },{
+ rate:2,
+ title:'顶层沸溢火',
+ point:'5',
+ },
+ ]
+
+ //训练内容详情
+ @Emit('showDetail')
+ showDetail(item){
+ //
+ }
+
+ mounted() {
+
+
+ }
+
+
+
+ beforeDestroy() {
+
+ }
+
+ destroyed() {
+
+ }
+
+
+}
+
diff --git a/src/views/overview.component.html b/src/views/overview.component.html
index 76107fe..e05defc 100644
--- a/src/views/overview.component.html
+++ b/src/views/overview.component.html
@@ -4,13 +4,19 @@
-
+
diff --git a/src/views/overview.component.ts b/src/views/overview.component.ts
index be04703..f4595a9 100644
--- a/src/views/overview.component.ts
+++ b/src/views/overview.component.ts
@@ -6,13 +6,17 @@ import layer from "layui-layer"
import BaseComponent from "./base.component"
import HomeLeftComponent from "@/components/home/left/homeLeft.component";
import HomeRightComponent from "@/components/home/right/homeRight.component";
+import ViewLeftComponent from "@/components/view/left/viewLeft.component";
+import ViewRightComponent from "@/components/view/right/viewRight.component";
@Component({
components: {
HomeLeftComponent,
- HomeRightComponent
+ HomeRightComponent,
+ ViewLeftComponent,
+ ViewRightComponent,
}
})
export default class OverViewComponent extends BaseComponent {
@@ -25,6 +29,9 @@ export default class OverViewComponent extends BaseComponent {
// 是否展开图层
public openLayerDrawer = false;
+ //展示导览右侧
+ viewRightShow = false
+
// 是否隐藏除地图外所有板块
public hideAllPanel = false;
async created(){
@@ -120,12 +127,32 @@ export default class OverViewComponent extends BaseComponent {
this.addMarker(layer,true)
}
}
-
-
+ //进入自由导览
+ showView(){
+ //todo 进入自由导览
+ }
+ //展开导览右侧
+ showViewRight(){
+ if (this.viewRightShow){
+ this.viewRightShow = false
+ setTimeout(()=>{
+ this.viewRightShow = true
+ })
+ }else{
+ this.viewRightShow = true
+ }
+ }
+ //右侧详情点击事件
+ showDetail(item){
+ console.log('右侧详情点击事件')
+ }
mounted() {
console.log(2)
}
-
+ get showBackGround(){
+ let flag = this.currentNav === 'view' && !this.viewRightShow
+ return flag?'none':''
+ }
public getCurrentLayers(){