|
@@ -165,9 +165,8 @@ import 'leaflet-contextmenu'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- toolTipHtml:'',
|
|
|
- crumbsHtml: [],
|
|
|
- zoneNames: {
|
|
|
+ crumbsHtml: [], // 导航数据
|
|
|
+ zoneNames: { // 各个中心对应的拼音名称
|
|
|
"东北": 'dongbei',
|
|
|
"西北": 'xibei',
|
|
|
"华北": 'huabei',
|
|
@@ -179,40 +178,40 @@ export default {
|
|
|
"东南": 'dongnan',
|
|
|
"其他": '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: { // 各个区域的的省会城市 坐标 缩放级别
|
|
|
+ "青岛": { 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 }
|
|
|
},
|
|
|
- zoneCenter: {
|
|
|
+ zoneCenter: { // 各个区域的中心坐标
|
|
|
dongbei: [43.161614, 124.396818], // 取自 东北运营中心 长春区域 四平万达广场
|
|
|
xibei: [37.999781, 106.197518], // 西北 银川区域 吴忠万达广场 zoom 5
|
|
|
huabei: [39.019075, 117.686953], // 华北中心 天津区域 天津塘沽万达广场
|
|
@@ -223,7 +222,7 @@ export default {
|
|
|
dongnan: [26.657907, 119.545678], //东南 福州 宁德万达广场
|
|
|
xinan: [28.749998, 104.648788] // 西南 成都 宜宾万达广场
|
|
|
},
|
|
|
- legendList: [
|
|
|
+ legendList: [ // 地图图例数据
|
|
|
{ color: '#F54E45', num: '≥200' },
|
|
|
{ color: '#F58300', num: '100-200' },
|
|
|
{ color: '#FFBA6B', num: '50-99' },
|
|
@@ -232,18 +231,14 @@ export default {
|
|
|
{ color: '#EEEEEE', num: '0' }
|
|
|
],
|
|
|
plazaInfoCount: {},
|
|
|
- systemList: [],
|
|
|
- currentZoneData: {}, //
|
|
|
+ systemList: [], // 系统列表数据
|
|
|
+ currentZoneData: {}, // 当前分区
|
|
|
currentDistrictData: [], //当前管理分区数据
|
|
|
- currentSelectedSys: {},
|
|
|
- currentSysId: '',
|
|
|
- state: '',
|
|
|
- value: 190,
|
|
|
- currentPanel: '',
|
|
|
- regulateDistrictData: [],
|
|
|
- projectsCode: [],
|
|
|
- maintainList: [],
|
|
|
- circleSize: {
|
|
|
+ currentSelectedSys: {}, // 当前所选择的系统
|
|
|
+ currentSysId: '', // 当前系统ID
|
|
|
+ regulateDistrictData: [], // 分区数据
|
|
|
+ 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 },
|
|
@@ -253,7 +248,7 @@ export default {
|
|
|
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)', // 蓝色
|
|
|
1: 'linear-gradient(to right, #F58300 , #F58300)', // 黄色
|
|
|
2: 'linear-gradient(to right, #F54E45 , #F54E45)' // 红色
|
|
@@ -274,12 +269,11 @@ export default {
|
|
|
window.addEventListener('resize', this.reinitalMap, false)
|
|
|
},
|
|
|
methods: {
|
|
|
- showToolTip (index, title) {
|
|
|
-
|
|
|
+ showToolTip (index) {
|
|
|
this.maintainList.forEach(item => {item.showToolTip = false})
|
|
|
this.maintainList[index].showToolTip = true
|
|
|
},
|
|
|
- hideToolTip (index, title) {
|
|
|
+ hideToolTip (index) {
|
|
|
this.maintainList[index].showToolTip = false
|
|
|
},
|
|
|
reinitalMap () {
|
|
@@ -310,17 +304,38 @@ export default {
|
|
|
// this.$router.push({path:''})
|
|
|
},
|
|
|
/**
|
|
|
- * 通过导航进行导航
|
|
|
- *
|
|
|
+ * @Description 根据数据创建导航路径
|
|
|
+ * @Param data 当前点击的项
|
|
|
+ */
|
|
|
+ createNavpathByData(data) {
|
|
|
+ console.log(data)
|
|
|
+ return
|
|
|
+ if (data.level === 1) {
|
|
|
+ this.crumbsHtml = []
|
|
|
+ } else {
|
|
|
+ let pathArr = data.path.split('/')
|
|
|
+ let newArr = []
|
|
|
+ pathArr.forEach(item => {
|
|
|
+ newArr.push(item.split('&'))
|
|
|
+ })
|
|
|
+ this.crumbsHtml = newArr
|
|
|
+ }
|
|
|
+ this.currentZoneData = data
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @Description 通过导航进行导航
|
|
|
+ * @Param id 所选区域的id
|
|
|
+ * @Param index 点击项的序号
|
|
|
*/
|
|
|
navgateFromCrumbs(id, index) {
|
|
|
- let data = this.getDataByCityCcode(id)
|
|
|
+ let data = this.getDataByCityCcode(id) // 根据
|
|
|
if (!data) return
|
|
|
- let level = data.level //1集团 2中心 3区域 0广场
|
|
|
+ let level = data.level //1集团 2中心 3区域 0广场
|
|
|
this.currentZoneData = data
|
|
|
this.currentLevel = level
|
|
|
this.getEventStatusData(level, data.ccode)
|
|
|
this.queryPlazaInfoCount(data.ccode, data.level, data.cid)
|
|
|
+ this.getSystemList(data.ccode, data.level)
|
|
|
if (level === 1) {
|
|
|
this.pantGroupMap(data, this.currentSysId)
|
|
|
} else if (level === 2) {
|
|
@@ -330,32 +345,35 @@ export default {
|
|
|
}
|
|
|
this.crumbsHtml = this.crumbsHtml.splice(0, index + 1)
|
|
|
},
|
|
|
- // 获取 区域/中心/项目
|
|
|
- selectProjectItem(ids, data) {
|
|
|
+ /**
|
|
|
+ * @Description 分区树 点击选择分区
|
|
|
+ * @Param ids 返回选中项的id
|
|
|
+ * @Param data 返回选中项的数据
|
|
|
+ */
|
|
|
+ selectProjectItem(ids) {
|
|
|
+ let data = this.getDataByCityCcode(ids)
|
|
|
this.currentLevel = data.level
|
|
|
if (data.level === 0) { // level=0时 plazaId必填
|
|
|
- this.queryPlazaInfoCount(data.ccode, data.level, data.cid)
|
|
|
+ this.queryPlazaInfoCount(data.ccode, data.level, data.ccode)
|
|
|
} else {
|
|
|
this.queryPlazaInfoCount(data.ccode, data.level)
|
|
|
}
|
|
|
- if (data.level !== 0) {
|
|
|
- this.getSystemList(data.ccode, data.level)
|
|
|
- }
|
|
|
+
|
|
|
+ this.getSystemList(data.ccode, data.level)
|
|
|
this.getEventStatusData(this.currentLevel, data.ccode)
|
|
|
this.createNavpathByData(data)
|
|
|
this.currentZoneData = data
|
|
|
- let JSONName = data.cname
|
|
|
+
|
|
|
let level = data.level // //1集团 2中心 3区域 0广场
|
|
|
if (level === 1) {
|
|
|
this.pantGroupMap(data, this.currentSysId)
|
|
|
} else if (level === 2) {
|
|
|
this.pantZonesMap(data, '1001')
|
|
|
} else if (level === 3) {
|
|
|
- let res = this.provinceCities[JSONName]
|
|
|
this.pantProjectsMap(data, this.currentSysId)
|
|
|
- } else {
|
|
|
+ } else { // 点击项为广场时 直接跳转到详情页 地图不用响应
|
|
|
let pathData = {fromGroup: 'true'}
|
|
|
- let routeData = this.$router.resolve({ // 点击广场时 直接跳转到详情页 地图不用响应
|
|
|
+ let routeData = this.$router.resolve({
|
|
|
name:'/home/homePage',
|
|
|
})
|
|
|
window.open(routeData.href, '_blank');
|
|
@@ -370,14 +388,14 @@ export default {
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
- * @description 查询项目信息统计数量
|
|
|
- * @param plazaId level=0时 必填
|
|
|
- * @param ccode 管理分区编码 必填
|
|
|
- * @param level 1集团 2中心 3区域 0广场 必填
|
|
|
+ * @Description 查询项目信息统计数量
|
|
|
+ * @Param ccode 管理分区编码 必填
|
|
|
+ * @Param level 1集团 2中心 3区域 0广场 必填
|
|
|
+ * @Param plazaId level=0时 必填
|
|
|
*/
|
|
|
queryPlazaInfoCount(ccode, level, plazaId) {
|
|
|
let params = {}
|
|
|
- if (plazaId) {
|
|
|
+ if (level === 0 ) {
|
|
|
params = {getParams:{ccode, level}}
|
|
|
} else {
|
|
|
params = {getParams:{ccode, level, plazaId}}
|
|
@@ -391,7 +409,8 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
- * 根据id 查找数据
|
|
|
+ * @Description 根据指定id 查找数据
|
|
|
+ * @Param id 要查找数据的id
|
|
|
*/
|
|
|
getDataByCityCcode(id) {
|
|
|
return recursionFindData(this.currentDistrictData, id)
|
|
@@ -412,8 +431,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
+ * @Description 获取分区树数据
|
|
|
* @method param empty
|
|
|
*/
|
|
|
getFrameworkTreeData() {
|
|
@@ -429,18 +447,18 @@ export default {
|
|
|
data.open = true // 默认展开第一级
|
|
|
this.regulateDistrictData = [data]
|
|
|
this.currentDistrictData = res.treeData
|
|
|
- this.getSystemList(data.ccode,level )
|
|
|
+ this.getSystemList(data.ccode, level )
|
|
|
this.getEventStatusData(level, data.ccode)
|
|
|
if (level === 0) { // level=0时 plazaId必填
|
|
|
- this.queryPlazaInfoCount(data.ccode, level, data.cid)
|
|
|
+ this.queryPlazaInfoCount(data.ccode, level, data.ccode)
|
|
|
} else {
|
|
|
- this.queryPlazaInfoCount(data.ccode, level)
|
|
|
+ this.queryPlazaInfoCount(data.ccode, level)
|
|
|
}
|
|
|
}
|
|
|
function recursionData(data, parent) {
|
|
|
data.forEach(item => {
|
|
|
item.name = item.cname
|
|
|
- item.id = item.cid
|
|
|
+ item.id = item.ccode
|
|
|
if (parent) {
|
|
|
item.path = parent + '/' + (item.cname + '&' + item.ccode)
|
|
|
}
|
|
@@ -453,12 +471,10 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
- * @method param empty
|
|
|
+ * @Description 展开 维保 第三方检测 专维
|
|
|
+ * @Param item 展开的某一项
|
|
|
*/
|
|
|
toggerPanel(item) {
|
|
|
- this.currentPanel = item.title
|
|
|
// expand 0 初始状态 1 展开状态 2 隐藏状态
|
|
|
if (item.expand === 0 || item.expand === 2) {
|
|
|
item.expand = 1 // 展开
|
|
@@ -474,9 +490,8 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
- * @method param empty
|
|
|
+ * @Description 计算 维保/第三方检测/专维 三个模块的高度
|
|
|
+ * @Param item 数据中的每一项
|
|
|
*/
|
|
|
panelStyle(item) {
|
|
|
// expand 0 初始状态 1 展开状态 2 隐藏状态
|
|
@@ -489,8 +504,10 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
- * 计算长度 维保、第三方检测是用即将逾期数据判断;专维是如果有逾期未完成直接标红,如果没有,按照即将逾期的数量显示颜色
|
|
|
- */
|
|
|
+ *@Description 根据数据计算维保/第三方检测/专维各自颜色条的长度 维保、第三方检测是用即将逾期数据判断;专维是如果有逾期未完成直接标红,如果没有,按照即将逾期的数量显示颜色
|
|
|
+ *@Param item 某一项的数据
|
|
|
+ *@Param title 标题
|
|
|
+ */
|
|
|
barStyle(item, title) {
|
|
|
let bg = ''
|
|
|
let type = this.selectColorByNum(item.due_num, item.total)
|
|
@@ -498,7 +515,6 @@ export default {
|
|
|
if (title === '专维') {
|
|
|
if (item.unfinished>0) {
|
|
|
bg = 'linear-gradient(to right, #F54E45 , #F54E45)'
|
|
|
- // bg='red'
|
|
|
} else {
|
|
|
bg = this.barColors[type]
|
|
|
}
|
|
@@ -512,9 +528,13 @@ export default {
|
|
|
backgroundImage: bg
|
|
|
}
|
|
|
},
|
|
|
- selectColorByNum (num, total) { // >= <=
|
|
|
+ /**
|
|
|
+ * @Description 根据数据来返 维保/第三方检测/专维 三个模块中显示条的颜色
|
|
|
+ * @Param num 即将逾期数 / 逾期未完成数
|
|
|
+ * @Param total 总数
|
|
|
+ */
|
|
|
+ selectColorByNum (num, total) {
|
|
|
let devide = num / total
|
|
|
- // console.log(num, devide)
|
|
|
if ( (num > 1 && num <=24 ) || ( devide > 0.1 && devide <=0.2 ) ) {
|
|
|
return 0
|
|
|
} else if ( (num > 24 && num <= 49 ) || ( devide > 0.2 && devide <=0.5 ) ) {
|
|
@@ -523,11 +543,10 @@ export default {
|
|
|
return 2
|
|
|
}
|
|
|
},
|
|
|
- // 根据数据渲染颜色
|
|
|
- /**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
- * @method param empty
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Description 根据数据 判定地图上图标的显示显示颜色
|
|
|
+ * @Param data 作为判断的数据
|
|
|
*/
|
|
|
paintColorByData(data) {
|
|
|
let color = {
|
|
@@ -555,22 +574,16 @@ export default {
|
|
|
}
|
|
|
return color
|
|
|
},
|
|
|
-
|
|
|
- /**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
- * @method param empty
|
|
|
+ /**
|
|
|
+ * @Description 显示当期时间
|
|
|
*/
|
|
|
currentTime() {
|
|
|
this.times = moment().format('YYYY.MM.DD HH:mm')
|
|
|
setTimeout(this.currentTime, 1000)
|
|
|
},
|
|
|
- /**根据选择的系统重新渲染地图
|
|
|
- * param sysId:系统Id
|
|
|
- */
|
|
|
+
|
|
|
/**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
+ * @Description 格式化时间
|
|
|
* @method param empty
|
|
|
*/
|
|
|
formatter(str, arrv) {
|
|
@@ -582,18 +595,17 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
- * @description 获取集团 中心 区域 项目 数据树数据
|
|
|
- * fetch the data of specific group / center / zone / project
|
|
|
+ * @Description 获取集团 中心 区域 项目 数据树数据
|
|
|
* @method param ccode 管理分区编码 集团首页必填
|
|
|
* @method param level 1集团 2中心 3区域 0广场 集团首页必填
|
|
|
- * @method param plazaId 广场id 必填
|
|
|
+ * @method param plazaId 广场id 如果是广场则此参数必填 其他情况下非必填
|
|
|
*/
|
|
|
- getSystemList(ccode, level, plazaId) {
|
|
|
- let params = {}
|
|
|
- if (plazaId) {
|
|
|
- params = {getParams:{ccode, level}}
|
|
|
+ getSystemList(ccode, level) {
|
|
|
+ let params = null
|
|
|
+ if (level === 0) {
|
|
|
+ params = {getParams:{plazaId: ccode, level}}
|
|
|
} else {
|
|
|
- params = {getParams:{ccode, level, plazaId}}
|
|
|
+ params = {getParams:{ccode, level}}
|
|
|
}
|
|
|
getCardList(params).then(res => {
|
|
|
if (res.result == 'success') {
|
|
@@ -617,9 +629,9 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
- * @description 获取事项状态统计数据
|
|
|
- * @param ccode 管理分区编码 必填
|
|
|
- * @param level 1集团 2中心 3区域 0广场 必填
|
|
|
+ * @Description 获取事项状态统计数据
|
|
|
+ * @Param ccode 管理分区编码 必填
|
|
|
+ * @Param level 1集团 2中心 3区域 0广场 必填
|
|
|
*/
|
|
|
getEventStatusData(level, ccode) {
|
|
|
let params = {
|
|
@@ -662,7 +674,9 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- //初始化地图
|
|
|
+ /**
|
|
|
+ *@Description 初始化地图
|
|
|
+ */
|
|
|
initMap() {
|
|
|
let that = this
|
|
|
myMaps = L.map('map', {
|
|
@@ -698,7 +712,9 @@ export default {
|
|
|
this.pantProjectsMap(this.currentZoneData, this.currentSysId)
|
|
|
}
|
|
|
},
|
|
|
- //**清空地图 并添加全国底图*/
|
|
|
+ /**
|
|
|
+ * @Description 清空地图 并添加全国底图
|
|
|
+ */
|
|
|
clearAllLayers() {
|
|
|
myMaps.eachLayer(function(layer) {
|
|
|
myMaps.removeLayer(layer)
|
|
@@ -715,14 +731,14 @@ export default {
|
|
|
}).addTo(myMaps)
|
|
|
},
|
|
|
/**
|
|
|
- * 移动地图到指定中心
|
|
|
+ * @Description 移动地图到指定中心
|
|
|
*/
|
|
|
- panTo(center, zoom) {
|
|
|
+ flyTo(center, zoom) {
|
|
|
myMaps.setView(center, zoom)
|
|
|
},
|
|
|
/**
|
|
|
- * 切换系统时 地图响应
|
|
|
- * @params system:当前选择的系统
|
|
|
+ * @Description 切换系统时 地图响应
|
|
|
+ * @Params system:当前选择的系统
|
|
|
*/
|
|
|
getInfoOfProject(system) {
|
|
|
this.systemList.forEach(item => {
|
|
@@ -741,7 +757,10 @@ export default {
|
|
|
this.pantProjectsMap(this.currentZoneData, system.smsxt)
|
|
|
}
|
|
|
},
|
|
|
- // 用于绘制集团地图
|
|
|
+ /**
|
|
|
+ * @Description 用于绘制集团级别的地图
|
|
|
+ * @Param data 数据
|
|
|
+ */
|
|
|
pantGroupMap(data) {
|
|
|
this.clearAllLayers()
|
|
|
myMaps.setView([38, 103], 4)
|
|
@@ -798,7 +817,8 @@ export default {
|
|
|
groupLayer.addTo(myMaps)
|
|
|
},
|
|
|
/**
|
|
|
- * 用于绘制中心下的地图
|
|
|
+ * @Description 用于绘制中心地图
|
|
|
+ * @Param data 数据
|
|
|
*/
|
|
|
pantZonesMap(data) {
|
|
|
let that = this
|
|
@@ -811,7 +831,7 @@ export default {
|
|
|
} else {
|
|
|
zoom = 6
|
|
|
}
|
|
|
- this.panTo(this.zoneCenter[zone], zoom)
|
|
|
+ this.flyTo(this.zoneCenter[zone], zoom)
|
|
|
let groupLayer = new L.layerGroup()
|
|
|
data.children.forEach(item => {
|
|
|
let params = {
|
|
@@ -823,7 +843,8 @@ export default {
|
|
|
}
|
|
|
querySystemCard(params).then(res => {
|
|
|
if (res.result === 'success') {
|
|
|
- let city = that.provinceCities[item.cname]
|
|
|
+ let name = item.cname.split('区域')[0]
|
|
|
+ let city = that.provinceCities[name]
|
|
|
let num = 0
|
|
|
let center = city.center
|
|
|
if (res.data) {
|
|
@@ -844,19 +865,22 @@ export default {
|
|
|
groupLayer.addTo(myMaps)
|
|
|
},
|
|
|
|
|
|
- /***
|
|
|
- * 用于绘制项目的点
|
|
|
+ /**
|
|
|
+ * @Description 用于绘制项目的点
|
|
|
+ * @Param data 数据
|
|
|
*/
|
|
|
pantProjectsMap(data) {
|
|
|
this.clearAllLayers()
|
|
|
- let geo = this.provinceCities[data.cname]
|
|
|
- this.panTo(geo.center, geo.zoom)
|
|
|
+ let name = data.cname.split('区域')[0]
|
|
|
+ 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
|
|
@@ -892,7 +916,15 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
- *
|
|
|
+ * @Description 用于绘制广场的点
|
|
|
+ * @Param num 当前点的逾期设备数
|
|
|
+ * @Param groupLayer 地图图层
|
|
|
+ * @Param contentHtml 弹出框的Html内容
|
|
|
+ * @Param center 该点坐标
|
|
|
+ * @Param data 该点数据
|
|
|
+ * @Param name 改点名称
|
|
|
+ * @Param type 地图级别 group / zone / project 集团 / 中心 / 区域
|
|
|
+ * @param zoom 缩放级别
|
|
|
*/
|
|
|
createPointOnMap (num, groupLayer, contentHtml, center, data, name, type , zoom) {
|
|
|
let popup = null
|
|
@@ -908,7 +940,6 @@ export default {
|
|
|
let sizes = this.circleSize[zoom]
|
|
|
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)
|
|
@@ -921,8 +952,11 @@ export default {
|
|
|
this.currentLevel = data.level
|
|
|
this.getEventStatusData(data.level, data.ccode)
|
|
|
this.queryPlazaInfoCount(data.ccode, data.level)
|
|
|
- groupLayer.clearLayers()
|
|
|
+ if (type !== 'project') {
|
|
|
+ groupLayer.clearLayers()
|
|
|
+ }
|
|
|
this.createNavpathByData(data)
|
|
|
+ this.getSystemList(data.ccode, data.level)
|
|
|
if (type === 'group') {
|
|
|
this.pantZonesMap(data, this.currentSysId)
|
|
|
}
|
|
@@ -947,7 +981,7 @@ export default {
|
|
|
|
|
|
},
|
|
|
/**
|
|
|
- * 生成弹框HTML
|
|
|
+ *@Description 生成弹出框HTML
|
|
|
*/
|
|
|
createPopupHtmlContent(data, name) {
|
|
|
if (Array.isArray(data) && data.length) {
|
|
@@ -976,22 +1010,7 @@ export default {
|
|
|
return ''
|
|
|
}
|
|
|
},
|
|
|
- /**
|
|
|
- * 根据数据创建导航路径
|
|
|
- */
|
|
|
- createNavpathByData(data) {
|
|
|
- if (data.level === 1) {
|
|
|
- this.crumbsHtml = []
|
|
|
- } else {
|
|
|
- let pathArr = data.path.split('/')
|
|
|
- let newArr = []
|
|
|
- pathArr.forEach(item => {
|
|
|
- newArr.push(item.split('&'))
|
|
|
- })
|
|
|
- this.crumbsHtml = newArr
|
|
|
- }
|
|
|
- this.currentZoneData = data
|
|
|
- }
|
|
|
+
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
window.removeEventListener('resize', this.reinitalMap)
|