From 6ebab5f57737842b609688c89a0063f10d247b9a Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 28 Jan 2022 11:19:18 +0900 Subject: [PATCH] chore(client): improve chart rendering --- packages/client/src/components/chart.vue | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/client/src/components/chart.vue b/packages/client/src/components/chart.vue index 1959271f5..d17c0c9f3 100644 --- a/packages/client/src/components/chart.vue +++ b/packages/client/src/components/chart.vue @@ -143,6 +143,7 @@ export default defineComponent({ } const gridColor = defaultStore.state.darkMode ? 'rgba(255, 255, 255, 0.1)' : 'rgba(0, 0, 0, 0.1)'; + const vLineColor = defaultStore.state.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'; // フォントカラー Chart.defaults.color = getComputedStyle(document.documentElement).getPropertyValue('--fg'); @@ -255,6 +256,27 @@ export default defineComponent({ }, }, }, + plugins: [{ + id: 'vLine', + beforeDraw(chart, args, options) { + if (chart.tooltip._active && chart.tooltip._active.length) { + const activePoint = chart.tooltip._active[0]; + const ctx = chart.ctx; + const x = activePoint.element.x; + const topY = chart.scales.y.top; + const bottomY = chart.scales.y.bottom; + + ctx.save(); + ctx.beginPath(); + ctx.moveTo(x, bottomY); + ctx.lineTo(x, topY); + ctx.lineWidth = 1; + ctx.strokeStyle = vLineColor; + ctx.stroke(); + ctx.restore(); + } + } + }] }); };