config.vue
3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<template>
<!-- Echarts 全局设置 -->
<global-setting :optionData="optionData" :in-chart="true"></global-setting>
<CollapseItem
:name="`${t('charts.chart.scatter')}-${index + 1}`"
expanded
v-for="(item, index) in optionData.series"
:key="index"
>
<SettingItemBox :name="t('common.styleText')">
<SettingItem :name="t('common.typeText')">
<n-select v-model:value="item.type" size="small" :options="ScatterEffectTypeEnumList" placeholder="选择" />
</SettingItem>
<SettingItem :name="t('charts.chart.sizeText')">
<n-input-number v-model:value="item.symbolSize" size="small" :min="1"></n-input-number>
</SettingItem>
</SettingItemBox>
<SettingItemBox :name="t('charts.chart.targetDomain')">
<SettingItem :name="t('charts.chart.thickness')">
<n-input-number v-model:value="item.markArea.itemStyle.borderWidth" size="small" :min="0"></n-input-number>
</SettingItem>
<SettingItem :name="t('common.symbolText')">
<n-select
v-model:value="item.markArea.itemStyle.borderType"
size="small"
:options="axisConfig.splitLint.lineStyle.type"
:placeholder="t('common.selectText')"
/>
</SettingItem>
</SettingItemBox>
<SettingItemBox :name="t('charts.chart.punctuation')">
<SettingItem :name="t('common.shapeText')">
<n-select v-model:value="item.markPoint.symbol" size="small" :options="SymbolEnumList" placeholder="选择" />
</SettingItem>
<SettingItem :name="t('charts.chart.sizeText')">
<n-input-number v-model:value="item.markPoint.symbolSize" size="small" :min="0"></n-input-number>
</SettingItem>
</SettingItemBox>
</CollapseItem>
</template>
<script setup lang="ts">
import { PropType } from 'vue'
import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
import { GlobalSetting, CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
import { option } from './config'
// import { ScatterEffectTypeEnumList, SymbolEnumList } from '../shard'
// import { axisConfig } from '@/packages/chartConfiguration/echarts/index'
// eslint-disable-next-line no-unused-vars
const props = defineProps({
optionData: {
type: Object as PropType<GlobalThemeJsonType & typeof option>,
required: true
}
})
const t = window['$t']
const ScatterEffectTypeEnumList = [
{ label: t('common.scatterEffectTypeEnumList.scatter'), value: 'scatter' },
{ label: t('common.scatterEffectTypeEnumList.effectScatter'), value: 'effectScatter' }
]
const SymbolEnumList = [
{ label: t('common.symbolEnumList.circle'), value: 'circle' },
{ label: t('common.symbolEnumList.rect'), value: 'rect' },
{ label: t('common.symbolEnumList.roundRect'), value: 'roundRect' },
{ label: t('common.symbolEnumList.triangle'), value: 'triangle' },
{ label: t('common.symbolEnumList.diamond'), value: 'diamond' },
{ label: t('common.symbolEnumList.pin'), value: 'pin' },
{ label: t('common.symbolEnumList.arrow'), value: 'arrow' },
{ label: t('common.symbolEnumList.none'), value: 'none' }
]
const axisConfig = {
// X轴位置
xposition: [
{
label: '顶部',
value: 'top'
},
{
label: '底部',
value: 'bottom'
}
],
// Y轴位置
yposition: [
{
label: '左侧',
value: 'left'
},
{
label: '右侧',
value: 'right'
}
],
// 线条
splitLint: {
lineStyle: {
type: [
{
label: t('common.axisConfig.splitLint.lineStyle.solid'),
value: 'solid'
},
{
label: t('common.axisConfig.splitLint.lineStyle.dashed'),
value: 'dashed'
},
{
label: t('common.axisConfig.splitLint.lineStyle.dotted'),
value: 'dotted'
}
]
}
},
// 视觉映射
visualMap: {
orient: [
{
label: '竖直',
value: 'vertical'
},
{
label: '水平',
value: 'horizontal'
}
]
}
}
</script>