wangrong
2026-08-30 4c949c0dc9bcae785c281c9d8125295f09810b15
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
/**
 * 图表对象
 */
declare interface Chart {
  id: string
  render: string
  name: string
  type: string
  title: string
  drill?: boolean
  refreshViewEnable: boolean
  refreshTime: number
  refreshUnit: string
  data: {
    data: any[]
    series?: any[]
    dynamicAssistLines?: AssistLine[]
    fields: ChartViewField[]
    tableRow: []
    //chart-mix
    left: {
      data: any[]
      series?: any[]
      dynamicAssistLines?: AssistLine[]
      fields: ChartViewField[]
      tableRow: []
    }
    right: {
      data: any[]
      series?: any[]
      dynamicAssistLines?: AssistLine[]
      fields: ChartViewField[]
      tableRow: []
    }
    customCalc: any
    customSumResult?: Record<string, any>
  }
  xAxis?: Axis[]
  xAxisExt?: Axis[]
  yAxis?: Axis[]
  yAxisExt?: Axis[]
  extStack?: Axis[]
  extBubble?: Axis[]
  extLabel?: Axis[]
  extTooltip?: Axis[]
  customFilter: {}
  senior: CustomSenior
  customAttr: CustomAttr
  customAttrMobile: CustomAttr
  customStyle: CustomStyle
  customStyleMobile: CustomStyle
  drillFields: ChartViewField[]
  drillFilters: Filter[]
  sortPriority: ChartViewField[]
  datasetMode: 0 | 1
  datasourceType: string
  totalItems: number
  tableId: number
  resultMode: string
  resultCount: number
  linkageActive: boolean
  jumpActive: boolean
  aggregate?: boolean
  plugin?: CustomPlugin
  isPlugin: boolean
  extremumValues?: Map<string, any>
  filteredData?: any[]
  container?: string
  /**
   * 针对不是序列字段的图表,通过获取分类字段的值作为序列字段
   */
  seriesFieldObjs?: any[]
  flowMapStartName?: Axis[]
  flowMapEndName?: Axis[]
  showPosition: string
 
  extColor: Axis[]
 
  fontFamily?: string
}
declare type CustomAttr = DeepPartial<ChartAttr> | JSONString<DeepPartial<ChartAttr>>
declare type CustomStyle = DeepPartial<ChartStyle> | JSONString<DeepPartial<ChartStyle>>
declare type CustomSenior = DeepPartial<ChartSenior> | JSONString<DeepPartial<ChartSenior>>
declare type CustomPlugin = DeepPartial<ChartPlugin> | JSONString<DeepPartial<ChartPlugin>>
 
declare type ChartObj = Omit<Chart, 'customAttr' | 'customStyle' | 'senior' | 'plugin'> & {
  customAttr: ChartAttr
  customStyle: ChartStyle
  senior: ChartSenior
  plugin?: ChartPlugin
}
 
/**
 * 格式化属性
 */
declare interface BaseFormatter {
  /**
   * 格式化类型:auto,value,percent
   */
  type: string
  /**
   * 单位换算
   */
  unitLanguage: 'ch' | 'en'
  unit: number
  /**
   * 单位后缀
   */
  suffix: string
  /**
   * 保留小数位数
   */
  decimalCount: number
  /**
   * 千分符
   */
  thousandSeparator: boolean
  /**
   * 显示总出占比
   */
  showTotalPercent: boolean
}
 
/**
 * 多系列格式化属性
 */
declare interface SeriesFormatter extends Axis {
  /**
   * 是否显示
   */
  show: boolean
  /**
   * 字体颜色
   */
  color?: string
  /**
   * 字体大小
   */
  fontSize?: number
  /**
   * 序列id
   */
  seriesId: string
  /**
   * 轴类型
   */
  axisType: string
  /**
   * 显示极值
   */
  showExtremum?: boolean
 
  optionLabel?: string
  optionShowName?: string
  /**
   * 位置
   */
  position?: string
}
 
declare interface Axis extends ChartViewField {
  /**
   * 格式化设置
   */
  formatterCfg: BaseFormatter
  /**
   * 聚合方式
   */
  summary: string
  /**
   * 维度/指标分组类型
   */
  groupType: 'q' | 'd'
  /**
   * 排序规则
   */
  sort: 'asc' | 'desc' | 'none' | 'custom_sort'
  /**
   * 自定义排序项
   */
  customSort: string[]
  /**
   * 是否隐藏
   */
  hide: boolean
}
declare interface ChartViewField {
  /**
   * 字段名称
   */
  name: string
  /**
   * de名称
   */
  dataeaseName: string
  /**
   * id
   */
  id: string
  /**
   * 图表自定义字段名称
   */
  chartShowName: string
  /**
   * 字段类型
   */
  deType: number
  /**
   * 分组类型
   */
  groupType: 'q' | 'd'
}
 
declare interface Filter {
  datasetTableField: ChartViewField
  fieldId: string
}
 
declare interface PageInfo {
  currentPage: number
  pageSize: number
  total: number
}