From 58b0f1e9bd03a472321acf1dfc4e89fc4ce9df7a Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Mon, 29 Sep 2025 01:14:10 +0800
Subject: [PATCH] 9.28更换api
---
src/page/kline/components/kLine.vue | 135 +++++++++++++++++----------------------------
1 files changed, 51 insertions(+), 84 deletions(-)
diff --git a/src/page/kline/components/kLine.vue b/src/page/kline/components/kLine.vue
index 4367ccf..74eae03 100644
--- a/src/page/kline/components/kLine.vue
+++ b/src/page/kline/components/kLine.vue
@@ -6,60 +6,27 @@
<div class="periodWrap kline_periodWrap" ref="kline_periodWrap">
<!-- DWM 分 -->
<div class="btnGroup" style="position: relative">
- <div
- class="btn2"
- v-for="(item, index) in KLinePeriodMenu"
- :class="{ active: KLinePeriodIndex == index }"
- :key="item.ID"
- @click="OnClickKLinePeriodMenu(index, item, 'kline')"
- >
+ <div class="btn2" v-for="(item, index) in KLinePeriodMenu" :class="{ active: KLinePeriodIndex == index }"
+ :key="item.ID" @click="OnClickKLinePeriodMenu(index, item, 'kline')">
<span>{{ item.Name }}</span>
</div>
- <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"
- >
- <div
- class="btn"
- :class="{ active: KLineRightIndex == index }"
- v-for="(item, index) in KLineRightMenu"
- :key="item.ID"
- style="padding: 10px"
- @click="OnClickKLineRightMenu(index, item)"
- >
+ <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">
+ <div class="btn" :class="{ active: KLineRightIndex == index }" v-for="(item, index) in KLineRightMenu"
+ :key="item.ID" style="padding: 10px" @click="OnClickKLineRightMenu(index, item)">
{{ item.Name }}
</div>
- <div
- class="btn"
- v-for="item in KLineIndexMenu"
- :key="item.ID"
- style="padding: 10px"
- @click="ChangeKLineIndex(item)"
- >
+ <div class="btn" v-for="item in KLineIndexMenu" :key="item.ID" style="padding: 10px"
+ @click="ChangeKLineIndex(item)">
{{ 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="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>
@@ -67,8 +34,8 @@
</template>
<script>
+let _timers = []
import * as echarts from "echarts";
-
import _ from "lodash";
import HQChart from "hqchart";
import "hqchart/src/jscommon/umychart.resource/css/tools.css";
@@ -76,12 +43,12 @@
import EastMoney from "../../../eastmoney/HQData.js";
import i18n from "@/locales/index.js";
-HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function(symbol) {
+HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function (symbol) {
return 2;
}; // 一直交易
-function DefaultData() {}
+function DefaultData() { }
-DefaultData.GetMinuteOption = function() {
+DefaultData.GetMinuteOption = function () {
var option = {
Type: "分钟走势图", // 创建图形类型
// Type:'分钟走势图横屏',
@@ -146,7 +113,7 @@
return option;
};
-DefaultData.GetMinuteIndexMenu = function() {
+DefaultData.GetMinuteIndexMenu = function () {
var data = [
{
Name: "MACD",
@@ -173,7 +140,7 @@
return data;
};
-DefaultData.GetKLineIndexMenu = function() {
+DefaultData.GetKLineIndexMenu = function () {
var data = [
{
Name: "MA",
@@ -210,7 +177,7 @@
return data;
};
-DefaultData.GetTestSymbolMenu = function() {
+DefaultData.GetTestSymbolMenu = function () {
// 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀}
var data = [
{
@@ -931,7 +898,7 @@
};
// k形图
-DefaultData.GetKLineOption = function() {
+DefaultData.GetKLineOption = function () {
var option = {
Type: "历史K线图", // 创建图形类型
Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC"
@@ -954,7 +921,7 @@
],
SplashTitle: "loading...",
Symbol: "600015.sh",
- IsAutoUpdate: true, // 是自动更新数据
+ IsAutoUpdate: false, // 是自动更新数据
AutoUpdateFrequency: 15000,
IsApiPeriod: true,
IsShowRightMenu: false, // 是否显示右键菜单
@@ -1028,7 +995,7 @@
return option;
};
-DefaultData.GetMinuteDayMenu = function() {
+DefaultData.GetMinuteDayMenu = function () {
var data = [
{
Name: "1D",
@@ -1055,7 +1022,7 @@
return data;
};
-DefaultData.GetKLinePeriodMenu = function() {
+DefaultData.GetKLinePeriodMenu = function () {
var data = [
// { Name: i18n.t('hj86'), ID: 3 },分时额外处理
// { Name: i18n.t("hj86"), ID: 4 },
@@ -1080,6 +1047,10 @@
ID: 5
},
{
+ Name: i18n.t("hjsfz"),
+ ID: 6
+ },
+ {
Name: i18n.t("hj92"),
ID: 7
}
@@ -1088,7 +1059,7 @@
return data;
};
-DefaultData.GetKLineRightMenu = function() {
+DefaultData.GetKLineRightMenu = function () {
var data = [
{
Name: i18n.t("hj93"),
@@ -1139,9 +1110,8 @@
VolChartHeight: 10,
chartType: "kline",
- timerss: null,
isShow: false,
- xData: []
+ xData: [],
};
},
@@ -1169,22 +1139,8 @@
// this.CreateKLineChart();
this.$nextTick(() => {
- // this.timerss = setInterval(() => {
- this.CreateMinuteChart();
- this.CreateKLineChart();
- // }, 3000);
// this.CreateMinuteChart();
- // this.CreateKLineChart();
- // this.timerss = setInterval(() => {
- // // this.KLineChart = null
- // // this.CreateMinuteChart();
- // // this.CreateKLineChart();
- // console.log(this.KLinePeriodMenu);
- // //此处为了 让k线实时刷新
- // this.OnClickKLinePeriodMenu(this.KLinePeriodIndex, 0, 'kline')
- // this.OnClickKLinePeriodMenu(this.KLinePeriodIndex, this.KLinePeriodMenu[this.KLinePeriodIndex],
- // 'kline')
- // }, 3000);
+ this.CreateKLineChart();
});
let that = this;
window.onresize = _.debounce(this.OnSize, 200);
@@ -1209,7 +1165,7 @@
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 - 10; // 将监听到的宽高进行赋值
@@ -1219,10 +1175,17 @@
});
},
beforeDestroy() {
- clearInterval(this.timerss); // 在组件销毁前清除定时器
- this.timerss = null;
+ this.clearTime();
},
methods: {
+ // 清除所有定时器
+ clearTime() {
+ _timers.forEach(id => {
+ clearInterval(id);
+ clearTimeout(id);
+ });
+ _timers = [];
+ },
OnSize() {
var width = this.$refs.right.clientWidth;
// var rightTab = this.$refs.rightTab
@@ -1276,7 +1239,7 @@
chart.SetOption(option);
this.Chart = chart;
},
-
+ // k线图创建
CreateKLineChart() {
if (this.KLineChart) return;
@@ -1284,6 +1247,7 @@
option.Symbol = this.Symbol;
option.NetworkFilter = (data, callback) => {
+ // console.log("data, callback", data, callback);
this.NetworkFilter(data, callback);
}; // 网络请求回调函数
var chart = HQChart.Chart.JSChart.Init(this.$refs.kline2);
@@ -1326,7 +1290,7 @@
item,
type // K线周期
) {
- console.log("1");
+ this.clearTime()
//分时额外处理才注释的
this.chartType = type;
this.KLinePeriodIndex = index;
@@ -1360,14 +1324,13 @@
callback // 第3方数据替换接口
) {
EastMoney.HQData.Log("[HQChartDemo::NetworkFilter] data", data);
- if (this.timerss) {
- clearInterval(this.timerss);
- this.timerss = null;
- }
+
this.getFilter(data, callback);
- this.timerss = setInterval(() => {
+
+ let timerId = setInterval(() => {
this.getFilter(data, callback);
- }, 5000);
+ }, 2000);
+ _timers.push(timerId);
},
getFilter(data, callback) {
switch (data.Name) {
@@ -1413,6 +1376,10 @@
</script>
<style lang="less">
@animation-duration: 0.3s;
+
+.parameter {
+ background-color: #333 !important;
+}
.box {
width: 100%;
@@ -1469,7 +1436,7 @@
justify-content: center;
// flex-direction: column;
- > .btn {
+ >.btn {
cursor: pointer;
width: 100%;
text-align: center;
--
Gitblit v1.9.3