1.2.0版本

This commit is contained in:
2026-08-04 11:07:38 +08:00
parent a091664cee
commit bf8ce482e4
78 changed files with 1998 additions and 863 deletions
+22 -7
View File
@@ -4,11 +4,10 @@ import { useState, useEffect } from 'react'
import './index.scss'
import { getProductById } from '../../utils/productConfig'
import { getDesignList, setDesignList, updateDesign, type DesignItem, type StickerItem } from '../../utils/store'
import ThemeToggle from '../../components/ThemeToggle'
import { useThemeContext } from '../../context/ThemeContext'
export default function DIYPage() {
const { theme } = useThemeContext()
const { theme, resolvedTheme } = useThemeContext()
const [category, setCategory] = useState<any>(null)
const [step, setStep] = useState(1)
const [designId, setDesignId] = useState('')
@@ -202,6 +201,13 @@ export default function DIYPage() {
const handleTouchEnd = () => setIsDragging(false)
const handleEditSticker = () => {
if (!activeStickerId || !designId) return
Taro.navigateTo({
url: `/pages/diy/stickerEdit/index?designId=${designId}&stickerId=${activeStickerId}`
})
}
const handleScale = (id: string, delta: number) => {
const next = stickers.map(s => {
if (s.id !== id) return s
@@ -246,7 +252,7 @@ export default function DIYPage() {
if (!category) {
return (
<View className={`theme-${theme}`}>
<View className={`theme-${resolvedTheme}`}>
<View className='diy-page'>
<Text className='page-title'>...</Text>
</View>
@@ -255,9 +261,8 @@ export default function DIYPage() {
}
return (
<View className={`theme-${theme}`}>
<View className={`theme-${resolvedTheme}`}>
<View className='diy-page'>
<ThemeToggle />
<View className='page-header dashed-card mt-20'>
<View className='star-badge' />
@@ -268,8 +273,8 @@ export default function DIYPage() {
</View>
</View>
{/* 画布区域 */}
<View className='canvas-wrapper dashed-card mt-20'>
{/* 画布区域 — catchtouchmove 阻止事件冒泡导致页面滚动 */}
<View className='canvas-wrapper dashed-card mt-20' catchMove>
<View className='star-badge' />
<View className='canvas-area' style={getMaskStyle()}>
{stickers.map(s => (
@@ -337,6 +342,16 @@ export default function DIYPage() {
</View>
)}
{/* 常驻编辑按钮 */}
<View className='edit-btn-bar mt-20'>
<View
className={`edit-btn ${activeStickerId ? 'active' : 'disabled'}`}
onTap={handleEditSticker}
>
<Text></Text>
</View>
</View>
{/* 底部操作按钮 */}
<View className='action-btns mt-20'>
<View className='btn-gradient' onTap={() => setPreviewMode(true)}>