hqchart 1.1.13590 → 1.1.13600
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 +76 -62
- package/package.json +1 -1
- package/src/jscommon/umychart.js +47 -4
- package/src/jscommon/umychart.report.js +179 -3
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +227 -8
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +227 -8
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -2602,6 +2602,7 @@ var JSCHART_EVENT_ID=
|
|
|
2602
2602
|
ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
|
|
2603
2603
|
ON_CLICK_REPORT_BUTTON:142, //报价列表按钮
|
|
2604
2604
|
ON_CLICK_REPORT_LINK:143, //报价列表 链接
|
|
2605
|
+
ON_CREATE_REPORT_HEADER_MENU:144, //报价列表 表头菜单
|
|
2605
2606
|
|
|
2606
2607
|
|
|
2607
2608
|
ON_CHANGE_INDEX:150, //切换指标
|
|
@@ -2778,8 +2779,10 @@ var JSCHART_MENU_ID=
|
|
|
2778
2779
|
|
|
2779
2780
|
|
|
2780
2781
|
CMD_REPORT_CHANGE_BLOCK_ID:60, //报价列表 切换板块ID
|
|
2781
|
-
|
|
2782
|
-
|
|
2782
|
+
CMD_REPORT_COLUMN_SORT_ID:61, //报价列表 表头排序 Arg[列序号, 排序方向]
|
|
2783
|
+
CMD_REPORT_COLUMN_DEL_ID:62, //报价列表 删除列
|
|
2784
|
+
CMD_REPORT_COLUMN_MOVE_ID:63, //报价列表 列移动
|
|
2785
|
+
CMD_REPORT_COLUMN_FILTER_ID:64, //报价列表 筛选
|
|
2783
2786
|
}
|
|
2784
2787
|
|
|
2785
2788
|
|
|
@@ -56956,6 +56959,16 @@ function ChartArrowMarker()
|
|
|
56956
56959
|
this.OnlyMoveXIndex=true;
|
|
56957
56960
|
this.IsSupportMagnet=true;
|
|
56958
56961
|
|
|
56962
|
+
this.Super_SetOption=this.SetOption; //父类函数
|
|
56963
|
+
|
|
56964
|
+
this.SetOption=function(option)
|
|
56965
|
+
{
|
|
56966
|
+
this.Super_SetOption(option);
|
|
56967
|
+
|
|
56968
|
+
if (option.AreaColor) this.AreaColor=option.AreaColor;
|
|
56969
|
+
else this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor, 0.6);
|
|
56970
|
+
}
|
|
56971
|
+
|
|
56959
56972
|
this.CalculatePoint=function(angle, ptStart, ptEnd, lineWidth)
|
|
56960
56973
|
{
|
|
56961
56974
|
var theta=angle; //三角斜边一直线夹角
|
|
@@ -56999,9 +57012,12 @@ function ChartArrowMarker()
|
|
|
56999
57012
|
this.Canvas.lineTo(outArrow.Bottom.X,outArrow.Bottom.Y);
|
|
57000
57013
|
this.Canvas.lineTo(insideArrow.Bottom.X,insideArrow.Bottom.Y);
|
|
57001
57014
|
this.Canvas.lineTo(ptStart.X,ptStart.Y);
|
|
57002
|
-
this.Canvas.closePath();
|
|
57003
57015
|
|
|
57004
|
-
this.Canvas.
|
|
57016
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
57017
|
+
this.Canvas.stroke();
|
|
57018
|
+
|
|
57019
|
+
this.Canvas.closePath();
|
|
57020
|
+
this.Canvas.fillStyle=this.AreaColor;
|
|
57005
57021
|
this.Canvas.fill();
|
|
57006
57022
|
|
|
57007
57023
|
/*
|
|
@@ -65792,6 +65808,9 @@ function ChartPriceRange()
|
|
|
65792
65808
|
|
|
65793
65809
|
this.DrawArrow({X:ToFixedPoint(xCenter), Y:ptStart.Y}, {X:ToFixedPoint(xCenter), Y:ptEnd.Y});
|
|
65794
65810
|
|
|
65811
|
+
var bottom=this.Frame.ChartBorder.GetBottomEx();
|
|
65812
|
+
var top=this.Frame.ChartBorder.GetTopEx();
|
|
65813
|
+
|
|
65795
65814
|
//文字输出
|
|
65796
65815
|
var startValue=this.Frame.GetYData(ptStart.Y,false);
|
|
65797
65816
|
var endValue=this.Frame.GetYData(ptEnd.Y,false);
|
|
@@ -65807,6 +65826,23 @@ function ChartPriceRange()
|
|
|
65807
65826
|
else rtTextBG.Top=ptEnd.Y+4;
|
|
65808
65827
|
rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
|
|
65809
65828
|
|
|
65829
|
+
if (diffValue>0)
|
|
65830
|
+
{
|
|
65831
|
+
if (rtTextBG.Top<=top)
|
|
65832
|
+
{
|
|
65833
|
+
rtTextBG.Top=top;
|
|
65834
|
+
rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
|
|
65835
|
+
}
|
|
65836
|
+
}
|
|
65837
|
+
else
|
|
65838
|
+
{
|
|
65839
|
+
if (rtTextBG.Bottom>=bottom)
|
|
65840
|
+
{
|
|
65841
|
+
rtTextBG.Bottom=bottom;
|
|
65842
|
+
rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
|
|
65843
|
+
}
|
|
65844
|
+
}
|
|
65845
|
+
|
|
65810
65846
|
if (this.Label.EnableBGColor)
|
|
65811
65847
|
{
|
|
65812
65848
|
var path=new Path2D();
|
|
@@ -65913,6 +65949,7 @@ function ChartDateRange()
|
|
|
65913
65949
|
|
|
65914
65950
|
|
|
65915
65951
|
//文字输出
|
|
65952
|
+
var bottom=this.Frame.ChartBorder.GetBottomEx();
|
|
65916
65953
|
var startIndex=this.Frame.GetXData(ptStart.X,false);
|
|
65917
65954
|
var endIndex=this.Frame.GetXData(ptEnd.X,false);
|
|
65918
65955
|
var barCount=endIndex-startIndex+1;
|
|
@@ -65924,6 +65961,12 @@ function ChartDateRange()
|
|
|
65924
65961
|
var rtTextBG={ Left:xCenter-textWidth/2, Top:ptEnd.Y+4, Width:textWidth, Height:textHeight+2 };
|
|
65925
65962
|
rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
|
|
65926
65963
|
|
|
65964
|
+
if (rtTextBG.Bottom>=bottom)
|
|
65965
|
+
{
|
|
65966
|
+
rtTextBG.Bottom=bottom;
|
|
65967
|
+
rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
|
|
65968
|
+
}
|
|
65969
|
+
|
|
65927
65970
|
if (this.Label.EnableBGColor)
|
|
65928
65971
|
{
|
|
65929
65972
|
var path=new Path2D();
|
|
@@ -3018,10 +3018,73 @@ function JSReportChartContainer(uielement)
|
|
|
3018
3018
|
}
|
|
3019
3019
|
}
|
|
3020
3020
|
|
|
3021
|
+
//列排序
|
|
3022
|
+
this.SortColumn=function(index, sortType)
|
|
3023
|
+
{
|
|
3024
|
+
if (index<0) return false;
|
|
3025
|
+
var reportChart=this.GetReportChart();
|
|
3026
|
+
if (!reportChart) return false;
|
|
3027
|
+
|
|
3028
|
+
var column=reportChart.Column[index];
|
|
3029
|
+
|
|
3030
|
+
if (!column) return false;
|
|
3031
|
+
if (column.Sort!=1 && column.Sort!=2) return false;
|
|
3032
|
+
|
|
3033
|
+
var sortInfo={ Field:index, Sort:sortType };
|
|
3034
|
+
if (sortInfo.Sort==0) //不排序还原
|
|
3035
|
+
{
|
|
3036
|
+
this.Data.Data=[];
|
|
3037
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
|
|
3038
|
+
this.Data.Data=this.SourceData.Data.slice();
|
|
3039
|
+
}
|
|
3040
|
+
else if (sortInfo.Sort==1 || sortInfo.Sort==2)
|
|
3041
|
+
{
|
|
3042
|
+
if (column.Sort==1) //本地排序
|
|
3043
|
+
{
|
|
3044
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_LOCAL_SORT);
|
|
3045
|
+
if (event && event.Callback)
|
|
3046
|
+
{
|
|
3047
|
+
var sendData={ Column:column, SortInfo:sortInfo, SymbolList:this.Data.Data, Result:null };
|
|
3048
|
+
event.Callback (event, sendData, this);
|
|
3049
|
+
if (Array.isArray(sendData.Result)) this.Data.Data=sendData.Result;
|
|
3050
|
+
}
|
|
3051
|
+
else
|
|
3052
|
+
{
|
|
3053
|
+
this.Data.Data.sort((left, right)=> { return this.LocalSort(left, right, column, sortInfo.Sort); });
|
|
3054
|
+
}
|
|
3055
|
+
}
|
|
3056
|
+
else if (column.Sort==2) //远程排序
|
|
3057
|
+
{
|
|
3058
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
3059
|
+
|
|
3060
|
+
this.SortInfo.Field=sortInfo.Field;
|
|
3061
|
+
this.SortInfo.Sort=sortInfo.Sort;
|
|
3062
|
+
this.Data.YOffset=0;
|
|
3063
|
+
this.ResetReportSelectStatus();
|
|
3064
|
+
this.RequestStockSortData(column, sortInfo.Field, sortInfo.Sort); //远程排序
|
|
3065
|
+
return true;
|
|
3066
|
+
}
|
|
3067
|
+
}
|
|
3068
|
+
|
|
3069
|
+
this.Data.YOffset=0;
|
|
3070
|
+
this.ResetReportSelectStatus();
|
|
3071
|
+
this.SortInfo.Field=sortInfo.Field;
|
|
3072
|
+
this.SortInfo.Sort=sortInfo.Sort;
|
|
3073
|
+
this.Draw();
|
|
3074
|
+
this.DelayUpdateStockData();
|
|
3075
|
+
return true;
|
|
3076
|
+
}
|
|
3077
|
+
|
|
3021
3078
|
//点表头
|
|
3022
3079
|
this.OnClickHeader=function(clickData, e)
|
|
3023
3080
|
{
|
|
3024
3081
|
var header=clickData.Header;
|
|
3082
|
+
if (header.Column && header.Column.EnablePopupHeaderMenu)
|
|
3083
|
+
{
|
|
3084
|
+
this.PopupHeaderMenu(clickData, e);
|
|
3085
|
+
return;
|
|
3086
|
+
}
|
|
3087
|
+
|
|
3025
3088
|
if (header.Column && (header.Column.Sort==1 || header.Column.Sort==2))
|
|
3026
3089
|
{
|
|
3027
3090
|
var index=header.Index;
|
|
@@ -3100,6 +3163,52 @@ function JSReportChartContainer(uielement)
|
|
|
3100
3163
|
}
|
|
3101
3164
|
}
|
|
3102
3165
|
|
|
3166
|
+
this.PopupHeaderMenu=function(clickData, e)
|
|
3167
|
+
{
|
|
3168
|
+
if (!this.JSPopMenu) return;
|
|
3169
|
+
if (!this.GetEventCallback) return;
|
|
3170
|
+
|
|
3171
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_REPORT_HEADER_MENU);
|
|
3172
|
+
if (!event || !event.Callback) return;
|
|
3173
|
+
|
|
3174
|
+
var header=clickData.Header;
|
|
3175
|
+
var column=header.Column;
|
|
3176
|
+
var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.DROPDOWN_MENU_ID };
|
|
3177
|
+
menuData.ClickCallback=(data)=>{ this.OnClickHeaderMenu(column, data); }
|
|
3178
|
+
|
|
3179
|
+
var sendData={ MenuData:menuData, Column:column, Index:header.Index, PreventDefault:false, e:e };
|
|
3180
|
+
event.Callback(event, sendData, this);
|
|
3181
|
+
if (sendData.PreventDefault==true) return;
|
|
3182
|
+
|
|
3183
|
+
if (!menuData.Menu) return;
|
|
3184
|
+
|
|
3185
|
+
this.PopupMenuByDrapdown(menuData, header.Rect);
|
|
3186
|
+
}
|
|
3187
|
+
|
|
3188
|
+
//下拉菜单
|
|
3189
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
3190
|
+
{
|
|
3191
|
+
if (!this.JSPopMenu) return;
|
|
3192
|
+
|
|
3193
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
3194
|
+
var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
|
|
3195
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
3196
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
3197
|
+
|
|
3198
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
3199
|
+
var rtScroll=GetScrollPosition();
|
|
3200
|
+
|
|
3201
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
3202
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
3203
|
+
rtCell.Left+=offsetLeft;
|
|
3204
|
+
rtCell.Right+=offsetLeft;
|
|
3205
|
+
rtCell.Top+=offsetTop;
|
|
3206
|
+
rtCell.Bottom+=offsetTop;
|
|
3207
|
+
|
|
3208
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
3209
|
+
this.JSPopMenu.PopupMenuByDrapdown(rtCell);
|
|
3210
|
+
}
|
|
3211
|
+
|
|
3103
3212
|
this.GetTabPopMenu=function(tabItem)
|
|
3104
3213
|
{
|
|
3105
3214
|
var aryMenu=[ ];
|
|
@@ -3215,6 +3324,24 @@ function JSReportChartContainer(uielement)
|
|
|
3215
3324
|
this.Draw();
|
|
3216
3325
|
}
|
|
3217
3326
|
|
|
3327
|
+
this.OnClickHeaderMenu=function(menuData, data)
|
|
3328
|
+
{
|
|
3329
|
+
JSConsole.Chart.Log('[JSReportChartContainer::OnClickHeaderMenu] ',menuData, data);
|
|
3330
|
+
|
|
3331
|
+
var cmdID=data.Data.ID;
|
|
3332
|
+
var aryArgs=data.Data.Args;
|
|
3333
|
+
|
|
3334
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
|
|
3335
|
+
if (event && event.Callback)
|
|
3336
|
+
{
|
|
3337
|
+
var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data, MenuData:menuData };
|
|
3338
|
+
event.Callback(event,data,this);
|
|
3339
|
+
if (data.PreventDefault) return;
|
|
3340
|
+
}
|
|
3341
|
+
|
|
3342
|
+
this.ExecuteMenuCommand(cmdID,aryArgs);
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3218
3345
|
this.ExecuteMenuCommand=function(cmdID, aryArgs)
|
|
3219
3346
|
{
|
|
3220
3347
|
JSConsole.Chart.Log('[JSReportChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=', cmdID,aryArgs);
|
|
@@ -3231,6 +3358,22 @@ function JSReportChartContainer(uielement)
|
|
|
3231
3358
|
case JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID:
|
|
3232
3359
|
if (srcParam) this.ChangeSymbol(srcParam);
|
|
3233
3360
|
break;
|
|
3361
|
+
case JSCHART_MENU_ID.CMD_REPORT_COLUMN_SORT_ID:
|
|
3362
|
+
if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
|
|
3363
|
+
this.SortColumn(param, aryArgs[1]);
|
|
3364
|
+
break;
|
|
3365
|
+
case JSCHART_MENU_ID.CMD_REPORT_COLUMN_MOVE_ID:
|
|
3366
|
+
if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
|
|
3367
|
+
{
|
|
3368
|
+
var leftIndex=param;
|
|
3369
|
+
var rightIndex=param+aryArgs[1];
|
|
3370
|
+
this.SwapColumn(leftIndex, rightIndex, {Redraw:true});
|
|
3371
|
+
}
|
|
3372
|
+
break;
|
|
3373
|
+
case JSCHART_MENU_ID.CMD_REPORT_COLUMN_DEL_ID:
|
|
3374
|
+
if (IFrameSplitOperator.IsNumber(param))
|
|
3375
|
+
this.DeleteColumn(param, {Redraw:true});
|
|
3376
|
+
break;
|
|
3234
3377
|
}
|
|
3235
3378
|
}
|
|
3236
3379
|
|
|
@@ -3248,6 +3391,20 @@ function JSReportChartContainer(uielement)
|
|
|
3248
3391
|
}
|
|
3249
3392
|
}
|
|
3250
3393
|
|
|
3394
|
+
this.DeleteColumn=function(index, option)
|
|
3395
|
+
{
|
|
3396
|
+
var reportChart=this.GetReportChart();
|
|
3397
|
+
if (!reportChart) return;
|
|
3398
|
+
|
|
3399
|
+
if (!reportChart.DeleteColumn(index)) return;
|
|
3400
|
+
|
|
3401
|
+
if (option && option.Redraw)
|
|
3402
|
+
{
|
|
3403
|
+
this.SetSizeChange(true);
|
|
3404
|
+
this.Draw();
|
|
3405
|
+
}
|
|
3406
|
+
}
|
|
3407
|
+
|
|
3251
3408
|
//本地排序
|
|
3252
3409
|
this.LocalSort=function(left, right, column, sortType)
|
|
3253
3410
|
{
|
|
@@ -4102,6 +4259,9 @@ function ChartReport()
|
|
|
4102
4259
|
else colItem.IsDrawCallback=false;
|
|
4103
4260
|
if (item.Icon) colItem.Icon=item.Icon;
|
|
4104
4261
|
|
|
4262
|
+
//点击表头弹出菜单
|
|
4263
|
+
if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
|
|
4264
|
+
|
|
4105
4265
|
if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
|
|
4106
4266
|
{
|
|
4107
4267
|
colItem.SortType=[1,2]; //默认 降序 ,升序
|
|
@@ -4209,6 +4369,15 @@ function ChartReport()
|
|
|
4209
4369
|
return true;
|
|
4210
4370
|
}
|
|
4211
4371
|
|
|
4372
|
+
this.DeleteColumn=function(index)
|
|
4373
|
+
{
|
|
4374
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Column)) return false;
|
|
4375
|
+
if (index<0 || index>=this.Column.length) return false;
|
|
4376
|
+
|
|
4377
|
+
this.Column.splice(index,1);
|
|
4378
|
+
return true;
|
|
4379
|
+
}
|
|
4380
|
+
|
|
4212
4381
|
this.GetXScrollPos=function()
|
|
4213
4382
|
{
|
|
4214
4383
|
return this.Data.XOffset;
|
|
@@ -6863,7 +7032,14 @@ function ChartReport()
|
|
|
6863
7032
|
|
|
6864
7033
|
if (buttonData.Type===0) //checkbox
|
|
6865
7034
|
{
|
|
6866
|
-
var sendData=
|
|
7035
|
+
var sendData=
|
|
7036
|
+
{
|
|
7037
|
+
Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex,
|
|
7038
|
+
Data:buttonData.Data, Value:true,
|
|
7039
|
+
PreventDefault: false
|
|
7040
|
+
};
|
|
7041
|
+
if (IFrameSplitOperator.IsBool(buttonData.Data.Checked)) sendData.Value=!buttonData.Data.Checked;
|
|
7042
|
+
|
|
6867
7043
|
this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_CHECKBOX, sendData)
|
|
6868
7044
|
|
|
6869
7045
|
if (!sendData.PreventDefault)
|
|
@@ -6879,7 +7055,7 @@ function ChartReport()
|
|
|
6879
7055
|
}
|
|
6880
7056
|
else if (buttonData.Type===1) //button
|
|
6881
7057
|
{
|
|
6882
|
-
var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
|
|
7058
|
+
var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
|
|
6883
7059
|
this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_BUTTON, sendData)
|
|
6884
7060
|
|
|
6885
7061
|
status.Redraw=true;
|
|
@@ -6887,7 +7063,7 @@ function ChartReport()
|
|
|
6887
7063
|
}
|
|
6888
7064
|
else if (buttonData.Type===2) //link
|
|
6889
7065
|
{
|
|
6890
|
-
var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
|
|
7066
|
+
var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
|
|
6891
7067
|
this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_LINK, sendData)
|
|
6892
7068
|
|
|
6893
7069
|
status.Redraw=true;
|