config.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <!-- Echarts 全局设置 -->
  3. <global-setting :optionData="optionData"></global-setting>
  4. <CollapseItem v-for="(item, index) in seriesList" :key="index" name="单折线面积图" :expanded="true">
  5. <SettingItemBox name="线条">
  6. <SettingItem name="宽度">
  7. <n-input-number
  8. v-model:value="item.lineStyle.width"
  9. :min="1"
  10. :max="100"
  11. size="small"
  12. placeholder="自动计算"
  13. ></n-input-number>
  14. </SettingItem>
  15. <SettingItem name="类型">
  16. <n-select v-model:value="item.lineStyle.type" size="small" :options="lineConf.lineStyle.type"></n-select>
  17. </SettingItem>
  18. </SettingItemBox>
  19. <SettingItemBox name="实心点">
  20. <SettingItem name="大小">
  21. <n-input-number
  22. v-model:value="item.symbolSize"
  23. :min="1"
  24. :max="100"
  25. size="small"
  26. placeholder="自动计算"
  27. ></n-input-number>
  28. </SettingItem>
  29. </SettingItemBox>
  30. <setting-item-box name="标签">
  31. <setting-item>
  32. <n-space>
  33. <n-switch v-model:value="item.label.show" size="small" />
  34. <n-text>展示标签</n-text>
  35. </n-space>
  36. </setting-item>
  37. <setting-item name="大小">
  38. <n-input-number v-model:value="item.label.fontSize" size="small" :min="1"></n-input-number>
  39. </setting-item>
  40. <setting-item name="颜色">
  41. <n-color-picker size="small" :modes="['hex']" v-model:value="item.label.color"></n-color-picker>
  42. </setting-item>
  43. <setting-item name="位置">
  44. <n-select
  45. v-model:value="item.label.position"
  46. :options="[
  47. { label: 'top', value: 'top' },
  48. { label: 'left', value: 'left' },
  49. { label: 'right', value: 'right' },
  50. { label: 'bottom', value: 'bottom' }
  51. ]"
  52. />
  53. </setting-item>
  54. </setting-item-box>
  55. </CollapseItem>
  56. </template>
  57. <script setup lang="ts">
  58. import { PropType, computed } from 'vue'
  59. import { lineConf } from '@/packages/chartConfiguration/echarts/index'
  60. import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
  61. import { GlobalSetting, CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
  62. const props = defineProps({
  63. optionData: {
  64. type: Object as PropType<GlobalThemeJsonType>,
  65. required: true
  66. }
  67. })
  68. const seriesList = computed(() => {
  69. return props.optionData.series
  70. })
  71. </script>