diff --git a/data-room-ui/packages/BasicComponents/FlyMap/index.vue b/data-room-ui/packages/BasicComponents/FlyMap/index.vue index 50cb866f..a9b9e1ce 100644 --- a/data-room-ui/packages/BasicComponents/FlyMap/index.vue +++ b/data-room-ui/packages/BasicComponents/FlyMap/index.vue @@ -3,6 +3,7 @@ style="width: 100%; height: 100%" class="bs-design-wrap bs-bar" > + 返回上一级
{ - option.graphic.push({ - type: "text", - left: `250px`, - top: "5%", - style: { - text: '中国', - font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`, - fill: config.customize.fontGraphicColor, - }, - onclick:async()=>{ - this.level='country' - const index = option.graphic.findIndex(i => i.style.text === '中国'); - // 点击元素之后的所有元素全部删除 - option.graphic.splice(index + 1); - const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/country/中华人民共和国.json` - const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) - option.geo.map = '中华人民共和国' - this.changeData({...config,customize:{...config.customize,level:'country',scope:'中国'}}) - echarts.registerMap('中华人民共和国', map); - this.charts.setOption(option, true); - - } - },) - // }) - } - this.charts.setOption(option) + this.charts.setOption(this.option) this.charts.on('click', async(params)=> { - const index = option.graphic.findIndex(i => i.style.text === params.name); - if(params.name=='' || index !== -1) return + if(params.name=='') return if(config.customize.down===false||this.level==='province') return - const idx = option.graphic.length + 1; - option.graphic.push({ - type: "text", - left: `${idx * 250}px`, - top: "5%", - style: { - text: params.name, - font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`, - fill: config.customize.fontGraphicColor, - }, - onclick: async() => { - const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/${params.name=='中华人民共和国'?'country':'province'}/${params.name}.json` - const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) - // 利用函数的作用域,可以直接拿上面的name来用 - const index = option.graphic.findIndex(i => i.style.text === params.name); - // 点击元素之后的所有元素全部删除 - option.graphic.splice(index + 1); - // 很多操作重复了,你可以将公共部分抽离出来 - option.geo.map = params.name; - this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}}) - echarts.registerMap(params.name, map); - this.charts.setOption(option, true); - }, - }); this.level='province' const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/province/${params.name}.json` const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}}) - option.geo.map = params.name + this.option.geo.map = params.name echarts.registerMap(params.name, map); - this.charts.setOption(option, true); + this.charts.setOption(this.option, true); }); }) } @@ -317,4 +276,11 @@ export default { .auto-theme { background-color: rgba(0, 0, 0, 0); } +.bs-design-wrap{ + position: relative; + .button{ + position: absolute; + z-index: 999; + } +} diff --git a/data-room-ui/packages/BasicComponents/FlyMap/setting.vue b/data-room-ui/packages/BasicComponents/FlyMap/setting.vue index ed96a6a4..28bc82c9 100644 --- a/data-room-ui/packages/BasicComponents/FlyMap/setting.vue +++ b/data-room-ui/packages/BasicComponents/FlyMap/setting.vue @@ -69,6 +69,7 @@ v-model="config.customize.dataMap" popper-class="bs-el-select" class="bs-el-select" + @change="changeMap" > - - + --> { this.mapList = res }) + }, + changeMap(val){ + this.config.customize.scope=val.slice(0,-5) }, changeLevel () { if (this.config.customize.level === 'country') { this.config.customize.dataMap = '中华人民共和国.json' + this.config.customize.scope='中国' } else if (this.config.customize.level === 'province') { this.getMapList() this.config.customize.dataMap = '安徽省.json' + this.config.customize.scope='安徽省' this.config.customize.down=false }else{ + this.config.customize.scope='世界' this.config.customize.down=false } }, diff --git a/data-room-ui/packages/BasicComponents/Map/index.vue b/data-room-ui/packages/BasicComponents/Map/index.vue index 1bf49012..dd44ab2b 100644 --- a/data-room-ui/packages/BasicComponents/Map/index.vue +++ b/data-room-ui/packages/BasicComponents/Map/index.vue @@ -3,6 +3,7 @@ style="width: 100%; height: 100%" class="bs-design-wrap bs-bar" > + 返回上一级
{ - option.graphic.push({ - type: "text", - left: `220px`, - top: "5%", - style: { - text: '中国', - font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`, - fill: config.customize.fontGraphicColor, - }, - onclick:async()=>{ - this.level='country' - const index = option.graphic.findIndex(i => i.style.text === '中国'); - // 点击元素之后的所有元素全部删除 - option.graphic.splice(index + 1); - const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/country/中华人民共和国.json` - const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) - option.geo.map = '中华人民共和国' - this.changeData({...config,customize:{...config.customize,level:'country',scope:'中国'}}) - echarts.registerMap('中华人民共和国', map); - this.charts.setOption(option, true); - - } - },) - // }) - } const mapUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/${config.customize.level}/${config.customize.dataMap}` const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) echarts.registerMap(config.customize.scope, map) - this.charts.setOption(option) + this.charts.setOption(this.option) this.charts.on('click', async(params)=> { - const index = option.graphic.findIndex(i => i.style.text === params.name); - if(params.name=='' || index !== -1) return + if(params.name=='') return if(config.customize.down===false||this.level==='province') return - const idx = option.graphic.length + 1; - option.graphic.push({ - type: "text", - left: `${idx * 220}px`, - top: "5%", - style: { - text: params.name, - font: `bolder ${config.customize.fontSize}px "Microsoft YaHei", sans-serif`, - fill: config.customize.fontGraphicColor, - }, - onclick: async() => { - const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/${params.name=='中华人民共和国'?'country':'province'}/${params.name}.json` - const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) - // 利用函数的作用域,可以直接拿上面的name来用 - const index = option.graphic.findIndex(i => i.style.text === params.name); - // 点击元素之后的所有元素全部删除 - option.graphic.splice(index + 1); - // 很多操作重复了,你可以将公共部分抽离出来 - option.geo.map = params.name; - this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}}) - echarts.registerMap(params.name, map); - this.charts.setOption(option, true); - }, - }); this.level='province' const mapUrl =`${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/province/${params.name}.json` const map = await this.$dataRoomAxios.get(decodeURI(mapUrl), {}, true) this.changeData({...config,customize:{...config.customize,level:'province',scope:params.name}}) - option.geo.map = params.name + this.option.geo.map = params.name echarts.registerMap(params.name, map); - this.charts.setOption(option, true); + this.charts.setOption(this.option, true); }); } } @@ -343,4 +302,11 @@ export default { .auto-theme { background-color: rgba(0, 0, 0, 0); } +.bs-design-wrap{ + position: relative; + .button{ + position: absolute; + z-index: 999; + } +} diff --git a/data-room-ui/packages/BasicComponents/Map/setting.vue b/data-room-ui/packages/BasicComponents/Map/setting.vue index 244d5b13..42f4afd0 100644 --- a/data-room-ui/packages/BasicComponents/Map/setting.vue +++ b/data-room-ui/packages/BasicComponents/Map/setting.vue @@ -65,6 +65,7 @@ v-model="config.customize.dataMap" popper-class="bs-el-select" class="bs-el-select" + @change="changeMap()" >