+
+
![]()
+
+
@@ -128,17 +137,18 @@ import { useI18n } from 'vue-i18n'
import addDetails from '@/component/Detail/addDetails.vue'
export default defineComponent({
components:{
- detailLeft,model,detailRight,canvasBox
+ detailLeft,model,detailRight,canvasBox,addDetails
},
emits:['destroy'],
setup(props,{emit}) {
const store = useStore();
-
+ const {locale} = useI18n()
const detailDom = reactive({
model:null,
canvasBox,
detailRight,
detailLeft:null as any,
+ addDetails:null as any,
})
const userDetail = computed(()=>{
return store.state.UserHabit.userDetail
@@ -506,6 +516,17 @@ export default defineComponent({
sessionStorage.setItem('revocation', JSON.stringify(revocation));
sessionStorage.setItem('oppositeRevocation',JSON.stringify([]));
}
+
+ const addDetail = () =>{
+ let addDetails:any = detailDom.addDetails
+ addDetails.init(detailData.selectDetail,'')
+ }
+ const setSloganData = (data:any)=>{
+ detailData.selectDetail.sketchString = data
+ if(detailData.currentDetailType == 'sketch' && detailData.selectDetail?.newDetail?.sketch){
+ detailData.selectDetail.newDetail.sketch = null
+ }
+ }
onMounted(()=>{
window.addEventListener('resize', handleResize);
})
@@ -518,6 +539,7 @@ export default defineComponent({
})
return{
+ locale,
...toRefs(detailDom),
...toRefs(detailData),
closeModal,
@@ -531,6 +553,8 @@ export default defineComponent({
canvasReload,
modelOnLoad,
sketchSysToLibrary,
+ addDetail,
+ setSloganData,
}
},
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index 4b14e789..bc6ecf33 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -265,9 +265,22 @@ export default defineComponent({
let canvasJSON = detailDom?.editCanvas?.getJSON()
let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return resolve()
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/Detail/detailLeft/index.vue b/src/component/Detail/detailLeft/index.vue
index 37c64ef5..e97c4ed0 100644
--- a/src/component/Detail/detailLeft/index.vue
+++ b/src/component/Detail/detailLeft/index.vue
@@ -6,7 +6,6 @@
-
-
-
\ No newline at end of file
+})
+
+
diff --git a/src/component/LibraryPage/brandDetail.vue b/src/component/LibraryPage/brandDetail.vue
index 47c97c2e..6470d71f 100644
--- a/src/component/LibraryPage/brandDetail.vue
+++ b/src/component/LibraryPage/brandDetail.vue
@@ -41,7 +41,7 @@
-
+
{{$t('brandDNA.Compute')}}
@@ -546,6 +546,7 @@ export default defineComponent({
}
.gallery_btn{
&.loading{
+ width: min-content;
pointer-events: none;
color: #5F5F5F;
}
diff --git a/src/component/LoginPage/googleLogin.vue b/src/component/LoginPage/googleLogin.vue
index 09843dc2..d44a14a6 100644
--- a/src/component/LoginPage/googleLogin.vue
+++ b/src/component/LoginPage/googleLogin.vue
@@ -6,7 +6,7 @@

-
{{ $props.text }}
+
{{ displayText }}
@@ -21,7 +21,7 @@
props: {
text: {
type: String,
- default: 'Sign in with Google'
+ default: ''
}
},
setup(props, { emit }) {
@@ -108,6 +108,9 @@
const toGmailLogin = ()=>{
message.info(t('account.canNotUtilize'))
}
+ const displayText = computed(() => {
+ return props.text || t('Login.LoginWithGoogle')
+ })
onBeforeUnmount(()=>{
var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`);
if(existingScript){
@@ -120,6 +123,7 @@
})
return {
toGmailLogin,
+ displayText,
}
},
})
diff --git a/src/component/LoginPage/login/personal.vue b/src/component/LoginPage/login/personal.vue
index 3f774ce1..a597ba09 100644
--- a/src/component/LoginPage/login/personal.vue
+++ b/src/component/LoginPage/login/personal.vue
@@ -553,13 +553,14 @@ export default defineComponent({
loginType: "EMAIL",
userId: this.userId,
};
- this.$emit('update:isMask',true)
+ this.store.commit('set_loading', true)
Https.axiosPost(Https.httpUrls.accountLogin, data)
.then((rv: any) => {
- this.setSuccessLogin(rv);
+ this.setSuccessLogin(rv);
+ this.store.commit('set_loading', false)
})
.catch((res) => {
- this.$emit('update:isMask',false)
+ this.store.commit('set_loading', false)
});
},1000)
},
@@ -853,6 +854,10 @@ export default defineComponent({
font-size: 2.2rem;
font-weight: bold;
color: #030303;
+ @media (max-width: 767px) {
+ font-size: 1.2rem;
+ margin-left: .5rem;
+ }
}
.email_last_step_block_icon {
cursor: pointer;
diff --git a/src/component/LoginPage/verificationCodeInput.vue b/src/component/LoginPage/verificationCodeInput.vue
index 4b113036..d539c546 100644
--- a/src/component/LoginPage/verificationCodeInput.vue
+++ b/src/component/LoginPage/verificationCodeInput.vue
@@ -161,6 +161,13 @@
font-size: 2.4rem;
line-height: 8.7rem;
outline: none;
+ @media (max-width: 767px) {
+ border-radius: .7rem;
+ width: 3.5rem;
+ height: 3.5rem;
+ font-size: 1.8rem;
+ line-height: 3.5rem;
+ }
}
input:last-of-type {
margin-right: 0;
diff --git a/src/component/LoginPage/weiXinLogin.vue b/src/component/LoginPage/weiXinLogin.vue
index 915b22b9..f4d72bf8 100644
--- a/src/component/LoginPage/weiXinLogin.vue
+++ b/src/component/LoginPage/weiXinLogin.vue
@@ -2,7 +2,7 @@

-
{{ $props.text }}
+
{{ displayText }}
@@ -18,6 +18,7 @@ import {
toRefs,
} from "vue";
import weiXinModel from "./weiXinModel.vue";
+import { useI18n } from 'vue-i18n'
export default defineComponent({
name: "login",
components: {
@@ -26,20 +27,25 @@ export default defineComponent({
props: {
text: {
type: String,
- default: "Sign in with Wechat",
+ default: ''
},
},
- setup() {
+ setup(props) {
let weiXinDom = reactive({
weiXinModel: null,
});
+ const { t } = useI18n()
const openWeiXinModel = () => {
weiXinDom.weiXinModel.init();
};
+ const displayText = computed(() => {
+ return props.text || t('Login.LoginWithWechat')
+ })
onMounted(() => {});
return {
...toRefs(weiXinDom),
openWeiXinModel,
+ displayText,
};
},
});
diff --git a/src/component/WorksPage/newScaleImage.vue b/src/component/WorksPage/newScaleImage.vue
index b77d8f86..19afe3b7 100644
--- a/src/component/WorksPage/newScaleImage.vue
+++ b/src/component/WorksPage/newScaleImage.vue
@@ -113,8 +113,8 @@
-
{{$t('newScaleImage.SecondaryCreation')}}
-
+
+
{{$t('newScaleImage.SecondaryCreation')}}
@@ -276,7 +276,6 @@ import { Modal,message } from "ant-design-vue";
import { useI18n } from 'vue-i18n';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import fullScreenImg from '@/component/HomePage/fullScreenImg.vue'
-import { debounce } from 'lodash-es'
export default defineComponent({
components:{fullScreenImg},
@@ -438,25 +437,36 @@ export default defineComponent({
})
}
- let setChoose = debounce(async()=>{
- if(userDetail.value.systemList.indexOf(1) == -1){
- return message.info(t('newScaleImage.jsContent1'))
- }
+ let flag = true
+ let setChoose = async()=>{
+ if(!flag) return
+ flag = false
+ try {
+ if(userDetail.value.systemList.indexOf(1) == -1){
+ message.info(t('newScaleImage.jsContent1'))
+ return
+ }
- const targetDate = new Date('2025-09-01T00:00:00');
- // 解析输入日期字符串
- const inputDate = new Date(imgData.scaleImageData.createDate);
- if(inputDate < targetDate){
- return message.info(t('newScaleImage.jsContent2'))
- }
- if(imgData.scaleImageData.openSource == 0){
- return message.info(t('newScaleImage.jsContent2'))
- }
- let id = await getWorks(imgData.scaleImageData.id)
- router.push(`/home/history/${id}`)
- // router.push({name:'home',params: {id:imgData.scaleImageData.id,type:'Works'}})
- store.commit('setChooseIsDesign',false)
- },300)
+ const targetDate = new Date('2025-09-01T00:00:00');
+ // 解析输入日期字符串
+ const inputDate = new Date(imgData.scaleImageData.createDate);
+ if(inputDate < targetDate){
+ message.info(t('newScaleImage.jsContent2'))
+ return
+ }
+ if(imgData.scaleImageData.openSource == 0){
+ message.info(t('newScaleImage.jsContent2'))
+ return
+ }
+ store.state.Workspace.cachedRoutes = [];
+ let id = await getWorks(imgData.scaleImageData.id)
+ await router.push(`/home/history/${id}`)
+ store.commit('setChooseIsDesign',false)
+ } finally {
+ // 函数执行完成后恢复为 true,确保无论成功还是失败都能再次点击
+ flag = true
+ }
+ }
let setCommentReply = (value:any,str:any)=>{
imgData.commentReply.leve1Id = value.id
diff --git a/src/component/home/design/collection/MoodboardUpload.vue b/src/component/home/design/collection/MoodboardUpload.vue
index f938579d..77e20dec 100644
--- a/src/component/home/design/collection/MoodboardUpload.vue
+++ b/src/component/home/design/collection/MoodboardUpload.vue
@@ -132,8 +132,8 @@
-
-
![]()
+
+
@@ -244,30 +244,6 @@ export default defineComponent({
this.token = getCookie("token") || "";
this.uploadUrl = getUploadUrl();
},
- directives:{
- modelImg:{
- mounted(el) {
- let parentNode = el.parentNode
- if(parentNode.offsetHeight >= parentNode.offsetWidth){
- el.style.height = 100+'%'
- el.style.width = 'auto'
- }else{
- el.style.width = 100+'%'
- el.style.height = 'auto'
- }
- },
- updated (el) {
- let parentNode = el.parentNode
- if(parentNode.offsetHeight >= parentNode.offsetWidth){
- el.style.height = 100+'%'
- el.style.width = 'auto'
- }else{
- el.style.width = 100+'%'
- el.style.height = 'auto'
- }
- }
- }
- },
methods: {
open(num: Number) {
this.openClick = num;
@@ -445,7 +421,7 @@ export default defineComponent({
}
}
this.edieShow = true
- if(this.moodb_[arr.length-1].length == 2){
+ if(this.moodb_[arr.length-1].length == 1){
this.moodb_className = this.moodb_[arr.length-1][0]
}else{
this.moodb_className = this.moodb_[arr.length-1][random]
@@ -628,6 +604,7 @@ export default defineComponent({
height: calc(5rem*1.2);
overflow-x: hidden;
display: flex;
+
&.modal_img::-webkit-scrollbar {
display: none;
}
@@ -706,16 +683,9 @@ export default defineComponent({
position: relative;
overflow: hidden;
text-align: center;
- img{
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- float: left;
- object-fit: contain;
- user-select:none;
- -webkit-user-drag: none;
- }
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: cover;
}
.wh1{
width: 23%;
diff --git a/src/component/home/design/editDesignType/index.vue b/src/component/home/design/editDesignType/index.vue
index 3bc81541..c746c81e 100644
--- a/src/component/home/design/editDesignType/index.vue
+++ b/src/component/home/design/editDesignType/index.vue
@@ -242,7 +242,16 @@
-
+
{
return store.state.UserHabit.userDetail
})
- let { t } = useI18n()
+ let { t, locale } = useI18n()
const textareaRef = useTemplateRef('textareaRef')
const videoType = ref(2)
const showMotion = computed(() => videoType.value === 1)
@@ -599,13 +608,13 @@ export default defineComponent({
})
const showPromptAssist = ref(false)
const handleClickAssistBtn = () => {
- const { httpType } = store.state.Workspace.probjects
- const isSingleDesign = httpType === 'SINGLE_DESIGN'
- if (!isSingleDesign) {
- const promptText = t('ProductImg.Series')
- productimg.productimgSearchName = promptText
- return
- }
+ // const { httpType } = store.state.Workspace.probjects
+ // const isSingleDesign = httpType === 'SINGLE_DESIGN'
+ // if (!isSingleDesign) {
+ // const promptText = t('ProductImg.Series')
+ // productimg.productimgSearchName = promptText
+ // return
+ // }
showPromptAssist.value = true
}
@@ -1310,7 +1319,13 @@ export default defineComponent({
return videoType.value === 3 ? false : true
}
})
-
+ const handleNavigateHelp = () => {
+ const url =
+ locale === 'CHINESE_SIMPLIFIED'
+ ? 'https://aida-user-manual-chinese.super.site/2b08f755cedd80a985cffdf2af80c538'
+ : 'https://aida-user-manual.super.site/advanced-tool/animated-product-image/to-product-video-prompt-assist '
+ window.open(url,'_blank')
+ }
onBeforeUnmount(() => {
clearInterval(prductimgTime)
clearInterval(remPrductimgTime)
@@ -1374,7 +1389,8 @@ export default defineComponent({
handlePlayNewVideo,
isNewVideoPlaying,
showDropdown,
- inputPlaceholder
+ inputPlaceholder,
+ handleNavigateHelp
}
},
data() {
@@ -1786,12 +1802,16 @@ export default defineComponent({
:deep(.promptInput) {
box-sizing: border-box;
}
- .title {
- font-weight: 500;
- color: #000;
- font-size: 1.7rem;
- margin-bottom: 1.4rem;
- }
+ .title {
+ display: flex;
+ align-items: center;
+ column-gap: 1rem;
+ .cursor-icon {
+ display: flex;
+ width: auto;
+ cursor: pointer;
+ }
+ }
}
.prompt-container {
margin-top: 4rem;
diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue
index 7c77be77..ea741e7f 100644
--- a/src/component/home/design/tools.vue
+++ b/src/component/home/design/tools.vue
@@ -335,9 +335,22 @@ export default defineComponent({
let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/home/index.vue b/src/component/home/index.vue
index 45a0b998..f1f1eadb 100644
--- a/src/component/home/index.vue
+++ b/src/component/home/index.vue
@@ -7,7 +7,7 @@
-
-->
-
+
@@ -55,13 +55,16 @@ export default defineComponent({
const data = reactive({
openType:'',
componentKey:null,
- isShowMark:false,
+ isShowMark:true,
routeQuery:{} as any,
selectObject:computed(()=>store.state.Workspace.probjects) as any,//选择的项目
chatData:null as any,
dataLoad:true as any,
cachedRoutes:computed(()=>store.state.Workspace.cachedRoutes),//
})
+ onMounted(()=>{
+ data.isShowMark = false
+ })
let settingGetHistory:any = inject('settingGetHistory')
const setIsShowMark = (boolean:boolean)=>{
data.isShowMark = boolean
diff --git a/src/component/home/newProject/workspace.vue b/src/component/home/newProject/workspace.vue
index 92f0a20a..67dbca2d 100644
--- a/src/component/home/newProject/workspace.vue
+++ b/src/component/home/newProject/workspace.vue
@@ -38,7 +38,7 @@
{{$t('Habit.Style')}}:
-
{{ selectObject?.styleName?selectObject?.styleName:'All' }}
+
{{ selectObject?.styleName?selectObject?.styleName:$t('Header.All') }}
{{ $t('Habit.Select') }}
diff --git a/src/component/home/tools/deReconstruction/index.vue b/src/component/home/tools/deReconstruction/index.vue
index e6d7c772..0d2c1cd6 100644
--- a/src/component/home/tools/deReconstruction/index.vue
+++ b/src/component/home/tools/deReconstruction/index.vue
@@ -206,11 +206,22 @@ export default defineComponent({
if(!canvasJSON)return
if(!store.state.Workspace.probjects?.id)return
let canvasData = JSON.parse(canvasJSON)
- console.log(canvasData)
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
-
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/home/tools/poseTransfer/index.vue b/src/component/home/tools/poseTransfer/index.vue
index bdae0cb5..6034702c 100644
--- a/src/component/home/tools/poseTransfer/index.vue
+++ b/src/component/home/tools/poseTransfer/index.vue
@@ -777,6 +777,7 @@ export default defineComponent({
})
}
const likeSetBtn = (id: any, str: string) => {
+ console.log(1111)
data.likeList.forEach((item: any, index: any) => {
if (item.id == id && id) {
if (str == 'zoom') {
@@ -814,6 +815,7 @@ export default defineComponent({
let likeFile = (item: any, str: any, index: any) => {
let url
let value = {}
+ console.log(props.isDesignPage)
if (str == 'like') {
value = {
likeOrDislike: 'like',
@@ -1669,7 +1671,7 @@ export default defineComponent({
.ant-upload-select-picture-card {
width: 100%;
height: 100%;
- border: 1px solid #000;
+ border: 0.1rem solid #000;
background: #fff;
}
}
diff --git a/src/component/home/tools/poseTransfer/promptInput.vue b/src/component/home/tools/poseTransfer/promptInput.vue
index 56c75528..5d0852ac 100644
--- a/src/component/home/tools/poseTransfer/promptInput.vue
+++ b/src/component/home/tools/poseTransfer/promptInput.vue
@@ -65,7 +65,7 @@ defineExpose({