hqchart 1.1.12733 → 1.1.12741

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,114 @@
1
+ ///////////////////////////////////////////////////////////////////////////////////
2
+ // 工作线程计算指标示例
3
+ //
4
+ //
5
+ //////////////////////////////////////////////////////////////////////////////////
6
+
7
+ function HQChartScriptWorker()
8
+ {
9
+ this.Status=0; //0=空闲 1=运行
10
+ this.Create=function()
11
+ {
12
+ addEventListener('message', (obj)=>{ this.OnRecvMessage(obj); });
13
+ }
14
+
15
+ this.NetworkFilter=function(data, callback, indexInfo)
16
+ {
17
+ JSConsole.Complier.Log(`[HQChartScriptWorker::NetworkFilter] [${data.Name}][${data.Explain}] data=`, data);
18
+ //数据下载
19
+ }
20
+
21
+ this.ExecuteScript=function(indexData, message)
22
+ {
23
+ var scriptObj={ };
24
+
25
+ if (indexData.Script)
26
+ {
27
+ scriptObj.Name=indexData.Name;
28
+ scriptObj.ID=indexData.Index;
29
+ scriptObj.Script=indexData.Script;
30
+ }
31
+ else
32
+ {
33
+ if (!indexData.Index) return false;
34
+ var scriptData = new JSIndexScript();
35
+ var finder = scriptData.Get(indexData.Index);
36
+ if (!finder) return false;
37
+
38
+ scriptObj.ID=indexData.Index;
39
+ scriptObj.Name=finder.Name;
40
+ scriptObj.Script=finder.Script;
41
+ scriptObj.Args=finder.Args;
42
+ }
43
+
44
+ if (indexData.Args) scriptObj.Args=indexData.Args;
45
+ if (IFrameSplitOperator.IsBool(message.IsApiPeriod)) scriptObj.IsApiPeriod=message.IsApiPeriod;
46
+
47
+ var indexInfo={ Name:scriptObj.Name, ID:scriptObj.ID, Script:scriptObj.Script, Args:scriptObj.Args, Guid:message.Guid };
48
+ scriptObj.ErrorCallback=(error)=>{ this.OnExecuteError(error, indexInfo, message); };
49
+ scriptObj.FinishCallback=(data, jsExectute)=>{ this.OnExecuteFinish(data, indexInfo, jsExectute, message); };
50
+ scriptObj.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback, indexInfo, message); };
51
+
52
+ JSConsole.Complier.Log('[HQChartScriptWorker::ExecuteScript] scriptObj=',scriptObj);
53
+
54
+ var indexConsole=new ScriptIndexConsole(scriptObj);
55
+
56
+ var hisData=null;
57
+ if (message && message.Data)
58
+ {
59
+ hisData=new ChartData();
60
+ hisData.Data=message.Data;
61
+ hisData.Right=message.Right;
62
+ hisData.Period=message.Period;
63
+ hisData.DataType=message.DataType; //0=日线 1=分钟
64
+ hisData.Symbol=message.symbol;
65
+ }
66
+
67
+ var stockObj=
68
+ {
69
+ HQDataType:HQ_DATA_TYPE.KLINE_ID,
70
+ Stock: { Symbol:message.Symbol },
71
+ Request: { MaxDataCount: 500, MaxMinuteDayCount:5 },
72
+ Period:message.Period , Right:message.Right,
73
+ Data:hisData
74
+ };
75
+
76
+ if (IFrameSplitOperator.IsNumber(message.HQDataType)) stockObj.HQDataType=message.HQDataType;
77
+
78
+
79
+ indexConsole.ExecuteScript(stockObj);
80
+ }
81
+
82
+ this.OnRecvMessage=function(message)
83
+ {
84
+ var data=message.data;
85
+ if (!data) return;
86
+
87
+ if (data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT)
88
+ {
89
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex)) return;
90
+
91
+ for(var i=0;i<data.AryIndex.length;++i)
92
+ {
93
+ var item=data.AryIndex[i];
94
+ this.Status=1; //执行状态
95
+ this.ExecuteScript(item,data);
96
+ }
97
+
98
+ this.Status=0;
99
+ }
100
+ }
101
+
102
+ this.OnExecuteFinish=function(data, indexInfo, jsExectute, jobInfo)
103
+ {
104
+ var message={ Data:data, IndexInfo:indexInfo , ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT, JobInfo:jobInfo };
105
+ postMessage(message);
106
+ }
107
+
108
+ this.OnExecuteError=function(error, indexInfo, jobData)
109
+ {
110
+ var message={ IndexInfo:indexInfo, ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT, Error:error };
111
+ postMessage(message);
112
+ }
113
+ }
114
+
@@ -0,0 +1,110 @@
1
+ ///////////////////////////////////////////////////////////////
2
+ // Web socket 行情接收类
3
+ //
4
+
5
+ function JSWSStockResource()
6
+ {
7
+ this.Domain = "wss://websocket-test.zealink.com"; //websocket 域名
8
+ }
9
+
10
+ var g_JSWSStockResource = new JSWSStockResource();
11
+
12
+
13
+ function JSWSStock()
14
+ {
15
+ this.IsConnect=false; //是否连接
16
+ this.Url=g_JSWSStockResource.Domain+'/WebSocket/StockAll.ashx';
17
+ this.Socket;
18
+
19
+ this.RecvSnapshotDataCallback; //快照数据到达
20
+ this.RecvDetailDataCallback; //分笔数据到达
21
+ this.RecvFlowDataCallback; //资金流数据到达
22
+
23
+ this.Total={Snapshot:0, Detail:0, Flow:0 } //统计一共接收到的数据条数
24
+
25
+ //option: { Callback: {Snapshot:, Detail:, Flow:}}
26
+ this.SetOption=function(option)
27
+ {
28
+ if (!Option) return;
29
+
30
+ if (option.Callback)
31
+ {
32
+ var callback=option.Callback;
33
+ if (callback.Snapshot) this.RecvSnapshotDataCallback=callback.Snapshot;
34
+ if (callback.Detail) this.RecvDetailDataCallback=callback.Detail;
35
+ if (callback.Flow) this.RecvFlowDataCallback=callback.Flow;
36
+ }
37
+ }
38
+
39
+ this.Create=function(option)
40
+ {
41
+ this.SetOption(option);
42
+
43
+ this.Socket=new WebSocket(this.Url);
44
+ if (!this.Socket) return false;
45
+
46
+ console.log(`[JSWSStock::Create] connect=${this.Url}`);
47
+
48
+ var self=this;
49
+ this.Socket.onopen=function(e) { self.OnOpen(e); };
50
+ this.Socket.onmessage=function(e) { self.OnMessage(e)} ;
51
+ this.Socket.onclose=function(e) { self.OnClose(e); }
52
+ this.Socket.onerror=function(e) { self.OnError(e); }
53
+
54
+ console.log(`[JSWSStock::Create] readyState=${this.Socket.readyState}`);
55
+
56
+ return true;
57
+ }
58
+
59
+ this.Close=function()
60
+ {
61
+ if (this.Socket) this.Socket.close();
62
+ }
63
+
64
+ this.OnMessage=function(e)
65
+ {
66
+ var message=JSON.parse(e.data);
67
+ if (!message.data || !message.data.data) return;
68
+ var data=message.data.data;
69
+ if (data.length<=0) return;
70
+
71
+ switch(message.id)
72
+ {
73
+ case 20:
74
+ this.Total.Snapshot+=data.length;
75
+ if (this.RecvSnapshotDataCallback) this.RecvSnapshotDataCallback(message.data);
76
+ break;
77
+ case 10:
78
+ this.Total.Detail+=data.length;
79
+ if (this.RecvDetailDataCallback) this.RecvDetailDataCallback(data);
80
+ break;
81
+ case 30:
82
+ this.Total.Flow+=data.length;
83
+ if (this.RecvFlowDataCallback) this.RecvFlowDataCallback(data);
84
+ break;
85
+ }
86
+ }
87
+
88
+ this.OnClose=function(e)
89
+ {
90
+ console.log('[JSWSStock::OnClose] e ', e);
91
+ console.log(`[JSWSStock::OnClose] readyState=${this.Socket.readyState}`);
92
+ }
93
+
94
+ this.OnOpen=function(e)
95
+ {
96
+ console.log('[JSWSStock::OnOpen] e ', e);
97
+ console.log(`[JSWSStock::OnOpen] readyState=${this.Socket.readyState}`);
98
+ }
99
+
100
+ this.OnError=function(e)
101
+ {
102
+ console.log('[JSWSStock::OnOpen] e ', e);
103
+ }
104
+ }
105
+
106
+
107
+ JSWSStock.SetDomain = function (domain)
108
+ {
109
+ if (domain) g_JSWSStockResource.Domain = domain;
110
+ }
@@ -0,0 +1,2 @@
1
+ import Vue from 'vue'
2
+ import ElementUI from 'element-ui'