echarts-wordcloud在vue中适配2k,4k

  1. 在项目中 install 并在main.js文件中引入 echarts以及在你使用到echarts-wordcloud的vue组件中引入 (因为echarts-wordcloud是echarts的扩展所以需要单独的引用)
    npm install echarts
    npm install echarts-wordcloud

    main.js
    *import echarts from ‘你对应下载的目录’
    .vue文件
    import ‘echarts-wordcloud’
  2. 准备工作完成之后就要进行具体的实现了。由于目前的echarts-wordcloud中还不支持rem,所以要想适配2k和4k就要使用到media query。根据你当前所在终端的大小设置不同的font-size,paddingWidth等等。将2k和4k的样式分别写在baseOption对象和media数组中。
  3. 在项目中我默认我当前使用的2k大屏,所以将2k的实现放在baseOption中,将4k的放在media中。
  4. baseOption中含有一个series数组,我们需要在这个数组中定义对应的样式。这个数组里又包括了一些定义的相当于全局的样式吧(不知道我这样子说是不是对的)以及textStyle文字的样式以及data数组(定义词云展示的数据)。textStyle对象中又包括normal对象(设置为被选中元素的样式)和emphasis对象(被选中元素的样式)两个部分。
  5. media中包括query对象和option对象两个部分,query中可以对设备进行一个界定。比如当你的词云部分在4k大屏中所占宽度为780px在2k大屏中所占宽度为390px时。那么就可以把query设置为:
    query: {
    minWidth: 700,
    },
    当然,这个只是我自己的界定。
    option中和baseOption中是类似的。
  6. 具体的代码实现。
    series: [
    {
    type: ‘wordCloud’,
    sizeRange: [12, 20],
    padding: 20,
    textStyle: {
    //未被选中元素的样式
    normal: {
    show: true,
    color: ‘#01d4f2’,
    backgroundColor: ‘#0b3a54’,
    borderColor: ‘#3dacc8’,
    borderWidth: 1,
    borderRadius: 5,
    padding: [16, 14, 16, 14],
    },
    emphasis: {
    //被选中元素的样式
    color: ‘#fff’,
    backgroundColor: ‘#208ba6’,
    borderColor: ‘#38d0f6’,
    },
    },
    data: [
    //你定义的数据
    ],
    width: ‘100%’,
    height: ‘100%’,
    rotationRange: [0, 0],
    // 网格之间的距离
    gridSize: 30,
    },
    ],
    },
    media: [
    {
    query: {
    minWidth: 700,
    },
    option: {
    series: [
    {
    type: ‘wordCloud’,
    sizeRange: [24, 40],
    padding: 40,
    textStyle: {
    normal: {
    show: true,
    color: ‘#01d4f2’,
    backgroundColor: ‘#0b3a54’,
    borderColor: ‘#3dacc8’,
    borderWidth: 2,
    borderRadius: 10,
    padding: [32, 28, 32, 28],
    },
    emphasis: {
    color: ‘#fff’,
    backgroundColor: ‘#208ba6’,
    borderColor: ‘#38d0f6’,
    },
    },
    width: ‘100%’,
    height: ‘100%’,
    rotationRange: [0, 0],
    gridSize: 60,
    },
    ],
    }
    // media query部分
    media: [
    {
    query: {
    minWidth: 700,
    },
    option: {
    series: [
    {
    type: ‘wordCloud’,
    sizeRange: [24, 40],
    padding: 40,
    textStyle: {
    normal: {
    show: true,
    color: ‘#01d4f2’,
    backgroundColor: ‘#0b3a54’,
    borderColor: ‘#3dacc8’,
    borderWidth: 2,
    borderRadius: 10,
    padding: [32, 28, 32, 28],
    },
    emphasis: {
    color: ‘#fff’,
    backgroundColor: ‘#208ba6’,
    borderColor: ‘#38d0f6’,
    },
    },
    width: ‘100%’,
    height: ‘100%’,
    rotationRange: [0, 0],
    gridSize: 60,
    },
    ],
    },
    },
    ],

你可能感兴趣的:(前端学习,echarts,vue)