HQChart使用教程98-右键菜单2.0使用介绍

news2025/1/23 10:43:44

HQChart使用教程98-右键菜单2.0使用介绍

  • 内置右键菜单
  • 启用右键菜单
  • 定制右键菜单内容
    • 1. 注册内置右键菜单创建回调事件
    • 2. 修改内置菜单的显示内容
      • 回调函数格式
      • 菜单数据结构
      • 示例
    • 3. 注册菜单项点击事件回调
  • 右键事件
  • 完整示例
  • HQChart代码地址

内置右键菜单

HQChart h5版本内置提供一个仿通达信的右键菜单。效果如下图
在这里插入图片描述
内置菜单源码
https://github.com/jones2000/HQChart/blob/master/webhqchart.demo/jscommon/umychart.popMenu.js

启用右键菜单

在SetOption 开启右键菜单
EnablePopMenuV2 启动内置菜单2.0版本,(内置菜单也可以用在其它如下拉菜单等地方)
IsShowRightMenu 是否显示右键菜单

this.Option= 
{
   Type:'历史K线图',   //创建图形类型
   ..............
   EnablePopMenuV2:true, //默认false
   IsShowRightMenu:true
   ...................
 }

定制右键菜单内容

1. 注册内置右键菜单创建回调事件

JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU

 {
     event:JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU,
     callback:(event, data, obj)=>{ this.OnCreateRightMenu(event, data, obj); }
 },

2. 修改内置菜单的显示内容

在创建右键菜单回调事件我们可以手动修改菜单显示的内容

回调函数格式

function(event, data, obj)
event 事件信息
data 菜单数据

	回调数据格式:
	data=
	{
	 MenuData:菜单数据
	 FrameID:窗口索引 , 0开始
	}

obj 插件实例

菜单数据结构

var aryMenu=
[
     { 
         Name:"叠加品种", //菜单项
         
         Data:	//菜单项数据 菜单点击以后可以接收到这些数据
         { 
         	ID:菜单ID 菜单ID可以使用内置预定义好的,也可以自己定义, 
         	Args:[参数数组]
         }, 
         
         Checked:是否选中打勾 (true|false)
         
         SubMenu:	//子菜单
         [
             
         ]
     },
//下面是一个简单的菜单 包含叠加品种(有子菜单)和区间选择这2个菜单选项
 var aryMenu=
 [
     { 
         Name:"叠加品种", 
         SubMenu:
         [
             { Name:"上证指数", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000001.sh", !aryOverlaySymbol.includes("000001.sh")]}, Checked:aryOverlaySymbol.includes("000001.sh") },
             { Name:"深证成指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399001.sz", !aryOverlaySymbol.includes("399001.sz")]}, Checked:aryOverlaySymbol.includes("399001.sz") },
             { Name:"中小板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399005.sz", !aryOverlaySymbol.includes("399005.sz")]}, Checked:aryOverlaySymbol.includes("399005.sz") },
             { Name:"创业板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399006.sz", !aryOverlaySymbol.includes("399006.sz")]}, Checked:aryOverlaySymbol.includes("399006.sz") },
             { Name:"沪深300", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000300.sh", !aryOverlaySymbol.includes("000300.sh")]}, Checked:aryOverlaySymbol.includes("000300.sh")},
         ]
     },
     
     {
          Name:"区间选择",Data:{ ID: JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID, Args:[!this.EnableSelectRect]}, Checked:this.EnableSelectRect
     },

示例

下面的例子就是在内置的菜单里面增加一项“自定义菜单项"菜单

this.OnCreateRightMenu=function(event, data, obj)
{
     console.log("[KLineChart::OnCreateRightMenu] data=", data);

     var item={ Name:"自定义菜单项", Data:{ ID:"CUSTOM_MENU_1_ID", Args:[1] } };
             
}

3. 注册菜单项点击事件回调

JSCHART_EVENT_ID.ON_MENU_COMMAND 所有菜单事件都会触发这个回调

{
   event:JSCHART_EVENT_ID.ON_MENU_COMMAND,
   callback:(event, data, obj)=>{ this.OnMenuCommand(event, data, obj); }
},

回调函数格式
function(event, data, obj)
data={ CommandID:菜单ID, Args:参数,SrcData:原始数据, PreventDefault:是否阻止默认事件 }
下面是一个简单的菜单事件处理

this.OnMenuCommand=function(event, data, obj)
{
    console.log("[KLineChart::OnMenuCommand] data=", data);

    if (data.CommandID=="CUSTOM_MENU_1_ID")
    {
        data.PreventDefault=true;

        var text="外部自定义菜单按钮";
        alert(text);
    }
}

右键事件

如果不希望使用内置菜单,可以通过关闭内置右键菜单,然后注册右键事件直接在外部自己做

chart.AddEventCallback({event:JSCHART_EVENT_ID.ON_CONTEXT_MENU, callback:testcallback});

完整示例

完整示例可以参见 https://github.com/jones2000/HQChart/blob/master/webhqchart.demo/samples/kline_index_edit.html

HQChart代码地址

github.com/jones2000/HQChart

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1673480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python-VBA函数之旅-tuple函数

目录 一、tuple函数的常见应用场景 二、tuple函数使用注意事项 三、如何用好tuple函数? 1、tuple函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://myelsa1024.blog.csdn.net/ 一、tu…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言: 随着数字化时代的发展,U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而,有时我们可能会遇到U盘突然无法打开,并提示需要格式化的问题。这不仅会打乱我们的工作节奏,还可能会导致重要数据丢失。本文…

环保访谈|聚英环保:以创新科技引领工业环保

近期,中联环保圈希姐对浙江聚英环保科技有限公司负责人王江进行了专访,就公司的发展、核心产品以及合作客户等方面进行了深入交流。 浙江聚英环保科技有限公司成立于2012年,总占地面积超过3万平方米,拥有标准化的生产车间和先进的…

KNIME 报告扩展

文档对应的 KNIME AP 版本为 5.2 介绍 本指南介绍了 KNIME 报告扩展,并展示了如何创建简单和高级报告。 本指南更新于 2024/05/13,最新版请访问指北君网站 https://havef.fun/knime-cn/knime-doc/ KNIME 报告扩展允许您根据工作流程的结果创建静态报告。…

win10安装mysql8.0+汉化

一、官网安装 MySQL 1. 在mysql官网进行下载页面 2. 下滑页面,选择 MySQL community download 3.下载windows版本 4.选择第二个download 5.不用登陆,no thanks,just start my download. 6.下载 二、安装 1. 双击安装 2. 选 Full->next 3…

react Effect副作用 - 避免滥用Effect

react Effect副作用 - 避免滥用Effect react Effect副作用基础概率什么是纯函数? 什么是副作用函数?纯函数副作用函数 什么时候使用Effect如何使用Effect 避免滥用Effect根据 props 或 state 来更新 state当 props 变化时重置所有 state将数据传递给父组件获取异步数据 react…

​民兵档案管理系统-退伍军人档案管理全流程追踪

民兵档案管理系统-退伍军人档案管理全流程追踪 民兵档案管理系统(智档案DW-S403)是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 RFID档案管理系统是以先进…

代码随想录——N叉树的层序遍历(Leetcode429)

题目链接 层序遍历 /* // Definition for a Node. class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, List<Node> _children) {val _val;children _children;} }; */class Sol…

硬件FMEA与软件FMEA的区别——FMEA软件

​免费试用FMEA软件-免费版-SunFMEA 在产品开发和制造过程中&#xff0c;失效模式与影响分析&#xff08;FMEA&#xff09;作为一种预防性的质量工具&#xff0c;对于确保产品性能和质量至关重要。然而&#xff0c;硬件FMEA和软件FMEA在应用和实践方面存在显著的区别。本文旨在…

Excel 根据包含的关键词将指定列按关键词指定顺序排列

例题描述和简单分析 有 Excel 文件&#xff0c;数据如下所示&#xff1a; AB1Parent ColumnModifier (Column)2Jack lives in the villageRose3As mentioned by jackVillage4Rose already spoke to jack about last nightJack5Rose left the village6rose was their yesterda…

uboot 顶层 Makefile 逐行分析

文章目录 0001-00080009-00180019-00510052-00920093-01070108-01230124-01770178-23150178-01810182-01860187-02020203-02450246-02620263-02720273-03370338-03830384-03870388-04250426-04490450-04740475-04860487-04980499-05340535-05500551-05650566-221822192220-2332…

vue3延迟加载(异步组件​)defineAsyncComponent

最简单用法 Index.vue: <script setup> import { onMounted, defineAsyncComponent } from vue import ./index.cssconst Child defineAsyncComponent(() > import(./Child.vue))onMounted(() > {}) </script><template><div class"m-home-w…

HTML静态网页成品作业(HTML+CSS)——动漫哆啦A梦网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…

等保2.0的全面解读与实施策略

《网络安全等级保护基本要求》&#xff08;等保2.0&#xff09;是中华人民共和国国家安全部于2019年6月发布的网络安全等级保护标准。该标准规定了我国关键信息基础设施的网络安全等级保护要求和评估标准&#xff0c;对于保障我国网络安全具有重要的意义。下面是对等保2.0的全面…

功能安全如何在公司顺利开展?-亚远景科技

亚远景功能安全主题线上会议报名开启&#xff01; 随着汽车技术的不断发展&#xff0c;汽车系统的复杂性和交互性大幅增加&#xff0c;功能安全成为确保驾驶员、乘客及行人安全的关键。 本场功能安全线上会议&#xff0c;亚远景为汽车行业的相关人员准备了以下内容&#xff1a…

保姆级AI绘画入门教程,从此找图不求人、风格还统一(入门篇)

安装流程 安装包使用的是b站大佬“秋葉aaaki”制作的整合程序。他还会讲授一些lora训练的方法&#xff08;对于大多数人来说可能一生都用不上的功能&#xff0c;跟着月仔学学基础操作就成了&#xff0c;哈哈。&#xff09; 首先要下载安装包&#xff0c;最新的安装包大小已经…

vant showNotify样式修改

main.ts直接引入根css会影响已经修改好的其他vant样式,直接添加一个新的my-vant.scss文件引入 //vant showNotify样式修改 .van-popup.van-popup--top.van-notify {width: 343px !important;height: 40px !important;border-radius: 12px !important;margin: 0 auto !importan…

黑马点评项目总结及个人优化

怎么根据前端代码实现自己的后端业务,实现不同接口 查阅文档:如果有完善的接口文档,可以直接查阅文档来了解后端所有接口的业务逻辑和功能。 阅读后端代码:通过阅读后端代码,特别是控制器(Controller)层和服务(Service)层的代码,可以了解后端所有接口的具体实现逻辑。…

FPGA verilog LVDS通信协议笔记

一幅图胜过千言万语 直接开始挫代码&#xff0c;先写top.v。 module top();reg clk; // 生成时钟的寄存器 reg rst; // 生成复位信号的寄存器initial clk 1; // 初始值取1 always #1 clk ~clk; //1ns取反一次initial begin // 复位信号&#xff0c;先0&#xff0c;过段时间赋…

飞书深诺沈菁:智能化是企业增长的助推器

刚刚结束的ChinaJoy&#xff0c;既是游戏行业的盛会&#xff0c;也是出海企业的盛会。活动期间&#xff0c;飞书深诺旗下专注于游戏出海的平台Meetgames举办「进无止境」Meetgames升级发布会&#xff0c;推出全新升级的Meetgames平台&#xff0c;并与合作伙伴和嘉宾共同探讨成长…