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.
- package/package.json +1 -1
- package/src/jscommon/jschinamapdata.js +3 -0
- package/src/jscommon/umychart.NetworkFilterTest.js +48803 -0
- package/src/jscommon/umychart.aliYunnetwork.js +47 -0
- package/src/jscommon/umychart.complier.js +25402 -0
- package/src/jscommon/umychart.console.js +12 -0
- package/src/jscommon/umychart.deal.js +1452 -0
- package/src/jscommon/umychart.dragdiv.js +48 -0
- package/src/jscommon/umychart.index.data.js +4132 -0
- package/src/jscommon/umychart.js +90801 -0
- package/src/jscommon/umychart.keyboard.js +1659 -0
- package/src/jscommon/umychart.listctrl.js +690 -0
- package/src/jscommon/umychart.mind.js +2203 -0
- package/src/jscommon/umychart.network.js +44 -0
- package/src/jscommon/umychart.news.js +823 -0
- package/src/jscommon/umychart.regressiontest.js +400 -0
- package/src/jscommon/umychart.report.js +5803 -0
- package/src/jscommon/umychart.scrollbar.js +1345 -0
- package/src/jscommon/umychart.stock.js +4218 -0
- package/src/jscommon/umychart.style.js +625 -0
- package/src/jscommon/umychart.testdata.js +150 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +237 -35
- package/src/jscommon/umychart.user.js +137 -0
- package/src/jscommon/umychart.version.js +30 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +237 -35
- package/src/jscommon/umychart.worker.js +114 -0
- package/src/jscommon/umychart.ws.stock.js +110 -0
- package/src/jscommon/vendor.js +2 -0
|
@@ -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
|
+
}
|