Merge pull request #256 from LOG1997/release_0.6.0-beta4

Release 0.6.0 beta4
This commit is contained in:
LOG1997
2026-02-05 23:55:02 +08:00
committed by GitHub
13 changed files with 38 additions and 8 deletions

View File

@@ -0,0 +1,19 @@
import { describe, it, expect } from 'vitest'
import { useElementPosition } from '@/hooks/useElement'
describe('useElementPosition', () => {
it('works for totalCount = 40 without throwing', () => {
const element = {} as any
const count = 10
const totalCount = 40
const cardSize = { width: 140, height: 200 }
const windowSize = { width: 800, height: 600 }
const cardIndex = 0
const result = useElementPosition(element, count, totalCount, cardSize, windowSize, cardIndex)
expect(result).toHaveProperty('xTable')
expect(result).toHaveProperty('yTable')
expect(result).toHaveProperty('scale')
expect(typeof result.scale).toBe('number')
})
})

View File

@@ -1,7 +1,7 @@
{ {
"name": "log-lottery", "name": "log-lottery",
"private": true, "private": true,
"version": "0.6.0-3", "version": "0.6.0-4",
"type": "module", "type": "module",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {

2
src-tauri/Cargo.lock generated
View File

@@ -77,7 +77,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]] [[package]]
name = "app" name = "app"
version = "0.6.0-3" version = "0.6.0-4"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "app" name = "app"
version = "0.6.0-3" version = "0.6.0-4"
description = "A Tauri App" description = "A Tauri App"
authors = [ "you" ] authors = [ "you" ]
license = "" license = ""

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "log-lottery", "productName": "log-lottery",
"version": "0.6.0-3", "version": "0.6.0-4",
"identifier": "to2026.xyz", "identifier": "to2026.xyz",
"build": { "build": {
"frontendDist": "../dist", "frontendDist": "../dist",

View File

@@ -1,2 +1,2 @@
export const SINGLE_TIME_MAX_PERSON_COUNT = 30 export const SINGLE_TIME_MAX_PERSON_COUNT = 40
export const CONFETTI_FIRE_MAX_COUNT = 12 export const CONFETTI_FIRE_MAX_COUNT = 12

View File

@@ -262,6 +262,16 @@ const cardRule: CardRule = {
/** /**
* @description 设置抽中卡片的位置 * @description 设置抽中卡片的位置
*/ */
function createRuleForCount(count: number) {
// 动态生成规则:行数在 3-5 之间,尽可能均匀分配
const len = Math.min(5, Math.max(3, Math.ceil(count / 10)))
const base = Math.floor(count / len)
let rem = count % len
const rule = Array.from({ length: len }).fill(0).map(() => base + (rem > 0 ? (rem--, 1) : 0))
const scale = Math.max(0.9, 1.2 - (len - 3) * 0.1)
return { maxLine: Math.min(10, Math.ceil(count / len)), scale, rule, length: len }
}
export function useElementPosition( export function useElementPosition(
element: any, element: any,
count: number, count: number,
@@ -280,7 +290,8 @@ export function useElementPosition(
x: 0, x: 0,
y: windowSize.height / 2, y: windowSize.height / 2,
} }
const { scale, rule, length } = cardRule[totalCount] const ruleObj = cardRule[totalCount] ?? createRuleForCount(totalCount)
const { scale, rule, length } = ruleObj
// 计算缩放后的卡片尺寸 // 计算缩放后的卡片尺寸
const scaledCardWidth = cardSize.width * scale const scaledCardWidth = cardSize.width * scale
const scaledCardHeight = cardSize.height * scale const scaledCardHeight = cardSize.height * scale
@@ -311,7 +322,7 @@ export function useElementPosition(
// 修改此处逻辑确保当length=2时两行围绕中心点对称分布 // 修改此处逻辑确保当length=2时两行围绕中心点对称分布
centerPosition.y = windowSize.height / 2 - totalHeight / 2 centerPosition.y = windowSize.height / 2 - totalHeight / 2
yTable = centerPosition.y + currentRow * verticalSpacing + centerYOffset + scaledCardHeight / 2 // 添加卡片高度的一半作为修正 yTable = centerPosition.y + currentRow * verticalSpacing + centerYOffset // 添加卡片高度的一半作为修正
// 计算当前行的水平居中偏移 // 计算当前行的水平居中偏移
const horizontalSpacing = scaledCardWidth * 1.2 // 水平间距基于缩放后的宽度 const horizontalSpacing = scaledCardWidth * 1.2 // 水平间距基于缩放后的宽度
const rowWidth = (cardsInCurrentRow - 1) * horizontalSpacing const rowWidth = (cardsInCurrentRow - 1) * horizontalSpacing

View File

@@ -111,4 +111,4 @@
height: 240px !important; height: 240px !important;
object-fit: cover; object-fit: cover;
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 727 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB