echarts.ts 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792
  1. import { ReplaceMode } from '@meta2d/chart-diagram';
  2. //注册所有主题
  3. export function registerTheme() {
  4. fetch('theme/dark.json')
  5. .then((r) => r.json())
  6. .then((theme) => {
  7. echarts.registerTheme('le-dark', theme);
  8. });
  9. }
  10. export function changeTheme(theme: string) {
  11. charts.forEach((item) => {
  12. item.list.forEach((chart) => {
  13. if (chart.data.name === 'echarts') {
  14. chart.data.echarts && (chart.data.echarts.theme = theme);
  15. }
  16. });
  17. });
  18. }
  19. export const charts = [
  20. {
  21. name: '折线图',
  22. show: true,
  23. list: [
  24. {
  25. name: '基础折线图',
  26. icon: 'l-line-chart',
  27. data: {
  28. name: 'echarts',
  29. width: 366,
  30. height: 206,
  31. externElement: true,
  32. disableAnchor: true,
  33. echarts: {
  34. option: {
  35. grid: {
  36. top: 20,
  37. bottom: 40,
  38. left: 40,
  39. right: 20,
  40. },
  41. xAxis: {
  42. type: 'category',
  43. data: ['1月', '2月', '3月', '4月', '5月', '6月'],
  44. },
  45. yAxis: {
  46. type: 'value',
  47. max: 100,
  48. min: 0,
  49. interval: 50,
  50. },
  51. series: [
  52. {
  53. type: 'line',
  54. data: [40, 20, 90, 60, 70, 80],
  55. },
  56. ],
  57. },
  58. max: 100,
  59. },
  60. realTimes: [
  61. {
  62. key: 'echarts.option.series.0.data',
  63. label: '数据',
  64. type: 'object',
  65. },
  66. {
  67. key: 'echarts.option',
  68. label: 'echarts',
  69. type: 'object',
  70. },
  71. {
  72. key: 'echarts.max',
  73. label: '最大数量',
  74. type: 'number',
  75. },
  76. ],
  77. },
  78. },
  79. {
  80. name: '多折线图',
  81. icon: 'l-line-chart',
  82. data: {
  83. name: 'echarts',
  84. width: 366,
  85. height: 206,
  86. externElement: true,
  87. disableAnchor: true,
  88. echarts: {
  89. option: {
  90. grid: {
  91. top: 20,
  92. bottom: 40,
  93. left: 40,
  94. right: 20,
  95. },
  96. xAxis: {
  97. type: 'category',
  98. data: ['1月', '2月', '3月', '4月', '5月', '6月'],
  99. },
  100. yAxis: {
  101. type: 'value',
  102. max: 100,
  103. min: 0,
  104. interval: 50,
  105. },
  106. series: [
  107. {
  108. type: 'line',
  109. data: [40, 35, 80, 40, 45, 25],
  110. },
  111. {
  112. type: 'line',
  113. data: [25, 40, 20, 30, 25, 40],
  114. },
  115. ],
  116. },
  117. max: 100,
  118. },
  119. realTimes: [
  120. {
  121. key: 'echarts.option.series.0.data',
  122. label: '数据1',
  123. type: 'object',
  124. },
  125. {
  126. key: 'echarts.option.series.1.data',
  127. label: '数据2',
  128. type: 'object',
  129. },
  130. {
  131. key: 'echarts.option',
  132. label: 'echarts',
  133. type: 'object',
  134. },
  135. {
  136. key: 'echarts.max',
  137. label: '最大数量',
  138. type: 'number',
  139. },
  140. ],
  141. },
  142. },
  143. ],
  144. },
  145. {
  146. name: '面积图',
  147. show: true,
  148. list: [
  149. {
  150. name: '基础面积图',
  151. icon: 'l-line-chart',
  152. data: {
  153. name: 'echarts',
  154. width: 366,
  155. height: 206,
  156. externElement: true,
  157. disableAnchor: true,
  158. },
  159. },
  160. ],
  161. },
  162. {
  163. name: '柱状图',
  164. show: true,
  165. list: [
  166. {
  167. name: '基础柱状图',
  168. icon: 'l-line-chart',
  169. data: {
  170. name: 'echarts',
  171. width: 366,
  172. height: 206,
  173. externElement: true,
  174. disableAnchor: true,
  175. echarts: {
  176. option: {
  177. grid: {
  178. top: 20,
  179. bottom: 40,
  180. left: 40,
  181. right: 20,
  182. },
  183. xAxis: {
  184. type: 'category',
  185. data: ['1月', '2月', '3月', '4月', '5月', '6月'],
  186. },
  187. yAxis: {
  188. type: 'value',
  189. max: 100,
  190. min: 0,
  191. interval: 50,
  192. },
  193. series: [
  194. {
  195. type: 'bar',
  196. data: [40, 20, 90, 60, 70, 80],
  197. },
  198. ],
  199. },
  200. max: 100,
  201. },
  202. realTimes: [
  203. {
  204. key: 'echarts.option.series.0.data',
  205. label: '数据',
  206. type: 'object',
  207. },
  208. {
  209. key: 'echarts.option',
  210. label: 'echarts',
  211. type: 'object',
  212. },
  213. {
  214. key: 'echarts.max',
  215. label: '最大数量',
  216. type: 'number',
  217. },
  218. ],
  219. },
  220. },
  221. {
  222. name: '双柱状图',
  223. icon: 'l-line-chart',
  224. data: {
  225. name: 'echarts',
  226. width: 366,
  227. height: 206,
  228. externElement: true,
  229. disableAnchor: true,
  230. echarts: {
  231. option: {
  232. grid: {
  233. top: 20,
  234. bottom: 40,
  235. left: 40,
  236. right: 20,
  237. },
  238. xAxis: {
  239. type: 'category',
  240. data: ['1月', '2月', '3月', '4月', '5月', '6月'],
  241. },
  242. yAxis: {
  243. type: 'value',
  244. max: 100,
  245. min: 0,
  246. interval: 50,
  247. },
  248. series: [
  249. {
  250. type: 'bar',
  251. data: [40, 20, 90, 60, 70, 80],
  252. },
  253. {
  254. type: 'bar',
  255. data: [50, 70, 20, 30, 70, 40],
  256. },
  257. ],
  258. },
  259. max: 100,
  260. },
  261. realTimes: [
  262. {
  263. key: 'echarts.option.series.0.data',
  264. label: '数据1',
  265. type: 'object',
  266. },
  267. {
  268. key: 'echarts.option.series.1.data',
  269. label: '数据2',
  270. type: 'object',
  271. },
  272. {
  273. key: 'echarts.option',
  274. label: 'echarts',
  275. type: 'object',
  276. },
  277. {
  278. key: 'echarts.max',
  279. label: '最大数量',
  280. type: 'number',
  281. },
  282. ],
  283. },
  284. },
  285. ],
  286. },
  287. {
  288. name: '条形图',
  289. show: true,
  290. list: [],
  291. },
  292. {
  293. name: '饼环图',
  294. show: true,
  295. list: [
  296. {
  297. name: '饼图',
  298. icon: 'l-pie-chart',
  299. data: {
  300. width: 300,
  301. height: 200,
  302. disableAnchor: true,
  303. externElement: true,
  304. name: 'echarts',
  305. echarts: {
  306. option: {
  307. tooltip: {
  308. trigger: 'item',
  309. },
  310. series: [
  311. {
  312. type: 'pie',
  313. radius: ['50%', '70%'],
  314. label: {
  315. color: '#ffffff',
  316. },
  317. data: [
  318. { value: 335, name: '2D' },
  319. { value: 310, name: '3D' },
  320. { value: 234, name: '大屏' },
  321. { value: 135, name: '物联网平台' },
  322. { value: 1548, name: '图形库' },
  323. ],
  324. },
  325. ],
  326. },
  327. replaceMode: ReplaceMode.Replace,
  328. },
  329. realTimes: [
  330. {
  331. key: 'echarts.option.series.0.data',
  332. label: '数据',
  333. type: 'object',
  334. },
  335. {
  336. key: 'echarts.option',
  337. label: 'echarts',
  338. type: 'object',
  339. },
  340. ],
  341. },
  342. },
  343. ],
  344. },
  345. {
  346. name: '散点图',
  347. show: true,
  348. list: [
  349. {
  350. name: '散点图',
  351. icon: 'l-sandiantu',
  352. data: {
  353. width: 300,
  354. height: 200,
  355. disableAnchor: true,
  356. externElement: true,
  357. name: 'echarts',
  358. echarts: {
  359. option: {
  360. grid: {
  361. top: 10,
  362. bottom: 20,
  363. left: 40,
  364. right: 10,
  365. },
  366. xAxis: {
  367. axisLabel: {
  368. fontSize: 12,
  369. color: '#ffffff',
  370. },
  371. },
  372. yAxis: {
  373. axisLabel: {
  374. fontSize: 12,
  375. color: '#ffffff',
  376. },
  377. },
  378. series: [
  379. {
  380. symbolSize: 10,
  381. data: [
  382. [10.0, 8.04],
  383. [8.07, 6.95],
  384. [13.0, 7.58],
  385. [9.05, 8.81],
  386. [11.0, 8.33],
  387. [14.0, 7.66],
  388. [13.4, 6.81],
  389. [10.0, 6.33],
  390. [14.0, 8.96],
  391. [12.5, 6.82],
  392. [9.15, 7.2],
  393. [11.5, 7.2],
  394. [3.03, 4.23],
  395. [12.2, 7.83],
  396. [2.02, 4.47],
  397. [1.05, 3.33],
  398. [4.05, 4.96],
  399. [6.03, 7.24],
  400. [12.0, 6.26],
  401. [12.0, 8.84],
  402. [7.08, 5.82],
  403. [5.02, 5.68],
  404. ],
  405. type: 'scatter',
  406. },
  407. ],
  408. },
  409. replaceMode: ReplaceMode.Replace,
  410. },
  411. realTimes: [
  412. {
  413. key: 'echarts.option.series.0.data',
  414. label: '数据',
  415. type: 'object',
  416. },
  417. {
  418. key: 'echarts.option',
  419. label: 'echarts',
  420. type: 'object',
  421. },
  422. ],
  423. },
  424. },
  425. ],
  426. },
  427. {
  428. name: '雷达图',
  429. show: true,
  430. list: [
  431. {
  432. name: '雷达图',
  433. icon: 'l-leidatu',
  434. data: {
  435. width: 300,
  436. height: 200,
  437. disableAnchor: true,
  438. externElement: true,
  439. name: 'echarts',
  440. echarts: {
  441. option: {
  442. grid: {
  443. top: 20,
  444. bottom: 30,
  445. left: 40,
  446. right: 10,
  447. },
  448. radar: {
  449. // shape: 'circle',
  450. indicator: [
  451. { name: 'Sales', max: 6500 },
  452. { name: 'Administration', max: 16000 },
  453. { name: 'Information Technology', max: 30000 },
  454. { name: 'Customer Support', max: 38000 },
  455. { name: 'Development', max: 52000 },
  456. { name: 'Marketing', max: 25000 },
  457. ],
  458. },
  459. series: [
  460. {
  461. name: 'Budget vs spending',
  462. type: 'radar',
  463. data: [
  464. {
  465. value: [4200, 3000, 20000, 35000, 50000, 18000],
  466. name: 'Allocated Budget',
  467. },
  468. {
  469. value: [5000, 14000, 28000, 26000, 42000, 21000],
  470. name: 'Actual Spending',
  471. },
  472. ],
  473. },
  474. ],
  475. },
  476. replaceMode: ReplaceMode.Replace,
  477. },
  478. realTimes: [
  479. {
  480. key: 'echarts.option.series.0.data',
  481. label: '数据',
  482. type: 'object',
  483. },
  484. {
  485. key: 'echarts.option',
  486. label: 'echarts',
  487. type: 'object',
  488. },
  489. ],
  490. },
  491. },
  492. ],
  493. },
  494. {
  495. name: '关系图',
  496. show: true,
  497. list: [],
  498. },
  499. {
  500. name: '桑葚图',
  501. show: true,
  502. list: [
  503. {
  504. name: '桑基图',
  505. icon: 'l-sangshentu',
  506. data: {
  507. width: 300,
  508. height: 200,
  509. disableAnchor: true,
  510. externElement: true,
  511. name: 'echarts',
  512. echarts: {
  513. option: {
  514. series: {
  515. type: 'sankey',
  516. layout: 'none',
  517. emphasis: {
  518. focus: 'adjacency',
  519. },
  520. data: [
  521. {
  522. name: 'a',
  523. },
  524. {
  525. name: 'b',
  526. },
  527. {
  528. name: 'a1',
  529. },
  530. {
  531. name: 'a2',
  532. },
  533. {
  534. name: 'b1',
  535. },
  536. {
  537. name: 'c',
  538. },
  539. ],
  540. links: [
  541. {
  542. source: 'a',
  543. target: 'a1',
  544. value: 5,
  545. },
  546. {
  547. source: 'a',
  548. target: 'a2',
  549. value: 3,
  550. },
  551. {
  552. source: 'b',
  553. target: 'b1',
  554. value: 8,
  555. },
  556. {
  557. source: 'a',
  558. target: 'b1',
  559. value: 3,
  560. },
  561. {
  562. source: 'b1',
  563. target: 'a1',
  564. value: 1,
  565. },
  566. {
  567. source: 'b1',
  568. target: 'c',
  569. value: 2,
  570. },
  571. ],
  572. lineStyle: {
  573. color: 'source',
  574. curveness: 0.5,
  575. },
  576. label: {
  577. color: '#ffffff',
  578. fontSize: 10,
  579. },
  580. },
  581. },
  582. replaceMode: ReplaceMode.Replace,
  583. },
  584. realTimes: [
  585. {
  586. key: 'echarts.option.series.0.data',
  587. label: '数据',
  588. type: 'object',
  589. },
  590. {
  591. key: 'echarts.option',
  592. label: 'echarts',
  593. type: 'object',
  594. },
  595. ],
  596. },
  597. },
  598. ],
  599. },
  600. {
  601. name: '仪表盘',
  602. show: true,
  603. list: [
  604. {
  605. name: '仪表盘',
  606. icon: 'l-dashboard-chart',
  607. data: {
  608. width: 200,
  609. height: 200,
  610. disableAnchor: true,
  611. externElement: true,
  612. name: 'echarts',
  613. echarts: {
  614. option: {
  615. tooltip: {
  616. formatter: '{a} <br/>{b} : {c}%',
  617. },
  618. series: [
  619. {
  620. type: 'gauge',
  621. axisLine: {
  622. roundCap: true,
  623. },
  624. progress: {
  625. show: true,
  626. roundCap: true,
  627. },
  628. data: [{ value: 70 }],
  629. },
  630. ],
  631. },
  632. replaceMode: ReplaceMode.Replace,
  633. },
  634. realTimes: [
  635. {
  636. key: 'echarts.option.series.0.data',
  637. label: '数据',
  638. type: 'object',
  639. },
  640. {
  641. key: 'echarts.option',
  642. label: 'echarts',
  643. type: 'object',
  644. },
  645. ],
  646. },
  647. },
  648. ],
  649. },
  650. {
  651. name: '乐吾乐Charts',
  652. show: true,
  653. list: [
  654. {
  655. name: '折线图',
  656. icon: 'l-line-chart',
  657. data: {
  658. name: 'lineChart',
  659. width: 400,
  660. disableAnchor: true,
  661. height: 200,
  662. chartsColor: [
  663. '#1890ff',
  664. '#2FC25B',
  665. '#FACC14',
  666. '#c23531',
  667. '#2f4554',
  668. '#61a0a8',
  669. '#d48265',
  670. ],
  671. xAxisData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  672. smooth: true,
  673. data: [
  674. [1820, 1932, 1901, 1934, 1990, 1830, 1920],
  675. [1710, 1932, 1901, 1834, 1700, 1830, 1720],
  676. ],
  677. },
  678. },
  679. {
  680. name: '柱状图',
  681. icon: 'l-bar-chart',
  682. data: {
  683. name: 'histogram',
  684. x: 600,
  685. y: 100,
  686. width: 400,
  687. height: 200,
  688. disableAnchor: true,
  689. chartsColor: [
  690. '#1890ff',
  691. '#2FC25B',
  692. '#FACC14',
  693. '#c23531',
  694. '#2f4554',
  695. '#61a0a8',
  696. '#d48265',
  697. ],
  698. xAxisData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  699. data: [
  700. [120, 200, 150, 80, 70, 110, 130],
  701. [140, 250, 150, 80, 60, 10, 30],
  702. [40, 50, 180, 210, 60, 70, 30],
  703. ],
  704. },
  705. },
  706. {
  707. name: '饼图',
  708. icon: 'l-pie-chart',
  709. data: {
  710. name: 'pieChart',
  711. x: 100,
  712. y: 300,
  713. width: 400,
  714. height: 200,
  715. disableAnchor: true,
  716. chartsColor: [
  717. '#1890ff',
  718. '#36CBCB',
  719. '#2FC25B',
  720. '#FACC14',
  721. '#F2637B',
  722. '#fc8452',
  723. '#9a60b4',
  724. '#ea7ccc',
  725. ],
  726. data: [
  727. [
  728. { value: 1048, name: 'Search Engine' },
  729. { value: 735, name: 'Direct' },
  730. { value: 580, name: 'Email' },
  731. { value: 484, name: 'Union Ads' },
  732. { value: 300, name: 'Video Ads' },
  733. ],
  734. [
  735. { value: 1548, name: 'Search' },
  736. { value: 775, name: 'Direct' },
  737. { value: 679, name: 'Market' },
  738. ],
  739. ],
  740. chartsRadius: [
  741. ['60%', '70%'],
  742. ['0%', '50%'],
  743. ],
  744. },
  745. },
  746. {
  747. name: '仪表盘',
  748. icon: 'l-dashboard-chart',
  749. data: {
  750. name: 'gauge',
  751. x: 600,
  752. y: 300,
  753. width: 400,
  754. height: 400,
  755. disableAnchor: true,
  756. value: 90,
  757. unit: 'm/s',
  758. axisLine: [
  759. [0.3, '#67e0e3'],
  760. [0.7, '#37a2da'],
  761. [1, '#fd666d'],
  762. ],
  763. animateCycle: 1,
  764. keepAnimateState: 0,
  765. },
  766. },
  767. {
  768. name: '时钟',
  769. icon: 'l-07',
  770. data: {
  771. name: 'gauge',
  772. x: 600,
  773. y: 300,
  774. width: 400,
  775. height: 400,
  776. disableAnchor: true,
  777. isClock: true,
  778. startAngle: 90,
  779. endAngle: -270,
  780. min: 0,
  781. max: 12,
  782. splitNumber: 12,
  783. background: '#3A3A3A',
  784. color: '#C0911F',
  785. },
  786. },
  787. ],
  788. },
  789. ];