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

    正道的光终将来临,当太阳升起的时候,光芒总会普照大地温暖人间。些许的阴霾也终会有被阳光洒满的一天
  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/sjruxe/p/15568287.html
Copyright © 2011-2022 走看看