You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
14 KiB
1 line
14 KiB
{"version":3,"sources":["webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./src/assets/chartOpt/c0001.js"],"names":["global","DOMIterables","forEach","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","prototype","error","$","aFunction","toObject","fails","sloppyArrayMethod","test","nativeSort","sort","FAILS_ON_UNDEFINED","undefined","FAILS_ON_NULL","SLOPPY_METHOD","FORCED","target","proto","forced","comparefn","call","this","IndexedObject","toIndexedObject","nativeJoin","join","ES3_STRINGS","Object","separator","opt","backgroundColor","legend","data","inactiveColor","textStyle","color","tooltip","trigger","axisPointer","animation","type","lineStyle","width","opacity","xAxis","axisLine","gridIndex","axisLabel","show","yAxis","scale","splitLine","id","onZeroAxisIndex","axisTick","grid","left","right","height","bottom","dataZoom","startValue","endValue","handleIcon","handleSize","dataBackground","areaStyle","xAxisIndex","handleStyle","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","series","name","itemStyle","normal","color0","borderColor","borderColor0","compareDate","d1","d2","parseInt","split","daySum","sortedData","cloneDeep","item","map","row","init_days","length","push","keys","key","filter","concat","smooth","yAxisIndex","sum_max","reduce","prev","curr","Infinity","sum_min","sum_abs_max","Math","max","abs","min","index","label","delta_max","delta_min","delta_abs_max"],"mappings":"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","file":"js/chunk-ad72d640.3daefb69.js","sourcesContent":["var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar SLOPPY_METHOD = sloppyArrayMethod('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar SLOPPY_METHOD = sloppyArrayMethod('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import { cloneDeep } from \"lodash\";\r\n\r\nconst opt = {\r\n backgroundColor: '#21202D',\r\n legend: {\r\n data: ['日K', 'MA5', 'MA10', 'MA20', 'MA30'],\r\n inactiveColor: '#777',\r\n textStyle: {\r\n color: '#fff'\r\n }\r\n },\r\n tooltip: {\r\n trigger: 'axis',\r\n axisPointer: {\r\n animation: false,\r\n type: 'cross',\r\n lineStyle: {\r\n color: '#376df4',\r\n width: 2,\r\n opacity: 1\r\n }\r\n },\r\n // formatter: '{b0}: {c0}<br />{b1}: {c1}'\r\n },\r\n xAxis: [{\r\n type: 'category',\r\n // data: dates,\r\n axisLine: { lineStyle: { color: '#8392A5' } }\r\n },\r\n {\r\n type: \"category\",\r\n axisLine: { lineStyle: { color: '#8392A5' } },\r\n gridIndex: 1\r\n },\r\n {\r\n type: \"category\",\r\n axisLabel: { show: false },\r\n gridIndex: 2\r\n }\r\n ],\r\n yAxis: [{\r\n scale: true,\r\n axisLine: { lineStyle: { color: '#8392A5' } },\r\n splitLine: { show: false }\r\n },\r\n {\r\n id: \"sumY\",\r\n scale: true,\r\n axisLine: { lineStyle: { color: '#8392A5' } },\r\n splitLine: { show: false },\r\n gridIndex: 1\r\n },\r\n {\r\n scale: true,\r\n axisLine: { show: false, onZeroAxisIndex: \"sumY\" },\r\n axisLabel: { show: false },\r\n axisTick: { show: false },\r\n splitLine: { show: false },\r\n\r\n gridIndex: 2,\r\n\r\n }\r\n ],\r\n grid: [\r\n // k 线区域\r\n {\r\n left: '5%',\r\n right: '5%',\r\n height: '50%'\r\n },\r\n // 胡立阳打分结果\r\n {\r\n left: '5%',\r\n right: '5%',\r\n bottom: '20%',\r\n height: '15%'\r\n },\r\n // 胡立阳盈利结果\r\n {\r\n left: '5%',\r\n right: '5%',\r\n bottom: '20%',\r\n height: '15%'\r\n }\r\n ],\r\n dataZoom: [{\r\n textStyle: {\r\n color: '#8392A5'\r\n },\r\n startValue: 200,\r\n endValue: 250,\r\n handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',\r\n handleSize: '80%',\r\n dataBackground: {\r\n areaStyle: {\r\n color: '#8392A5'\r\n },\r\n lineStyle: {\r\n opacity: 0.8,\r\n color: '#8392A5'\r\n }\r\n },\r\n xAxisIndex: [0, 1, 2],\r\n handleStyle: {\r\n color: '#fff',\r\n shadowBlur: 3,\r\n shadowColor: 'rgba(0, 0, 0, 0.6)',\r\n shadowOffsetX: 2,\r\n shadowOffsetY: 2\r\n }\r\n }, {\r\n type: 'inside'\r\n }],\r\n animation: false,\r\n series: [\r\n {\r\n type: 'candlestick',\r\n name: '日K',\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n },\r\n ]\r\n};\r\n\r\n\r\nexport default function ({\r\n data,\r\n daySum\r\n}) {\r\n const sortedData = cloneDeep(data)\r\n sortedData.sort(compareDate)\r\n\r\n // X 轴\r\n opt.xAxis.forEach(item => {\r\n item.data = sortedData.map(row => row['日期'])\r\n })\r\n\r\n const init_days = 40\r\n opt.dataZoom[0].startValue = sortedData.length - init_days\r\n opt.dataZoom[0].endValue = sortedData.length\r\n\r\n opt.series = []\r\n\r\n // 日 K\r\n opt.series.push({\r\n type: 'candlestick',\r\n name: '日K',\r\n data: sortedData.map(row => [row['开盘价'], row['收盘价'], row['最低价'], row['最高价']]),\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n })\r\n\r\n // 胡立阳打分数据\r\n opt.legend.data = Object.keys(sortedData[0]).map(key => {\r\n if (key === `sum_${daySum}`)\r\n return key\r\n }).filter(key => key != undefined)\r\n opt.series = opt.series.concat(opt.legend.data.map(key => {\r\n return {\r\n name: key,\r\n type: \"line\",\r\n data: sortedData.map(row => row[key]),\r\n smooth: true,\r\n xAxisIndex: 1,\r\n yAxisIndex: 1,\r\n }\r\n }))\r\n let sum_max = opt.series[1].data.reduce((prev, curr) => {\r\n if (curr > prev) return curr\r\n return prev\r\n }, -Infinity)\r\n let sum_min = opt.series[1].data.reduce((prev, curr) => {\r\n if (curr < prev) return curr\r\n return prev\r\n }, Infinity)\r\n let sum_abs_max = Math.max(Math.abs(sum_max), Math.abs(sum_min))\r\n opt.yAxis[1].max = Math.abs(sum_abs_max)\r\n opt.yAxis[1].min = -1 * Math.abs(sum_abs_max)\r\n\r\n // 增长 / 减少的价格\r\n opt.series = opt.series.concat({\r\n name: \"priceChange\",\r\n type: \"bar\",\r\n data: sortedData.map((row, index) => {\r\n if (!index) return 0\r\n return parseInt((row['收盘价'] - sortedData[index - 1]['收盘价']) * 100) / 100\r\n }),\r\n xAxisIndex: 2,\r\n yAxisIndex: 2,\r\n label: {\r\n show: false\r\n }\r\n })\r\n let delta_max = opt.series[2].data.reduce((prev, curr) => {\r\n if (curr > prev) return curr\r\n return prev\r\n }, -Infinity);\r\n let delta_min = opt.series[2].data.reduce((prev, curr) => {\r\n if (curr < prev) return curr\r\n return prev\r\n }, Infinity)\r\n let delta_abs_max = Math.max(Math.abs(delta_max), Math.abs(delta_min))\r\n opt.yAxis[2].max = Math.abs(delta_abs_max)\r\n opt.yAxis[2].min = -1 * Math.abs(delta_abs_max)\r\n return opt\r\n}\r\n\r\nfunction compareDate(d1, d2) {\r\n // let d1 = new Date(a['日期']);\r\n // let d2 = new Date(b['日期']);\r\n // return d1.getTime() < d2.getTime();\r\n return parseInt(d1['日期'].split(\"-\").join(\"\")) - parseInt(d2['日期'].split(\"-\").join(\"\"))\r\n}"],"sourceRoot":""} |