config.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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.lineStyle.color.colorStops[0].color"
  14. ></n-color-picker>
  15. </SettingItem>
  16. <SettingItem name="颜色">
  17. <n-color-picker
  18. size="small"
  19. :modes="['hex']"
  20. v-model:value="item.lineStyle.color.colorStops[1].color"
  21. ></n-color-picker>
  22. </SettingItem>
  23. <SettingItem name="宽度">
  24. <n-input-number
  25. v-model:value="item.lineStyle.width"
  26. :min="1"
  27. :max="100"
  28. size="small"
  29. placeholder="自动计算"
  30. ></n-input-number>
  31. </SettingItem>
  32. <SettingItem name="类型">
  33. <n-select
  34. v-model:value="item.lineStyle.type"
  35. size="small"
  36. :options="lineConf.lineStyle.type"
  37. ></n-select>
  38. </SettingItem>
  39. <SettingItem name="类型">
  40. <n-select
  41. v-model:value="item.lineStyle.type"
  42. size="small"
  43. :options="lineConf.lineStyle.type"
  44. ></n-select>
  45. </SettingItem>
  46. </SettingItemBox>
  47. <SettingItemBox name="阴影" :alone="true">
  48. <SettingItem name="颜色">
  49. <n-color-picker
  50. size="small"
  51. :modes="['hex']"
  52. v-model:value="item.lineStyle.shadowColor"
  53. ></n-color-picker>
  54. </SettingItem>
  55. </SettingItemBox>
  56. <SettingItemBox name="设置">
  57. <SettingItem name="阴影">
  58. <n-button
  59. size="small"
  60. @click="item.lineStyle.shadowColor = 'rgba(0, 0, 0, 0)'"
  61. >
  62. 去除阴影
  63. </n-button>
  64. </SettingItem>
  65. </SettingItemBox>
  66. </CollapseItem>
  67. <!-- Echarts 全局设置 -->
  68. <global-setting :optionData="optionData" :in-chart="true"></global-setting>
  69. </template>
  70. <script setup lang="ts">
  71. import { PropType, computed } from 'vue'
  72. import { lineConf } from '@/packages/chartConfiguration/echarts/index'
  73. import {
  74. GlobalSetting,
  75. CollapseItem,
  76. SettingItemBox,
  77. SettingItem
  78. } from '@/components/Pages/ChartItemSetting'
  79. import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
  80. const props = defineProps({
  81. optionData: {
  82. type: Object as PropType<GlobalThemeJsonType>,
  83. required: true
  84. }
  85. })
  86. const seriesList = computed(() => {
  87. return props.optionData.series
  88. })
  89. </script>