优化:多指交互

This commit is contained in:
iqudoo
2026-06-13 02:40:19 +08:00
parent 932ea4cc39
commit 4e31850dde
2 changed files with 94 additions and 13 deletions

View File

@@ -14,6 +14,8 @@ interface CanvasLabelImageProps {
variableDefaults?: Record<string, string> | null;
/** design=设计预览空变量显示占位output=排版/打印(空值隐藏图形元素) */
mode?: ContentResolveMode;
/** 渲染倍率,设计画布应传 MM_TO_PX * zoom 与显示尺寸 1:1 对齐 */
renderScale?: number;
}
export const CanvasLabelImage: React.FC<CanvasLabelImageProps> = ({
@@ -26,6 +28,7 @@ export const CanvasLabelImage: React.FC<CanvasLabelImageProps> = ({
transparentBackground = false,
variableDefaults = null,
mode = 'design' as ContentResolveMode,
renderScale = 16,
}) => {
const [dataUrl, setDataUrl] = useState<string>('');
const [initialLoading, setInitialLoading] = useState<boolean>(true);
@@ -46,6 +49,7 @@ export const CanvasLabelImage: React.FC<CanvasLabelImageProps> = ({
transparentBackground,
variableDefaults,
mode,
scale: renderScale,
})
.then((url) => {
if (active) {
@@ -61,7 +65,7 @@ export const CanvasLabelImage: React.FC<CanvasLabelImageProps> = ({
return () => {
active = false;
};
}, [widthMm, heightMm, elementsKey, rowDataKey, rowIndex, showBorder, transparentBackground, mode, elements, variableDefaults]);
}, [widthMm, heightMm, elementsKey, rowDataKey, rowIndex, showBorder, transparentBackground, mode, renderScale, elements, variableDefaults]);
if (initialLoading && !dataUrl) {
return (
@@ -78,10 +82,8 @@ export const CanvasLabelImage: React.FC<CanvasLabelImageProps> = ({
<img
src={dataUrl}
alt="Label Preview"
className="w-full h-full object-fill pointer-events-none select-none block"
className="block w-full h-full pointer-events-none select-none"
style={{
width: '100%',
height: '100%',
imageRendering: 'auto',
}}
/>