From bf605ea29747a1bc34d8f94212285d06b35bc5f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Mon, 22 Dec 2025 15:51:57 +0800 Subject: [PATCH] fix --- src/api/workshop.ts | 54 +++++++++----- src/views/Workshop/creation/creation-list.vue | 74 +++++++++++++------ 2 files changed, 85 insertions(+), 43 deletions(-) diff --git a/src/api/workshop.ts b/src/api/workshop.ts index aa88cb9..1032a94 100644 --- a/src/api/workshop.ts +++ b/src/api/workshop.ts @@ -122,27 +122,41 @@ export function deleteCustomerPhoto(visitRecordId: string | number) { // loading: true, }) } -/** 查询收藏列表 - * @param visitRecordId 进店记录id - */ -export function getTryOnEffectFavoriteList(visitRecordId: string | number) { - if (!visitRecordId) return Promise.reject('进店记录id不能为空'); - return request({ - url: `/api/try-on-effects/favorites/${visitRecordId}`, - method: 'get', - }) -} -/** 查询某套试穿效果列表 - * @param styleId 服装id - */ -export function getTryOnEffectStyleList(styleId: string | number) { - if (!styleId) return Promise.reject('服装id不能为空'); - return request({ - url: `/api/try-on-effects/style/${styleId}`, - method: 'get', - }) -} +// /** 查询收藏列表 +// * @param visitRecordId 进店记录id +// */ +// export function getTryOnEffectFavoriteList(visitRecordId: string | number) { +// if (!visitRecordId) return Promise.reject('进店记录id不能为空'); +// return request({ +// url: `/api/try-on-effects/favorites/${visitRecordId}`, +// method: 'get', +// }) +// } +// /** 查询某套试穿效果列表 +// * @param styleId 服装id +// */ +// export function getTryOnEffectStyleList(styleId: string | number) { +// if (!styleId) return Promise.reject('服装id不能为空'); +// return request({ +// url: `/api/try-on-effects/style/${styleId}`, +// method: 'get', +// }) +// } +/** 获取历史生成记录 + * @param params 获取历史生成记录参数 + * @param params.visitRecordId 进店记录id + * @param params.type 类型 + * @param params.isLibrary 是否是收藏 + */ +export function getGenerateHistoricals(params: Object) { + if (!params) return Promise.reject('参数不能为空'); + return request({ + url: `/api/try-on-effects/getHistoricals`, + method: 'get', + params, + }) +} // 选择顾客 interface CustomerInfo { diff --git a/src/views/Workshop/creation/creation-list.vue b/src/views/Workshop/creation/creation-list.vue index 238d09c..15f6318 100644 --- a/src/views/Workshop/creation/creation-list.vue +++ b/src/views/Workshop/creation/creation-list.vue @@ -2,10 +2,10 @@ import { ref, reactive, onMounted, computed } from 'vue' import MyList from '@/components/MyList.vue' import { DownloadImages } from '@/utils/tools' + import { showToast } from 'vant' import { FlowType } from '@/types/enum' import { - getTryOnEffectFavoriteList, - getTryOnEffectStyleList, + getGenerateHistoricals, setTryOnEffectFavorite, cancelTryOnEffectFavorite } from '@/api/workshop' @@ -31,32 +31,47 @@ const isChooseSave = ref(false) //是否选择保存模式 const navLst = [ - { label: 'Outfit', value: 'outfit', flowType: FlowType.H_OUTFIT }, - { label: 'Try-on', value: 'tryOn', flowType: FlowType.H_TRYON }, - { label: 'Gen-AI', value: 'genAi', flowType: FlowType.H_AI } + { label: 'Outfit', value: 'Outfit', flowType: FlowType.H_OUTFIT }, + { label: 'Try-on', value: 'Try-on', flowType: FlowType.H_TRYON }, + { label: 'Gen-AI', value: 'Gen-AI', flowType: FlowType.H_AI } ] - const navActive = ref('outfit'); + const navActive = ref('Outfit') navLst.forEach((v) => { if (v.flowType === query.value.flowType) navActive.value = v.value }) const clickNav = (v) => { + if (v.value === navActive.value || loading.value) return navActive.value = v.value - console.log(v) + onLoad() } const onLoad = () => { - console.log(navActive.value) loading.value = true - const http = visitRecordId.value ? getTryOnEffectFavoriteList : getTryOnEffectStyleList - const id = visitRecordId.value || generateStore.styleId - http(id) + finish.value = false + list.splice(0, list.length) + const params = { + customerId: generateStore.customerId, + type: navActive.value, + isLibrary: false + } + if (props.isChooseOne) { + params['visitRecordId'] = '' + } else if (visitRecordId.value) { + params['visitRecordId'] = visitRecordId.value + params.isLibrary = true + } else { + params['visitRecordId'] = generateStore.visitRecordId + } + getGenerateHistoricals(params) .then((data) => { data?.forEach((v) => { const obj = { - tryOnId: v.tryOnId, + // tryOnId: v.tryOnId, tryOnUrl: v.tryOnUrl, styleUrl: v.styleUrl, isFavorite: !!v.isFavorite, isRegenerated: !!v.isRegenerated, + url: v.url, + id: v.id, selected: false, loading: false, @@ -203,15 +218,22 @@ if (props.isChooseOne) { const selectedItem = list.find((v) => v.selected) const nav = navLst.find((v) => v.value === navActive.value) - if (!selectedItem || !nav) return - generateStore.clearCustomizeInfoDemo(); - generateStore.uploadCustomizeInfoDemo({ - tryOnId: selectedItem.tryOnId, - tryOnUrl: selectedItem.tryOnUrl, - styleUrl: selectedItem.styleUrl, - isFavorite: selectedItem.isFavorite, - isRegenerated: selectedItem.isRegenerated, - }) + if (!selectedItem || !nav) return showToast({ message: 'Please select one only.' }) + if (nav.flowType !== FlowType.H_OUTFIT) { + generateStore.clearCustomizeInfoDemo() + generateStore.uploadCustomizeInfoDemo({ + tryOnId: selectedItem.id, + tryOnUrl: selectedItem.tryOnUrl, + styleUrl: selectedItem.styleUrl, + isFavorite: selectedItem.isFavorite, + isRegenerated: selectedItem.isRegenerated + }) + } else { + // style + // selectedItem.id + // selectedItem.url + // selectedItem.isFavorite + } router.push({ name: 'HomeNav', query: { flowType: nav.flowType } }) } else { router.push({ name: 'end' }) @@ -236,8 +258,8 @@
-
- +
+