mirror of
https://gitee.com/dromara/go-view.git
synced 2025-04-06 03:58:04 +08:00
94 lines
3.0 KiB
Vue
94 lines
3.0 KiB
Vue
<template>
|
|
<!-- Echarts 全局设置 -->
|
|
<global-setting :optionData="optionData"></global-setting>
|
|
<CollapseItem
|
|
v-for="(item, index) in seriesList"
|
|
:key="index"
|
|
:name="`${item.type == 'bar' ? '柱状图' : '折线图'}`"
|
|
:expanded="true"
|
|
>
|
|
<SettingItemBox name="图形" v-if="item.type == 'bar'">
|
|
<SettingItem name="宽度">
|
|
<n-input-number
|
|
v-model:value="item.barWidth"
|
|
:min="1"
|
|
:max="100"
|
|
size="small"
|
|
placeholder="自动计算"
|
|
></n-input-number>
|
|
</SettingItem>
|
|
<SettingItem name="圆角">
|
|
<n-input-number v-model:value="item.itemStyle.borderRadius" :min="0" size="small"></n-input-number>
|
|
</SettingItem>
|
|
</SettingItemBox>
|
|
<SettingItemBox name="线条" v-if="item.type == 'line'">
|
|
<SettingItem name="宽度">
|
|
<n-input-number
|
|
v-model:value="item.lineStyle.width"
|
|
:min="1"
|
|
:max="100"
|
|
size="small"
|
|
placeholder="自动计算"
|
|
></n-input-number>
|
|
</SettingItem>
|
|
<SettingItem name="类型">
|
|
<n-select v-model:value="item.lineStyle.type" size="small" :options="lineConf.lineStyle.type"></n-select>
|
|
</SettingItem>
|
|
</SettingItemBox>
|
|
<SettingItemBox name="实心点" v-if="item.type == 'line'">
|
|
<SettingItem name="大小">
|
|
<n-input-number
|
|
v-model:value="item.symbolSize"
|
|
:min="1"
|
|
:max="100"
|
|
size="small"
|
|
placeholder="自动计算"
|
|
></n-input-number>
|
|
</SettingItem>
|
|
</SettingItemBox>
|
|
<setting-item-box name="标签">
|
|
<setting-item>
|
|
<n-space>
|
|
<n-switch v-model:value="item.label.show" size="small" />
|
|
<n-text>展示标签</n-text>
|
|
</n-space>
|
|
</setting-item>
|
|
<setting-item name="大小">
|
|
<n-input-number v-model:value="item.label.fontSize" size="small" :min="1"></n-input-number>
|
|
</setting-item>
|
|
<setting-item name="tip颜色">
|
|
<n-color-picker size="small" :modes="['hex']" v-model:value="item.label.color"></n-color-picker>
|
|
</setting-item>
|
|
<setting-item name="位置">
|
|
<n-select
|
|
v-model:value="item.label.position"
|
|
:options="[
|
|
{ label: 'top', value: 'top' },
|
|
{ label: 'left', value: 'left' },
|
|
{ label: 'right', value: 'right' },
|
|
{ label: 'bottom', value: 'bottom' }
|
|
]"
|
|
/>
|
|
</setting-item>
|
|
</setting-item-box>
|
|
</CollapseItem>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { PropType, computed } from 'vue'
|
|
import { GlobalSetting, CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
|
|
import { lineConf } from '@/packages/chartConfiguration/echarts'
|
|
import { GlobalThemeJsonType } from '@/settings/chartThemes'
|
|
|
|
const props = defineProps({
|
|
optionData: {
|
|
type: Object as PropType<GlobalThemeJsonType>,
|
|
required: true
|
|
}
|
|
})
|
|
|
|
const seriesList = computed(() => {
|
|
return props.optionData.series
|
|
})
|
|
</script>
|