From 1aa2a29ae5883f5da5b22bcf906dacb84e8e178e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BE=B7=E8=BE=89?= Date: Wed, 2 Jul 2025 16:15:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=89=AA=E8=B4=B4?= =?UTF-8?q?=E6=9D=BF=E7=B2=98=E8=B4=B4=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/block/BgPaddingMultiSelect.tsx | 36 +++++++++++++++++-- src/components/block/CascaderMultiSelect.tsx | 2 +- src/pages/ChangeBgPage/index.tsx | 1 - 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/components/block/BgPaddingMultiSelect.tsx b/src/components/block/BgPaddingMultiSelect.tsx index 9527355..e61d028 100644 --- a/src/components/block/BgPaddingMultiSelect.tsx +++ b/src/components/block/BgPaddingMultiSelect.tsx @@ -50,11 +50,41 @@ export const BgPaddingMultiSelect: React.FC = ({ valu onChange(newArr); }; + // 处理从剪贴板读取图片 + const handlePasteFromClipboard = async () => { + if (!navigator.clipboard || !navigator.clipboard.read) { + alert('当前浏览器不支持剪贴板图片读取'); + return; + } + try { + const items = await navigator.clipboard.read(); + for (const item of items) { + for (const type of item.types) { + if (type.startsWith('image/')) { + const blob = await item.getType(type); + const file = new File([blob], `clipboard-image-${Date.now()}.png`, { type: blob.type }); + const newItem = { file, text: file.name.replace(/\.[^.]+$/, '') }; + onChange([...value, newItem]); + return; + } + } + } + alert('剪贴板中没有图片'); + } catch (err) { + alert('读取剪贴板图片失败'); + } + }; + return (
- +
+ + +
{value.map((item, idx) => ( diff --git a/src/components/block/CascaderMultiSelect.tsx b/src/components/block/CascaderMultiSelect.tsx index 016b4fc..501898b 100644 --- a/src/components/block/CascaderMultiSelect.tsx +++ b/src/components/block/CascaderMultiSelect.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import { Button } from '../ui/button'; import { Popover, PopoverTrigger, PopoverContent } from '@/components/ui/popover'; import { X } from 'lucide-react'; diff --git a/src/pages/ChangeBgPage/index.tsx b/src/pages/ChangeBgPage/index.tsx index 50d5d17..e1d6219 100644 --- a/src/pages/ChangeBgPage/index.tsx +++ b/src/pages/ChangeBgPage/index.tsx @@ -8,7 +8,6 @@ import ClothingCard from './components/ClothingCard'; import { api, type Body_async_cloud_change_bg_v3_api_v3_cloud_batch_change_bg_post, - type Body_async_cloud_gen_images_v3_api_v3_cloud_batch_edit_images_post, type Body_local_cloud_async_change_bg_api_v2_cloud_batch_change_bg_post, } from '@/api'; import { type BgPaddingMultiValue } from '@/components/block/BgPaddingMultiSelect';