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下载后台传过来的乱码流的问题
Dec 05 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
vue 页面跳转的实现方式
Jan 12 Vue.js
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
vue里使用create, mounted调用方法
Apr 26 Vue.js
关于vue-router-link选择样式设置
Apr 30 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
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python 第三方库的安装及pip的使用详解
2017/05/11 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
建筑专业自荐信
2013/10/18 职场文书
供电工程专业求职信
2014/08/09 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
庆祝教师节主持词
2015/07/06 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android