From 4f437aec7cfb60fe87daec1c5e52b3ed1d10e719 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Thu, 25 Sep 2025 15:07:51 +0800
Subject: [PATCH] 1
---
src/page/kline/components/kLine.vue | 582 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 339 insertions(+), 243 deletions(-)
diff --git a/src/page/kline/components/kLine.vue b/src/page/kline/components/kLine.vue
index 6adb42c..f2b1bec 100644
--- a/src/page/kline/components/kLine.vue
+++ b/src/page/kline/components/kLine.vue
@@ -1,176 +1,145 @@
<template>
<div class="box">
- <!-- <div class="left">
- <el-menu
- default-active="AAPL.usa"
- class="el-menu-vertical-demo"
- background-color="#191919"
- text-color="#dee4eb"
- active-text-color="#ff6900"
- :unique-opened="true"
- @select='handleSelect'
- @open="handleOpen"
- @close="handleClose">
- <el-submenu v-for="item in NavMenuAry" :key="item.Title" :index="item.Title">
- <template slot="title">
- <i class="el-icon-menu"></i>
- <span>{{item.Title}}</span>
- </template>
- <el-menu-item v-for="subItem in item.Sub" :key='subItem.Code' :index="subItem.Code">{{subItem.Name}}</el-menu-item>
- </el-submenu>
- </el-menu>
- </div> -->
-
<div class="right" ref="right">
- <!-- <div class="rightTab" ref="rightTab">
- <div class="btn showMinute" :class="{ active: chartType == 'minute' }"
- @click="changeRightContent('minute')">分时图</div>
- <div class="btn showKline" :class="{ active: chartType == 'kline' }" @click="changeRightContent('kline')">
- K线图</div>
- </div>-->
<div class="rightContent" ref="rightContent">
- <!-- <div class="contentBox" v-show='chartType == "minute"'>
- <div class="indexWrap" ref="minute_indexWrap">
- <div class="btnGroup">
- <div class="btn" v-for="(indexName) in MinuteIndexMenu" :key="indexName.ID"
- @click="changeChartIndex(indexName.ID)">{{ indexName.Name }}</div>
- </div>
- </div>
- <div class="periodWrap" ref='minute_periodWrap'>
- <div class="btnGroup">
- <div class="btn" :class="{ active: MinuteDayIndex == index }"
- v-for="(item, index) in MinuteDayMenu" :key="item.ID"
- @click="OnClickMinuteDayMenu(index, item)">{{ item.Name }}</div>
- </div>
- </div>
-
- </div>-->
-
<div class="contentBox">
- <!-- 分时 -->
- <!-- <div class="indexWrap" ref="kline_indexWrap">
- <div class="btnGroup">
- <div class="btn" v-for="(item) in KLineIndexMenu" :key="item.ID"
- @click="ChangeKLineIndex(item)">{{ item.Name }}</div>
- </div>:class="{ active: KLinePeriodIndex == index }"
- </div>-->
<div class="periodWrap kline_periodWrap" ref="kline_periodWrap">
<!-- DWM 分 -->
- <div class="btnGroup" style="position:relative">
+ <div class="btnGroup" style="position: relative">
<div
class="btn2"
v-for="(item, index) in KLinePeriodMenu"
:class="{ active: KLinePeriodIndex == index }"
:key="item.ID"
- @click="index == 0 ? changeRightContent('minute') : OnClickKLinePeriodMenu(index, item, 'kline')"
+ @click="OnClickKLinePeriodMenu(index, item, 'kline')"
>
<span>{{ item.Name }}</span>
</div>
- <div class="btn2" @click="isShow ? isShow = false : isShow = true">
- <div class="btn2" :class="KLinePeriodIndex === index ? 'active' : ''">
- <img src="../../../assets/img/options.png" alt />
- </div>
- </div>
- <div style="position:absolute;right: 0;top: 25px;;z-index: 99;" v-if="isShow == true">
+
+ <div
+ style="position: absolute; right: 0; top: 25px; z-index: 99"
+ v-if="isShow == true"
+ >
<div
class="btnGroup"
v-show="IsShowRightMenu"
- style="display: flex;flex-direction: column;"
+ style="display: flex; flex-direction: column"
>
<div
class="btn"
:class="{ active: KLineRightIndex == index }"
v-for="(item, index) in KLineRightMenu"
:key="item.ID"
- style="padding:10px"
+ style="padding: 10px"
@click="OnClickKLineRightMenu(index, item)"
- >{{ item.Name }}</div>
+ >
+ {{ item.Name }}
+ </div>
<div
class="btn"
- v-for="(item) in KLineIndexMenu"
+ v-for="item in KLineIndexMenu"
:key="item.ID"
- style="padding:10px"
+ style="padding: 10px"
@click="ChangeKLineIndex(item)"
- >{{ item.Name }}</div>
+ >
+ {{ item.Name }}
+ </div>
</div>
</div>
</div>
</div>
- <div class="hqchart" id="hqchart_minute" ref="kline" v-show="chartType == 'minute'"></div>
- <div class="hqchart" id="hqchart_kline" ref="kline2" v-show="chartType == 'kline'"></div>
-
- <!-- <div class="statementWrap" ref="kline_statementWrap">
- 郑重声明:本页面所有数据来自互联网或自动生成的测试数据,仅用于学习HQChart图形库使用,不构成任何投资价值信息。如使用者依据本网站提供的信息、资料及图表进行金融、证券等投资所造成的盈亏与本网站无关。
- </div>-->
+ <div
+ class="hqchart"
+ id="hqchart_minute"
+ ref="kline"
+ v-show="chartType == 'minute'"
+ ></div>
+ <div
+ class="hqchart"
+ id="hqchart_kline"
+ ref="kline2"
+ v-show="chartType == 'kline'"
+ ></div>
</div>
</div>
</div>
-
- <!-- <div class="right" ref="kline_right" >
-
- </div>-->
</div>
</template>
<script>
+let timerss = null; //定时器
+import * as echarts from "echarts";
import _ from "lodash";
import HQChart from "hqchart";
import "hqchart/src/jscommon/umychart.resource/css/tools.css";
import "hqchart/src/jscommon/umychart.resource/font/iconfont.css";
import EastMoney from "../../../eastmoney/HQData.js";
+import i18n from "@/locales/index.js";
-//源码调试用
-//import Chart from '../jscommon/umychart.vue/umychart.vue.js'
-//import '../jscommon/umychart.resource/css/tools.css'
-//import '../jscommon/umychart.resource/font/iconfont.css'
-//var HQChart={ Chart:Chart };
HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function(symbol) {
return 2;
-}; //一直交易
+}; // 一直交易
function DefaultData() {}
DefaultData.GetMinuteOption = function() {
var option = {
- Type: "分钟走势图", //创建图形类型
- //Type:'分钟走势图横屏',
-
- //窗口指标
+ Type: "分钟走势图", // 创建图形类型
+ // Type:'分钟走势图横屏',
+ Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC"
+ // 窗口指标
Windows: [
// { Index:"KDJ", Modify: false, Change: true, Close: true},
// { Index: "KDJ", Modify: false, Change: false, Close: false }
],
-
+ SplashTitle: "loading...",
Symbol: "AAPL.usa",
- IsAutoUpdate: true, //是自动更新数据
- AutoUpdateFrequency: 20000,
- DayCount: 1, //1 最新交易日数据 >1 多日走势图
- IsShowRightMenu: false, //是否显示右键菜单
+ IsAutoUpdate: false, // 是自动更新数据
+ AutoUpdateFrequency: 2000,
+ DayCount: 1, // 1 最新交易日数据 >1 多日走势图
+ IsShowRightMenu: false, // 是否显示右键菜单
CorssCursorTouchEnd: true,
- CorssCursorInfo: { Left: 1, Right: 1 },
+ CorssCursorInfo: {
+ Left: 1,
+ Right: 1
+ },
MinuteLine: {
- IsDrawAreaPrice: true, //是否画价格面积图
- IsShowAveragePrice: true //不显示均线
+ IsDrawAreaPrice: true, // 是否画价格面积图
+ IsShowAveragePrice: true // 不显示均线
},
- //边框
+ // 边框
Border: {
- Left: 1, //左边间距
- Right: 1, //右边间距
+ Left: 1, // 左边间距
+ Right: 1, // 右边间距
Top: 0,
Bottom: 1,
- AutoRight: { Blank: 10, MinWidth: 40 },
- AutoLeft: { Blank: 10, MinWidth: 40 }
+ AutoRight: {
+ Blank: 10,
+ MinWidth: 40
+ },
+ AutoLeft: {
+ Blank: 10,
+ MinWidth: 40
+ }
},
- //子框架设置
+ // 子框架设置
// Height 是否显示成交量 柱状图 0 false
- Frame: [{ SplitCount: 5 }, { SplitCount: 3, Height: 0 }],
+ Frame: [
+ {
+ SplitCount: 5
+ },
+ {
+ SplitCount: 3,
+ Height: 0
+ }
+ ],
- //扩展图形
+ // 扩展图形
ExtendChart: [
- //{Name:'MinuteTooltip' } //手机端tooltip
+ // {Name:'MinuteTooltip' } //手机端tooltip
]
};
@@ -179,10 +148,26 @@
DefaultData.GetMinuteIndexMenu = function() {
var data = [
- { Name: "MACD", ID: "MACD", WindowIndex: 2 },
- { Name: "KDJ", ID: "KDJ", WindowIndex: 2 },
- { Name: "DMI", ID: "DMI", WindowIndex: 2 },
- { Name: "ROC", ID: "ROC", WindowIndex: 2 }
+ {
+ Name: "MACD",
+ ID: "MACD",
+ WindowIndex: 2
+ },
+ {
+ Name: "KDJ",
+ ID: "KDJ",
+ WindowIndex: 2
+ },
+ {
+ Name: "DMI",
+ ID: "DMI",
+ WindowIndex: 2
+ },
+ {
+ Name: "ROC",
+ ID: "ROC",
+ WindowIndex: 2
+ }
];
return data;
@@ -190,19 +175,43 @@
DefaultData.GetKLineIndexMenu = function() {
var data = [
- { Name: "MA", ID: "MA", WindowIndex: 0 },
- { Name: "BOLL", ID: "BOLL", WindowIndex: 0 },
- { Name: "MACD", ID: "MACD", WindowIndex: 1 },
- { Name: "KDJ", ID: "KDJ", WindowIndex: 1 },
- { Name: "DMI", ID: "DMI", WindowIndex: 1 },
- { Name: "ROC", ID: "ROC", WindowIndex: 1 }
+ {
+ Name: "MA",
+ ID: "MA",
+ WindowIndex: 0
+ },
+ {
+ Name: "BOLL",
+ ID: "BOLL",
+ WindowIndex: 0
+ },
+ {
+ Name: "MACD",
+ ID: "MACD",
+ WindowIndex: 1
+ },
+ {
+ Name: "KDJ",
+ ID: "KDJ",
+ WindowIndex: 1
+ },
+ {
+ Name: "DMI",
+ ID: "DMI",
+ WindowIndex: 1
+ },
+ {
+ Name: "ROC",
+ ID: "ROC",
+ WindowIndex: 1
+ }
];
return data;
};
DefaultData.GetTestSymbolMenu = function() {
- //品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀}
+ // 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀}
var data = [
{
Title: "美股",
@@ -364,7 +373,7 @@
},
{
Name: "美元指数",
- Code: "UDI_100.ET"
+ Code: "UPI_100.ET"
}
]
},
@@ -921,54 +930,73 @@
return data;
};
+// k形图
DefaultData.GetKLineOption = function() {
var option = {
- Type: "历史K线图", //创建图形类型
-
- //窗口指标
+ Type: "历史K线图", // 创建图形类型
+ Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC"
+ // 窗口指标
Windows: [
- { Index: "MA", Modify: true, Modify: false, Change: false, height: 20 },
- { Index: "ATR", Modify: false, Change: false, Close: false }
- // { Index: "MACD", Modify: true, Change: true, Close: false }
+ {
+ Index: "MA",
+ Modify: true,
+ Change: false,
+ height: 20
+ },
+ // { Index: 'MA', Modify: true, Modify: false, Change: false, height: 20 },
+ {
+ Index: "ATR",
+ Modify: false,
+ Change: false,
+ Close: false
+ }
+ // { Index: 'MACD', Modify: true, Change: true, Close: false }
],
+ SplashTitle: "loading...",
Symbol: "600015.sh",
- IsAutoUpdate: true, //是自动更新数据
+ IsAutoUpdate: true, // 是自动更新数据
AutoUpdateFrequency: 15000,
IsApiPeriod: true,
- IsShowRightMenu: false, //是否显示右键菜单
- //CorssCursorTouchEnd:true,
+ IsShowRightMenu: false, // 是否显示右键菜单
+ // CorssCursorTouchEnd:true,
KLine: {
- DragMode: 1, //拖拽模式 0 禁止拖拽 1 数据拖拽 2 区间选择
- Right: 0, //复权 0 不复权 1 前复权 2 后复权
- Period: 0, //周期 0 日线 1 周线 2 月线 3 年线
- MaxReqeustDataCount: 1000, //数据个数
- PageSize: 60, //一屏显示多少数据
- KLineDoubleClick: false, //双击分钟走势图
- IsShowTooltip: true, //是否显示K线提示信息
+ DragMode: 1, // 拖拽模式 0 禁止拖拽 1 数据拖拽 2 区间选择
+ Right: 0, // 复权 0 不复权 1 前复权 2 后复权
+ Period: 0, // 周期 0 日线 1 周线 2 月线 3 年线
+ MaxReqeustDataCount: 1000, // 数据个数
+ PageSize: 60, // 一屏显示多少数据
+ KLineDoubleClick: false, // 双击分钟走势图
+ IsShowTooltip: true, // 是否显示K线提示信息
DrawType: 0,
RightSpaceCount: 2
},
- CorssCursorInfo: { Left: 0, Right: 1 },
+ CorssCursorInfo: {
+ Left: 0,
+ Right: 1
+ },
- //标题设置
+ // 标题设置
KLineTitle: {
- IsShowName: false, //不显示股票名称
- IsShowSettingInfo: false, //不显示周期/复权
+ IsShowName: false, // 不显示股票名称
+ IsShowSettingInfo: false, // 不显示周期/复权
isShowDateTime: true
},
- //边框
+ // 边框
Border: {
- Left: 1, //左边间距
- Right: 1, //右边间距
+ Left: 1, // 左边间距
+ Right: 1, // 右边间距
Top: 0,
Bottom: 15,
- AutoRight: { Blank: 10, MinWidth: 40 }
+ AutoRight: {
+ Blank: 10,
+ MinWidth: 40
+ }
},
- //子框架设置
+ // 子框架设置
Frame: [
{
SplitCount: 5,
@@ -981,13 +1009,19 @@
}
]
},
- { SplitCount: 3, IsShowLeftText: false },
- { SplitCount: 3, IsShowLeftText: false }
+ {
+ SplitCount: 3,
+ IsShowLeftText: false
+ },
+ {
+ SplitCount: 3,
+ IsShowLeftText: false
+ }
],
- //扩展图形
+ // 扩展图形
ExtendChart: [
- //{ Name:'KLineTooltip' }, //手机端tooltip
+ // { Name:'KLineTooltip' }, //手机端tooltip
]
};
@@ -996,11 +1030,26 @@
DefaultData.GetMinuteDayMenu = function() {
var data = [
- { Name: "1D", ID: 1 },
- { Name: "2D", ID: 2 },
- { Name: "3D", ID: 3 },
- { Name: "4D", ID: 4 },
- { Name: "5D", ID: 5 }
+ {
+ Name: "1D",
+ ID: 1
+ },
+ {
+ Name: "2D",
+ ID: 2
+ },
+ {
+ Name: "3D",
+ ID: 3
+ },
+ {
+ Name: "4D",
+ ID: 4
+ },
+ {
+ Name: "5D",
+ ID: 5
+ }
];
return data;
@@ -1008,13 +1057,32 @@
DefaultData.GetKLinePeriodMenu = function() {
var data = [
- { Name: "分时", ID: 3 },
- { Name: "天", ID: 0 },
- { Name: "周", ID: 1 },
- { Name: "月", ID: 2 },
- { Name: "1分", ID: 4 },
- { Name: "5分", ID: 5 },
- { Name: "30分", ID: 7 }
+ // { Name: i18n.t('hj86'), ID: 3 },分时额外处理
+ // { Name: i18n.t("hj86"), ID: 4 },
+ {
+ Name: i18n.t("hj87"),
+ ID: 0
+ },
+ {
+ Name: i18n.t("hj88"),
+ ID: 1
+ },
+ {
+ Name: i18n.t("hj89"),
+ ID: 2
+ },
+ {
+ Name: i18n.t("hj90"),
+ ID: 4
+ },
+ {
+ Name: i18n.t("hj91"),
+ ID: 5
+ },
+ {
+ Name: i18n.t("hj92"),
+ ID: 7
+ }
];
return data;
@@ -1022,27 +1090,38 @@
DefaultData.GetKLineRightMenu = function() {
var data = [
- { Name: "不复权", ID: 0 },
- { Name: "前复权", ID: 1 },
- { Name: "后复权", ID: 2 }
+ {
+ Name: i18n.t("hj93"),
+ ID: 0
+ },
+ {
+ Name: i18n.t("hj94"),
+ ID: 1
+ },
+ {
+ Name: i18n.t("hj95"),
+ ID: 2
+ }
];
return data;
};
export default {
- props:{
- hktype:{
- type:String,
- default:''
+ props: {
+ hktype: {
+ type: String,
+ default: ""
}
},
data() {
return {
+ key: 0,
+ active: 0,
MinuteDayMenu: DefaultData.GetMinuteDayMenu(),
MinuteDayIndex: 0,
KLinePeriodMenu: DefaultData.GetKLinePeriodMenu(),
- KLinePeriodIndex: 1,
+ KLinePeriodIndex: 0,
KLineRightMenu: DefaultData.GetKLineRightMenu(),
KLineRightIndex: 0,
IsShowRightMenu: true,
@@ -1052,36 +1131,45 @@
// Symbol:'000001_0.sh',
// 上海 1.sh 深圳0.sz 北京0.bj
- Symbol: "", //HQChart内部编码美股加后缀.usa AAPL.usa
- Chart: null, //图形控件 分时图
- KLineChart: null, //图形控件 K线图
+ Symbol: "", // HQChart内部编码美股加后缀.usa AAPL.usa
+
+ Chart: null, // 图形控件 分时图
+ KLineChart: null, // 图形控件 K线图
NavMenuAry: DefaultData.GetTestSymbolMenu(),
VolChartHeight: 10,
chartType: "kline",
- isShow: false
+ isShow: false,
+ xData: []
};
},
+
created() {
const { query } = this.$route;
- if (query.if_zhishu == "0") {
+ if (query.if_zhishu === "0") {
this.Symbol = `${query.code}_${query.sok}.${query.type}`;
- } else if((query.code.indexOf('hk') > -1) && query.if_zhishu != 0){
+ } else if (query.code.indexOf("hk") > -1 && query.if_zhishu !== 0) {
this.Symbol = `${query.if_zhishu}_${query.sok}.hk`;
} else {
this.Symbol = `${query.if_zhishu}_${query.sok}.${query.type}`;
}
// this.Symbol = 'BRK_A106.usa'
- console.log(this.Symbol);
+ console.log("------?????", this.Symbol);
+ // 写入localStorage
+ localStorage.setItem("hqchart_symbol", this.Symbol);
},
-
+
mounted() {
this.offHeight = this.$refs["rightContent"].offsetHeight;
this.OnSize();
this.SetChartStyle();
+ // this.CreateMinuteChart();
+
+ // this.CreateKLineChart();
this.$nextTick(() => {
- this.CreateMinuteChart();
+ // timerss = setInterval(() => {
+ // this.CreateMinuteChart();
this.CreateKLineChart();
});
let that = this;
@@ -1090,42 +1178,45 @@
var elementResizeDetectorMaker = require("element-resize-detector");
// 创建实例,无参数
- var erd = elementResizeDetectorMaker(); //使用默认选项(将使用基于对象的方法)。
+ var erd = elementResizeDetectorMaker(); // 使用默认选项(将使用基于对象的方法)。
// 创建实例带参数
// 使用基于超快速滚动的方法。
// 这是推荐的策略。
- var erdUltraFast = elementResizeDetectorMaker({
+ elementResizeDetectorMaker({
+ // var erdUltraFast = elementResizeDetectorMaker({
strategy: "scroll",
- callOnAdd: true, //callOnAdd选项,用于确定在添加侦听器时是否应调用它们。默认为true。
- //如果为true,则确保在添加侦听器后将对其进行调用。如果为false,则在添加侦听器时将不保证其
- //被调用(不会阻止其被调用)
+ callOnAdd: true, // callOnAdd选项,用于确定在添加侦听器时是否应调用它们。默认为true。
+ // 如果为true,则确保在添加侦听器后将对其进行调用。如果为false,则在添加侦听器时将不保证其
+ // 被调用(不会阻止其被调用)
debug: true
});
- //监听class为staticNextMain的元素 大小变化
+ // 监听class为staticNextMain的元素 大小变化
var self = this;
- //侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将
- //覆盖实例选项
- erd.listenTo(this.$refs["rightContent"], function(
- element
- ) {
+ // 侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将
+ // 覆盖实例选项
+ erd.listenTo(this.$refs["rightContent"], function(element) {
var width = element.offsetWidth;
var height = element.offsetHeight;
- self.tableHeight = height - 100; //将监听到的宽高进行赋值
+ self.tableHeight = height - 10; // 将监听到的宽高进行赋值
self.tableWidth = width - 20;
that.offHeight = height;
that.OnSize();
});
},
-
+ beforeDestroy() {
+ clearInterval(timerss); // 在组件销毁前清除定时器
+ timerss = null;
+ this.clearTime();
+ },
methods: {
OnSize() {
var width = this.$refs.right.clientWidth;
- var rightTab = this.$refs.rightTab;
- var periodWrap = this.$refs.minute_periodWrap;
- var indexWrap = this.$refs.minute_indexWrap;
- var statementWrap = this.$refs.minute_statementWrap;
- // var chartHeight = window.innerHeight - rightTab.offsetHeight - periodWrap.offsetHeight - indexWrap.offsetHeight;
+ // var rightTab = this.$refs.rightTab
+ // var periodWrap = this.$refs.minute_periodWrap
+ // var indexWrap = this.$refs.minute_indexWrap
+ // var statementWrap = this.$refs.minute_statementWrap
+ // // var chartHeight = window.innerHeight - rightTab.offsetHeight - periodWrap.offsetHeight - indexWrap.offsetHeight;
var chartHeight = this.offHeight;
var kline = this.$refs.kline;
@@ -1138,7 +1229,16 @@
if (this.Chart) this.Chart.OnSize();
if (this.KLineChart) this.KLineChart.OnSize();
},
-
+ // 清除所有定时器
+ clearTime() {
+ // 创建一个额外的定时器以获取当前最大定时器 ID
+ let lastIntervalId = setInterval(() => {}, 1000);
+ // 遍历并清除所有定时器
+ for (let i = 1; i <= lastIntervalId; i++) {
+ clearInterval(i);
+ clearTimeout(i);
+ }
+ },
changeRightContent(type) {
this.KLinePeriodIndex = 0;
this.chartType = type;
@@ -1151,18 +1251,21 @@
EastMoney.HQData.SetMinuteChartCoordinate();
var blackStyle = HQChart.Chart.HQChartStyle.GetStyleConfig(
HQChart.Chart.STYLE_TYPE_ID.WHITE_ID
- ); //读取黑色风格配置
+ ); // 读取黑色风格配置
+
+ blackStyle.UpBarColor = "#449b54"; //上涨
+ blackStyle.DownBarColor = "#e13b45";
HQChart.Chart.JSChart.SetStyle(blackStyle);
},
CreateMinuteChart() {
- if (this.Chart) return;
+ // if (this.Chart) return;
var option = DefaultData.GetMinuteOption();
option.Symbol = this.Symbol;
option.NetworkFilter = (data, callback) => {
this.NetworkFilter(data, callback);
- }; //网络请求回调函数
+ }; // 网络请求回调函数
var chart = HQChart.Chart.JSChart.Init(this.$refs.kline);
chart.SetOption(option);
@@ -1174,10 +1277,12 @@
var option = DefaultData.GetKLineOption();
option.Symbol = this.Symbol;
+
option.NetworkFilter = (data, callback) => {
this.NetworkFilter(data, callback);
- }; //网络请求回调函数
+ // this.NetworkFilter(data, callback);
+ }; // 网络请求回调函数
var chart = HQChart.Chart.JSChart.Init(this.$refs.kline2);
HQChart.Chart.JSChart.GetResource().FrameLogo.Text = null;
chart.SetOption(option);
@@ -1185,7 +1290,7 @@
},
ChangeSymbol(
- symbol //切换股票
+ symbol // 切换股票
) {
var symbolUpper = symbol.toUpperCase();
var isShowVolChart = EastMoney.HQData.IsShowVolChart(symbolUpper);
@@ -1197,7 +1302,7 @@
frame.Height = 0;
}
var period = this.KLineChart.JSChartContainer.Period;
- var isShowRightMenu = EastMoney.HQData.IsEnableRight(period, symbol); //是否显示复权菜单
+ var isShowRightMenu = EastMoney.HQData.IsEnableRight(period, symbol); // 是否显示复权菜单
this.IsShowRightMenu = isShowRightMenu;
this.Symbol = symbol;
@@ -1207,7 +1312,7 @@
OnClickMinuteDayMenu(
index,
- item //分时图天数
+ item // 分时图天数
) {
this.MinuteDayIndex = index;
this.Chart.ChangeDayCount(item.ID);
@@ -1216,67 +1321,47 @@
OnClickKLinePeriodMenu(
index,
item,
- type //K线周期
+ type // K线周期
) {
- if (index != 0) {
- this.chartType = type;
- this.KLinePeriodIndex = index;
- this.KLineChart.ChangePeriod(item.ID);
- }
+ this.clearTime();
+ //分时额外处理才注释的
+ this.chartType = type;
+ this.KLinePeriodIndex = index;
+ this.KLineChart.ChangePeriod(item.ID);
},
OnClickKLineRightMenu(
index,
- item //K线复权
+ item // K线复权
) {
this.KLineRightIndex = index;
this.KLineChart.ChangeRight(item.ID);
},
ChangeMinuteIndex(
- item //切换分时图指标
+ item // 切换分时图指标
) {
if (this.Chart) this.Chart.ChangeIndex(item.WindowIndex, item.ID);
},
ChangeKLineIndex(
- item //切换K线图指标
+ item // 切换K线图指标
) {
- if (this.KLineChart)
+ if (this.KLineChart) {
this.KLineChart.ChangeIndex(item.WindowIndex, item.ID);
+ }
},
NetworkFilter(
data,
- callback //第3方数据替换接口
+ callback // 第3方数据替换接口
) {
EastMoney.HQData.Log("[HQChartDemo::NetworkFilter] data", data);
- switch (data.Name) {
- //分时图数据对接
- case "MinuteChartContainer::RequestMinuteData":
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- case "MinuteChartContainer::RequestHistoryMinuteData":
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
-
- case "KLineChartContainer::RequestHistoryData": //日线全量数据下载
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- case "KLineChartContainer::RequestRealtimeData": //日线实时数据更新
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- case "KLineChartContainer::RequestFlowCapitalData": //流通股本
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- case "KLineChartContainer::ReqeustHistoryMinuteData": //分钟全量数据下载
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- case "KLineChartContainer::RequestMinuteRealtimeData": //分钟增量数据更新
- EastMoney.HQData.NetworkFilter(data, callback);
- break;
- }
+ EastMoney.HQData.NetworkFilter(data, callback);
+ timerss = setInterval(() => {
+ EastMoney.HQData.NetworkFilter(data, callback);
+ }, 3000);
},
handleSelect(key, keyPath) {
@@ -1370,12 +1455,13 @@
&:hover,
&.active {
- color: rgb(2, 99, 226);
+ color: #c4d600;
}
}
}
.rightContent {
+ // height: calc(100% - @rightTabHeight);
height: calc(100% - @rightTabHeight);
width: 100%;
@@ -1412,8 +1498,9 @@
border-right: none;
}
}
+
.active {
- color: rgb(2, 99, 226);
+ color: #c4d600;
font-weight: 800;
background: rgb(245, 245, 245);
}
@@ -1452,6 +1539,7 @@
}
}
}
+
// .schart-drawing {
// height: 100% !important;
// }
@@ -1463,17 +1551,21 @@
justify-content: center;
background: #fff !important;
}
+
.btnGroup {
height: 100%;
+
.bt2 {
height: 100% !important;
box-shadow: none !important;
+
img {
width: 0.5rem; //dengwo xia
height: 0.5rem;
}
}
}
+
.btn2 {
width: 9.4%;
display: flex;
@@ -1481,21 +1573,25 @@
justify-content: center;
align-items: center;
border-radius: 0.15rem;
+
img {
width: 0.5rem;
height: 0.5rem;
}
- .active {
- color: rgb(2, 99, 226);
- font-weight: 800;
- background: rgb(245, 245, 245);
- }
+
+ .active {
+ color: #c4d600;
+ font-weight: 800;
+ background: rgb(245, 245, 245);
+ }
}
+
canvas {
height: 100% !important;
}
+
.hqchart {
width: 100%;
- height: 7.5rem;
+ height: 100vh;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3