部分bug修复和对话中的图片过期处理

This commit is contained in:
X1627315083
2025-06-20 11:36:44 +08:00
parent c054dca2e8
commit 318fcc634f
21 changed files with 477 additions and 133 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -273,6 +273,8 @@ export default defineComponent({
border: 2px solid #000;
}
>.box{
width: 100%;
height: 100%;
> .background{
flex: 1;
height: 7rem;

View File

@@ -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,

View File

@@ -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">

View File

@@ -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)=>{

View File

@@ -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
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() {

View File

@@ -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(()=>{

View File

@@ -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();

View File

@@ -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
}
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

View File

@@ -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:{

View 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>

View File

@@ -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(
{

View File

@@ -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')

View File

@@ -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

View File

@@ -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'})

View File

@@ -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){
if(item.resultType == 'Design'){
obj.elementId = item.designOutfitId
obj.elementType = 'DesignOutfit'
if(props.productimgMenu.value == 'Relight'){
}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);
}
});
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,

View File

@@ -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'],

View File

@@ -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地址
},

View File

@@ -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 {

View File

@@ -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':{