widget-barchart.js 16 KB

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