diff --git a/src/components/KLine.vue b/src/components/KLine.vue index 933065d..d2ed59a 100644 --- a/src/components/KLine.vue +++ b/src/components/KLine.vue @@ -26,7 +26,8 @@ export default { model: null, // 数据模型 // interval: "1D" ,// [字符串格式]和TV的resolution同步 interval: "60" ,// [字符串格式]和TV的resolution同步 - theme:localStorage.getItem('theme')||'dark' + theme:localStorage.getItem('theme')||'dark', + intertime: '' }; }, @@ -99,7 +100,39 @@ export default { } return period; }, - + translateInterval2Period1() { + let period1; + switch (this.intertime) { + case "1": + period1 = "1min"; + break; + case "5": + period1 = "5min"; + break; + case "15": + period1 = "15min"; + break; + case "30": + period1 = "30min"; + break; + case "60": + period1 = "60min"; + break; + case "D": + case "1D": + period1 = "1day"; + break; + case "W": + case "1W": + period1 = "1week"; + break; + case "M": + case "1M": + period1 = "1mon"; + break; + } + return period1; + }, // 创建分时按钮 createBtns() { const model = this.model; @@ -276,10 +309,27 @@ export default { // 获取历史记录数据 getHistoryCallback(onLoadCallback) { // 取图表回传的solution + this.intertime = this.interval; this.interval = this.model.interval; // 转化接口所需的period + let period1 = this.translateInterval2Period1(); let period = this.translateInterval2Period(); + if(this.intertime!==this.model.interval){ + this.model.subscribe([ + { + cmd: "unsub", + msg: `Kline_${this.symbol}_${period1}` + }, + { + cmd: "sub", + msg: `Kline_${this.symbol}_${period}` + } + ]); + + // 已有图表库 通过修改symbol触发图标库更新 重新执行getSymbol和getBar + this.model.setSymbol(this.symbol); + } Option.getKline({ symbol: this.symbol, @@ -310,10 +360,11 @@ export default { // 初始化图表 initTV() { // 先订阅数据 再创建图表库 + let period = this.translateInterval2Period(); this.model.subscribe([ { cmd: "sub", - msg: `Kline_${this.symbol}_1day` + msg: `Kline_${this.symbol}_${period}` } ]); // console.log(this.lang) @@ -351,14 +402,15 @@ export default { this.initTV(); } else { // 切换交易对 取消旧数据 订阅新数据 + let period = this.translateInterval2Period(); this.model.subscribe([ { cmd: "unsub", - msg: `Kline_${oldVal}_${this.interval}min` + msg: `Kline_${oldVal}_${period}` }, { cmd: "sub", - msg: `Kline_${newVal}_${this.interval}min` + msg: `Kline_${newVal}_${period}` } ]); @@ -373,10 +425,11 @@ export default { // console.info(msg) // this.model = new Model(msg, this); this.model.conglian(msg) + let period = this.translateInterval2Period(); this.model.subscribe([ { cmd: "sub", - msg: `Kline_${this.symbol}_${this.interval}min` + msg: `Kline_${this.symbol}_${period}` } ]);