Vue ECharts实现机舱座位选择展示功能


Posted in Vue.js onMay 15, 2022

Vue ECharts实现机舱座位选择展示功能

var ROOT_PATH =
  'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples';
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;
$.get(ROOT_PATH + '/data/asset/geo/flight-seats.svg', function (svg) {
  echarts.registerMap('flight-seats', { svg: svg });
  const takenSeatNames = ['26E', '26D', '26C', '25D', '23C', '21A', '20F'];
  option = {
    tooltip: {},
    geo: {
      map: 'flight-seats',
      roam: true,
      selectedMode: 'multiple',
      layoutCenter: ['50%', '50%'],
      layoutSize: '95%',
      tooltip: {
        show: true
      },
      itemStyle: {
        color: '#fff'
      },
      emphasis: {
        itemStyle: {
          color: undefined,
          borderColor: 'green',
          borderWidth: 2
        },
        label: {
          show: false
        }
      },
      select: {
        itemStyle: {
          color: 'green'
        },
        label: {
          show: false,
          textBorderColor: '#fff',
          textBorderWidth: 2
        }
      },
      regions: makeTakenRegions(takenSeatNames)
    }
  };
  function makeTakenRegions(takenSeatNames) {
    var regions = [];
    for (var i = 0; i < takenSeatNames.length; i++) {
      regions.push({
        name: takenSeatNames[i],
        silent: true,
        itemStyle: {
          color: '#bf0e08'
        },
        emphasis: {
          itemStyle: {
            borderColor: '#aaa',
            borderWidth: 1
          }
        },
        select: {
          itemStyle: {
            color: '#bf0e08'
          }
        }
      });
    }
    return regions;
  }
  myChart.setOption(option);
  // Get selected seats.
  myChart.on('geoselectchanged', function (params) {
    const selectedNames = params.allSelected[0].name.slice();
    // Remove taken seats.
    for (var i = selectedNames.length - 1; i >= 0; i--) {
      if (takenSeatNames.indexOf(selectedNames[i]) >= 0) {
        selectedNames.splice(i, 1);
      }
    }
    console.log('selected', selectedNames);
  });
});
option && myChart.setOption(option);

到此这篇关于Vue ECharts实现机舱座位选择展示的文章就介绍到这了!


Tags in this post...

Vue.js 相关文章推荐
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
vue组件vue-esign实现电子签名
Apr 21 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
vue postcss-px2rem 自适应布局
May 15 #Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
vue使用watch监听属性变化
Apr 30 #Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
vue项目如何打包之项目打包优化(让打包的js文件变小)
关于vue-router-link选择样式设置
Apr 30 #Vue.js
You might like
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python获取Pandas列名的几种方法
2019/08/07 Python
Python如何计算语句执行时间
2019/11/22 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
国际贸易毕业生自荐书
2014/06/22 职场文书
社区端午节活动总结
2015/02/11 职场文书
清洁工岗位职责
2015/02/13 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python