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
@@ -1,1904 +0,0 @@
1
- <template>
2
- <div class="stockkline" ref='stockkline' :class='{blackStyle: isBlackStyle}'>
3
- <!-- 周期工具条 !-->
4
- <div class='periodbar' ref='divperiodbar'>
5
- <div class="preiod">
6
- <a class="item" v-for='(navItem,idx) in PeriodBar.Menu' :key='idx' :class='PeriodBar.Selected == idx ? "active":""'
7
- href="javascript:;" @click='OnClickPeriodMenu(idx,$event)'>{{navItem}}</a>
8
- </div>
9
- <div class="catchImg" @click='GetChartImg'><i class="iconfont icon-camera"></i></div>
10
- </div>
11
-
12
- <!-- 图形操作工具条 !-->
13
- <div class='chartbar' ref='divchartbar' id='chartbar'>
14
- <!-- 分时图设置导航条 -->
15
- <div id='barForMinute' class='menuWrap' v-show="Minute.IsShow">
16
- <div class="item" v-for='(menuOne,index) in Minute.Toolbar.Data' :key='menuOne.Text' @click="OnClickToolBar('minute',menuOne,index)">
17
- <p class="menuOne" :class='{light:Minute.Toolbar.Selected == index}' v-show='menuOne.IsShow'>
18
- <span>{{menuOne.Text}}</span>
19
- <i class="iconfont" :class='Minute.Toolbar.Selected == index ? "icon-shang" : "icon-xia"'></i>
20
- </p>
21
- <ul class="menuTwo" v-show='Minute.Toolbar.Selected == index ? true:false'>
22
- <li v-for='(menuItem,ind) in menuOne.Menu' :class='{active:menuOne.Selected.indexOf(ind)>=0}' :key='ind'
23
- @click.stop="OnClickToolBarMenu('minute',menuOne,menuItem,ind)">{{menuItem.Name}}</li>
24
- </ul>
25
- </div>
26
- </div>
27
-
28
- <!-- k线设置导航条 -->
29
- <div id='barForKLine' class='menuWrap' v-show="KLine.IsShow">
30
- <div v-bind:class="[menuOne.IsShow==true? 'item':'hide_item']" v-for='(menuOne,index) in KLine.Toolbar.Data' :key='menuOne.Text' v-show="KLineItemShow[index]" @click="OnClickToolBar('kline',menuOne,index)" >
31
- <p class="menuOne" :class='{light:KLine.Toolbar.Selected == index}' v-show='menuOne.IsShow'>
32
- <span>{{menuOne.Text}}</span>
33
- <i class='iconfont' :class='KLine.Toolbar.Selected == index ? "icon-shang" : "icon-xia"'></i>
34
- </p>
35
- <ul class="menuTwo" v-show='KLine.Toolbar.Selected == index ? true:false'>
36
- <li v-for='(menuItem,ind) in menuOne.Menu' :class='{active:menuOne.Selected.indexOf(ind)>=0}' :key='ind'
37
- @click.stop="OnClickToolBarMenu('kline',menuOne,menuItem,ind)">{{menuItem.Name}}</li>
38
- </ul>
39
- </div>
40
- </div>
41
-
42
- </div>
43
- <div class="brushTool" v-if="DrawTool.IsShow">
44
- <Stockdrawtool ref='stockdrawtool' @CurrentIcon = "CurrentIcon" @IsShowBrushTool="isShowBrushTool" :topheight="topheight" :totalheight="totalheight"></Stockdrawtool>
45
- </div>
46
- <!-- 走势图 和 K线图 !-->
47
- <div class='divchart' :id='ID' ref='divchart' style="width:100%;height:100%">
48
- <div class='minute' id="minute" ref="minute" v-show="Minute.IsShow"></div>
49
- <div class='kline' id="kline" ref='kline' v-show="KLine.IsShow"></div>
50
- <div class="bottomToolForChart" v-show="KLine.IsShow">
51
- <span ref='smallBtn' class='iconBg' :class='{iconDisabled:StatusBtn.SmallDisabled}' title='缩小' @click="OnClickKLineToolbar({ID:3})"><i class='iconfont icon-sub'></i></span>
52
- <span ref='bigBtn' class='iconBg' title='放大' :class='{iconDisabled:StatusBtn.BigDisabled}' @click="OnClickKLineToolbar({ID:4})"><i class='iconfont icon-add'></i></span>
53
- <span ref='leftFiveBtn' class='iconBg' title='向左移动5个数据' :class='{iconDisabled:StatusBtn.LeftDisabled}' @mouseup="OnMouseUpKLineToolbar()" @mousedown="OnMouseDownKLineToolbar({ID:1, Step:5})" ><i class='iconfont icon-menu_arraw_left'></i></span>
54
- <span ref='leftBtn' class='iconBg' title='向左移动1个数据' :class='{iconDisabled:StatusBtn.LeftDisabled}' @mouseup="ClearMoveInterval({ID:1, Step:1})" @mousedown="ContinuedMoveChart({ID:1, Step:1})" ><i class='iconfont icon-left'></i></span>
55
- <span ref='rightBtn' class='iconBg' title='向右移动1个数据' :class='{iconDisabled:StatusBtn.RightDisabled}' @mouseup="ClearMoveInterval({ID:2, Step:1})" @mousedown="ContinuedMoveChart({ID:2, Step:1})"><i class='iconfont icon-right'></i></span>
56
- <span ref='rightFiveBtn' class='iconBg' title='向右移动5个数据' :class='{iconDisabled:StatusBtn.RightDisabled}' @mouseup="OnMouseUpKLineToolbar()" @mousedown="OnMouseDownKLineToolbar({ID:2, Step:5})"><i class='iconfont icon-menu_arraw_right'></i></span>
57
- <span class='iconBg' title='返回第一页' @click="OnClickKLineToolbar({ID:5})"><i class='iconfont icon-refresh'></i></span>
58
- </div>
59
- </div>
60
-
61
- <!-- 底部指标工具条 !-->
62
- <div class="indexbar" v-show='Minute.IsShow' ref='minuteindexbar'>
63
- <span v-for='(item,index) in Minute.IndexBar.Menu' :key='index' :class='{active:Minute.IndexBar.Selected.indexOf(index)>=0}'
64
- @click="OnClickIndexBar('minute',item,index)">{{item}}</span>
65
- </div>
66
- <div class="indexbar" v-show='KLine.IsShow' ref='klineindexbar'>
67
- <span v-for='(item,index) in KLine.IndexBar.Menu' :key='index' :class='{active:KLine.IndexBar.Selected.indexOf(index)>=0}'
68
- @click="OnClickIndexBar('kline',item,index)">{{item}}</span>
69
- </div>
70
- <!-- 图片保存对话框 -->
71
- <div class="dialogMask" v-show='ShowDialog'>
72
- <div class="dialogWrap">
73
- <div class="titleWrap">
74
- <div class="titleText">图片url</div>
75
- <div class="closeBtnWrap" @click='HideImageLoadDialog'><i class='iconfont icon-close'></i></div>
76
- </div>
77
- <div class="contentWrap">
78
- <div class="inputBox"><input id='imageLoadInput' type="text" v-model='ImageLodeUrl'><button class="copyBtn" @click='CopyUrl' type="button">复制</button></div>
79
- </div>
80
- <div class="btnWrap"><button class='okBtn' @click='SaveImage' type="button">保存图片</button></div>
81
- </div>
82
- </div>
83
-
84
- </div>
85
- </template>
86
-
87
- <script type="text/javascript">
88
-
89
- import $ from 'jquery'
90
- import JSCommon from '../umychart.vue/umychart.vue.js'
91
- import '../../jscommon/umychart.resource/font/iconfont.css'
92
- import '../../jscommon/umychart.resource/css/tools.css'
93
- import Stockdrawtool from './stockdrawtool.vue'
94
-
95
- function DefaultData()
96
- {
97
-
98
- }
99
-
100
- //分钟数据默认配置
101
- DefaultData.GetMinuteOption=function()
102
- {
103
- const option=
104
- {
105
- Type: '分钟走势图', //历史分钟走势图
106
- Symbol: null,
107
- IsAutoUpdate: true, //是自动更新数据
108
- Windows:
109
- [
110
- { Index: "MACD" }
111
- ],
112
- DayCount: 1,
113
-
114
- IsShowRightMenu: false, //右键菜单
115
- IsShowCorssCursorInfo: true, //是否显示十字光标的刻度信息
116
- EnableSelectRect:true,
117
-
118
- EnableZoomIndexWindow:true,
119
- IsDrawPictureXY:true,
120
- EnableNewIndex:true,
121
-
122
- SelectedChart:{ EnableSelected: true, EnableMoveOn:true },
123
- EnableIndexChartDrag:true,
124
-
125
- Border: //边框
126
- {
127
- Left: 40, //左边间距
128
- Right: 40, //右边间距
129
- Top: 25,
130
- Bottom: 20,
131
-
132
- AutoLeft:{ Blank:10, MinWidth:60 },
133
- AutoRight:{ Blank:10, MinWidth:40 },
134
- },
135
-
136
- MinuteTitle: //标题设置
137
- {
138
- IsTitleShowLatestData:true,
139
- },
140
-
141
- Frame: //子框架设置,刻度小数位数设置
142
- [
143
- { SplitCount: 5, StringFormat: 0 },
144
- { SplitCount: 5, StringFormat: 0 },
145
- { SplitCount: 5, StringFormat: 0 }
146
- ],
147
-
148
- ExtendChart: //扩展图形
149
- [
150
- { Name:'MinutePCTooltip' }, //PC端tooltip
151
- ]
152
- };
153
-
154
- return option;
155
- }
156
-
157
- DefaultData.GetKLineOption=function()
158
- {
159
- const option=
160
- {
161
- Type: '历史K线图',
162
- Windows:
163
- [
164
- { Index: "均线", Overlay:true, Export:true },
165
- { Index: "VOL", Overlay:true },
166
- ], //窗口指标
167
- Symbol: null,
168
- IsAutoUpdate: true, //是自动更新数据
169
- IsShowRightMenu: false, //右键菜单
170
-
171
- CorssCursorInfo:{ DateFormatType:2 },
172
-
173
- EnableYDrag:{ Right:true },
174
-
175
- DragDownload: { Day:{ Enable:true } , Minute:{ Enable:true }},
176
-
177
- StepPixel:0,
178
-
179
- EnableZoomIndexWindow:true,
180
-
181
- SelectedChart:
182
- {
183
- EnableSelected: true,
184
- EnableMoveOn:true
185
- },
186
-
187
- EnableIndexChartDrag:true,
188
-
189
- //区间选择
190
- SelectRect:
191
- {
192
- SpaceReselected:true, //空格重选
193
- ShowRangeText:
194
- {
195
- Enable:true, //是否显示区间选择范围日期
196
- Position:1, //日期显示位置 0=顶部 1=中间 2=底部
197
- SubPosition:1 //子区域日期显示位置 0=顶部 1=中间 2=底部
198
- }
199
- },
200
-
201
- KLine:
202
- {
203
- DragMode: 1, //拖拽模式 0 禁止拖拽 1 数据拖拽 2 区间选择
204
- Right: 1, //复权 0 不复权 1 前复权 2 后复权
205
- Period: 0, //周期 0 日线 1 周线 2 月线 3 年线
206
- MaxRequestDataCount: 3000, //日线数据最近1000天
207
- MaxRequestMinuteDayCount: 15, //分钟数据最近15天
208
- PageSize: 50, //一屏显示多少数据
209
- IsShowTooltip: true, //是否显示K线提示信息
210
- RightSpaceCount:2, //右边预留2个K线宽度空白
211
- ZoomType:1, //PC页面版 缩放以十字光标为中心两边缩放
212
- DataWidth:10,
213
- },
214
-
215
- IsDrawPictureXY:true,
216
-
217
- SelectRect:
218
- {
219
- ShowRangeText:{ Enable:true, Position:1 }
220
- },
221
-
222
- KLineTitle: //标题设置
223
- {
224
-
225
- },
226
-
227
- Border: //边框
228
- {
229
- Left: 1, //左边间距
230
- Right: 60, //右边间距
231
- Top: 25,
232
-
233
- AutoRight:{ Blank:10, MinWidth:60 }
234
- },
235
-
236
- Frame: //子框架设置
237
- [
238
- {
239
- SplitCount: 5, StringFormat: 0, IsShowLeftText: false ,
240
- Custom:
241
- [
242
- {
243
- Type:2,
244
- Position:'right',LineType:-1,
245
- },
246
- {
247
- Type:0,
248
- Position:'right',LineType:1,
249
- },
250
- {
251
- Type:3,
252
- Position:'right',LineType:-1,
253
- }
254
- ]
255
- },
256
- { SplitCount: 5, StringFormat: 0, IsShowLeftText: false ,EnableRemoveZero:true, MinYDistance:20, Custom:[ { Type:2,Position:'right',LineType:-1, } ] },
257
- { SplitCount: 5, StringFormat: 0, IsShowLeftText: false ,EnableRemoveZero:true,Custom:[ { Type:2,Position:'right',LineType:-1, } ] },
258
- { SplitCount: 5, StringFormat: 0, IsShowLeftText: false ,EnableRemoveZero:true,Custom:[ { Type:2,Position:'right',LineType:-1, } ] }
259
- ]
260
- };
261
-
262
- return option;
263
- }
264
-
265
- DefaultData.GetPeriodData=function(name)
266
- {
267
- const mapPeriod=new Map([
268
- ["分时",{Value:1,KLineShow:false,MinuteShow:true}],
269
- ["五日",{Value:5,KLineShow:false,MinuteShow:true}],
270
- ["日线",{Value:0,KLineShow:true,MinuteShow:false}],
271
- ["周线",{Value:1,KLineShow:true,MinuteShow:false}],
272
- ["月线",{Value:2,KLineShow:true,MinuteShow:false}],
273
- ["年线",{Value:3,KLineShow:true,MinuteShow:false}],
274
- ["双周",{Value:21,KLineShow:true,MinuteShow:false}],
275
- ["半年",{Value:22,KLineShow:true,MinuteShow:false}],
276
- ["分笔",{Value:10,KLineShow:true,MinuteShow:false}],
277
- ["1分钟",{Value:4,KLineShow:true,MinuteShow:false}],
278
- ["5分钟",{Value:5,KLineShow:true,MinuteShow:false}],
279
- ["15分钟",{Value:6,KLineShow:true,MinuteShow:false}],
280
- ["30分钟",{Value:7,KLineShow:true,MinuteShow:false}],
281
- ["60分钟",{Value:8,KLineShow:true,MinuteShow:false}],
282
- ]);
283
- if (!mapPeriod.has(name)) return null;
284
-
285
- return mapPeriod.get(name);
286
- }
287
-
288
- DefaultData.GetPeriodMenu=function()
289
- {
290
- const data=
291
- [
292
- '分时', '五日',
293
- '日线', '周线', '月线', '年线', "分笔",
294
- '1分钟', '5分钟', '15分钟', '30分钟', '60分钟',
295
- "双周", "半年"
296
- ];
297
-
298
- return data;
299
- }
300
-
301
- //分钟工具条菜单ID
302
- var MINUTE_TOOLBAR_ID=
303
- {
304
- INDEX_ID:0, // 指标
305
- INDEX_ID_TWO:1, // 指标
306
- }
307
-
308
- DefaultData.GetMinuteToolbar=function()
309
- {
310
- let data=
311
- {
312
- Data:[],
313
- Selected:-1,
314
- }
315
-
316
- let indexMenu=
317
- {
318
- Text: '副图指标',
319
- Selected: [],
320
- Menu:
321
- [
322
- {Name:"MACD"}, {Name:"DMI"}, {Name:"DMA"}, {Name:"BRAR"},
323
- {Name:"KDJ"}, {Name:"RSI"}, {Name:"WR"}, {Name:"CCI"}, {Name:"TRIX"}, {Name:'北上资金'}, {Name:'涨跌趋势'}
324
- ],
325
- IsShow:true
326
- }
327
-
328
-
329
-
330
- data.Data[MINUTE_TOOLBAR_ID.INDEX_ID]=indexMenu;
331
-
332
- return data;
333
- }
334
-
335
- var KLINE_TOOLBAR_ID=
336
- {
337
- RIGHT_ID:0, //复权
338
- KLINE_INFO_ID:1, //信息地雷
339
- COLOR_INDEX_ID:2, //五彩K线
340
- TRADE_INDEX_ID:3, //专家系统
341
- OVERLAY_ID:4, //叠加股票
342
- MOUSE_DRAG_ID:5, //鼠标拖拽
343
- WINDOW_COUNT_ID:6, //窗口个数
344
- KLINE_TYPE_ID:7, //主图线型
345
- }
346
-
347
- DefaultData.GetKLineToolbar=function()
348
- {
349
- let data=
350
- {
351
- Data:[],
352
- Selected:-1,
353
- };
354
-
355
- let rightMenu=
356
- {
357
- Text: '复权处理',
358
- Selected: [],
359
- Menu: [ {Name:'不复权',Value:0}, {Name:'前复权', Value:1} , {Name:'后复权', Value:2} ],
360
- IsShow:true,
361
- };
362
-
363
- let colorIndexMenu=
364
- {
365
- Text: '五彩K线',
366
- Selected: [],
367
- Menu:
368
- [
369
- {Name:"十字星", Value:'五彩K线-十字星'}, {Name:"早晨之星", Value:'五彩K线-早晨之星'},
370
- {Name:"垂死十字", Value:'五彩K线-垂死十字'}, {Name:"三只乌鸦", Value:'五彩K线-三只乌鸦'},
371
- {Name:"光脚阴线", Value:'五彩K线-光脚阴线'}, {Name:"黄昏之星", Value:'五彩K线-黄昏之星'}
372
- ],
373
- IsShow:true,
374
- };
375
-
376
- let tradeIndexMenu=
377
- {
378
- Text: '专家系统',
379
- Selected: [],
380
- Menu:
381
- [
382
- {Name:"BIAS", Value:'交易系统-BIAS'}, {Name:"CCI", Value:'交易系统-CCI'},
383
- {Name:"DMI", Value:'交易系统-DMI'}, {Name:"KD", Value:'交易系统-KD'},
384
- {Name:"BOLL", Value:'交易系统-BOLL'}, {Name:"KDJ", Value:'交易系统-KDJ'}
385
- ],
386
- IsShow:true,
387
- };
388
-
389
- //叠加股票
390
- let overlayMenu=
391
- {
392
- Text: '叠加品种',
393
- Selected: [],
394
- Menu:
395
- [
396
- {Name:"上证指数", Value:'000001.sh'}, {Name:"深证成指", Value:'399001.sz'},
397
- {Name:"中小板指", Value:'399005.sz'}, {Name:"创业板指", Value:'399006.sz'},
398
- {Name:"沪深300", Value:'000300.sh'}
399
- ],
400
- IsShow:true,
401
- }
402
-
403
- let klineTypeMenu=
404
- {
405
- Text: '主图线型',
406
- Selected: [],
407
- Menu:
408
- [
409
- {Name:"空心K线",Value:3},
410
- {Name:"实心K线",Value:0},
411
- {Name:"美国线",Value:2},
412
- {Name:"收盘线",Value:1},
413
- {Name:"面积图",Value:4},
414
- {Name:"空心K线2",Value:6},
415
- {Name:"Heikin Ashi",Value:11},
416
- {Name:"Line Break",Value:12},
417
- {Name:"High-low",Value:13},
418
- {Name:"HLC Area",Value:15}
419
- ],
420
- IsShow:true,
421
- };
422
-
423
- let windowCountMenu=
424
- {
425
- Text: '窗口个数',
426
- Selected: [],
427
- Menu:
428
- [
429
- {Name:"1个窗口",Value:1}, {Name:"2个窗口",Value:2}, {Name:"3个窗口",Value:3},
430
- {Name:"4个窗口",Value:4}, {Name:"5个窗口",Value:5}
431
- ],
432
- IsShow:true,
433
- };
434
-
435
- let klineInfoMenu=
436
- {
437
- Text: '信息地雷',
438
- Selected: [],
439
- Menu:
440
- [
441
- {Name:"公告", }, {Name:"业绩预告",}, {Name:"调研",},
442
- {Name:"大宗交易",}, {Name:"龙虎榜",},{Name:"互动易",},
443
- ],
444
- IsShow:true,
445
- };
446
-
447
- let mouseDragMenu=
448
- {
449
- Text: '工具',
450
- Selected: [],
451
- Menu:
452
- [
453
- {Name:"禁止拖拽", Value:0}, {Name:"启动拖拽", Value:1}, {Name:"区间选择",Value:2},{Name:"画图工具",Value:3}
454
- ],
455
- IsShow:true,
456
- };
457
-
458
- data.Data[KLINE_TOOLBAR_ID.RIGHT_ID]=rightMenu;
459
- data.Data[KLINE_TOOLBAR_ID.COLOR_INDEX_ID]=colorIndexMenu;
460
- data.Data[KLINE_TOOLBAR_ID.TRADE_INDEX_ID]=tradeIndexMenu;
461
- data.Data[KLINE_TOOLBAR_ID.OVERLAY_ID]=overlayMenu;
462
- data.Data[KLINE_TOOLBAR_ID.KLINE_TYPE_ID]=klineTypeMenu;
463
- data.Data[KLINE_TOOLBAR_ID.WINDOW_COUNT_ID]=windowCountMenu;
464
- data.Data[KLINE_TOOLBAR_ID.KLINE_INFO_ID]=klineInfoMenu;
465
- data.Data[KLINE_TOOLBAR_ID.MOUSE_DRAG_ID]=mouseDragMenu;
466
-
467
- return data;
468
- }
469
-
470
-
471
-
472
- export default
473
- {
474
- name:'StockKLine',
475
- //外部传入的参数
476
- props:
477
- [
478
- 'DefaultPeriod', //周期 分时,五日,日线
479
- 'DefaultSymbol', //默认股票
480
- 'KLineOption',
481
- 'MinuteOption',
482
- 'TradeInfoTabWidth',
483
- ],
484
- components:{Stockdrawtool},
485
- data()
486
- {
487
- let data=
488
- {
489
- ImageLodeUrl:'',
490
- ShowDialog:false,
491
- ImageLoadDomain:'https://opensourcedownload.zealink.com',
492
- Symbol:'600000.sh',
493
- ID:JSCommon.JSChart.CreateGuid(),
494
- topheight: 0,
495
- totalheight: 0,
496
- Minute:
497
- {
498
- JSChart:null, Option:DefaultData.GetMinuteOption(),
499
- IsShow:true, //是否显示
500
- IndexBar: //底部指标工具
501
- {
502
- Menu:["MACD", '量比', "DMI", "DMA", "BRAR", "KDJ", "RSI", "WR", "CCI", "TRIX",'涨跌趋势'],
503
- Selected:[]
504
- },
505
- Toolbar:DefaultData.GetMinuteToolbar(), //工具菜单
506
- },
507
- KLine:
508
- {
509
- JSChart:null,Option:DefaultData.GetKLineOption(),
510
- IsShow:false,
511
- IndexBar: //底部指标工具
512
- {
513
- Menu:['BBI', 'MA', 'HMA', 'LMA', 'VMA', 'BOLL', 'SKDJ', 'KDJ', 'MACD', 'RSI', 'OBV', 'BIAS'],
514
- Selected:[]
515
- },
516
- Toolbar:DefaultData.GetKLineToolbar(),
517
- },
518
- PeriodBar: //周期菜单工具条
519
- {
520
- Menu:DefaultData.GetPeriodMenu(),
521
- IsShow:true,
522
- Selected:0, //当前选中的菜单
523
- },
524
-
525
- TradeInfoTab:
526
- {
527
- IsShow:true, //买卖盘是否显示
528
- Width:230, //买卖盘宽度
529
- },
530
- KLineItemShow:[false,false,false,false,false,false,false,false],
531
-
532
- Event:
533
- {
534
- ChangePeriodEvent:null, //周期改变事件 function(name)
535
- },
536
-
537
- DrawTool:
538
- {
539
- IsShow:false,
540
- },
541
-
542
- StatusBtn:
543
- {
544
- SmallDisabled:false,
545
- BigDisabled:false,
546
- LeftDisabled:false,
547
- RightDisabled:false,
548
- ResetDisabled:false,
549
- StartTime:null,
550
- Timer:null //定时器
551
- },
552
- MoveInterval:null,
553
- IsShowBeforeData:true, //显示
554
-
555
- ColorStyle:new Map(), //风格
556
- isBlackStyle: false
557
- }
558
-
559
- return data;
560
- },
561
-
562
- // watch: {
563
- // isBlackStyle: function(newValue){
564
- // if(newValue && this.DrawTool.IsShow){
565
-
566
- // }
567
- // }
568
- // },
569
-
570
- created:function()
571
- {
572
- //处理默认传入的参数
573
- if (this.DefaultSymbol) this.Symbol=this.DefaultSymbol; //默认股票
574
- if (this.DefaultPeriod) //默认周期
575
- {
576
- var period=DefaultData.GetPeriodData(this.DefaultPeriod);
577
- if (period)
578
- {
579
- this.Minute.IsShow=period.MinuteShow;
580
- this.KLine.IsShow=period.KLineShow;
581
- if (period.KLineShow) this.KLine.Option.Period=period.Value;
582
- if (period.MinuteShow) this.Minute.Option.DayCount=period.Value;
583
- //修改周期工具条菜单选中
584
- const menu=DefaultData.GetPeriodMenu();
585
- let selected=menu.indexOf(this.DefaultPeriod);
586
- this.PeriodBar.Selected=selected;
587
- }
588
- }
589
-
590
- if(!this.IsSHSZIndex()){
591
- let indexMenu2 =
592
- {
593
- Text: '集合竞价',
594
- Selected: [],
595
- Menu: [{Name:'显示'}],
596
- IsShow:true
597
- }
598
- // this.Minute.Toolbar.Data.push(indexMenu2);
599
- this.Minute.Toolbar.Data[MINUTE_TOOLBAR_ID.INDEX_ID_TWO]=indexMenu2;
600
- console.log('分时图:',this.Minute.Toolbar);
601
- }
602
-
603
- if (this.KLineOption) this.SetDefaultKLineOption(this.KLineOption);
604
- if (this.MinuteOption) this.SetDefaultMinuteOption(this.MinuteOption);
605
- if (this.TradeInfoTabWidth>0) this.TradeInfoTab.Width=this.TradeInfoTabWidth;
606
-
607
- JSCommon.JSChart.GetResource().ToolbarButtonStyle=1;
608
- //保存配色
609
- var resource=JSCommon.HQChartStyle.GetStyleConfig(JSCommon.STYLE_TYPE_ID.WHITE_ID);
610
- resource.ToolbarButtonStyle=1;
611
- this.ColorStyle.set("white",resource);
612
-
613
- resource=JSCommon.HQChartStyle.GetStyleConfig(JSCommon.STYLE_TYPE_ID.BLACK_ID);
614
- resource.ToolbarButtonStyle=1;
615
- this.ColorStyle.set("black",resource);
616
- },
617
-
618
- mounted:function()
619
- {
620
- console.log(`[StockKLine::mounted]`);
621
- this.OnSize();
622
-
623
- if (this.Minute.IsShow) this.CreateMinuteChart();
624
- else if (this.KLine.IsShow) this.CreateKLineChart();
625
-
626
- if (this.KLine.JSChart){
627
- this.KLine.JSChart.AddEventCallback({event:JSCommon.JSCHART_EVENT_ID.CHART_STATUS,callback:this.ChartStausCallback});
628
- }
629
-
630
- this.UpateMenuStatus();
631
-
632
- var self=this;
633
- document.addEventListener('click', (e) =>
634
- {
635
- //弹出菜单 在其他区域点击 自动隐藏
636
- if (!$('#chartbar').is(e.target) && $('#chartbar').has(e.target).length === 0)
637
- self.HideToolbarPopMenu();
638
- });
639
- },
640
-
641
- methods:
642
- {
643
- CopyUrl(){
644
- var input = document.getElementById('imageLoadInput');
645
- input.select(); // 选中文本
646
- if(document.execCommand) document.execCommand("copy"); // 执行浏览器复制命令
647
- },
648
- SaveImage(){
649
- window.open(this.ImageLodeUrl);
650
- },
651
- ChartStausCallback(event,data,jSChartContainer){
652
- var smallBtn = this.$refs.smallBtn;
653
- var bigBtn = this.$refs.bigBtn;
654
- var leftBtn = this.$refs.leftBtn;
655
- var rightBtn = this.$refs.rightBtn;
656
- console.log('[StockKline::ChartStausCallback]data:',data);
657
- if(data.KLine){
658
- var count = data.KLine.Count;
659
- var offset = data.KLine.Offset;
660
- var pageSize = data.KLine.PageSize;
661
- if(offset == 0){
662
- this.StatusBtn.RightDisabled = true;
663
- }else{
664
- this.StatusBtn.RightDisabled = false;
665
- }
666
- if(offset + pageSize == count){
667
- this.StatusBtn.LeftDisabled = true;
668
- }else{
669
- this.StatusBtn.LeftDisabled = false;
670
- }
671
- }
672
- if(data.Zoom){
673
- var index = data.Zoom.Index;
674
- var max = data.Zoom.Max;
675
- if(index == 0){
676
- this.StatusBtn.BigDisabled = true;
677
- }else{
678
- this.StatusBtn.BigDisabled = false;
679
- }
680
- if(index == max - 1){
681
- this.StatusBtn.SmallDisabled = true;
682
- }else{
683
- this.StatusBtn.SmallDisabled = false;
684
- }
685
- }
686
- },
687
- GetChartImg(){ //获得chart的base64图片
688
- var img64 = '';
689
- var chart = null;
690
- if(this.Minute.IsShow && this.Minute.JSChart){
691
- chart = this.Minute.JSChart;
692
- }else if(this.KLine.IsShow && this.KLine.JSChart){
693
- chart = this.KLine.JSChart;
694
- }
695
- img64 = chart.SaveToImage();
696
- // console.log('StockLine::GetChartImg',img64);
697
- this.QueryImgLoadUrl(img64);
698
- },
699
- QueryImgLoadUrl(img64){
700
- var queryStr = {
701
- "Base64": img64,
702
- "BucketName": "downloadcache",
703
- "Path": "hqchart/hq_snapshot"
704
- };
705
- var apiUrl ='https://opensource.zealink.com/API/FileUploadForBase64';
706
- this.QueryApiData(apiUrl,queryStr,this.RecvImgLoadUrl);
707
- },
708
- RecvImgLoadUrl(res){
709
- console.log('RecvImgLoadUrl:',res);
710
- var path = res.relativeurl;
711
- this.ImageLodeUrl = this.ImageLoadDomain + '/' + path;
712
- this.ShowImageLoadDialog(); //显示对话框
713
- },
714
- ShowImageLoadDialog(){
715
- this.ShowDialog = true;
716
- },
717
- HideImageLoadDialog(){
718
- this.ShowDialog = false;
719
- },
720
- QueryApiData(apiUrl,queryStr,callback) { //股东人数与股价比较
721
- $.ajax({
722
- url: apiUrl,
723
- method: "POST",
724
- dataType: "json",
725
- data: queryStr,
726
- success: function (data) {
727
- callback(data);
728
- },
729
- error: function (request) {
730
- console.log(request, "error msg");
731
- }
732
- });
733
- },
734
- OnSize:function()
735
- {
736
- var stockKLine=this.$refs.stockkline;
737
- var divPeriodBar=this.$refs.divperiodbar;
738
- var divChart=this.$refs.divchart;
739
- var divChartBar=this.$refs.divchartbar;
740
-
741
- var minuteIndexBar=this.$refs.minuteindexbar;
742
- var klineIndexBar=this.$refs.klineindexbar;
743
- var indexBarHeight=minuteIndexBar.offsetHeight+klineIndexBar.offsetHeight;
744
-
745
- var height= stockKLine.offsetHeight;
746
- var width = stockKLine.offsetWidth;
747
- var chartHeight=height - divPeriodBar.offsetHeight - divChartBar.offsetHeight - indexBarHeight; //图形高度=总高-周期工具条高-子工具条高-底部指标工具条高
748
- var chartWidth=width;
749
-
750
- //总高度
751
- this.totalheight = height;
752
- // 画笔工具总高度需减去的高度
753
- this.topheight = divPeriodBar.offsetHeight + divChartBar.offsetHeight;
754
-
755
- divChart.style.width=chartWidth+'px';
756
- divChart.style.height=chartHeight+'px';
757
-
758
- var divMinute=this.$refs.minute;
759
- divMinute.style.width=chartWidth+'px';
760
- divMinute.style.height=chartHeight+'px';
761
- if (this.Minute.JSChart) this.Minute.JSChart.OnSize();
762
-
763
- var divKline=this.$refs.kline;
764
- //chartWidth=50000;
765
- divKline.style.width=chartWidth+'px';
766
- divKline.style.height=chartHeight+'px';
767
- if (this.KLine.JSChart) this.KLine.JSChart.OnSize({Type:1});
768
-
769
- if (this.KLine.JSChart)
770
- {
771
- let chart=this.KLine.JSChart.JSChartContainer;
772
- let StockChip=chart.GetExtendChartByClassName('StockChip');
773
- if (StockChip)
774
- {
775
- klineIndexBar.style.width=(width-this.TradeInfoTab.Width)+'px';
776
- }
777
- else
778
- {
779
- klineIndexBar.style.width='100%';
780
- }
781
- }
782
-
783
- if(this.KLine.IsShow){
784
- var totalWidth = width - 20;
785
- var dispalyAry = [];
786
- if(this.IsSHSZIndex()){ //是指数
787
- var startIndex = 2, endIndex = 7;
788
- dispalyAry = [false,false,true,true,true,true,true,true];
789
- }else{
790
- var startIndex = 0, endIndex = 7;
791
- dispalyAry = [true,true,true,true,true,true,true,true];
792
- }
793
- var currentWdith = 0;
794
- var itemHeight = $('#barForKLine>.item').outerWidth(true);
795
- for(let i = startIndex; i <= endIndex; i++){
796
- currentWdith += itemHeight;
797
- if(currentWdith <= totalWidth){
798
- dispalyAry[i] = true;
799
- }else{
800
- dispalyAry[i] = false;
801
- }
802
- }
803
- this.KLineItemShow = dispalyAry;
804
- }
805
-
806
- console.log(`[StockKLine::OnSize] Chart:(${width},${height})`);
807
- },
808
- IsSHSZIndex(){
809
- var isIndex=JSCommon.MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol);
810
- return isIndex;
811
- },
812
-
813
- //创建日线图
814
- CreateMinuteChart:function()
815
- {
816
- if (this.Minute.JSChart) return;
817
- this.Minute.Option.Symbol=this.Symbol;
818
- let chart=JSCommon.JSChart.Init(this.$refs.minute, false, true);
819
- chart.SetOption(this.Minute.Option);
820
- this.Minute.JSChart=chart;
821
-
822
- this.UpdateIndexBarSelected();
823
- },
824
-
825
- //历史K线周期切换
826
- ChangeKLinePeriod:function(period)
827
- {
828
- if (!this.KLine.JSChart) //不存在创建
829
- {
830
- this.KLine.Option.KLine.Period=period;
831
- this.CreateKLineChart();
832
- }
833
- else
834
- {
835
- if (period==10) //分笔图
836
- {
837
-
838
- }
839
-
840
- this.KLine.JSChart.ChangePeriod(period);
841
- }
842
- },
843
-
844
- //走势图多日切换
845
- ChangeMinutePeriod:function(period)
846
- {
847
- if (!this.Minute.JSChart) //不存在创建
848
- {
849
- this.Minute.Option.DayCount=period;
850
- this.CreateMinuteChart();
851
- }
852
- else
853
- {
854
- this.Minute.JSChart.ChangeDayCount(period);
855
- }
856
- },
857
-
858
- //创建K线图
859
- CreateKLineChart:function()
860
- {
861
- if (this.KLine.JSChart) return;
862
- this.KLine.Option.Symbol=this.Symbol;
863
- let chart=JSCommon.JSChart.Init(this.$refs.kline, false, true);
864
- chart.SetOption(this.KLine.Option);
865
- this.KLine.JSChart=chart;
866
- this.KLine.JSChart.SetFocus();
867
-
868
- this.KLine.JSChart.AddEventCallback(
869
- {
870
- event:JSCommon.JSCHART_EVENT_ID.ON_CUSTOM_LEFT_TOOLBAR,
871
- callback:(event, data, chart)=>{ this.OnCustomLeftToolbar(event, data, chart);}
872
- }
873
- );
874
-
875
-
876
- this.UpdateIndexBarSelected();
877
- },
878
-
879
- OnCustomLeftToolbar(event, data, chart)
880
- {
881
- //console.log("[KLine::OnCustomLeftToolbar] data=",data);
882
- var button =
883
- {
884
- ID: 128887,
885
- Style: //按钮样式 使用iconfont, 可以放全局的资源配置里面
886
- {
887
- MoveOnColor: "rgb(0,0,255)",
888
- Color: "rgb(30,144,255)",
889
- Family: "iconfont",
890
- Text: "\ue691",
891
- Size: 13 *JSCommon.GetDevicePixelRatio(),
892
- MerginLeft: 2,
893
- YMoveOffset:-2,
894
- },
895
- TooltipText: "指标按钮开发中.....",
896
- };
897
-
898
- var button2 =
899
- {
900
- ID: 128888,
901
- Style: //按钮样式 使用iconfont, 可以放全局的资源配置里面
902
- {
903
- MoveOnColor: "rgb(0,0,255)",
904
- Color: "rgb(30,144,255)",
905
- Family: "iconfont",
906
- Text: "\ue691",
907
- Size: 13 *JSCommon.GetDevicePixelRatio(),
908
- MerginLeft: 2,
909
- YMoveOffset:-2,
910
- },
911
- TooltipText: "叠加指标按钮开发中.....",
912
- };
913
-
914
- if (data.OverlayID) data.AryButton=[button2];
915
- else data.AryButton=[button];
916
-
917
- data.PreventDefault=true;
918
- },
919
-
920
- //走势图 K线图 周期切换
921
- ChangeChartPeriod:function(name)
922
- {
923
- var period=DefaultData.GetPeriodData(name);
924
- if (!period) return;
925
- if (period.KLineShow) this.ChangeKLinePeriod(period.Value);
926
- this.KLine.IsShow=period.KLineShow;
927
- if (period.MinuteShow) this.ChangeMinutePeriod(period.Value);
928
- this.Minute.IsShow=period.MinuteShow;
929
- },
930
-
931
- ChangeSymbol(symbol)
932
- {
933
- if (this.Symbol==symbol) return;
934
-
935
- this.Symbol=symbol;
936
- if (this.KLine.JSChart) this.KLine.JSChart.ChangeSymbol(this.Symbol);
937
- if (this.Minute.JSChart) this.Minute.JSChart.ChangeSymbol(this.Symbol);
938
-
939
- this.UpateMenuStatus();
940
-
941
- },
942
-
943
- //风格切换
944
- ChangeStyle(styleName)
945
- {
946
- this.isBlackStyle = 'black' === styleName;
947
- var style=this.ColorStyle.get(styleName);
948
- if (!style) return;
949
-
950
- JSCommon.JSChart.SetStyle(style); //设置全局颜色配置
951
- this.$refs.kline.style.backgroundColor=style.BGColor; //修改div背景色
952
- if (this.KLine.JSChart) this.KLine.JSChart.ReloadResource({ Resource:null, Draw:true , Update:true }); //动态更新颜色配置
953
- if (this.Minute.JSChart) this.Minute.JSChart.ReloadResource({ Resource:null, Draw:true , Update:true }); //动态更新颜色配置
954
-
955
- //K线 div背景色
956
- var clrBG="rgb(255,255,255)";
957
- if (styleName=="black") clrBG="rgb(0,0,0)";
958
- var divMinute=this.$refs.minute;
959
- divMinute.style.backgroundColor=clrBG;
960
-
961
- var divKline=this.$refs.kline;
962
- divKline.style.backgroundColor=clrBG;
963
- },
964
-
965
- //更新菜单
966
- UpateMenuStatus:function()
967
- {
968
- //指数隐藏复权,信息地雷
969
- var isIndex=JSCommon.MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol);
970
- this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.RIGHT_ID].IsShow=!isIndex;
971
- this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.KLINE_INFO_ID].IsShow=!isIndex;
972
-
973
- this.Minute.Toolbar.Data[MINUTE_TOOLBAR_ID.INDEX_ID_TWO].IsShow=!isIndex;
974
- },
975
-
976
- SetDefaultKLineOption:function(option)
977
- {
978
- if (option.Windows) this.KLine.Option.Windows=option.Windows;
979
- if (option.TradeIndex) this.KLine.Option.TradeIndex=option.TradeIndex;
980
- if (option.ColorIndex) this.KLine.Option.ColorIndex=option.ColorIndex;
981
- if (option.KLine)
982
- {
983
- if (option.KLine.Info) this.KLine.Option.KLine.Info=option.KLine.Info;
984
- if (option.KLine.Right>=0) this.KLine.Option.KLine.Right=option.KLine.Right;
985
- }
986
- },
987
-
988
- SetDefaultMinuteOption:function(option)
989
- {
990
- if (option.Windows) this.Minute.Option.Windows=option.Windows;
991
- },
992
-
993
- //更新指标工具菜单选中
994
- UpdateIndexBarSelected:function()
995
- {
996
- if (this.KLine.JSChart && this.KLine.JSChart.JSChartContainer)
997
- {
998
- this.KLine.IndexBar.Selected=[];
999
- var aryIndex=this.KLine.JSChart.JSChartContainer.GetIndexInfo();
1000
- for(var i=0;i<2 && i<aryIndex.length;++i)
1001
- {
1002
- var item=aryIndex[i];
1003
- var index=-1;
1004
- if (item.ID) index=this.KLine.IndexBar.Menu.indexOf(item.ID);
1005
- else if (item.Name) index=this.KLine.IndexBar.Menu.indexOf(item.Name);
1006
- if (index>=0) this.KLine.IndexBar.Selected.push(index);
1007
- }
1008
- }
1009
-
1010
- if (this.Minute.JSChart && this.Minute.JSChart.JSChartContainer)
1011
- {
1012
- this.Minute.IndexBar.Selected=[];
1013
- var aryIndex=this.Minute.JSChart.JSChartContainer.GetIndexInfo();
1014
- for(var i=0;i<2 && i<aryIndex.length;++i)
1015
- {
1016
- var item=aryIndex[i];
1017
- var index=this.Minute.IndexBar.Menu.indexOf(item.ID);
1018
- if (index>=0) this.Minute.IndexBar.Selected.push(index);
1019
- }
1020
- }
1021
- },
1022
-
1023
- UpdateMinuteIndexMenu:function()
1024
- {
1025
- var aryIndex=this.Minute.JSChart.JSChartContainer.GetIndexInfo();
1026
- var indexMenu=this.Minute.Toolbar.Data[MINUTE_TOOLBAR_ID.INDEX_ID];
1027
- indexMenu.Selected=[];
1028
- const aryMenu=indexMenu.Menu.map(item=> item.Name);
1029
- for(var i=0;i<2 && i<aryIndex.length;++i)
1030
- {
1031
- var item=aryIndex[i];
1032
- var index=aryMenu.indexOf(item.ID);
1033
- if (index>=0) indexMenu.Selected.push(index);
1034
- }
1035
- },
1036
-
1037
- //复权菜单
1038
- UpateKLineRightMenu:function()
1039
- {
1040
- var rightValue=this.KLine.JSChart.JSChartContainer.Right;
1041
- var rightMenu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.RIGHT_ID];
1042
- rightMenu.Selected=[];
1043
- const aryMenu=rightMenu.Menu.map(function(item,index)
1044
- {
1045
- if (item.Value===rightValue) rightMenu.Selected.push(index);
1046
- });
1047
- },
1048
-
1049
- //五彩K线
1050
- UpateColorIndexMenu:function()
1051
- {
1052
- var colorIndexMenu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.COLOR_INDEX_ID];
1053
- colorIndexMenu.Selected=[];
1054
- const aryMenu=colorIndexMenu.Menu.map(item=>item.Value);
1055
- const DELETE_MENU_NAME='取消';
1056
- if (this.KLine.JSChart.JSChartContainer.ColorIndex)
1057
- {
1058
- var id=this.KLine.JSChart.JSChartContainer.ColorIndex.ID;
1059
- var index=aryMenu.indexOf(id);
1060
- if (index>=0) colorIndexMenu.Selected.push(index);
1061
- if (aryMenu.indexOf(DELETE_MENU_NAME)<0)
1062
- {
1063
- var chart=this.KLine.JSChart;
1064
- var delMenu={Name:DELETE_MENU_NAME, Value:DELETE_MENU_NAME, OnClick:function() {chart.CancelInstructionIndex();} };
1065
- colorIndexMenu.Menu.push(delMenu);
1066
- }
1067
- }
1068
- else //删除'删除五彩K线' 菜单
1069
- {
1070
- var newMenu=[];
1071
- colorIndexMenu.Menu.map(function(item,index){
1072
- if (item.Name!=DELETE_MENU_NAME) newMenu.push(item);
1073
- })
1074
-
1075
- colorIndexMenu.Menu=newMenu;
1076
- }
1077
- },
1078
-
1079
- UpateTradeIndexMenu:function()
1080
- {
1081
- var tradeIndexMenu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.TRADE_INDEX_ID];
1082
- tradeIndexMenu.Selected=[];
1083
- const aryMenu=tradeIndexMenu.Menu.map(item=>item.Value);
1084
- const DELETE_MENU_NAME='取消';
1085
- if (this.KLine.JSChart.JSChartContainer.TradeIndex)
1086
- {
1087
- var id=this.KLine.JSChart.JSChartContainer.TradeIndex.ID;
1088
- var index=aryMenu.indexOf(id);
1089
- if (index>=0) tradeIndexMenu.Selected.push(index);
1090
- if (aryMenu.indexOf(DELETE_MENU_NAME)<0)
1091
- {
1092
- var chart=this.KLine.JSChart;
1093
- var delMenu={Name:DELETE_MENU_NAME, Value:DELETE_MENU_NAME, OnClick:function() {chart.CancelInstructionIndex();} };
1094
- tradeIndexMenu.Menu.push(delMenu);
1095
- }
1096
- }
1097
- else //删除'删除五彩K线' 菜单
1098
- {
1099
- var newMenu=[];
1100
- tradeIndexMenu.Menu.map(function(item,index){
1101
- if (item.Name!=DELETE_MENU_NAME) newMenu.push(item);
1102
- })
1103
-
1104
- tradeIndexMenu.Menu=newMenu;
1105
- }
1106
- },
1107
-
1108
- UpdateOverlayMenu:function()
1109
- {
1110
- var menu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.OVERLAY_ID];
1111
- menu.Selected=[];
1112
- const aryMenu=menu.Menu.map(item=>item.Value);
1113
- var chart=this.KLine.JSChart.JSChartContainer;
1114
- const DELETE_MENU_NAME='取消叠加';
1115
- if (chart.OverlayChartPaint && chart.OverlayChartPaint[0] && chart.OverlayChartPaint[0].Symbol)
1116
- {
1117
- var symbol=chart.OverlayChartPaint[0].Symbol;
1118
- var index=aryMenu.indexOf(symbol);
1119
- if (index>=0) menu.Selected.push(index);
1120
-
1121
- if (aryMenu.indexOf(DELETE_MENU_NAME)<0)
1122
- {
1123
- var chart=this.KLine.JSChart;
1124
- var delMenu={Name:DELETE_MENU_NAME, Value:DELETE_MENU_NAME, OnClick:function() {chart.ClearOverlaySymbol();} };
1125
- menu.Menu.push(delMenu);
1126
- }
1127
- }
1128
- else
1129
- {
1130
- var newMenu=[];
1131
- menu.Menu.map(function(item,index){
1132
- if (item.Name!=DELETE_MENU_NAME) newMenu.push(item);
1133
- })
1134
-
1135
- menu.Menu=newMenu;
1136
- }
1137
- },
1138
-
1139
- //K线类型
1140
- UpdateKLineTypeMenu:function()
1141
- {
1142
- var menu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.KLINE_TYPE_ID];
1143
- menu.Selected=[];
1144
- const aryMenu=menu.Menu.map(item=>item.Value);
1145
- var index=aryMenu.indexOf(this.KLine.JSChart.JSChartContainer.KLineDrawType);
1146
- if (index>=0) menu.Selected.push(index);
1147
- },
1148
-
1149
- // 窗口个数
1150
- UpdateWindowCountMenu:function()
1151
- {
1152
- var menu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.WINDOW_COUNT_ID];
1153
- menu.Selected=[];
1154
- const aryMenu=menu.Menu.map(item=>item.Value);
1155
- var count=this.KLine.JSChart.JSChartContainer.Frame.SubFrame.length;
1156
- var index=aryMenu.indexOf(count);
1157
- if (index>=0) menu.Selected.push(index);
1158
- },
1159
-
1160
- UpdateKLineInfoMenu:function()
1161
- {
1162
- var menu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.KLINE_INFO_ID];
1163
- menu.Selected=[];
1164
- const aryMenu=menu.Menu.map(function(item,index)
1165
- {
1166
- var classInfo=JSCommon.JSKLineInfoMap.GetClassInfo(item.Name);
1167
- if (classInfo) return classInfo.ClassName;
1168
- else return item.Name;
1169
- });
1170
-
1171
- var jsChart=this.KLine.JSChart;
1172
- var chart=jsChart.JSChartContainer;
1173
- var aryInfo=[];
1174
- for(var i in chart.ChartInfo)
1175
- {
1176
- var item=chart.ChartInfo[i];
1177
- var index=aryMenu.indexOf(item.ClassName);
1178
- if (index>=0) menu.Selected.push(index);
1179
- }
1180
-
1181
- const DELETE_MENU_NAME='取消';
1182
- if(chart.ChartInfo && chart.ChartInfo.length>0)
1183
- {
1184
- if (aryMenu.indexOf(DELETE_MENU_NAME)<0)
1185
- {
1186
- var delMenu={Name:DELETE_MENU_NAME, Value:DELETE_MENU_NAME, OnClick:function() {jsChart.ClearKLineInfo();} };
1187
- menu.Menu.push(delMenu);
1188
- }
1189
- }
1190
- else
1191
- {
1192
- var newMenu=[];
1193
- menu.Menu.map(function(item,index){
1194
- if (item.Name!=DELETE_MENU_NAME) newMenu.push(item);
1195
- })
1196
-
1197
- menu.Menu=newMenu;
1198
- }
1199
- },
1200
-
1201
- UpdateMouseDragMenu:function()
1202
- {
1203
- var menu=this.KLine.Toolbar.Data[KLINE_TOOLBAR_ID.MOUSE_DRAG_ID];
1204
- menu.Selected=[];
1205
- const aryMenu=menu.Menu.map(item=>item.Value);
1206
- var index=aryMenu.indexOf(this.KLine.JSChart.JSChartContainer.DragMode);
1207
- if (index>=0) menu.Selected.push(index);
1208
- },
1209
-
1210
- //隐藏2级工具条弹出菜单
1211
- HideToolbarPopMenu:function()
1212
- {
1213
- this.KLine.Toolbar.Selected=-1;
1214
- this.Minute.Toolbar.Selected=-1;
1215
- },
1216
-
1217
- ShowStockChip:function(isShow)
1218
- {
1219
- if (!this.KLine.JSChart) return;
1220
-
1221
- var chart=this.KLine.JSChart.JSChartContainer;
1222
- chart.StockChipWidth=this.TradeInfoTab.Width; //设置移动筹码宽度
1223
- var StockChip=chart.GetExtendChartByClassName('StockChip');
1224
- if (isShow)
1225
- {
1226
- if (StockChip) return;
1227
- var option={Name:'筹码分布', IsAutoIndent:1, ShowType:1, Width:250 };
1228
- var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
1229
- chart.SetSizeChage(true);
1230
- chart.Draw();
1231
- }
1232
- else
1233
- {
1234
- if (!StockChip) return;
1235
- chart.DeleteExtendChart(StockChip);
1236
- var chipWidth=StockChip.Chart.Width;
1237
- chart.Frame.ChartBorder.Right-=chipWidth;
1238
- chart.SetSizeChage(true);
1239
- chart.Draw();
1240
- }
1241
- },
1242
-
1243
- ///////////////////////////////////////////////////////////////////////
1244
- //菜单工具条事件
1245
- OnClickPeriodMenu:function(idx, event)
1246
- {
1247
- var name = event.currentTarget.text;
1248
- this.PeriodBar.Selected = idx;
1249
- this.ChangeChartPeriod(name);
1250
- if (this.Event.ChangePeriodEvent) this.Event.ChangePeriodEvent(name);
1251
- },
1252
-
1253
- OnClickIndexBar:function(chartType,name,index)
1254
- {
1255
- switch(chartType)
1256
- {
1257
- case 'minute':
1258
- this.Minute.JSChart.ChangeIndex(1,name);
1259
- break;
1260
- case 'kline':
1261
- this.KLine.JSChart.ChangeIndex(1,name);
1262
- break;
1263
- default:
1264
- return;
1265
- }
1266
-
1267
- this.UpdateIndexBarSelected();
1268
- },
1269
-
1270
- //一级菜单
1271
- OnClickToolBar:function(chartType,menu,index)
1272
- {
1273
- console.log("[OnClickToolBar] ",chartType,menu,index);
1274
-
1275
- if (chartType=='minute')
1276
- {
1277
- if (this.Minute.Toolbar.Selected==index) this.Minute.Toolbar.Selected=-1;
1278
- else this.Minute.Toolbar.Selected=index;
1279
-
1280
- switch(menu.Text)
1281
- {
1282
- case '副图指标':
1283
- this.UpdateMinuteIndexMenu();
1284
- break;
1285
- }
1286
-
1287
- console.log("[OnClickToolBar] ",this.Minute.Toolbar.Selected);
1288
- }
1289
- else if (chartType=='kline')
1290
- {
1291
- if (this.KLine.Toolbar.Selected==index) this.KLine.Toolbar.Selected=-1;
1292
- else this.KLine.Toolbar.Selected=index;
1293
-
1294
- switch(menu.Text)
1295
- {
1296
- case '复权处理':
1297
- this.UpateKLineRightMenu();
1298
- break;
1299
- case '五彩K线':
1300
- this.UpateColorIndexMenu();
1301
- break;
1302
- case '专家系统':
1303
- this.UpateTradeIndexMenu();
1304
- break;
1305
- case '叠加品种':
1306
- this.UpdateOverlayMenu();
1307
- break;
1308
- case "主图线型":
1309
- this.UpdateKLineTypeMenu();
1310
- break;
1311
- case '窗口个数':
1312
- this.UpdateWindowCountMenu();
1313
- break;
1314
- case '信息地雷':
1315
- this.UpdateKLineInfoMenu();
1316
- break;
1317
- case '工具':
1318
- this.UpdateMouseDragMenu();
1319
- break;
1320
- }
1321
-
1322
- }
1323
-
1324
- },
1325
-
1326
- //2级菜单
1327
- OnClickToolBarMenu:function(chartType,mainMenu,secMenu,index)
1328
- {
1329
- console.log("[OnClickToolBarMenu] ",mainMenu,secMenu,index);
1330
- if (chartType=='minute')
1331
- {
1332
- switch(mainMenu.Text)
1333
- {
1334
- case '副图指标':
1335
- this.Minute.JSChart.ChangeIndex(1,secMenu.Name);
1336
- this.UpdateIndexBarSelected();
1337
- break;
1338
- case '集合竞价':
1339
- if(this.IsShowBeforeData){
1340
- this.Minute.JSChart.JSChartContainer.ShowBeforeData(true);
1341
- var text = '隐藏';
1342
- }else{
1343
- this.Minute.JSChart.JSChartContainer.ShowBeforeData(false);
1344
- var text = '显示';
1345
- }
1346
- this.Minute.Toolbar.Data[MINUTE_TOOLBAR_ID.INDEX_ID_TWO].Menu[0].Name = text;
1347
- this.IsShowBeforeData = !this.IsShowBeforeData;
1348
- break;
1349
- }
1350
- this.Minute.Toolbar.Selected = -1; //下标不相等,隐藏二级菜单
1351
- }
1352
- else if (chartType=='kline')
1353
- {
1354
- switch(mainMenu.Text)
1355
- {
1356
- case '复权处理':
1357
- this.KLine.JSChart.ChangeRight(secMenu.Value);
1358
- break;
1359
- case '五彩K线':
1360
- if (secMenu.OnClick) secMenu.OnClick();
1361
- else this.KLine.JSChart.ChangeInstructionIndex(secMenu.Value)
1362
- break;
1363
- case '专家系统':
1364
- if (secMenu.OnClick) secMenu.OnClick();
1365
- else this.KLine.JSChart.ChangeInstructionIndex(secMenu.Value)
1366
- break;
1367
- case '叠加品种':
1368
- if (secMenu.OnClick) secMenu.OnClick();
1369
- else this.KLine.JSChart.OverlaySymbol(secMenu.Value);
1370
- break;
1371
- case '主图线型':
1372
- this.KLine.JSChart.ChangeKLineDrawType(secMenu.Value);
1373
- break;
1374
- case '窗口个数':
1375
- this.KLine.JSChart.ChangeIndexWindowCount(secMenu.Value);
1376
- break;
1377
- case '信息地雷':
1378
- if (secMenu.OnClick) secMenu.OnClick();
1379
- else this.KLine.JSChart.AddKLineInfo(secMenu.Name,true);
1380
- break;
1381
- case '工具':
1382
- console.log('[StockKLine::OnClickToolBarMenu] click dragmode ',this.KLine.JSChart.JSChartContainer);
1383
- if(secMenu.Value != 3)
1384
- {
1385
- this.KLine.JSChart.JSChartContainer.DragMode=secMenu.Value;
1386
- }
1387
- else
1388
- { //画图工具
1389
- console.log('[StockKLine::OnClickToolBarMenu] click draw tool');
1390
- //获取到工具的名称:线段
1391
- //this.KLine.JSChart.JSChartContainer.CreateChartDrawPicture('名称')
1392
- this.DrawTool.IsShow = true;
1393
- this.$nextTick(() => {
1394
- var styleName = this.isBlackStyle ? 'black': 'white';
1395
- this.$refs.stockdrawtool.ChangeStyle(styleName);
1396
- });
1397
-
1398
- }
1399
- break;
1400
- }
1401
- this.KLine.Toolbar.Selected=-1;
1402
- }
1403
- },
1404
-
1405
- CurrentIcon(name)
1406
- {
1407
- console.log('[StockKLine::CurrentIcon] click', name);
1408
- var self=this;
1409
- this.KLine.JSChart.JSChartContainer.CreateChartDrawPicture(name, function(drawChart) { self.OnFinishDraw(drawChart); });
1410
- if(name==='全部删除'){
1411
- this.KLine.JSChart.JSChartContainer.ClearChartDrawPicture();
1412
- }
1413
- },
1414
-
1415
- OnFinishDraw(drawChart)
1416
- {
1417
- console.log('[StockKLine::OnFinishDraw] finish',drawChart);
1418
- },
1419
-
1420
- OnClickKLineToolbar(obj)
1421
- {
1422
- if (!this.KLine.IsShow && this.KLine.JSChart && this.KLine.JSChart.JSChartContainer) return;
1423
-
1424
- this.KLine.JSChart.JSChartContainer.ChartOperator(obj);
1425
- },
1426
- ContinuedMoveChart(obj){
1427
- var _this = this;
1428
- this.MoveInterval = setInterval(() => {
1429
- _this.OnClickKLineToolbar(obj);
1430
- },100);
1431
- },
1432
- ClearMoveInterval(obj){
1433
- clearInterval(this.MoveInterval);
1434
- this.MoveInterval = null;
1435
- },
1436
- OnMouseDownKLineToolbar(obj)
1437
- {
1438
- this.OnClickKLineToolbar(obj);
1439
-
1440
- this.StatusBtn.StartTime=new Date();
1441
- var self=this;
1442
- this.StatusBtn.Timer= setInterval(function ()
1443
- {
1444
- if (self.StatusBtn.StartTime)
1445
- {
1446
- var endTime=new Date();
1447
- var start=self.StatusBtn.StartTime.getTime();
1448
- var end=endTime.getTime();
1449
- if (end - start > 250)
1450
- {
1451
- self.OnClickKLineToolbar(obj);
1452
- self.StatusBtn.StartTime=new Date(); //重新开始计数
1453
- }
1454
- }
1455
- }, 100);
1456
-
1457
- },
1458
-
1459
- OnMouseUpKLineToolbar()
1460
- {
1461
- this.StatusBtn.StartTime=null;
1462
- if (this.StatusBtn.Timer)
1463
- {
1464
- clearInterval(this.StatusBtn.Timer);
1465
- this.StatusBtn.Timer=null;
1466
- }
1467
- },
1468
-
1469
- isShowBrushTool( brushTool){
1470
- this.DrawTool.IsShow = brushTool;
1471
- },
1472
-
1473
- }
1474
- }
1475
-
1476
-
1477
- </script>
1478
-
1479
-
1480
- <style scoped lang="less">
1481
-
1482
- * {
1483
- font: 14px/normal "Microsoft Yahei";
1484
- color: #666;
1485
- padding: 0;
1486
- margin: 0;
1487
- }
1488
-
1489
- /*链接不显示下划线*/
1490
- a
1491
- {
1492
- text-decoration: none;
1493
- }
1494
-
1495
- .stockkline
1496
- {
1497
- width:100%;
1498
- height:100%;
1499
-
1500
- .brushTool{
1501
- position: relative;
1502
- left:0;
1503
- bottom: 0;
1504
- }
1505
-
1506
- .dialogMask{
1507
- position: fixed;
1508
- top: 0;
1509
- left: 0;
1510
- width: 100%;
1511
- height: 100%;
1512
- background: rgba(0,0,0,.5);
1513
- display: flex;
1514
- justify-content: center;
1515
- align-items: center;
1516
- z-index: 10000;
1517
-
1518
- .dialogWrap{
1519
- width: 320px;
1520
- height: 220px;
1521
- border-radius: 3px;
1522
- background-color: #fff;
1523
-
1524
- .titleWrap{
1525
- height: 45px;
1526
- padding: 10px 20px;
1527
- box-sizing: border-box;
1528
- display: flex;
1529
- flex-direction: row;
1530
- justify-content: space-between;
1531
- align-items: center;
1532
-
1533
- .titleText{
1534
- height: 25px;
1535
- line-height: 25px;
1536
- }
1537
-
1538
- .Wrap{
1539
- height: 25px;
1540
- line-height: 25px;
1541
- cursor: pointer;
1542
- }
1543
- }
1544
-
1545
- .contentWrap{
1546
- padding: 38px 20px;
1547
-
1548
- .inputBox{
1549
- width: 100%;
1550
- height: 28px;
1551
- line-height: 28px;
1552
- border: 1px solid #ededed;
1553
- display: flex;
1554
- flex-direction: row;
1555
-
1556
- input{
1557
- flex-grow: 3;
1558
- padding: 0 10px;
1559
- border: none;
1560
- outline: none;
1561
- }
1562
-
1563
- .copyBtn{
1564
- flex-grow: 1;
1565
- border: 1px solid #217cd9;
1566
- text-align: center;
1567
- line-height: 28px;
1568
- background: transparent;
1569
- outline: none;
1570
- }
1571
- }
1572
- }
1573
-
1574
- .btnWrap{
1575
- height: 30px;
1576
- padding: 0 20px;
1577
- display: flex;
1578
- flex-direction: row;
1579
- justify-content: flex-end;
1580
-
1581
- .okBtn{
1582
- line-height: 30px;
1583
- padding: 0 15px;
1584
- background-color: #217cd9;
1585
- border-radius: 3px;
1586
- color: #fff;
1587
- border: none;
1588
- outline: none;
1589
- }
1590
- .okBtn:hover{
1591
- background-color: #125fd9;
1592
- }
1593
- }
1594
- }
1595
- }
1596
-
1597
- .divchart{
1598
- position: relative;
1599
- .bottomToolForChart{
1600
- width: 400px;
1601
- // width: 50%;
1602
- height: 60px;
1603
- position: absolute;
1604
- bottom: 20px;
1605
- left: 50%;
1606
- display: flex;
1607
- flex-direction: row;
1608
- justify-content: center;
1609
- align-items: center;
1610
- z-index: 999;
1611
- transform: translateX(-50%);
1612
- .iconBg{
1613
- width: 28px;
1614
- height: 28px;
1615
- align-items: center;
1616
- justify-content: center;
1617
- border-radius: 50%;
1618
- background-color: #929291;
1619
- margin-right: 10px;
1620
- display: inline-flex;
1621
- opacity: 0;
1622
- transition: opacity .4s;
1623
- i {
1624
- color: #fff;
1625
- }
1626
- }
1627
- }
1628
- .bottomToolForChart:hover .iconBg{
1629
- opacity: 0.7;
1630
- }
1631
- .bottomToolForChart:hover .iconBg:hover{
1632
- opacity: 1;
1633
- }
1634
- .bottomToolForChart:hover .iconBg.iconDisabled{
1635
- background-color: #929291;
1636
- opacity: 0;
1637
- }
1638
- }
1639
-
1640
- }
1641
-
1642
- .minute
1643
- {
1644
- left:0px;
1645
- top:0px;
1646
- position: relative;
1647
- width:100%;
1648
- height:100%;
1649
- }
1650
-
1651
- .kline
1652
- {
1653
- left:0px;
1654
- top:0px;
1655
- position: relative;
1656
- width:100%;
1657
- height:100%;
1658
- }
1659
-
1660
- /* 周期菜单 */
1661
- .periodbar
1662
- {
1663
- position: relative;
1664
- height: 36px;
1665
- width: 100%;
1666
- background-color: #217cd9;
1667
- padding-left: 36px;
1668
- padding-right: 30px;
1669
- overflow: hidden;
1670
- box-sizing: border-box;
1671
- }
1672
-
1673
- .periodbar .catchImg {
1674
- position: absolute;
1675
- top: 7px;
1676
- right: 20px;
1677
- color: #fff;
1678
- cursor: pointer;
1679
-
1680
- i {
1681
- font-size: 20px;
1682
- color: #fff;
1683
- }
1684
- }
1685
-
1686
- .periodbar .item
1687
- {
1688
- color: #fff;
1689
- display: inline-block;
1690
- font-size: 14px;
1691
- line-height: 1;
1692
- padding: 4px 12px;
1693
- margin-top: 8px;
1694
- margin-right: 26px;
1695
- border-radius: 10px;
1696
- }
1697
-
1698
- .periodbar .item.active
1699
- {
1700
- color: #217cd9;
1701
- background-color: #fff;
1702
- }
1703
-
1704
- /*底部指标*/
1705
- .indexbar
1706
- {
1707
- width: 100%;
1708
- height: 30px;
1709
- display: flex;
1710
- flex-direction: row;
1711
- background-color: #e1ecf2;
1712
- }
1713
-
1714
- .indexbar span
1715
- {
1716
- height: 30px;
1717
- line-height: 30px;
1718
- text-align: center;
1719
- cursor: pointer;
1720
- flex-grow: 1;
1721
- }
1722
-
1723
- .indexbar span.active
1724
- {
1725
- color: #fff;
1726
- background-color: #125fd9;
1727
- }
1728
-
1729
- /*图形操作工具条 */
1730
- .chartbar
1731
- {
1732
- height: 32px;
1733
- line-height: 32px;
1734
- padding-left: 20px;
1735
- border-bottom: 1px solid #d9d9d9;
1736
- position: relative;
1737
- z-index: 999;
1738
-
1739
- /*隐藏菜单*/
1740
- .menuWrap >.hide_item
1741
- {
1742
- display: inline-block;
1743
- cursor: pointer;
1744
- /* height: 32px; */
1745
- line-height: 32px;
1746
- padding-top: 6px;
1747
- position: relative;
1748
- box-sizing: border-box;
1749
- }
1750
-
1751
- .menuWrap >.item
1752
- {
1753
- display: inline-block;
1754
- cursor: pointer;
1755
- line-height: 32px;
1756
- width:104px;
1757
- padding-top: 6px;
1758
- position: relative;
1759
- margin-right: 15px;
1760
- box-sizing: border-box;
1761
-
1762
- .menuOne
1763
- {
1764
- border: 1px solid;
1765
- border-color: transparent;
1766
- border-bottom: none;
1767
- display: inline-block;
1768
- width: 100%;
1769
- height: 26px;
1770
- vertical-align: top;
1771
- padding: 0 14px 6px 14px;
1772
- box-sizing: border-box;
1773
- }
1774
-
1775
- .menuOne:hover,
1776
- .menuOne.light
1777
- {
1778
- border-color: #d9d9d9;
1779
-
1780
- >span
1781
- {
1782
- color: #217cd9;
1783
- }
1784
- }
1785
-
1786
- .menuTwo
1787
- {
1788
- position: absolute;
1789
- background-color: #fff;
1790
- top: 32px;
1791
- left: 0;
1792
- border: 1px solid #d9d9d9;
1793
- border-top: none;
1794
- box-sizing: border-box;
1795
- width: 100%;
1796
-
1797
- >li
1798
- {
1799
- padding: 0 12px;
1800
- line-height: 32px;
1801
- }
1802
-
1803
- >li:hover,
1804
- >li.active
1805
- {
1806
- color: #217cd9;
1807
- }
1808
- }
1809
- }
1810
-
1811
- >.item:nth-child(1)
1812
- {
1813
- .menuOne {
1814
- padding: 0 10px;
1815
- }
1816
- }
1817
-
1818
- >.item:nth-child(7) {
1819
- .menuOne {
1820
- padding: 0 30px;
1821
- }
1822
- }
1823
-
1824
- .iconfont {
1825
- font-size: 13px;
1826
- }
1827
- }
1828
-
1829
- .blackStyle{
1830
- width: 100%;
1831
- .periodbar{
1832
- background-color: #2c3133;
1833
- .item{
1834
- color: #dde2e7;
1835
- }
1836
- .item.active{
1837
- color: #ffffff;
1838
- background-color: #ff8800;
1839
- }
1840
- }
1841
- .chartbar{
1842
- border-bottom: 1px solid #3d4042;
1843
- background-color: #191d1e;
1844
-
1845
- .menuWrap .item {
1846
- .menuTwo{
1847
- border: 1px solid #191d20;
1848
- border-top: none;
1849
- background-color: #2f3438;
1850
-
1851
- >li{
1852
- color: #dde2e7;
1853
- &:hover{
1854
- color: #ff8800;
1855
- }
1856
- }
1857
- }
1858
-
1859
- .menuOne{
1860
- &:hover{
1861
- border-color: #191d20;
1862
- &>span,
1863
- &>.iconfont{
1864
- color: #ff8800;
1865
- }
1866
- }
1867
-
1868
- &.light:hover,
1869
- &.light{
1870
- background-color: #2f3438;
1871
- border-color: #191d20;
1872
- }
1873
-
1874
- &.light>span,
1875
- &.light>.iconfont{
1876
- color: #ff8800;
1877
- }
1878
-
1879
- >span,
1880
- >.iconfont{
1881
- color: #dde2e7;
1882
- }
1883
- }
1884
- }
1885
-
1886
-
1887
-
1888
- }
1889
-
1890
- .indexbar{
1891
- background-color: #191d1e;
1892
-
1893
- span{
1894
- color: #9ca7b3;
1895
-
1896
- &.active{
1897
- color: #ff8800;
1898
- background-color: transparent;
1899
- }
1900
- }
1901
- }
1902
- }
1903
-
1904
- </style>