| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- <template>
- <collapse-item v-if="title" name="标题">
- <template #header>
- <n-switch
- v-show="inChart"
- v-model:value="title.show"
- size="small"
- ></n-switch>
- </template>
- <setting-item-box name="标题">
- <setting-item name="颜色">
- <n-color-picker
- v-model:value="title.textStyle.color"
- size="small"
- ></n-color-picker>
- </setting-item>
- <setting-item name="大小">
- <n-input-number
- v-model:value="title.textStyle.fontSize"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="副标题">
- <setting-item name="颜色">
- <n-color-picker
- size="small"
- v-model:value="title.subtextStyle.color"
- ></n-color-picker>
- </setting-item>
- <setting-item name="大小">
- <n-input-number
- v-model:value="title.subtextStyle.fontSize"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- </setting-item-box>
- </collapse-item>
- <collapse-item v-if="xAxis" name="X轴">
- <template #header>
- <n-switch
- v-show="inChart"
- v-model:value="xAxis.show"
- size="small"
- ></n-switch>
- </template>
- <setting-item-box name="名称">
- <setting-item name="颜色">
- <n-color-picker
- size="small"
- v-model:value="xAxis.nameTextStyle.color"
- ></n-color-picker>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="标签">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch
- v-model:value="xAxis.axisLabel.show"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="颜色">
- <n-color-picker
- size="small"
- v-model:value="xAxis.axisLabel.color"
- ></n-color-picker>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="轴线">
- <setting-item name="颜色">
- <n-color-picker
- v-model:value="xAxis.axisLine.lineStyle.color"
- size="small"
- ></n-color-picker>
- </setting-item>
- <setting-item name="粗细">
- <n-input-number
- v-model:value="xAxis.axisLine.lineStyle.width"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- <setting-item name="对齐零">
- <n-space>
- <n-switch
- v-model:value="xAxis.axisLine.onZero"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="刻度">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch v-model:value="xAxis.axisTick.show" size="small"></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="长度">
- <n-input-number
- v-model:value="xAxis.axisTick.length"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="分割线">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch
- v-model:value="xAxis.splitLine.show"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="颜色">
- <n-color-picker
- v-model:value="xAxis.splitLine.lineStyle.color"
- size="small"
- ></n-color-picker>
- </setting-item>
- <setting-item name="粗细">
- <n-input-number
- v-model:value="xAxis.splitLine.lineStyle.width"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- <setting-item name="类型">
- <n-select
- v-model:value="xAxis.splitLine.lineStyle.type"
- size="small"
- :options="axisConfig.splitLint.lineStyle.type"
- ></n-select>
- </setting-item>
- <setting-item name="位置">
- <n-select
- v-model:value="xAxis.position"
- size="small"
- :options="axisConfig.xposition"
- ></n-select>
- </setting-item>
- </setting-item-box>
- </collapse-item>
- <collapse-item v-if="yAxis" name="Y轴">
- <template #header>
- <n-switch
- v-show="inChart"
- v-model:value="yAxis.show"
- size="small"
- ></n-switch>
- </template>
- <setting-item-box name="名称">
- <setting-item name="颜色">
- <n-color-picker
- size="small"
- v-model:value="yAxis.nameTextStyle.color"
- ></n-color-picker>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="标签">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch
- v-model:value="yAxis.axisLabel.show"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="颜色">
- <n-color-picker
- size="small"
- v-model:value="yAxis.axisLabel.color"
- ></n-color-picker>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="轴线">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch v-model:value="yAxis.axisLine.show" size="small"></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="颜色">
- <n-color-picker
- v-model:value="yAxis.axisLine.lineStyle.color"
- size="small"
- ></n-color-picker>
- </setting-item>
- <setting-item name="粗细">
- <n-input-number
- v-model:value="yAxis.axisLine.lineStyle.width"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- <setting-item name="对齐零">
- <n-space>
- <n-switch
- v-model:value="yAxis.axisLine.onZero"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="刻度">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch v-model:value="yAxis.axisTick.show" size="small"></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="长度">
- <n-input-number
- v-model:value="yAxis.axisTick.length"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- </setting-item-box>
- <setting-item-box name="分割线">
- <setting-item v-show="inChart" name="展示">
- <n-space>
- <n-switch
- v-model:value="yAxis.splitLine.show"
- size="small"
- ></n-switch>
- </n-space>
- </setting-item>
- <setting-item name="颜色">
- <n-color-picker
- v-model:value="yAxis.splitLine.lineStyle.color"
- size="small"
- ></n-color-picker>
- </setting-item>
- <setting-item name="粗细">
- <n-input-number
- v-model:value="yAxis.splitLine.lineStyle.width"
- :min="1"
- size="small"
- ></n-input-number>
- </setting-item>
- <setting-item name="类型">
- <n-select
- v-model:value="yAxis.splitLine.lineStyle.type"
- size="small"
- :options="axisConfig.splitLint.lineStyle.type"
- ></n-select>
- </setting-item>
- <setting-item name="位置">
- <n-select
- v-model:value="yAxis.position"
- size="small"
- :options="axisConfig.yposition"
- ></n-select>
- </setting-item>
- </setting-item-box>
- </collapse-item>
- <collapse-item v-if="legend" name="图例">
- <template #header>
- <n-switch
- v-show="inChart"
- v-model:value="legend.show"
- size="small"
- ></n-switch>
- </template>
- <setting-item-box name="图例文字">
- <setting-item>
- <n-color-picker
- size="small"
- v-model:value="legend.textStyle.color"
- ></n-color-picker>
- </setting-item>
- </setting-item-box>
- </collapse-item>
- </template>
- <script setup lang="ts">
- import { PropType, computed } from 'vue'
- import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
- import { axisConfig } from '@/packages/chartConfiguration/echarts/index'
- import {
- CollapseItem,
- SettingItemBox,
- SettingItem
- } from '@/components/Pages/ChartItemSetting'
- const props = defineProps({
- optionData: {
- type: Object as PropType<GlobalThemeJsonType>,
- required: true
- },
- inChart: {
- type: Boolean,
- required: false,
- default: false
- }
- })
- const title = computed(() => {
- return props.optionData.title
- })
- const xAxis = computed(() => {
- return props.optionData.xAxis
- })
- const yAxis = computed(() => {
- return props.optionData.yAxis
- })
- const legend = computed(() => {
- return props.optionData.legend
- })
- </script>
|