config.vue 2.5 KB

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