|
@@ -26,13 +26,16 @@
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<section>
|
|
<TreeSelect
|
|
<TreeSelect
|
|
- width='280'
|
|
|
|
|
|
+ class="special-my-tree-select"
|
|
|
|
+ ref="treeSelect"
|
|
|
|
+ width='300'
|
|
:hideClear='false'
|
|
:hideClear='false'
|
|
:isReadOnly='false'
|
|
:isReadOnly='false'
|
|
- :caption='"选择管理分区"'
|
|
|
|
|
|
+ :caption='"选择管理分区:"'
|
|
:data='regulateDistrictData'
|
|
:data='regulateDistrictData'
|
|
- placeholder="全部"
|
|
|
|
|
|
+ :placeholder="placeholder"
|
|
:disabled='false'
|
|
:disabled='false'
|
|
|
|
+ v-model="selectedZone"
|
|
@change='selectProjectItem'
|
|
@change='selectProjectItem'
|
|
/>
|
|
/>
|
|
</section>
|
|
</section>
|
|
@@ -59,7 +62,7 @@
|
|
<div class='system-equipments' v-if='item.assetTypeList'>
|
|
<div class='system-equipments' v-if='item.assetTypeList'>
|
|
<div class='number' v-for='(equip , index) in item.assetTypeList' :key='index'>
|
|
<div class='number' v-for='(equip , index) in item.assetTypeList' :key='index'>
|
|
<div class="title">
|
|
<div class="title">
|
|
- <P>{{equip.category_name}}</p>
|
|
|
|
|
|
+ <P :title="equip.category_name">{{equip.category_name}}</p>
|
|
<span :style="{right: equip.is_exception_num > 99 ? '-2rem' : equip.is_exception_num > 9 ? '-1.5rem' :'-1rem'}" v-if='equip.is_exception_num'>{{equip.is_exception_num}}</span>
|
|
<span :style="{right: equip.is_exception_num > 99 ? '-2rem' : equip.is_exception_num > 9 ? '-1.5rem' :'-1rem'}" v-if='equip.is_exception_num'>{{equip.is_exception_num}}</span>
|
|
</div>
|
|
</div>
|
|
<p>
|
|
<p>
|
|
@@ -97,7 +100,7 @@
|
|
<strong>{{plazaInfoCount.zhsxChangeCount}}</strong>
|
|
<strong>{{plazaInfoCount.zhsxChangeCount}}</strong>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
- <section class='map-container'>
|
|
|
|
|
|
+ <section class='map-container' id="map-container">
|
|
<div id='map'></div>
|
|
<div id='map'></div>
|
|
<div class='legend'>
|
|
<div class='legend'>
|
|
<div class='legend-bar' v-for='(bar , index) in legendList' :key='index'>
|
|
<div class='legend-bar' v-for='(bar , index) in legendList' :key='index'>
|
|
@@ -154,6 +157,7 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
let myMaps = null
|
|
let myMaps = null
|
|
|
|
+import { Loading } from 'element-ui';
|
|
import { login } from '@/api/login'
|
|
import { login } from '@/api/login'
|
|
import { getPlazaInfoCount, querySystemCard, getCardList, queryEventStatus } from '@/api/homePage'
|
|
import { getPlazaInfoCount, querySystemCard, getCardList, queryEventStatus } from '@/api/homePage'
|
|
import { formatTime } from '@/utils/format.js'
|
|
import { formatTime } from '@/utils/format.js'
|
|
@@ -165,6 +169,7 @@ import 'leaflet-contextmenu'
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ placeholder:'全部',
|
|
crumbsHtml: [], // 导航数据
|
|
crumbsHtml: [], // 导航数据
|
|
zoneNames: { // 各个中心对应的拼音名称
|
|
zoneNames: { // 各个中心对应的拼音名称
|
|
"东北": 'dongbei',
|
|
"东北": 'dongbei',
|
|
@@ -178,45 +183,45 @@ export default {
|
|
"东南": 'dongnan',
|
|
"东南": 'dongnan',
|
|
"其他": 'Other'
|
|
"其他": 'Other'
|
|
},
|
|
},
|
|
- provinceCities: { // 各个区域的的省会城市 坐标 缩放级别
|
|
|
|
- "青岛": { province: 'shandong', center: [36.06667, 120.33333], zoom: 8 },
|
|
|
|
- "北京": { province: 'beijing', center: [39.604882122321174, 116.43660987308282], zoom: 8 },
|
|
|
|
- "天津": { province: 'tianjin', center: [39.130593, 117.260892], zoom: 7 },
|
|
|
|
- "济南": { province: 'shandong', center: [36.4, 117.0], zoom: 7 },
|
|
|
|
- "上海": { province: 'shanghai', center: [31.090574094954192, 121.46299249603001], zoom: 10 },
|
|
|
|
- "南京": { province: 'jiangsu', center: [32.05, 118.78333], zoom: 7 },
|
|
|
|
- "无锡": { province: 'jiangsu', center: [31.57, 120.3], zoom: 9 },
|
|
|
|
- "厦门": { province: 'fujian', center: [24.46667, 118.1], zoom: 9 },
|
|
|
|
- "宁波": { province: 'zhejiang', center: [29.52, 121.33], zoom: 8 },
|
|
|
|
- "杭州": { province: 'zhejiang', center: [30.323100460201648, 120.50270908851112], zoom: 9 },
|
|
|
|
- "福州": { province: 'fujian', center: [26.05, 119.18], zoom: 8 },
|
|
|
|
- "合肥": { province: 'anhui', center: [31.52, 117.17], zoom: 7 },
|
|
|
|
- "长沙": { province: 'hunan', center: [28.12, 112.59], zoom: 8 },
|
|
|
|
- "南昌": { province: 'jiangxi', center: [28.4, 115.55], zoom: 8 },
|
|
|
|
- "大连": { province: 'liaoning', center: [39.98974718404572, 122.66034125625548], zoom: 8 },
|
|
|
|
- "沈阳": { province: 'liaoning', center: [41.72213058512578, 122.93479223528372], zoom: 8 },
|
|
|
|
- "长春": { province: 'jilin', center: [42.88033923363183, 127.02188147691707], zoom: 8 },
|
|
|
|
- "东莞": { province: 'guangdong', center: [23.644524198573688, 114.83844948916203], zoom: 8 },
|
|
|
|
- "南宁": { province: 'guangxi', center: [22.48, 108.19], zoom: 7 },
|
|
|
|
- "广州": { province: 'guangdong', center: [22.755920681486405, 112.01244459124548], zoom: 7 },
|
|
|
|
- "太原": { province: 'shanxi1', center: [37.54, 112.33], zoom: 7 },
|
|
|
|
- "武汉": { province: 'hubei', center: [31.147006308556566, 112.97898510653813], zoom: 7 },
|
|
|
|
- "郑州": { province: 'henan', center: [34.46, 113.4], zoom: 7 },
|
|
|
|
- "哈尔滨": { province: 'heilongjiang', center: [46.800059446787316, 128.40505022926592], zoom: 7 },
|
|
|
|
- "乌鲁木齐": { province: 'xinjiang', center: [43.45, 87.36], zoom: 8 },
|
|
|
|
- "呼和浩特": { province: 'neimenggu', center: [45.182036837015886, 116.82329020199336], zoom: 5 },
|
|
|
|
- "西安": { province: 'shanxi2', center: [36.08462129606931, 109.4527754086213], zoom: 7 },
|
|
|
|
- "银川": { province: 'ningxia', center: [38.108627664321276, 102.36578196225639], zoom: 7 },
|
|
|
|
- "成都": { province: 'sichuan', center: [30.24957724046765, 103.4647651330231], zoom: 7 },
|
|
|
|
- "昆明": { province: 'yunnan', center: [25.903703303407667, 105.10972266685498], zoom: 8 },
|
|
|
|
- "重庆": { province: 'chongqing', center: [29.35, 106.33], zoom: 8 }
|
|
|
|
|
|
+ provinceCities: { // 各个区域的的中心坐标 缩放级别
|
|
|
|
+ "青岛": { center: [36.06667, 120.33333], zoom: 8 },
|
|
|
|
+ "北京": { center: [39.604882122321174, 116.43660987308282], zoom: 8 },
|
|
|
|
+ "天津": { center: [39.130593, 117.260892], zoom: 7 },
|
|
|
|
+ "济南": { center: [36.4, 117.0], zoom: 7 },
|
|
|
|
+ "上海": { center: [31.090574094954192, 121.46299249603001], zoom: 10 },
|
|
|
|
+ "南京": { center: [32.05, 118.78333], zoom: 7 },
|
|
|
|
+ "无锡": { center: [31.57, 120.3], zoom: 9 },
|
|
|
|
+ "厦门": { center: [24.46667, 118.1], zoom: 9 },
|
|
|
|
+ "宁波": { center: [29.52, 121.33], zoom: 8 },
|
|
|
|
+ "杭州": { center: [30.323100460201648, 120.50270908851112], zoom: 9 },
|
|
|
|
+ "福州": { center: [26.05, 119.18], zoom: 8 },
|
|
|
|
+ "合肥": { center: [31.52, 117.17], zoom: 7 },
|
|
|
|
+ "长沙": { center: [28.12, 112.59], zoom: 8 },
|
|
|
|
+ "南昌": { center: [28.4, 115.55], zoom: 8 },
|
|
|
|
+ "大连": { center: [39.98974718404572, 122.66034125625548], zoom: 8 },
|
|
|
|
+ "沈阳": { center: [41.72213058512578, 122.93479223528372], zoom: 8 },
|
|
|
|
+ "长春": { center: [42.88033923363183, 127.02188147691707], zoom: 8 },
|
|
|
|
+ "东莞": { center: [23.644524198573688, 114.83844948916203], zoom: 8 },
|
|
|
|
+ "南宁": { center: [22.48, 108.19], zoom: 7 },
|
|
|
|
+ "广州": { center: [22.755920681486405, 112.01244459124548], zoom: 7 },
|
|
|
|
+ "太原": { center: [37.54, 112.33], zoom: 7 },
|
|
|
|
+ "武汉": { center: [31.147006308556566, 112.97898510653813], zoom: 7 },
|
|
|
|
+ "郑州": { center: [34.46, 113.4], zoom: 7 },
|
|
|
|
+ "哈尔滨": { center: [46.800059446787316, 128.40505022926592], zoom: 7 },
|
|
|
|
+ "乌鲁木齐": { center: [43.45, 87.36], zoom: 8 },
|
|
|
|
+ "呼和浩特": { center: [45.182036837015886, 116.82329020199336], zoom: 5 },
|
|
|
|
+ "西安": { center: [36.08462129606931, 109.4527754086213], zoom: 7 },
|
|
|
|
+ "银川": { center: [38.108627664321276, 102.36578196225639], zoom: 7 },
|
|
|
|
+ "成都": { center: [30.24957724046765, 103.4647651330231], zoom: 7 },
|
|
|
|
+ "昆明": { center: [25.903703303407667, 105.10972266685498], zoom: 8 },
|
|
|
|
+ "重庆": { center: [29.35, 106.33], zoom: 8 }
|
|
},
|
|
},
|
|
zoneCenter: { // 各个区域的中心坐标
|
|
zoneCenter: { // 各个区域的中心坐标
|
|
dongbei: [43.161614, 124.396818], // 取自 东北运营中心 长春区域 四平万达广场
|
|
dongbei: [43.161614, 124.396818], // 取自 东北运营中心 长春区域 四平万达广场
|
|
xibei: [37.999781, 106.197518], // 西北 银川区域 吴忠万达广场 zoom 5
|
|
xibei: [37.999781, 106.197518], // 西北 银川区域 吴忠万达广场 zoom 5
|
|
huabei: [39.019075, 117.686953], // 华北中心 天津区域 天津塘沽万达广场
|
|
huabei: [39.019075, 117.686953], // 华北中心 天津区域 天津塘沽万达广场
|
|
huazhong: [33.999249, 113.872131], // 华中 郑州 许昌万达广场
|
|
huazhong: [33.999249, 113.872131], // 华中 郑州 许昌万达广场
|
|
- huadong: [32.477565, 119.923391], // 华东 南京 泰州
|
|
|
|
|
|
+ huadong: [31.477565, 119.923391], // 华东 南京 泰州
|
|
zhongnan: [28.860875644389676, 114.55131767165491],
|
|
zhongnan: [28.860875644389676, 114.55131767165491],
|
|
huanan: [22.635788, 110.17923], // 华南 南宁 玉林万达广场
|
|
huanan: [22.635788, 110.17923], // 华南 南宁 玉林万达广场
|
|
dongnan: [26.657907, 119.545678], //东南 福州 宁德万达广场
|
|
dongnan: [26.657907, 119.545678], //东南 福州 宁德万达广场
|
|
@@ -238,32 +243,27 @@ export default {
|
|
currentSysId: '', // 当前系统ID
|
|
currentSysId: '', // 当前系统ID
|
|
regulateDistrictData: [], // 分区数据
|
|
regulateDistrictData: [], // 分区数据
|
|
maintainList: [], // 专维 维保 第三方检测 数据
|
|
maintainList: [], // 专维 维保 第三方检测 数据
|
|
- circleSize: { // 根据缩放级别 规定绘制点的尺寸 下标文字离点的距离
|
|
|
|
- 4: { inner: 50000, outer: 100000, offset: 2 },
|
|
|
|
- 5: { inner: 15000, outer: 30000, offset: 0.8 },
|
|
|
|
- 6: { inner: 15000, outer: 30000, offset: 0.8 },
|
|
|
|
- 7: { inner: 8000, outer: 16000, offset: 0.3 },
|
|
|
|
- 8: { inner: 4000, outer: 8000, offset: 0.14 },
|
|
|
|
- 9: { inner: 2000, outer: 4000, offset: 0.08 },
|
|
|
|
- 10: { inner: 1000, outer: 2000, offset: 0.04 },
|
|
|
|
- 11: { inner: 1000, outer: 2000, offset: 0.04 }
|
|
|
|
- },
|
|
|
|
barColors :{ // // 专维 维保 第三方检测 颜色
|
|
barColors :{ // // 专维 维保 第三方检测 颜色
|
|
0: 'linear-gradient(to right, #369CF7 , #025BAA)', // 蓝色
|
|
0: 'linear-gradient(to right, #369CF7 , #025BAA)', // 蓝色
|
|
1: 'linear-gradient(to right, #F58300 , #F58300)', // 黄色
|
|
1: 'linear-gradient(to right, #F58300 , #F58300)', // 黄色
|
|
2: 'linear-gradient(to right, #F54E45 , #F54E45)' // 红色
|
|
2: 'linear-gradient(to right, #F54E45 , #F54E45)' // 红色
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ selectedZone:'',
|
|
|
|
+ loadingInstance:null
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
...mapGetters(['plazas', 'plazaId', 'accessLevel'])
|
|
...mapGetters(['plazas', 'plazaId', 'accessLevel'])
|
|
},
|
|
},
|
|
- watch: {},
|
|
|
|
|
|
+ watch: {
|
|
|
|
+
|
|
|
|
+ },
|
|
created() {
|
|
created() {
|
|
this.currentTime()
|
|
this.currentTime()
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
window.vm = this
|
|
window.vm = this
|
|
this.getFrameworkTreeData()
|
|
this.getFrameworkTreeData()
|
|
window.addEventListener('resize', this.reinitalMap, false)
|
|
window.addEventListener('resize', this.reinitalMap, false)
|
|
@@ -329,6 +329,9 @@ export default {
|
|
let data = this.getDataByCityCcode(id) // 根据
|
|
let data = this.getDataByCityCcode(id) // 根据
|
|
if (!data) return
|
|
if (!data) return
|
|
let level = data.level //1集团 2中心 3区域 0广场
|
|
let level = data.level //1集团 2中心 3区域 0广场
|
|
|
|
+ if (level === this.regulateDistrictData[0].level) {
|
|
|
|
+ this.selectedZone = ''
|
|
|
|
+ }
|
|
this.currentZoneData = data
|
|
this.currentZoneData = data
|
|
this.currentLevel = level
|
|
this.currentLevel = level
|
|
this.getEventStatusData(level, data.ccode)
|
|
this.getEventStatusData(level, data.ccode)
|
|
@@ -349,6 +352,10 @@ export default {
|
|
* @Param data 返回选中项的数据
|
|
* @Param data 返回选中项的数据
|
|
*/
|
|
*/
|
|
selectProjectItem(ids) {
|
|
selectProjectItem(ids) {
|
|
|
|
+ if (!ids && this.currentZoneData) {
|
|
|
|
+ this.pantGroupMap(this.regulateDistrictData[0], this.systemList[0].smsxt)
|
|
|
|
+ this.createNavpathByData(this.regulateDistrictData[0])
|
|
|
|
+ }
|
|
let data = this.getDataByCityCcode(ids)
|
|
let data = this.getDataByCityCcode(ids)
|
|
this.currentLevel = data.level
|
|
this.currentLevel = data.level
|
|
if (data.level === 0) { // level=0时 plazaId必填
|
|
if (data.level === 0) { // level=0时 plazaId必填
|
|
@@ -356,7 +363,6 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.queryPlazaInfoCount(data.ccode, data.level)
|
|
this.queryPlazaInfoCount(data.ccode, data.level)
|
|
}
|
|
}
|
|
-
|
|
|
|
this.getSystemList(data.ccode, data.level)
|
|
this.getSystemList(data.ccode, data.level)
|
|
this.getEventStatusData(this.currentLevel, data.ccode)
|
|
this.getEventStatusData(this.currentLevel, data.ccode)
|
|
this.createNavpathByData(data)
|
|
this.createNavpathByData(data)
|
|
@@ -374,7 +380,7 @@ export default {
|
|
let routeData = this.$router.resolve({
|
|
let routeData = this.$router.resolve({
|
|
name:'/home/homePage',
|
|
name:'/home/homePage',
|
|
})
|
|
})
|
|
- window.open(routeData.href, true);
|
|
|
|
|
|
+ window.open(routeData.href, '_blank');
|
|
window.__fromGroupPage = {
|
|
window.__fromGroupPage = {
|
|
level: 0,
|
|
level: 0,
|
|
plazaName: data.cname,
|
|
plazaName: data.cname,
|
|
@@ -382,8 +388,6 @@ export default {
|
|
}
|
|
}
|
|
this.$store.commit('SETPLAZENAME', data.cname)
|
|
this.$store.commit('SETPLAZENAME', data.cname)
|
|
localStorage.setItem('PLAZAID', data.ccode)
|
|
localStorage.setItem('PLAZAID', data.ccode)
|
|
- this.$store.commit('STOREPLAZAID', data.ccode)
|
|
|
|
- this.$store.commit('SETISGETMAP',true)
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
@@ -447,7 +451,9 @@ export default {
|
|
data.open = true // 默认展开第一级
|
|
data.open = true // 默认展开第一级
|
|
this.regulateDistrictData = [data]
|
|
this.regulateDistrictData = [data]
|
|
this.currentDistrictData = res.treeData
|
|
this.currentDistrictData = res.treeData
|
|
- this.getSystemList(data.ccode, level )
|
|
|
|
|
|
+ this.getSystemList(data.ccode, level ).then(res => {
|
|
|
|
+ this.initMap()
|
|
|
|
+ })
|
|
this.getEventStatusData(level, data.ccode)
|
|
this.getEventStatusData(level, data.ccode)
|
|
if (level === 0) { // level=0时 plazaId必填
|
|
if (level === 0) { // level=0时 plazaId必填
|
|
this.queryPlazaInfoCount(data.ccode, level, data.ccode)
|
|
this.queryPlazaInfoCount(data.ccode, level, data.ccode)
|
|
@@ -549,30 +555,19 @@ export default {
|
|
* @Param data 作为判断的数据
|
|
* @Param data 作为判断的数据
|
|
*/
|
|
*/
|
|
paintColorByData(data) {
|
|
paintColorByData(data) {
|
|
- let color = {
|
|
|
|
- area: '',
|
|
|
|
- border: ''
|
|
|
|
- }
|
|
|
|
if (data >= 200) {
|
|
if (data >= 200) {
|
|
- color.area = '#F54E45'
|
|
|
|
- color.border = 'rgba(245,78,69,0.2)'
|
|
|
|
|
|
+ return 'level5'
|
|
} else if (data >= 100 && data < 200) {
|
|
} else if (data >= 100 && data < 200) {
|
|
- color.area = '#F58300'
|
|
|
|
- color.border = 'rgba(245,131,0,0.2)'
|
|
|
|
|
|
+ return 'level4'
|
|
} else if (data >= 50 && data < 100) {
|
|
} else if (data >= 50 && data < 100) {
|
|
- color.area = '#FFBA6B'
|
|
|
|
- color.border = 'rgba(255,186,107,0.2)'
|
|
|
|
|
|
+ return 'level3'
|
|
} else if (data >= 10 && data < 50) {
|
|
} else if (data >= 10 && data < 50) {
|
|
- color.area = '#0091FF'
|
|
|
|
- color.border = 'rgba(0,145,255,0.2)'
|
|
|
|
|
|
+ return 'level2'
|
|
} else if (data >= 1 && data < 10) {
|
|
} else if (data >= 1 && data < 10) {
|
|
- color.area = '#82C7FC'
|
|
|
|
- color.border = 'rgba(130,199,25,0.2)'
|
|
|
|
|
|
+ return 'level1'
|
|
} else {
|
|
} else {
|
|
- color.area = '#EEEEEE'
|
|
|
|
- color.border = '#CCC'
|
|
|
|
|
|
+ return 'level0'
|
|
}
|
|
}
|
|
- return color
|
|
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
* @Description 显示当期时间
|
|
* @Description 显示当期时间
|
|
@@ -607,25 +602,27 @@ export default {
|
|
} else {
|
|
} else {
|
|
params = {getParams:{ccode, level}}
|
|
params = {getParams:{ccode, level}}
|
|
}
|
|
}
|
|
- getCardList(params).then(res => {
|
|
|
|
- if (res.result == 'success') {
|
|
|
|
- let result = res.data
|
|
|
|
- if (result && Array.isArray(result)) {
|
|
|
|
- result.forEach(item => {
|
|
|
|
- if (item.assetTypeList) {
|
|
|
|
- item.assetTypeList = item.assetTypeList.splice(0, 3)
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- res.data.forEach(item => {
|
|
|
|
- item.selected = false
|
|
|
|
- })
|
|
|
|
- res.data[0].selected = true
|
|
|
|
- this.currentSelectedSys = res.data[0]
|
|
|
|
- this.currentSysId = res.data[0].smsxt
|
|
|
|
- this.systemList = res.data
|
|
|
|
- this.initMap()
|
|
|
|
|
|
+ return new Promise((resolve,reject) => {
|
|
|
|
+ getCardList(params).then(res => {
|
|
|
|
+ if (res.result == 'success') {
|
|
|
|
+ let result = res.data
|
|
|
|
+ if (result && Array.isArray(result)) {
|
|
|
|
+ result.forEach(item => {
|
|
|
|
+ if (item.assetTypeList) {
|
|
|
|
+ item.assetTypeList = item.assetTypeList.splice(0, 3)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ res.data.forEach(item => {
|
|
|
|
+ item.selected = false
|
|
|
|
+ })
|
|
|
|
+ res.data[0].selected = true
|
|
|
|
+ this.currentSelectedSys = res.data[0]
|
|
|
|
+ this.currentSysId = res.data[0].smsxt
|
|
|
|
+ this.systemList = res.data
|
|
|
|
+ resolve(res)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ })
|
|
})
|
|
})
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
@@ -682,17 +679,17 @@ export default {
|
|
myMaps = L.map('map', {
|
|
myMaps = L.map('map', {
|
|
center: new L.LatLng(38, 103),
|
|
center: new L.LatLng(38, 103),
|
|
zoom: 4,
|
|
zoom: 4,
|
|
- // maxZoom:4,
|
|
|
|
- // minZoom:4,
|
|
|
|
crs: L.CRS.EPSG3857,
|
|
crs: L.CRS.EPSG3857,
|
|
zoomControl: false,
|
|
zoomControl: false,
|
|
boxZoom: false,
|
|
boxZoom: false,
|
|
attributionControl: false,
|
|
attributionControl: false,
|
|
contextmenu: true,
|
|
contextmenu: true,
|
|
contextmenuWidth: 140,
|
|
contextmenuWidth: 140,
|
|
- dragging: false,
|
|
|
|
closePopupOnClick:true,
|
|
closePopupOnClick:true,
|
|
- doubleClickZoom:false
|
|
|
|
|
|
+ doubleClickZoom:false,
|
|
|
|
+ wheelPxPerZoomLevel:20
|
|
|
|
+ // scrollWheelZoom:false,
|
|
|
|
+ // dragging: false,
|
|
})
|
|
})
|
|
let JsonData = require('../../assets/geoData/china.json')
|
|
let JsonData = require('../../assets/geoData/china.json')
|
|
let layer = L.geoJSON(JsonData.features, {
|
|
let layer = L.geoJSON(JsonData.features, {
|
|
@@ -768,6 +765,7 @@ export default {
|
|
let groupLayer = new L.layerGroup()
|
|
let groupLayer = new L.layerGroup()
|
|
let promiseAll = []
|
|
let promiseAll = []
|
|
let layerArr = []
|
|
let layerArr = []
|
|
|
|
+ this.loadingInstance = Loading.service({target:'#map', fullscreen: false, text:'数据正在加载...', background:'rgba(255,255,255,.5)'})
|
|
data.children.forEach(item => {
|
|
data.children.forEach(item => {
|
|
let promise = new Promise((resolve, reject) => {
|
|
let promise = new Promise((resolve, reject) => {
|
|
let params = {
|
|
let params = {
|
|
@@ -781,7 +779,7 @@ export default {
|
|
if (res.result === 'success') {
|
|
if (res.result === 'success') {
|
|
let num = 0
|
|
let num = 0
|
|
let name = item.cname.substr(0, 2)
|
|
let name = item.cname.substr(0, 2)
|
|
- if (res.data) {
|
|
|
|
|
|
+ if (res.data ) {
|
|
let equip = res.data[0]
|
|
let equip = res.data[0]
|
|
if (equip.assetTypeList) {
|
|
if (equip.assetTypeList) {
|
|
equip.assetTypeList.forEach(item => {
|
|
equip.assetTypeList.forEach(item => {
|
|
@@ -797,7 +795,7 @@ export default {
|
|
fullName: item.cname
|
|
fullName: item.cname
|
|
})
|
|
})
|
|
}
|
|
}
|
|
- resolve(item)
|
|
|
|
|
|
+ resolve(res)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
@@ -805,14 +803,17 @@ export default {
|
|
promiseAll.push(promise)
|
|
promiseAll.push(promise)
|
|
})
|
|
})
|
|
Promise.all(promiseAll).then(result => {
|
|
Promise.all(promiseAll).then(result => {
|
|
- layerArr.forEach(item => {
|
|
|
|
- let zone = this.zoneNames[item.name]
|
|
|
|
- let center = this.zoneCenter[zone]
|
|
|
|
- let contentHtml = that.createPopupHtmlContent(item.list.assetTypeList, item.fullName)
|
|
|
|
- if (contentHtml) {
|
|
|
|
- this.createPointOnMap(item.num, groupLayer, contentHtml, center, item.data, item.name , 'group', 4)
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ this.loadingInstance.close()
|
|
|
|
+ if (this.currentLevel === 1) {
|
|
|
|
+ layerArr.forEach(item => {
|
|
|
|
+ let zone = this.zoneNames[item.name]
|
|
|
|
+ let center = this.zoneCenter[zone]
|
|
|
|
+ let contentHtml = that.createPopupHtmlContent(item.list.assetTypeList, item.fullName)
|
|
|
|
+ if (contentHtml) {
|
|
|
|
+ this.createPointOnMap(item.num, groupLayer, contentHtml, center, item.data, item.name , 'group', 4)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
})
|
|
})
|
|
groupLayer.addTo(myMaps)
|
|
groupLayer.addTo(myMaps)
|
|
},
|
|
},
|
|
@@ -826,45 +827,70 @@ export default {
|
|
let name = data.cname.substr(0, 2)
|
|
let name = data.cname.substr(0, 2)
|
|
let zone = this.zoneNames[name]
|
|
let zone = this.zoneNames[name]
|
|
let zoom, inner, outer, offset
|
|
let zoom, inner, outer, offset
|
|
- if (['xibei'].includes(zone)) {
|
|
|
|
|
|
+ if (zone === 'huadong') {
|
|
|
|
+ zoom = 8
|
|
|
|
+ } else if ( zone == 'xibei') {
|
|
zoom = 5
|
|
zoom = 5
|
|
} else {
|
|
} else {
|
|
zoom = 6
|
|
zoom = 6
|
|
}
|
|
}
|
|
this.flyTo(this.zoneCenter[zone], zoom)
|
|
this.flyTo(this.zoneCenter[zone], zoom)
|
|
let groupLayer = new L.layerGroup()
|
|
let groupLayer = new L.layerGroup()
|
|
|
|
+ let promiseAll = []
|
|
|
|
+ let layerArr = []
|
|
|
|
+ this.loadingInstance = Loading.service({target:'#map', fullscreen: false, text:'数据正在返回...', background:'rgba(255,255,255,.5)'})
|
|
data.children.forEach(item => {
|
|
data.children.forEach(item => {
|
|
- let params = {
|
|
|
|
- getParams: {
|
|
|
|
- smsxt: this.currentSysId,
|
|
|
|
- level: 3, // 区域
|
|
|
|
- ccode: item.ccode
|
|
|
|
|
|
+ let promise = new Promise((resolve, reject) => {
|
|
|
|
+ let params = {
|
|
|
|
+ getParams: {
|
|
|
|
+ smsxt: this.currentSysId,
|
|
|
|
+ level: 3, // 区域
|
|
|
|
+ ccode: item.ccode
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
- querySystemCard(params).then(res => {
|
|
|
|
- if (res.result === 'success') {
|
|
|
|
- let name = item.cname.split('区域')[0]
|
|
|
|
- let city = that.provinceCities[name]
|
|
|
|
- let num = 0
|
|
|
|
- let center = city.center
|
|
|
|
- if (res.data) {
|
|
|
|
- let equip = res.data[0]
|
|
|
|
- let contentHtml = that.createPopupHtmlContent(equip.assetTypeList, item.cname)
|
|
|
|
- if (equip.assetTypeList) {
|
|
|
|
- equip.assetTypeList.forEach(item => {
|
|
|
|
- if (item.is_exception_num) {
|
|
|
|
- num += item.is_exception_num
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ querySystemCard(params).then(res => {
|
|
|
|
+ if (res.result === 'success') {
|
|
|
|
+ let name = item.cname.split('区域')[0]
|
|
|
|
+
|
|
|
|
+ let num = 0
|
|
|
|
+ if (res.data) {
|
|
|
|
+ let equip = res.data[0]
|
|
|
|
+ if (equip.assetTypeList) {
|
|
|
|
+ equip.assetTypeList.forEach(item => {
|
|
|
|
+ if (item.is_exception_num) {
|
|
|
|
+ num += item.is_exception_num
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ layerArr.push({
|
|
|
|
+ name,
|
|
|
|
+ num,
|
|
|
|
+ list: equip,
|
|
|
|
+ data: item,
|
|
|
|
+ fullName: item.cname
|
|
|
|
+ })
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- that.createPointOnMap(num, groupLayer, contentHtml, center, item, item.cname, 'zone', 6)
|
|
|
|
|
|
+ resolve(res)
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ })
|
|
})
|
|
})
|
|
|
|
+ promiseAll.push(promise)
|
|
|
|
+ })
|
|
|
|
+ Promise.all(promiseAll).then(result => {
|
|
|
|
+ this.loadingInstance.close()
|
|
|
|
+ if (this.currentLevel === 2) {
|
|
|
|
+ layerArr.forEach(item => {
|
|
|
|
+ let city = that.provinceCities[item.name]
|
|
|
|
+ let center = city.center
|
|
|
|
+ let contentHtml = that.createPopupHtmlContent(item.list.assetTypeList, item.fullName)
|
|
|
|
+ if (contentHtml) {
|
|
|
|
+ that.createPointOnMap(item.num, groupLayer, contentHtml, center, item.data, item.data.cname, 'zone', zoom)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
})
|
|
})
|
|
groupLayer.addTo(myMaps)
|
|
groupLayer.addTo(myMaps)
|
|
},
|
|
},
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* @Description 用于绘制项目的点
|
|
* @Description 用于绘制项目的点
|
|
* @Param data 数据
|
|
* @Param data 数据
|
|
@@ -873,47 +899,62 @@ export default {
|
|
this.clearAllLayers()
|
|
this.clearAllLayers()
|
|
let name = data.cname.split('区域')[0]
|
|
let name = data.cname.split('区域')[0]
|
|
let geo = this.provinceCities[name]
|
|
let geo = this.provinceCities[name]
|
|
- this.flyTo(geo.center, geo.zoom)
|
|
|
|
- data.children.forEach(item => {
|
|
|
|
- this.pantPlazaMap(item, geo.zoom)
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- /**
|
|
|
|
- * @Description 用于绘制广场
|
|
|
|
- * @Param data 数据
|
|
|
|
- */
|
|
|
|
- pantPlazaMap(item, zoom) {
|
|
|
|
let that = this
|
|
let that = this
|
|
|
|
+ let promiseAll = []
|
|
|
|
+ let layerArr = []
|
|
let groupLayer = new L.layerGroup()
|
|
let groupLayer = new L.layerGroup()
|
|
- let params = {
|
|
|
|
- getParams: {
|
|
|
|
- plazaId: item.cid, // 所查对象是广场的时候plazaId必传
|
|
|
|
- smsxt: this.currentSysId,
|
|
|
|
- level: 0, // 广场
|
|
|
|
- ccode: item.ccode
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- querySystemCard(params).then(res => {
|
|
|
|
- if (res.result === 'success') {
|
|
|
|
- let num = 0
|
|
|
|
- if (item.latitude && item.longitude) {
|
|
|
|
- let center = [item.latitude, item.longitude]
|
|
|
|
- if (res.data) {
|
|
|
|
- let equip = res.data[0]
|
|
|
|
- let contentHtml = that.createPopupHtmlContent(equip.assetTypeList, item.cname)
|
|
|
|
- if (equip.assetTypeList) {
|
|
|
|
- equip.assetTypeList.forEach(item => {
|
|
|
|
- if (item.is_exception_num) {
|
|
|
|
- num += item.is_exception_num
|
|
|
|
- }
|
|
|
|
|
|
+ this.flyTo(geo.center, geo.zoom)
|
|
|
|
+ this.loadingInstance = Loading.service({target:'#map', fullscreen: false, text:'数据正在返回...', background:'rgba(255,255,255,.5)'})
|
|
|
|
+ data.children.forEach(item => {
|
|
|
|
+ let pormise = new Promise((resolve, reject) => {
|
|
|
|
+ let params = {
|
|
|
|
+ getParams: {
|
|
|
|
+ plazaId: item.cid, // 所查对象是广场的时候plazaId必传
|
|
|
|
+ smsxt: this.currentSysId,
|
|
|
|
+ level: 0, // 广场
|
|
|
|
+ ccode: item.ccode
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ querySystemCard(params).then(res => {
|
|
|
|
+ if (res.result === 'success') {
|
|
|
|
+ let num = 0
|
|
|
|
+ if (res.data && item.latitude && item.longitude) {
|
|
|
|
+ let equip = res.data[0]
|
|
|
|
+ if (equip.assetTypeList) {
|
|
|
|
+ equip.assetTypeList.forEach(item => {
|
|
|
|
+ if (item.is_exception_num) {
|
|
|
|
+ num += item.is_exception_num
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ layerArr.push({
|
|
|
|
+ name,
|
|
|
|
+ num,
|
|
|
|
+ list: equip,
|
|
|
|
+ data: item,
|
|
|
|
+ fullName: item.cname
|
|
})
|
|
})
|
|
}
|
|
}
|
|
- that.createPointOnMap(num, groupLayer, contentHtml, center, item, item.cname, 'project', zoom)
|
|
|
|
|
|
+ resolve(res)
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ groupLayer.addTo(myMaps)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ promiseAll.push(pormise)
|
|
|
|
+ })
|
|
|
|
+ Promise.all(promiseAll).then(result => {
|
|
|
|
+ this.loadingInstance.close()
|
|
|
|
+ if (this.currentLevel === 3) {
|
|
|
|
+ layerArr.forEach(item => {
|
|
|
|
+ let center = [item.data.latitude, item.data.longitude]
|
|
|
|
+ let contentHtml = that.createPopupHtmlContent(item.list.assetTypeList, item.fullName)
|
|
|
|
+ if (contentHtml) {
|
|
|
|
+ that.createPointOnMap(item.num, groupLayer, contentHtml, center, item.data, item.data.cname, 'project', geo.zoom)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
- groupLayer.addTo(myMaps)
|
|
|
|
})
|
|
})
|
|
|
|
+ groupLayer.addTo(myMaps)
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
* @Description 用于绘制广场的点
|
|
* @Description 用于绘制广场的点
|
|
@@ -927,26 +968,29 @@ export default {
|
|
* @param zoom 缩放级别
|
|
* @param zoom 缩放级别
|
|
*/
|
|
*/
|
|
createPointOnMap (num, groupLayer, contentHtml, center, data, name, type , zoom) {
|
|
createPointOnMap (num, groupLayer, contentHtml, center, data, name, type , zoom) {
|
|
- let popup = null
|
|
|
|
- let marker = null
|
|
|
|
- let outCircle = null
|
|
|
|
- let innerCircle = null
|
|
|
|
let color = this.paintColorByData(num)
|
|
let color = this.paintColorByData(num)
|
|
- let myIcon = L.divIcon({
|
|
|
|
- html: name,
|
|
|
|
|
|
+ let textIcon = L.divIcon({
|
|
|
|
+ html: type =='group' ? name :`<div>${name}</div>`,
|
|
className: 'my-leaflet-div-icon',
|
|
className: 'my-leaflet-div-icon',
|
|
iconSize: 30
|
|
iconSize: 30
|
|
})
|
|
})
|
|
- let sizes = this.circleSize[zoom]
|
|
|
|
|
|
+ let circleIcon = L.icon({
|
|
|
|
+ iconUrl: require(`../../assets/images/icons/${color}.png`),
|
|
|
|
+ iconSize: [24, 24],
|
|
|
|
+ iconAnchor: [16, 38],
|
|
|
|
+ });
|
|
|
|
+
|
|
if (color && center) {
|
|
if (color && center) {
|
|
- popup = L.popup({closeOnClick:true}).setLatLng(center).setContent(contentHtml)
|
|
|
|
- marker = L.marker([center[0] - sizes.offset, center[1]], { icon: myIcon }).addTo(groupLayer)
|
|
|
|
- outCircle = L.circle(center, sizes.outer, { color: 'transparent', fillColor: color.border, fillOpacity: 1 }).bindPopup(contentHtml).addTo(groupLayer)
|
|
|
|
- innerCircle =L.circle(center, sizes.inner, { color: 'transparent', fillColor: color.area, fillOpacity: 1 }).bindPopup(contentHtml).addTo(groupLayer)
|
|
|
|
- let feaureGroup = L.featureGroup([marker, outCircle, innerCircle, popup])
|
|
|
|
- feaureGroup.on('mouseover', ev => {
|
|
|
|
|
|
+ let popup = L.popup({closeOnClick:true,offset: [-3,-20]}).setLatLng(center).setContent(contentHtml)
|
|
|
|
+ let marker = L.marker(center, { icon: textIcon }).addTo(groupLayer)
|
|
|
|
+ let marker2 = L.marker(center,{ icon: circleIcon} ).addTo(groupLayer)
|
|
|
|
+ let feaureGroup = L.featureGroup([marker, marker2 ])
|
|
|
|
+ marker2.on('mouseover', ev => {
|
|
popup.openOn(myMaps)
|
|
popup.openOn(myMaps)
|
|
})
|
|
})
|
|
|
|
+ marker2.on('mouseout', ev => {
|
|
|
|
+ myMaps.closePopup(popup)
|
|
|
|
+ })
|
|
feaureGroup.on('click', ev => {
|
|
feaureGroup.on('click', ev => {
|
|
this.currentZoneData = data
|
|
this.currentZoneData = data
|
|
this.currentLevel = data.level
|
|
this.currentLevel = data.level
|
|
@@ -956,7 +1000,7 @@ export default {
|
|
groupLayer.clearLayers()
|
|
groupLayer.clearLayers()
|
|
}
|
|
}
|
|
this.createNavpathByData(data)
|
|
this.createNavpathByData(data)
|
|
- this.getSystemList(data.ccode, data.level)
|
|
|
|
|
|
+ this.getSystemList(data.ccode, data.level)
|
|
if (type === 'group') {
|
|
if (type === 'group') {
|
|
this.pantZonesMap(data, this.currentSysId)
|
|
this.pantZonesMap(data, this.currentSysId)
|
|
}
|
|
}
|
|
@@ -975,12 +1019,9 @@ export default {
|
|
}
|
|
}
|
|
this.$store.commit('SETPLAZENAME', data.cname)
|
|
this.$store.commit('SETPLAZENAME', data.cname)
|
|
localStorage.setItem('PLAZAID', data.ccode)
|
|
localStorage.setItem('PLAZAID', data.ccode)
|
|
- this.$store.commit('STOREPLAZAID', data.ccode)
|
|
|
|
- this.$store.commit('SETISGETMAP',true)
|
|
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
-
|
|
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
*@Description 生成弹出框HTML
|
|
*@Description 生成弹出框HTML
|
|
@@ -1037,9 +1078,9 @@ export default {
|
|
.selectDownUpExtendTop-leave-active {
|
|
.selectDownUpExtendTop-leave-active {
|
|
animation: selectDownUpExtendTop .3s reverse
|
|
animation: selectDownUpExtendTop .3s reverse
|
|
}
|
|
}
|
|
-.p-tree-single-panel{
|
|
|
|
- height: 400!important;
|
|
|
|
-}
|
|
|
|
|
|
+ /deep/ .p-tree-single-panel{
|
|
|
|
+ height: 400px!important;
|
|
|
|
+ }
|
|
.overview {
|
|
.overview {
|
|
height: 100vh;
|
|
height: 100vh;
|
|
background: rgba(247, 249, 250, 1);
|
|
background: rgba(247, 249, 250, 1);
|
|
@@ -1168,11 +1209,12 @@ export default {
|
|
}
|
|
}
|
|
span:first-child {
|
|
span:first-child {
|
|
display: inline-block;
|
|
display: inline-block;
|
|
- width: 14.4rem;
|
|
|
|
- height: 2.8rem;
|
|
|
|
|
|
+ width: auto;
|
|
|
|
+ height: 3rem;
|
|
margin-right: 1.2rem;
|
|
margin-right: 1.2rem;
|
|
border: 1px solid rgba(195, 199, 203, 1);
|
|
border: 1px solid rgba(195, 199, 203, 1);
|
|
border-radius: 1.4rem;
|
|
border-radius: 1.4rem;
|
|
|
|
+ padding: 0 2rem;
|
|
text-align: center;
|
|
text-align: center;
|
|
line-height: 2.8rem;
|
|
line-height: 2.8rem;
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
@@ -1231,7 +1273,7 @@ export default {
|
|
.system-name {
|
|
.system-name {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
- width: 28%;
|
|
|
|
|
|
+ width: 25%;
|
|
padding: 1.2rem 0 1.2rem 1rem ;
|
|
padding: 1.2rem 0 1.2rem 1rem ;
|
|
border-right: 1px solid #EFF0F1;
|
|
border-right: 1px solid #EFF0F1;
|
|
.img {
|
|
.img {
|
|
@@ -1260,23 +1302,22 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.system-equipments {
|
|
.system-equipments {
|
|
- width: 72%;
|
|
|
|
|
|
+ width: 75%;
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
padding-left: 1.4rem;
|
|
padding-left: 1.4rem;
|
|
.number {
|
|
.number {
|
|
width: 33.3%;
|
|
width: 33.3%;
|
|
- margin-right: 1.2rem;
|
|
|
|
.title{
|
|
.title{
|
|
display: inline-block;
|
|
display: inline-block;
|
|
position: relative;
|
|
position: relative;
|
|
p{
|
|
p{
|
|
display: inline-block;
|
|
display: inline-block;
|
|
position: relative;
|
|
position: relative;
|
|
- width: 100%;
|
|
|
|
|
|
+ width: 12rem;
|
|
color: #1f2429;
|
|
color: #1f2429;
|
|
font-size: 1.4rem;
|
|
font-size: 1.4rem;
|
|
- line-height: 1.6rem;
|
|
|
|
|
|
+ line-height: 2rem;
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -1300,6 +1341,7 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
li.selected {
|
|
li.selected {
|
|
@@ -1310,8 +1352,8 @@ export default {
|
|
border-bottom: none;
|
|
border-bottom: none;
|
|
}
|
|
}
|
|
li:hover {
|
|
li:hover {
|
|
- border-color: #66addd;
|
|
|
|
- box-shadow: 0 2px 10px 0px rgba(204, 100, 77, 0.4);
|
|
|
|
|
|
+ border-color: #E4E5E7;
|
|
|
|
+ box-shadow: 0 2px 10px 0px rgba(195, 199, 203, 0.4);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1365,7 +1407,10 @@ export default {
|
|
#map {
|
|
#map {
|
|
height: 70vh;
|
|
height: 70vh;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
- pointer-events: none;
|
|
|
|
|
|
+
|
|
|
|
+ svg {
|
|
|
|
+ pointer-events: none;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
.legend {
|
|
.legend {
|
|
position: absolute;
|
|
position: absolute;
|
|
@@ -1427,7 +1472,7 @@ export default {
|
|
.list {
|
|
.list {
|
|
margin-top: 1.4rem;
|
|
margin-top: 1.4rem;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
- height: calc(100% - 3rem);
|
|
|
|
|
|
+ height: calc(100% - 4rem);
|
|
ul {
|
|
ul {
|
|
li {
|
|
li {
|
|
display: flex;
|
|
display: flex;
|