widget-barchart.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. /*
  2. * @Descripttion: 柱状图json
  3. * @version:
  4. * @Author: qianlishi
  5. * @Date: 2021-08-29 07:21:45
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2021-09-28 14:08:29
  8. */
  9. export const widgetBarchart = {
  10. code: 'widget-barchart',
  11. type: 'chart',
  12. label: '柱状图',
  13. icon: 'iconzhuzhuangtu',
  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: 'el-switch',
  27. label: '竖展示',
  28. name: 'verticalShow',
  29. required: false,
  30. placeholder: '',
  31. value: false,
  32. },
  33. {
  34. type: 'vue-color',
  35. label: '背景颜色',
  36. name: 'background',
  37. required: false,
  38. placeholder: '',
  39. value: ''
  40. },
  41. [
  42. {
  43. name: '柱体设置',
  44. list: [
  45. {
  46. type: 'el-slider',
  47. label: '最大宽度',
  48. name: 'maxWidth',
  49. required: false,
  50. placeholder: '',
  51. value: 10,
  52. },
  53. {
  54. type: 'el-slider',
  55. label: '圆角',
  56. name: 'radius',
  57. require: false,
  58. placeholder: '',
  59. value: 5,
  60. },
  61. {
  62. type: 'el-slider',
  63. label: '最小高度',
  64. name: 'minHeight',
  65. require: false,
  66. placeholder: '',
  67. value: 0,
  68. },
  69. ],
  70. },
  71. {
  72. name: '标题设置',
  73. list: [
  74. {
  75. type: 'el-switch',
  76. label: '标题',
  77. name: 'isNoTitle',
  78. required: false,
  79. placeholder: '',
  80. value: true,
  81. },
  82. {
  83. type: 'el-input-text',
  84. label: '标题',
  85. name: 'titleText',
  86. required: false,
  87. placeholder: '',
  88. value: '',
  89. },
  90. {
  91. type: 'vue-color',
  92. label: '字体颜色',
  93. name: 'textColor',
  94. required: false,
  95. placeholder: '',
  96. value: '#FFD700'
  97. },
  98. {
  99. type: 'el-select',
  100. label: '字体粗细',
  101. name: 'textFontWeight',
  102. required: false,
  103. placeholder: '',
  104. selectOptions: [
  105. {code: 'normal', name: '正常'},
  106. {code: 'bold', name: '粗体'},
  107. {code: 'bolder', name: '特粗体'},
  108. {code: 'lighter', name: '细体'}
  109. ],
  110. value: 'normal'
  111. },
  112. {
  113. type: 'el-input-number',
  114. label: '字体字号',
  115. name: 'textFontSize',
  116. required: false,
  117. placeholder: '',
  118. value: 20
  119. },
  120. {
  121. type: 'el-select',
  122. label: '字体位置',
  123. name: 'textAlign',
  124. required: false,
  125. placeholder: '',
  126. selectOptions: [
  127. {code: 'center', name: '居中'},
  128. {code: 'left', name: '左对齐'},
  129. {code: 'right', name: '右对齐'},
  130. ],
  131. value: 'center'
  132. },
  133. {
  134. type: 'el-input-text',
  135. label: '副标题',
  136. name: 'subText',
  137. required: false,
  138. placeholder: '',
  139. value: ''
  140. },
  141. {
  142. type: 'vue-color',
  143. label: '字体颜色',
  144. name: 'subTextColor',
  145. required: false,
  146. placeholder: '',
  147. value: 'rgba(30, 144, 255, 1)'
  148. },
  149. {
  150. type: 'el-select',
  151. label: '字体粗细',
  152. name: 'subTextFontWeight',
  153. required: false,
  154. placeholder: '',
  155. selectOptions: [
  156. {code: 'normal', name: '正常'},
  157. {code: 'bold', name: '粗体'},
  158. {code: 'bolder', name: '特粗体'},
  159. {code: 'lighter', name: '细体'}
  160. ],
  161. value: 'normal'
  162. },
  163. {
  164. type: 'el-input-number',
  165. label: '字体字号',
  166. name: 'subTextFontSize',
  167. required: false,
  168. placeholder: '',
  169. value: 20
  170. },
  171. ],
  172. },
  173. {
  174. name: 'X轴设置',
  175. list: [
  176. {
  177. type: 'el-switch',
  178. label: '显示',
  179. name: 'hideX',
  180. required: false,
  181. placeholder: '',
  182. value: true,
  183. },
  184. {
  185. type: 'el-input-text',
  186. label: '坐标名',
  187. name: 'xName',
  188. required: false,
  189. placeholder: '',
  190. value: ''
  191. },
  192. {
  193. type: 'vue-color',
  194. label: '坐标名颜色',
  195. name: 'nameColorX',
  196. required: false,
  197. placeholder: '',
  198. value: '#fff'
  199. },
  200. {
  201. type: 'el-input-number',
  202. label: '坐标字号',
  203. name: 'nameFontSizeX',
  204. required: false,
  205. placeholder: '',
  206. value: 14
  207. },
  208. {
  209. type: 'vue-color',
  210. label: '数值颜色',
  211. name: 'Xcolor',
  212. required: false,
  213. placeholder: '',
  214. value: '#fff',
  215. },
  216. {
  217. type: 'el-input-number',
  218. label: '数值字号',
  219. name: 'fontSizeX',
  220. required: false,
  221. placeholder: '',
  222. value: 14,
  223. },
  224. {
  225. type: 'el-slider',
  226. label: '数值角度',
  227. name: 'textAngle',
  228. required: false,
  229. placeholder: '',
  230. value: 0
  231. },
  232. {
  233. type: 'el-input-number',
  234. label: '数值间隔',
  235. name: 'textInterval',
  236. required: false,
  237. placeholder: '',
  238. value: ''
  239. },
  240. {
  241. type: 'el-switch',
  242. label: '轴反转',
  243. name: 'reversalX',
  244. required: false,
  245. placeholder: '',
  246. value: false
  247. },
  248. {
  249. type: 'vue-color',
  250. label: '轴颜色',
  251. name: 'lineColorX',
  252. required: false,
  253. placeholder: '',
  254. value: '#fff',
  255. },
  256. {
  257. type: 'el-switch',
  258. label: '分割线显示',
  259. name: 'isShowSplitLineX',
  260. require: false,
  261. placeholder: '',
  262. value: false,
  263. },
  264. {
  265. type: 'vue-color',
  266. label: '分割线颜色',
  267. name: 'splitLineColorX',
  268. required: false,
  269. placeholder: '',
  270. value: '#fff',
  271. }
  272. ],
  273. },
  274. {
  275. name: 'Y轴设置',
  276. list: [
  277. {
  278. type: 'el-switch',
  279. label: '显示',
  280. name: 'isShowY',
  281. require: false,
  282. placeholder: '',
  283. value: true,
  284. },
  285. {
  286. type: 'el-input-text',
  287. label: '坐标名',
  288. name: 'textNameY',
  289. require: false,
  290. placeholder: '',
  291. value: ''
  292. },
  293. {
  294. type: 'vue-color',
  295. label: '坐标名颜色',
  296. name: 'nameColorY',
  297. required: false,
  298. placeholder: '',
  299. value: '#fff',
  300. },
  301. {
  302. type: 'el-input-number',
  303. label: '坐标字号',
  304. name: 'nameFontSizeY',
  305. required: false,
  306. placeholder: '',
  307. value: 14,
  308. },
  309. {
  310. type: 'vue-color',
  311. label: '数值颜色',
  312. name: 'colorY',
  313. required: false,
  314. placeholder: '',
  315. value: '#fff',
  316. },
  317. {
  318. type: 'el-input-number',
  319. label: '数值字号',
  320. name: 'fontSizeY',
  321. required: false,
  322. placeholder: '',
  323. value: 14,
  324. },
  325. {
  326. type: 'el-slider',
  327. label: '数值角度',
  328. name: 'ytextAngle',
  329. required: false,
  330. placeholder: '',
  331. value: 0
  332. },
  333. {
  334. type: 'el-switch',
  335. label: '缩放',
  336. name: 'scale',
  337. require: false,
  338. placeholder: '',
  339. value: false,
  340. },
  341. {
  342. type: 'el-input-number',
  343. label: '均分',
  344. name: 'splitNumber',
  345. required: false,
  346. placeholder: '',
  347. value: ''
  348. },
  349. {
  350. type: 'el-switch',
  351. label: '轴反转',
  352. name: 'reversalY',
  353. required: false,
  354. placeholder: '',
  355. value: false
  356. },
  357. {
  358. type: 'vue-color',
  359. label: '轴颜色',
  360. name: 'lineColorY',
  361. required: false,
  362. placeholder: '',
  363. value: '#fff',
  364. }, {
  365. type: 'el-switch',
  366. label: '分割线显示',
  367. name: 'isShowSplitLineY',
  368. require: false,
  369. placeholder: '',
  370. value: false,
  371. }, {
  372. type: 'vue-color',
  373. label: '分割线颜色',
  374. name: 'splitLineColorY',
  375. required: false,
  376. placeholder: '',
  377. value: '#fff',
  378. }
  379. ],
  380. },
  381. {
  382. name: '数值设定',
  383. list: [
  384. {
  385. type: 'el-switch',
  386. label: '显示',
  387. name: 'isShow',
  388. required: false,
  389. placeholder: '',
  390. value: true
  391. },
  392. {
  393. type: 'el-input-number',
  394. label: '距离',
  395. name: 'distance',
  396. required: false,
  397. placeholder: '',
  398. value: 5
  399. },
  400. {
  401. type: 'el-input-number',
  402. label: '字体字号',
  403. name: 'fontSize',
  404. required: false,
  405. placeholder: '',
  406. value: 14
  407. },
  408. {
  409. type: 'vue-color',
  410. label: '字体颜色',
  411. name: 'subTextColor',
  412. required: false,
  413. placeholder: '',
  414. value: '#fff'
  415. },
  416. {
  417. type: 'el-select',
  418. label: '字体粗细',
  419. name: 'fontWeight',
  420. required: false,
  421. placeholder: '',
  422. selectOptions: [
  423. {code: 'normal', name: '正常'},
  424. {code: 'bold', name: '粗体'},
  425. {code: 'bolder', name: '特粗体'},
  426. {code: 'lighter', name: '细体'}
  427. ],
  428. value: 'normal'
  429. },
  430. ],
  431. },
  432. {
  433. name: '提示语设置',
  434. list: [
  435. {
  436. type: 'el-input-number',
  437. label: '字体字号',
  438. name: 'tipFontSize',
  439. required: false,
  440. placeholder: '',
  441. },
  442. {
  443. type: 'vue-color',
  444. label: '字体颜色',
  445. name: 'lineColor',
  446. required: false,
  447. placeholder: '',
  448. },
  449. ],
  450. },
  451. {
  452. name: '坐标轴边距设置',
  453. list: [
  454. {
  455. type: 'el-slider',
  456. label: '左边距(像素)',
  457. name: 'marginLeft',
  458. required: false,
  459. placeholder: '',
  460. value: 10,
  461. }, {
  462. type: 'el-slider',
  463. label: '顶边距(像素)',
  464. name: 'marginTop',
  465. required: false,
  466. placeholder: '',
  467. value: 50,
  468. }, {
  469. type: 'el-slider',
  470. label: '右边距(像素)',
  471. name: 'marginRight',
  472. required: false,
  473. placeholder: '',
  474. value: 40,
  475. }, {
  476. type: 'el-slider',
  477. label: '底边距(像素)',
  478. name: 'marginBottom',
  479. required: false,
  480. placeholder: '',
  481. value: 10,
  482. },
  483. ],
  484. },
  485. {
  486. name: '图例操作',
  487. list: [
  488. {
  489. type: 'el-switch',
  490. label: '图例',
  491. name: 'isShowLegend',
  492. required: false,
  493. placeholder: '',
  494. value: true,
  495. },
  496. {
  497. type: 'vue-color',
  498. label: '字体颜色',
  499. name: 'lengedColor',
  500. required: false,
  501. placeholder: '',
  502. value: '#fff',
  503. },
  504. {
  505. type: 'el-input-number',
  506. label: '字体字号',
  507. name: 'lengedFontSize',
  508. required: false,
  509. placeholder: '',
  510. value: 16,
  511. },
  512. {
  513. type: 'el-input-number',
  514. label: '图例宽度',
  515. name: 'lengedWidth',
  516. required: false,
  517. placeholder: '',
  518. value: 15,
  519. },
  520. {
  521. type: 'el-select',
  522. label: '横向位置',
  523. name: 'lateralPosition',
  524. required: false,
  525. placeholder: '',
  526. selectOptions: [
  527. {code: 'left', name: '左对齐'},
  528. {code: 'right', name: '右对齐'},
  529. ],
  530. value: ''
  531. },
  532. {
  533. type: 'el-select',
  534. label: '纵向位置',
  535. name: 'longitudinalPosition',
  536. required: false,
  537. placeholder: '',
  538. selectOptions: [
  539. {code: 'top', name: '顶部'},
  540. {code: 'bottom', name: '底部'},
  541. ],
  542. value: ''
  543. },
  544. {
  545. type: 'el-select',
  546. label: '布局前置',
  547. name: 'layoutFront',
  548. required: false,
  549. placeholder: '',
  550. selectOptions: [
  551. {code: 'vertical', name: '竖排'},
  552. {code: 'horizontal', name: '横排'},
  553. ],
  554. value: ''
  555. },
  556. ],
  557. },
  558. {
  559. name: '自定义配色',
  560. list: [
  561. {
  562. type: 'customColor',
  563. label: '',
  564. name: 'customColor',
  565. required: false,
  566. value: [{color: '#ff7f50'}, {color: '#87cefa'}, {color: '#da70d6'}, {color: '#32cd32'}, {color: '#6495ed'}],
  567. },
  568. ],
  569. },
  570. ],
  571. ],
  572. // 数据
  573. data: [
  574. {
  575. type: 'el-radio-group',
  576. label: '数据类型',
  577. name: 'dataType',
  578. require: false,
  579. placeholder: '',
  580. selectValue: true,
  581. selectOptions: [
  582. {
  583. code: 'staticData',
  584. name: '静态数据',
  585. },
  586. {
  587. code: 'dynamicData',
  588. name: '动态数据',
  589. },
  590. ],
  591. value: 'staticData',
  592. },
  593. {
  594. type: 'el-input-number',
  595. label: '刷新时间(毫秒)',
  596. name: 'refreshTime',
  597. relactiveDom: 'dataType',
  598. relactiveDomValue: 'dynamicData',
  599. value: 5000
  600. },
  601. {
  602. type: 'el-button',
  603. label: '静态数据',
  604. name: 'staticData',
  605. required: false,
  606. placeholder: '',
  607. relactiveDom: 'dataType',
  608. relactiveDomValue: 'staticData',
  609. value: [
  610. {"axis": "苹果", "data": 1000},
  611. {"axis": "三星", "data": 2229},
  612. {"axis": "小米", "data": 3879},
  613. {"axis": "oppo", "data": 2379},
  614. {"axis": "vivo", "data": 4079},
  615. ],
  616. },
  617. {
  618. type: 'dycustComponents',
  619. label: '',
  620. name: 'dynamicData',
  621. required: false,
  622. placeholder: '',
  623. relactiveDom: 'dataType',
  624. relactiveDomValue: 'dynamicData',
  625. chartType: 'widget-barchart',
  626. dictKey: 'BAR_PROPERTIES',
  627. value: '',
  628. },
  629. ],
  630. // 坐标
  631. position: [
  632. {
  633. type: 'el-input-number',
  634. label: '左边距',
  635. name: 'left',
  636. required: false,
  637. placeholder: '',
  638. value: 0,
  639. },
  640. {
  641. type: 'el-input-number',
  642. label: '上边距',
  643. name: 'top',
  644. required: false,
  645. placeholder: '',
  646. value: 0,
  647. },
  648. {
  649. type: 'el-input-number',
  650. label: '宽度',
  651. name: 'width',
  652. required: false,
  653. placeholder: '该容器在1920px大屏中的宽度',
  654. value: 400,
  655. },
  656. {
  657. type: 'el-input-number',
  658. label: '高度',
  659. name: 'height',
  660. required: false,
  661. placeholder: '该容器在1080px大屏中的高度',
  662. value: 200,
  663. },
  664. ],
  665. }
  666. }