This commit is contained in:
张德辉 2025-07-02 15:21:33 +08:00
parent 68f4aa8cba
commit 47e3d298bc
2 changed files with 9 additions and 3 deletions

View File

@ -16,6 +16,8 @@ import { type BgPaddingMultiValue } from '@/components/block/BgPaddingMultiSelec
// 五级联动的 tag schema // 五级联动的 tag schema
const tagSchema = z.object({ const tagSchema = z.object({
scenes: z.array(z.array(z.string())).optional(), scenes: z.array(z.array(z.string())).optional(),
paddingList: z.array(z.object({ file: z.instanceof(File), text: z.string() })).optional(),
bgMode: z.enum(['custom', 'scene']).optional(),
}); });
const formSchema = z.object({ const formSchema = z.object({
@ -129,17 +131,19 @@ const TryOnPage: React.FC = () => {
// 提交 // 提交
const onSubmit = async (values: FormValues) => { const onSubmit = async (values: FormValues) => {
console.log(values);
setLoading(true); setLoading(true);
setResult(null); setResult(null);
const results: any[] = []; const results: any[] = [];
console.log(values);
try { try {
for (let i = 0; i < values.clothing_images.length; i++) { for (let i = 0; i < values.clothing_images.length; i++) {
const tag = values.tags[i]; const tag = values.tags[i];
const bgMode = tag.bgMode || 'scene'; const bgMode = tag.bgMode || 'scene';
console.log(bgMode);
if (bgMode === 'custom') { if (bgMode === 'custom') {
// 自定义模式 // 自定义模式
const paddingList = tag.paddingList || []; const paddingList = tag.paddingList || [];
console.log(tag.paddingList);
for (const padding of paddingList) { for (const padding of paddingList) {
const formData: Body_async_cloud_change_bg_v3_api_v3_cloud_batch_change_bg_post = { const formData: Body_async_cloud_change_bg_v3_api_v3_cloud_batch_change_bg_post = {
clothing_images: [values.clothing_images[i]], clothing_images: [values.clothing_images[i]],

View File

@ -17,6 +17,8 @@ const tagSchema = z.object({
material: z.string().min(1, '请选择材质'), material: z.string().min(1, '请选择材质'),
color: z.string().min(1, '请选择颜色'), color: z.string().min(1, '请选择颜色'),
scenes: z.array(z.array(z.string())).optional(), scenes: z.array(z.array(z.string())).optional(),
paddingList: z.array(z.object({ file: z.instanceof(File), text: z.string() })).optional(),
bgMode: z.enum(['custom', 'scene']).optional(),
}); });
const formSchema = z.object({ const formSchema = z.object({
@ -181,13 +183,12 @@ const TryOnPage: React.FC = () => {
for (let i = 0; i < values.clothing_images.length; i++) { for (let i = 0; i < values.clothing_images.length; i++) {
const tag = values.tags[i]; const tag = values.tags[i];
const bgMode = tag.bgMode || 'scene'; const bgMode = tag.bgMode || 'scene';
const scenesArr: string[][] = tag.scenes || [];
if (bgMode === 'custom') { if (bgMode === 'custom') {
const paddingList = tag.paddingList || []; const paddingList = tag.paddingList || [];
for (const padding of paddingList) { for (const padding of paddingList) {
const formData: Body_async_cloud_gen_images_v3_api_v3_cloud_batch_edit_images_post = { const formData: Body_async_cloud_gen_images_v3_api_v3_cloud_batch_edit_images_post = {
clothing_images: [values.clothing_images[i]], clothing_images: [values.clothing_images[i]],
tag_list: JSON.stringify([[tag.sex, tag.category, tag.size, tag.material, tag.color].join('_')]), tag_list: [tag.sex, tag.category, tag.size, tag.material, tag.color].join('_'),
padding_clothes: [padding.file], padding_clothes: [padding.file],
bg_prompts: padding.text, bg_prompts: padding.text,
}; };
@ -195,6 +196,7 @@ const TryOnPage: React.FC = () => {
results.push(res); results.push(res);
} }
} else { } else {
const scenesArr: string[][] = tag.scenes || [];
for (const path of scenesArr) { for (const path of scenesArr) {
const scene = { const scene = {
title: path.join('/'), title: path.join('/'),