fix: details
This commit is contained in:
@@ -12,8 +12,8 @@ export const DECK_DEFAULTS = {
|
||||
SIZE_H: 86,
|
||||
GRID_W: 5,
|
||||
GRID_H: 8,
|
||||
BLEED: '1',
|
||||
PADDING: '2',
|
||||
BLEED: 1,
|
||||
PADDING: 2,
|
||||
FONT_SIZE: 3
|
||||
} as const;
|
||||
|
||||
@@ -23,8 +23,8 @@ export interface DeckState {
|
||||
sizeH: number;
|
||||
gridW: number;
|
||||
gridH: number;
|
||||
bleed: string;
|
||||
padding: string;
|
||||
bleed: number;
|
||||
padding: number;
|
||||
fontSize: number;
|
||||
fixed: boolean;
|
||||
src: string;
|
||||
@@ -61,8 +61,8 @@ export interface DeckActions {
|
||||
setSizeH: (size: number) => void;
|
||||
setGridW: (grid: number) => void;
|
||||
setGridH: (grid: number) => void;
|
||||
setBleed: (bleed: string) => void;
|
||||
setPadding: (padding: string) => void;
|
||||
setBleed: (bleed: number) => void;
|
||||
setPadding: (padding: number) => void;
|
||||
setFontSize: (size: number) => void;
|
||||
|
||||
// 数据设置
|
||||
@@ -161,11 +161,11 @@ export function createDeckStore(
|
||||
setState({ gridH: grid });
|
||||
updateDimensions();
|
||||
};
|
||||
const setBleed = (bleed: string) => {
|
||||
const setBleed = (bleed: number) => {
|
||||
setState({ bleed });
|
||||
updateDimensions();
|
||||
};
|
||||
const setPadding = (padding: string) => {
|
||||
const setPadding = (padding: number) => {
|
||||
setState({ padding });
|
||||
updateDimensions();
|
||||
};
|
||||
|
||||
@@ -3,8 +3,8 @@ import type { Dimensions } from '../types';
|
||||
export interface DimensionOptions {
|
||||
sizeW: number;
|
||||
sizeH: number;
|
||||
bleed: string;
|
||||
padding: string;
|
||||
bleed: number;
|
||||
padding: number;
|
||||
gridW: number;
|
||||
gridH: number;
|
||||
fontSize?: number;
|
||||
@@ -14,28 +14,21 @@ export interface DimensionOptions {
|
||||
* 解析卡牌尺寸和网格配置
|
||||
*/
|
||||
export function calculateDimensions(options: DimensionOptions): Dimensions {
|
||||
const [bleedW, bleedH] = options.bleed.includes('x')
|
||||
? options.bleed.split('x').map(Number)
|
||||
: [Number(options.bleed), Number(options.bleed)];
|
||||
const [padW, padH] = options.padding.includes('x')
|
||||
? options.padding.split('x').map(Number)
|
||||
: [Number(options.padding), Number(options.padding)];
|
||||
|
||||
// 实际卡牌尺寸(含出血)
|
||||
const cardWidth = options.sizeW + bleedW * 2;
|
||||
const cardHeight = options.sizeH + bleedH * 2;
|
||||
const cardWidth = options.sizeW + options.bleed * 2;
|
||||
const cardHeight = options.sizeH + options.bleed * 2;
|
||||
|
||||
// 网格区域尺寸(减去 padding)
|
||||
const gridAreaWidth = options.sizeW - padW * 2;
|
||||
const gridAreaHeight = options.sizeH - padH * 2;
|
||||
const gridAreaWidth = options.sizeW - options.padding * 2;
|
||||
const gridAreaHeight = options.sizeH - options.padding * 2;
|
||||
|
||||
// 每个网格单元的尺寸(mm)
|
||||
const cellWidth = gridAreaWidth / options.gridW;
|
||||
const cellHeight = gridAreaHeight / options.gridH;
|
||||
|
||||
// 网格区域起点(相对于卡牌左上角,含 bleed 和 padding)
|
||||
const gridOriginX = bleedW + padW;
|
||||
const gridOriginY = bleedH + padH;
|
||||
const gridOriginX = options.bleed + options.padding;
|
||||
const gridOriginY = options.bleed + options.padding;
|
||||
|
||||
return {
|
||||
cardWidth,
|
||||
|
||||
Reference in New Issue
Block a user