// 每一个存储的模块,命名规则use开头,store结尾 import { defineStore } from 'pinia' import MyEvent from '@/utils/myEvent' MyEvent.add('clear-generate-state', () => useGenerateStore().clearGenerateData()) MyEvent.add('clear-client-state', () => useGenerateStore().clearCustomerInfo()) export const useGenerateStore = defineStore({ id: 'generate', // 必须指明唯一的pinia仓库的id state: () => { return { style: { id: '', path: '', taskId:'', isLike: false, //是否喜欢 status: '' }, styleList: [ {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, ], 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 }, /** AI魔改信息-演示 */ customizeInfoDemo: { inputText: '', count: 0, oldInputText: '', oldTryOnId: '', tryOnId: '', tryOnUrl: '', styleUrl: '', isRegenerated: '', isFavorite: false }, customerInfo: { customerId: '', visitRecordId: '' }, chatSessionId: '' //会话id 秒级时间戳 } }, getters: { /** 顾客id */ customerId: (state) => state.customerInfo.customerId, /** 进店记录id */ visitRecordId: (state) => state.customerInfo.visitRecordId, /** 服装id */ styleId: (state) => state.style.id, /** 模特照片id */ modelPhotoId: (state) => state.model.id, /** 原始试穿id不包含魔改id */ originalTryOnIdNoRein: (state) => state.originalTryOn.id, /** 原始试穿id-优先AI魔改 */ originalTryOnId: (state) => state.customizeInfo.tryOnId || state.originalTryOn.id, /** 顾客照片id */ customerPhotoId: (state) => state.photoInfo.id, /** 会话id */ sessionId: (state) => state.chatSessionId }, actions: { selectStyle(data: any) { this.style = { ...data, } }, clearStyle() { this.style = { id: '', path: '', isLike: false, taskId:'', status: '' } this.styleList = [ {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, ] }, //模特相关 selectModel(data: any) { this.model.id = data.id }, setIsGenerate(isGenerate: boolean) { this.isGenerate = isGenerate }, clearProductData() { this.styleList = [ {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, {id:'',taskId:'',status:'',path:''}, ] this.style = { id: '', path: '', isLike: false, taskId:'', status: '' } 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 }, /** 清空 AI魔改信息-演示 */ clearCustomizeInfoDemo() { this.customizeInfoDemo.inputText = '' this.customizeInfoDemo.count = 0 this.customizeInfoDemo.oldInputText = '' this.customizeInfoDemo.oldTryOnId = '' this.customizeInfoDemo.tryOnId = '' this.customizeInfoDemo.tryOnUrl = '' this.customizeInfoDemo.styleUrl = '' this.customizeInfoDemo.isRegenerated = '' this.customizeInfoDemo.isFavorite = false }, uploadCustomizeInfo(data: object) { for (const key in data) { this.customizeInfo[key] = data[key] } }, uploadCustomizeInfoDemo(data: object) { for (const key in data) { this.customizeInfoDemo[key] = data[key] } }, clearCustomerInfo() { this.customerInfo = { customerId: '', visitRecordId: '' } }, //设置默认数据 clearGenerateData() { this.clearProductData() this.updatePhotoInfo({}) this.clearCustomizeInfo() this.clearCustomizeInfoDemo() // this.clearCustomerInfo() this.setSessionId('') }, setCustomerInfo(data: any) { this.customerInfo = data }, setSessionId(data: string) { this.chatSessionId = data }, } })