Files
lanecarford_front/src/stores/modules/generate.ts

145 lines
3.7 KiB
TypeScript
Raw Normal View History

2025-10-09 09:29:36 +08:00
// 每一个存储的模块命名规则use开头store结尾
import { defineStore } from 'pinia'
2025-10-28 14:51:14 +08:00
import MyEvent from '@/utils/myEvent'
MyEvent.add('clear-generate-state', () => useGenerateStore().clearGenerateData())
2025-10-21 10:20:57 +08:00
export const useGenerateStore = defineStore({
id: 'generate', // 必须指明唯一的pinia仓库的id
state: () => {
return {
2025-10-27 11:43:07 +08:00
style: {
id: '',
oldId: '' //表示从生成页面返回回来需要调整的样式id
},
2025-10-28 13:57:48 +08:00
styleList: [{},{},{},{}],
2025-10-27 11:43:07 +08:00
model: {
id: ''
},
originalTryOn: {
//生成穿好衣服的回参
id: '',
isLike: false, //是否喜欢
tryOnUrl: ''
},
isGenerate: false, //点击继续按钮后是否需要生成
2025-10-24 15:19:29 +08:00
2025-10-27 11:43:07 +08:00
/** 顾客照片信息 */
photoInfo: {
id: '',
url: '',
file: null
},
/** AI魔改信息 */
customizeInfo: {
inputText: '',
2025-10-30 17:22:50 +08:00
count: 0,
2025-10-30 17:36:15 +08:00
oldInputText: '',
oldTryOnId: '',
2025-10-24 13:19:01 +08:00
2025-10-27 11:43:07 +08:00
tryOnId: '',
tryOnUrl: '',
styleUrl: '',
isRegenerated: '',
isFavorite: false
},
customerInfo: {
customerId: '',
visitRecordId: ''
2025-10-27 11:43:07 +08:00
}
}
},
getters: {
/** 顾客id */
customerId: (state) => state.customerInfo.customerId,
/** 进店记录id */
visitRecordId: (state) => state.customerInfo.visitRecordId,
/** 服装id */
styleId: (state) => state.style.id || state.style.oldId,
/** 模特照片id */
modelPhotoId: (state) => state.model.id,
/** 原始试穿id-优先AI魔改 */
originalTryOnId: (state) => state.customizeInfo.tryOnId || state.originalTryOn.id,
/** 顾客照片id */
customerPhotoId: (state) => state.photoInfo.id
},
actions: {
selectStyle(data: any) {
this.style.id = data.id
console.log(this)
},
//生成后去掉id 设置oldId来修改样式
useStyleGenerate() {
if (!this.style.id) return
this.style.oldId = this.style.id
this.style.id = ''
},
updateStyle(data) {
console.log(data)
if (data.id == this.style.oldId) {
this.style.oldId = ''
}
},
//模特相关
selectModel(data: any) {
this.model.id = data.id
},
setIsGenerate(isGenerate: boolean) {
this.isGenerate = isGenerate
},
clearProductData() {
2025-10-28 13:57:48 +08:00
this.styleList = [{},{},{},{}]
this.style = {
id: '',
oldId: ''
}
this.model = {
id: ''
}
this.originalTryOn = {
id: '',
isLike: false,
tryOnUrl: ''
}
this.isGenerate = false
},
/** 更新顾客照片信息 */
updatePhotoInfo(data: any) {
this.photoInfo.id = data.id || ''
if (!data.photoUrl) this.photoInfo.url = ''
2025-10-30 16:41:19 +08:00
this.photoInfo.file = data.file || null
},
/** 清空 AI魔改信息 */
clearCustomizeInfo() {
this.customizeInfo.inputText = ''
2025-10-30 17:22:50 +08:00
this.customizeInfo.count = 0
2025-10-31 11:50:03 +08:00
this.customizeInfo.oldInputText = ''
this.customizeInfo.oldTryOnId = ''
this.customizeInfo.tryOnId = ''
this.customizeInfo.tryOnUrl = ''
this.customizeInfo.styleUrl = ''
this.customizeInfo.isRegenerated = ''
this.customizeInfo.isFavorite = false
},
2025-10-31 10:27:27 +08:00
uploadCustomizeInfo(data: object){
2025-10-31 10:27:48 +08:00
for (const key in data) {
2025-10-31 10:27:27 +08:00
this.customizeInfo[key] = data[key]
}
},
2025-10-28 15:17:47 +08:00
clearCustomerInfo(){
this.customerInfo = {
customerId: '',
visitRecordId: ''
}
},
//设置默认数据
clearGenerateData() {
this.clearProductData()
this.updatePhotoInfo({})
this.clearCustomizeInfo()
2025-10-28 15:17:47 +08:00
this.clearCustomerInfo()
},
setCustomerInfo(data: any) {
this.customerInfo = data
}
}
2025-11-03 10:24:03 +08:00
})