widget-line-compare.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. /*
  2. * @Descripttion: 折线对比图 json
  3. * @version:
  4. * @Author: foming
  5. * @Date: 2021-08-29 07:39:35
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2021-09-28 14:15:42
  8. */
  9. export const widgetLineCompare = {
  10. code: 'widgetLineCompareChart',
  11. type: 'chart',
  12. label: '折线对比图',
  13. icon: 'iconzhexian',
  14. options: {
  15. // 配置
  16. setup: [
  17. {
  18. type: 'el-input-text',
  19. label: '图层名称',
  20. name: 'layerName',
  21. required: false,
  22. placeholder: '',
  23. value: '折线对比图',
  24. },
  25. {
  26. type: 'vue-color',
  27. label: '背景颜色',
  28. name: 'background',
  29. required: false,
  30. placeholder: '',
  31. value: ''
  32. },
  33. [
  34. {
  35. name: '折线设置',
  36. list: [
  37. {
  38. type: 'el-switch',
  39. label: '标记点',
  40. name: 'markPoint',
  41. required: false,
  42. placeholder: '',
  43. value: true,
  44. },
  45. {
  46. type: 'el-slider',
  47. label: '点大小',
  48. name: 'pointSize',
  49. required: false,
  50. placeholder: '',
  51. value: 5,
  52. },
  53. {
  54. type: 'el-switch',
  55. label: '平滑曲线',
  56. name: 'smoothCurve',
  57. required: false,
  58. placeholder: '',
  59. value: true,
  60. },
  61. {
  62. type: 'el-switch',
  63. label: '面积堆积',
  64. name: 'area',
  65. required: false,
  66. placeholder: '',
  67. value: true,
  68. },
  69. {
  70. type: 'el-slider',
  71. label: '面积厚度',
  72. name: 'areaThickness',
  73. required: false,
  74. placeholder: '',
  75. value: 5,
  76. },
  77. {
  78. type: 'el-slider',
  79. label: '线条宽度',
  80. name: 'lineWidth',
  81. required: false,
  82. placeholder: '',
  83. value: 2,
  84. },
  85. ],
  86. },
  87. {
  88. name: '标题设置',
  89. list: [
  90. {
  91. type: 'el-switch',
  92. label: '标题',
  93. name: 'isNoTitle',
  94. required: false,
  95. placeholder: '',
  96. value: true,
  97. },
  98. {
  99. type: 'el-input-text',
  100. label: '标题',
  101. name: 'titleText',
  102. required: false,
  103. placeholder: '',
  104. value: '',
  105. },
  106. {
  107. type: 'vue-color',
  108. label: '字体颜色',
  109. name: 'textColor',
  110. required: false,
  111. placeholder: '',
  112. value: '#FFD700'
  113. },
  114. {
  115. type: 'el-select',
  116. label: '字体粗细',
  117. name: 'textFontWeight',
  118. required: false,
  119. placeholder: '',
  120. selectOptions: [
  121. {code: 'normal', name: '正常'},
  122. {code: 'bold', name: '粗体'},
  123. {code: 'bolder', name: '特粗体'},
  124. {code: 'lighter', name: '细体'}
  125. ],
  126. value: 'normal'
  127. },
  128. {
  129. type: 'el-input-number',
  130. label: '字体大小',
  131. name: 'textFontSize',
  132. required: false,
  133. placeholder: '',
  134. value: 20
  135. },
  136. {
  137. type: 'el-select',
  138. label: '字体位置',
  139. name: 'textAlign',
  140. required: false,
  141. placeholder: '',
  142. selectOptions: [
  143. {code: 'center', name: '居中'},
  144. {code: 'left', name: '左对齐'},
  145. {code: 'right', name: '右对齐'},
  146. ],
  147. value: 'center'
  148. },
  149. ],
  150. },
  151. {
  152. name: '图例操作',
  153. list: [
  154. {
  155. type: 'el-switch',
  156. label: '图例显示',
  157. name: 'isShowLegend',
  158. required: false,
  159. placeholder: '',
  160. value: true,
  161. },
  162. {
  163. type: 'el-input-text',
  164. label: '图例名称',
  165. name: 'legendName',
  166. required: false,
  167. placeholder: '多值以'|'隔开',
  168. value: ''
  169. },
  170. {
  171. type: 'vue-color',
  172. label: '字体颜色',
  173. name: 'legendColor',
  174. required: false,
  175. placeholder: '',
  176. value: '#fff',
  177. },
  178. {
  179. type: 'el-input-number',
  180. label: '字体字号',
  181. name: 'legendFontSize',
  182. required: false,
  183. placeholder: '',
  184. value: 12,
  185. },
  186. {
  187. type: 'el-input-number',
  188. label: '图例宽度',
  189. name: 'legendWidth',
  190. required: false,
  191. placeholder: '',
  192. value: 12,
  193. },
  194. {
  195. type: 'el-select',
  196. label: '横向位置',
  197. name: 'lateralPosition',
  198. required: false,
  199. placeholder: '',
  200. selectOptions: [
  201. {code: 'center', name: '居中'},
  202. {code: 'left', name: '左对齐'},
  203. {code: 'right', name: '右对齐'},
  204. ],
  205. value: 'center'
  206. },
  207. {
  208. type: 'el-select',
  209. label: '纵向位置',
  210. name: 'longitudinalPosition',
  211. required: false,
  212. placeholder: '',
  213. selectOptions: [
  214. {code: 'top', name: '顶部'},
  215. {code: 'bottom', name: '底部'},
  216. ],
  217. value: 'top'
  218. },
  219. {
  220. type: 'el-select',
  221. label: '布局前置',
  222. name: 'layoutFront',
  223. required: false,
  224. placeholder: '',
  225. selectOptions: [
  226. {code: 'vertical', name: '竖排'},
  227. {code: 'horizontal', name: '横排'},
  228. ],
  229. value: 'horizontal'
  230. },
  231. ],
  232. },
  233. {
  234. name: 'X轴设置',
  235. list: [
  236. {
  237. type: 'el-switch',
  238. label: '显示',
  239. name: 'isShowX',
  240. required: false,
  241. placeholder: '',
  242. value: true,
  243. },
  244. {
  245. type: 'el-input-text',
  246. label: '坐标名',
  247. name: 'xName',
  248. required: false,
  249. placeholder: '',
  250. value: ''
  251. },
  252. {
  253. type: 'vue-color',
  254. label: '坐标名颜色',
  255. name: 'nameColorX',
  256. required: false,
  257. placeholder: '',
  258. value: '#fff',
  259. },
  260. {
  261. type: 'el-input-number',
  262. label: '坐标字号',
  263. name: 'nameFontSizeX',
  264. required: false,
  265. placeholder: '',
  266. value: 14,
  267. },
  268. {
  269. type: 'el-switch',
  270. label: '数值居中',
  271. name: 'boundaryX',
  272. required: false,
  273. placeholder: '',
  274. value: true,
  275. },
  276. {
  277. type: 'vue-color',
  278. label: '数值颜色',
  279. name: 'colorX',
  280. required: false,
  281. placeholder: '',
  282. value: '#fff',
  283. },
  284. {
  285. type: 'el-input-number',
  286. label: '数值字号',
  287. name: 'fontSizeX',
  288. required: false,
  289. placeholder: '',
  290. value: 14,
  291. },
  292. {
  293. type: 'el-input-number',
  294. label: '数值间隔',
  295. name: 'splitNumberX',
  296. required: false,
  297. placeholder: '',
  298. value: ''
  299. },
  300. {
  301. type: 'el-switch',
  302. label: '刻度线',
  303. name: 'tickLineX',
  304. require: false,
  305. placeholder: '',
  306. value: true,
  307. },
  308. {
  309. type: 'el-switch',
  310. label: 'X轴线',
  311. name: 'lineX',
  312. require: false,
  313. placeholder: '',
  314. value: true,
  315. },
  316. {
  317. type: 'vue-color',
  318. label: '轴颜色',
  319. name: 'lineColorX',
  320. required: false,
  321. placeholder: '',
  322. value: '#fff',
  323. },
  324. ],
  325. },
  326. {
  327. name: '上y轴设置',
  328. list: [
  329. {
  330. type: 'el-switch',
  331. label: '显示',
  332. name: 'isShowYTop',
  333. required: false,
  334. placeholder: '',
  335. value: true,
  336. },
  337. {
  338. type: 'el-input-text',
  339. label: '坐标名',
  340. name: 'textNameYTop',
  341. require: false,
  342. placeholder: '',
  343. value: ''
  344. },{
  345. type: 'vue-color',
  346. label: '坐标名颜色',
  347. name: 'nameColorYTop',
  348. required: false,
  349. placeholder: '',
  350. value: '#fff',
  351. },
  352. {
  353. type: 'el-input-number',
  354. label: '坐标字号',
  355. name: 'namefontSizeYTop',
  356. required: false,
  357. placeholder: '',
  358. value: 14,
  359. },
  360. {
  361. type: 'el-switch',
  362. label: '缩放',
  363. name: 'scaleYTop',
  364. required: false,
  365. placeholder: '',
  366. value: false,
  367. },
  368. {
  369. type: 'el-input-number',
  370. label: '数值切分',
  371. name: 'splitNumberYTop',
  372. required: false,
  373. placeholder: '',
  374. value: ''
  375. },
  376. {
  377. type: 'vue-color',
  378. label: '数值颜色',
  379. name: 'colorYTop',
  380. required: false,
  381. placeholder: '',
  382. value: '#fff',
  383. },
  384. {
  385. type: 'el-input-number',
  386. label: '数值字号',
  387. name: 'fontSizeYTop',
  388. required: false,
  389. placeholder: '',
  390. value: 14,
  391. },
  392. {
  393. type: 'el-switch',
  394. label: '刻度线',
  395. name: 'tickLineYTop',
  396. require: false,
  397. placeholder: '',
  398. value: true,
  399. },
  400. {
  401. type: 'el-switch',
  402. label: 'y轴线',
  403. name: 'lineYTop',
  404. require: false,
  405. placeholder: '',
  406. value: true,
  407. },
  408. {
  409. type: 'vue-color',
  410. label: '轴颜色',
  411. name: 'lineColorYTop',
  412. required: false,
  413. placeholder: '',
  414. value: '#fff',
  415. },
  416. {
  417. type: 'el-switch',
  418. label: '分割线',
  419. name: 'splitLineYTop',
  420. require: false,
  421. placeholder: '',
  422. value: false,
  423. },
  424. {
  425. type: 'vue-color',
  426. label: '分割线颜色',
  427. name: 'splitLineColorYTop',
  428. required: false,
  429. placeholder: '',
  430. value: '#fff',
  431. },
  432. {
  433. type: 'el-input-number',
  434. label: '分割线宽度',
  435. name: 'splitLinefontSizeYTop',
  436. required: false,
  437. placeholder: '',
  438. value: 1,
  439. },
  440. ],
  441. },
  442. {
  443. name: '下y轴设置',
  444. list: [
  445. {
  446. type: 'el-switch',
  447. label: '显示',
  448. name: 'isShowYBottom',
  449. required: false,
  450. placeholder: '',
  451. value: true,
  452. },
  453. {
  454. type: 'el-input-text',
  455. label: '坐标名',
  456. name: 'textNameYBottom',
  457. require: false,
  458. placeholder: '',
  459. value: ''
  460. },{
  461. type: 'vue-color',
  462. label: '坐标名颜色',
  463. name: 'nameColorYBottom',
  464. required: false,
  465. placeholder: '',
  466. value: '#fff',
  467. },
  468. {
  469. type: 'el-input-number',
  470. label: '坐标字号',
  471. name: 'namefontSizeYBottom',
  472. required: false,
  473. placeholder: '',
  474. value: 14,
  475. },
  476. {
  477. type: 'el-switch',
  478. label: '缩放',
  479. name: 'scaleYBottom',
  480. required: false,
  481. placeholder: '',
  482. value: false,
  483. },
  484. {
  485. type: 'el-input-number',
  486. label: '数值切分',
  487. name: 'splitNumberYBottom',
  488. required: false,
  489. placeholder: '',
  490. value: ''
  491. },
  492. {
  493. type: 'vue-color',
  494. label: '数值颜色',
  495. name: 'colorYBottom',
  496. required: false,
  497. placeholder: '',
  498. value: '#fff',
  499. },
  500. {
  501. type: 'el-input-number',
  502. label: '数值字号',
  503. name: 'fontSizeYBottom',
  504. required: false,
  505. placeholder: '',
  506. value: 14,
  507. },
  508. {
  509. type: 'el-switch',
  510. label: '刻度线',
  511. name: 'tickLineYBottom',
  512. require: false,
  513. placeholder: '',
  514. value: true,
  515. },
  516. {
  517. type: 'el-switch',
  518. label: 'y轴线',
  519. name: 'lineYBottom',
  520. require: false,
  521. placeholder: '',
  522. value: true,
  523. },
  524. {
  525. type: 'vue-color',
  526. label: '轴颜色',
  527. name: 'lineColorYBottom',
  528. required: false,
  529. placeholder: '',
  530. value: '#fff',
  531. },
  532. {
  533. type: 'el-switch',
  534. label: '分割线',
  535. name: 'splitLineYBottom',
  536. require: false,
  537. placeholder: '',
  538. value: false,
  539. },
  540. {
  541. type: 'vue-color',
  542. label: '分割线颜色',
  543. name: 'splitLineColorYBottom',
  544. required: false,
  545. placeholder: '',
  546. value: '#fff',
  547. },
  548. {
  549. type: 'el-input-number',
  550. label: '分割线宽度',
  551. name: 'splitLinefontSizeYBottom',
  552. required: false,
  553. placeholder: '',
  554. value: 1,
  555. },
  556. ],
  557. },
  558. {
  559. name: '数值设定',
  560. list: [
  561. {
  562. type: 'el-switch',
  563. label: '显示',
  564. name: 'isShow',
  565. required: false,
  566. placeholder: '',
  567. value: true
  568. },
  569. {
  570. type: 'el-input-number',
  571. label: '字体大小',
  572. name: 'fontSize',
  573. required: false,
  574. placeholder: '',
  575. value: 14
  576. },
  577. {
  578. type: 'vue-color',
  579. label: '字体颜色',
  580. name: 'subTextColor',
  581. required: false,
  582. placeholder: '',
  583. value: '#fff'
  584. },
  585. {
  586. type: 'el-select',
  587. label: '字体粗细',
  588. name: 'fontWeight',
  589. required: false,
  590. placeholder: '',
  591. selectOptions: [
  592. {code: 'normal', name: '正常'},
  593. {code: 'bold', name: '粗体'},
  594. {code: 'bolder', name: '特粗体'},
  595. {code: 'lighter', name: '细体'}
  596. ],
  597. value: 'normal'
  598. },
  599. ],
  600. },
  601. {
  602. name: '提示语设置',
  603. list: [
  604. {
  605. type: 'el-switch',
  606. label: '显示',
  607. name: 'tipShow',
  608. required: false,
  609. placeholder: '',
  610. value: true,
  611. },
  612. {
  613. type: 'el-select',
  614. label: '类型',
  615. name: 'tipType',
  616. required: false,
  617. placeholder: '',
  618. selectOptions: [
  619. {code: 'line', name: '线形'},
  620. {code: 'cross', name: '十字形'},
  621. ],
  622. value: 'line'
  623. },
  624. {
  625. type: 'vue-color',
  626. label: '颜色',
  627. name: 'tipColor',
  628. required: false,
  629. placeholder: '#e68b55',
  630. },
  631. ],
  632. },
  633. {
  634. name: '坐标轴边距设置',
  635. list: [
  636. {
  637. type: 'el-slider',
  638. label: '左边距(像素)',
  639. name: 'marginLeft',
  640. required: false,
  641. placeholder: '',
  642. value: 20,
  643. },
  644. {
  645. type: 'el-slider',
  646. label: '右边距(像素)',
  647. name: 'marginRight',
  648. required: false,
  649. placeholder: '',
  650. value: 50,
  651. },
  652. {
  653. type: 'el-slider',
  654. label: '顶边距(像素)',
  655. name: 'marginTop',
  656. required: false,
  657. placeholder: '',
  658. value: 40,
  659. },
  660. {
  661. type: 'el-slider',
  662. label: '底边距(像素)',
  663. name: 'marginBottom',
  664. required: false,
  665. placeholder: '',
  666. value: 40,
  667. },
  668. ],
  669. },
  670. {
  671. name: '自定义配色',
  672. list: [
  673. {
  674. type: 'customColor',
  675. label: '',
  676. name: 'customColor',
  677. required: false,
  678. value: [{color: '#36c5e7'}, {color: '#e68b55'}],
  679. },
  680. ],
  681. },
  682. ],
  683. ],
  684. // 数据
  685. data: [
  686. {
  687. type: 'el-radio-group',
  688. label: '数据类型',
  689. name: 'dataType',
  690. require: false,
  691. placeholder: '',
  692. selectValue: true,
  693. selectOptions: [
  694. {
  695. code: 'staticData',
  696. name: '静态数据',
  697. },
  698. {
  699. code: 'dynamicData',
  700. name: '动态数据',
  701. },
  702. ],
  703. value: 'staticData',
  704. },
  705. {
  706. type: 'el-input-number',
  707. label: '刷新时间(毫秒)',
  708. name: 'refreshTime',
  709. relactiveDom: 'dataType',
  710. relactiveDomValue: 'dynamicData',
  711. value: 5000
  712. },
  713. {
  714. type: 'el-button',
  715. label: '静态数据',
  716. name: 'staticData',
  717. required: false,
  718. placeholder: '',
  719. relactiveDom: 'dataType',
  720. relactiveDomValue: 'staticData',
  721. value: [
  722. {"axis":"07-25","name":"success","data":"2"},
  723. {"axis":"07-25","name":"fail","data":"10"},
  724. {"axis":"07-26","name":"success","data":"5"},
  725. {"axis":"07-26","name":"fail","data":"20"},
  726. {"axis":"07-27","name":"success","data":"15"},
  727. {"axis":"07-27","name":"fail","data":"30"},
  728. {"axis":"07-28","name":"success","data":"10"},
  729. {"axis":"07-28","name":"fail","data":"12"},
  730. {"axis":"07-29","name":"success","data":"9"},
  731. {"axis":"07-29","name":"fail","data":"16"},
  732. ],
  733. },
  734. {
  735. type: 'dycustComponents',
  736. label: '',
  737. name: 'dynamicData',
  738. required: false,
  739. placeholder: '',
  740. relactiveDom: 'dataType',
  741. relactiveDomValue: 'dynamicData',
  742. chartType: 'widget-stackchart',
  743. dictKey: 'STACK_PROPERTIES',
  744. value: '',
  745. },
  746. ],
  747. // 坐标
  748. position: [
  749. {
  750. type: 'el-input-number',
  751. label: '左边距',
  752. name: 'left',
  753. required: false,
  754. placeholder: '',
  755. value: 0,
  756. },
  757. {
  758. type: 'el-input-number',
  759. label: '上边距',
  760. name: 'top',
  761. required: false,
  762. placeholder: '',
  763. value: 0,
  764. },
  765. {
  766. type: 'el-input-number',
  767. label: '宽度',
  768. name: 'width',
  769. required: false,
  770. placeholder: '该容器在1920px大屏中的宽度',
  771. value: 400,
  772. },
  773. {
  774. type: 'el-input-number',
  775. label: '高度',
  776. name: 'height',
  777. required: false,
  778. placeholder: '该容器在1080px大屏中的高度',
  779. value: 200,
  780. },
  781. ],
  782. }
  783. }