REAL SHOWCASE SOURCEcharts-dashboard

1 个文件 · 48 行 · TypeScript

// ===== showcase/src/examples/components/charts.ts ===== import {  RenderAdaptiveGridPanel,  RenderBarChart,  RenderBorder,  RenderDonutChart,  RenderLineChart,  RenderPageHeader,  RenderStackPanel,  RenderText,  type RenderBox,} from 'ds-ui' function card(title: string, chart: RenderBox): RenderBorder {  const panel = new RenderStackPanel({ orientation: 'vertical', spacing: 8, crossAxisAlignment: 'stretch' })  panel.addChild(new RenderText(title, { role: 'title', weight: 'semibold' }))  panel.addChild(chart)  return new RenderBorder({ background: 'panel', padding: 12, minHeight: 250, child: panel })} export function createChartsExample(): RenderStackPanel {  const grid = new RenderAdaptiveGridPanel({ minColumnWidth: 260, maxColumns: 3, columnGap: 12, rowGap: 12 })  grid.addChild(card('活跃用户趋势', new RenderLineChart({    series: [      { name: '本周', data: [{ x: '一', y: 36 }, { x: '二', y: 52 }, { x: '三', y: 49 }, { x: '四', y: 68 }, { x: '五', y: 82 }] },      { name: '上周', data: [{ x: '一', y: 28 }, { x: '二', y: 41 }, { x: '三', y: 45 }, { x: '四', y: 54 }, { x: '五', y: 66 }] },    ],    area: true,    legendMode: 'toggle',    height: 190,  })))  grid.addChild(card('组件使用量', new RenderBarChart({    categories: ['DataGrid', 'Tree', 'Form', 'Chart'],    series: [{ name: '调用量', data: [86, 58, 72, 44] }],    valueAxis: { min: 0, tickCount: 4 },    height: 190,  })))  grid.addChild(card('任务状态', new RenderDonutChart({    segments: [{ label: '完成', value: 68 }, { label: '进行中', value: 24 }, { label: '阻塞', value: 8 }],    height: 190,  })))  const panel = new RenderStackPanel({ orientation: 'vertical', spacing: 14, crossAxisAlignment: 'stretch' })  panel.addChild(new RenderPageHeader({ title: 'Charts 数据看板', description: '折线、柱状和环形图共享主题、交互图例、Tooltip 与数据状态模型。' }))  panel.addChild(grid, 1)  panel.padding = 18  return panel}