Skip to content

xCharts 仪表盘 opts.extra.gauge

以下是在 xCharts 中配置仪表盘 opts.extra.gauge 的属性列表:

属性名类型默认值说明
typeStringdefault仪表盘样式
widthNumber15仪表盘坐标轴线宽
labelColorColor#666666仪表盘刻度标签颜色
labelOffsetNumber13仪表盘标签文字径向偏移距离
startAngleNumber0.75起始角度,范围 0-2
endAngleNumber0.25结束角度,范围 0-2
startNumberNumber0起始数值
endNumberNumber100结束数值
formatterFunction-原生数据标签自定义函数
formatString-组件层数据标签格式化
splitLine.fixRadiusNumber0刻度线径向偏移量
splitLine.splitNumberNumber10刻度线分段数量
splitLine.widthNumber15分割线长度
splitLine.colorColor#FFFFFF分割线颜色
splitLine.childNumberNumber5子刻度线数量
splitLine.childWidthNumber5子刻度线长度
pointer.widthNumber15指针宽度
pointer.colorStringauto指针颜色,auto 时随仪表盘背景颜色变化

新版项目中的实际写法

xcharts/gauge/gauge.uvue:12 同样采用了“本地配置保留、示例页默认接口获取”的方式:

ts
const data = { type: 'gauge', current: 1, pageSize: 10, uts: true }
TuiApi('getPagedCharts', data, true).then((res : UTSJSONObject) => {
	opts = res.getArray('data.list') as UTSJSONObject[]
	canvasInsHeight.value = opts.length * itemH
})

这只是示例工程为减轻包体和编译压力做的处理,不影响文档直接使用本地配置。

本地配置示例

xcharts/gauge/index.uts:1 第一组“基本仪表盘”配置如下:

ts
export default [
	{
		name: '基本仪表盘',
		option: {
			animation: true,
			categories: [
				{ color: '#1890ff', value: 0.2 },
				{ color: '#2fc25b', value: 0.8 },
				{ color: '#f04864', value: 1 }
			],
			dataLabel: true,
			extra: {
				gauge: {
					endAngle: 0.25,
					endNumber: 100,
					labelColor: '#666666',
					pointer: { color: 'auto', width: 24 },
					splitLine: {
						childNumber: 5,
						childWidth: 12,
						color: '#FFFFFF',
						fixRadius: 0,
						splitNumber: 10,
						width: 30
					},
					startAngle: 0.75,
					startNumber: 0,
					type: 'default',
					width: 30
				}
			},
			series: [{ name: '完成率', data: [{ value: 0.66 }] }],
			subtitle: { color: '#666666', fontSize: 15, name: '实时速度', offsetY: -50 },
			title: { color: '#2fc25b', fontSize: 25, name: '60Km/H', offsetY: 50 },
			type: 'gauge'
		}
	}
]

页面初始化示例

ts
import opts from './index.uts'

function initFinished(e : ITuiCharts) {
	charts = e
	opts.forEach((item : UTSJSONObject, index : number) => {
		const chart = e.add(index, item.getJSON('option')!)
		chart.setCoordinates({ height: 287, xOffset: 0, yOffset: itemH * index })
		chart.draw()
	})
}

常见用法归纳

结合 xcharts/gauge/index.uts,当前仪表盘主要覆盖这些场景:

  • 基本仪表盘
  • 进度型仪表盘
  • 中心标题 + 副标题展示
  • 分段阈值颜色

核心配置集中在:

  • categories[].value / categories[].color
  • extra.gauge.startAngle / endAngle
  • extra.gauge.pointer
  • extra.gauge.splitLine
  • title / subtitle

动态更新示例

xcharts/gauge/gauge.uvue:33 演示了初始化后的数据更新:

ts
function updatearcbar() {
	const char = charts!
	const bar = char.getDrawCharts(0)!
	bar.update({
		series: [
			{ name: '目标值', data: [{ value: 50 }, { value: 60 }, { value: 55 }, { value: 65 }, { value: 45 }, { value: 70 }] },
			{ name: '完成量', data: [{ value: 10 }, { value: 20 }, { value: 15 }, { value: 25 }, { value: 5 }, { value: 30 }] }
		]
	})
}

适合速度表、达成率、评分盘、健康指数等场景。