From 1dfb5a9d8f7dd548c38f0ff09c9571f846f34118 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 24 Jul 2025 09:26:27 +0800
Subject: [PATCH] fix
---
src/component/Canvas/canvasExample.vue | 5 +-
src/component/HomePage/Generate.vue | 2 +-
src/component/HomePage/scaleImage.vue | 12 ++--
src/component/home/design/collection.vue | 2 +-
.../design/collection/ColorboardUpload.vue | 47 ++++++++--------
.../design/collection/PrintboardUpload.vue | 24 ++++++--
.../design/collection/SketchboardUpload.vue | 18 +++++-
src/component/home/design/collection/more.vue | 53 ++++++++++++++++--
src/component/home/design/tools.vue | 13 +++--
src/tool/https.js | 1 -
src/views/HomeView/library.vue | 55 ++++++++++++++++++-
src/views/Login.vue | 11 ++--
12 files changed, 190 insertions(+), 53 deletions(-)
diff --git a/src/component/Canvas/canvasExample.vue b/src/component/Canvas/canvasExample.vue
index 5f5aa084..9ce67844 100644
--- a/src/component/Canvas/canvasExample.vue
+++ b/src/component/Canvas/canvasExample.vue
@@ -17,7 +17,7 @@ const imageData = [
name: "风景照片",
type: "风景",
imgList: [
- { url: "/src/assets/work/1.PNG", name: "山景" },
+ { url: "https://www.minio-api.aida.com.hk/aida-users/83/printboard/7a0cccfc-1e3c-4c38-af65-d6179f21a267.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250723%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250723T025046Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=3612d6c168207bebdae2fa7c7c2c86ea0f48358b99b8b41dec9e2ff15e197e15", name: "山景" },
{ url: "/src/assets/work/2.PNG", name: "海景" },
],
},
@@ -264,7 +264,8 @@ body {
}
.app-container {
- height: 100vh;
+ height: 100%;
+// height: 100vh;
display: flex;
flex-direction: column;
}
diff --git a/src/component/HomePage/Generate.vue b/src/component/HomePage/Generate.vue
index 4bde8846..3ddd8364 100644
--- a/src/component/HomePage/Generate.vue
+++ b/src/component/HomePage/Generate.vue
@@ -201,7 +201,7 @@
-
+
diff --git a/src/component/HomePage/scaleImage.vue b/src/component/HomePage/scaleImage.vue
index c0057757..e73df63a 100644
--- a/src/component/HomePage/scaleImage.vue
+++ b/src/component/HomePage/scaleImage.vue
@@ -135,7 +135,7 @@
![]()
-
+
![]()
+
{{ $t('more.edit') }}
@@ -30,6 +31,7 @@ import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n'
import { downloadIamge } from "@/tool/util";
+import { Modal } from "ant-design-vue";
import modalCanvas from "@/component/modules/generalModalCanvas.vue";
export default defineComponent({
@@ -38,6 +40,7 @@ export default defineComponent({
},
props:{
moreList:{type:Array,default:()=>[]},
+ list:{type:Array,default:()=>[]},
item:{type:Object,default:()=>{}},
index:{type:Number,default:0},
level1Type:{type:String,default:''},
@@ -45,6 +48,7 @@ export default defineComponent({
emits:['deleteFile','scaleImage'],
setup(props,{emit}) {
const store = useStore();
+ const {t} = useI18n()
const data = reactive({
show:false
})
@@ -73,9 +77,50 @@ export default defineComponent({
}
setShow()
}
- const saveBase64Img = (rv)=>{
- console.log(rv)
- console.log(props.item)
+ const saveBase64Img = async (rv)=>{
+ let isOverlay = false
+ await new Promise((resolve, reject) => {
+ Modal.confirm({
+ title: t('scaleImage.overlayOrNot'),
+ icon: createVNode(ExclamationCircleOutlined),
+ okText: 'Yes',
+ cancelText: 'No',
+ mask:false,
+ centered:true,
+ onOk() {
+ resolve()
+ isOverlay = true
+
+ },
+ onCancel(){
+ isOverlay = false
+ resolve()
+ }
+ });
+ })
+ let data = {
+ "base64": rv,
+ "category": props.item.categoryValue,
+ "gender": store.state.Workspace.probjects.sex,
+ "originalId":props.item.resData.id,
+ "isOverride":isOverlay,
+ originalIdSource:props.item.resData.designType,
+ type:props.level1Type,
+ }
+ Https.axiosPost(Https.httpUrls.modifySketch, data).then(
+ (rv) => {
+ rv.imgUrl = rv.url
+ rv.status = 'Success'
+ rv.resData = {
+ id:rv.id,
+ designType:props.item.resData.designType,
+ }
+ rv.category = props.item?.category
+ rv.categoryValue = props.item?.categoryValue
+ isOverlay?(props.list[props.index] = rv):(props.list.unshift(rv))
+ }
+ ).catch(res=>{
+ });
}
return{
...toRefs(dataDom),
diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue
index 3c88b652..3e6e6289 100644
--- a/src/component/home/design/tools.vue
+++ b/src/component/home/design/tools.vue
@@ -58,6 +58,8 @@
+
+
Save
@@ -86,10 +88,12 @@ import editCanvas from "@/component/Canvas/CanvasEditor/index.vue";
import ExistsImageList from "@/component/Canvas/ExistsImageList/index.vue";
import JSZip, { forEach } from "jszip";
import publish from "@/component/WorksPage/publish.vue";
+import canvasAA from '@/component/Canvas/canvasExample.vue'
+
export default defineComponent({
components:{
- toProductRelight,poseTransfer,editCanvas,ExistsImageList,publish
+ toProductRelight,poseTransfer,editCanvas,ExistsImageList,publish,canvasAA
},
props:{
source:{
@@ -268,6 +272,7 @@ export default defineComponent({
const saveCanvas = ()=>{
let canvasJSON = dataDom.editCanvas.getJSON()
let canvasData = JSON.parse(canvasJSON)
+
if(!canvasData)return
canvasData.canvas.objects.forEach((objectsItem:any) => {
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
@@ -306,7 +311,7 @@ export default defineComponent({
let nameTail = imgItem.url?.split(".").pop().split("?").shift();
img.push({
imgUrl:imgItem.url,
- name:`${item.type}${index}.${nameTail}`
+ name:`${item.type}${index}.${nameTail?nameTail:'png'}`
})
})
}
@@ -373,9 +378,7 @@ export default defineComponent({
}
const share = async ()=>{
var imageDataURL = '';
- await dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:false}).then((rv:any)=>{
- imageDataURL = rv
- })
+ imageDataURL = await dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:false})
console.log(imageDataURL)
let value = {
imgUrl:imageDataURL,
diff --git a/src/tool/https.js b/src/tool/https.js
index 11a17cb1..c5091eca 100644
--- a/src/tool/https.js
+++ b/src/tool/https.js
@@ -101,7 +101,6 @@ axios.interceptors.response.use((res) =>{
}
}, function(error) {
if(error?.response?.status === 401 && router.currentRoute._value.name != 'setIdentification'){//如果是记录浏览器页面就不跳转login
- return
clonAllCookie()
if(!isLoginTime){
isLoginTime = true
diff --git a/src/views/HomeView/library.vue b/src/views/HomeView/library.vue
index c3d2c7cd..cd0b05ef 100644
--- a/src/views/HomeView/library.vue
+++ b/src/views/HomeView/library.vue
@@ -225,6 +225,9 @@
+
+
+
@@ -464,6 +467,7 @@
+
@@ -483,6 +487,10 @@
+
+
+
+
@@ -502,13 +510,15 @@
-
+
+
+
@@ -521,6 +531,7 @@ import setLabel from '@/component/LibraryPage/setLabel.vue';
import brandDetail from '@/component/LibraryPage/brandDetail.vue';
import createBrand from '@/component/LibraryPage/createBrand.vue';
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
+import modalCanvas from "@/component/modules/generalModalCanvas.vue";
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
@@ -552,6 +563,7 @@ export default defineComponent({
generalMenu,
UpgradePlan,
mannequinEdit,
+ modalCanvas,
},
props:{
},
@@ -595,12 +607,14 @@ export default defineComponent({
const dataDom = reactive({
createBrand:null as any,
brandDetail:null as any,
+ modalCanvas:null as any,
})
const pageData = reactive({
isBrandDetail:false,
brandDNAList:[] as any,
ageGroup:'',
ageGroupList:computed(()=>store.state.UserHabit.ageGroup),
+ editIndex:-1,
})
let designTypeList:any = ref({
Sketchboard:positionType,
@@ -845,7 +859,42 @@ export default defineComponent({
const addBrand = ()=>{
dataDom.createBrand.openAddBrand()
}
-
+ const editImg = (item:any,index:number)=>{
+ console.log(item)
+ pageData.editIndex = index
+ dataDom.modalCanvas.init(item,'')
+ // imgList
+ }
+ const saveBase64Img = (rv)=>{
+ let item = imgList.value[pageData.editIndex]
+ if(uploadGenerate.value !='Upload'){
+ item = generateList.value[selectCode.value]
+ item.designType = 'Generate'
+ item.level1Type = selectCode.value
+ return
+ }
+ let data = {
+ "base64": rv,
+ "category": item.level2Type,
+ "gender": sex.value,
+ "originalId":item.id,
+ "isOverride":true,
+ originalIdSource:item.designType,
+ type:item.level1Type,
+ }
+ Https.axiosPost(Https.httpUrls.modifySketch, data).then(
+ (rv) => {
+ // rv.imgUrl = rv.url
+ // rv.status = 'Success'
+ // rv.designType = item.designType
+ // rv.category = props.categoryValue
+ // rv.categoryValue = props.item?.categoryValue
+ // props.list[props.index] = rv
+ item.url = rv.url
+ }
+ ).catch(res=>{
+ });
+ }
return {
...toRefs(dataDom),
...toRefs(pageData),
@@ -907,6 +956,8 @@ export default defineComponent({
setSpeed,
openBrandDetail,
addBrand,
+ editImg,
+ saveBase64Img,
}
},
data(this_) {
diff --git a/src/views/Login.vue b/src/views/Login.vue
index a925520d..3010b8e8 100644
--- a/src/views/Login.vue
+++ b/src/views/Login.vue
@@ -25,7 +25,7 @@
AiDA, a first-to-market technology that empowers fashion designers, based on their creative inspirations, to work with AI to create original designs.
-
+
Continue with one of these:
@@ -33,11 +33,11 @@
Individual
- Enterprise
-
-
Academic
+
@@ -220,6 +220,9 @@ export default defineComponent({
> .loginBox {
width: 44rem;
margin-top: 7rem;
+ &.active{
+ width: 53rem;
+ }
> .selectType {
width: 100%;
text-align: center;