Files
aida_front/src/store/uploadFile/uploadFile.ts

479 lines
15 KiB
TypeScript
Raw Normal View History

2025-04-01 15:25:15 +08:00
import {Module,useStore} from 'vuex'
2023-01-06 16:00:15 +08:00
import {RootState} from '../index'
2025-04-01 15:25:15 +08:00
import homeStore from '../homeStore/homeStore'
import workspace from '../workspace/workspace'
2023-08-05 12:52:56 +08:00
import { message } from "ant-design-vue";
2023-10-31 16:04:40 +08:00
import { useI18n } from "vue-i18n";
2023-10-11 17:34:14 +08:00
import GO from '@/tool/GO';
2023-01-06 16:00:15 +08:00
interface UploadFiles{
2023-08-21 10:55:39 +08:00
moodboard:any,
2023-09-12 10:11:27 +08:00
disposeMoodboard:any,
2024-09-11 16:36:08 +08:00
moodboardPosition:any,
2023-01-06 16:00:15 +08:00
moodboardFiles:any,
2023-08-21 10:55:39 +08:00
moodboardGenerateFiles:any,
moodboardMaterialFiles:any,
sketchboard:any,
sketchboardFiles:any,
sketchGenerateFiles:any,
sketchMaterialFiles:any,
2023-11-29 09:56:48 +08:00
showSketchboard:any,
2023-08-21 10:55:39 +08:00
printboard:any,
2023-01-06 16:00:15 +08:00
printboardFiles:any,
2023-08-21 10:55:39 +08:00
printGenerateFiles:any,
printMaterialFiles:any,
2023-01-06 16:00:15 +08:00
colorBoards:any,
marketingSketchFiles:any,
allBoardData:any, //备份的所有数据点finish之后备份
moodTemplateId:any,
2024-09-02 12:26:35 +08:00
chooseIsDesign:any,
2025-04-01 15:25:15 +08:00
modularData:any,
2023-01-06 16:00:15 +08:00
}
const UploadFilesModule : Module<UploadFiles,RootState> = {
state:{
2023-08-21 10:55:39 +08:00
moodboard:[],
2023-09-12 10:11:27 +08:00
disposeMoodboard:[],
2024-09-11 16:36:08 +08:00
moodboardPosition:{},
2023-01-06 16:00:15 +08:00
moodboardFiles:[],
2023-08-21 10:55:39 +08:00
moodboardGenerateFiles:[],
moodboardMaterialFiles:[],
sketchboard:[],
sketchboardFiles:[],
sketchGenerateFiles:[],
sketchMaterialFiles:[],
2023-11-29 09:56:48 +08:00
showSketchboard:[],
2023-08-21 10:55:39 +08:00
printboard:[],
2023-01-06 16:00:15 +08:00
printboardFiles:[],
2023-08-21 10:55:39 +08:00
printGenerateFiles:[],
printMaterialFiles:[],
2023-01-06 16:00:15 +08:00
colorBoards:[],
marketingSketchFiles:[],
2025-04-01 15:25:15 +08:00
allBoardData:{
disposeMoodboard:[],
moodboardPosition:null,
moodboardFiles:[],
moodTemplateId:'',
printboardFiles:[],
sketchboardFiles:[],
colorBoards:[],
},
2023-01-06 16:00:15 +08:00
moodTemplateId:'',
2024-09-02 12:26:35 +08:00
chooseIsDesign:{value:true},
2025-04-01 15:25:15 +08:00
modularData:{
design:{
userlikeGroupId:null,
likeData:[],
},
toProduct:null,
relight:null,
poseTransfer:null,
canvas:null,
patternMaking3D:null,
deReconstruction:null,
},
2023-01-06 16:00:15 +08:00
},
mutations:{
2023-08-21 10:55:39 +08:00
2023-01-06 16:00:15 +08:00
setMoodboardFile(state,files){
2023-08-05 12:52:56 +08:00
state.moodboardFiles = files
2023-08-21 10:55:39 +08:00
state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles]
2023-09-12 10:11:27 +08:00
},
setDisposeMoodboard(state,files){
state.disposeMoodboard = [files]
2024-08-19 10:36:46 +08:00
},
setDisposeMoodboardPosition(state,files){
2024-09-11 16:36:08 +08:00
state.moodboardPosition = files
2023-08-23 17:50:09 +08:00
},
setMoodboardGenerateFiles(state,files){
state.moodboardGenerateFiles = files
state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles]
},
setMoodboardMaterialFiles(state,files){
state.moodboardMaterialFiles = files
state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles]
2023-01-06 16:00:15 +08:00
},
2023-09-12 10:11:27 +08:00
addGenerateMaterialFils(state,data:any){
2023-08-05 12:52:56 +08:00
let file
2023-09-25 10:09:00 +08:00
let arr
2023-12-11 11:02:48 +08:00
let maxImg = 8
if(data.type_.type2 == 'Sketchboard'){
maxImg = 20
2024-07-03 11:39:01 +08:00
}else if(data.type_.type2 == 'Printboard'){
maxImg = 16
2023-12-11 11:02:48 +08:00
}
2023-09-25 10:09:00 +08:00
if(data.type_.type1 == 'generate'){//判断是generate||library
data.resData.designType = 'Generate'
2023-08-21 10:55:39 +08:00
if(data.type_.type2 == 'Moodboard'){
file = state.moodboardGenerateFiles
}else if(data.type_.type2 == 'Sketchboard'){
file = state.sketchGenerateFiles
}else if(data.type_.type2 == 'Printboard'){
file = state.printGenerateFiles
}
2023-08-05 12:52:56 +08:00
}else{
2023-09-25 10:09:00 +08:00
data.resData.designType = 'Library'
2023-08-21 10:55:39 +08:00
if(data.type_.type2 == 'Moodboard'){
file = state.moodboardMaterialFiles
}else if(data.type_.type2 == 'Sketchboard'){
file = state.sketchMaterialFiles
}else if(data.type_.type2 == 'Printboard'){
2023-09-12 10:11:27 +08:00
file = state.printMaterialFiles
2023-08-21 10:55:39 +08:00
}
2023-08-05 12:52:56 +08:00
}
2023-09-25 10:09:00 +08:00
if(data.type_.type2 == 'Moodboard'){//判断选中图片数量
arr = state.moodboard
}else if(data.type_.type2 == 'Sketchboard'){
arr = state.sketchboard
}else{
arr = state.printboard
}
2023-10-31 16:04:40 +08:00
2023-08-05 12:52:56 +08:00
if(file.length == 0){
2023-12-11 11:02:48 +08:00
if(arr.length >= maxImg){
2023-10-31 16:04:40 +08:00
// message.warning(GO.jsContent1)
message.warning(data.jsContent1)
2023-08-05 12:52:56 +08:00
}else{
2024-07-03 11:39:01 +08:00
data.collectionChecked = true
2023-08-05 12:52:56 +08:00
file.push(data)
}
}else{
let str = true
for (let index = 0; index < file.length; index++) {
2023-09-25 10:09:00 +08:00
if(file[index].id == data.id){
2023-10-11 17:34:14 +08:00
// data.id_ = GO.id++
2023-08-05 12:52:56 +08:00
str = false
}
}
if(str){
2023-12-11 11:02:48 +08:00
if(arr.length >= maxImg){
2023-10-31 16:04:40 +08:00
message.warning(data.jsContent1)
2023-08-05 12:52:56 +08:00
}else{
2024-07-03 11:39:01 +08:00
data.collectionChecked = true
2023-08-05 12:52:56 +08:00
file.push(data)
}
2025-04-09 14:09:19 +08:00
}else if(data.state == 'delete'){
2025-04-01 15:25:15 +08:00
//重复选中后取消选择改为无反应
2025-04-09 14:09:19 +08:00
data.collectionChecked = false
delete data.state
file = file.filter((v:any)=> v.id != data.id)
2023-08-05 12:52:56 +08:00
}
}
2023-08-21 10:55:39 +08:00
if(data.type_.type1 == 'generate'){
if(data.type_.type2 == 'Moodboard'){
state.moodboardGenerateFiles = file
}else if(data.type_.type2 == 'Sketchboard'){
state.sketchGenerateFiles = file
}else if(data.type_.type2 == 'Printboard'){
state.printGenerateFiles = file
}
2023-08-05 12:52:56 +08:00
}else{
2023-08-21 10:55:39 +08:00
if(data.type_.type2 == 'Moodboard'){
state.moodboardMaterialFiles = file
}else if(data.type_.type2 == 'Sketchboard'){
state.sketchMaterialFiles = file
}else if(data.type_.type2 == 'Printboard'){
2023-09-12 10:11:27 +08:00
state.printMaterialFiles = file
2023-08-21 10:55:39 +08:00
}
2023-08-05 12:52:56 +08:00
}
2023-08-21 10:55:39 +08:00
state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles]
state.sketchboard = [...state.sketchboardFiles,...state.sketchGenerateFiles,...state.sketchMaterialFiles]
state.printboard = [...state.printboardFiles,...state.printGenerateFiles,...state.printMaterialFiles]
2023-08-05 12:52:56 +08:00
},
2023-08-21 10:55:39 +08:00
setSketchboardFile(state,files){
state.sketchboardFiles = files
state.sketchboard = [...state.sketchboardFiles,...state.sketchGenerateFiles,...state.sketchMaterialFiles]
2023-08-23 17:50:09 +08:00
},
setSketchboardGenerateFiles(state,files){
state.sketchGenerateFiles = files
state.sketchboard = [...state.sketchboardFiles,...state.sketchGenerateFiles,...state.sketchMaterialFiles]
},
setSketchboardMaterialFiles(state,files){
state.sketchMaterialFiles = files
state.sketchboard = [...state.sketchboardFiles,...state.sketchGenerateFiles,...state.sketchMaterialFiles]
2023-12-04 13:57:23 +08:00
2023-08-21 10:55:39 +08:00
},
2023-11-29 09:56:48 +08:00
setShowSketchboard(state,files){
state.showSketchboard = files
},
2023-11-29 10:33:13 +08:00
clearShowSketchboard(state,files){
state.showSketchboard = []
},
2023-08-21 10:55:39 +08:00
setPrintboardFile(state,files){
state.printboardFiles = files
state.printboard = [...state.printboardFiles,...state.printGenerateFiles,...state.printMaterialFiles]
2023-08-05 12:52:56 +08:00
},
2023-08-23 17:50:09 +08:00
setPrintboardGenerateFiles(state,files){
state.printGenerateFiles = files
state.printboard = [...state.printboardFiles,...state.printGenerateFiles,...state.printMaterialFiles]
},
setPrintboardMaterialFiles(state,files){
state.printMaterialFiles = files
state.printboard = [...state.printboardFiles,...state.printGenerateFiles,...state.printMaterialFiles]
},
2023-08-21 10:55:39 +08:00
2023-01-06 16:00:15 +08:00
setColorboardList(state,colorBoards){
2025-04-01 15:25:15 +08:00
state.colorBoards = colorBoards || []
2023-01-06 16:00:15 +08:00
},
setMarketingSketchFile(state,files){
state.marketingSketchFiles = files
},
2025-04-01 15:25:15 +08:00
setAllBoardData(state,data){
let str:any = data.str
let navListData = (workspace as any).state.projectList
let currentState = false
if(str == 'moodBoard'){
state.allBoardData.disposeMoodboard = state.disposeMoodboard
state.allBoardData.moodboardPosition = state.moodboardPosition
state.allBoardData.moodboardFiles = state.moodboard
state.allBoardData.moodTemplateId = state.moodTemplateId
if(state.moodboard.length > 0)currentState = true
}else if(str == 'printBoard'){
state.allBoardData.printboardFiles = state.printboard
if(state.printboard.length > 0)currentState = true
}else if(str == 'sketchBoard'){
state.allBoardData.sketchboardFiles = state.sketchboard
if(state.sketchboard.length > 0)currentState = true
}else if(str == 'colorBoard'){
state.allBoardData.colorBoards = state.colorBoards
if(state.colorBoards.length > 0)currentState = true
}
// let navListDataa:any = navListData[0]
// navListDataa.select = true;
navListData[0].select = true;
(workspace as any).state.projectList = navListData;
if(currentState){
let index = navListData.findIndex((item:any) => item.value === str);
navListData[index].select = true
}
},
clearAllBoardData(state,data){
if(data == 'moodBoard'){
state.allBoardData.disposeMoodboard = []
state.allBoardData.moodboardPosition = null
state.allBoardData.moodboardFiles = []
state.allBoardData.moodTemplateId = ''
}else if(data == 'printBoard'){
state.allBoardData.printboardFiles = []
}else if(data == 'sketchBoard'){
state.allBoardData.sketchboardFiles = []
}else if(data == 'colorBoard'){
state.allBoardData.colorBoards = []
}
let navListData = (workspace as any).state.projectList
let index = navListData.findIndex((item:any) => item.value === data);
navListData[index].select = false
2023-01-06 16:00:15 +08:00
},
2025-04-01 15:25:15 +08:00
createModularData(state){
state.modularData = {
design:null,
toProduct:null,
relight:null,
poseTransfer:null,
canvas:null,
patternMaking3D:null,
deReconstruction:null,
}
},
2023-01-06 16:00:15 +08:00
setAllBoardDataChoose(state,data){
state.allBoardData = data
2024-09-12 11:30:01 +08:00
if(Object.keys(data).length === 0){
state.chooseIsDesign.value = true
}
2024-09-02 12:26:35 +08:00
},
setChooseIsDesign(state,data){
state.chooseIsDesign.value = data
2023-01-06 16:00:15 +08:00
},
clearAllData(state){
2023-08-21 10:55:39 +08:00
state.moodboard = []
2023-01-06 16:00:15 +08:00
state.moodboardFiles = []
2023-08-21 10:55:39 +08:00
state.moodboardGenerateFiles = []
state.moodboardMaterialFiles = []
state.sketchboard = []
state.sketchboardFiles = []
state.sketchGenerateFiles = []
state.sketchMaterialFiles = []
state.printboard = []
state.printboardFiles = []
state.printGenerateFiles = []
state.printMaterialFiles = []
state.colorBoards = []
2023-01-06 16:00:15 +08:00
state.marketingSketchFiles = []
state.moodTemplateId = ''
2023-09-12 10:11:27 +08:00
state.disposeMoodboard = []
2023-12-01 15:02:37 +08:00
// state.showSketchboard = []
state.chooseIsDesign.value = true
2025-01-10 15:26:10 +08:00
state.moodboardPosition = {}
2023-01-06 16:00:15 +08:00
},
2023-09-25 10:09:00 +08:00
clearAllId(state){
state.moodboard.forEach((v:any) => {
delete v.id_
});
state.sketchboard.forEach((v:any) => {
delete v.id_
});
state.printboard.forEach((v:any) => {
delete v.id_
});
},
2023-01-06 16:00:15 +08:00
setMoodTemplateId(state,moodTemplateId){
state.moodTemplateId = moodTemplateId
},
clearMoodTemplateId(state){
2023-09-12 10:11:27 +08:00
state.disposeMoodboard = []
2024-09-11 16:36:08 +08:00
state.moodboardPosition = {}
2023-01-06 16:00:15 +08:00
},
},
actions:{
2025-04-01 15:25:15 +08:00
setAllBoardData({ state,commit },data) {
// commit('increment'); // 提交 mutation
let navListData = JSON.parse(JSON.stringify((workspace as any).state.projectList))
let str:any = data.type
let currentState = false
if(str == 'moodBoard'){
state.allBoardData.disposeMoodboard = state.disposeMoodboard
state.allBoardData.moodboardPosition = state.moodboardPosition
state.allBoardData.moodboardFiles = state.moodboard
state.allBoardData.moodTemplateId = state.moodTemplateId
if(state.moodboard.length > 0)currentState = true
}else if(str == 'printBoard'){
state.allBoardData.printboardFiles = state.printboard
if(state.printboard.length > 0)currentState = true
}else if(str == 'sketchBoard'){
state.allBoardData.sketchboardFiles = state.sketchboard
console.log(state.allBoardData.sketchboardFiles)
if(state.sketchboard.length > 0)currentState = true
}else if(str == 'colorBoard'){
state.allBoardData.colorBoards = state.colorBoards
if(state.colorBoards.length > 0)currentState = true
}
let index = navListData.findIndex((item:any) => item.value === str);
if(currentState){
navListData[index].select = true
}else{
navListData[index].select = false
}
commit('setProjectList',navListData)
},
setModularData({ state,commit },data){
let navListData = JSON.parse(JSON.stringify((workspace as any).state.projectList))
let value = null
let homeData:any = homeStore.state
if(data.type == 'design'){
let userGroupId = homeData.userGroupId
let likeData = homeData.likeDesignCollectionList
value = {userlikeGroupId:userGroupId?userGroupId:null,likeData:likeData?likeData:[]}
}else if(data.type == 'toProduct'){
value = homeData.toProductImageList
}else if(data.type == 'relight'){
value = homeData.relightList
}else if(data.type == 'poseTransfer'){
value = homeData.poseTransfer
}else if(data.type == 'deReconstruction'){
value = homeData.deReconstruction
}else if(data.type == 'patternMaking3D'){
value = homeData.patternMaking3D
}
let index = navListData.findIndex((item:any) => item.value === data.type);
if(
(value == null || value?.length == 0) ||
(data.type == 'design' && !value.userlikeGroupId)
){
navListData[index].select = false
}else{
navListData[index].select = true
}
state.modularData[data.type] = value
commit('setProjectList',navListData)
},
getProjectData({ state,commit },str){
return new Promise((resolve,reject) => {
let data:any = {}
let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard']
if(allBoardData.indexOf(str) != -1){
if(str == 'colorBoard'){
let boardData = state.colorBoards || []
let colorBoards = boardData.map((v: any) => {
let data = {
id: v.id,
name: v.name,
tcx: v.tcx,
gradient:v.gradient,
rgbValue: "",
};
data.rgbValue = `${v.rgbValue.r} ${v.rgbValue.g} ${v.rgbValue.b}`;
return data;
});
data[str] = colorBoards
}else if(str == 'moodBoard'){
2025-04-09 14:09:19 +08:00
state.moodboard = state.moodboard || []
let dataList = state.moodboard.map((v: any) => {
let data: any = {
id: v.resData.id,
designType: v.resData.designType,
};
return data;
});
2025-04-01 15:25:15 +08:00
data[str] = {
2025-04-09 14:09:19 +08:00
moodBoards:dataList,
moodTemplateId:state.allBoardData.disposeMoodboard?.[0]?.id?state.allBoardData.disposeMoodboard?.[0]?.id:null,
2025-04-01 15:25:15 +08:00
moodboardPosition:JSON.stringify(state.moodboardPosition),
}
}else if (str == 'printBoard') {
let dataList = state.printboard.map((v: any) => {
let data: any = {
id: v.resData.id,
designType: v.resData.designType,
level2Type: v.categoryValue,
isPin: v.pin ? 1 : 0,
};
return data;
});
data[str] = dataList
}else if(str == 'sketchBoard'){
let sketchBoards = state.sketchboard.map((v: any) => {
let data = {
designType: v.resData.designType,
isPin: v.pin ? 1 : 0,
level2Type: v.categoryValue,
sketchBoardId: v.resData.id,
};
return data;
});
data[str] = sketchBoards
}
}else{
data[str] = state.modularData[str]
}
resolve(data)
})
},
getProjectCanvasData({ state,commit },str){
return new Promise((resolve,reject) => {
let data:any = {}
let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard']
if(allBoardData.indexOf(str) != -1){
if(str == 'colorBoard'){
}else if(str == 'moodBoard'){
data[str] = state.moodboard
}else if (str == 'printBoard') {
let dataList = state.printboard;
data[str] = dataList
}else if(str == 'sketchBoard'){
let sketchBoards = state.sketchboard
data[str] = sketchBoards
}
}else{
if(str == 'design'){
data[str] = state.modularData[str].likeData
}else{
data[str] = state.modularData[str]
}
}
resolve(data)
})
},
2023-01-06 16:00:15 +08:00
}
}
export default UploadFilesModule