hqchart 1.1.12614 → 1.1.12627
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/lib/umychart.vue.js +26 -16
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +169 -6
- package/src/jscommon/umychart.js +144 -21
- package/src/jscommon/umychart.resource/js/codemirror/javascript.js +24 -3
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +314 -28
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +314 -28
package/src/jscommon/umychart.js
CHANGED
|
@@ -30520,6 +30520,108 @@ function ChartSingleText()
|
|
|
30520
30520
|
}
|
|
30521
30521
|
|
|
30522
30522
|
|
|
30523
|
+
function ChartTradeIcon()
|
|
30524
|
+
{
|
|
30525
|
+
this.newMethod=IChartPainting; //派生
|
|
30526
|
+
this.newMethod();
|
|
30527
|
+
delete this.newMethod;
|
|
30528
|
+
|
|
30529
|
+
this.ClassName='ChartTradeIcon'; //类名
|
|
30530
|
+
this.TextAlign='center';
|
|
30531
|
+
this.TextBaseline='middle';
|
|
30532
|
+
this.SVG={ Family:"iconfont", Size:12 };
|
|
30533
|
+
this.AryIcon;
|
|
30534
|
+
|
|
30535
|
+
this.Draw=function()
|
|
30536
|
+
{
|
|
30537
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
30538
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
30539
|
+
if (this.IsHideScriptIndex()) return;
|
|
30540
|
+
|
|
30541
|
+
if(!this.Data || !this.Data.Data) return;
|
|
30542
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
|
|
30543
|
+
|
|
30544
|
+
this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
|
|
30545
|
+
this.Canvas.textAlign=this.TextAlign;
|
|
30546
|
+
this.Canvas.textBaseline='middle';
|
|
30547
|
+
var yOffset=0;
|
|
30548
|
+
if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
|
|
30549
|
+
{
|
|
30550
|
+
this.Canvas.textBaseline="bottom";
|
|
30551
|
+
yOffset=-2;
|
|
30552
|
+
}
|
|
30553
|
+
else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
|
|
30554
|
+
{
|
|
30555
|
+
this.Canvas.textBaseline="top";
|
|
30556
|
+
yOffset+2;
|
|
30557
|
+
}
|
|
30558
|
+
|
|
30559
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
30560
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
30561
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
30562
|
+
var chartright=this.ChartBorder.GetRight();
|
|
30563
|
+
if (bHScreen) chartright=this.ChartBorder.GetBottom();
|
|
30564
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
30565
|
+
var border=this.ChartFrame.GetBorder();
|
|
30566
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
30567
|
+
|
|
30568
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
30569
|
+
{
|
|
30570
|
+
var value=this.Data.Data[i];
|
|
30571
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
30572
|
+
if (value<=0) continue;
|
|
30573
|
+
|
|
30574
|
+
var iconItem=this.AryIcon[i];
|
|
30575
|
+
if (!IFrameSplitOperator.IsNumber(iconItem.Value) || !iconItem.Icon) continue;
|
|
30576
|
+
|
|
30577
|
+
var left=xOffset;
|
|
30578
|
+
var right=xOffset+dataWidth;
|
|
30579
|
+
if (right>chartright) break;
|
|
30580
|
+
|
|
30581
|
+
|
|
30582
|
+
var x=left+(right-left)/2;
|
|
30583
|
+
var y=this.GetYFromData(iconItem.Value, false);
|
|
30584
|
+
|
|
30585
|
+
this.Canvas.fillStyle=iconItem.Color;
|
|
30586
|
+
this.Canvas.fillText(iconItem.Icon,x,y+yOffset);
|
|
30587
|
+
}
|
|
30588
|
+
}
|
|
30589
|
+
|
|
30590
|
+
this.GetMaxMin=function()
|
|
30591
|
+
{
|
|
30592
|
+
var range={Max:null, Min:null };
|
|
30593
|
+
if(!this.Data || !this.Data.Data) return range;
|
|
30594
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return range;
|
|
30595
|
+
|
|
30596
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
30597
|
+
var start=this.Data.DataOffset;
|
|
30598
|
+
if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
|
|
30599
|
+
{
|
|
30600
|
+
start=0;
|
|
30601
|
+
xPointCount=this.Data.Data.length;
|
|
30602
|
+
}
|
|
30603
|
+
|
|
30604
|
+
for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
30605
|
+
{
|
|
30606
|
+
var value=this.Data.Data[i];
|
|
30607
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
30608
|
+
if (value<=0) continue;
|
|
30609
|
+
|
|
30610
|
+
var iconItem=this.AryIcon[i];
|
|
30611
|
+
if (!IFrameSplitOperator.IsNumber(iconItem.Value) || !iconItem.Icon) continue;
|
|
30612
|
+
|
|
30613
|
+
if (range.Max==null) range.Max=iconItem.Value;
|
|
30614
|
+
else if (range.Max<iconItem.Value) range.Max=iconItem.Value;
|
|
30615
|
+
|
|
30616
|
+
if (range.Min==null) range.Min=iconItem.Value;
|
|
30617
|
+
else if (range.Min>iconItem.Value) range.Min=iconItem.Value;
|
|
30618
|
+
}
|
|
30619
|
+
|
|
30620
|
+
return range;
|
|
30621
|
+
}
|
|
30622
|
+
}
|
|
30623
|
+
|
|
30624
|
+
|
|
30523
30625
|
function ChartDrawText()
|
|
30524
30626
|
{
|
|
30525
30627
|
this.newMethod=IChartPainting; //派生
|
|
@@ -51187,7 +51289,7 @@ function IChartDrawPicture()
|
|
|
51187
51289
|
//xStep,yStep 移动的偏移量
|
|
51188
51290
|
this.Move=function(xStep,yStep)
|
|
51189
51291
|
{
|
|
51190
|
-
if (this.Status!=20) return
|
|
51292
|
+
if (this.Status!=20) return false;
|
|
51191
51293
|
if (!this.Frame) return false;
|
|
51192
51294
|
var data=this.Frame.Data;
|
|
51193
51295
|
if (!data) return false;
|
|
@@ -54612,7 +54714,7 @@ function ChartDrawPictureParallelChannel()
|
|
|
54612
54714
|
//xStep,yStep 移动的偏移量
|
|
54613
54715
|
this.Move=function(xStep,yStep)
|
|
54614
54716
|
{
|
|
54615
|
-
if (this.Status!=20) return
|
|
54717
|
+
if (this.Status!=20) return false;
|
|
54616
54718
|
if (!this.Frame) return false;
|
|
54617
54719
|
var data=this.Frame.Data;
|
|
54618
54720
|
if (!data) return false;
|
|
@@ -74051,34 +74153,55 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
74051
74153
|
this.RequestData();
|
|
74052
74154
|
}
|
|
74053
74155
|
|
|
74054
|
-
//叠加股票
|
|
74156
|
+
//叠加股票 symbol支持数据 ["600000.sh", "0000001.sz"]
|
|
74055
74157
|
this.OverlaySymbol=function(symbol,option)
|
|
74056
74158
|
{
|
|
74057
|
-
|
|
74159
|
+
var arySymbol=null;
|
|
74160
|
+
if (IFrameSplitOperator.IsString(symbol)) arySymbol=[symbol];
|
|
74161
|
+
else if (Array.isArray(symbol)) arySymbol=symbol;
|
|
74162
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
|
|
74163
|
+
|
|
74164
|
+
var aryNewSymbol=[];
|
|
74165
|
+
for(var i=0, j=0;i<arySymbol.length;++i)
|
|
74058
74166
|
{
|
|
74059
|
-
var
|
|
74060
|
-
|
|
74167
|
+
var strSymbol=arySymbol[i];
|
|
74168
|
+
var bFind=false;
|
|
74169
|
+
for(j=0;j<this.OverlayChartPaint.length; ++j)
|
|
74061
74170
|
{
|
|
74062
|
-
|
|
74063
|
-
|
|
74171
|
+
var item=this.OverlayChartPaint[j];
|
|
74172
|
+
if (item.Symbol==strSymbol)
|
|
74173
|
+
{
|
|
74174
|
+
bFind=true;
|
|
74175
|
+
console.warn(`[MinuteChartContainer::OverlaySymbol] overlay symbol=${strSymbol} exist.`);
|
|
74176
|
+
break;
|
|
74177
|
+
}
|
|
74064
74178
|
}
|
|
74179
|
+
|
|
74180
|
+
if (!bFind) aryNewSymbol.push(strSymbol);
|
|
74065
74181
|
}
|
|
74066
74182
|
|
|
74067
|
-
|
|
74068
|
-
paint.Canvas=this.Canvas;
|
|
74069
|
-
paint.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
74070
|
-
paint.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
74071
|
-
paint.Name="Overlay-Minute";
|
|
74072
|
-
paint.Symbol=symbol;
|
|
74073
|
-
paint.Identify=`Overlay-Minute-${symbol}`;
|
|
74074
|
-
if (option && option.Color) paint.Color=option.Color; //外部设置颜色
|
|
74075
|
-
else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];
|
|
74076
|
-
++g_JSChartResource.OverlaySymbol.Random;
|
|
74077
|
-
paint.MainData=this.SourceData; //绑定主图数据
|
|
74183
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return true;
|
|
74078
74184
|
|
|
74079
|
-
|
|
74185
|
+
for(var i=0;i<aryNewSymbol.length;++i)
|
|
74186
|
+
{
|
|
74187
|
+
var strSymbol=aryNewSymbol[i];
|
|
74080
74188
|
|
|
74081
|
-
|
|
74189
|
+
var paint=new ChartOverlayMinutePriceLine();
|
|
74190
|
+
paint.Canvas=this.Canvas;
|
|
74191
|
+
paint.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
|
|
74192
|
+
paint.ChartFrame=this.Frame.SubFrame[0].Frame;
|
|
74193
|
+
paint.Name="Overlay-Minute";
|
|
74194
|
+
paint.Symbol=strSymbol;
|
|
74195
|
+
paint.Identify=`Overlay-Minute-${strSymbol}`;
|
|
74196
|
+
if (option && option.Color) paint.Color=option.Color; //外部设置颜色
|
|
74197
|
+
else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];
|
|
74198
|
+
++g_JSChartResource.OverlaySymbol.Random;
|
|
74199
|
+
paint.MainData=this.SourceData; //绑定主图数据
|
|
74200
|
+
|
|
74201
|
+
if (paint.SetOption) paint.SetOption(option);
|
|
74202
|
+
|
|
74203
|
+
this.OverlayChartPaint.push(paint);
|
|
74204
|
+
}
|
|
74082
74205
|
|
|
74083
74206
|
if (this.DayCount<=1) this.RequestOverlayMinuteData(); //请求数据
|
|
74084
74207
|
else this.RequestOverlayHistoryMinuteData();
|
|
@@ -78,7 +78,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
|
78
78
|
'VARP':FUNCTION_NAME,'NDAY':FUNCTION_NAME,'UPNDAY':FUNCTION_NAME,'DOWNNDAY':FUNCTION_NAME,'LONGCROSS':FUNCTION_NAME,'EXISTR':FUNCTION_NAME,
|
|
79
79
|
'RELATE':FUNCTION_NAME,'COVAR':FUNCTION_NAME,'HHVBARS':FUNCTION_NAME,'LLVBARS':FUNCTION_NAME,'BETA':FUNCTION_NAME,
|
|
80
80
|
'DRAWKLINE_IF':FUNCTION_NAME,'BACKSET':FUNCTION_NAME,'SARTURN':FUNCTION_NAME,'SAR':FUNCTION_NAME,'REVERSE':FUNCTION_NAME,'SUMBARS':FUNCTION_NAME,
|
|
81
|
-
'MEMA':FUNCTION_NAME,'WMA':FUNCTION_NAME,"STRLEN":FUNCTION_NAME,
|
|
81
|
+
'MEMA':FUNCTION_NAME,'WMA':FUNCTION_NAME,"STRLEN":FUNCTION_NAME,"TMA":FUNCTION_NAME,"HV":FUNCTION_NAME,"HOD":FUNCTION_NAME,"LV":FUNCTION_NAME,
|
|
82
|
+
"VALUEWHEN":FUNCTION_NAME,"TESTSKIP":FUNCTION_NAME,"IFC":FUNCTION_NAME,"IFN":FUNCTION_NAME,"RGB":FUNCTION_NAME,"RGBX":FUNCTION_NAME,
|
|
83
|
+
"SYSPARAM":FUNCTION_NAME,"CALCSTOCKINDEX":FUNCTION_NAME,"STKINDI":FUNCTION_NAME,"RGBA":FUNCTION_NAME,
|
|
84
|
+
|
|
85
|
+
"ISUP":DATA_NAME,"ISEQUAL":DATA_NAME,"ISDOWN":DATA_NAME,
|
|
86
|
+
|
|
87
|
+
"XMOVE":FUNCTION_NAME,"YMOVE":FUNCTION_NAME,"UPCOLOR":FUNCTION_NAME,"DOWNCOLOR":FUNCTION_NAME,
|
|
88
|
+
"STRFORMAT":FUNCTION_NAME,
|
|
82
89
|
|
|
83
90
|
//动态行情函数
|
|
84
91
|
"DYNAINFO":FUNCTION_NAME,
|
|
@@ -93,16 +100,20 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
|
93
100
|
'NEWS':FUNCTION_NAME,
|
|
94
101
|
|
|
95
102
|
//日期类
|
|
96
|
-
'DATE':DATA_NAME,'MONTH':DATA_NAME,'YEAR':DATA_NAME,
|
|
103
|
+
'DATE':DATA_NAME,'MONTH':DATA_NAME,'YEAR':DATA_NAME,"PERIOD":DATA_NAME,'TIME':DATA_NAME,'TIME2':DATA_NAME, "WEEKDAY":DATA_NAME,
|
|
104
|
+
"WEEKOFYEAR":DATA_NAME,"MACHINEDATE":DATA_NAME,"MACHINETIME":DATA_NAME,"MACHINEWEEK":DATA_NAME,"DAYSTOTODAY":DATA_NAME,
|
|
105
|
+
"FROMOPEN":DATA_NAME,"TOTALFZNUM":DATA_NAME,
|
|
106
|
+
"DATETODAY":FUNCTION_NAME,"DAYTODATE":FUNCTION_NAME,"TIMETOSEC":FUNCTION_NAME,"SECTOTIME":FUNCTION_NAME,
|
|
97
107
|
|
|
98
108
|
//绘图函数
|
|
99
109
|
'DRAWTEXT':FUNCTION_NAME,'STICKLINE':FUNCTION_NAME,'DRAWBAND':FUNCTION_NAME,'DRAWKLINE':FUNCTION_NAME,
|
|
100
110
|
'PLOYLINE':FUNCTION_NAME,'POLYLINE':FUNCTION_NAME,'DRAWNUMBER':FUNCTION_NAME,'DRAWICON':FUNCTION_NAME,'SUPERDRAWTEXT':FUNCTION_NAME,
|
|
111
|
+
|
|
101
112
|
|
|
102
113
|
//个股行情数据
|
|
103
114
|
"CLOSE":DATA_NAME, "C":DATA_NAME,"VOL":DATA_NAME, "V":DATA_NAME,
|
|
104
115
|
"OPEN":DATA_NAME, "O":DATA_NAME, "HIGH":DATA_NAME, "H":DATA_NAME, "LOW":DATA_NAME,"L":DATA_NAME,"AMOUNT":DATA_NAME,
|
|
105
|
-
"CURRBARSCOUNT":DATA_NAME,
|
|
116
|
+
"CURRBARSCOUNT":DATA_NAME, "VOLINSTK":DATA_NAME, "ZSTJJ":DATA_NAME, "OPI":DATA_NAME,
|
|
106
117
|
|
|
107
118
|
//大盘数据
|
|
108
119
|
"INDEXA":DATA_NAME,"INDEXC":DATA_NAME,"INDEXH":DATA_NAME,"INDEXL":DATA_NAME,"INDEXO":DATA_NAME,"INDEXV":DATA_NAME,'INDEXADV':DATA_NAME,'INDEXDEC':DATA_NAME,
|
|
@@ -112,7 +123,17 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
|
112
123
|
'LINETHICK1':LINE_WIDTH_NAME,'LINETHICK2':LINE_WIDTH_NAME,'LINETHICK3':LINE_WIDTH_NAME,'LINETHICK4':LINE_WIDTH_NAME,'LINETHICK5':LINE_WIDTH_NAME,
|
|
113
124
|
'LINETHICK6':LINE_WIDTH_NAME,'LINETHICK7':LINE_WIDTH_NAME,'LINETHICK8':LINE_WIDTH_NAME,'LINETHICK9':LINE_WIDTH_NAME,'LINETHICK10':LINE_WIDTH_NAME,
|
|
114
125
|
|
|
126
|
+
//字体大小
|
|
127
|
+
"FONTSIZE10":LINE_WIDTH_NAME,"FONTSIZE11":LINE_WIDTH_NAME,"FONTSIZE12":LINE_WIDTH_NAME,"FONTSIZE4":LINE_WIDTH_NAME,"FONTSIZE15":LINE_WIDTH_NAME,
|
|
128
|
+
"FONTSIZE16":LINE_WIDTH_NAME,"FONTSIZE17":LINE_WIDTH_NAME,"FONTSIZE18":LINE_WIDTH_NAME,"FONTSIZE9":LINE_WIDTH_NAME,"FONTSIZE20":LINE_WIDTH_NAME,
|
|
129
|
+
"FONTSIZE21":LINE_WIDTH_NAME,"FONTSIZE22":LINE_WIDTH_NAME,"FONTSIZE23":LINE_WIDTH_NAME,"FONTSIZE24":LINE_WIDTH_NAME,"FONTSIZE25":LINE_WIDTH_NAME,
|
|
130
|
+
|
|
131
|
+
"VALIGN0":LINE_WIDTH_NAME,"VALIGN1":LINE_WIDTH_NAME,"VALIGN2":LINE_WIDTH_NAME,
|
|
132
|
+
|
|
115
133
|
'COLORSTICK':DRAW_NAME,'CIRCLEDOT':DRAW_NAME,'POINTDOT':DRAW_NAME,'LINESTICK':DRAW_NAME,'STICK':DRAW_NAME,'NODRAW':DRAW_NAME,
|
|
134
|
+
"LINEAREA":DRAW_NAME,
|
|
135
|
+
|
|
136
|
+
"BUY":DRAW_NAME,"SELL":DRAW_NAME,"SELLSHORT":DRAW_NAME,"BUYSHORT":DRAW_NAME,"TIPICON":DRAW_NAME,
|
|
116
137
|
|
|
117
138
|
//颜色
|
|
118
139
|
'COLORYELLOW':COLORYELLOW,'COLORBLACK':COLORBLACK,'COLORBLUE':COLORBLUE,'COLORGREEN':COLORGREEN,'COLORCYAN':COLORCYAN,'COLORRED':COLORRED,
|