@@ -4,6 +4,6 @@ | |||
</div> | |||
<p class="title">{{title}}</p> | |||
<div class="right"> | |||
<div v-if="callBack" @click="back" class="back"></div> | |||
<div v-if="callBack" @click="goback" class="back"></div> | |||
</div> | |||
</div> |
@@ -28,7 +28,7 @@ export default { | |||
created () { | |||
}, | |||
methods: { | |||
back () { | |||
goback () { | |||
this.$router.go(-1) | |||
} | |||
} | |||
@@ -0,0 +1,27 @@ | |||
<div class="pannel" :style="style" :class="[bkClass]"> | |||
<div class="header_box"> | |||
<div class="top_line"> | |||
<div class="left_sign"></div> | |||
<div class="right_sign"></div> | |||
</div> | |||
<div class="header row align_item_center"> | |||
<div v-if="title" class="title_bk row align_item_center"> | |||
<!-- <i class="icon"></i> --> | |||
<p>{{title}}</p> | |||
</div> | |||
<div class="more"> | |||
<slot name="header"></slot> | |||
</div> | |||
</div> | |||
<!-- <div class="light"></div> --> | |||
</div> | |||
<div class="body"> | |||
<div> | |||
<slot></slot> | |||
</div> | |||
<div class="bottom_line"> | |||
<div class="left_sign"></div> | |||
<div class="right_sign"></div> | |||
</div> | |||
</div> | |||
</div> |
@@ -0,0 +1,42 @@ | |||
export default { | |||
props: { | |||
// 定义标题 | |||
title: { | |||
type: String, | |||
default: '图例' | |||
}, | |||
bkClass: { | |||
type: String, | |||
default: 'bk_normal' | |||
}, | |||
// 定义跳转页面url | |||
uri: { | |||
type: String, | |||
default: '' | |||
}, | |||
// 定义组件高度 | |||
height: { | |||
type: String, | |||
default: '210' | |||
}, | |||
// 定义组件高度 | |||
width: { | |||
type: String, | |||
default: '134' | |||
} | |||
}, | |||
computed: { | |||
style: function () { | |||
return { | |||
height: this.height + 'px', | |||
width: this.width + 'px' | |||
}; | |||
} | |||
}, | |||
data () { | |||
return { | |||
}; | |||
}, | |||
methods: { | |||
} | |||
}; |
@@ -0,0 +1,137 @@ | |||
.pannel { | |||
box-sizing: border-box; | |||
display: flex; | |||
flex-direction: column; | |||
// 頭部區域 | |||
.header_box { | |||
position: relative; | |||
height: 35px; | |||
overflow: visible !important; | |||
.top_line { | |||
display: flex; | |||
justify-content: space-between; | |||
// background-color: rgba(22, 60, 114, 1); | |||
background: linear-gradient(0deg, rgba(49, 129, 246, 0.66) 0% RGBA(40, 99, 183, 1) 100%); | |||
width: 100%; | |||
height: 2px; | |||
.left_sign { | |||
height: 2px; | |||
width: 13px; | |||
background-color: rgba(53, 143, 255, 1); | |||
} | |||
.right_sign { | |||
height: 2px; | |||
width: 13px; | |||
background-color: rgba(53, 143, 255, 1); | |||
} | |||
} | |||
.header { | |||
margin-top: 2px; | |||
height: 32px; | |||
background: linear-gradient(90deg, RGBA(18, 45, 83, 1) 0% RGBA(40, 99, 183, 1) 50%); | |||
.title_bk { | |||
// font-style: italic; | |||
font-weight: 600; | |||
height: 50px; | |||
margin-left: 20px; | |||
line-height: 32px; | |||
text-align: center; | |||
.icon { | |||
display: block; | |||
background: url('./icon.png'); | |||
background-size: 100% 100%; | |||
width: 18px; | |||
height: 18px; | |||
} | |||
p { | |||
margin-left: 30px; | |||
} | |||
} | |||
.more { | |||
margin-right: 20px; | |||
} | |||
} | |||
.light { | |||
position: absolute; | |||
bottom: -15px; | |||
left: 30px; | |||
background: url('./light.png'); | |||
background-size: 100% 100%; | |||
width: 280px; | |||
height: 30px; | |||
animation: lightmove 4s infinite; | |||
} | |||
} | |||
// 内容区域 | |||
.body { | |||
margin: 2px; | |||
padding: 10px; | |||
width: 100%; | |||
position: relative; | |||
flex: 1; | |||
background-color: rgba(11, 28, 58, 1); | |||
overflow: hidden; | |||
.bottom_line { | |||
position: absolute; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
display: flex; | |||
justify-content: space-between; | |||
background-color: rgba(22, 60, 114, 1); | |||
width: 100%; | |||
height: 2px; | |||
.left_sign { | |||
height: 2px; | |||
width: 13px; | |||
background-color: rgba(53, 143, 255, 1); | |||
} | |||
.right_sign { | |||
height: 2px; | |||
width: 13px; | |||
background-color: rgba(53, 143, 255, 1); | |||
} | |||
} | |||
div { | |||
width: 100%; | |||
height: 100%; | |||
} | |||
} | |||
} | |||
@keyframes lightmove { | |||
/* 动画关键帧 */ | |||
0% { | |||
opacity: 1; | |||
transform: translateX(0px); | |||
/* 样式 */ | |||
} | |||
50% { | |||
opacity: 0.2; | |||
transform: translateX(170px); | |||
} | |||
/* 。。。 */ | |||
100% { | |||
opacity: 1; | |||
transform: translateX(0px); | |||
/* 样式 */ | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
<template src='./index.html'/> | |||
<script lang='js' src='./index.js'></script> | |||
<style lang='scss' src='./index.scss' scoped></style> |
@@ -35,7 +35,7 @@ | |||
background: rgba(8, 33, 71, 1); | |||
.title_bk { | |||
font-style: italic; | |||
// font-style: italic; | |||
font-weight: 600; | |||
height: 50px; | |||
margin-left: 20px; | |||
@@ -49,6 +49,10 @@ | |||
width: 18px; | |||
height: 18px; | |||
} | |||
p { | |||
margin-left: 10px; | |||
} | |||
} | |||
.more { | |||
@@ -1,4 +1,12 @@ | |||
<div class="map border" id="map2"> | |||
<Legend class="legend_pos"> | |||
<div class="legend_full"> | |||
<div v-for="item in LegendData" class="legend_item"> | |||
<div class="icon" :style="[item.iconStyle]"></div> | |||
<p>{{item.name}}</p> | |||
</div> | |||
</div> | |||
</Legend> | |||
<div class="mask" style="position: absolute; width: 100%; height: 100%;pointer-events: none;"></div> | |||
<!--选择地址--> | |||
<div class="select_address"> | |||
@@ -1,8 +1,5 @@ | |||
import GisUtils from '@/utils/gis.js'; | |||
import { | |||
fromLonLat | |||
} from 'ol/proj' | |||
import { treeselect, getDept, listDeptExcludeChild } from "@/api/system/dept"; | |||
import { getInfo } from "@/api/login"; | |||
import { getConfigKey } from "@/api/system/config"; | |||
@@ -10,11 +7,43 @@ import { getPermanentListByDeptId, listPermanent } from "@/api/asset/permanent.j | |||
import { getResourceListByDeptId, listResource } from "@/api/asset/resource.js"; | |||
import { attachmentList } from "@/api/common/uploadAttachment.js"; | |||
let gis = null; | |||
import Legend from '@/components/legend/index.vue'; | |||
export default { | |||
components: { | |||
Legend | |||
}, | |||
data () { | |||
return { | |||
LegendData: [ | |||
{ | |||
iconStyle: { | |||
background: 'rgba(38,252,128,0.45)', | |||
border: '2px solid #26FC80' | |||
}, | |||
name: '自用' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(232,246,0,0.45)', | |||
border: '2px solid #E8F600' | |||
}, | |||
name: '闲置' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(16,252,252,0.45)', | |||
border: '2px solid #10FCFC' | |||
}, | |||
name: '出租' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(198,0,255,0.45)', | |||
border: '2px solid #C600FF' | |||
}, | |||
name: '其他' | |||
} | |||
], | |||
dialogImageUrl: '', | |||
dialogVisible: false, | |||
showInfoDetail: false, | |||
@@ -5,6 +5,36 @@ | |||
right: 0; | |||
bottom: 0; | |||
.legend_pos { | |||
z-index: 21 !important; | |||
position: absolute; | |||
top: 100px; | |||
right: 480px; | |||
.legend_full { | |||
width: 100%; | |||
height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
.legend_item { | |||
display: flex; | |||
justify-content: center; | |||
// border: 1px solid red; | |||
align-items: center; | |||
.icon { | |||
width: 16px; | |||
height: 16px; | |||
border-radius: 50%; | |||
margin-right: 10px; | |||
} | |||
} | |||
} | |||
} | |||
.mask { | |||
z-index: 1; | |||
width: 100%; | |||
@@ -1,4 +1,12 @@ | |||
<div class="map border" id="map2"> | |||
<Legend class="legend_pos"> | |||
<div class="legend_full"> | |||
<div v-for="item in LegendData" class="legend_item"> | |||
<div class="icon" :style="[item.iconStyle]"></div> | |||
<p>{{item.name}}</p> | |||
</div> | |||
</div> | |||
</Legend> | |||
<div class="mask" style="position: absolute; width: 100%; height: 100%;pointer-events: none;"></div> | |||
<!--选择地址--> | |||
<!-- <div class="select_address"> | |||
@@ -4,18 +4,46 @@ import { | |||
fromLonLat | |||
} from 'ol/proj' | |||
import { getUserGeo, getUserGeoList } from "@/api/dataScreen/stockCooperative/index.js"; | |||
import { treeselect, getDept, listDeptExcludeChild } from "@/api/system/dept"; | |||
import { getInfo } from "@/api/login"; | |||
import { getConfigKey } from "@/api/system/config"; | |||
import { getPermanentListByDeptId, listPermanent } from "@/api/asset/permanent.js"; | |||
import { getResourceListByDeptId, listResource } from "@/api/asset/resource.js"; | |||
import { attachmentList } from "@/api/common/uploadAttachment.js"; | |||
import Legend from '@/components/legend/index.vue'; | |||
let gis = null; | |||
export default { | |||
components: { | |||
Legend | |||
}, | |||
data () { | |||
return { | |||
LegendData: [ | |||
{ | |||
iconStyle: { | |||
background: 'rgba(38,252,128,0.45)', | |||
border: '2px solid #26FC80' | |||
}, | |||
name: '自用' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(232,246,0,0.45)', | |||
border: '2px solid #E8F600' | |||
}, | |||
name: '闲置' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(16,252,252,0.45)', | |||
border: '2px solid #10FCFC' | |||
}, | |||
name: '出租' | |||
}, | |||
{ | |||
iconStyle: { | |||
background: 'rgba(198,0,255,0.45)', | |||
border: '2px solid #C600FF' | |||
}, | |||
name: '其他' | |||
} | |||
], | |||
}; | |||
}, | |||
computed: { | |||
@@ -5,6 +5,36 @@ | |||
right: 0; | |||
bottom: 0; | |||
.legend_pos { | |||
z-index: 21 !important; | |||
position: absolute; | |||
top: 100px; | |||
right: 480px; | |||
.legend_full { | |||
width: 100%; | |||
height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
.legend_item { | |||
display: flex; | |||
justify-content: center; | |||
// border: 1px solid red; | |||
align-items: center; | |||
.icon { | |||
width: 16px; | |||
height: 16px; | |||
border-radius: 2px; | |||
margin-right: 10px; | |||
} | |||
} | |||
} | |||
} | |||
.mask { | |||
z-index: 1; | |||
width: 100%; | |||