// 每一个存储的模块,命名规则use开头,store结尾 import { defineStore } from 'pinia' import MyEvent from '@/utils/myEvent' MyEvent.add('clear-generate-state', () => useGenerateStore().clearGenerateData()) export const useGenerateStore = defineStore({ id: 'generate', // 必须指明唯一的pinia仓库的id state: () => { return { style: { id: '', oldId: '' //表示从生成页面返回回来,需要调整的样式id }, styleList: [{},{},{},{}], model: { id: '' }, originalTryOn: { //生成穿好衣服的回参 id: '', isLike: false, //是否喜欢 tryOnUrl: '' }, isGenerate: false, //点击继续按钮后是否需要生成 /** 顾客照片信息 */ photoInfo: { id: '', url: '', file: null }, /** AI魔改信息 */ customizeInfo: { inputText: '', count: 0, oldInputText: '', oldTryOnId: '', tryOnId: '', tryOnUrl: '', styleUrl: '', isRegenerated: '', isFavorite: false }, customerInfo: { customerId: '', visitRecordId: '' } } }, 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() { 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 = '' this.photoInfo.file = data.file || null }, /** 清空 AI魔改信息 */ clearCustomizeInfo() { this.customizeInfo.inputText = '' this.customizeInfo.count = 0 this.customizeInfo.oldInputText = '' this.customizeInfo.oldTryOnId = '' this.customizeInfo.tryOnId = '' this.customizeInfo.tryOnUrl = '' this.customizeInfo.styleUrl = '' this.customizeInfo.isRegenerated = '' this.customizeInfo.isFavorite = false }, uploadCustomizeInfo(data: object){ for (const key in data) { this.customizeInfo[key] = data[key] } }, clearCustomerInfo(){ this.customerInfo = { customerId: '', visitRecordId: '' } }, //设置默认数据 clearGenerateData() { this.clearProductData() this.updatePhotoInfo({}) this.clearCustomizeInfo() this.clearCustomerInfo() }, setCustomerInfo(data: any) { this.customerInfo = data } } })