ZiDanTu01.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <div id="ZiDanTu01"></div>
  3. </template>
  4. <script setup>
  5. import { onMounted } from 'vue'
  6. import { Bullet } from '@antv/g2plot'
  7. const data = [
  8. {
  9. title: '满意度',
  10. ranges: [40, 70, 100],
  11. measures: [80],
  12. target: 85
  13. }
  14. ]
  15. onMounted(() => {
  16. const bulletPlot = new Bullet('ZiDanTu01', {
  17. data,
  18. measureField: 'measures',
  19. rangeField: 'ranges',
  20. targetField: 'target',
  21. xField: 'title',
  22. color: {
  23. range: ['#FFbcb8', '#FFe0b0', '#bfeec8'],
  24. measure: '#5B8FF9',
  25. target: '#39a3f4'
  26. },
  27. xAxis: {
  28. line: null
  29. },
  30. yAxis: false,
  31. label: {
  32. target: true
  33. },
  34. // 自定义 legend
  35. legend: {
  36. custom: true,
  37. position: 'bottom',
  38. items: [
  39. {
  40. value: '差',
  41. name: '差',
  42. marker: { symbol: 'square', style: { fill: '#FFbcb8', r: 5 } }
  43. },
  44. {
  45. value: '良',
  46. name: '良',
  47. marker: { symbol: 'square', style: { fill: '#FFe0b0', r: 5 } }
  48. },
  49. {
  50. value: '优',
  51. name: '优',
  52. marker: { symbol: 'square', style: { fill: '#bfeec8', r: 5 } }
  53. },
  54. {
  55. value: '实际值',
  56. name: '实际值',
  57. marker: { symbol: 'square', style: { fill: '#5B8FF9', r: 5 } }
  58. },
  59. {
  60. value: '目标值',
  61. name: '目标值',
  62. marker: { symbol: 'line', style: { stroke: '#39a3f4', r: 5 } }
  63. }
  64. ]
  65. }
  66. })
  67. bulletPlot.render()
  68. })
  69. </script>