Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)

简介: 本文尝试在Twaver-HTML5的Network组件的ToolTip中显示echarts饼图,但未成功,可能与版本有关。

本来照着官方例子想实现在tooltip中展示echarts饼图
但是并没有成功显示,目前还不清楚什么原因,盲猜是版本原因;
在这里插入图片描述
官方展示:
在这里插入图片描述

在这里插入图片描述
复制官方的代码不展示,不知道那里除了问题,主要记录echarts图的使用方式

    network.getToolTip = function (data) {
   
                if (!data.getToolTip()) {
   
                    var pieChart = new twaver.charts.LineChart();
                    pieChart.formatValueText = function (value, data) {
   
                        return value.toFixed(1);
                    };
                    createPieChartElement("Sprint", 23, 'BLUE', pieChart);
                    createPieChartElement("Verizon", 26, 'YELLOW', pieChart);
                    createPieChartElement("AT&T", 26, 'GREEN', pieChart);
                    createPieChartElement("T-Mobile", 11, 'MAGENTA', pieChart);
                    createPieChartElement("Alltel", 5, 'CYAN', pieChart);
                    createPieChartElement("Rest", 9, 'RED', pieChart);
                    var pieChartPane = new twaver.charts.ChartPane(pieChart);
                    pieChartPane.adjustBounds({
    x: 0, y: 0, width: 200, height: 200 });
                    let aaa = pieChartPane.getView()
                    data.setToolTip(aaa);
                    twaver.Util.getToolTipDiv().style.width = '200px';
                    twaver.Util.getToolTipDiv().style.height = '200px';
                }
                return data.getToolTip();
            };

全部代码:

/*
 * @Descripttion: 
 * @version: 
 * @Author: ZhangJunQing
 * @Date: 2022-04-18 14:44:05
 * @LastEditors: ZhangJunQing
 * @LastEditTime: 2022-04-29 15:27:48
 */
import React, {
    useEffect, useState } from 'react'
import {
   
    returnElementBoxAndNetworkFun,
    returnNodeFun,
    returnLineFun,
    returnRegisterImage,
    returnGroupFun
} from './utils'
const twaver = require('twaver');
// const demo = require('demo');
const Demo = () => {
   
    const [network, setnetwork] = useState({
   })
    const init = () => {
   
        const [box, network] = returnElementBoxAndNetworkFun()
        setnetwork(_ => network)
        // network.invalidateElementUIs();
        // network.setToolTipEnabled(true);
        var toolbar = document.createElement('div');
        init()
        function init() {
   
            initToolbar();
            var pane = new twaver.controls.BorderPane(network, toolbar);
            pane.setTopHeight(25); 
            var view = pane.getView();
            view.style.left = '0px'; view.style.top = '0px';
            view.style.right = '0px'; view.style.bottom = '0px';
            document.getElementById("testID").appendChild(view);
            window.onresize = function () {
   
                pane.invalidate();
            };
            network.getToolTip = function (data) {
   
                if (!data.getToolTip()) {
   
                    var pieChart = new twaver.charts.LineChart();
                    pieChart.formatValueText = function (value, data) {
   
                        return value.toFixed(1);
                    };
                    createPieChartElement("Sprint", 23, 'BLUE', pieChart);
                    createPieChartElement("Verizon", 26, 'YELLOW', pieChart);
                    createPieChartElement("AT&T", 26, 'GREEN', pieChart);
                    createPieChartElement("T-Mobile", 11, 'MAGENTA', pieChart);
                    createPieChartElement("Alltel", 5, 'CYAN', pieChart);
                    createPieChartElement("Rest", 9, 'RED', pieChart);
                    var pieChartPane = new twaver.charts.ChartPane(pieChart);
                    pieChartPane.adjustBounds({
    x: 0, y: 0, width: 200, height: 200 });
                    let aaa = pieChartPane.getView()
                    data.setToolTip(aaa);
                    twaver.Util.getToolTipDiv().style.width = '200px';
                    twaver.Util.getToolTipDiv().style.height = '200px';
                }
                return data.getToolTip();
            };
            initBox();
        }
        function createPieChartElement(name, value, color, pieChart) {
   
            var element = new twaver.Element();
            element.setName(name); 
            element.setStyle('chart.value', value);
            element.setStyle('chart.color', color);
            pieChart.getDataBox().add(element); 
            return element;
        }
        function initBox() {
   
         let   from = new twaver.Node();
            from.setName('From');
            from.setLocation(400, 100);
            box.add(from);
            var to = new twaver.Node();
            to.setName('To');
            to.setLocation(300, 300);
            box.add(to);
            var link = new twaver.Link(from, to);
            link.setName('Link');
            box.add(link);
        }
        function initToolbar() {
   
            addButton(toolbar, 'Zoom In', function () {
    network.zoomIn(); });
            addButton(toolbar, 'Zoom Out', function () {
    network.zoomOut(); });
            addButton(toolbar, 'Zoom Overview', function () {
    network.zoomOverview(); });
            addButton(toolbar, 'Zoom Reset', function () {
    network.zoomReset(); });
        }
        function addButton(toolbar, label, handler) {
   
            var button = document.createElement('input');
            button.type = 'button';
            button.style.paddingLeft="20px";
            button.style.paddingRight="20px";
            button.style.border="1px solid red";
             button.value = label;
            button.onclick = handler;
             toolbar.appendChild(button);
        }
    }

    useEffect(init, [])
    return (
        <>
            <p style={
   {
    fontSize: "20px", paddingLeft: "50px", poaddingTop: "50px" }}>tips: </p>
            <ul style={
   {
    fontSize: "20px", paddingLeft: "50px" }}>
                <li>在tooltip中显示饼图</li>
            </ul>
            {
   /* 画布元素需要开启定位 不然生成的图元坐标点会偏移 */}
            <div id="testID" style={
   {
    width: "800px", height: "800px", border: "1px solid #ccc", position: "relative", margin: "0 auto" }}></div>
        </>
    )
}
export default Demo

学习参考:TWaver Documents

目录
相关文章
|
2月前
|
人工智能
|
3月前
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
49 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
|
3月前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
42 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
3月前
Twaver-HTML5基础学习(38)劈分面板SplitPane
本文介绍了如何在Twaver-HTML5中使用SplitPane组件来创建可分割的面板,通过动态调整分割条来改变面板的大小,支持水平和垂直分割。
35 2
Twaver-HTML5基础学习(38)劈分面板SplitPane
|
3月前
|
移动开发 数据可视化 HTML5
Twaver-HTML5基础学习(40)表格可视化视图组件(Table)
本文介绍了如何在Twaver-HTML5中使用表格可视化视图组件(Table),包括创建表格、定义列对象、实现数据绑定和排序,以及处理表格事件和获取表格数据的方法。
43 1
|
2月前
html基础知识学习
html基础知识学习
37 0
|
19天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
35 7
|
19天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
29 6
|
19天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
30 5