部分bug修复和对话中的图片过期处理
This commit is contained in:
@@ -1943,7 +1943,7 @@ textarea:focus {
|
||||
.accountEdit_page .input_border .input_box_btnBox.sketch .upload_item,
|
||||
.generalMenu_printModel_upload .input_border .input_box_btnBox.sketch .upload_item,
|
||||
.generate .input_border .input_box_btnBox.sketch .upload_item {
|
||||
width: 6rem;
|
||||
width: 8rem;
|
||||
}
|
||||
.collection_modal_body .input_border .input_box_btnBox.sketch .upload_item .upload_file_item,
|
||||
.design_detail_modal_component .input_border .input_box_btnBox.sketch .upload_item .upload_file_item,
|
||||
@@ -1954,8 +1954,8 @@ textarea:focus {
|
||||
.accountEdit_page .input_border .input_box_btnBox.sketch .upload_item .upload_file_item,
|
||||
.generalMenu_printModel_upload .input_border .input_box_btnBox.sketch .upload_item .upload_file_item,
|
||||
.generate .input_border .input_box_btnBox.sketch .upload_item .upload_file_item {
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
height: 8rem;
|
||||
width: 8rem;
|
||||
}
|
||||
.collection_modal_body .input_border .input_box_btnBox > .textarea,
|
||||
.design_detail_modal_component .input_border .input_box_btnBox > .textarea,
|
||||
@@ -2248,9 +2248,11 @@ textarea:focus {
|
||||
margin-left: 2rem;
|
||||
display: flex;
|
||||
font-size: 1.6rem;
|
||||
padding: 1rem 2rem;
|
||||
box-sizing: content-box;
|
||||
justify-content: center;
|
||||
padding: 0 2rem;
|
||||
line-height: 5.4rem;
|
||||
height: 5.4rem;
|
||||
}
|
||||
.generage_btn_box .generage_btn {
|
||||
width: 10rem;
|
||||
|
||||
@@ -2004,10 +2004,10 @@ textarea:focus{
|
||||
border: none;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
.upload_item{
|
||||
width: 6rem;
|
||||
width: 8rem;
|
||||
.upload_file_item{
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
height: 8rem;
|
||||
width: 8rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2171,9 +2171,11 @@ textarea:focus{
|
||||
margin-left: 2rem;
|
||||
display: flex;
|
||||
font-size: 1.6rem;
|
||||
padding: 1rem 2rem;
|
||||
box-sizing: content-box;
|
||||
justify-content: center;
|
||||
padding: 0 2rem;
|
||||
line-height: 5.4rem;
|
||||
height: 5.4rem;
|
||||
}
|
||||
.generage_btn{
|
||||
width: 10rem;
|
||||
|
||||
@@ -273,6 +273,8 @@ export default defineComponent({
|
||||
border: 2px solid #000;
|
||||
}
|
||||
>.box{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
> .background{
|
||||
flex: 1;
|
||||
height: 7rem;
|
||||
|
||||
@@ -131,13 +131,18 @@
|
||||
<div class="generage_btn_box">
|
||||
<div class="generage_btn started_btn" v-show="!isGenerate">
|
||||
<i class="fi fi-bs-magic-wand" style="background-color: #000; font-size: 2.3rem; flex: 1;margin: 0;" @click="getgenerate()"></i>
|
||||
<div class="icon iconfont icon-xiala" :class="{active:speedState}" @click.stop="openSpeed"></div>
|
||||
<div class="icon iconfont icon-xiala"
|
||||
v-show="(type_.type2 == 'Sketchboard') ||
|
||||
(type_.type2 == 'Printboard' && scene.value == 'Pattern') || type_.type2 == 'Moodboard'" :class="{active:speedState}" @click.stop="openSpeed"></div>
|
||||
<div class="content" v-show="speedState && scene?.value != 'extract'">
|
||||
<div v-for="item in speedList" v-show="(type_.type2 == 'Moodboard' && item?.value != 'flux') || (type_.type2 == 'Sketchboard' && item?.value != 'flux') || type_.type2 == 'Printboard'" :key="item.value" :class="{active:item.value == speedData.value}" @click="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
|
||||
<div v-for="item in speedList"
|
||||
v-show="(type_.type2 == 'Moodboard' && item?.value != 'flux') ||
|
||||
(type_.type2 == 'Sketchboard' && item?.value != 'flux') ||
|
||||
(type_.type2 == 'Printboard')"
|
||||
:key="item.value" :class="{active:item.value == speedData.value}" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
</div>
|
||||
<div class="content" v-show="speedState && scene?.value == 'extract'">
|
||||
<div v-for="item in extractList" :key="item.value" :class="{active:item.value == speedData.value}" @click="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
<div v-for="item in extractList" :key="item.value" :class="{active:item.value == speedData.value}" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="generage_btn started_btn" v-show="isGenerate && !remGenerate">
|
||||
@@ -296,10 +301,6 @@ export default defineComponent({
|
||||
],
|
||||
extractList:[
|
||||
{
|
||||
title:'This method may produce slight discrepancies between the extracted line art and the original image.',
|
||||
label:'High',
|
||||
value:'',
|
||||
},{
|
||||
title:'Note: The extracted line art might have minor variations from the original.',
|
||||
label:'FLUX',
|
||||
value:'flux',
|
||||
@@ -323,13 +324,17 @@ export default defineComponent({
|
||||
watch(()=>props.scene,(newVal,oldVal)=>{
|
||||
if(newVal.value == 'extract'){
|
||||
speed.speedData = speed.extractList[0]
|
||||
}else if(newVal.value == 'Logo' || newVal.value == 'Slogan'){
|
||||
speed.speedData.value = ''
|
||||
speed.speedData.label = ''
|
||||
}else{
|
||||
speed.speedData = speed.speedList[0]
|
||||
}
|
||||
speed.speedState = false
|
||||
})
|
||||
const setSpeed = (item:any)=>{
|
||||
speed.speedData = item
|
||||
speed.speedState = false
|
||||
speed.speedData = item
|
||||
}
|
||||
return {
|
||||
userDetail,
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="selectImgList_content_bottom">
|
||||
<div class="content_bottom_item" v-for="item in imgList" @click="setItemSelect(item)">
|
||||
<img :src="item.imgUrl" alt="" :class="{active:item.isChecked}">
|
||||
<img :src="item?.imgUrl || item?.url" alt="" :class="{active:item.isChecked}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="selectImgList_ok">
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<input type="text" v-model="renameText">
|
||||
<i class="fi fi-br-check" @click="submitRename(row)"></i>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-else style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">
|
||||
{{header?.fun?header.fun(row[header.value]) : row[header.value]}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -193,23 +193,25 @@ export default defineComponent({
|
||||
},{
|
||||
name:'Quantity generated',
|
||||
value:'nums',
|
||||
},{
|
||||
},
|
||||
{
|
||||
name:'Creation time',
|
||||
value:'updateTime',
|
||||
value:'createTime',
|
||||
fun:(value:any)=>{
|
||||
if(!value)return
|
||||
return value.split('T')[0] + ' ' + value.split('T')[1].split('.')[0]
|
||||
}
|
||||
},{
|
||||
},
|
||||
{
|
||||
name:'Start time',
|
||||
value:'updateTime',
|
||||
value:'startTime',
|
||||
fun:(value:any)=>{
|
||||
//没开始内容为 -
|
||||
if(!value)return
|
||||
return value.split('T')[0] + ' ' + value.split('T')[1].split('.')[0]
|
||||
}
|
||||
},{
|
||||
name:'End time',
|
||||
name:'Update time',
|
||||
value:'updateTime',
|
||||
fun:(value:any)=>{
|
||||
if(!value)return
|
||||
@@ -360,14 +362,14 @@ export default defineComponent({
|
||||
},1000)
|
||||
}
|
||||
const submitGetContentList = (project:any)=>{
|
||||
data.isGetContentList = true
|
||||
if(project){
|
||||
data.projectData = project
|
||||
}else{
|
||||
data.projectData = null
|
||||
}
|
||||
data.currentPage = 1
|
||||
getContentList()
|
||||
// data.isGetContentList = true
|
||||
// if(project){
|
||||
// data.projectData = project
|
||||
// }else{
|
||||
// data.projectData = null
|
||||
// }
|
||||
// data.currentPage = 1
|
||||
// getContentList()
|
||||
if(data.settingGetHistory)data.settingGetHistory()
|
||||
}
|
||||
const handleChange = (event:any,value:any)=>{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="chatBox">
|
||||
<div class="chattingRecords" v-show="chatList.length > 0 && isChattingRecords">
|
||||
<div class="itemBox" ref="chatBox">
|
||||
<div class="item" v-for="item in chatList" :class="{user:item.role == 'user'}">
|
||||
<div class="item" v-for="item,index in chatList" :class="{user:item.role == 'user'}">
|
||||
<div class="textBox">
|
||||
<div class="icon">
|
||||
<img src="@/assets/images/icon/favicon.png" alt="">
|
||||
@@ -29,7 +29,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="imgBox">
|
||||
<img v-if="item.content?.img?.length > 0" v-for="imgItem in item.content?.img" :src="imgItem.minioUrl" alt="">
|
||||
<!-- <span v-show="item.content?.img?.length > 0">
|
||||
{{ item.content?.img }}
|
||||
</span> -->
|
||||
|
||||
<img v-if="item.content?.img?.length > 0" v-for="imgItem,imgIndex in item.content?.img" :src="imgItem.minioUrl" alt="" @error="imgError(imgItem,index,imgIndex,$event)">
|
||||
</div>
|
||||
<div class="colorBox">
|
||||
<div v-if="item.content?.color?.length > 0" class="item" v-for="colorItem in item.content?.color">
|
||||
@@ -76,6 +80,7 @@
|
||||
import { defineComponent,computed,ref,inject,nextTick,createVNode,toRefs, reactive, watch} from 'vue'
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { Https } from "@/tool/https";
|
||||
import {getMinioUrl} from '@/tool/util'
|
||||
import { useStore } from "vuex";
|
||||
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
|
||||
import { useI18n } from 'vue-i18n'
|
||||
@@ -157,7 +162,7 @@ export default defineComponent({
|
||||
}else if(eventData.type == 'think'){
|
||||
data.chatList[data.chatList.length-1].content.think+=eventData.content
|
||||
}else if(eventData.type == "tools_response"){
|
||||
let nameList = ['moodboard','printboard','sketchboard','generate_color_code']
|
||||
let nameList = ['moodboard','printboard','sketchboard','generate_color_code','search_sketch_img']
|
||||
let nameData = {
|
||||
moodboard:'moodBoard',
|
||||
printboard:'printBoard',
|
||||
@@ -171,14 +176,17 @@ export default defineComponent({
|
||||
getData = 'colorBoard'
|
||||
}else{
|
||||
data.chatList[data.chatList.length-1].content.img = JSON.parse(JSON.parse(event.data).content).receiveCollectionElementList
|
||||
getData = nameData[eventData.tools_name]
|
||||
if(eventData.tools_name == 'search_sketch_img'){
|
||||
getData = 'sketchBoard'
|
||||
}else{
|
||||
getData = nameData[eventData.tools_name]
|
||||
}
|
||||
}
|
||||
data.chatList.push({content:{message:''},role:'system'})
|
||||
}else if(eventData.tools_name == 'design_control_signal'){
|
||||
emit('chatChange',{type:eventData.tools_name,design:true})
|
||||
}
|
||||
emit('chatChange',{type:eventData.type,module:getData})
|
||||
|
||||
}
|
||||
//emit('chatChange',{type:JSON.parse(event.data).status})
|
||||
};
|
||||
@@ -306,6 +314,19 @@ export default defineComponent({
|
||||
const deleteFile = (item:any,index:number)=>{
|
||||
data.filList.splice(index,1)
|
||||
}
|
||||
const imgError = (item:any,index:number,imgIndex:number,event:any)=>{
|
||||
if(!item?.loadNum) item.loadNum = 0
|
||||
if(item?.loadNum >= 1)return
|
||||
let value = {
|
||||
path:getMinioUrl(item.minioUrl)
|
||||
}
|
||||
Https.axiosGet(Https.httpUrls.refreshMinioUrl,{params:value}).then((rv:any)=>{
|
||||
event.target.src = rv
|
||||
item.loadNum += 1
|
||||
data.chatList[index].content.img[imgIndex].monioUrl = rv
|
||||
})
|
||||
|
||||
}
|
||||
return{
|
||||
...toRefs(dataDom),
|
||||
...toRefs(data),
|
||||
@@ -314,6 +335,7 @@ export default defineComponent({
|
||||
openChattingRecords,
|
||||
handleFileUpload,
|
||||
deleteFile,
|
||||
imgError,
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
|
||||
@@ -94,7 +94,7 @@ export default defineComponent({
|
||||
openType:'',
|
||||
collectionStep:1,
|
||||
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||
createProbject:inject('createProbject') as any
|
||||
createProbject:inject('createProbject',()=>{}) as any
|
||||
|
||||
})
|
||||
let driver__:any = computed(()=>{
|
||||
|
||||
@@ -806,8 +806,18 @@ export default defineComponent({
|
||||
this.setColorboardList(colorList)
|
||||
},
|
||||
setPrintImg(){
|
||||
let printImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.printboard))
|
||||
let moodImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.moodboard))
|
||||
let printImgListData = []
|
||||
if(this.store?.state?.UploadFilesModule.printboard == 0){
|
||||
printImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.allBoardData.printboardFiles))
|
||||
}else{
|
||||
printImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.printboard))
|
||||
}
|
||||
let moodImgListData = []
|
||||
if(this.store?.state?.UploadFilesModule.printboard == 0){
|
||||
moodImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.allBoardData.moodboardFiles))
|
||||
}else{
|
||||
moodImgListData = JSON.parse(JSON.stringify(this.store?.state?.UploadFilesModule.moodboard))
|
||||
}
|
||||
let imgListData = [...moodImgListData,...printImgListData]
|
||||
if(imgListData?.length==0){
|
||||
message.info(this.t('ColorboardUpload.jsContent6'))
|
||||
@@ -821,7 +831,7 @@ export default defineComponent({
|
||||
setImgGetColor(data){
|
||||
data.status = 'await'
|
||||
this.fileList[0] = data
|
||||
fetch(data.imgUrl)
|
||||
fetch(data.imgUrl || data.url)
|
||||
.then(response => response.blob())
|
||||
.then(blob => {
|
||||
const reader = new FileReader();
|
||||
|
||||
@@ -506,7 +506,8 @@ setup(props:any,{emit}) {
|
||||
status:productimg.generateSuccess.status,
|
||||
listType:productimg.generateSuccess.listType,
|
||||
isIndex:productimg.generateSuccess.isIndex,
|
||||
userLikeSortId:productimg.generateSuccess.userLikeSortId
|
||||
userLikeSortId:productimg.generateSuccess.userLikeSortId,
|
||||
parentId:productimg.generateSuccess.parentId
|
||||
}
|
||||
emit('addGenerateImg',data)
|
||||
|
||||
@@ -588,14 +589,16 @@ methods: {
|
||||
|
||||
}
|
||||
// this.
|
||||
console.log(list[index])
|
||||
this.generateSuccess.userLikeSortId = list[index].userLikeSortId
|
||||
this.generateSuccess.parentId = list[index].parentId
|
||||
this.generateSuccess.productimgIsProductimg = !!this.generateSuccess.productimgIsProductimg
|
||||
this.generateSuccess.productimgRemProductimg = !!this.generateSuccess.productimgRemProductimg
|
||||
this.generateSuccess.isShowMark = !!this.generateSuccess.isShowMark
|
||||
this.generateSuccess.remPrductimgTime = this.generateSuccess.remPrductimgTime?this.generateSuccess.remPrductimgTime:null
|
||||
this.generateSuccess.prductimgTime = this.generateSuccess.prductimgTime?this.generateSuccess.prductimgTime:null
|
||||
this.scaleImage = true
|
||||
if(this.poseList.length == 0){
|
||||
if(this.poseList.length == 0 && list[index].type == 'PoseTransfer'){
|
||||
this.getPoseList()
|
||||
}
|
||||
// if(status == 'edit'){
|
||||
@@ -623,7 +626,11 @@ methods: {
|
||||
}else{
|
||||
this.speedList = this.speedTypeList.toPorductImg
|
||||
}
|
||||
this.speedData = JSON.parse(JSON.stringify(this.speedList[0]))
|
||||
if(this.scaleImageList[index].resultType == "Relight"){
|
||||
this.speedData = JSON.parse(JSON.stringify(this.speedList[1]))
|
||||
}else{
|
||||
this.speedData = JSON.parse(JSON.stringify(this.speedList[0]))
|
||||
}
|
||||
// if(this.scaleImageList[index]?.resultType == 'ToProductImage')this.scaleImageList[index].sourceUrl = this.scaleImageList[index].imgUrl
|
||||
this.scaleImageIndex = index
|
||||
if(dialogueIndex)this.robotAssits = dialogueIndex
|
||||
|
||||
@@ -37,9 +37,20 @@
|
||||
<!-- <div class="right_top" ref="hidden" :class="{'active':domHidden}"> -->
|
||||
<div class="right_top_left">
|
||||
<div class="gallery_btn white Guide_1_15" @click="designNewCollection()">
|
||||
<!-- <div class="gallery_btn white Guide_1_15" @click="designNewCollection()"> -->
|
||||
{{ $t('HomeView.Design') }}
|
||||
</div>
|
||||
<div class="generage_btn_box">
|
||||
<div class="generage_btn started_btn" style="margin-left: 2rem;">
|
||||
<div class="" @click="openEditTools()" style="margin-left: 1rem;">
|
||||
Tools
|
||||
</div>
|
||||
<div class="icon iconfont icon-xiala" :class="{active:speedState}" @click.stop="openSpeed"></div>
|
||||
<div class="content" v-show="speedState">
|
||||
<div v-for="item in speedList" :key="item.value" style="font-size: 1.6rem;" :class="{active:item.value == speedData.value}" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="gallery_btn white button_margin_14 Guide_1_30" v-show="designCollectionId"
|
||||
@click="resDesignCollection()">
|
||||
{{ $t('HomeView.Redesign') }}
|
||||
@@ -212,23 +223,24 @@
|
||||
</div>
|
||||
</div>
|
||||
<div ref="designBtn" class="btnOpen" @click.stop="()=>openEditBtnId=-1" :class="{active:openEditBtnId == selectEditBtn?.designItemId||openEditBtnId == selectEditBtn?.id}">
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'Design'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'ToProductImage','add','like')">
|
||||
<div class="text">To Product Image</div>
|
||||
<i class="fi fi fi-ss-box-open"></i>
|
||||
</div>
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'ToProductImage' || selectEditBtn?.resultType == 'Relight'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'Relight','add','like')">
|
||||
<div class="text">Relight</div>
|
||||
<i class="fi fi fi-br-keyboard-brightness"></i>
|
||||
</div>
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'ToProductImage' || selectEditBtn?.resultType == 'Relight'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'PoseTransfer','add','like')">
|
||||
<div class="text">Transfer Pose</div>
|
||||
<i class="fi fi fi-rr-play-alt"></i>
|
||||
</div>
|
||||
<div class="item" @click="dislikeDesignCollection(selectEditBtn,selectEditBtn?.resultType,selectEditBtnIndex)">
|
||||
<div class="text">Delete</div>
|
||||
<i class="fi fi-rr-trash icon_delete">
|
||||
</i>
|
||||
</div>
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'ToProductImage'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'PoseTransfer','add','like')">
|
||||
<div class="text">Transfer Pose</div>
|
||||
<i class="fi fi fi-rr-play-alt"></i>
|
||||
</div>
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'ToProductImage'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'Relight','add','like')">
|
||||
<div class="text">Relight</div>
|
||||
<i class="fi fi fi-br-keyboard-brightness"></i>
|
||||
</div>
|
||||
<div class="item" v-show="selectEditBtn?.resultType == 'Design'" @click="setEditDesignType(selectLikeDesign,selectEditBtnIndex,'ToProductImage','add','like')">
|
||||
<div class="text">To Product Image</div>
|
||||
<i class="fi fi fi-ss-box-open"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<collectionModal ref="collectionModal"></collectionModal>
|
||||
<!-- <DesignDetail ref="designDetail" @finishRedesign="finishRedesign"></DesignDetail> -->
|
||||
@@ -250,6 +262,7 @@
|
||||
}"
|
||||
@setGenerateAwait="setGenerateAwait"
|
||||
:isProductimg="true"></editDesignType>
|
||||
<designTools ref="designTools" @editToolsSuccess="editToolsSuccess"></designTools>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@@ -275,6 +288,7 @@ import { useI18n } from "vue-i18n";
|
||||
import { getMousePosition } from "@/tool/mdEvent";
|
||||
import { removeClass } from "element-plus/es/utils";
|
||||
import collectionModal from './collection.vue'
|
||||
import designTools from './tools.vue'
|
||||
const FileSaver = require("file-saver");
|
||||
|
||||
export default defineComponent({
|
||||
@@ -287,6 +301,7 @@ export default defineComponent({
|
||||
generalCanvas,
|
||||
DesignDetailcopy,
|
||||
editDesignType,
|
||||
designTools,
|
||||
},
|
||||
emits:['setTask'],
|
||||
activated() {
|
||||
@@ -383,7 +398,50 @@ export default defineComponent({
|
||||
collectionModal:null as any,
|
||||
editDesignType:null as any,
|
||||
designBtn:null as any,
|
||||
designTools:null as any,
|
||||
})
|
||||
//可使用的tools类型
|
||||
let speed = reactive({
|
||||
speedList:[
|
||||
{
|
||||
label:'To Product Image',
|
||||
value:'toProduct',
|
||||
|
||||
},{
|
||||
label:'Transfer Pose',
|
||||
value:'poseTransfer',
|
||||
},{
|
||||
label:'Relight',
|
||||
value:'relight',
|
||||
},
|
||||
],
|
||||
speedState:false,
|
||||
speedData:{
|
||||
label:'To Product Image',
|
||||
value:'toProduct',
|
||||
},
|
||||
})
|
||||
const openSpeed = ()=>{
|
||||
speed.speedState = !speed.speedState
|
||||
if(speed.speedState){
|
||||
document.addEventListener('click',openSpeed)
|
||||
}else{
|
||||
document.removeEventListener('click',openSpeed)
|
||||
}
|
||||
}
|
||||
const setSpeed = (item:any)=>{
|
||||
speed.speedState = false
|
||||
speed.speedData = item
|
||||
}
|
||||
const openEditTools = ()=>{
|
||||
dataDom.designTools.init(speed.speedData.value,likeDesignCollectionList.value)
|
||||
}
|
||||
const editToolsSuccess = ()=>{
|
||||
nextTick().then(()=>{
|
||||
designData.isUnfold = true
|
||||
uploadLikeDom()
|
||||
})
|
||||
}
|
||||
const designData = reactive({
|
||||
openEditBtnId:-1,
|
||||
selectEditBtn:null as any,
|
||||
@@ -404,7 +462,6 @@ export default defineComponent({
|
||||
selectDesign:null as any,//当前选择的design
|
||||
isUnfold:false,
|
||||
selectLikeDesign:[] as any,
|
||||
|
||||
//类型
|
||||
resultTypeList:[
|
||||
{
|
||||
@@ -791,7 +848,7 @@ export default defineComponent({
|
||||
userGroupId:data.userGroupId || data.id,
|
||||
firstFrameUrl:data.firstFrameUrl,
|
||||
gifUrl:data.gifUrl,
|
||||
userLikeSortId:data.userLikeSortId,
|
||||
parentId:data.parentId || data.userLikeSortId,
|
||||
}
|
||||
let list = []
|
||||
if(data.listType == 'disLike'){
|
||||
@@ -837,7 +894,7 @@ export default defineComponent({
|
||||
let data = {
|
||||
toProductImageResultId:[(design.designItemId || design.id)],
|
||||
projectId: store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:designData?.selectDesign?.userLikeSortId || design.parentId,
|
||||
collectionSortParentId:designData?.selectDesign?.parentId || design.parentId,
|
||||
} as any
|
||||
let params = {} as any
|
||||
if(type == 'ToProductImage' || type == 'Relight'){
|
||||
@@ -853,14 +910,14 @@ export default defineComponent({
|
||||
likeOrDislike:'like',
|
||||
transformedId:design.id,
|
||||
projectId:store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:designData?.selectDesign?.userLikeSortId || design.parentId,
|
||||
collectionSortParentId:design.parentId || designData?.selectDesign?.userLikeSortId,
|
||||
}
|
||||
}else{
|
||||
params = {
|
||||
likeOrDislike:'dislike',
|
||||
transformedId:design.id,
|
||||
projectId:store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:designData?.selectDesign?.userLikeSortId || design.parentId,
|
||||
collectionSortParentId:design.parentId || designData?.selectDesign?.userLikeSortId,
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@@ -883,13 +940,14 @@ export default defineComponent({
|
||||
}else{
|
||||
likeDesignCollectionList.value.forEach((item:any)=>{
|
||||
if(item.resultType == 'Design' && item.userLikeSortId == designData.selectDesign.userLikeSortId){
|
||||
item.childList = item.childList.filter((item:any)=>{
|
||||
return item.id != design.id
|
||||
item.childList = item.childList.filter((childItem:any)=>{
|
||||
return childItem.id != design.id
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
nextTick().then(()=>{
|
||||
designData.isUnfold = true
|
||||
uploadLikeDom()
|
||||
})
|
||||
|
||||
@@ -1093,6 +1151,13 @@ export default defineComponent({
|
||||
...toRefs(collItemSize),
|
||||
...toRefs(designData),
|
||||
...toRefs(dataDom),
|
||||
//编辑tools相关
|
||||
...toRefs(speed),
|
||||
openSpeed,
|
||||
setSpeed,
|
||||
openEditTools,
|
||||
editToolsSuccess,
|
||||
|
||||
likeItemDom,
|
||||
collItemDom,
|
||||
domHidden,
|
||||
@@ -1215,6 +1280,8 @@ export default defineComponent({
|
||||
this.setShowHide('recycleDomHidden')
|
||||
})
|
||||
}
|
||||
this.isUnfold = true
|
||||
this.setUnfold()
|
||||
},
|
||||
directives:{
|
||||
mousewheel:{
|
||||
|
||||
181
src/component/home/design/tools.vue
Normal file
181
src/component/home/design/tools.vue
Normal file
@@ -0,0 +1,181 @@
|
||||
<template>
|
||||
<div class="designToolsModel" ref="designToolsModel" v-show="designTools"></div>
|
||||
<a-modal
|
||||
class="collection generalModel fullScreen"
|
||||
v-model:visible="designTools"
|
||||
:footer="null"
|
||||
width="100%"
|
||||
height="100%"
|
||||
:get-container="() => $refs.designToolsModel"
|
||||
:maskClosable="false"
|
||||
:centered="true"
|
||||
:closable="false"
|
||||
:mask="false"
|
||||
:keyboard="false"
|
||||
:destroyOnClose="false"
|
||||
:zIndex="1000"
|
||||
>
|
||||
<div class="generalModel_btn">
|
||||
<div class="generalModel_closeIcon" @click.stop="cleardata()">
|
||||
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="23" cy="23" r="23" fill="#000" fill-opacity="0.3"/>
|
||||
<rect x="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="white"/>
|
||||
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="designOpenrtion_content">
|
||||
<!-- <div class="modal_title_text">
|
||||
<div>Setting</div>
|
||||
</div> -->
|
||||
<div class="collectionBox">
|
||||
<toProductRelight ref="toProduct"
|
||||
:productimgMenu="{value:'ToProductImage',label:$t('ProductImg.ProductImage')}"
|
||||
:isDesignPage="true"
|
||||
@setLike="designLike"
|
||||
class="toProduct"
|
||||
:isState="openType =='toProduct'"
|
||||
v-if="openType == 'toProduct'"
|
||||
></toProductRelight>
|
||||
<toProductRelight ref="relight"
|
||||
:productimgMenu="{value:'Relight',label:$t('ProductImg.Relight')}"
|
||||
:isDesignPage="true"
|
||||
@setLike="designLike"
|
||||
class="relight"
|
||||
:isState="openType =='relight'"
|
||||
v-if="openType == 'relight'"
|
||||
></toProductRelight>
|
||||
<poseTransfer v-if="openType == 'poseTransfer'" :isDesignPage="true" @setLike="designLike" ref="poseTransfer"></poseTransfer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mark_loading" v-show="isShowMark">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent,computed,ref,provide,nextTick,inject,toRefs, reactive, onBeforeMount} from 'vue'
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { Https } from "@/tool/https";
|
||||
import { useStore } from "vuex";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import toProductRelight from '../tools/toProduct/index.vue'
|
||||
import poseTransfer from '../tools/poseTransfer/index.vue'
|
||||
|
||||
export default defineComponent({
|
||||
components:{
|
||||
toProductRelight,poseTransfer
|
||||
},
|
||||
props:{
|
||||
},
|
||||
emits:['editToolsSuccess'],
|
||||
setup(props,{emit}) {
|
||||
const store = useStore();
|
||||
const data = reactive({
|
||||
designTools:false,
|
||||
isShowMark:false,
|
||||
openType:'',
|
||||
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||
createProbject:inject('createProbject',()=>{}) as any,
|
||||
likeDesignList:[],
|
||||
})
|
||||
const dataDom = reactive({
|
||||
toProduct:null as any,
|
||||
relight:null as any,
|
||||
poseTransfer:null as any,
|
||||
}) as any
|
||||
const init = (value:any,list:any)=>{
|
||||
data.designTools = true
|
||||
data.openType = value
|
||||
data.likeDesignList = list
|
||||
console.log(list)
|
||||
nextTick(()=>{
|
||||
let fileList = [] as any
|
||||
if(value == 'toProduct'){
|
||||
list.forEach((item:any) => {
|
||||
item.type = 'DesignOutfit'
|
||||
fileList.push(item)
|
||||
});
|
||||
}else if(value == 'relight' || value == 'poseTransfer'){
|
||||
list.forEach((item:any) => {
|
||||
if(item.childList){
|
||||
item.childList.forEach((child:any) => {
|
||||
if(child.resultType == 'ToProductImage' || child.resultType == 'Relight'){
|
||||
fileList.push(child)
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
dataDom[value].openSetData(fileList)
|
||||
})
|
||||
}
|
||||
let cleardata = async ()=>{
|
||||
data.openType = ''
|
||||
data.likeDesignList = []
|
||||
data.designTools = false
|
||||
}
|
||||
const designLike = ()=>{
|
||||
|
||||
}
|
||||
return{
|
||||
...toRefs(dataDom),
|
||||
...toRefs(data),
|
||||
cleardata,
|
||||
init,
|
||||
designLike,
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.designToolsModel{
|
||||
position: relative;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1000;
|
||||
:deep(>div){
|
||||
|
||||
// position: absolute;
|
||||
// .ant-modal-mask{
|
||||
// position: absolute;
|
||||
// }
|
||||
.ant-modal-wrap,.ant-modal-mask{
|
||||
|
||||
}
|
||||
> .ant-modal-root{
|
||||
> .ant-modal-centered{
|
||||
> .fullScreen{
|
||||
> .ant-modal-content{
|
||||
box-shadow: none;
|
||||
> .ant-modal-body{
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.designOpenrtion_content{
|
||||
height: 100%;
|
||||
> .collectionBox{
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.fullScreen{
|
||||
.generalModel_btn {
|
||||
.generalModel_closeIcon{
|
||||
transform: translate(-10%, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -450,6 +450,7 @@ export default defineComponent({
|
||||
let queue = [] as any
|
||||
let start = false
|
||||
const chatChange = (value:any)=>{
|
||||
|
||||
if(value.type == 'design_control_signal' && dataDom.design){
|
||||
queue.push(
|
||||
{
|
||||
|
||||
@@ -126,8 +126,10 @@ export default defineComponent({
|
||||
}
|
||||
const addChatContent = (item:any)=>{
|
||||
if((data.textarea.value?.length + item.length) > 10000)return
|
||||
data.chatContent += item
|
||||
data.textarea.value += item
|
||||
// data.chatContent += item
|
||||
// data.textarea.value += item
|
||||
data.chatContent = item
|
||||
data.textarea.value = item
|
||||
}
|
||||
const sendChat = ()=>{
|
||||
if(!data.chatContent)return
|
||||
@@ -215,7 +217,8 @@ export default defineComponent({
|
||||
data.chatOrSetting = str
|
||||
}
|
||||
const setProject = (item:any)=>{
|
||||
router.push(`home?history=${item.id}`)
|
||||
emit('newProject',item)
|
||||
// router.push(`home?history=${item.id}`)
|
||||
}
|
||||
onMounted(()=>{
|
||||
store.commit('createProbject')
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<div class="gallery_btn" v-show="!imgOrThree" @click="setImgOrThree(true)">3D view</div>
|
||||
<div class="gallery_btn" v-show="imgOrThree" @click="setImgOrThree(false)">Img view</div>
|
||||
</div>
|
||||
<div class="flatPatterm" v-show="selectModel.id != -1">
|
||||
<div class="flatPatterm" v-if="userDetail.systemUser == 6 || userDetail.systemUser == 5" v-show="selectModel.id != -1">
|
||||
<div class="heard">Flat pattern</div>
|
||||
<div class="modelBox">
|
||||
<div class="img">
|
||||
@@ -112,6 +112,7 @@ export default defineComponent({
|
||||
// printCatecoryList:computed(()=>{
|
||||
// return store.state.UserHabit.printType
|
||||
// }),
|
||||
userDetail:computed(()=>store.state.UserHabit.userDetail),//选择的项目
|
||||
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||
patternMaking3D:computed(()=>store.state.HomeStoreModule.patternMaking3D),//选择的项目
|
||||
modelList:[] as any,
|
||||
@@ -137,7 +138,7 @@ export default defineComponent({
|
||||
data.isNoData = false
|
||||
data.isShowMark = false
|
||||
}
|
||||
const createProbject:any = inject('createProbject') as any
|
||||
const createProbject:any = inject('createProbject',()=>{}) as any
|
||||
const setSelectModel = async (item:any)=>{
|
||||
if(!data.selectObject.id)await createProbject()
|
||||
data.isShowMark = true
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="upload_item item">
|
||||
<div class="upload_item item" v-show="!isDesignPage">
|
||||
<div class="upload_file_item">
|
||||
<a-upload
|
||||
:action="getUploadUrl() + '/api/history/toProductImageElementUpload'"
|
||||
@@ -134,7 +134,10 @@ export default defineComponent({
|
||||
// selectList,
|
||||
},
|
||||
props:{
|
||||
|
||||
isDesignPage:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
},
|
||||
emits:[],
|
||||
setup(props,{emit}) {
|
||||
@@ -150,7 +153,8 @@ export default defineComponent({
|
||||
selectImg:{},
|
||||
token:getCookie('token'),
|
||||
upload:{
|
||||
projectId:computed(()=>store.state.Workspace.probjects.id)
|
||||
projectId:computed(()=>store.state.Workspace.probjects.id),
|
||||
CollectionType:'PoseTransfer',
|
||||
},
|
||||
waitList:[],
|
||||
likeList:computed(()=>store.state.HomeStoreModule.poseTransfer.likedList),
|
||||
@@ -164,6 +168,8 @@ export default defineComponent({
|
||||
})
|
||||
watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{
|
||||
data.fileList = store.state.HomeStoreModule.uploadElement
|
||||
data.fileList[0].isChecked = true
|
||||
data.selectImg = data.fileList[0]
|
||||
})
|
||||
watch(()=>store.state.HomeStoreModule.poseTransfer.list.length,(newVal,oldVal)=>{
|
||||
let list = store.state.HomeStoreModule.poseTransfer.list
|
||||
@@ -192,7 +198,7 @@ export default defineComponent({
|
||||
},
|
||||
})
|
||||
const setIsShowMark:any = inject('setIsShowMark')
|
||||
const createProbject:any = inject('createProbject')
|
||||
const createProbject:any = inject('createProbject',()=>{})
|
||||
const dataDom = reactive({
|
||||
generalDragLeft:null as any,
|
||||
generalDragRight:null as any,
|
||||
@@ -209,7 +215,11 @@ export default defineComponent({
|
||||
item.isChecked = true
|
||||
if(item.url || item.imgUrl)data.selectImg.minioUrl = getMinioUrl(item.url || item.imgUrl)
|
||||
}
|
||||
const openSetData = ()=>{
|
||||
const openSetData = (designList:any)=>{
|
||||
if(props.isDesignPage){
|
||||
data.fileList = designList
|
||||
return
|
||||
}
|
||||
// dataDom.generalDrag.openSetData()
|
||||
data.currentList = store.state.UploadFilesModule.modularData.toProduct
|
||||
data.currentList = data.currentList?data.currentList:[]
|
||||
@@ -341,6 +351,7 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
}
|
||||
let isSelectObject = false
|
||||
let beforeUpload = async (file: any)=>{
|
||||
const isJpgOrPng =
|
||||
file.type === "image/jpeg" ||
|
||||
@@ -354,7 +365,8 @@ export default defineComponent({
|
||||
if (!isLt2M) {
|
||||
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
||||
}
|
||||
if(!data.upload.projectId){
|
||||
if(!data.upload.projectId && !isSelectObject){
|
||||
isSelectObject = true
|
||||
await createProbject()
|
||||
}
|
||||
return (isJpgOrPng && isLt2M && data.upload.projectId) || Upload.LIST_IGNORE;
|
||||
@@ -422,12 +434,14 @@ export default defineComponent({
|
||||
likeOrDislike:'like',
|
||||
transformedId:item.id,
|
||||
projectId:store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:props.isDesignPage?item.parentId:'',
|
||||
}
|
||||
}else{
|
||||
value = {
|
||||
likeOrDislike:'dislike',
|
||||
transformedId:item.id,
|
||||
projectId:store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:props.isDesignPage?item.parentId:'',
|
||||
}
|
||||
}
|
||||
Https.axiosPost(Https.httpUrls.poselikeOrDisike, {},{params:value}).then(
|
||||
@@ -455,9 +469,9 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
const selectPose = (item:any)=>{
|
||||
data.poseList.forEach((listItem:any)=>listItem.isChecked = false)
|
||||
item.isChecked = true
|
||||
data.selectPose = item?.id || 1
|
||||
data.poseList.forEach((listItem:any)=>listItem.isChecked = false)
|
||||
}
|
||||
onMounted(()=>{
|
||||
// showViewVideo({url:'https://www.minio.aida.com.hk:12025/api/v1/download-shared-object/aHR0cHM6Ly93d3cubWluaW8uYWlkYS5jb20uaGs6MTIwMjQvYWlkYS11c2Vycy84OS9wb3NlX3RyYW5zZm9ybV92aWRlby8xMjMtODkubXA0P1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9N0tOVDdNWlNLWkRXM1RVOEJZVlklMkYyMDI1MDQwOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA0MDhUMDUxOTM1WiZYLUFtei1FeHBpcmVzPTQzMTk5JlgtQW16LVNlY3VyaXR5LVRva2VuPWV5SmhiR2NpT2lKSVV6VXhNaUlzSW5SNWNDSTZJa3BYVkNKOS5leUpoWTJObGMzTkxaWGtpT2lJM1MwNVVOMDFhVTB0YVJGY3pWRlU0UWxsV1dTSXNJbVY0Y0NJNk1UYzBOREV4T0RneE9Td2ljR0Z5Wlc1MElqb2lZV1J0YVc0aWZRLmY0Z3RoTU1BeC1GUnM3eGhWNFdjTUFCUW5lU19BVkIxUDlYbnJQbEFNWUFsVnJwY3RpYXgtU2cyY2FkZHZ0a0VCOU1NbWxGeUlIbU90aGhUWDlqN2lnJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZ2ZXJzaW9uSWQ9bnVsbCZYLUFtei1TaWduYXR1cmU9Yjg5YmQ4ZDg5M2I4ZjBjYmYxZDI3NDFjZmY0NGRiZGNmYWM2NmU0ZGM2OGIwYzQzZDA2OGI4YjYzZjE5YjhhOA'})
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<div class="" v-if="item.status == 'uploading'" style="display: flex;align-items: center;">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
<img v-show="item.status != 'uploading'" :src="item.imgUrl || item.url" alt="">
|
||||
<img v-show="item.status != 'uploading'" :src="item.designOutfitUrl || item.imgUrl || item.url" alt="">
|
||||
<div v-show="item.status != 'uploading'" class="btnBox">
|
||||
<div :class="{active:item.isChecked}">
|
||||
<i class="fi fi-br-check"></i>
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
<!-- <a-checkbox v-model:checked="item.isChecked"></a-checkbox> -->
|
||||
</div>
|
||||
<div class="upload_item item">
|
||||
<div class="upload_item item" v-show="!isDesignPage">
|
||||
<div class="upload_file_item">
|
||||
<a-upload
|
||||
:action="uploadUrl + '/api/history/toProductImageElementUpload'"
|
||||
@@ -147,7 +147,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<generalDrag ref="generalDragLeft" :type="productimgMenu.value" @setBtn="selectSetBtn" :isDelete="false" :isLike="true" :list="likeList[productimgMenu.value]"></generalDrag>
|
||||
<generalDrag ref="generalDragLeft" :type="productimgMenu.value" :isCopy="!isDesignPage" @setBtn="selectSetBtn" :isDelete="false" :isLike="true" :list="likeList[productimgMenu.value]"></generalDrag>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<generalDrag ref="generalDragRight" :type="productimgMenu.value" @setBtn="generateSetBtn" :list="generateList" :showMark="isShowMark"></generalDrag>
|
||||
<generalDrag ref="generalDragRight" :type="productimgMenu.value" :isCopy="!isDesignPage" @setBtn="generateSetBtn" :list="generateList" :showMark="isShowMark"></generalDrag>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -210,7 +210,24 @@ export default defineComponent({
|
||||
scaleImage,
|
||||
generalMenu,UpgradePlan,generalDrag
|
||||
},
|
||||
props: ['setTask','productimgMenu'],
|
||||
props:{
|
||||
setTask:{
|
||||
type:Object,
|
||||
default:()=>{
|
||||
return {}
|
||||
}
|
||||
},
|
||||
productimgMenu:{
|
||||
type:Object,
|
||||
default:()=>{
|
||||
return {}
|
||||
}
|
||||
},
|
||||
isDesignPage:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
},
|
||||
setup(props,{emit}) {
|
||||
const store = useStore();
|
||||
let userDetail:any= computed(()=>{
|
||||
@@ -224,7 +241,7 @@ export default defineComponent({
|
||||
return store.state.Guide.guide
|
||||
})
|
||||
const route = useRoute()
|
||||
const createProbject:any = inject('createProbject')
|
||||
const createProbject:any = inject('createProbject',()=>{})
|
||||
let productImgData:any = reactive({
|
||||
isShowMark:false,
|
||||
fileList:{},
|
||||
@@ -283,6 +300,7 @@ export default defineComponent({
|
||||
},
|
||||
);
|
||||
watch(()=>store.state.HomeStoreModule.uploadElement.length,(newVal,oldVal)=>{
|
||||
if(props.isDesignPage)return
|
||||
productImgData.fileList[props.productimgMenu.value] = store.state.HomeStoreModule.uploadElement
|
||||
})
|
||||
const productImgDom = reactive({
|
||||
@@ -315,7 +333,6 @@ export default defineComponent({
|
||||
}
|
||||
])
|
||||
let RelightDirection:any = ref(RelightDirectionList.value[0].value)
|
||||
let selectList:any = ref({})
|
||||
// let likeDesignCollectionList: any = computed(() => {
|
||||
// return store.state.HomeStoreModule.likeDesignCollectionList;
|
||||
// });
|
||||
@@ -323,14 +340,17 @@ export default defineComponent({
|
||||
return store.state.UploadFilesModule.modularData;
|
||||
});
|
||||
let userlikeGroupId = 0
|
||||
const openSetData = ()=>{
|
||||
const openSetData = (designList:any)=>{
|
||||
// cleardata()
|
||||
if(props.productimgMenu.value == 'ToProductImage'){
|
||||
selectList.value['ToProductImage'] = JSON.parse(JSON.stringify(selectDesignList.value.design.likeData))
|
||||
}else if(props.productimgMenu.value == 'Relight'){
|
||||
selectList.value['Relight'] = JSON.parse(JSON.stringify(selectDesignList.value.toProduct))
|
||||
// if(props.productimgMenu.value == 'ToProductImage'){
|
||||
// selectList.value['ToProductImage'] = JSON.parse(JSON.stringify(selectDesignList.value.design.likeData))
|
||||
// }else if(props.productimgMenu.value == 'Relight'){
|
||||
// selectList.value['Relight'] = JSON.parse(JSON.stringify(selectDesignList.value.toProduct))
|
||||
// }
|
||||
if(props.isDesignPage){
|
||||
productImgData.fileList[props.productimgMenu.value] = designList
|
||||
return
|
||||
}
|
||||
|
||||
userlikeGroupId = selectDesignList.value.userlikeGroupId
|
||||
// getLikeProductImage(selectDesignList.value.userlikeGroupId)
|
||||
productImgDom.generalDragLeft.setItemPosition()
|
||||
@@ -378,7 +398,6 @@ export default defineComponent({
|
||||
}
|
||||
let cleardata = ()=>{
|
||||
productImgData.generateList = []
|
||||
selectList.value = {}
|
||||
// props.productimgMenu = productimgMenuList.value[0]
|
||||
}
|
||||
|
||||
@@ -404,6 +423,7 @@ export default defineComponent({
|
||||
bor = false
|
||||
}
|
||||
}
|
||||
let isSelectObject = false
|
||||
let beforeUpload = async (file: any)=>{
|
||||
const isJpgOrPng =
|
||||
file.type === "image/jpeg" ||
|
||||
@@ -417,10 +437,12 @@ export default defineComponent({
|
||||
if (!isLt2M) {
|
||||
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
||||
}
|
||||
if(!productImgData.selectObject.id){
|
||||
if(!productImgData.selectObject.id && !isSelectObject){
|
||||
isSelectObject = true
|
||||
productImgData.selectObject.id = await createProbject()
|
||||
upload.value = {
|
||||
projectId:productImgData.selectObject.id
|
||||
projectId:productImgData.selectObject.id,
|
||||
CollectionType:props.productimgMenu.value,
|
||||
}
|
||||
}
|
||||
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
||||
@@ -446,7 +468,9 @@ export default defineComponent({
|
||||
let likeFile = (item:any,str:any,index:any) =>{
|
||||
let url
|
||||
let data = {
|
||||
toProductImageResultId:[item.id]
|
||||
toProductImageResultId:[item.id],
|
||||
projectId: store.state.Workspace.probjects.id,
|
||||
collectionSortParentId:props.isDesignPage?item.parentId:'',
|
||||
}
|
||||
if(str == 'like'){
|
||||
url = Https.httpUrls.productImageLike
|
||||
@@ -504,26 +528,17 @@ export default defineComponent({
|
||||
if(productImgData.fileList[props.productimgMenu.value]){
|
||||
productImgData.fileList[props.productimgMenu.value].forEach((item:any)=>{
|
||||
if(item.isChecked){
|
||||
obj.elementId = item.id
|
||||
obj.elementType = item.type || 'ProductElement'
|
||||
selectArr.push(JSON.parse(JSON.stringify(obj)))
|
||||
}
|
||||
})
|
||||
}
|
||||
if(selectList.value[props.productimgMenu.value]){
|
||||
selectList.value[props.productimgMenu.value].forEach((item:any)=>{
|
||||
if(item.isChecked){
|
||||
obj.elementId = item.designOutfitId
|
||||
obj.elementType = 'DesignOutfit'
|
||||
if(props.productimgMenu.value == 'Relight'){
|
||||
if(item.resultType == 'Design'){
|
||||
obj.elementId = item.designOutfitId
|
||||
obj.elementType = 'DesignOutfit'
|
||||
}else{
|
||||
obj.elementId = item.id
|
||||
obj.elementType = 'ToProductImage'
|
||||
obj.elementType = item.type || 'ProductElement'
|
||||
}
|
||||
selectArr.push(JSON.parse(JSON.stringify(obj)))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if(selectArr.length == 0) {
|
||||
message.info(t('ProductImg.jsContent2'))
|
||||
return
|
||||
@@ -612,11 +627,12 @@ export default defineComponent({
|
||||
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
|
||||
productImgData.generateList[index] = element
|
||||
// productImgData.generateList[props.productimgMenu.value].unshift(element)
|
||||
data = data.filter((item:any) => item !== element.taskId);
|
||||
}else if(element.status == 'Fail'){
|
||||
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
|
||||
productImgData.generateList.splice(index,1)
|
||||
data = data.filter((item:any) => item !== element.taskId);
|
||||
}
|
||||
data = data.filter((item:any) => item !== element.taskId);
|
||||
});
|
||||
generateProceedList = data
|
||||
if((data.length == 0)|| (rv.filter((item:any)=>item.status == 'Invalid').length ==data.length)){
|
||||
@@ -796,7 +812,6 @@ export default defineComponent({
|
||||
RelightDirectionList,
|
||||
RelightDirection,
|
||||
|
||||
selectList,
|
||||
setproduct,
|
||||
fileUploadChange,
|
||||
beforeUpload,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<div class="zoom" v-if="item.url" @click.stop="()=>$emit('setBtn',item.id,'zoom')">
|
||||
<i class="fi fi-bs-expand-arrows-alt"></i>
|
||||
</div>
|
||||
<div class="copy" v-if="type == 'Relight' || type == 'ToProductImage' || type == 'PoseTransfer'" @click.stop="()=>$emit('setBtn',item.id,'copy')">
|
||||
<div class="copy" v-if="(type == 'Relight' || type == 'ToProductImage' || type == 'PoseTransfer') && isCopy" @click.stop="()=>$emit('setBtn',item.id,'copy')">
|
||||
<i class="fi fi-sr-copy-alt"></i>
|
||||
</div>
|
||||
<div class="delete" v-if="item.url && isDelete" @click.stop="()=>$emit('setBtn',item.id,'delete')">
|
||||
@@ -54,6 +54,7 @@ export default defineComponent({
|
||||
showMark:{type:Boolean,default:false},
|
||||
isLike:{type:Boolean,default:false},
|
||||
isDelete:{type:Boolean,default:true},
|
||||
isCopy:{type:Boolean,default:true},
|
||||
type:{type:String,default:''},
|
||||
},
|
||||
emits:['setBtn','setSort'],
|
||||
|
||||
@@ -426,6 +426,7 @@ export const Https = {
|
||||
getHistoryNotification:`/api/message/getHistoryNotification`,//获取历史消息
|
||||
oneClickRead:`/api/message/oneClickRead`,//全部设为已读
|
||||
personalHomepage:`/api/account/personalHomepage`,//获取个人主页信息
|
||||
refreshMinioUrl:`/api/third/party/refreshMinioUrl`,//获取可以使用的minio地址
|
||||
|
||||
},
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="btn">
|
||||
<i class="fi fi-br-menu-dots-vertical" v-show="!childItem.editName" @click.stop="editHistory(childItem,index,$event,item[historyTypeItem])"></i>
|
||||
<i class="fi fi-br-check" v-show="childItem.editName" @click.stop="accomplishHistory(childItem,index,$event)"></i>
|
||||
<div class="operation" v-show="historyData.selectHistoryIndex == index">
|
||||
<div class="operation" v-show="historyData.selectHistoryId == childItem.id">
|
||||
<div class="item" @click.stop="editName(childItem)">
|
||||
<i class="fi fi-rr-edit"></i>
|
||||
<span>Rename</span>
|
||||
@@ -306,7 +306,7 @@ export default defineComponent({
|
||||
searchCollectionName:'',
|
||||
historyTextarea:'',
|
||||
updateTimeType:['Todaylist','Yesterdaylist','WithinAWeeklist','EarlierTodaylist'],
|
||||
selectHistoryIndex:-1,
|
||||
selectHistoryId:-1,
|
||||
page:1,
|
||||
size:10,
|
||||
isToday:false,
|
||||
@@ -581,33 +581,33 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
const editHistory = (item,index,el,list)=>{
|
||||
if(homeMainData.historyData.selectHistoryIndex == -1){
|
||||
let top = el.target.parentNode.parentNode.getBoundingClientRect().top
|
||||
let parentTop = el.target.parentNode.parentNode.parentNode.offsetTop
|
||||
let parentHeight = el.target.parentNode.parentNode.parentNode.offsetHeight
|
||||
if(homeMainData.historyData.selectHistoryId == -1){
|
||||
let top = el.target.parentNode.parentNode.getBoundingClientRect().y
|
||||
let parentTop = el.target.parentNode.parentNode.parentNode.parentNode.parentNode.getBoundingClientRect().y
|
||||
let parentHeight = el.target.parentNode.parentNode.parentNode.parentNode.parentNode.offsetHeight
|
||||
let operation = el.target.parentNode.querySelector('.operation')
|
||||
homeMainData.historyData.selectHistoryIndex = index
|
||||
homeMainData.historyData.selectHistoryId = item.id
|
||||
//判断弹窗是加载按钮上面还是下面
|
||||
if(list.length == 1){
|
||||
operation.classList.add('activeLeft')
|
||||
return
|
||||
}
|
||||
if((parentTop+parentHeight)/2 < top){//加在按钮上面
|
||||
if(top > parentHeight/2 + parentTop){//加在按钮上面
|
||||
operation.classList.add('active')
|
||||
}else{
|
||||
operation.classList.remove('active')
|
||||
}
|
||||
}else{
|
||||
homeMainData.historyData.selectHistoryIndex = -1
|
||||
homeMainData.historyData.selectHistoryId = -1
|
||||
}
|
||||
let operationCli = ()=>{
|
||||
homeMainData.historyData.selectHistoryIndex = -1
|
||||
homeMainData.historyData.selectHistoryId = -1
|
||||
document.removeEventListener("click", operationCli);
|
||||
}
|
||||
document.addEventListener("click",operationCli,);
|
||||
}
|
||||
const editName = (item)=>{
|
||||
homeMainData.historyData.selectHistoryIndex = -1
|
||||
homeMainData.historyData.selectHistoryId = -1
|
||||
for (const key in homeMainData.openTypeList.history) {
|
||||
let list = ['EarlierTodaylist','Todaylist','WithinAWeeklist','Yesterdaylist']
|
||||
if(list.indexOf(key) == -1)continue
|
||||
@@ -622,7 +622,7 @@ export default defineComponent({
|
||||
const deleteItem = (item)=>{
|
||||
Https.axiosPost(Https.httpUrls.projectDetail,{},{params:{projectId:item.id}}).then(
|
||||
(rv) => {
|
||||
homeMainData.historyData.selectHistoryIndex = -1
|
||||
homeMainData.historyData.selectHistoryId = -1
|
||||
settingGetHistory()
|
||||
if(homeMainData.openTypeChild == item.id){
|
||||
router.push('/home')
|
||||
@@ -653,7 +653,7 @@ export default defineComponent({
|
||||
}
|
||||
const bathGeneration = (item)=>{
|
||||
homeMainData.openType = ''
|
||||
homeMainData.historyData.selectHistoryIndex = -1
|
||||
homeMainData.historyData.selectHistoryId = -1
|
||||
router.push(`/home/cloud?type=creation&id=${item.id}&name=${item.name}`)
|
||||
}
|
||||
return {
|
||||
|
||||
@@ -423,13 +423,17 @@
|
||||
(selectCode == 'Sketchboard')" class="fi fi-bs-magic-wand" style="background-color: #000; font-size: 2.3rem; flex: 1;margin: 0;"></i>
|
||||
<span v-else>{{ $t('LibraryPage.Generate') }}</span>
|
||||
</div>
|
||||
<div class="icon iconfont icon-xiala" v-show="
|
||||
selectCode == 'Moodboard' ||
|
||||
(selectCode == 'Printboard' && scene?.value == 'Pattern') ||
|
||||
(selectCode == 'Sketchboard')" :class="{active:speedState}" @click.stop="openSpeed"></div>
|
||||
<div class="icon iconfont icon-xiala"
|
||||
v-show="(selectCode == 'Sketchboard') ||
|
||||
(selectCode == 'Printboard' && scene.value == 'Pattern') || selectCode == 'Moodboard'"
|
||||
:class="{active:speedState}" @click.stop="openSpeed"></div>
|
||||
</div>
|
||||
<div class="content" v-if="scene?.value != 'extract'" v-show="speedState">
|
||||
<div v-for="item in speedList" :class="{active:item.value == speedData.value}" v-show="(selectCode == 'Moodboard' && item?.value != 'flux') || (selectCode == 'Sketchboard' && item?.value != 'flux') || selectCode == 'Printboard'" :key="item.value" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
<div v-for="item in speedList" :class="{active:item.value == speedData.value}"
|
||||
v-show="(selectCode == 'Moodboard' && item?.value != 'flux') ||
|
||||
(selectCode == 'Sketchboard' && item?.value != 'flux') ||
|
||||
(selectCode == 'Printboard')"
|
||||
:key="item.value" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
</div>
|
||||
<div class="content" v-else v-show="speedState">
|
||||
<div v-for="item in extractList" :class="{active:item.value == speedData.value}" :key="item.value" @click.stop="setSpeed(item)" :title="item.title">{{ item.label }}</div>
|
||||
@@ -716,14 +720,14 @@ export default defineComponent({
|
||||
title:'Generate using Wanxiang',
|
||||
label:'WX',
|
||||
value:'wx',
|
||||
},{
|
||||
title:'',
|
||||
label:'FLUX',
|
||||
value:'flux',
|
||||
},
|
||||
],
|
||||
extractList:[
|
||||
{
|
||||
title:'This method may produce slight discrepancies between the extracted line art and the original image.',
|
||||
label:'High',
|
||||
value:'',
|
||||
},{
|
||||
title:'Note: The extracted line art might have minor variations from the original.',
|
||||
label:'FLUX',
|
||||
value:'flux',
|
||||
@@ -774,7 +778,7 @@ export default defineComponent({
|
||||
level1Type:selectCode.value,
|
||||
level2Type:design,
|
||||
page:1,
|
||||
ageGroup:selectCode.value == 'Sketchboard'?pageData.ageGroup:'',
|
||||
ageGroup:selectCode.value == 'Models'?pageData.ageGroup:'',
|
||||
modelSex:sex.value?sex.value:'',
|
||||
pictureName:searchPictureName.value,
|
||||
size:pageSize.value,
|
||||
@@ -933,9 +937,13 @@ export default defineComponent({
|
||||
}
|
||||
if(newVal.value == 'extract'){
|
||||
this.speedData = this.extractList[0]
|
||||
}else if(newVal.value == 'Logo' || newVal.value == 'Slogan'){
|
||||
this.speedData.value = ''
|
||||
this.speedData.label = ''
|
||||
}else{
|
||||
this.speedData = this.speedList[0]
|
||||
}
|
||||
this.speedState = false
|
||||
}
|
||||
},
|
||||
'$route.query':{
|
||||
|
||||
Reference in New Issue
Block a user