2 Commits

Author SHA1 Message Date
李启源
faa9695bc0 chore(deps): 调整组件运行时依赖
All checks were successful
Package component / package (push) Successful in 4m15s
2026-07-23 13:21:04 +08:00
李启源
f102e9c661 fix(tooltip): 保持数值与单位单行显示
All checks were successful
Package component / package (push) Successful in 2m52s
2026-07-23 11:59:27 +08:00
4 changed files with 49 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "waveform-analysis", "name": "waveform-analysis",
"version": "0.1.18", "version": "0.1.20",
"main": "./dist/index.cjs", "main": "./dist/index.cjs",
"module": "./dist/index.js", "module": "./dist/index.js",
"types": "./dist/types/index.d.ts", "types": "./dist/types/index.d.ts",
@@ -34,11 +34,14 @@
"test": "vitest run", "test": "vitest run",
"test:coverage": "vitest run --coverage" "test:coverage": "vitest run --coverage"
}, },
"dependencies": {
"d3": "^7.9.0",
"vue3-colorpicker": "^2.3.0",
"ant-design-vue": "4.2.6"
},
"peerDependencies": { "peerDependencies": {
"ant-design-vue": ">=3.2.20 <4", "ant-design-vue": ">=3.2.20 <4",
"d3": ">=7.9.0 <8", "vue": ">=3.2.33 <4"
"vue": ">=3.2.33 <4",
"vue3-colorpicker": ">=2.3.0 <3"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "10.0.1", "@eslint/js": "10.0.1",
@@ -47,8 +50,6 @@
"@vitejs/plugin-vue": "6.0.8", "@vitejs/plugin-vue": "6.0.8",
"@vitest/coverage-v8": "4.1.10", "@vitest/coverage-v8": "4.1.10",
"@vue/test-utils": "2.4.11", "@vue/test-utils": "2.4.11",
"ant-design-vue": "4.2.6",
"d3": "7.9.0",
"eslint": "10.7.0", "eslint": "10.7.0",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-vue": "10.9.2", "eslint-plugin-vue": "10.9.2",
@@ -60,7 +61,6 @@
"vite": "8.1.5", "vite": "8.1.5",
"vitest": "4.1.10", "vitest": "4.1.10",
"vue": "3.5.40", "vue": "3.5.40",
"vue-tsc": "3.3.7", "vue-tsc": "3.3.7"
"vue3-colorpicker": "2.3.0"
} }
} }

19
pnpm-lock.yaml generated
View File

@@ -7,6 +7,16 @@ settings:
importers: importers:
.: .:
dependencies:
ant-design-vue:
specifier: 4.2.6
version: 4.2.6(vue@3.5.40(typescript@6.0.3))
d3:
specifier: ^7.9.0
version: 7.9.0
vue3-colorpicker:
specifier: ^2.3.0
version: 2.3.0(@aesoper/normal-utils@0.1.5)(@popperjs/core@2.11.8)(@vueuse/core@10.11.1(vue@3.5.40(typescript@6.0.3)))(gradient-parser@1.2.0)(lodash-es@4.18.1)(tinycolor2@1.6.0)(vue-types@4.2.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))
devDependencies: devDependencies:
'@eslint/js': '@eslint/js':
specifier: 10.0.1 specifier: 10.0.1
@@ -26,12 +36,6 @@ importers:
'@vue/test-utils': '@vue/test-utils':
specifier: 2.4.11 specifier: 2.4.11
version: 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@6.0.3)) version: 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@6.0.3))
ant-design-vue:
specifier: 4.2.6
version: 4.2.6(vue@3.5.40(typescript@6.0.3))
d3:
specifier: 7.9.0
version: 7.9.0
eslint: eslint:
specifier: 10.7.0 specifier: 10.7.0
version: 10.7.0 version: 10.7.0
@@ -68,9 +72,6 @@ importers:
vue-tsc: vue-tsc:
specifier: 3.3.7 specifier: 3.3.7
version: 3.3.7(typescript@6.0.3) version: 3.3.7(typescript@6.0.3)
vue3-colorpicker:
specifier: 2.3.0
version: 2.3.0(@aesoper/normal-utils@0.1.5)(@popperjs/core@2.11.8)(@vueuse/core@10.11.1(vue@3.5.40(typescript@6.0.3)))(gradient-parser@1.2.0)(lodash-es@4.18.1)(tinycolor2@1.6.0)(vue-types@4.2.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))
packages: packages:

View File

@@ -66,6 +66,31 @@ describe('WaveformTooltip', () => {
expect(wrapper.get('.waveform-tooltip__series small').text()).toBe('(+2 / -1)') expect(wrapper.get('.waveform-tooltip__series small').text()).toBe('(+2 / -1)')
}) })
it('keeps a formatted value and its unit in one value container', () => {
const hoveredPoint = { x: 1, y: -1405.4932 }
const wrapper = mount(WaveformTooltip, {
props: {
visible: true,
position: { x: 10, y: 10 },
timeUnit: 'ms',
hoveredPoint,
seriesPoints: [
{
trackIndex: 0,
name: 'ENG8KJXAc(10001)',
color: '#ffb43b',
unit: 'A',
point: hoveredPoint,
},
],
containerWidth: 400,
containerHeight: 300,
},
})
expect(wrapper.get('.waveform-tooltip__value').text()).toBe('-1,405.4932 A')
})
it('omits the error label when both resolved errors are zero', () => { it('omits the error label when both resolved errors are zero', () => {
const point = { x: 1, y: 12 } const point = { x: 1, y: 12 }
const wrapper = mount(WaveformTooltip, { const wrapper = mount(WaveformTooltip, {

View File

@@ -77,7 +77,7 @@ function formatError(point: WaveformPoint): string | null {
> >
<i :style="{ backgroundColor: seriesPoint.color }" /> <i :style="{ backgroundColor: seriesPoint.color }" />
<strong v-if="seriesPoint.name">{{ seriesPoint.name }}:</strong> <strong v-if="seriesPoint.name">{{ seriesPoint.name }}:</strong>
<span> <span class="waveform-tooltip__value">
{{ formatTooltipNumber(seriesPoint.point.y) {{ formatTooltipNumber(seriesPoint.point.y)
}}{{ seriesPoint.unit ? ` ${seriesPoint.unit}` : '' }} }}{{ seriesPoint.unit ? ` ${seriesPoint.unit}` : '' }}
<small v-if="formatError(seriesPoint.point)">{{ formatError(seriesPoint.point) }}</small> <small v-if="formatError(seriesPoint.point)">{{ formatError(seriesPoint.point) }}</small>
@@ -116,7 +116,7 @@ function formatError(point: WaveformPoint): string | null {
.waveform-tooltip__series { .waveform-tooltip__series {
display: grid; display: grid;
grid-template-columns: 8px auto minmax(0, 1fr); grid-template-columns: 8px minmax(0, 1fr) auto;
gap: 6px; gap: 6px;
align-items: center; align-items: center;
} }
@@ -134,6 +134,10 @@ function formatError(point: WaveformPoint): string | null {
white-space: nowrap; white-space: nowrap;
} }
.waveform-tooltip__value {
white-space: nowrap;
}
.waveform-tooltip__series small { .waveform-tooltip__series small {
color: #667085; color: #667085;
white-space: nowrap; white-space: nowrap;