diff --git a/devui/quadrant-diagram/__tests__/quadrant-diagram.spec.ts b/devui/quadrant-diagram/__tests__/quadrant-diagram.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..bb4f8a5688e5dbfbcbe68871f949205756aaa29c --- /dev/null +++ b/devui/quadrant-diagram/__tests__/quadrant-diagram.spec.ts @@ -0,0 +1,32 @@ +import { mount } from '@vue/test-utils'; +import { reactive, nextTick } from 'vue'; + +import DQuadrantDiagram from '../src/quadrant-diagram'; + +describe('d-quadrant-diagram', () => { + it('quadrantDiagramResponse', async () => { + const view = reactive({ + height: 200, + width: 200, + }); + + const wrapper = mount({ + components: { DQuadrantDiagram }, + template: ``, + propsData: { + view, + }, + setup() { + return { + view + }; + } + }); + console.log(wrapper.html()) + + expect(wrapper.find('#devui-quadrant-axis-1').element['height']).toEqual(200); + view.height = 400; + await nextTick(); + expect(wrapper.find('#devui-quadrant-axis-1').element['height']).toEqual(400); + }) +}); \ No newline at end of file diff --git a/devui/quadrant-diagram/src/components/axis/index.tsx b/devui/quadrant-diagram/src/components/axis/index.tsx index 0e0d7d398df2b988f0d6885d3c12bf07f024d518..8929a29847ad0425bb715f98fb8fefce02f6aa76 100644 --- a/devui/quadrant-diagram/src/components/axis/index.tsx +++ b/devui/quadrant-diagram/src/components/axis/index.tsx @@ -33,14 +33,12 @@ export default defineComponent({ }) const axisConfigsVal: IAxisConfigs = axisConfigs.value - const viewVal: IViewConfigs = view.value - - + onMounted(() => { resetAxis() }) - watch(viewVal, () => { + watch(view.value, () => { resetAxis() }) @@ -56,8 +54,6 @@ export default defineComponent({ */ const initAxisData = () => { quadrantAxis.value = document.querySelector('#devui-quadrant-axis-' + diagramId.value) - quadrantAxis.value.width = viewVal.width - quadrantAxis.value.height = viewVal.height } const setAxisData = () => { @@ -218,10 +214,10 @@ export default defineComponent({ }, render() { - const { diagramId } = this + const { diagramId, view } = this return (
- +
) } diff --git a/devui/quadrant-diagram/src/quadrant-diagram.tsx b/devui/quadrant-diagram/src/quadrant-diagram.tsx index 27b01404ce9247110fd8e54b69a3200f33133ac5..8c15874ef739fc3e915e11e8a6ae1a25463e4e37 100644 --- a/devui/quadrant-diagram/src/quadrant-diagram.tsx +++ b/devui/quadrant-diagram/src/quadrant-diagram.tsx @@ -6,13 +6,9 @@ import { DEFAULT_AXIS_CONFIGS } from '../config' export default defineComponent({ name: 'DQuadrantDiagram', props: quadrantDiagramProps, - emits: [], setup(props: QuadrantDiagramProps) { const { diagramId, axisConfigs, view } = toRefs(props) - const axisConfigsVal = axisConfigs.value - const viewVal = view.value - const calAxisConfig = reactive({ axisOrigin: { x: null, y: null }, axisTop: null, @@ -33,22 +29,22 @@ export default defineComponent({ } } calAxisConfig.axisOrigin = { - x: axisConfigsVal.originPosition.left, - y: viewVal.height - axisConfigsVal.originPosition.bottom + x: axisConfigs.value.originPosition.left, + y: view.value.height - axisConfigs.value.originPosition.bottom } - calAxisConfig.axisTop = axisConfigsVal.axisMargin - calAxisConfig.axisRight = viewVal.width - axisConfigsVal.axisMargin + calAxisConfig.axisTop = axisConfigs.value.axisMargin + calAxisConfig.axisRight = view.value.width - axisConfigs.value.axisMargin calAxisConfig.axisWidth = calAxisConfig.axisRight - calAxisConfig.axisOrigin.x calAxisConfig.axisHeight = calAxisConfig.axisOrigin.y - calAxisConfig.axisTop - calAxisConfig.yAxisTicksNum = axisConfigsVal.yAxisRange.max - axisConfigsVal.yAxisRange.min - calAxisConfig.xAxisTicksNum = axisConfigsVal.xAxisRange.max - axisConfigsVal.xAxisRange.min + calAxisConfig.yAxisTicksNum = axisConfigs.value.yAxisRange.max - axisConfigs.value.yAxisRange.min + calAxisConfig.xAxisTicksNum = axisConfigs.value.xAxisRange.max - axisConfigs.value.xAxisRange.min calAxisConfig.xTickSpacing = calAxisConfig.axisWidth / calAxisConfig.xAxisTicksNum calAxisConfig.yTickSpacing = calAxisConfig.axisHeight / calAxisConfig.yAxisTicksNum } initAxisData() - watch(viewVal, () => { + watch(view.value, () => { initAxisData() })