hqchart 1.1.12687 → 1.1.12706

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.
Files changed (228) hide show
  1. package/lib/umychart.vue.js +94 -50
  2. package/package.json +15 -47
  3. package/src/jscommon/umychart.resource/js/codemirror/javascript.js +1 -1
  4. package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +409 -115
  5. package/src/jscommon/umychart.vue/umychart.vue.js +409 -115
  6. package/.babelrc +0 -6
  7. package/.vscode/settings.json +0 -4
  8. package/Makefile +0 -9
  9. package/README.md +0 -452
  10. package/index.js +0 -17
  11. package/postcss.config.js +0 -5
  12. package/src/index.html +0 -18
  13. package/src/jscommon/backup/announcement.png +0 -0
  14. package/src/jscommon/backup/announcement2.png +0 -0
  15. package/src/jscommon/backup/blocktrading.png +0 -0
  16. package/src/jscommon/backup/investor.png +0 -0
  17. package/src/jscommon/backup/pforecast.png +0 -0
  18. package/src/jscommon/backup/research.png +0 -0
  19. package/src/jscommon/backup/tradedetail.png +0 -0
  20. package/src/jscommon/backup/umychart - backup.js +0 -17631
  21. package/src/jscommon/backup/umychart.macro.js +0 -4
  22. package/src/jscommon/backup/umychart.macro.vue.js +0 -3
  23. package/src/jscommon/commonindextree.json +0 -92
  24. package/src/jscommon/index.html +0 -13
  25. package/src/jscommon/jschinamapdata.js +0 -3
  26. package/src/jscommon/umychart.NetworkFilterTest.js +0 -48803
  27. package/src/jscommon/umychart.aliYunnetwork.js +0 -47
  28. package/src/jscommon/umychart.cninfo.components/readme.txt +0 -1
  29. package/src/jscommon/umychart.complier.js +0 -25291
  30. package/src/jscommon/umychart.complier.node/umychart.complier.controller.js +0 -559
  31. package/src/jscommon/umychart.complier.node/umychart.complier.node.js +0 -7043
  32. package/src/jscommon/umychart.complier.node/umychart.data.node.js +0 -816
  33. package/src/jscommon/umychart.console.js +0 -12
  34. package/src/jscommon/umychart.deal.js +0 -1452
  35. package/src/jscommon/umychart.dragdiv.js +0 -48
  36. package/src/jscommon/umychart.index.data.js +0 -4132
  37. package/src/jscommon/umychart.js +0 -90257
  38. package/src/jscommon/umychart.keyboard.js +0 -1659
  39. package/src/jscommon/umychart.listctrl.js +0 -690
  40. package/src/jscommon/umychart.mind.js +0 -2203
  41. package/src/jscommon/umychart.network.js +0 -44
  42. package/src/jscommon/umychart.news.js +0 -823
  43. package/src/jscommon/umychart.node.build/buildall.bat +0 -1
  44. package/src/jscommon/umychart.node.build/umychart.node.bat +0 -1
  45. package/src/jscommon/umychart.node.build/umychart.node.export.js +0 -40
  46. package/src/jscommon/umychart.regressiontest.js +0 -400
  47. package/src/jscommon/umychart.report.js +0 -5803
  48. package/src/jscommon/umychart.scrollbar.js +0 -1345
  49. package/src/jscommon/umychart.stock.js +0 -4218
  50. package/src/jscommon/umychart.style.js +0 -618
  51. package/src/jscommon/umychart.testdata.js +0 -150
  52. package/src/jscommon/umychart.uniapp.build/buildall.bat +0 -1
  53. package/src/jscommon/umychart.uniapp.build/umychart.bat +0 -1
  54. package/src/jscommon/umychart.uniapp.build/umychart.export.js +0 -70
  55. package/src/jscommon/umychart.user.js +0 -137
  56. package/src/jscommon/umychart.version.js +0 -30
  57. package/src/jscommon/umychart.vue/umychart.aliYunnetwork.vue.js +0 -56
  58. package/src/jscommon/umychart.vue.build/buildall.bat +0 -4
  59. package/src/jscommon/umychart.vue.build/copy_codemirror.bat +0 -2
  60. package/src/jscommon/umychart.vue.build/umychart.aliYunnetwork.vue.export.js +0 -9
  61. package/src/jscommon/umychart.vue.build/umychart.dragdiv.bat +0 -1
  62. package/src/jscommon/umychart.vue.build/umychart.dragdiv.export.js +0 -6
  63. package/src/jscommon/umychart.vue.build/umychart.index.data.bat +0 -1
  64. package/src/jscommon/umychart.vue.build/umychart.index.data.export.js +0 -4
  65. package/src/jscommon/umychart.vue.build/umychart.listctrl.vue.export.js +0 -15
  66. package/src/jscommon/umychart.vue.build/umychart.regressiontest.vue.export.js +0 -7
  67. package/src/jscommon/umychart.vue.build/umychart.regressiontest.wechat.export.js +0 -12
  68. package/src/jscommon/umychart.vue.build/umychart.stock.bat +0 -1
  69. package/src/jscommon/umychart.vue.build/umychart.stock.vue.export.js +0 -16
  70. package/src/jscommon/umychart.vue.build/umychart.testdata.bat +0 -3
  71. package/src/jscommon/umychart.vue.build/umychart.testdata.vue.export.js +0 -7
  72. package/src/jscommon/umychart.vue.build/umychart.vue.bat +0 -8
  73. package/src/jscommon/umychart.vue.build/umychart.vue.export.js +0 -112
  74. package/src/jscommon/umychart.vue.components/empyt.vue +0 -51
  75. package/src/jscommon/umychart.vue.components/historydayline.vue +0 -240
  76. package/src/jscommon/umychart.vue.components/jsloader.adddialog.vue +0 -315
  77. package/src/jscommon/umychart.vue.components/jsloader.vue +0 -93
  78. package/src/jscommon/umychart.vue.components/jsvuecontainer.vue +0 -160
  79. package/src/jscommon/umychart.vue.components/jsvuecontainer2.0.vue +0 -391
  80. package/src/jscommon/umychart.vue.components/login.vue +0 -178
  81. package/src/jscommon/umychart.vue.components/queryContent.vue +0 -750
  82. package/src/jscommon/umychart.vue.components/readme.txt +0 -8
  83. package/src/jscommon/umychart.vue.components/searchsymbol.vue +0 -299
  84. package/src/jscommon/umychart.vue.components/simulatetrade.vue +0 -1471
  85. package/src/jscommon/umychart.vue.components/stockchart.vue +0 -343
  86. package/src/jscommon/umychart.vue.components/stockchartV2.vue +0 -195
  87. package/src/jscommon/umychart.vue.components/stockdeal.vue +0 -358
  88. package/src/jscommon/umychart.vue.components/stockdealcount.vue +0 -262
  89. package/src/jscommon/umychart.vue.components/stockdeallastest.vue +0 -316
  90. package/src/jscommon/umychart.vue.components/stockdrawtool.vue +0 -343
  91. package/src/jscommon/umychart.vue.components/stockfull.vue +0 -355
  92. package/src/jscommon/umychart.vue.components/stockinfo.demo.vue +0 -153
  93. package/src/jscommon/umychart.vue.components/stockinfo.vue +0 -685
  94. package/src/jscommon/umychart.vue.components/stockkline.demo.vue +0 -1904
  95. package/src/jscommon/umychart.vue.components/stockmultiorder.vue +0 -174
  96. package/src/jscommon/umychart.vue.components/stockmultiperiod.vue +0 -222
  97. package/src/jscommon/umychart.vue.components/stockorder.vue +0 -320
  98. package/src/jscommon/umychart.vue.components/stocktradeinfo.demo.vue +0 -250
  99. package/src/jscommon/umychart.vue.components/stocktradeinfo.vue +0 -1907
  100. package/src/jscommon/umychart.vue.components/test.vue +0 -0
  101. package/src/jscommon/umychart.wechat/getDate.wechat.js +0 -91
  102. package/src/jscommon/umychart.wechat/lighter.news.wechat.js +0 -262
  103. package/src/jscommon/umychart.wechat/readme.txt +0 -3
  104. package/src/jscommon/umychart.wechat/umychart.analyze.wechat.js +0 -551
  105. package/src/jscommon/umychart.wechat/umychart.apidraw.wechat.js +0 -126
  106. package/src/jscommon/umychart.wechat/umychart.bigV.wechat.js +0 -2510
  107. package/src/jscommon/umychart.wechat/umychart.chartframe.wechat.js +0 -2931
  108. package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +0 -9752
  109. package/src/jscommon/umychart.wechat/umychart.charttitle.wechat.js +0 -2023
  110. package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +0 -14726
  111. package/src/jscommon/umychart.wechat/umychart.console.wechat.js +0 -8
  112. package/src/jscommon/umychart.wechat/umychart.coordinatedata.wechat.js +0 -3654
  113. package/src/jscommon/umychart.wechat/umychart.data.wechat.js +0 -2243
  114. package/src/jscommon/umychart.wechat/umychart.element.wechart.js +0 -132
  115. package/src/jscommon/umychart.wechat/umychart.explainer.wechat.js +0 -1077
  116. package/src/jscommon/umychart.wechat/umychart.extendchart.wechat.js +0 -1140
  117. package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +0 -2247
  118. package/src/jscommon/umychart.wechat/umychart.hqIndexformula.wechat.js +0 -941
  119. package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +0 -3628
  120. package/src/jscommon/umychart.wechat/umychart.index.wechat.js +0 -4074
  121. package/src/jscommon/umychart.wechat/umychart.klineinfo.wechat.js +0 -836
  122. package/src/jscommon/umychart.wechat/umychart.markethot.js +0 -50
  123. package/src/jscommon/umychart.wechat/umychart.network.wechart.js +0 -62
  124. package/src/jscommon/umychart.wechat/umychart.news.wechat.js +0 -3568
  125. package/src/jscommon/umychart.wechat/umychart.regressiontest.wechat.js +0 -412
  126. package/src/jscommon/umychart.wechat/umychart.report.wechat.js +0 -3983
  127. package/src/jscommon/umychart.wechat/umychart.resource.wechat.js +0 -919
  128. package/src/jscommon/umychart.wechat/umychart.shareimage.wechat.js +0 -681
  129. package/src/jscommon/umychart.wechat/umychart.simulatetrade.wechat.js +0 -238
  130. package/src/jscommon/umychart.wechat/umychart.stock.wechat.js +0 -4035
  131. package/src/jscommon/umychart.wechat/umychart.style.wechat.js +0 -419
  132. package/src/jscommon/umychart.wechat/umychart.uniapp.canvas.helper.js +0 -99
  133. package/src/jscommon/umychart.wechat/umychart.user.wechat.js +0 -588
  134. package/src/jscommon/umychart.wechat/umychart.userlog.wechat.js +0 -240
  135. package/src/jscommon/umychart.wechat/umychart.vedio.wechat.js +0 -112
  136. package/src/jscommon/umychart.wechat/umychart.version.wechat.js +0 -36
  137. package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +0 -12051
  138. package/src/jscommon/umychart.wechat/umychart.wechat.js +0 -15460
  139. package/src/jscommon/umychart.worker.js +0 -114
  140. package/src/jscommon/umychart.ws.stock.js +0 -110
  141. package/src/jscommon/umychart_python/.vscode/launch.json +0 -15
  142. package/src/jscommon/umychart_python/__init__.py +0 -4
  143. package/src/jscommon/umychart_python/build.cmd +0 -2
  144. package/src/jscommon/umychart_python/setup.py +0 -25
  145. package/src/jscommon/umychart_python/umychart_cache_testcase.py +0 -165
  146. package/src/jscommon/umychart_python/umychart_complier_data.py +0 -781
  147. package/src/jscommon/umychart_python/umychart_complier_help.py +0 -175
  148. package/src/jscommon/umychart_python/umychart_complier_job.py +0 -193
  149. package/src/jscommon/umychart_python/umychart_complier_jsalgorithm.py +0 -4144
  150. package/src/jscommon/umychart_python/umychart_complier_jscomplier.py +0 -177
  151. package/src/jscommon/umychart_python/umychart_complier_jsexecute.py +0 -517
  152. package/src/jscommon/umychart_python/umychart_complier_jsparser.py +0 -864
  153. package/src/jscommon/umychart_python/umychart_complier_jssymboldata.py +0 -1238
  154. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_cache.py +0 -146
  155. package/src/jscommon/umychart_python/umychart_complier_jssymboldata_json.py +0 -106
  156. package/src/jscommon/umychart_python/umychart_complier_pandas_help.py +0 -80
  157. package/src/jscommon/umychart_python/umychart_complier_scanner.py +0 -554
  158. package/src/jscommon/umychart_python/umychart_complier_testcase.py +0 -362
  159. package/src/jscommon/umychart_python/umychart_complier_util.py +0 -30
  160. package/src/jscommon/umychart_python/umychart_webtemplate.py +0 -131
  161. package/src/jscommon/umychart_python/updatehqchartweb.bat +0 -5
  162. package/src/jscommon/vendor.js +0 -2
  163. package/src/pages/block.list.demo.page/App.vue +0 -117
  164. package/src/pages/block.list.demo.page/index.js +0 -12
  165. package/src/pages/brushTool.demo.page/App.vue +0 -19
  166. package/src/pages/brushTool.demo.page/index.js +0 -12
  167. package/src/pages/container.demo.page/App.vue +0 -118
  168. package/src/pages/container.demo.page/index.js +0 -18
  169. package/src/pages/dataZoom.demo.page/App.vue +0 -265
  170. package/src/pages/dataZoom.demo.page/components/dataZoom.vue +0 -303
  171. package/src/pages/dataZoom.demo.page/index.js +0 -12
  172. package/src/pages/historydayline.demo.page/App.vue +0 -57
  173. package/src/pages/historydayline.demo.page/index.js +0 -12
  174. package/src/pages/hq.demo.page/App.vue +0 -163
  175. package/src/pages/hq.demo.page/index.js +0 -12
  176. package/src/pages/hqchart.black/App.vue +0 -90
  177. package/src/pages/hqchart.black/components/searchsymbol.vue +0 -299
  178. package/src/pages/hqchart.black/components/stockdrawtool.vue +0 -300
  179. package/src/pages/hqchart.black/components/stockfull.vue +0 -313
  180. package/src/pages/hqchart.black/components/stockinfo.vue +0 -428
  181. package/src/pages/hqchart.black/components/stockkline.demo.vue +0 -1652
  182. package/src/pages/hqchart.black/components/stocktradeinfo.vue +0 -1337
  183. package/src/pages/hqchart.black/index.js +0 -30
  184. package/src/pages/hqchart.black/router/candlestickChart.vue +0 -108
  185. package/src/pages/hqchart.black/router/pricePointsTable.vue +0 -294
  186. package/src/pages/hqchart.black/router/stockDeallas.vue +0 -417
  187. package/src/pages/hqchart.black/router/timeShareChart.vue +0 -108
  188. package/src/pages/hqchart.page/App.vue +0 -101
  189. package/src/pages/hqchart.page/index.js +0 -18
  190. package/src/pages/index/App.vue +0 -1408
  191. package/src/pages/index/index.js +0 -7
  192. package/src/pages/indexHq/App.vue +0 -110
  193. package/src/pages/indexHq/index.js +0 -18
  194. package/src/pages/login.demo.page/App.vue +0 -22
  195. package/src/pages/login.demo.page/index.js +0 -12
  196. package/src/pages/queryContent.demo.page/App.vue +0 -29
  197. package/src/pages/queryContent.demo.page/index.js +0 -18
  198. package/src/pages/ranking.black/App.vue +0 -199
  199. package/src/pages/ranking.black/index.js +0 -18
  200. package/src/pages/search.demo.page/App.vue +0 -28
  201. package/src/pages/search.demo.page/index.js +0 -12
  202. package/src/pages/simulatetrade.demo.page/app.vue +0 -121
  203. package/src/pages/simulatetrade.demo.page/index.js +0 -17
  204. package/src/pages/stockdeal.demo.page/App.vue +0 -63
  205. package/src/pages/stockdeal.demo.page/index.js +0 -19
  206. package/src/pages/stockdealcount.demo.page/App.vue +0 -37
  207. package/src/pages/stockdealcount.demo.page/index.js +0 -12
  208. package/src/pages/stockdeallastest.demo.page/App.vue +0 -74
  209. package/src/pages/stockdeallastest.demo.page/index.js +0 -18
  210. package/src/pages/stockinfo.demo.page/App.vue +0 -92
  211. package/src/pages/stockinfo.demo.page/index.html +0 -13
  212. package/src/pages/stockinfo.demo.page/index.js +0 -19
  213. package/src/pages/stockkline.demo.page/App.vue +0 -55
  214. package/src/pages/stockkline.demo.page/index.js +0 -18
  215. package/src/pages/stockmultiorder.demo.page/App.vue +0 -149
  216. package/src/pages/stockmultiorder.demo.page/index.js +0 -18
  217. package/src/pages/stockmultiperiod.demo.page/App.vue +0 -87
  218. package/src/pages/stockmultiperiod.demo.page/index.js +0 -18
  219. package/src/pages/stockorder.demo.page/App.vue +0 -69
  220. package/src/pages/stockorder.demo.page/index.js +0 -18
  221. package/src/pages/test/App.vue +0 -22
  222. package/src/pages/test/index.js +0 -7
  223. package/src/pages/tradeinfopage/app.vue +0 -40
  224. package/src/pages/tradeinfopage/index.js +0 -7
  225. package/src/pages/tradeinfopage/tradeinfo.html +0 -12
  226. package/src/utils/urlObj.js +0 -81
  227. package/src/vendor.js +0 -2
  228. package/webpack.config.js +0 -104
@@ -4777,7 +4777,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4777
4777
  }
4778
4778
 
4779
4779
  //叠加指标宽度
4780
- if (option.OverlayIndexFrameWidth>40) chart.OverlayIndexFrameWidth=option.OverlayIndexFrameWidth;
4780
+ if (option.OverlayIndexFrameWidth>40) chart.Frame.FixedRightWidth.Overlay=option.OverlayIndexFrameWidth;
4781
4781
 
4782
4782
  //叠加指标
4783
4783
  if (IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex))
@@ -6661,7 +6661,9 @@ var JSCHART_EVENT_ID=
6661
6661
  ON_CUSTOM_DRAG_DOC_MOUSE_UP:115,
6662
6662
  ON_CUSTOM_DRAG_MOUSE_MOVE:116,
6663
6663
 
6664
- ON_KEYDOWN:117
6664
+ ON_KEYDOWN:117,
6665
+
6666
+ ON_CREATE_OVERLAY_FRAME:118, //创建叠加框架回调
6665
6667
  }
6666
6668
 
6667
6669
  var JSCHART_OPERATOR_ID=
@@ -12502,7 +12504,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12502
12504
  else
12503
12505
  {
12504
12506
  var subFrame=this.Frame.SubFrame[dest.WindowIndex];
12505
- subFrame.Interval=this.OverlayIndexFrameWidth;
12506
12507
  var overlayFrame=new OverlayIndexItem();
12507
12508
  var frame=this.CreateOverlayFrame();
12508
12509
  frame.Canvas=this.Canvas;
@@ -12519,6 +12520,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12519
12520
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
12520
12521
 
12521
12522
  overlayFrame.Frame=frame;
12523
+
12524
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_OVERLAY_FRAME);
12525
+ if (event && event.Callback)
12526
+ {
12527
+ var sendData={ OverlayFrame:overlayFrame, WindowIndex:dest.WindowIndex, SubFrame:subFrame };
12528
+ event.Callback(event, sendData, this);
12529
+ }
12530
+
12531
+
12522
12532
  var scriptIndex;
12523
12533
  if (findItem)
12524
12534
  {
@@ -13009,7 +13019,7 @@ function CoordinateInfo()
13009
13019
  this.Font=g_JSChartResource.FrameSplitTextFont; //字体
13010
13020
  this.LineColor=g_JSChartResource.FrameSplitPen; //线段颜色
13011
13021
  this.LineDash=null; //当线段类型==2时 可以设置虚线样式
13012
- this.LineType=1; //线段类型 -1 不画线段 2 虚线 8,9=集合竞价坐标
13022
+ this.LineType=1; //线段类型 -1=不画线段 2=虚线, 8,9=集合竞价坐标
13013
13023
  this.LineWidth; //线段宽度
13014
13024
  this.ExtendData; //扩展属性
13015
13025
  //百分比 { PriceColor:, PercentageColor:, SplitColor:, Font: }
@@ -13369,6 +13379,9 @@ function IChartFramePainting()
13369
13379
  this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;
13370
13380
  this.GlobalOption;
13371
13381
 
13382
+ //this.IsDrawLeftBorder;
13383
+ this.IsDrawRightBorder=false; //是否绘制右侧刻度空白的边框
13384
+
13372
13385
  this.PtInButtons=function(x,y) //坐标是否在按钮上
13373
13386
  {
13374
13387
  for(var i=0;i<this.Buttons.length;++i)
@@ -13448,8 +13461,22 @@ function IChartFramePainting()
13448
13461
  //JSConsole.Chart.Log(`[IChartFramePainting.DrawBorder] left=${left} `);
13449
13462
  if (this.BorderLine==null)
13450
13463
  {
13451
- this.Canvas.strokeStyle=this.PenBorder;
13452
- this.Canvas.strokeRect(left,top,width,height);
13464
+ if (this.IsDrawRightBorder)
13465
+ {
13466
+ var xRight=ToFixedPoint(border.ChartWidth);
13467
+ this.Canvas.strokeStyle=this.PenBorder;
13468
+ this.Canvas.strokeRect(left,top,xRight-left,height);
13469
+
13470
+ this.Canvas.beginPath();
13471
+ this.Canvas.moveTo(right,top);
13472
+ this.Canvas.lineTo(right,bottom);
13473
+ this.Canvas.stroke();
13474
+ }
13475
+ else
13476
+ {
13477
+ this.Canvas.strokeStyle=this.PenBorder;
13478
+ this.Canvas.strokeRect(left,top,width,height);
13479
+ }
13453
13480
  }
13454
13481
  else if (IFrameSplitOperator.IsPlusNumber(this.BorderLine)) //单独绘制每个边框
13455
13482
  {
@@ -13483,7 +13510,20 @@ function IChartFramePainting()
13483
13510
  this.Canvas.stroke();
13484
13511
  }
13485
13512
 
13486
-
13513
+ /*
13514
+ if (this.IsDrawRightBorder)
13515
+ {
13516
+ var xRight=ToFixedPoint(border.ChartWidth);
13517
+ var xLeft=right;
13518
+ this.Canvas.beginPath();
13519
+ this.Canvas.moveTo(xLeft,top);
13520
+ this.Canvas.lineTo(xRight,top);
13521
+ this.Canvas.lineTo(xRight,bottom);
13522
+ this.Canvas.lineTo(xLeft,bottom);
13523
+
13524
+ this.Canvas.stroke();
13525
+ }
13526
+ */
13487
13527
  }
13488
13528
 
13489
13529
  //画标题背景色
@@ -13728,6 +13768,11 @@ function AverageWidthFrame()
13728
13768
 
13729
13769
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
13730
13770
 
13771
+ //Y轴刻度长线
13772
+ this.YLineExtend; //[0]=左 [1]=右 { Width:5, Color:颜色, }
13773
+ this.YTextExtend; //[0]=左 [1]=右 { Align:0=默认 1=左对齐 2=右对齐 }
13774
+ this.YRightTextInfo;
13775
+
13731
13776
  //画图工具刻度
13732
13777
 
13733
13778
  this.DrawPicture={
@@ -13966,6 +14011,18 @@ function AverageWidthFrame()
13966
14011
  var isDrawLeft=borderLeft>10 && this.IsShowYText[0]===true && this.YTextPosition[0]!=2;
13967
14012
  var isDrawRight=borderRight>10 && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
13968
14013
 
14014
+ var rightExtendLine=null; //右侧延长线
14015
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
14016
+ {
14017
+ rightExtendLine=this.YLineExtend[1];
14018
+ }
14019
+
14020
+ var rightExtendText=null; //右侧文字设置
14021
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend))
14022
+ {
14023
+ rightExtendText=this.YTextExtend[1];
14024
+ }
14025
+
13969
14026
  var yPrev=null; //上一个坐标y的值
13970
14027
  var pixelRatio=GetDevicePixelRatio();
13971
14028
  var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;
@@ -13979,6 +14036,7 @@ function AverageWidthFrame()
13979
14036
  if (y!=null && yPrev!=null && Math.abs(y-yPrev)<this.MinYDistance) continue; //两个坐标在近了 就不画了
13980
14037
 
13981
14038
  var yFixed=ToFixedPoint(y);
14039
+ //绘制刻度线
13982
14040
  if (y!=bottom && this.IsShowYLine)
13983
14041
  {
13984
14042
  var bChangeLineWidth=false;
@@ -14055,7 +14113,7 @@ function AverageWidthFrame()
14055
14113
  textBaseline=1;
14056
14114
  }
14057
14115
 
14058
- //坐标信息 左边 间距小于10 不画坐标
14116
+ //左边 坐标信息 间距小于10 不画坐标
14059
14117
  this.Canvas.strokeStyle=item.TextColor;
14060
14118
  this.Canvas.fillStyle=item.TextColor;
14061
14119
 
@@ -14072,7 +14130,7 @@ function AverageWidthFrame()
14072
14130
  }
14073
14131
  }
14074
14132
 
14075
- //坐标信息 右边 间距小于10 不画坐标
14133
+ //右边 坐标信息 间距小于10 不画坐标
14076
14134
  if (item.Message[1]!=null && isDrawRight)
14077
14135
  {
14078
14136
  if (item.Font!=null) this.Canvas.font=item.Font;
@@ -14089,6 +14147,21 @@ function AverageWidthFrame()
14089
14147
  xText+=lineLength;
14090
14148
  }
14091
14149
 
14150
+ //右侧延长线
14151
+ if (rightExtendLine && rightExtendLine.Width>1)
14152
+ {
14153
+ var lineLength=rightExtendLine.Width;
14154
+ if (rightExtendLine.Color) this.Canvas.strokeStyle=rightExtendLine.Color;
14155
+ else this.Canvas.strokeStyle=item.LineColor;
14156
+ this.Canvas.beginPath();
14157
+ this.Canvas.moveTo(xText,yFixed);
14158
+ this.Canvas.lineTo(xText+lineLength,yFixed);
14159
+ this.Canvas.stroke();
14160
+
14161
+ xText+=lineLength+2;
14162
+ }
14163
+
14164
+
14092
14165
  this.Canvas.textAlign="left";
14093
14166
  if (Array.isArray(item.Message[1]))
14094
14167
  {
@@ -14131,7 +14204,17 @@ function AverageWidthFrame()
14131
14204
  if (!rtPreRight || (rtRight && !this.IsTextTopBottomOverlap(rtRight,rtPreRight)))
14132
14205
  {
14133
14206
  if (item.TextColor2) this.Canvas.fillStyle=item.TextColor2;
14134
- this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText);
14207
+ if (rightExtendText && rightExtendText.Align && this.YRightTextInfo)
14208
+ {
14209
+ this.Canvas.textAlign="right";
14210
+ var xRight=this.YRightTextInfo.MainTextWidth+right-this.YTextPadding[1];
14211
+ this.Canvas.fillText(item.Message[1],xRight,yText);
14212
+ }
14213
+ else
14214
+ {
14215
+ this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText);
14216
+ }
14217
+
14135
14218
  rtPreRight=rtRight;
14136
14219
  }
14137
14220
  }
@@ -14140,7 +14223,33 @@ function AverageWidthFrame()
14140
14223
  yPrev=y;
14141
14224
  }
14142
14225
 
14143
- if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText)
14226
+ if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText);
14227
+
14228
+ if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
14229
+ {
14230
+ var xRight=this.YRightTextInfo.MainTextWidth+right;
14231
+ xLine=ToFixedPoint(xRight);
14232
+ this.Canvas.strokeStyle=this.PenBorder;
14233
+ this.Canvas.beginPath();
14234
+ this.Canvas.moveTo(xLine,top);
14235
+ this.Canvas.lineTo(xLine,bottom);
14236
+ this.Canvas.stroke();
14237
+
14238
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YRightTextInfo.AryOverlayWidth))
14239
+ {
14240
+ this.Canvas.beginPath();
14241
+ for(var i=0;i<this.YRightTextInfo.AryOverlayWidth.length;++i)
14242
+ {
14243
+ var width=this.YRightTextInfo.AryOverlayWidth[i];
14244
+ xRight+=width;
14245
+ xLine=ToFixedPoint(xRight);
14246
+ this.Canvas.moveTo(xLine,top);
14247
+ this.Canvas.lineTo(xLine,bottom);
14248
+ }
14249
+ this.Canvas.stroke();
14250
+
14251
+ }
14252
+ }
14144
14253
  }
14145
14254
 
14146
14255
  //上下区域是否重叠
@@ -14804,7 +14913,9 @@ function AverageWidthFrame()
14804
14913
  {
14805
14914
  var value=this.Canvas.measureText(text[i].Text).width;
14806
14915
  if (value>width) width=value;
14807
- aryText.push({Text:text[i].Text, Width:value+2*pixelTatio});
14916
+ var outItem={ Text:text[i].Text, Width:value+2*pixelTatio };
14917
+ if (item.TextColor) outItem.TextColor=item.TextColor;
14918
+ aryText.push(outItem);
14808
14919
  }
14809
14920
  }
14810
14921
 
@@ -15029,7 +15140,8 @@ function AverageWidthFrame()
15029
15140
  var textLeft=right-itemText.Width;
15030
15141
  this.Canvas.fillStyle=bgColor;
15031
15142
  this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight); //文本背景区域
15032
- this.Canvas.fillStyle = item.TextColor;
15143
+ if (itemText.TextColor) this.Canvas.fillStyle=itemText.TextColor;
15144
+ else this.Canvas.fillStyle = item.TextColor;
15033
15145
  this.Canvas.fillText(itemText.Text, textLeft + 1*pixelTatio, yText);
15034
15146
  if (i==0) this.DrawLine(left,textLeft,yText,item.LineColor,item.LineType,item);
15035
15147
  yText+=textHeight+1*pixelTatio;
@@ -15141,7 +15253,8 @@ function AverageWidthFrame()
15141
15253
  {
15142
15254
  this.Canvas.fillStyle=item.LineColor;
15143
15255
  this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);
15144
- this.Canvas.fillStyle = item.TextColor;
15256
+ if (itemText.TextColor) this.Canvas.fillStyle=itemText.TextColor;
15257
+ else this.Canvas.fillStyle = item.TextColor;
15145
15258
  this.Canvas.fillText(itemText.Text, textLeft + 1*pixelTatio, yText);
15146
15259
  }
15147
15260
 
@@ -18735,8 +18848,13 @@ function OverlayKLineFrame()
18735
18848
  this.Title=null;
18736
18849
  this.TitleColor=g_JSChartResource.OverlayFrame.TitleColor;
18737
18850
  this.TitleFont=g_JSChartResource.OverlayFrame.TitleFont;
18851
+ this.IsShowTitle=true;
18738
18852
 
18739
18853
  this.IsYDrawMainFrame=false; //Y轴自定刻度绘制在主图框架上
18854
+ this.BlankWidth=0;
18855
+ this.Style=0; //0=Y轴在BlankWidth 1=Y轴在左边
18856
+
18857
+ this.YLineExtend=[ { Width:2 }, null]; //[0]=左 [1]=右 { Width:5, Color:颜色, }
18740
18858
 
18741
18859
  this.Buttons=[];
18742
18860
 
@@ -18776,21 +18894,69 @@ function OverlayKLineFrame()
18776
18894
  this.XSplit=false;
18777
18895
  }
18778
18896
 
18897
+
18898
+ //Y轴刻度线 x坐标
18899
+ this.GetXHorizontal=function()
18900
+ {
18901
+ var border=this.ChartBorder.GetBorder();
18902
+ var x=border.Right;
18903
+ x+=this.RightOffset;
18904
+
18905
+ if (this.Style==1)
18906
+ {
18907
+
18908
+ }
18909
+ else
18910
+ {
18911
+ x+=this.BlankWidth;
18912
+ }
18913
+
18914
+ return x;
18915
+ }
18916
+
18917
+ this.GetHorizontalWidth=function()
18918
+ {
18919
+ var width=null;
18920
+ if (this.YRightTextInfo && IFrameSplitOperator.IsNumber(this.TextWidthIndex))
18921
+ width=this.YRightTextInfo.AryOverlayWidth[this.TextWidthIndex];
18922
+
18923
+ return width;
18924
+ }
18925
+
18779
18926
  this.DrawTitle=function() //画标题
18780
18927
  {
18928
+ if (!this.IsShowTitle) return;
18781
18929
  if (!this.Title) return;
18782
18930
  var border=this.ChartBorder.GetBorder();
18783
18931
  var top = this.ChartBorder.GetTopTitle();
18784
18932
  var bottom = border.Bottom;
18785
- var right=border.Right;
18786
- right+=this.RightOffset;
18787
-
18933
+
18934
+ var xText=this.GetXHorizontal();
18935
+ var leftLine=null, rightLine=null;
18936
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
18937
+ {
18938
+ rightLine=this.YLineExtend[1];
18939
+ leftLine=this.YLineExtend[0];
18940
+ }
18941
+
18942
+ if (this.Style==1)
18943
+ {
18944
+ this.Canvas.textBaseline="bottom";
18945
+ if (rightLine && rightLine.Width>0) xText+=rightLine.Width+1;
18946
+ else xText+=1;
18947
+ }
18948
+ else
18949
+ {
18950
+ this.Canvas.textBaseline="top";
18951
+ if (leftLine && leftLine.Width>0) xText-=leftLine.Width;
18952
+ else xText-=2;
18953
+ }
18954
+
18955
+ var yText=top+(bottom-top)/2;
18788
18956
  this.Canvas.fillStyle=this.TitleColor;
18789
18957
  this.Canvas.font=this.TitleFont;
18790
18958
  this.Canvas.textAlign="center";
18791
- this.Canvas.textBaseline="top";
18792
-
18793
- var xText=right-2,yText=top+(bottom-top)/2;
18959
+
18794
18960
  this.Canvas.save();
18795
18961
  this.Canvas.translate(xText, yText);
18796
18962
  this.Canvas.rotate(90 * Math.PI / 180);
@@ -18829,10 +18995,18 @@ function OverlayKLineFrame()
18829
18995
  if (item.Font!=null) this.Canvas.font=item.Font;
18830
18996
 
18831
18997
  textWidth=this.Canvas.measureText(item.Message[1]).width;
18998
+ if (this.YTextPadding && IFrameSplitOperator.IsNumber(this.YTextPadding[1]))
18999
+ textWidth+=this.YTextPadding[1];
18832
19000
  if (width.Right<textWidth) width.Right=textWidth;
18833
19001
  }
18834
19002
  }
18835
19003
 
19004
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
19005
+ {
19006
+ var line=this.YLineExtend[1];
19007
+ if (line && line.Width>0) width.Right+=line.Width;
19008
+ }
19009
+
18836
19010
  return { TextWidth:width };
18837
19011
  }
18838
19012
 
@@ -18872,7 +19046,23 @@ function OverlayKLineFrame()
18872
19046
  var top = this.ChartBorder.GetTopTitle();
18873
19047
  var borderRight=this.ChartBorder.Right;
18874
19048
  right+=this.RightOffset;
19049
+ var xLine=this.GetXHorizontal();
19050
+ if (IFrameSplitOperator.IsNumber(this.BlankWidth)) right+=this.BlankWidth;
18875
19051
 
19052
+ var rightExtendText=null; //右侧文字设置
19053
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend))
19054
+ {
19055
+ rightExtendText=this.YTextExtend[1];
19056
+ }
19057
+
19058
+ var leftLine=null, rightLine=null;
19059
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
19060
+ {
19061
+ rightLine=this.YLineExtend[1];
19062
+ leftLine=this.YLineExtend[0];
19063
+ }
19064
+
19065
+ var rightWidth=this.GetHorizontalWidth(); //右侧宽度
18876
19066
  var yPrev=null; //上一个坐标y的值
18877
19067
  for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
18878
19068
  {
@@ -18884,11 +19074,24 @@ function OverlayKLineFrame()
18884
19074
  else if (y <= top + 2) this.Canvas.textBaseline = 'top';
18885
19075
  else this.Canvas.textBaseline = "middle";
18886
19076
 
18887
- this.Canvas.strokeStyle=this.PenBorder;
18888
- this.Canvas.beginPath();
18889
- this.Canvas.moveTo(right-2,ToFixedPoint(y));
18890
- this.Canvas.lineTo(right,ToFixedPoint(y));
18891
- this.Canvas.stroke();
19077
+
19078
+ if (leftLine && leftLine.Width>0) //左边
19079
+ {
19080
+ this.Canvas.strokeStyle=this.PenBorder;
19081
+ this.Canvas.beginPath();
19082
+ this.Canvas.moveTo(xLine-leftLine.Width,ToFixedPoint(y));
19083
+ this.Canvas.lineTo(xLine,ToFixedPoint(y));
19084
+ this.Canvas.stroke();
19085
+ }
19086
+
19087
+ if (rightLine && rightLine.Width>0)
19088
+ {
19089
+ this.Canvas.strokeStyle=this.PenBorder;
19090
+ this.Canvas.beginPath();
19091
+ this.Canvas.moveTo(xLine+rightLine.Width,ToFixedPoint(y));
19092
+ this.Canvas.lineTo(xLine,ToFixedPoint(y));
19093
+ this.Canvas.stroke();
19094
+ }
18892
19095
 
18893
19096
  //坐标信息 右边 间距小于10 不画坐标
18894
19097
  if (item.Message[1]!=null && borderRight>10)
@@ -18897,10 +19100,22 @@ function OverlayKLineFrame()
18897
19100
 
18898
19101
  var text=item.Message[1];
18899
19102
  if (Array.isArray(item.Message[1])) text=item.Message[1][0];
18900
-
18901
- this.Canvas.fillStyle=item.TextColor;
18902
- this.Canvas.textAlign="left";
18903
- this.Canvas.fillText(text,right+2,y);
19103
+
19104
+ if (rightExtendText && rightExtendText.Align)
19105
+ {
19106
+ var textWidth=rightWidth;
19107
+ this.Canvas.textAlign="right";
19108
+ var xRight=border.Right+this.RightOffset+textWidth-this.YTextPadding[1];
19109
+ this.Canvas.fillText(text,xRight,y);
19110
+ }
19111
+ else
19112
+ {
19113
+ var xText=right+2;
19114
+ if (rightLine && rightLine.Width>0) xText+=rightLine.Width;
19115
+ this.Canvas.fillStyle=item.TextColor;
19116
+ this.Canvas.textAlign="left";
19117
+ this.Canvas.fillText(text,xText,y);
19118
+ }
18904
19119
  }
18905
19120
 
18906
19121
  yPrev=y;
@@ -18912,10 +19127,8 @@ function OverlayKLineFrame()
18912
19127
  {
18913
19128
  var border=this.ChartBorder.GetBorder();
18914
19129
  var top=border.TopEx;
18915
- //var left=this.ChartBorder.GetLeft();
18916
- var right=border.Right;
18917
19130
  var bottom=border.BottomEx;
18918
- right+=this.RightOffset;
19131
+ var right=this.GetXHorizontal();
18919
19132
 
18920
19133
  this.Canvas.strokeStyle=this.PenBorder;
18921
19134
  this.Canvas.beginPath();
@@ -18961,14 +19174,15 @@ function OverlayKLineFrame()
18961
19174
 
18962
19175
  var border=this.ChartBorder.GetBorder();
18963
19176
  var yButton=border.Top+this.ChartBorder.TitleHeight/2;
18964
- var xBotton=border.Right+this.RightOffset+this.CloseButton.MerginLeft;
19177
+ var rightWidth=this.GetHorizontalWidth();
19178
+ var xBotton=border.Right+this.RightOffset+rightWidth-this.CloseButton.MerginLeft;
18965
19179
 
18966
- for(var i=0;i<aryButton.length;++i)
19180
+ for(var i=aryButton.length-1;i>=0;--i)
18967
19181
  {
18968
19182
  var item=aryButton[i];
18969
19183
  var size=item.Style.Size;
18970
19184
  var font=`${size}px ${item.Style.Family}`;
18971
- var rtButton={ Left:xBotton, Top:yButton-size/2, Right:xBotton+size+item.Style.MerginLeft, Bottom:yButton+size/2, Width:size+item.Style.MerginLeft, Height:size };
19185
+ var rtButton={ Left:xBotton-size-item.Style.MerginLeft, Top:yButton-size/2, Right:xBotton, Bottom:yButton+size/2, Width:size+item.Style.MerginLeft, Height:size };
18972
19186
  var color=this.CloseButton.Color;
18973
19187
  if (moveonPoint && (moveonPoint.X>=rtButton.Left && moveonPoint.X<rtButton.Right && moveonPoint.Y>=rtButton.Top && moveonPoint.Y<=rtButton.Bottom))
18974
19188
  {
@@ -18979,13 +19193,13 @@ function OverlayKLineFrame()
18979
19193
 
18980
19194
  this.Canvas.fillStyle=color;
18981
19195
  this.Canvas.font=font;
18982
- this.Canvas.textAlign="left";
19196
+ this.Canvas.textAlign="right";
18983
19197
  this.Canvas.textBaseline="middle";
18984
19198
  this.Canvas.fillText(item.Style.Text, xBotton, yButton);
18985
19199
 
18986
19200
  this.Buttons.push({ ID:item.ID, Rect:rtButton });
18987
19201
 
18988
- xBotton=rtButton.Right;
19202
+ xBotton=rtButton.Left;
18989
19203
  }
18990
19204
  }
18991
19205
 
@@ -20062,7 +20276,7 @@ function SubFrameItem()
20062
20276
  this.Frame;
20063
20277
  this.Height;
20064
20278
  this.OverlayIndex=[]; //叠加指标
20065
- this.Interval=60; //子坐标间间距
20279
+ //this.Interval=60; //子坐标间间距
20066
20280
  }
20067
20281
 
20068
20282
  function OverlayIndexItem()
@@ -20130,8 +20344,11 @@ function HQTradeFrame()
20130
20344
 
20131
20345
  this.AutoLeftBorder=null; //{ Blank:10 留白宽度, MinWidth:最小宽度 }
20132
20346
  this.AutoRightBorder=null; //{ Blank:10 留白宽度, MinWidth:最小宽度 }
20133
- this.OverlayBlankWidth=40;
20134
- this.AuotRightWidth; //右边主坐标刻度宽度
20347
+ this.OverlayBlankWidth=30;
20348
+ this.AuotRightWidth; //右边主坐标刻度宽度 (自动模式)
20349
+
20350
+ //固定模式右侧宽度
20351
+ this.FixedRightWidth={ Main:60, Overlay:80 };
20135
20352
 
20136
20353
  this.ZoomWindowsInfo=null; //附图指标缩放,备份信息
20137
20354
  this.ZoomStartWindowIndex=1; //允许缩放窗口起始位置
@@ -20640,7 +20857,7 @@ function HQTradeFrame()
20640
20857
 
20641
20858
  overlayItem.Frame.YSplitOperator.Operator();
20642
20859
  var value=overlayItem.Frame.GetScaleTextWidth();
20643
-
20860
+
20644
20861
  overlayItem.Frame.HorizontalMax=maxValue;
20645
20862
  overlayItem.Frame.HorizontalMin=minValue;
20646
20863
 
@@ -20697,6 +20914,8 @@ function HQTradeFrame()
20697
20914
  width.OverlayRight+=value;
20698
20915
  }
20699
20916
 
20917
+ width.AryOverlayWidth=overlayWidth;
20918
+
20700
20919
  return width;
20701
20920
  }
20702
20921
 
@@ -20751,59 +20970,104 @@ function HQTradeFrame()
20751
20970
  }
20752
20971
  }
20753
20972
 
20754
- if (IFrameSplitOperator.IsNumber(textWidth.Right) && this.AutoRightBorder)
20973
+ if (IFrameSplitOperator.IsNumber(textWidth.Right))
20755
20974
  {
20756
- var blank=0;
20757
- if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.Blank)) blank=this.AutoRightBorder.Blank;
20758
- var value=textWidth.Right+blank;
20759
- if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.MinWidth))
20975
+ if (this.AutoRightBorder) //自动调整右侧间距
20760
20976
  {
20761
- if (this.AutoRightBorder.MinWidth>value) value=this.AutoRightBorder.MinWidth;
20762
- }
20977
+ var rightTextInfo={ };
20978
+ var blank=0;
20979
+ if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.Blank)) blank=this.AutoRightBorder.Blank;
20980
+ var value=textWidth.Right+blank;
20981
+ if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.MinWidth))
20982
+ {
20983
+ if (this.AutoRightBorder.MinWidth>value) value=this.AutoRightBorder.MinWidth;
20984
+ }
20763
20985
 
20764
- this.AuotRightWidth=value;
20765
- if (IFrameSplitOperator.IsPlusNumber(textWidth.OverlayRight))
20766
- {
20767
- value+=this.OverlayBlankWidth;
20768
20986
  this.AuotRightWidth=value;
20769
- value+=textWidth.OverlayRight;
20770
- }
20987
+ rightTextInfo.MainTextWidth=value; //主图坐标宽度
20988
+ if (IFrameSplitOperator.IsNonEmptyArray(textWidth.AryOverlayWidth)) rightTextInfo.AryOverlayWidth=textWidth.AryOverlayWidth;
20771
20989
 
20772
- if (this.GetExtendChartRightWidth)
20773
- {
20774
- var extendWidth=this.GetExtendChartRightWidth();
20990
+ if (IFrameSplitOperator.IsPlusNumber(textWidth.OverlayRight))
20991
+ {
20992
+ this.AuotRightWidth=value;
20993
+ value+=textWidth.OverlayRight;
20994
+ }
20775
20995
 
20776
- if (this.GetExtendChartByClassName)
20996
+ if (this.GetExtendChartRightWidth)
20777
20997
  {
20778
- var finder=this.GetExtendChartByClassName("StockChip");
20779
- if (finder && finder.Chart)
20998
+ var extendWidth=this.GetExtendChartRightWidth();
20999
+
21000
+ if (this.GetExtendChartByClassName)
20780
21001
  {
20781
- finder.Chart.Left=value;
21002
+ var finder=this.GetExtendChartByClassName("StockChip");
21003
+ if (finder && finder.Chart)
21004
+ {
21005
+ finder.Chart.Left=value;
21006
+ }
20782
21007
  }
21008
+
21009
+ value+=extendWidth;
20783
21010
  }
20784
21011
 
20785
- value+=extendWidth;
20786
- }
21012
+ if (this.IsHScreen)
21013
+ {
21014
+ if (this.ChartBorder.Bottom!=value) bSizeChange=true;
21015
+ this.ChartBorder.Bottom=value;
21016
+ }
21017
+ else
21018
+ {
21019
+ if (this.ChartBorder.Right!=value) bSizeChange=true;
21020
+ this.ChartBorder.Right=value;
21021
+ }
20787
21022
 
20788
- if (this.IsHScreen)
20789
- {
20790
- if (this.ChartBorder.Bottom!=value) bSizeChange=true;
20791
- this.ChartBorder.Bottom=value;
21023
+ for(var i=0; i<this.SubFrame.length; ++i)
21024
+ {
21025
+ var item=this.SubFrame[i];
21026
+ if (this.IsHScreen) item.Frame.ChartBorder.Bottom=value;
21027
+ else item.Frame.ChartBorder.Right=value;
21028
+
21029
+ item.Frame.ReDrawToolbar=true;
21030
+ item.Frame.YRightTextInfo=rightTextInfo;
21031
+
21032
+ for(var j=0;j<item.OverlayIndex.length;++j)
21033
+ {
21034
+ var overlayItem=item.OverlayIndex[j];
21035
+ overlayItem.Frame.YRightTextInfo=rightTextInfo;
21036
+ }
21037
+ }
20792
21038
  }
20793
- else
21039
+ else
20794
21040
  {
20795
- if (this.ChartBorder.Right!=value) bSizeChange=true;
20796
- this.ChartBorder.Right=value;
20797
- }
21041
+ var rightTextInfo={ };
21042
+ rightTextInfo.MainTextWidth=this.FixedRightWidth.Main;
21043
+ if (textWidth.OverlayRight==0) //无叠加直接最右边
21044
+ {
21045
+ if (this.IsHScreen)
21046
+ rightTextInfo.MainTextWidth=this.ChartBorder.Bottom;
21047
+ else
21048
+ rightTextInfo.MainTextWidth=this.ChartBorder.Right;
21049
+ }
21050
+ else if (IFrameSplitOperator.IsNonEmptyArray(textWidth.AryOverlayWidth))
21051
+ {
21052
+ for(var i=0;i<textWidth.AryOverlayWidth.length;++i)
21053
+ textWidth.AryOverlayWidth[i]=this.FixedRightWidth.Overlay;
20798
21054
 
20799
- for(var i=0; i<this.SubFrame.length; ++i)
20800
- {
20801
- var item=this.SubFrame[i];
20802
- if (this.IsHScreen) item.Frame.ChartBorder.Bottom=value;
20803
- else item.Frame.ChartBorder.Right=value;
21055
+ rightTextInfo.AryOverlayWidth=textWidth.AryOverlayWidth;
21056
+ }
20804
21057
 
20805
- item.Frame.ReDrawToolbar=true;
20806
- item.Interval=this.AuotRightWidth;
21058
+ for(var i=0; i<this.SubFrame.length; ++i)
21059
+ {
21060
+ var item=this.SubFrame[i];
21061
+
21062
+ item.Frame.ReDrawToolbar=true;
21063
+ item.Frame.YRightTextInfo=rightTextInfo;
21064
+
21065
+ for(var j=0;j<item.OverlayIndex.length;++j)
21066
+ {
21067
+ var overlayItem=item.OverlayIndex[j];
21068
+ overlayItem.Frame.YRightTextInfo=rightTextInfo;
21069
+ }
21070
+ }
20807
21071
  }
20808
21072
  }
20809
21073
 
@@ -20821,39 +21085,47 @@ function HQTradeFrame()
20821
21085
  {
20822
21086
  var rightOffset=this.AuotRightWidth;
20823
21087
 
20824
- for(var j=0; j<item.OverlayIndex.length; ++j)
21088
+ for(var j=0, index=0; j<item.OverlayIndex.length; ++j)
20825
21089
  {
20826
21090
  var overlayItem=item.OverlayIndex[j];
20827
21091
  //把主坐标部分设置给子坐标下来
20828
21092
  overlayItem.Frame.DataWidth=item.Frame.DataWidth;
20829
21093
  overlayItem.Frame.DistanceWidth=item.Frame.DistanceWidth;
20830
21094
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
20831
- if (overlayItem.ChartPaint.length>0 && overlayItem.Frame)
20832
- {
20833
- overlayItem.Frame.RightOffset=rightOffset;
20834
- overlayItem.Frame.Draw();
20835
- rightOffset+=overlayItem.RightWidth.Width;
20836
- }
21095
+ overlayItem.Frame.RightOffset=rightOffset;
21096
+ overlayItem.Frame.BlankWidth=0;
21097
+ overlayItem.Frame.TextWidthIndex=index;
21098
+ if (IFrameSplitOperator.IsNumber(this.OverlayBlankWidth)) overlayItem.Frame.BlankWidth=this.OverlayBlankWidth;
21099
+
21100
+ overlayItem.Frame.Draw();
21101
+ rightOffset+=overlayItem.RightWidth.Width;
21102
+ if (overlayItem.Frame.IsShow) ++index;
20837
21103
  }
20838
-
20839
21104
  }
20840
21105
  else
20841
21106
  {
20842
- var rightOffset=item.Interval;
21107
+ var rightOffset=this.FixedRightWidth.Main;
20843
21108
  if (item.Frame.RightTextMaxWidth>rightOffset) rightOffset=item.Frame.RightTextMaxWidth;
20844
- for(var j in item.OverlayIndex)
21109
+
21110
+ for(var j =0, index=0; j<item.OverlayIndex.length;++j)
20845
21111
  {
20846
21112
  var overlayItem=item.OverlayIndex[j];
20847
21113
  //把主坐标部分设置给子坐标下来
20848
21114
  overlayItem.Frame.DataWidth=item.Frame.DataWidth;
20849
21115
  overlayItem.Frame.DistanceWidth=item.Frame.DistanceWidth;
20850
21116
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
20851
- if (overlayItem.ChartPaint.length>0 && overlayItem.Frame)
21117
+ overlayItem.Frame.RightOffset=rightOffset;
21118
+ overlayItem.Frame.BlankWidth=0;
21119
+ overlayItem.Frame.TextWidthIndex=index;
21120
+ if (IFrameSplitOperator.IsNumber(this.OverlayBlankWidth)) overlayItem.Frame.BlankWidth=this.OverlayBlankWidth;
21121
+
21122
+ overlayItem.Frame.Draw();
21123
+ if (overlayItem.Frame.IsShow)
20852
21124
  {
20853
- overlayItem.Frame.RightOffset=rightOffset;
20854
- overlayItem.Frame.Draw();
20855
- if (overlayItem.Frame.IsShow) rightOffset+=item.Interval;
21125
+ rightOffset+=this.FixedRightWidth.Overlay;
21126
+ ++index;
20856
21127
  }
21128
+
20857
21129
  }
20858
21130
  }
20859
21131
  }
@@ -21060,6 +21332,7 @@ function HQTradeFrame()
21060
21332
  {
21061
21333
  var overlayItem=item.OverlayIndex[j];
21062
21334
  var overlayFrame=overlayItem.Frame;
21335
+ if (!overlayFrame.IsShow) continue;
21063
21336
  if (overlayFrame.DrawToolbar) overlayFrame.DrawToolbar(moveonPoint, frame.IsMinSize, mouseStatus);
21064
21337
  }
21065
21338
  }
@@ -50545,36 +50818,35 @@ function ChartCorssCursor()
50545
50818
  if (yValueExtend.FrameID>=0)
50546
50819
  {
50547
50820
  var frame=this.Frame.SubFrame[yValueExtend.FrameID];
50548
- var isAutoRightBorder=false;
50549
- if (this.Frame.AutoRightBorder) isAutoRightBorder=true;
50550
50821
  var overlayLeft=right;
50551
- if (isAutoRightBorder) overlayLeft=right+this.Frame.AuotRightWidth;
50552
50822
  this.Canvas.font=this.Font;
50553
- for(var i in frame.OverlayIndex)
50823
+ for(var i=0; i<frame.OverlayIndex.length; ++i)
50554
50824
  {
50555
50825
  var item=frame.OverlayIndex[i];
50556
50826
  if (item.Frame.IsShow===false) continue;
50557
50827
 
50558
- if (!isAutoRightBorder) overlayLeft+=frame.Interval;
50828
+ overlayLeft=item.Frame.GetXHorizontal();
50559
50829
 
50560
- if (overlayLeft+30>chartRight) break;
50830
+ //if (overlayLeft+30>chartRight) break;
50561
50831
  var yValue=item.Frame.GetYData(y);
50562
-
50563
- for(var i=2;i>=0;--i)
50832
+ var text=IFrameSplitOperator.FormatValueString(yValue,2);
50833
+ var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
50834
+
50835
+ /*
50836
+ for(var j=2;j>=0;--j)
50564
50837
  {
50565
- var text=IFrameSplitOperator.FormatValueString(yValue,i);
50838
+ var text=IFrameSplitOperator.FormatValueString(yValue,j);
50566
50839
  var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
50567
50840
  if (textWidth<frame.Interval) break;
50568
50841
  }
50842
+ */
50569
50843
 
50570
50844
  this.Canvas.fillStyle=this.TextBGColor;
50571
- this.Canvas.fillRect(overlayLeft+2,y-this.TextHeight/2,textWidth,this.TextHeight);
50845
+ this.Canvas.fillRect(overlayLeft+1,y-this.TextHeight/2,textWidth,this.TextHeight);
50572
50846
  this.Canvas.textAlign="left";
50573
50847
  this.Canvas.textBaseline="middle";
50574
50848
  this.Canvas.fillStyle=this.TextColor;
50575
50849
  this.Canvas.fillText(text,overlayLeft+4,y,textWidth);
50576
-
50577
- if (isAutoRightBorder) overlayLeft+=item.RightWidth.Width;
50578
50850
  }
50579
50851
  }
50580
50852
 
@@ -66631,6 +66903,14 @@ function JSChartResource()
66631
66903
  if (item.EmptyBGColor) this.FrameLatestPrice.EmptyBGColor = item.EmptyBGColor;
66632
66904
  }
66633
66905
 
66906
+ if (style.OverlayFrame)
66907
+ {
66908
+ var item=style.OverlayFrame;
66909
+ if (style.OverlayFrame.BolderPen) this.OverlayFrame.BolderPen = style.OverlayFrame.BolderPen;
66910
+ if (style.OverlayFrame.TitleColor) this.OverlayFrame.TitleColor = style.OverlayFrame.TitleColor;
66911
+ if (style.OverlayFrame.TitleFont) this.OverlayFrame.TitleFont = style.OverlayFrame.TitleFont;
66912
+ }
66913
+
66634
66914
  if (style.CorssCursorBGColor) this.CorssCursorBGColor = style.CorssCursorBGColor;
66635
66915
  if (style.CorssCursorTextColor) this.CorssCursorTextColor = style.CorssCursorTextColor;
66636
66916
  if (style.CorssCursorTextFont) this.CorssCursorTextFont = style.CorssCursorTextFont;
@@ -68918,7 +69198,6 @@ function KLineChartContainer(uielement,OffscreenElement)
68918
69198
  this.CtrlMoveStep=5; //Ctrl+(Left/Right) 移动数据个数
68919
69199
 
68920
69200
  this.CustomShow=null; //首先显示的K线的起始日期 { Date:日期 PageSize:}
68921
- this.OverlayIndexFrameWidth=60; //叠加指标框架宽度
68922
69201
  this.ZoomType=0; //缩放模式 0=最右边固定缩放, 1=十字光标两边缩放
68923
69202
  this.IsZoomLockRight=false;
68924
69203
  this.KLineSize=null; //{ DataWidth:, }
@@ -72529,10 +72808,10 @@ function KLineChartContainer(uielement,OffscreenElement)
72529
72808
  }
72530
72809
 
72531
72810
  var subFrame=this.Frame.SubFrame[windowIndex];
72532
- subFrame.Interval=this.OverlayIndexFrameWidth;
72533
72811
  var overlayFrame=new OverlayIndexItem();
72534
72812
  if (obj.Identify) overlayFrame.Identify=obj.Identify; //由外部指定id
72535
- var frame= this.ClassName==='KLineChartHScreenContainer' ? new OverlayKLineHScreenFrame() : new OverlayKLineFrame();
72813
+ //var frame= this.ClassName==='KLineChartHScreenContainer' ? new OverlayKLineHScreenFrame() : new OverlayKLineFrame();
72814
+ var frame=this.CreateOverlayFrame();
72536
72815
  frame.Canvas=this.Canvas;
72537
72816
  frame.MainFrame=subFrame.Frame;
72538
72817
  frame.ChartBorder=subFrame.Frame.ChartBorder;
@@ -72561,11 +72840,18 @@ function KLineChartContainer(uielement,OffscreenElement)
72561
72840
  var item=obj.Frame;
72562
72841
  if (item.Custom) frame.YSplitOperator.Custom=item.Custom;
72563
72842
  if (IFrameSplitOperator.IsBool(item.IsYDrawMainFrame)) frame.IsYDrawMainFrame=item.IsYDrawMainFrame; //自定义刻度绘制在主图上
72564
- if (IFrameSplitOperator.IsBool(item.IsShowToolbar)) frame.IsShowToolbar=item.IsShowToolbar; //自定义刻度绘制在主图上
72843
+ if (IFrameSplitOperator.IsBool(item.IsShowToolbar)) frame.IsShowToolbar=item.IsShowToolbar; //是否显示工具栏
72565
72844
  }
72566
72845
 
72567
72846
  overlayFrame.Frame=frame;
72568
72847
 
72848
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_OVERLAY_FRAME);
72849
+ if (event && event.Callback)
72850
+ {
72851
+ var sendData={ OverlayFrame:overlayFrame, WindowIndex:windowIndex, SubFrame:subFrame };
72852
+ event.Callback(event, sendData, this);
72853
+ }
72854
+
72569
72855
  if (apiItem)
72570
72856
  {
72571
72857
  var apiIndex=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,obj, true);
@@ -80372,7 +80658,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80372
80658
  }
80373
80659
 
80374
80660
  var subFrame=this.Frame.SubFrame[windowIndex];
80375
- subFrame.Interval=this.OverlayIndexFrameWidth;
80376
80661
  var overlayFrame=new OverlayIndexItem();
80377
80662
  if (obj.Identify) overlayFrame.Identify=obj.Identify; //由外部指定id
80378
80663
  var frame=null;
@@ -115922,12 +116207,14 @@ function OverlayScriptIndex(name,script,args,option)
115922
116207
  var titleIndex=windowIndex+1;
115923
116208
  var titlePaint=hqChart.TitlePaint[titleIndex];
115924
116209
  titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);
115925
- this.OverlayIndex.Frame.Frame.Title=titleInfo.Title; //给子框架设置标题
116210
+
115926
116211
  if (this.OutName && this.OutName.length>0 && this.Arguments && this.Arguments.length>0)
115927
116212
  {
115928
116213
  titlePaint.SetDynamicTitle(this.OutName,this.Arguments, this.OverlayIndex.Identify);
115929
116214
  }
115930
116215
 
116216
+ this.OverlayIndex.Frame.Frame.Title=this.Name; //给子框架设置标题
116217
+
115931
116218
  for(var i=0; i<this.OutVar.length; ++i)
115932
116219
  {
115933
116220
  let item=this.OutVar[i];
@@ -119798,10 +120085,10 @@ function GetBlackStyle()
119798
120085
  PositionColor:"rgb(101,104,112)" //持仓
119799
120086
  },
119800
120087
 
119801
- FrameBorderPen: "rgba(236,236,236,0.13)", //边框
120088
+ FrameBorderPen: "rgb(47,51,62)", //边框
119802
120089
  MultiDayBorderPen:"rgba(236,236,236,0.5)",
119803
120090
  FrameSplitPen: "rgba(236,236,236,0.13)", //分割线
119804
- FrameSplitTextColor: "rgb(101,104,112)", //刻度文字颜色
120091
+ FrameSplitTextColor: "rgb(220,220,220)", //刻度文字颜色
119805
120092
  FrameSplitTextFont: 12*GetDevicePixelRatio() +"px 微软雅黑", //坐标刻度文字字体
119806
120093
  FrameTitleBGColor: "rgb(0,0,0)", //标题栏背景色
119807
120094
  OverlayIndexTitleBGColor:'rgba(0,0,0,0.7)', //叠加指标背景色
@@ -119817,8 +120104,15 @@ function GetBlackStyle()
119817
120104
  SplitColor:"rgb(101,104,112)",
119818
120105
  Font:14*GetDevicePixelRatio() +"px 微软雅黑"
119819
120106
  }
119820
- },
119821
-
120107
+ },
120108
+
120109
+ //叠加指标框架
120110
+ OverlayFrame:
120111
+ {
120112
+ BolderPen:'rgb(130,130,130)', //指标边框线
120113
+ TitleColor:'rgb(181,181,181)', //指标名字颜色
120114
+ TitleFont:11*GetDevicePixelRatio() +'px arial', //指标名字字体
120115
+ },
119822
120116
 
119823
120117
  FrameLatestPrice : {
119824
120118
  TextColor:'rgb(255,255,255)', //最新价格文字颜色
@@ -130574,7 +130868,7 @@ function ScrollBarBGChart()
130574
130868
 
130575
130869
 
130576
130870
 
130577
- var HQCHART_VERSION="1.1.12686";
130871
+ var HQCHART_VERSION="1.1.12692";
130578
130872
 
130579
130873
  function PrintHQChartVersion()
130580
130874
  {