Liquid.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div>
  3. <v-chart
  4. :forceFit="true"
  5. :height="height"
  6. :width="width"
  7. :data="data"
  8. :scale="scale"
  9. :padding="0">
  10. <v-tooltip/>
  11. <v-interval
  12. :shape="['liquid-fill-gauge']"
  13. position="transfer*value"
  14. color=""
  15. :v-style="{
  16. lineWidth: 8,
  17. opacity: 0.75
  18. }"
  19. :tooltip="[
  20. 'transfer*value',
  21. (transfer, value) => {
  22. return {
  23. name: transfer,
  24. value,
  25. };
  26. },
  27. ]"
  28. ></v-interval>
  29. <v-guide
  30. v-for="(row, index) in data"
  31. :key="index"
  32. type="text"
  33. :top="true"
  34. :position="{
  35. gender: row.transfer,
  36. value: 45
  37. }"
  38. :content="row.value + '%'"
  39. :v-style="{
  40. fontSize: 100,
  41. textAlign: 'center',
  42. opacity: 0.75,
  43. }"
  44. />
  45. </v-chart>
  46. </div>
  47. </template>
  48. <script>
  49. const sourceDataConst = [
  50. { transfer: '一月', value: 813 },
  51. { transfer: '二月', value: 233 },
  52. { transfer: '三月', value: 561 }
  53. ]
  54. export default {
  55. name: 'Liquid',
  56. props: {
  57. height: {
  58. type: Number,
  59. default: 0
  60. },
  61. width: {
  62. type: Number,
  63. default: 0
  64. }
  65. },
  66. data() {
  67. return {
  68. data: sourceDataConst,
  69. scale: []
  70. }
  71. }
  72. }
  73. </script>
  74. <style scoped>
  75. </style>