Liquid.vue 1.3 KB

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