This commit is contained in:
X1627315083
2025-09-30 16:55:24 +08:00
parent 4a6fca0148
commit 6a63c4a081
4 changed files with 40 additions and 15 deletions

View File

@@ -228,6 +228,7 @@ export default defineComponent({
let uploadElementData = { let uploadElementData = {
str:'add', str:'add',
list:rv.uploadElement, list:rv.uploadElement,
isGetModule:true,
} }
store.commit('setUploadElement',uploadElementData) store.commit('setUploadElement',uploadElementData)

View File

@@ -39,8 +39,7 @@
}" }"
:headers="{ Authorization: token }" :headers="{ Authorization: token }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
v-model:file-list="fileList" :multiple="!!upload.projectId"
:multiple="true"
accept=".jpg,.png,.jpeg,.bmp" accept=".jpg,.png,.jpeg,.bmp"
@change="(file) => fileUploadChange(file)" @change="(file) => fileUploadChange(file)"
> >
@@ -136,6 +135,7 @@ import generalDrag from '@/component/modules/generalDrag.vue';
import { getUploadUrl,isMoible,getMinioUrl } from "@/tool/util"; import { getUploadUrl,isMoible,getMinioUrl } from "@/tool/util";
import { getCookie,setCookie } from "@/tool/cookie"; import { getCookie,setCookie } from "@/tool/cookie";
import showViewVideo from "@/tool/mount"; import showViewVideo from "@/tool/mount";
import router from '@/router';
export default defineComponent({ export default defineComponent({
components:{ components:{
@@ -156,6 +156,7 @@ export default defineComponent({
setup(props,{emit}) { setup(props,{emit}) {
const {t,locale} = useI18n() const {t,locale} = useI18n()
const store = useStore(); const store = useStore();
const route = useRoute();
const data:any = reactive({ const data:any = reactive({
button:{ button:{
left:false, left:false,
@@ -398,6 +399,11 @@ export default defineComponent({
} }
} }
let isSelectObject = false let isSelectObject = false
watch(()=>route?.query,(newVal)=>{
if(!newVal.id){
isSelectObject = false
}
},{immediate:true})
let beforeUpload = async (file: any)=>{ let beforeUpload = async (file: any)=>{
const isJpgOrPng = const isJpgOrPng =
file.type === "image/jpeg" || file.type === "image/jpeg" ||
@@ -425,19 +431,21 @@ export default defineComponent({
if(res.errCode == 0){ if(res.errCode == 0){
file.imgUrl = res.data.url; file.imgUrl = res.data.url;
file.id = res.data.id file.id = res.data.id
data.fileList.forEach((listItem:any)=>listItem.isChecked = false)
data.currentList.forEach((listItem:any)=>listItem.isChecked = false) data.currentList.forEach((listItem:any)=>listItem.isChecked = false)
file.isChecked = true
file.type = 'ProductElement' file.type = 'ProductElement'
// if(props.productimgMenu.value == 'Relight'){ // if(props.productimgMenu.value == 'Relight'){
// file.type = "ToProductImage" // file.type = "ToProductImage"
// } // }
data.selectImg = res.data data.selectImg = res.data
data.fileList.filter((v: any) => v.status === "done"); // data.fileList.filter((v: any) => v.status === "done");
let storeData = {
str:'add',
list:[file]
}
store.commit('setUploadElement',storeData)
}else{ }else{
bor = false bor = false
} }
// this.showFileList = productImgData.fileList
} else if (file.status === "error") { } else if (file.status === "error") {
bor = false bor = false
} }
@@ -565,6 +573,13 @@ export default defineComponent({
watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{ watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{
if(props.isDesignPage)return if(props.isDesignPage)return
data.fileList = store.state.HomeStoreModule.uploadElement data.fileList = store.state.HomeStoreModule.uploadElement
data.fileList.forEach((listItem:any)=>{
if(listItem.id == data.selectImg.id){
listItem.isChecked = true
}else{
listItem.isChecked = false
}
})
}) })
watch(()=>data.noLikeList.length,(newVal,oldVal)=>{ watch(()=>data.noLikeList.length,(newVal,oldVal)=>{
nextTick(()=>{ nextTick(()=>{

View File

@@ -45,8 +45,7 @@
}" }"
:headers="{ Authorization: token }" :headers="{ Authorization: token }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
v-model:file-list="fileList[productimgMenu.value]" :multiple="!!upload.projectId"
:multiple="true"
accept=".jpg,.png,.jpeg,.bmp" accept=".jpg,.png,.jpeg,.bmp"
@change="(file) => fileUploadChange(file)" @change="(file) => fileUploadChange(file)"
> >
@@ -323,6 +322,9 @@ export default defineComponent({
watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{ watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{
if(props.isDesignPage)return if(props.isDesignPage)return
productImgData.fileList[props.productimgMenu.value] = store.state.HomeStoreModule.uploadElement productImgData.fileList[props.productimgMenu.value] = store.state.HomeStoreModule.uploadElement
if(productImgData.fileList[props.productimgMenu.value][0]){
productImgData.fileList[props.productimgMenu.value][0].isChecked = true
}
}) })
const productImgDom = reactive({ const productImgDom = reactive({
generalDragLeft:null as any, generalDragLeft:null as any,
@@ -423,6 +425,7 @@ export default defineComponent({
} }
let fileUploadChange = (data: any)=> { let fileUploadChange = (data: any)=> {
console.log(data)
let file = data.file; let file = data.file;
let bor = true let bor = true
if (file.status === "done") { if (file.status === "done") {
@@ -435,11 +438,16 @@ export default defineComponent({
// if(props.productimgMenu.value == 'Relight'){ // if(props.productimgMenu.value == 'Relight'){
// file.type = "ToProductImage" // file.type = "ToProductImage"
// } // }
productImgData.fileList[props.productimgMenu.value].filter((v: any) => v.status === "done"); let storeData = {
str:'add',
list:[file]
}
console.log(storeData)
console.log(1111)
store.commit('setUploadElement',storeData)
}else{ }else{
bor = false bor = false
} }
// this.showFileList = productImgData.fileList
} else if (file.status === "error") { } else if (file.status === "error") {
bor = false bor = false
} }
@@ -466,11 +474,9 @@ export default defineComponent({
CollectionType:props.productimgMenu.value, CollectionType:props.productimgMenu.value,
} }
} }
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE; console.log(!!((isJpgOrPng && isLt2M && productImgData.selectObject.id) || Upload.LIST_IGNORE))
return !!((isJpgOrPng && isLt2M && productImgData.selectObject.id) || Upload.LIST_IGNORE);
} }
let deleteFile = (index:any)=>{
productImgData.fileList[props.productimgMenu.value].splice(index,1)
}
let setGenerate = (item:any)=>{ let setGenerate = (item:any)=>{
item.isChecked = !item.isChecked item.isChecked = !item.isChecked
} }
@@ -563,6 +569,7 @@ export default defineComponent({
}else{ }else{
obj.elementId = item.id obj.elementId = item.id
obj.elementType = item.resultType || 'ProductElement' obj.elementType = item.resultType || 'ProductElement'
obj.elementType = obj.elementType == 'Relight'?'ToProductImage':obj.elementType
} }
obj.parentId = item?.parentId || item?.userLikeSortId, obj.parentId = item?.parentId || item?.userLikeSortId,
selectArr.push(JSON.parse(JSON.stringify(obj))) selectArr.push(JSON.parse(JSON.stringify(obj)))
@@ -892,7 +899,6 @@ export default defineComponent({
setproduct, setproduct,
fileUploadChange, fileUploadChange,
beforeUpload, beforeUpload,
deleteFile,
setGenerate, setGenerate,
setUploadDelete, setUploadDelete,
likeFile, likeFile,

View File

@@ -95,6 +95,9 @@ const HomeStoreModule : Module<DesignDetail,RootState> = {
} }
}, },
setUploadElement(state,data){ setUploadElement(state,data){
if(data?.isGetModule){
state.uploadElement = []
}
if(data.str == 'add'){ if(data.str == 'add'){
state.uploadElement.unshift(...data.list) state.uploadElement.unshift(...data.list)
}else{ }else{