zoukankan      html  css  js  c++  java
  • echarts自定义图片首次加载不显示的问题的修改 vue

    1.图片修改后,只有点击节点的时候才会显示图片,刚加载进去不显示图片,加上下面代码即可显示

    setTimeout(() => { // 解决echarts树图图片首次加载不出现的问题
    echarts.init(chart).resize();
    }, 200);
    2.通过上述修改后,还是有bug,那就是点击父节点展开和合并子节点的时候,图片又会消失,所以又有了下方代码

    echarts.init(chart).on('click', function() { // 解决点击父节点合并或展开后子节点图片不显示的问题
    echarts.init(chart).resize();
    });
    3.整个完整组件代码如下:

    <template>
    <div>
    <div ref="main" style=" 100%;height: 460px;"></div>
    </div>
    </template>

    <script>
    import echarts from 'echarts'
    require('echarts/theme/macarons') // echarts theme

    export default {
    name: 'TrackChains',
    data() {
    return {
    dataTree: [
    {
    'name': '创建文档',
    'type': 'create',
    'documentName': 'test.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\test.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/create.png'),
    'children': [
    {
    'name': '编辑文档',
    'type': 'edit',
    'documentName': 'test.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\test.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/edit.png'),
    'children': [
    {
    'name': '重命名文档',
    'type': 'rename',
    'documentName': '测试.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\测试.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/rename.png'),
    'children': [
    {
    'name': '剪切文档',
    'type': 'cat',
    'documentName': '测试.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\测试.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/cat.png'),
    'children': [
    {
    'name': '流转(1002)',
    'type': 'circulation',
    'symbol': 'image://' + require('@/assets/trackChains/circulation.png')
    }
    ]
    }
    ]
    },
    {
    'name': '复制文档',
    'type': 'copy',
    'documentName': 'test(1).doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\test(1).doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/copy.png'),
    'children': [
    {
    'name': '重命名文档',
    'type': 'rename',
    'documentName': 'dog.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\dog.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/rename.png'),
    'children': [
    {
    'name': '删除文档',
    'type': 'delete',
    'documentName': '测试.doc',
    'documentId': '83f6-98ec3b3d11b0',
    'circulationTimes': '0',
    'filePath': 'c:\\测试.doc',
    'fileSize': '10M',
    'updateTime': '2021-10-20 10:37',
    'terminalName': 'T10001',
    'operatorName': 'U1',
    'symbol': 'image://' + require('@/assets/trackChains/delete.png')
    }
    ]
    }
    ]
    }
    ]
    }
    ]
    }
    ]
    }
    },
    mounted: function() {
    this.setOptions()
    },
    methods: {
    // 实现自适应
    day_init() {
    const self = this; // 因为箭头函数会改变this指向,指向windows。所以先把this保存
    const todaypieId = this.$refs.main
    if (!todaypieId) {
    return false;
    } else {
    setTimeout(() => {
    window.onresize = function() {
    // self.chart = echarts.init(self.$refs.myEchart);
    self.chart_today = echarts.init(
    todaypieId
    );
    self.chart_today.resize();
    };
    }, 200);
    }
    },
    setOptions() {
    // console.log('data', JSON.parse(JSON.stringify(this.dataTree)))
    const defaultOpt = {
    tooltip: {
    trigger: 'item',
    triggerOn: 'mousemove',
    enterable: true, // 鼠标是否可进入提示框浮层中
    formatter: this.formatterHover// 修改鼠标悬停显示的内容
    },
    series: [
    {
    type: 'tree',
    data: this.dataTree,
    top: '1%',
    left: '7%',
    bottom: '1%',
    right: '20%',
    // layout: 'radial',
    label: {
    position: 'left',
    verticalAlign: 'middle',
    align: 'right',
    fontSize: 9
    },
    leaves: {
    label: {
    position: 'right',
    verticalAlign: 'middle',
    align: 'left'
    }
    },
    symbolSize: [30, 30],
    edgeForkPosition: '72%',
    roam: true, // 鼠标缩放,拖拽整颗树
    expandAndCollapse: true, // 无关的子树折叠收起
    animationDuration: 550,
    animationDurationUpdate: 750,
    '50%'// 组件宽度
    }
    ]
    }

    const chart = this.$refs.main
    if (chart) {
    setTimeout(() => { // 解决echarts树图图片首次加载不出现的问题
    echarts.init(chart).resize();
    }, 200);
    echarts.init(chart).setOption(defaultOpt); // 将画布添加到页面中
    echarts.init(chart).on('click', function() { // 解决点击父节点合并或展开后子节点图片不显示的问题
    echarts.init(chart).resize();
    });
    }
    },
    /**
    * 鼠标悬停时,显示节点详情
    * @param params 当前悬停的详细信息
    * @returns {string|*}
    */
    formatterHover(params) {
    const deviceType = params.data.type;
    if (deviceType != 'circulation') {
    return '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">文档编辑方式:' + params.data.name + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">文档名称:' + params.data.documentName + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">文档ID:' + params.data.documentId + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">文件路径:' + params.data.filePath + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">文件大小:' + params.data.fileSize + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">终端名称:' + params.data.terminalName + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">操作员名称:' + params.data.operatorName + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">流转次数:' + params.data.circulationTimes + '</span>' + '<br>' +
    '<span style="padding-left:5px;height:20px;line-height:20px;display: inline-block;font-size: 13px;">更新时间:' + params.data.updateTime + '</span>' + '<br>'
    } else {
    return params.data.name
    }
    }
    }
    }
    </script>

    <style scoped>

    </style>
    如下想用js实现上述代码,可参选另一篇文章:参考地址
    https://blog.csdn.net/qq_36509946/article/details/108219598

    正道的光终将来临,当太阳升起的时候,光芒总会普照大地温暖人间。些许的阴霾也终会有被阳光洒满的一天
  • 相关阅读:
    【学】SoapExtension 学习
    【原】SQL ROW_NUMBER() OVER
    java线程(四)
    java线程(三)
    java线程(二)
    java线程(一)
    编写自己的一个简单的web容器(二)
    编写自己的一个简单的web容器(一)
    java网络编程基础
    spring 数据校验之Hibernate validation
  • 原文地址:https://www.cnblogs.com/sjruxe/p/15568287.html
Copyright © 2011-2022 走看看