config.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <CollapseItem
  3. v-for="(item, index) in seriesList"
  4. :key="index"
  5. :name="`柱状图-${index + 1}`"
  6. :expanded="true"
  7. >
  8. <SettingItemBox name="图形">
  9. <SettingItem name="颜色">
  10. <n-color-picker
  11. size="small"
  12. :modes="['hex']"
  13. v-model:value="item.itemStyle.color"
  14. ></n-color-picker>
  15. </SettingItem>
  16. <SettingItem>
  17. <n-button size="small" @click="item.itemStyle.color = null">
  18. 恢复默认
  19. </n-button>
  20. </SettingItem>
  21. <SettingItem name="宽度">
  22. <n-input-number
  23. v-model:value="item.barWidth"
  24. :min="1"
  25. :max="100"
  26. size="small"
  27. placeholder="自动计算"
  28. ></n-input-number>
  29. </SettingItem>
  30. <SettingItem name="圆角">
  31. <n-input-number
  32. v-model:value="item.itemStyle.borderRadius"
  33. :min="0"
  34. size="small"
  35. ></n-input-number>
  36. </SettingItem>
  37. </SettingItemBox>
  38. </CollapseItem>
  39. <!-- Echarts 全局设置 -->
  40. <global-setting :optionData="optionData" :in-chart="true"></global-setting>
  41. </template>
  42. <script setup lang="ts">
  43. import { PropType, computed } from 'vue'
  44. import {
  45. GlobalSetting,
  46. CollapseItem,
  47. SettingItemBox,
  48. SettingItem
  49. } from '@/components/Pages/ChartItemSetting'
  50. import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
  51. const props = defineProps({
  52. optionData: {
  53. type: Object as PropType<GlobalThemeJsonType>,
  54. required: true
  55. }
  56. })
  57. const seriesList = computed(() => {
  58. return props.optionData.series
  59. })
  60. </script>