提交修改

This commit is contained in:
X1627315083
2025-06-03 14:57:18 +08:00
parent 9fc2bcaedf
commit 87a08f5f8f
54 changed files with 1669 additions and 378 deletions

View File

@@ -2,8 +2,29 @@
<div class="patternMaking3D">
<div class="selectModel">
<div class="heard selectList">
<div :class="{active:libraryOrModel == 'model'}" @click="setLibraryOrModel('model')">Clothing</div>
<div :class="{active:libraryOrModel == 'print'}" @click="setLibraryOrModel('print')">Print</div>
<div class="title" :class="{active:libraryOrModel == 'model'}" @click="setLibraryOrModel('model')">Clothing</div>
<div class="title" :class="{active:libraryOrModel == 'print'}" @click="setLibraryOrModel('print')">Print</div>
<div class="generalModel_state">
<div class="generalModel_state_item smail">
<a-select
ref="select"
v-model:value="sex"
:options="sexList"
size="large"
:fieldNames="{ label: 'name', value: 'value' }"
style="width:20rem"
@change="sexChange"
>
<template #suffixIcon
><span
class="icon iconfont icon-xiala"
style="color: #000"
></span
></template>
</a-select>
</div>
</div>
</div>
<div class="list" v-show="libraryOrModel == 'model'" v-if="maskShow">
<div v-for="item in modelList" class="modelItem" :class="{active:item.id == selectModel.id}" @click="setSelectModel(item)">
@@ -86,6 +107,8 @@ export default defineComponent({
// }),
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
modelList:[] as any,
sex:'Female',
sexList:computed(()=>store.state.UserHabit.sex.value),
printList:computed(()=>store.state.UploadFilesModule.allBoardData.printboardFiles),
isShowMark:false,
isNoData:false,
@@ -97,12 +120,12 @@ export default defineComponent({
maskShow:false,
libraryOrModel:'model'
})
watch(()=>data.selectObject.sex,(newVal)=>{
const sexChange = ()=>{
data.modelList = []
data.currentPage = 0,
data.isNoData = false
data.isShowMark = false
})
}
const setSelectModel = (item:any)=>{
data.isShowMark = true
const value = {
@@ -143,7 +166,7 @@ export default defineComponent({
let value = {
page: data.currentPage,
size:data.pageSize,
sex:data.selectObject.sex,
sex:data.sex,
}
data.isShowLoading = true
Https.axiosPost(Https.httpUrls.threeDPage,value).then(
@@ -177,7 +200,7 @@ export default defineComponent({
dataDom.download.openDown(data.selectModel.id)
}
const setLibraryOrModel = (str:any)=>{
if(str == 'print' && data.selectModel.id == -1)return
// if(str == 'print' && data.selectModel.id == -1)return
data.libraryOrModel = str
}
const setMaterial = (item:any)=>{
@@ -191,6 +214,7 @@ export default defineComponent({
return{
...toRefs(dataDom),
...toRefs(data),
sexChange,
setSelectModel,
openSetData,
getModelList,
@@ -246,14 +270,19 @@ export default defineComponent({
display: flex;
justify-content: space-between;
width: 100%;
align-items: center;
&.selectList{
justify-content: flex-start;
> div{
> .title{
position: relative;
margin-right: 2rem;
margin-bottom: 2rem;
cursor: pointer;
// margin-bottom: 2rem;
}
> div::before{
> .generalModel_state{
margin-left: auto;
}
> .title::before{
position: absolute;
content: "";
display: block;

View File

@@ -79,7 +79,7 @@
<div class="element">
<div class="title"><i class="fi fi-rs-comments"></i><span>Selected Video</span></div>
<div class="content">
<generalDrag ref="generalDragLeft" v-if="isState" :list="likeList" :isLike="true" :isVideo="true" @setBtn="likeSetBtn"></generalDrag>
<generalDrag ref="generalDragLeft" :list="likeList" :isLike="true" :isVideo="true" @setBtn="likeSetBtn"></generalDrag>
</div>
<!-- <div class="btnLeft" @click="setSize('left')" :class="{'active':button.left}">
<span class="icon iconfont icon-xiala"></span>
@@ -93,7 +93,7 @@
<div class="element">
<div class="title"><i class="fi fi-rs-comments"></i><span>Generated Video</span></div>
<div class="content">
<generalDrag ref="generalDragRight" v-if="isState" :list="noLikeList" :isVideo="true" @setBtn="noLikeSetBtn"></generalDrag>
<generalDrag ref="generalDragRight" :list="noLikeList" :isVideo="true" @setBtn="noLikeSetBtn"></generalDrag>
</div>
</div>
</div>
@@ -118,10 +118,7 @@ export default defineComponent({
// selectList,
},
props:{
isState:{
type:Boolean,
default:false,
}
},
emits:[],
setup(props,{emit}) {
@@ -141,7 +138,7 @@ export default defineComponent({
},
waitList:[],
likeList:computed(()=>store.state.HomeStoreModule.poseTransfer),
noLikeList:[],
noLikeList:[ { "id": 128, "taskId": "df9cd154-6cf9-488a-8e64-426ef4a27e13-83", "productImage": null, "gifUrl": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_gif/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.gif?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=2a43ad4a389e8366207b6500506c17140e0387924a2adcb35188f2e59777e422", "videoUrl": "None", "firstFrameUrl": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_first_img/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=e202d13874f0a28105602a268c802d4c99d2fbecd06a9460cc07e7c7ecbd0559", "isLiked": 0, "status": "Success", "collectionType": null, "url": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_first_img/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=e202d13874f0a28105602a268c802d4c99d2fbecd06a9460cc07e7c7ecbd0559" } ],
isGenerate:false,//判断是否正在进行generate
remGenerate:false,
removeGenerate:false,
@@ -150,6 +147,7 @@ export default defineComponent({
selectPose:null as any,
})
const setIsShowMark:any = inject('setIsShowMark')
const createProbject:any = inject('createProbject')
const dataDom = reactive({
generalDragLeft:null as any,
generalDragRight:null as any,
@@ -158,7 +156,6 @@ export default defineComponent({
const selectImgItem = (item:any,)=>{
data.selectImg = item
data.fileList.forEach((listItem:any)=>listItem.isChecked = false)
console.log(data.currentList)
data.currentList.forEach((listItem:any)=>listItem.isChecked = false)
item.isChecked = true
if(item.url || item.imgUrl)data.selectImg.minioUrl = getMinioUrl(item.url || item.imgUrl)
@@ -166,6 +163,7 @@ export default defineComponent({
const openSetData = ()=>{
// dataDom.generalDrag.openSetData()
data.currentList = store.state.UploadFilesModule.modularData.toProduct
data.currentList = data.currentList?data.currentList:[]
setIsShowMark(false)
if(data.poseList.length == 0){
getPoseList()
@@ -175,7 +173,6 @@ export default defineComponent({
const setCloudImg = ()=>{
let arr = store.state.UploadFilesModule.cloudList
let list = JSON.parse(JSON.stringify(arr.poseTransfer)) || []
console.log(list)
list.forEach((item:any)=>{
item.url = item.firstFrameUrl
data.noLikeList.unshift(item)
@@ -300,7 +297,7 @@ export default defineComponent({
});
}
}
let beforeUpload = (file: any)=>{
let beforeUpload = async (file: any)=>{
const isJpgOrPng =
file.type === "image/jpeg" ||
file.type === "image/png" ||
@@ -313,7 +310,10 @@ export default defineComponent({
if (!isLt2M) {
message.info(useI18n().t('MoodboardUpload.jsContent4'));
}
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
if(!data.upload.projectId){
await createProbject()
}
return (isJpgOrPng && isLt2M && data.upload.projectId) || Upload.LIST_IGNORE;
}
const fileUploadChange = (value: any)=> {
let file = value.file;

View File

@@ -24,16 +24,12 @@
/>
</div>
<div
class="content_item_imgBox_itemImg"
class="imgBox"
v-show="file?.status === 'done'"
>
<img @click="setGenerate(file)" :class="[file?.isChecked?'active':'']" :src="file?.imgUrl" class="upload_img"/>
<a-checkbox v-model:checked="file.isChecked"></a-checkbox>
<!-- <div class="content_item_imgBox_itemImg_delete" @click="deleteFile(index)">
<i class="fi fi-rr-trash"></i>
</div> -->
</div>
</div>
<div class="upload_file_item upload_component">
@@ -116,11 +112,6 @@
</div>
</div>
</div>
<!-- <div class="productImg_content_item_title">{{$t('ProductImg.Upload')}}</div>
<div class="productImg_content_item_imgBox generalScroll upload_item">
</div> -->
<div class="productImg_content_item_generate_btn input_border">
<div class="input_box">
<div v-show="!isProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
@@ -232,7 +223,7 @@
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick} from "vue";
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick, inject} from "vue";
import { Https } from "@/tool/https";
import { getCookie,setCookie } from "@/tool/cookie";
// import domTurnImg from '@/tool/domTurnImg'
@@ -265,6 +256,7 @@ export default defineComponent({
let driver__:any = computed(()=>{
return store.state.Guide.guide
})
const createProbject:any = inject('createProbject')
let productImgData:any = reactive({
isShowMark:false,
fileList:{},
@@ -411,7 +403,7 @@ export default defineComponent({
bor = false
}
}
let beforeUpload = (file: any)=>{
let beforeUpload = async (file: any)=>{
const isJpgOrPng =
file.type === "image/jpeg" ||
file.type === "image/png" ||
@@ -424,6 +416,12 @@ export default defineComponent({
if (!isLt2M) {
message.info(useI18n().t('MoodboardUpload.jsContent4'));
}
if(!productImgData.selectObject.id){
productImgData.selectObject.id = await createProbject()
upload.value = {
projectId:productImgData.selectObject.id
}
}
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
}
let deleteFile = (index:any)=>{
@@ -968,33 +966,28 @@ methods: {
padding: 0;
overflow: hidden;
}
.upload_file_item{
display: flex;
margin-right: 1rem;
height: 14rem !important;
width: 9rem;
border: none !important;
&.upload_file_item:last-child{
width: 9rem;
margin-right: 0rem;
}
}
// width: 45%;
.productImg_content_item_imgBox{
flex-shrink: 0;
margin-bottom: 3rem;
.content_item_imgBox_itemImg{
width: auto;
max-width: 20rem;
width: 100%;
height: 25rem;
.content_item_imgBox_itemImg ,.upload_file_item{
margin-right: 1rem;
width: calc(100% / 2 - .5rem);
cursor: pointer;
overflow: hidden;
display: flex;
justify-content: center;
flex-shrink: 0;
height: 25rem;
position: relative;
> .imgBox{
width: 100%;
}
img{
object-fit: contain;
}
}
.upload_file_item{
flex-shrink: 0;
width: 36rem;
}
}
.productImg_content_item_generate{
--width:100%;