| | |
| | | <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> |
| | |
| | | IsShowRightMenu: false, // 是否显示右键菜单 |
| | | CorssCursorTouchEnd: true, |
| | | |
| | | CorssCursorInfo: { Left: 1, Right: 1 }, |
| | | CorssCursorInfo: { |
| | | Left: 1, |
| | | Right: 1 |
| | | }, |
| | | |
| | | MinuteLine: { |
| | | IsDrawAreaPrice: true, // 是否画价格面积图 |
| | |
| | | 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: [ |
| | |
| | | }; |
| | | |
| | | 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 }, |
| | | 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 |
| | | }, |
| | | ]; |
| | | |
| | | return data; |
| | | }; |
| | | |
| | | 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 }, |
| | | 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 |
| | | }, |
| | | ]; |
| | | |
| | | return data; |
| | |
| | | |
| | | DefaultData.GetTestSymbolMenu = function () { |
| | | // 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀} |
| | | var data = [ |
| | | { |
| | | var data = [{ |
| | | Title: "美股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "网易", |
| | | Code: "NTES_105.usa", |
| | | }, |
| | |
| | | { |
| | | Title: "沪深A股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "浦发银行", |
| | | Code: "600000_1.sh", |
| | | }, |
| | |
| | | { |
| | | Title: "北交所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "凯添燃气", |
| | | Code: "831010_0.bj", |
| | | }, |
| | |
| | | { |
| | | Title: "ETF基金", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "50ETF基金", |
| | | Code: "510800_1.sh", |
| | | }, |
| | |
| | | { |
| | | Title: "港股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "比亚迪股份", |
| | | Code: "01211_116.hk", |
| | | }, |
| | |
| | | { |
| | | Title: "外汇", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "美元兑加元", |
| | | Code: "USDCAD_119.FOREX", |
| | | }, |
| | |
| | | { |
| | | Title: "上海期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "沪铜主力", |
| | | Code: "CUM_113.SHFE", |
| | | }, |
| | |
| | | { |
| | | Title: "上海国际能源交易中心", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "原油主力", |
| | | Code: "SCM_142.SHFE", |
| | | }, |
| | |
| | | { |
| | | Title: "大连商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "玉米主力", |
| | | Code: "CM_114.DCE", |
| | | }, |
| | |
| | | { |
| | | Title: "郑州商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "强麦主力", |
| | | Code: "WHM_115.CZC", |
| | | }, |
| | |
| | | { |
| | | Title: "中国金融期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "二债主力", |
| | | Code: "TS-130130_8.CFE", |
| | | }, |
| | |
| | | { |
| | | Title: "芝加哥商业交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "小麦当月连续", |
| | | Code: "ZW00Y_103.CBOT", |
| | | }, |
| | |
| | | { |
| | | Title: "纽约商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "NYMEX原油", |
| | | Code: "CL00Y_102.NYMEX", |
| | | }, |
| | |
| | | { |
| | | Title: "纽约商业期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "COMEX白银", |
| | | Code: "SI00Y_101.COMEX", |
| | | }, |
| | |
| | | { |
| | | Title: "纽约期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "棉花当月连续", |
| | | Code: "CT00Y_108.NYBOT", |
| | | }, |
| | | ], |
| | | }, ], |
| | | }, |
| | | { |
| | | Title: "伦敦金属交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "综合镍03", |
| | | Code: "NI-LNKT_109.LME", |
| | | }, |
| | |
| | | { |
| | | Title: "东京商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "日铂金当月连续", |
| | | Code: "JPL00Y_111.TOCOM", |
| | | }, |
| | |
| | | { |
| | | Title: "美国洲际交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Sub: [{ |
| | | Name: "布伦特原油当月连续", |
| | | Code: "B00Y_112.IPE", |
| | | }, |
| | |
| | | Type: "历史K线图", // 创建图形类型 |
| | | Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC" |
| | | // 窗口指标 |
| | | Windows: [ |
| | | { Index: "MA", Modify: true, Change: false, height: 20 }, |
| | | Windows: [{ |
| | | 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: "ATR", |
| | | Modify: false, |
| | | Change: false, |
| | | Close: false |
| | | }, |
| | | // { Index: 'MACD', Modify: true, Change: true, Close: false } |
| | | ], |
| | | Symbol: "600015.sh", |
| | |
| | | RightSpaceCount: 2, |
| | | }, |
| | | |
| | | CorssCursorInfo: { Left: 0, Right: 1 }, |
| | | CorssCursorInfo: { |
| | | Left: 0, |
| | | Right: 1 |
| | | }, |
| | | |
| | | // 标题设置 |
| | | KLineTitle: { |
| | |
| | | Right: 1, // 右边间距 |
| | | Top: 0, |
| | | Bottom: 15, |
| | | AutoRight: { Blank: 10, MinWidth: 40 }, |
| | | AutoRight: { |
| | | Blank: 10, |
| | | MinWidth: 40 |
| | | }, |
| | | }, |
| | | |
| | | // 子框架设置 |
| | | Frame: [ |
| | | { |
| | | Frame: [{ |
| | | SplitCount: 5, |
| | | IsShowLeftText: false, |
| | | IsShowYLine: false, |
| | | Custom: [ |
| | | { |
| | | Custom: [{ |
| | | Type: 0, |
| | | Position: "right", |
| | | }, ], |
| | | }, |
| | | ], |
| | | { |
| | | SplitCount: 3, |
| | | IsShowLeftText: false |
| | | }, |
| | | { SplitCount: 3, IsShowLeftText: false }, |
| | | { SplitCount: 3, IsShowLeftText: false }, |
| | | { |
| | | SplitCount: 3, |
| | | IsShowLeftText: false |
| | | }, |
| | | ], |
| | | |
| | | // 扩展图形 |
| | |
| | | }; |
| | | |
| | | 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 }, |
| | | var data = [{ |
| | | Name: "1D", |
| | | ID: 1 |
| | | }, |
| | | { |
| | | Name: "2D", |
| | | ID: 2 |
| | | }, |
| | | { |
| | | Name: "3D", |
| | | ID: 3 |
| | | }, |
| | | { |
| | | Name: "4D", |
| | | ID: 4 |
| | | }, |
| | | { |
| | | Name: "5D", |
| | | ID: 5 |
| | | }, |
| | | ]; |
| | | |
| | | return data; |
| | |
| | | var data = [ |
| | | // { 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 }, |
| | | { |
| | | 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; |
| | | }; |
| | | |
| | | DefaultData.GetKLineRightMenu = function () { |
| | | var data = [ |
| | | { Name: i18n.t("hj93"), ID: 0 }, |
| | | { Name: i18n.t("hj94"), ID: 1 }, |
| | | { Name: i18n.t("hj95"), ID: 2 }, |
| | | var data = [{ |
| | | Name: i18n.t("hj93"), |
| | | ID: 0 |
| | | }, |
| | | { |
| | | Name: i18n.t("hj94"), |
| | | ID: 1 |
| | | }, |
| | | { |
| | | Name: i18n.t("hj95"), |
| | | ID: 2 |
| | | }, |
| | | ]; |
| | | |
| | | return data; |
| | |
| | | }, |
| | | |
| | | created() { |
| | | const { query } = this.$route; |
| | | const { |
| | | query |
| | | } = this.$route; |
| | | if (query.if_zhishu === "0") { |
| | | this.Symbol = `${query.code}_${query.sok}.${query.type}`; |
| | | } else if (query.code.indexOf("hk") > -1 && query.if_zhishu !== 0) { |
| | |
| | | this.offHeight = this.$refs["rightContent"].offsetHeight; |
| | | this.OnSize(); |
| | | this.SetChartStyle(); |
| | | // this.CreateMinuteChart(); |
| | | |
| | | // this.CreateKLineChart(); |
| | | this.$nextTick(() => { |
| | | // this.timerss = setInterval(() => { |
| | | this.CreateMinuteChart(); |
| | | this.CreateKLineChart(); |
| | | this.timerss = setInterval(() => { |
| | | this.KLineChart = null |
| | | this.CreateMinuteChart(); |
| | | this.CreateKLineChart(); |
| | | console.log(this.KLinePeriodMenu); |
| | | // this.KLineChart.ChangePeriod(this.KLinePeriodMenu[this.KLinePeriodIndex].ID); |
| | | //此处为了 让k线实时刷新 |
| | | // }, 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') |
| | | // this.OnClickKLinePeriodMenu(this.KLinePeriodIndex+1, this.KLinePeriodMenu[this.KLinePeriodIndex+1], 'kline') |
| | | // this.OnClickKLinePeriodMenu(this.KLinePeriodIndex-1, this.KLinePeriodMenu[this.KLinePeriodIndex-1], 'kline') |
| | | }, 5000); |
| | | // this.OnClickKLinePeriodMenu(this.KLinePeriodIndex, this.KLinePeriodMenu[this.KLinePeriodIndex], |
| | | // 'kline') |
| | | // }, 3000); |
| | | }); |
| | | let that = this; |
| | | window.onresize = _.debounce(this.OnSize, 200); |
| | |
| | | |
| | | var option = DefaultData.GetKLineOption(); |
| | | option.Symbol = this.Symbol; |
| | | |
| | | option.NetworkFilter = (data, callback) => { |
| | | this.NetworkFilter(data, callback); |
| | | |
| | |
| | | ) { |
| | | EastMoney.HQData.Log("[HQChartDemo::NetworkFilter] data", data); |
| | | |
| | | this.timerss = setInterval(() => { |
| | | switch (data.Name) { |
| | | // 分时图数据对接 |
| | | case "MinuteChartContainer::RequestMinuteData": |
| | |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | } |
| | | }, 2000); |
| | | |
| | | |
| | | }, |
| | | |
| | | handleSelect(key, keyPath) { |
| | |
| | | border-right: none; |
| | | } |
| | | } |
| | | |
| | | .active { |
| | | color: rgb(2, 99, 226); |
| | | font-weight: 800; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // .schart-drawing { |
| | | // height: 100% !important; |
| | | // } |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | canvas { |
| | | height: 100% !important; |
| | | } |
| | | |
| | | .hqchart { |
| | | width: 100%; |
| | | height: 100vh; |
| | |
| | | } else { |
| | | this.timer = setInterval(() => { |
| | | this.getSingDetails(); |
| | | }, 5000); |
| | | }, 2000); |
| | | } |
| | | this.getOpation(); |
| | | // this.$Lazyload(); |