提交修改
This commit is contained in:
BIN
src/assets/images/icon/favicon.png
Normal file
BIN
src/assets/images/icon/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 367 B |
@@ -133,7 +133,7 @@ li {
|
|||||||
z-index: 1049 !important;
|
z-index: 1049 !important;
|
||||||
}
|
}
|
||||||
.ant-tooltip .ant-tooltip-inner {
|
.ant-tooltip .ant-tooltip-inner {
|
||||||
background: #343579;
|
background: #000;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0.6rem 0.5rem;
|
padding: 0.6rem 0.5rem;
|
||||||
}
|
}
|
||||||
@@ -686,8 +686,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
.generalModel_page .generalModel_table_search .generalModel_search .generalModel_search_item {
|
.generalModel_page .generalModel_table_search .generalModel_search .generalModel_search_item {
|
||||||
background: #343579;
|
background: #000;
|
||||||
border-color: #343579;
|
border-color: #000;
|
||||||
height: 4rem;
|
height: 4rem;
|
||||||
padding: 0.64rem 1.5rem;
|
padding: 0.64rem 1.5rem;
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
@@ -1057,7 +1057,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.operate_file_block {
|
.operate_file_block {
|
||||||
@@ -1098,7 +1098,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
margin-top: 0.2rem;
|
margin-top: 0.2rem;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: #b1b1b1;
|
background-color: #b1b1b1;
|
||||||
border: 1px solid #343579;
|
border: 1px solid #000;
|
||||||
border-radius: 0.8rem;
|
border-radius: 0.8rem;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
height: 9rem;
|
height: 9rem;
|
||||||
@@ -1489,7 +1489,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.admin_table_content .ant-table-tbody > tr:hover > td {
|
.admin_table_content .ant-table-tbody > tr:hover > td {
|
||||||
@@ -1509,7 +1509,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.homeMain_heade .ant-badge,
|
.homeMain_heade .ant-badge,
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ input:focus{
|
|||||||
.button_second{
|
.button_second{
|
||||||
width: 14rem;
|
width: 14rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
// background: #343579;
|
// background: #000;
|
||||||
height: 4rem;
|
height: 4rem;
|
||||||
line-height: 4rem;
|
line-height: 4rem;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
@@ -138,7 +138,7 @@ input:focus{
|
|||||||
// top: 74px !important;
|
// top: 74px !important;
|
||||||
z-index: 1049 !important;
|
z-index: 1049 !important;
|
||||||
.ant-tooltip-inner{
|
.ant-tooltip-inner{
|
||||||
background: #343579;
|
background: #000;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0.6rem 0.5rem;
|
padding: 0.6rem 0.5rem;
|
||||||
}
|
}
|
||||||
@@ -756,8 +756,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
.generalModel_search{
|
.generalModel_search{
|
||||||
width: auto;
|
width: auto;
|
||||||
.generalModel_search_item{
|
.generalModel_search_item{
|
||||||
background: #343579;
|
background: #000;
|
||||||
border-color: #343579;
|
border-color: #000;
|
||||||
height: 4rem;
|
height: 4rem;
|
||||||
padding: .64rem 1.5rem;
|
padding: .64rem 1.5rem;
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
@@ -1151,7 +1151,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1201,7 +1201,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
left: 0;
|
left: 0;
|
||||||
// background: rgba(0,0,0,0.4);
|
// background: rgba(0,0,0,0.4);
|
||||||
background-color: rgb(177 177 177);
|
background-color: rgb(177 177 177);
|
||||||
border: 1px solid #343579;
|
border: 1px solid #000;
|
||||||
border-radius: 0.8rem;
|
border-radius: 0.8rem;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
@@ -1635,7 +1635,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1657,7 +1657,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1680,7 +1680,7 @@ export default defineComponent({
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
height: calc(3.6rem*1.2);
|
height: calc(3.6rem*1.2);
|
||||||
line-height: calc(3.6rem*1.2);
|
line-height: calc(3.6rem*1.2);
|
||||||
background: #343579;
|
background: #000;
|
||||||
font-size: calc(1.4rem*1.2);
|
font-size: calc(1.4rem*1.2);
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -1231,7 +1231,7 @@ export default defineComponent({
|
|||||||
height: calc(3rem*1.2);
|
height: calc(3rem*1.2);
|
||||||
line-height: calc(3rem*1.2);
|
line-height: calc(3rem*1.2);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: #343579;
|
background: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.icon-sousuo{
|
.icon-sousuo{
|
||||||
@@ -1320,7 +1320,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.select_item_img{
|
&.select_item_img{
|
||||||
// border-color: #343579;
|
// border-color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.print_content_img{
|
.print_content_img{
|
||||||
@@ -1465,7 +1465,7 @@ export default defineComponent({
|
|||||||
background: #EFEEFF;
|
background: #EFEEFF;
|
||||||
font-size: calc(1.2rem*1.2);
|
font-size: calc(1.2rem*1.2);
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
color: #343579;
|
color: #000;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-top: calc(1rem*1.2);
|
margin-top: calc(1rem*1.2);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -1913,7 +1913,7 @@ export default defineComponent({
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
line-height: calc(3rem*1.2);
|
line-height: calc(3rem*1.2);
|
||||||
font-size: calc(1.2rem*1.2);
|
font-size: calc(1.2rem*1.2);
|
||||||
color: #343579;
|
color: #000;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -1922,7 +1922,7 @@ export default defineComponent({
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
.fi-br-fill{
|
.fi-br-fill{
|
||||||
margin-right: calc(0.5rem*1.2);
|
margin-right: calc(0.5rem*1.2);
|
||||||
color:#343579;
|
color:#000;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -652,7 +652,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.select_upload_color{
|
.select_upload_color{
|
||||||
border: calc(0.1rem*1.2) solid #343579;
|
border: calc(0.1rem*1.2) solid #000;
|
||||||
}
|
}
|
||||||
.upload_color{
|
.upload_color{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export default defineComponent({
|
|||||||
.history_img_block{
|
.history_img_block{
|
||||||
width: 16.5rem;
|
width: 16.5rem;
|
||||||
height: 16.5rem;
|
height: 16.5rem;
|
||||||
border: 0.1rem solid #343579;
|
border: 0.1rem solid #000;
|
||||||
margin: 0 1.7rem 1.7rem 0;
|
margin: 0 1.7rem 1.7rem 0;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,onBeforeUnmount,provide,nextTick,createVNode,toRefs, reactive, onMounted} from 'vue'
|
import { defineComponent,computed,onBeforeUnmount,provide,nextTick,createVNode,toRefs, reactive, onMounted, watch} from 'vue'
|
||||||
import detailLeft from './detailLeft/index.vue'
|
import detailLeft from './detailLeft/index.vue'
|
||||||
import model from './model/index.vue'
|
import model from './model/index.vue'
|
||||||
import detailRight from './detailRight/index.vue'
|
import detailRight from './detailRight/index.vue'
|
||||||
@@ -139,6 +139,7 @@ export default defineComponent({
|
|||||||
fun:null,
|
fun:null,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
provide('getCanvasIfEdit',detailData.getCanvasIfEdit)
|
provide('getCanvasIfEdit',detailData.getCanvasIfEdit)
|
||||||
provide('singleOveral',detailData.singleOveral)
|
provide('singleOveral',detailData.singleOveral)
|
||||||
provide('isEditPattern',detailData.isEditPattern)
|
provide('isEditPattern',detailData.isEditPattern)
|
||||||
@@ -294,10 +295,15 @@ export default defineComponent({
|
|||||||
return clothesList
|
return clothesList
|
||||||
}
|
}
|
||||||
const getSubmitData = async (str:string)=>{
|
const getSubmitData = async (str:string)=>{
|
||||||
|
// return
|
||||||
let workspace = store.state.Workspace.probjects
|
let workspace = store.state.Workspace.probjects
|
||||||
if(!detailData.selectDetail.path && !detailData.selectDetail.newDetail?.sketch?.minIOPath)return
|
if(!detailData.selectDetail.path && !detailData.selectDetail.newDetail?.sketch?.minIOPath)return
|
||||||
let clothes:any = await setClothes([detailData.selectDetail])
|
let clothes:any
|
||||||
console.log(detailData.designDetail)
|
if(detailData.currentDetailType == 'models'){
|
||||||
|
clothes = await setClothes(detailData.designDetail.clothes)
|
||||||
|
}else{
|
||||||
|
clothes = await setClothes([detailData.selectDetail])
|
||||||
|
}
|
||||||
let data = {
|
let data = {
|
||||||
designItemId:detailData.designDetail.designItemId,
|
designItemId:detailData.designDetail.designItemId,
|
||||||
designSingleItemDTOList:clothes,
|
designSingleItemDTOList:clothes,
|
||||||
@@ -305,6 +311,8 @@ export default defineComponent({
|
|||||||
// ifSubmit:designItemDetail.isPreview,
|
// ifSubmit:designItemDetail.isPreview,
|
||||||
gender:workspace?.sex == 'Male'?1:0,
|
gender:workspace?.sex == 'Male'?1:0,
|
||||||
sketchString:'',
|
sketchString:'',
|
||||||
|
modelId:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.id:detailData.designDetail.oldModel?detailData.designDetail.oldModel.id:'',
|
||||||
|
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
|
||||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
processId:userDetail.value.userId,
|
processId:userDetail.value.userId,
|
||||||
}
|
}
|
||||||
@@ -312,8 +320,10 @@ export default defineComponent({
|
|||||||
Https.axiosPost(Https.httpUrls.designSingle, data).then((rv)=>{
|
Https.axiosPost(Https.httpUrls.designSingle, data).then((rv)=>{
|
||||||
let value = {
|
let value = {
|
||||||
currentType : JSON.parse(JSON.stringify(detailData.currentDetailType)),
|
currentType : JSON.parse(JSON.stringify(detailData.currentDetailType)),
|
||||||
rv:rv
|
rv:rv,
|
||||||
}
|
}
|
||||||
|
detailData.designDetail.oldModel = detailData.designDetail.newModel
|
||||||
|
delete detailData.designDetail.newModel
|
||||||
store.commit('DesignDetailCopy/setPraeview',value)
|
store.commit('DesignDetailCopy/setPraeview',value)
|
||||||
detailData.loadingShow = false
|
detailData.loadingShow = false
|
||||||
}).catch(res=>{
|
}).catch(res=>{
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export default defineComponent({
|
|||||||
getDetailListDom.libraryList.init()
|
getDetailListDom.libraryList.init()
|
||||||
}
|
}
|
||||||
const selectImgItem = (data:any)=>{
|
const selectImgItem = (data:any)=>{
|
||||||
data.url = data.presignedUrl
|
if(data.presignedUrl)data.url = data.presignedUrl
|
||||||
let value = {
|
let value = {
|
||||||
data,
|
data,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
<div class="uploadList_box">
|
<div class="uploadList_box">
|
||||||
<div class="content_img_item" v-for="(file) in currentList[type]" :key="file.id">
|
<div class="content_img_item" v-for="(file) in currentList[type]" :key="file.id">
|
||||||
<div class="content_img_item_block" :class="{active:file?.checked}">
|
<div class="content_img_item_block" :class="{active:file?.checked}">
|
||||||
<img v-lazy="file.imgUrl" :key="file.imgUrl" :alt="file.name" @click.stop="selectImgItem(file)"/>
|
<img :src="file.imgUrl?file.imgUrl:file.url" :key="file.imgUrl || file.url" :alt="file.name" @click.stop="selectImgItem(file)"/>
|
||||||
<sketchCategory v-model:disignTypeList="catecoryList" :generateList="allBoardData.sketchboardFiles" :item="file" :isSpread="true"></sketchCategory>
|
<sketchCategory v-if="type != 'models'" v-model:disignTypeList="catecoryList" :generateList="allBoardData.sketchboardFiles" :item="file" :isSpread="true"></sketchCategory>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -46,6 +46,7 @@ export default defineComponent({
|
|||||||
sketch:computed(()=>store.state.UploadFilesModule.allBoardData.sketchboardFiles),
|
sketch:computed(()=>store.state.UploadFilesModule.allBoardData.sketchboardFiles),
|
||||||
print:computed(()=>store.state.UploadFilesModule.allBoardData.printboardFiles),
|
print:computed(()=>store.state.UploadFilesModule.allBoardData.printboardFiles),
|
||||||
color:computed(()=>store.state.UploadFilesModule.allBoardData.colorBoards),
|
color:computed(()=>store.state.UploadFilesModule.allBoardData.colorBoards),
|
||||||
|
models:computed(()=>store.state.Workspace.probjects.model),
|
||||||
},
|
},
|
||||||
currentDetailType:computed(()=>store.state.DesignDetailCopy.currentDetailType),
|
currentDetailType:computed(()=>store.state.DesignDetailCopy.currentDetailType),
|
||||||
|
|
||||||
@@ -55,7 +56,14 @@ export default defineComponent({
|
|||||||
|
|
||||||
})
|
})
|
||||||
const selectImgItem = (file:any)=>{
|
const selectImgItem = (file:any)=>{
|
||||||
if(!file.resData.minIOPath)file.resData.minIOPath = getMinioUrl(file.resData.url)
|
if(props.type != 'models'){
|
||||||
|
if(!file.resData.minIOPath){
|
||||||
|
file.minIOPath = getMinioUrl(file.resData.url)
|
||||||
|
}
|
||||||
|
if(!file.designType){
|
||||||
|
file.designType = file.resData.designType
|
||||||
|
}
|
||||||
|
}
|
||||||
// store.commit('DesignDetailCopy/setNewDetail',file.resData)
|
// store.commit('DesignDetailCopy/setNewDetail',file.resData)
|
||||||
emit('selectImgItem',file)
|
emit('selectImgItem',file)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="libraryList">
|
<div class="libraryList">
|
||||||
<div class="generalModel_state" v-if="type != 'element'">
|
<div class="generalModel_state" v-if="type != 'element'">
|
||||||
<div class="generalModel_state_item" v-if="level1Type != 'Models'" style="width: 40%;">
|
<div class="generalModel_state_item" v-if="level1Type != 'Models' && catecoryList.length > 0" style="width: 40%;">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="designType"
|
v-model:value="designType"
|
||||||
:options="designTypeList"
|
:options="designTypeList"
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -82,12 +82,12 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="generalModel_state_item" style="width: 35%;" v-if="level1Type != 'Models'">
|
<div class="generalModel_state_item" style="width: 35%; flex: 1;margin-right: 2%;" v-if="level1Type != 'Models'">
|
||||||
<input class="search_input" style="width: 100%;" :placeholder="$t('DesignDetailAlter.inputContent1')" v-model="searchPictureName" @keydown.enter="getLibraryList()">
|
<input class="search_input" style="width: 100%;" :placeholder="$t('DesignDetailAlter.inputContent1')" v-model="searchPictureName" @keydown.enter="getLibraryList()">
|
||||||
</div>
|
</div>
|
||||||
<div class="generalModel_state_item" style="width: auto;">
|
<div class="generalModel_state_item" style="width: auto;">
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<div class="content_img_item" v-for="(file) in libraryList" :key="file.id">
|
<div class="content_img_item" v-for="(file) in libraryList" :key="file.id">
|
||||||
<div class="content_img_item_block" :class="{active:file?.checked}">
|
<div class="content_img_item_block" :class="{active:file?.checked}">
|
||||||
<img v-lazy="level1Type != 'Models'?file.url:file.presignedUrl" :key="level1Type != 'Models'?file.url:file.presignedUrl" :alt="file?.name" @click.stop="selectImgItem(file)"/>
|
<img v-lazy="level1Type != 'Models'?file.url:file.presignedUrl" :key="level1Type != 'Models'?file.url:file.presignedUrl" :alt="file?.name" @click.stop="selectImgItem(file)"/>
|
||||||
<sketchCategory v-if="level1Type != 'Models'" :disignTypeList="designTypeList" :generateList="libraryList" :item="file" :isSetSketchCategory="true"></sketchCategory>
|
<sketchCategory v-if="level1Type != 'Models'" :isSpread="catecoryList.length == 0" :disignTypeList="designTypeList" :generateList="libraryList" :item="file" :isSetSketchCategory="true"></sketchCategory>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="total > libraryList.length" class="material_content_list_loding" v-observe>
|
<div v-show="total > libraryList.length" class="material_content_list_loding" v-observe>
|
||||||
@@ -174,7 +174,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
const init = ()=>{
|
const init = ()=>{
|
||||||
detailData.designTypeList = props.catecoryList
|
detailData.designTypeList = props.catecoryList
|
||||||
detailData.designType = detailData.designTypeList[0].value
|
detailData.designType = detailData.designTypeList[0]?.value?detailData.designTypeList[0]?.value:''
|
||||||
getLibraryList()
|
getLibraryList()
|
||||||
}
|
}
|
||||||
const hasDuplicateId = (id:any)=>{
|
const hasDuplicateId = (id:any)=>{
|
||||||
@@ -201,6 +201,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let data = JSON.parse(JSON.stringify(file))
|
let data = JSON.parse(JSON.stringify(file))
|
||||||
|
data.type = detailData.mannequinData.system == 'system'?'System':'Library'
|
||||||
if(!props.isSegmentation){
|
if(!props.isSegmentation){
|
||||||
data.id = id
|
data.id = id
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ export default defineComponent({
|
|||||||
getDetailListDom.libraryList.init()
|
getDetailListDom.libraryList.init()
|
||||||
}
|
}
|
||||||
const selectImgItem = (data:any)=>{
|
const selectImgItem = (data:any)=>{
|
||||||
|
if(data?.imgUrl)data.url = data.imgUrl
|
||||||
let value = {
|
let value = {
|
||||||
data,
|
data,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sketchType" v-show="selectDetail?.newDetail?.[currentDetailType]">
|
<div class="sketchType" v-show="designDetail?.newModel">
|
||||||
<div class="detailText">New Model</div>
|
<div class="detailText">New Model</div>
|
||||||
<div class="sketchContent">
|
<div class="sketchContent">
|
||||||
<img :src="selectDetail.newDetail?.[currentDetailType].url" alt="">
|
<img :src="designDetail.newModel?.url" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -19,7 +19,7 @@ export default defineComponent({
|
|||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const detailData = reactive({
|
const detailData = reactive({
|
||||||
selectDetail:computed(()=>store.state.DesignDetailCopy.selectDetail),
|
designDetail:computed(()=>store.state.DesignDetailCopy.designDetail),
|
||||||
currentDetailType:computed(()=>store.state.DesignDetailCopy.currentDetailType),
|
currentDetailType:computed(()=>store.state.DesignDetailCopy.currentDetailType),
|
||||||
})
|
})
|
||||||
const getDetailListData = reactive({
|
const getDetailListData = reactive({
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="designOpenrtion_print" v-for="item,index in frontBack.back" @mousedown.stop="itemMoveMousedown(index,getMousePosition($event,false))" @touchstart.passive="itemMoveMousedown(index,getMousePosition($event,true))" @click="setpitch(item,index)" :style="frontBack.front[index].style">
|
<div class="designOpenrtion_print" v-for="item,index in frontBack.back" @mousedown.stop="itemMoveMousedown(index,getMousePosition($event,false))" @touchstart.passive="itemMoveMousedown(index,getMousePosition($event,true))" @click="setpitch(item,index)" :style="frontBack.front[index].style">
|
||||||
<img :style="item.imageUrl?'':'display:none;'" :src="item.imageUrl" alt="">
|
<img :style="item.imageUrl?'':'display:none;'" :src="item.imageUrl" alt="">
|
||||||
</div>
|
</div>
|
||||||
<img class="perview_img" v-detailBody="frontBack?.body?.path" :style="'width:'+ frontBack?.body?.layersObject?.[0].imageSize?.[0] +';height:' + frontBack?.body?.layersObject?.[0].imageSize?.[0] +';'" v-lazy="frontBack?.body?.layersObject?.[0].imageUrl || ''">
|
<img class="perview_img" ref="detailBody" :src="frontBack?.body?.path" :style="'width:'+ frontBack?.body?.layersObject?.[0].imageSize?.[0] +';height:' + frontBack?.body?.layersObject?.[0].imageSize?.[0] +';'" v-lazy="frontBack?.body?.layersObject?.[0].imageUrl || ''">
|
||||||
<div class="detail_modal_item_front" v-for="item,index in frontBack.front" @mousedown.stop="itemMoveMousedown(index,getMousePosition($event,false))" @touchstart.passive="itemMoveMousedown(index,getMousePosition($event,true))" @click="setpitch(item,index)" :style="item.style">
|
<div class="detail_modal_item_front" v-for="item,index in frontBack.front" @mousedown.stop="itemMoveMousedown(index,getMousePosition($event,false))" @touchstart.passive="itemMoveMousedown(index,getMousePosition($event,true))" @click="setpitch(item,index)" :style="item.style">
|
||||||
<img :src="item.imageUrl" alt="">
|
<img :src="item.imageUrl" alt="">
|
||||||
</div>
|
</div>
|
||||||
@@ -56,7 +56,8 @@ export default defineComponent({
|
|||||||
frontBack:computed(()=>store.state.DesignDetailCopy.frontBack),
|
frontBack:computed(()=>store.state.DesignDetailCopy.frontBack),
|
||||||
designDetail:computed(()=>store.state.DesignDetailCopy.designDetail),
|
designDetail:computed(()=>store.state.DesignDetailCopy.designDetail),
|
||||||
isEditPattern:inject('isEditPattern') as any,
|
isEditPattern:inject('isEditPattern') as any,
|
||||||
singleOveral:inject('singleOveral') as any
|
singleOveral:inject('singleOveral') as any,
|
||||||
|
detailBody:null as any,
|
||||||
})
|
})
|
||||||
const selectItem = reactive({
|
const selectItem = reactive({
|
||||||
selectDetail:computed(()=>store.state.DesignDetailCopy.selectDetail),
|
selectDetail:computed(()=>store.state.DesignDetailCopy.selectDetail),
|
||||||
@@ -69,6 +70,33 @@ export default defineComponent({
|
|||||||
if(newValue.id == oldValue?.id)return
|
if(newValue.id == oldValue?.id)return
|
||||||
selectItem.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
|
selectItem.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
|
||||||
},{immediate: true,})
|
},{immediate: true,})
|
||||||
|
watch(()=>detailData.frontBack?.body?.path,(newVal)=>{
|
||||||
|
let sacle = 0
|
||||||
|
const img = new Image();
|
||||||
|
img.onload = () => {
|
||||||
|
// resolve(img)
|
||||||
|
sacle = detailData.detailBody.parentNode.offsetWidth / img.width
|
||||||
|
detailData.frontBack.front.forEach((item:any,index:number) => {
|
||||||
|
for (const key in item.style) {
|
||||||
|
if(key == 'zIndex')return
|
||||||
|
let value = item.style[key]
|
||||||
|
if(typeof value !== 'number'){
|
||||||
|
value = value.replace('px','')
|
||||||
|
}
|
||||||
|
item.style[key] = value*sacle+'px'
|
||||||
|
}
|
||||||
|
for (const key in detailData.frontBack.back[index].style) {
|
||||||
|
if(key == 'zIndex')return
|
||||||
|
let value = detailData.frontBack.back[index].style[key]
|
||||||
|
if(typeof value !== 'number'){
|
||||||
|
value = value.replace('px','')
|
||||||
|
}
|
||||||
|
detailData.frontBack.back[index].style[key] = value*sacle+'px'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
img.src = newVal;
|
||||||
|
},{immediate: true,})
|
||||||
const getDetailListDom = reactive({
|
const getDetailListDom = reactive({
|
||||||
libraryList:null as any,
|
libraryList:null as any,
|
||||||
})
|
})
|
||||||
@@ -281,7 +309,6 @@ export default defineComponent({
|
|||||||
let x = ((arr[index]?.style?.left.replace(/px/g,'')*ratio).toFixed(0) as any - arr[index]?.position[1])
|
let x = ((arr[index]?.style?.left.replace(/px/g,'')*ratio).toFixed(0) as any - arr[index]?.position[1])
|
||||||
let scaleWidth = arr[index]?.imageSize?Number(((arr[index]?.style?.width.replace(/px/g,'')*ratio)/(arr[index]?.imageSize[0]/arr[index].scale[0])).toFixed(2)):1
|
let scaleWidth = arr[index]?.imageSize?Number(((arr[index]?.style?.width.replace(/px/g,'')*ratio)/(arr[index]?.imageSize[0]/arr[index].scale[0])).toFixed(2)):1
|
||||||
let scaleHeight = arr[index]?.imageSize?Number(((arr[index]?.style?.height.replace(/px/g,'')*ratio)/(arr[index]?.imageSize[1]/arr[index].scale[1])).toFixed(2)):1
|
let scaleHeight = arr[index]?.imageSize?Number(((arr[index]?.style?.height.replace(/px/g,'')*ratio)/(arr[index]?.imageSize[1]/arr[index].scale[1])).toFixed(2)):1
|
||||||
|
|
||||||
// let widthScale = (arr[index].style.width.replace(/px/g,'')/arr[index].style.height.replace(/px/g,'')).toFixed(2)
|
// let widthScale = (arr[index].style.width.replace(/px/g,'')/arr[index].style.height.replace(/px/g,'')).toFixed(2)
|
||||||
data.scale = [scaleWidth,scaleHeight]
|
data.scale = [scaleWidth,scaleHeight]
|
||||||
let top = y == 0 ? value.layersObject[0].offset[1]:y+value.layersObject[0].offset[1]
|
let top = y == 0 ? value.layersObject[0].offset[1]:y+value.layersObject[0].offset[1]
|
||||||
@@ -371,6 +398,29 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
img.src = data.value;
|
img.src = data.value;
|
||||||
|
},
|
||||||
|
updated (el,data:any) {
|
||||||
|
let sacle = 0
|
||||||
|
const img = new Image();
|
||||||
|
img.onload = () => {
|
||||||
|
// resolve(img)
|
||||||
|
sacle = el.parentNode.offsetWidth / img.width
|
||||||
|
console.log(sacle,123)
|
||||||
|
data.instance.frontBack.front.forEach((item:any,index:number) => {
|
||||||
|
for (const key in item.style) {
|
||||||
|
if(key == 'zIndex')return
|
||||||
|
console.log(item.style[key].replace(/px/g,''))
|
||||||
|
item.style[key] = item.style[key].replace(/px/g,'')*sacle+'px'
|
||||||
|
// console.log(item.style[key])
|
||||||
|
}
|
||||||
|
for (const key in data.instance.frontBack.back[index].style) {
|
||||||
|
if(key == 'zIndex')return
|
||||||
|
console.log(data.instance.frontBack.back[index].style[key].replace(/px/g,''))
|
||||||
|
data.instance.frontBack.back[index].style[key] = data.instance.frontBack.back[index].style[key].replace(/px/g,'')*sacle+'px'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
img.src = data.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -868,7 +868,7 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 0.1rem solid #DCDCEC;
|
border: 0.1rem solid #DCDCEC;
|
||||||
.select_upload_color{
|
.select_upload_color{
|
||||||
border: 0.1rem solid #343579;
|
border: 0.1rem solid #000;
|
||||||
}
|
}
|
||||||
.upload_color{
|
.upload_color{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -1391,13 +1391,13 @@ export default defineComponent({
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
line-height: calc(3rem*1.2);
|
line-height: calc(3rem*1.2);
|
||||||
font-size: calc(1.2rem*1.2);
|
font-size: calc(1.2rem*1.2);
|
||||||
color: #343579;
|
color: #000;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.fi-br-fill{
|
.fi-br-fill{
|
||||||
margin-right: calc(0.5rem*1.2);
|
margin-right: calc(0.5rem*1.2);
|
||||||
color:#343579;
|
color:#000;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2865,7 +2865,7 @@ export default defineComponent({
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&.select_swtich{
|
&.select_swtich{
|
||||||
color: #343579;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.switch_icon{
|
.switch_icon{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select> -->
|
</a-select> -->
|
||||||
@@ -572,7 +572,7 @@ export default defineComponent({
|
|||||||
.check_block_body{
|
.check_block_body{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -695,7 +695,7 @@ export default defineComponent({
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
background: #343579;
|
background: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-top: calc(2rem*1.2);
|
margin-top: calc(2rem*1.2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.img_block_item{
|
.img_block_item{
|
||||||
|
margin-bottom: 1em;
|
||||||
// &.color_block_item{
|
// &.color_block_item{
|
||||||
// padding: 0 0.5rem 0 0.3rem;
|
// padding: 0 0.5rem 0 0.3rem;
|
||||||
// }
|
// }
|
||||||
@@ -284,7 +285,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
&.mannquin{
|
&.mannquin{
|
||||||
|
> .mannquin_img_item{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sketch_img_item{
|
.sketch_img_item{
|
||||||
@@ -301,8 +304,8 @@ export default defineComponent({
|
|||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
.mannquin_img_item{
|
.mannquin_img_item{
|
||||||
width: 6.8rem;
|
width: 6.8rem * 2;
|
||||||
height: 15rem;
|
height: 15rem * 2;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
@@ -371,7 +374,7 @@ export default defineComponent({
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
> .lager_img_item{
|
> .lager_img_item{
|
||||||
width: 30%;
|
width: 30%;
|
||||||
margin-left: 2rem;
|
margin-left: 1rem;
|
||||||
height: auto;
|
height: auto;
|
||||||
>div{
|
>div{
|
||||||
margin-bottom: 2rem;
|
margin-bottom: 2rem;
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ export default defineComponent({
|
|||||||
height: 4rem;
|
height: 4rem;
|
||||||
line-height: 4rem;
|
line-height: 4rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background: #343579;
|
background: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.icon-sousuo{
|
.icon-sousuo{
|
||||||
@@ -276,7 +276,7 @@ export default defineComponent({
|
|||||||
.check_block_body{
|
.check_block_body{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -307,7 +307,7 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&.select_item_img{
|
&.select_item_img{
|
||||||
border-color: #343579;
|
border-color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.print_content_img{
|
.print_content_img{
|
||||||
@@ -361,7 +361,7 @@ export default defineComponent({
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
background: #343579;
|
background: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -739,7 +739,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -496,7 +496,7 @@ export default defineComponent({
|
|||||||
.next_step_button{
|
.next_step_button{
|
||||||
padding: 0 calc(1.2rem*1.2);
|
padding: 0 calc(1.2rem*1.2);
|
||||||
height: calc(3.2rem*1.2);
|
height: calc(3.2rem*1.2);
|
||||||
background: #343579;
|
background: #000;
|
||||||
font-size: calc(1.4rem*1.2);
|
font-size: calc(1.4rem*1.2);
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
line-height: calc(3.2rem*1.2);
|
line-height: calc(3.2rem*1.2);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
// background: rgba(0,0,0,0.4);
|
// background: rgba(0,0,0,0.4);
|
||||||
background-color: rgb(177 177 177);
|
background-color: rgb(177 177 177);
|
||||||
border: 1px solid #343579;
|
border: 1px solid #000;
|
||||||
border-radius: 0.8rem;
|
border-radius: 0.8rem;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
|
|||||||
@@ -561,6 +561,7 @@ export default defineComponent({
|
|||||||
.productImg_content_item_similarity{
|
.productImg_content_item_similarity{
|
||||||
padding-bottom: 2.4rem;
|
padding-bottom: 2.4rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
input{
|
input{
|
||||||
width: 5rem;
|
width: 5rem;
|
||||||
height: 5rem;
|
height: 5rem;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
:class="driverClass.class1"
|
:class="driverClass.class1"
|
||||||
@click.stop="showFileCategory(item)"
|
@click.stop="showFileCategory(item)"
|
||||||
>
|
>
|
||||||
{{ item.category }}
|
{{ item.category || item?.level2TypeEnum?.value }}
|
||||||
<div
|
<div
|
||||||
v-show="!isSpread"
|
v-show="!isSpread"
|
||||||
:class="[
|
:class="[
|
||||||
@@ -199,7 +199,7 @@ export default defineComponent({
|
|||||||
left: 0;
|
left: 0;
|
||||||
// background: rgba(0,0,0,0.4);
|
// background: rgba(0,0,0,0.4);
|
||||||
background-color: rgb(177 177 177);
|
background-color: rgb(177 177 177);
|
||||||
border: 1px solid #343579;
|
border: 1px solid #000;
|
||||||
border-radius: 0.8rem;
|
border-radius: 0.8rem;
|
||||||
// overflow: hidden;
|
// overflow: hidden;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -738,10 +738,10 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ant-slider-track{
|
.ant-slider-track{
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
.ant-slider-handle{
|
.ant-slider-handle{
|
||||||
border-color: #343579;
|
border-color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.placement_remove_point_block{
|
.placement_remove_point_block{
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<template #suffixIcon>
|
<template #suffixIcon>
|
||||||
<!-- <span
|
<!-- <span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span> -->
|
></span> -->
|
||||||
<i class="el-icon el-input__icon icon-arrow-down"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"></path></svg></i>
|
<i class="el-icon el-input__icon icon-arrow-down"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"></path></svg></i>
|
||||||
</template>
|
</template>
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
<template #suffixIcon>
|
<template #suffixIcon>
|
||||||
<!-- <span
|
<!-- <span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span> -->
|
></span> -->
|
||||||
<i class="el-icon el-input__icon icon-arrow-down"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"></path></svg></i>
|
<i class="el-icon el-input__icon icon-arrow-down"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"></path></svg></i>
|
||||||
</template>
|
</template>
|
||||||
@@ -417,7 +417,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.rename_submit_button{
|
.rename_submit_button{
|
||||||
background: #343579;
|
background: #000;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -1000,7 +1000,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -971,7 +971,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -1001,7 +1001,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
<span class="detailText">All</span>
|
<span class="detailText">All</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ selectObject.id }}123
|
|
||||||
<div class="searchObject generalModel_state">
|
<div class="searchObject generalModel_state">
|
||||||
<div class="generalModel_state_item smail">
|
<div class="generalModel_state_item smail">
|
||||||
<span>Project :</span>
|
<span>Project :</span>
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
<div class="itemBox" ref="chatBox">
|
<div class="itemBox" ref="chatBox">
|
||||||
<div class="item" v-for="item in chatList" :class="{user:item.role == 'user'}">
|
<div class="item" v-for="item in chatList" :class="{user:item.role == 'user'}">
|
||||||
<div class="textBox">
|
<div class="textBox">
|
||||||
<div class="icon">ICON</div>
|
<div class="icon">
|
||||||
|
<img src="@/assets/images/icon/favicon.png" alt="">
|
||||||
|
</div>
|
||||||
<div class="text" v-show="item.content.think || item.content.message || item.content.img || item.content.color">
|
<div class="text" v-show="item.content.think || item.content.message || item.content.img || item.content.color">
|
||||||
<span class="content">
|
<span class="content">
|
||||||
<div class="showThink" :class="{active:item.content?.isThink}" v-show="item.content.think" @click="()=>item.content?.isThink?(item.content.isThink = false):(item.content.isThink = true)">
|
<div class="showThink" :class="{active:item.content?.isThink}" v-show="item.content.think" @click="()=>item.content?.isThink?(item.content.isThink = false):(item.content.isThink = true)">
|
||||||
@@ -103,7 +105,7 @@ export default defineComponent({
|
|||||||
chatBox:null as any,
|
chatBox:null as any,
|
||||||
})
|
})
|
||||||
watch(()=>data.selectObject.id,(newValue,oldValue)=>{
|
watch(()=>data.selectObject.id,(newValue,oldValue)=>{
|
||||||
if(newValue){
|
if(newValue && (data.selectObject.httpType == 'SERIES_DESIGN' || data.selectObject.httpType == 'SINGLE_DESIGN')){
|
||||||
getChatHistory(newValue)
|
getChatHistory(newValue)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -385,7 +387,12 @@ export default defineComponent({
|
|||||||
padding: 1.2rem 2rem;
|
padding: 1.2rem 2rem;
|
||||||
border-radius: 2.4rem;
|
border-radius: 2.4rem;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
|
> .icon{
|
||||||
|
> img{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
> .text{
|
> .text{
|
||||||
// display: inline-block;
|
// display: inline-block;
|
||||||
// width: min-content;
|
// width: min-content;
|
||||||
|
|||||||
788
src/component/home/design/editDesignType/index.vue
Normal file
788
src/component/home/design/editDesignType/index.vue
Normal file
@@ -0,0 +1,788 @@
|
|||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
class="scaleImage_modal generalModel"
|
||||||
|
v-model:visible="scaleImage"
|
||||||
|
:footer="null"
|
||||||
|
width="78%"
|
||||||
|
:maskClosable="false"
|
||||||
|
:centered="true"
|
||||||
|
:closable="false"
|
||||||
|
:mask="true"
|
||||||
|
:keyboard="false"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
>
|
||||||
|
<div class="generalModel_btn">
|
||||||
|
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
||||||
|
<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="white" 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 class="generalModel_closeIcon download" @click.stop="download()">
|
||||||
|
<i class="fi fi-rr-down-to-line"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="scaleImage_content">
|
||||||
|
<div v-if="isProductimg" class="productImg_modal">
|
||||||
|
<div class="productImg_left">
|
||||||
|
<div class="productImg_content_item_title productImg_content_item_title_menu">
|
||||||
|
<span v-if="scaleImageList[scaleImageIndex]?.resultType == 'ToProductImage'">{{$t('ProductImg.MagicTools')}}</span>
|
||||||
|
<span v-if="scaleImageList[scaleImageIndex]?.resultType == 'Relight'">{{$t('ProductImg.relightingTool')}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'ToProductImage'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||||
|
<span>{{$t('ProductImg.Similarity')}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'ToProductImage'" class="productImg_content_item_similarity ">
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="productimgSimilarity"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
:step="5"
|
||||||
|
@afterChange="()=>{}"
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
<input type="number" readonly v-model="productimgSimilarity">
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||||
|
<span>{{$t('ProductImg.RelightDirection')}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_Direction">
|
||||||
|
<!-- <a-slider class="system_silder"
|
||||||
|
v-model:value="similarity"
|
||||||
|
@afterChange="setSimilarity"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
:step="5"
|
||||||
|
>
|
||||||
|
</a-slider> -->
|
||||||
|
<a-select style="width: 100%;" v-model:value="productimgRelightDirection" :options="productimgRelightDirectionList"></a-select>
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||||
|
<span>{{$t('ProductImg.Highlight')}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_similarity">
|
||||||
|
<a-slider class="system_silder"
|
||||||
|
v-model:value="productimgBrightenValue"
|
||||||
|
:tooltipVisible="false"
|
||||||
|
:max="3"
|
||||||
|
:min="1"
|
||||||
|
:step="0.1"
|
||||||
|
>
|
||||||
|
</a-slider>
|
||||||
|
<input type="number" readonly v-model="productimgBrightenValue">
|
||||||
|
</div>
|
||||||
|
<div class="input_border productImg_content_item_generate">
|
||||||
|
<div class="input_box">
|
||||||
|
<div class="input_box_btnBox">
|
||||||
|
<input
|
||||||
|
class="search_input"
|
||||||
|
:placeholder="$t('Generate.inputContent1')"
|
||||||
|
v-model="productimgSearchName"
|
||||||
|
@keydown.enter="getPrductimg()"
|
||||||
|
/>
|
||||||
|
<i v-show="!productimgIsTextarea" class="fi fi-br-expand" @click.stop="()=>productimgIsTextarea = !productimgIsTextarea"></i>
|
||||||
|
<i v-show="productimgIsTextarea" class="fi fi-bs-compress" @click.stop="()=>productimgIsTextarea = !productimgIsTextarea"></i>
|
||||||
|
</div>
|
||||||
|
<textarea
|
||||||
|
v-show="productimgIsTextarea"
|
||||||
|
class="search_textarea "
|
||||||
|
@keydown.enter="getPrductimg()"
|
||||||
|
v-model="productimgSearchName"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="productImg_content_item_generate_btn input_border">
|
||||||
|
<div class="input_box">
|
||||||
|
<div v-show="!productimgIsProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
|
||||||
|
{{ $t('Generate.Generate') }}
|
||||||
|
</div>
|
||||||
|
<div v-show="productimgIsProductimg && !productimgRemProductimg" class="generage_btn started_btn" @click="getPrductimg">
|
||||||
|
<i class="fi fi-br-loading"></i>
|
||||||
|
</div>
|
||||||
|
<div v-show="productimgRemProductimg" @click="removeProductimg" class="generage_btn started_btn">
|
||||||
|
{{$t('Generate.Close')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="scaleImage_content_imgBox" :class="{active:isComparison}">
|
||||||
|
<img v-if="isComparison" :src="scaleImageList[scaleImageIndex]?.sourceUrl">
|
||||||
|
<div class="loadBox" v-show="generateSuccess">
|
||||||
|
<div class="load" v-show="productimgIsProductimg">
|
||||||
|
<a-spin size="large" class="content_img_flex"></a-spin>
|
||||||
|
</div>
|
||||||
|
<img v-show="!productimgIsProductimg" :src="generateSuccess?.url">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="img_operate_block" v-if="isLike">
|
||||||
|
<i v-if="!scaleImageList[scaleImageIndex]?.like" class="fi fi-rr-heart operate_icon" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'like')"></i>
|
||||||
|
<i v-else class="fi fi-sr-heart operate_icon" :adminLike="!!scaleImageList[scaleImageIndex]?.like" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'noLike')"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="scaleImage_nav">
|
||||||
|
<div class="nav_left">
|
||||||
|
<i class="fi fi-rr-arrow-small-left" @click="lastStep()"></i>
|
||||||
|
</div>
|
||||||
|
<div class="nav_list" v-mousewheel>
|
||||||
|
<div class="nav_centent">
|
||||||
|
<img v-for="item,index in scaleImageList" @click="setScaleImageIndex(index)" :class="{active:index == scaleImageIndex}" :src="item?.imgUrl || item?.url" :key="item.id">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="nav_right">
|
||||||
|
<i class="fi fi-rr-arrow-small-right" @click.stop="nextStep()"></i>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
<div class="mark_loading" v-show="loadingShow">
|
||||||
|
<a-spin size="large" />
|
||||||
|
</div>
|
||||||
|
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||||
|
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, h, ref ,toRefs,createVNode,reactive, computed} from "vue";
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { Modal } from "ant-design-vue";
|
||||||
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
|
import { downloadIamge } from "@/tool/util";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import UpgradePlan from "@/component/HomePage/UpgradePlan.vue";
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
components:{UpgradePlan},
|
||||||
|
props:{
|
||||||
|
productData:{
|
||||||
|
type:Object,
|
||||||
|
default:{
|
||||||
|
similarity:30,
|
||||||
|
brightenValue:1,
|
||||||
|
upload:'',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
isCanvas:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
|
},
|
||||||
|
sex:{
|
||||||
|
type:String,
|
||||||
|
default:''
|
||||||
|
},
|
||||||
|
},
|
||||||
|
emits:['addGenerateImg'],
|
||||||
|
setup(props:any,{emit}) {
|
||||||
|
const store = useStore();
|
||||||
|
let userDetail:any= computed(()=>{
|
||||||
|
return store.state.UserHabit.userDetail
|
||||||
|
})
|
||||||
|
let {t} = useI18n()
|
||||||
|
let productimg = reactive({
|
||||||
|
UpgradePlan:null,
|
||||||
|
isProductimg:false,
|
||||||
|
productimgSearchName:'',
|
||||||
|
productimgIsTextarea:false,
|
||||||
|
productimgRemProductimg:false,
|
||||||
|
productimgIsProductimg:false,
|
||||||
|
productimgSimilarity:30,
|
||||||
|
productimgBrightenValue:1,
|
||||||
|
productimgUpload:props.productData.upload,
|
||||||
|
productimgRelightDirection:props.productData.RelightDirection,
|
||||||
|
productimgRelightDirectionList:props.productData.RelightDirectionList,
|
||||||
|
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||||
|
generateSuccess:null as any,//生成成功后返回的数据
|
||||||
|
})
|
||||||
|
let scaleImage: any = ref(false);
|
||||||
|
let isShowMark = ref(false)
|
||||||
|
let loadingShow = ref(false)
|
||||||
|
let isComparison = ref(false)
|
||||||
|
const visible = ref<boolean>(false);
|
||||||
|
const setVisible = (value:any): void => {
|
||||||
|
visible.value = value;
|
||||||
|
};
|
||||||
|
let scaleImageList:any = ref([
|
||||||
|
|
||||||
|
])
|
||||||
|
let scaleImageMask:any = ref(false)
|
||||||
|
let scaleImageIndex:any = ref(0)
|
||||||
|
let isLike:any = ref(true)
|
||||||
|
let robotAssits:any = ref(0)
|
||||||
|
|
||||||
|
//procuctimg
|
||||||
|
let remPrductimgTime:any = null
|
||||||
|
let prductimgTime:any = null
|
||||||
|
const getData = ()=>{
|
||||||
|
let obj = null as any
|
||||||
|
if(scaleImageList.value[scaleImageIndex.value]?.resultType == 'ToProductImage'){
|
||||||
|
obj = {
|
||||||
|
elementId:scaleImageList.value[scaleImageIndex.value].designOutfitId||scaleImageList.value[scaleImageIndex.value].elementId,
|
||||||
|
elementType:'DesignOutfit',
|
||||||
|
}
|
||||||
|
}else if(scaleImageList.value[scaleImageIndex.value]?.resultType == 'Relight'){
|
||||||
|
obj = {
|
||||||
|
elementId:scaleImageList.value[scaleImageIndex.value].designItemId || scaleImageList.value[scaleImageIndex.value].id,
|
||||||
|
elementType:'ToProductImage',
|
||||||
|
}
|
||||||
|
}else if(scaleImageList.value[scaleImageIndex.value]?.resultType == 'TransferPose'){
|
||||||
|
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
}
|
||||||
|
let getPrductimg = ()=>{
|
||||||
|
let obj = getData()
|
||||||
|
let imageStrength = productimg.productimgSimilarity == 100? 95 :productimg.productimgSimilarity
|
||||||
|
let data:any ={
|
||||||
|
direction:productimg.productimgRelightDirection,
|
||||||
|
prompt:productimg.productimgSearchName,
|
||||||
|
toProductImageVOList:[obj],
|
||||||
|
brightenValue:productimg.productimgBrightenValue,
|
||||||
|
projectId:productimg.selectObject.id,
|
||||||
|
imageStrength:(100 - imageStrength)/100,
|
||||||
|
}
|
||||||
|
// console.log(data)
|
||||||
|
// return
|
||||||
|
productimg.productimgIsProductimg = true
|
||||||
|
remPrductimgTime = setTimeout(()=>{
|
||||||
|
productimg.productimgRemProductimg = true
|
||||||
|
},10000)
|
||||||
|
let url = Https.httpUrls.relight
|
||||||
|
if(scaleImageList.value[scaleImageIndex.value]?.resultType == 'ToProductImage'){
|
||||||
|
url = Https.httpUrls.toProduct
|
||||||
|
}
|
||||||
|
isShowMark.value = true
|
||||||
|
Https.axiosPost(url, data).then(
|
||||||
|
(rv) => {
|
||||||
|
isShowMark.value = false
|
||||||
|
scaleImageList.value[scaleImageIndex.value].imgUrl = '/image/loading.gif'
|
||||||
|
let arr:any = []
|
||||||
|
rv.forEach((item:any)=>{
|
||||||
|
arr.push(item.taskId)
|
||||||
|
})
|
||||||
|
|
||||||
|
// productimg.generateList.unshift(...rv)
|
||||||
|
setPrductimg(arr)
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
isShowMark.value = false
|
||||||
|
productimg.productimgIsProductimg = false
|
||||||
|
clearInterval(remPrductimgTime)
|
||||||
|
productimg.productimgRemProductimg = false
|
||||||
|
if(res.errCode === 2){
|
||||||
|
Modal.confirm({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
zIndex:99999,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
let UpgradePlan:any = productimg.UpgradePlan
|
||||||
|
UpgradePlan.init()
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let generateProceedList:any = []
|
||||||
|
let setPrductimg = (dataList:any)=>{
|
||||||
|
let data = dataList
|
||||||
|
let dataNum = dataList.length
|
||||||
|
let state = true
|
||||||
|
let url = Https.httpUrls.relightResult
|
||||||
|
if(scaleImageList.value[scaleImageIndex.value]?.resultType == 'ToProductImage'){
|
||||||
|
url = Https.httpUrls.toProductImageResult
|
||||||
|
}
|
||||||
|
prductimgTime = setInterval(()=>{
|
||||||
|
if(!state)return
|
||||||
|
state = false
|
||||||
|
Https.axiosPost(url, data).then(
|
||||||
|
(rv) => {
|
||||||
|
state = true
|
||||||
|
if(productimg.productimgIsProductimg){//防止取消后有正在执行的获取状态
|
||||||
|
// generateProceedList = rv.filter((item:any)=>item.status != 'Success' && item.status != 'Fail' && item.status != 'Invalid')
|
||||||
|
let isEnd = false
|
||||||
|
if(rv[0].status == 'Success'){
|
||||||
|
// let id = productimg.generateSuccess?.designItemId || rv[0].id
|
||||||
|
// rv[0].id = id
|
||||||
|
// let listType = productimg.generateSuccess.listType
|
||||||
|
productimg.generateSuccess = Object.assign(productimg.generateSuccess,rv[0])
|
||||||
|
// productimg.generateSuccess.listType = listType
|
||||||
|
isEnd = true
|
||||||
|
clearInterval(remPrductimgTime)
|
||||||
|
}else if(rv[0].status == 'Fail'){
|
||||||
|
isEnd = true
|
||||||
|
}
|
||||||
|
generateProceedList = data
|
||||||
|
if(isEnd){
|
||||||
|
store.state.store.dispatch('getCredits')
|
||||||
|
clearInterval(prductimgTime)
|
||||||
|
clearInterval(remPrductimgTime)
|
||||||
|
productimg.productimgRemProductimg = false
|
||||||
|
productimg.productimgIsProductimg = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
clearInterval(prductimgTime)
|
||||||
|
clearInterval(remPrductimgTime)
|
||||||
|
productimg.productimgIsProductimg = false
|
||||||
|
productimg.productimgRemProductimg= false
|
||||||
|
});
|
||||||
|
},1000)
|
||||||
|
}
|
||||||
|
let removeProductimg = ()=>{
|
||||||
|
productimg.productimgIsProductimg = false
|
||||||
|
productimg.productimgRemProductimg= false
|
||||||
|
clearInterval(prductimgTime)
|
||||||
|
if(generateProceedList){
|
||||||
|
// let str = generateProceedList.map((obj:any) => obj.taskId).join(',');
|
||||||
|
let str = generateProceedList.join(',')
|
||||||
|
let data = {
|
||||||
|
uniqueId:str,
|
||||||
|
userId:userDetail.value.userId,
|
||||||
|
type:scaleImageList.value[scaleImageIndex.value]?.resultType
|
||||||
|
}
|
||||||
|
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(
|
||||||
|
(rv) => {
|
||||||
|
generateProceedList = []
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let submitBase64Data = async (rv:any)=>{
|
||||||
|
loadingShow.value = true
|
||||||
|
let isOverlay = false
|
||||||
|
await new Promise<void>((resolve, reject) => {
|
||||||
|
Modal.confirm({
|
||||||
|
title: t('scaleImage.overlayOrNot'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
resolve()
|
||||||
|
isOverlay = true
|
||||||
|
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
isOverlay = false
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
let data = {
|
||||||
|
"base64": rv,
|
||||||
|
"category": scaleImageList.value[scaleImageIndex.value]?.categoryValue || scaleImageList.value[scaleImageIndex.value]?.level2Type,
|
||||||
|
"gender": props.sex,
|
||||||
|
"originalId":scaleImageList.value[scaleImageIndex.value]?.id,
|
||||||
|
"isOverride":isOverlay,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
||||||
|
(rv) => {
|
||||||
|
rv.imgUrl = rv.url
|
||||||
|
rv.status = 'Success'
|
||||||
|
rv.category = scaleImageList.value[scaleImageIndex.value]?.category
|
||||||
|
rv.categoryValue = scaleImageList.value[scaleImageIndex.value]?.categoryValue
|
||||||
|
isOverlay?(scaleImageList.value[scaleImageIndex.value] = rv):(scaleImageList.value.unshift(rv))
|
||||||
|
loadingShow.value = false
|
||||||
|
scaleImage.value = false
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
loadingShow.value = false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
t,
|
||||||
|
...toRefs(productimg),
|
||||||
|
scaleImage,
|
||||||
|
isShowMark,
|
||||||
|
loadingShow,
|
||||||
|
isComparison,
|
||||||
|
visible,
|
||||||
|
setVisible,
|
||||||
|
scaleImageList,
|
||||||
|
scaleImageMask,
|
||||||
|
scaleImageIndex,
|
||||||
|
isLike,
|
||||||
|
robotAssits,
|
||||||
|
getPrductimg,
|
||||||
|
removeProductimg,
|
||||||
|
submitBase64Data,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// moodTemplateId: "", //模板id
|
||||||
|
isNext:false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
directives:{
|
||||||
|
mousewheel:{
|
||||||
|
mounted (el) {
|
||||||
|
el.addEventListener('wheel',(e:WheelEvent)=>{
|
||||||
|
let num = 0
|
||||||
|
if(e.deltaY > 0){
|
||||||
|
num = 25
|
||||||
|
}else{
|
||||||
|
num = -25
|
||||||
|
}
|
||||||
|
el.scrollBy(num, 0);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init(list:any,index:any,dialogueIndex:any,status:any,listType:string){
|
||||||
|
if(status == 'edit'){
|
||||||
|
this.generateSuccess = {
|
||||||
|
...list[index],
|
||||||
|
id:list[index].designItemId || list[index].id,
|
||||||
|
oldId:list[index].designItemId || list[index].id,
|
||||||
|
url:list[index].designOutfitUrl || list[index].url,
|
||||||
|
designItemId:list[index].designOutfitId,
|
||||||
|
listType,
|
||||||
|
}
|
||||||
|
if(list[index].imageStrength)this.productimgSimilarity = 100 - list[index].imageStrength * 100
|
||||||
|
if(list[index].imageStrength)list[index].brightenValue
|
||||||
|
if(list[index].imageStrength)list[index].direction
|
||||||
|
}else{
|
||||||
|
this.generateSuccess = {
|
||||||
|
listType,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.scaleImage = true
|
||||||
|
this.scaleImageList = list
|
||||||
|
// if(this.scaleImageList[index]?.resultType == 'ToProductImage')this.scaleImageList[index].sourceUrl = this.scaleImageList[index].imgUrl
|
||||||
|
this.scaleImageIndex = index
|
||||||
|
if(dialogueIndex)this.robotAssits = dialogueIndex
|
||||||
|
// let scaleImageList = this.store.state.UploadFilesModule.moodboard
|
||||||
|
document.addEventListener('keydown',this.setKeydown)
|
||||||
|
},
|
||||||
|
async cancelDsign(){
|
||||||
|
|
||||||
|
document.removeEventListener('keydown',this.setKeydown)
|
||||||
|
let data = {
|
||||||
|
...JSON.parse(JSON.stringify(this.generateSuccess)),
|
||||||
|
}
|
||||||
|
let isIndex = -1
|
||||||
|
if(data?.oldId){
|
||||||
|
this.scaleImageList.forEach((rv:any,index:number)=>{
|
||||||
|
if(rv.designItemId == data?.oldId || rv.id == data?.oldId){
|
||||||
|
isIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
data.isIndex = isIndex
|
||||||
|
if(isIndex != -1 && data.oldId){
|
||||||
|
await new Promise((resolve,reject)=>{
|
||||||
|
let this_ = this
|
||||||
|
Modal.confirm({
|
||||||
|
title: this.t('scaleImage.cover'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
this_.$emit('addGenerateImg',data)
|
||||||
|
resolve('')
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
resolve('')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.$emit('addGenerateImg',data)
|
||||||
|
}
|
||||||
|
this.scaleImage = false
|
||||||
|
this.scaleImageIndex = 0
|
||||||
|
this.isNext = false
|
||||||
|
this.generateSuccess = null
|
||||||
|
this.scaleImageList = []
|
||||||
|
},
|
||||||
|
lastStep(){
|
||||||
|
if(this.productimgIsProductimg) return
|
||||||
|
if(this.isNext)return
|
||||||
|
let num = this.scaleImageIndex
|
||||||
|
if(this.scaleImageIndex <= 0){
|
||||||
|
}else{
|
||||||
|
num -=1
|
||||||
|
this.setImageIndex(num)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nextStep(){
|
||||||
|
if(this.productimgIsProductimg) return
|
||||||
|
if(this.isNext)return
|
||||||
|
let num = this.scaleImageIndex
|
||||||
|
if(this.scaleImageIndex >= this.scaleImageList.length-1){
|
||||||
|
}else{
|
||||||
|
num += 1
|
||||||
|
this.setImageIndex(num)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
download(){
|
||||||
|
let url = this.scaleImageList[this.scaleImageIndex].imgUrl || this.scaleImageList[this.scaleImageIndex]?.url
|
||||||
|
downloadIamge(url)
|
||||||
|
},
|
||||||
|
setScaleImageIndex(index:any){
|
||||||
|
// this.scaleImageIndex = index
|
||||||
|
this.setImageIndex(index)
|
||||||
|
},
|
||||||
|
setImageIndex(index:any){
|
||||||
|
if(this.isNext)return
|
||||||
|
let this_ = this
|
||||||
|
if(this.isCanvas){
|
||||||
|
this.isNext = true
|
||||||
|
new Promise((resolve,reject)=>{
|
||||||
|
Modal.confirm({
|
||||||
|
title: this.t('scaleImage.submitCanvas'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
this_.scaleImageIndex = index
|
||||||
|
this_.isNext = false
|
||||||
|
resolve('')
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
this_.isNext = false
|
||||||
|
resolve('')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.scaleImageIndex = index
|
||||||
|
}
|
||||||
|
},
|
||||||
|
LikeFile(item:any,str:string){
|
||||||
|
let parent:any = this.$parent
|
||||||
|
if(this.robotAssits){
|
||||||
|
parent.likeFile(item,this.scaleImageIndex,this.robotAssits)
|
||||||
|
}else{
|
||||||
|
parent.likeFile(item,str)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setKeydown(event:any){
|
||||||
|
if(event.keyCode == 37){
|
||||||
|
this.lastStep()
|
||||||
|
}else if(event.keyCode == 39){
|
||||||
|
this.nextStep()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.scaleImage_modal{
|
||||||
|
overflow: visible !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="less">
|
||||||
|
.scaleImage_modal {
|
||||||
|
.ant-modal-body {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.productImg_content_item_title{
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
&.productImg_content_item_title_menu{
|
||||||
|
margin-bottom: 6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleImage_content{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
// margin-top: calc(5rem*1.2);
|
||||||
|
// height: 75%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
.productImg_modal{
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
z-index: 9;
|
||||||
|
.productImg_left{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
.input_box_btnBox{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.input_box{
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
.productImg_content_item_generate_btn{
|
||||||
|
// transform: translateY(100%);
|
||||||
|
// position: absolute;
|
||||||
|
// bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.productImg_content_item_similarity{
|
||||||
|
padding-bottom: 2.4rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
input{
|
||||||
|
width: 5rem;
|
||||||
|
height: 5rem;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleImage_content_imgBox{
|
||||||
|
position: relative;
|
||||||
|
// max-width: 70rem;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
justify-content: center;
|
||||||
|
> .loadBox{
|
||||||
|
display: flex;
|
||||||
|
width: auto;
|
||||||
|
height: 100%;
|
||||||
|
max-width: 50rem;
|
||||||
|
min-width: 40rem;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
width: auto;
|
||||||
|
height: 100%;
|
||||||
|
max-width: 50rem;
|
||||||
|
min-width: 40rem;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
&.active{
|
||||||
|
display: flex;
|
||||||
|
img{
|
||||||
|
// width: 50%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: contain;
|
||||||
|
margin: 0 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.img_operate_block{
|
||||||
|
width: 3.6rem;
|
||||||
|
height: 3.6rem;
|
||||||
|
background: rgba(0,0,0,0.6);
|
||||||
|
border-radius: 50%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 3.6rem;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-bottom: 0.4rem;
|
||||||
|
position: absolute;
|
||||||
|
right: 2rem;
|
||||||
|
top: 2rem;
|
||||||
|
opacity: 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
z-index: 2;
|
||||||
|
.operate_icon{
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: #fff;
|
||||||
|
&.fi-sr-heart{
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i{
|
||||||
|
display: flex;
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.scaleImage_content_imgBox:hover{
|
||||||
|
.img_operate_block{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scaleImage_nav{
|
||||||
|
flex: 1;
|
||||||
|
margin: calc(2.5rem*1.2) calc(0rem*1.2);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
.nav_left,.nav_right{
|
||||||
|
cursor: pointer;
|
||||||
|
top: 50%;
|
||||||
|
i{
|
||||||
|
display: flex;
|
||||||
|
font-size: 4rem;
|
||||||
|
transition: .3s all;
|
||||||
|
color: rgba(0, 0, 0, .5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// .nav_left{
|
||||||
|
// left: 0;
|
||||||
|
// transform: translate(-200%,-50%);
|
||||||
|
// }
|
||||||
|
// .nav_right{
|
||||||
|
// right: 0;
|
||||||
|
// transform: translate(200%,-50%);
|
||||||
|
// }
|
||||||
|
.nav_left:hover,.nav_right:hover{
|
||||||
|
i{
|
||||||
|
color: rgba(0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.nav_list{
|
||||||
|
margin: 0 calc(2rem*1.2);
|
||||||
|
max-width: calc(60rem*1.2);
|
||||||
|
overflow-y: hidden;
|
||||||
|
&.nav_list::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.nav_centent{
|
||||||
|
width: auto;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
max-width: calc(5rem*1.2);
|
||||||
|
max-height: calc(5rem*1.2);
|
||||||
|
object-fit: cover;
|
||||||
|
object-position: 50%,50%;
|
||||||
|
margin-left: calc(1rem*1.2);
|
||||||
|
border-radius: calc(1rem*1.2);
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: calc(.1rem*1.2);
|
||||||
|
flex-shrink: 0;
|
||||||
|
&.active{
|
||||||
|
border: 2px solid #aaaaaa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
img:nth-child(1){
|
||||||
|
margin-left: calc(0rem*1.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -45,17 +45,29 @@
|
|||||||
{{ $t('HomeView.Redesign') }}
|
{{ $t('HomeView.Redesign') }}
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="silder button_margin_14" v-show="likeDesignCollectionList?.length > 0">
|
<div class="silder button_margin_14" v-show="likeDesignCollectionList?.length > 0">
|
||||||
<div class="text">Small</div>
|
|
||||||
<a-slider
|
</div>
|
||||||
class="system_silder"
|
</div>
|
||||||
v-model:value="elementWidth"
|
<div class="right_top_right">
|
||||||
:min="minCollValue"
|
<div class="generalModel_state">
|
||||||
:max="maxCollValue-1"
|
<div class="generalModel_state_item smail">
|
||||||
@afterChange="setSystemDesigner(500)"
|
<span>Size :</span>
|
||||||
:tooltipVisible="false"
|
<a-select
|
||||||
|
v-model:value="widthValue"
|
||||||
|
show-search
|
||||||
|
size="large"
|
||||||
|
allowClear
|
||||||
|
style="width: 150px"
|
||||||
|
placeholder="Please select"
|
||||||
|
:options="widthList"
|
||||||
|
@change="setSystemDesigner(500)"
|
||||||
>
|
>
|
||||||
</a-slider>
|
<!-- <template #option="{ value: val, label, icon }">
|
||||||
<div class="text">Big</div>
|
<span role="img" :aria-label="val">{{ icon }}</span>
|
||||||
|
{{ label }}
|
||||||
|
</template> -->
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -84,14 +96,36 @@
|
|||||||
'like'
|
'like'
|
||||||
)">
|
)">
|
||||||
<div class="content_img_flex">
|
<div class="content_img_flex">
|
||||||
<img class="content_img" :src="design.designOutfitUrl"
|
<img class="content_img" :src="design.designOutfitUrl||design.url"
|
||||||
:key="design.designOutfitUrl" designType="like" :index="index"/>
|
:key="design.designOutfitUrl" designType="like" :index="index"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon iconfont icon-jushoucanggift icon_like" @click.stop="
|
<div class="btn">
|
||||||
dislikeDesignCollection(
|
<i @click.stop="openEditBtn(design.designItemId||design.id)" class="fi fi-br-menu-dots-vertical"></i>
|
||||||
design,
|
<div class="btnOpen" @click.stop="()=>openEditBtnId=-1" :class="{active:openEditBtnId == design.designItemId||openEditBtnId == design.id}">
|
||||||
index
|
<div class="item" @click="dislikeDesignCollection(design,design.resultType,index)">
|
||||||
)">
|
<div class="text">On Like</div>
|
||||||
|
<div class="icon iconfont icon-jushoucanggift icon_like">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="item" v-show="design.resultType == 'ToProductImage'" @click="setEditDesignType(likeDesignCollectionList,index,'TransferPose','add','like')">
|
||||||
|
<div class="text">Transfer Pose</div>
|
||||||
|
<div class="icon iconfont icon-jushoucanggift icon_like"></div>
|
||||||
|
</div> -->
|
||||||
|
<div class="item" v-show="design.resultType == 'ToProductImage'" @click="setEditDesignType(likeDesignCollectionList,index,'Relight','add','like')">
|
||||||
|
<div class="text">Relight</div>
|
||||||
|
<i class="fi fi fi-br-keyboard-brightness"></i>
|
||||||
|
</div>
|
||||||
|
<div class="item" v-show="design.resultType == 'Design'" @click="setEditDesignType(likeDesignCollectionList,index,'ToProductImage','add','like')">
|
||||||
|
<div class="text">To Product Image</div>
|
||||||
|
<i class="fi fi fi-ss-box-open"></i>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="item" @click="setDeleteDesign(design,index)">
|
||||||
|
<div class="text">Delete</div>
|
||||||
|
<i class="fi fi-rr-trash icon_delete">
|
||||||
|
</i>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -128,16 +162,33 @@
|
|||||||
)">
|
)">
|
||||||
<img class="content_img" :src="design.designOutfitUrl" designType="dislike" :index="index"/>
|
<img class="content_img" :src="design.designOutfitUrl" designType="dislike" :index="index"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon iconfont icon-jushoucang icon_like" :class="[driver__.driver?index == 0?driver__.index == 32?'Guide_img showEvents':'':'':'']" @click.stop="
|
<div class="btn">
|
||||||
likeDesignCollection(
|
<i @click.stop="openEditBtn(design.designItemId||design.id)" class="fi fi-br-menu-dots-vertical"></i>
|
||||||
design,
|
<div class="btnOpen" @click.stop="()=>openEditBtnId=-1" :class="{active:openEditBtnId == design.designItemId||openEditBtnId == design.id}">
|
||||||
index
|
<div class="item" @click="likeDesignCollection(design,index,design.resultType)">
|
||||||
)
|
<div class="text">Like</div>
|
||||||
">
|
<div class="icon iconfont icon-jushoucang icon_like">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="item" v-show="design.resultType == 'ToProductImage'" @click="setEditDesignType(designCollectionList,index,'TransferPose','add','disLike')">
|
||||||
|
<div class="text">Transfer Pose</div>
|
||||||
|
<div class="icon iconfont icon-jushoucanggift icon_like"></div>
|
||||||
|
</div> -->
|
||||||
|
<div class="item" v-show="design.resultType == 'ToProductImage'" @click="setEditDesignType(designCollectionList,index,'Relight','add','disLike')">
|
||||||
|
<div class="text">Relight</div>
|
||||||
|
<i class="fi fi fi-br-keyboard-brightness"></i>
|
||||||
|
</div>
|
||||||
|
<div class="item" v-show="design.resultType == 'Design'" @click="setEditDesignType(designCollectionList,index,'ToProductImage','add','disLike')">
|
||||||
|
<div class="text">To Product Image</div>
|
||||||
|
<i class="fi fi fi-ss-box-open"></i>
|
||||||
|
</div>
|
||||||
|
<div class="item" @click="setDeleteDesign(design,index)">
|
||||||
|
<div class="text">Delete</div>
|
||||||
|
<i class="fi fi-rr-trash icon_delete">
|
||||||
|
</i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<i class="fi fi-rr-trash icon_delete" @click.stop="
|
|
||||||
setDeleteDesign(design,index)">
|
|
||||||
</i>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -165,13 +216,20 @@
|
|||||||
<!-- design collection的进度蒙层 end-->
|
<!-- design collection的进度蒙层 end-->
|
||||||
<affiche ref="affiche"></affiche>
|
<affiche ref="affiche"></affiche>
|
||||||
<DesignDetailcopy v-if="detailDestroy" ref="designDetail" @destroy="setDetailDestroy" @finishRedesign="finishRedesign"></DesignDetailcopy>
|
<DesignDetailcopy v-if="detailDestroy" ref="designDetail" @destroy="setDetailDestroy" @finishRedesign="finishRedesign"></DesignDetailcopy>
|
||||||
|
<editDesignType ref="editDesignType"
|
||||||
|
@addGenerateImg="addGenerateImg"
|
||||||
|
:productData="{
|
||||||
|
upload:upload,
|
||||||
|
RelightDirection:RelightDirection,
|
||||||
|
RelightDirectionList:RelightDirectionList,
|
||||||
|
}"
|
||||||
|
:isProductimg="true"></editDesignType>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, h, ref, computed, reactive, toRefs, inject,provide,nextTick,createVNode,onBeforeUnmount, toRef} from "vue";
|
import { defineComponent, h, ref, computed, toRefs, inject,provide,nextTick,reactive,onBeforeUnmount, toRef} from "vue";
|
||||||
// import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
// import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import NewCollectionReview from "@/component/HomePage/NewCollectionReview.vue";
|
import NewCollectionReview from "@/component/HomePage/NewCollectionReview.vue";
|
||||||
import generalCanvas from "@/component/modules/generalCanvas.vue";
|
import generalCanvas from "@/component/modules/generalCanvas.vue";
|
||||||
@@ -183,6 +241,7 @@ import { useStore } from "vuex";
|
|||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { openGuide,driverObj__ } from "@/tool/guide";
|
import { openGuide,driverObj__ } from "@/tool/guide";
|
||||||
import { LoadingOutlined ,ExclamationCircleOutlined} from "@ant-design/icons-vue";
|
import { LoadingOutlined ,ExclamationCircleOutlined} from "@ant-design/icons-vue";
|
||||||
|
import editDesignType from './editDesignType/index.vue'
|
||||||
// import JSZip, { forEach } from "jszip";
|
// import JSZip, { forEach } from "jszip";
|
||||||
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
||||||
import i18n from "@/lang";
|
import i18n from "@/lang";
|
||||||
@@ -200,7 +259,8 @@ export default defineComponent({
|
|||||||
NewCollectionReview,
|
NewCollectionReview,
|
||||||
affiche,
|
affiche,
|
||||||
generalCanvas,
|
generalCanvas,
|
||||||
DesignDetailcopy
|
DesignDetailcopy,
|
||||||
|
editDesignType,
|
||||||
},
|
},
|
||||||
emits:['setTask'],
|
emits:['setTask'],
|
||||||
activated() {
|
activated() {
|
||||||
@@ -210,6 +270,25 @@ export default defineComponent({
|
|||||||
props:['isState'],
|
props:['isState'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const editDesignType = reactive({
|
||||||
|
upload:{id:store.state.Workspace.probjects.id},
|
||||||
|
RelightDirectionList:[
|
||||||
|
{
|
||||||
|
value:'Right Light',
|
||||||
|
label:useI18n().t('ProductImg.RightLight')
|
||||||
|
},{
|
||||||
|
value:'Left Light',
|
||||||
|
label:useI18n().t('ProductImg.LeftLight')
|
||||||
|
},{
|
||||||
|
value:'Top Light',
|
||||||
|
label:useI18n().t('ProductImg.TopLight')
|
||||||
|
},{
|
||||||
|
value:'Bottom Light',
|
||||||
|
label:useI18n().t('ProductImg.BottomLight')
|
||||||
|
}
|
||||||
|
],
|
||||||
|
RelightDirection:'Right Light'
|
||||||
|
})
|
||||||
let likeDesignCollectionList: any = computed(() => {
|
let likeDesignCollectionList: any = computed(() => {
|
||||||
return store.state.HomeStoreModule.likeDesignCollectionList;
|
return store.state.HomeStoreModule.likeDesignCollectionList;
|
||||||
});
|
});
|
||||||
@@ -276,6 +355,23 @@ export default defineComponent({
|
|||||||
])
|
])
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
collectionModal:null as any,
|
collectionModal:null as any,
|
||||||
|
editDesignType:null as any,
|
||||||
|
})
|
||||||
|
const designData = reactive({
|
||||||
|
openEditBtnId:-1,
|
||||||
|
likeLoading: false, //喜欢防抖
|
||||||
|
widthList:[
|
||||||
|
{
|
||||||
|
label:'Medium',
|
||||||
|
value:170,
|
||||||
|
},{
|
||||||
|
label:'Large',
|
||||||
|
value:250,
|
||||||
|
},{
|
||||||
|
label:'Extra-large',
|
||||||
|
value:400,
|
||||||
|
}
|
||||||
|
],
|
||||||
})
|
})
|
||||||
provide('exportNav',exportNav)
|
provide('exportNav',exportNav)
|
||||||
let isShowOperate = ref(false)
|
let isShowOperate = ref(false)
|
||||||
@@ -298,10 +394,8 @@ export default defineComponent({
|
|||||||
let sessionStorageCollValue = JSON.parse(sessionStorage.getItem('collValue') as any)
|
let sessionStorageCollValue = JSON.parse(sessionStorage.getItem('collValue') as any)
|
||||||
|
|
||||||
const collItemSize = reactive({
|
const collItemSize = reactive({
|
||||||
|
widthValue:150,
|
||||||
collValue:6,
|
collValue:6,
|
||||||
elementWidth:100,
|
|
||||||
minCollValue:100,
|
|
||||||
maxCollValue:999,
|
|
||||||
padding:60,
|
padding:60,
|
||||||
likeStyle:{
|
likeStyle:{
|
||||||
width:'240px',
|
width:'240px',
|
||||||
@@ -340,10 +434,10 @@ export default defineComponent({
|
|||||||
collItemSize.collTime = setTimeout(()=>{
|
collItemSize.collTime = setTimeout(()=>{
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
let parentWidth = likeItemDom.value.parentElement.offsetWidth
|
let parentWidth = likeItemDom.value.parentElement.offsetWidth
|
||||||
collItemSize.elementWidth = collItemSize.elementWidth == -1?100:collItemSize.elementWidth
|
collItemSize.widthValue = collItemSize.widthValue == -1?100:collItemSize.widthValue
|
||||||
collItemSize.maxCollValue = parentWidth / 2
|
collItemSize.widthValue = collItemSize.widthValue > parentWidth?parentWidth:collItemSize.widthValue
|
||||||
collItemSize.collValue = Math.floor(parentWidth / collItemSize.elementWidth)
|
collItemSize.collValue = Math.floor(parentWidth / collItemSize.widthValue)
|
||||||
collItemSize.padding = Math.floor(parentWidth - (collItemSize.collValue * collItemSize.elementWidth))
|
collItemSize.padding = Math.floor(parentWidth - (collItemSize.collValue * collItemSize.widthValue))
|
||||||
let value = collItemSize.collValue
|
let value = collItemSize.collValue
|
||||||
|
|
||||||
collItemSize.itemStyle.width = (parentWidth - collItemSize.padding - (value * 10)) / value
|
collItemSize.itemStyle.width = (parentWidth - collItemSize.padding - (value * 10)) / value
|
||||||
@@ -508,6 +602,7 @@ export default defineComponent({
|
|||||||
const setLikeDislLike = (str:string,value:any)=>{
|
const setLikeDislLike = (str:string,value:any)=>{
|
||||||
posiitonData.value.likeSelectIndex = 0
|
posiitonData.value.likeSelectIndex = 0
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
|
console.log(posiitonData.value.likeElList)
|
||||||
if(str == 'like'){
|
if(str == 'like'){
|
||||||
let elArr = likeItemDom.value.children
|
let elArr = likeItemDom.value.children
|
||||||
posiitonData.value.likeElList.push({
|
posiitonData.value.likeElList.push({
|
||||||
@@ -517,8 +612,8 @@ export default defineComponent({
|
|||||||
userLikeSortId:value.userLikeSortId
|
userLikeSortId:value.userLikeSortId
|
||||||
});
|
});
|
||||||
let collItem = posiitonData.value.generateElList.filter((item:any)=>item.userLikeSortId == value.designItemId)[0]
|
let collItem = posiitonData.value.generateElList.filter((item:any)=>item.userLikeSortId == value.designItemId)[0]
|
||||||
|
console.log(collItem)
|
||||||
posiitonData.value.generateElList = posiitonData.value.generateElList.filter((item:any)=>item.userLikeSortId != value.designItemId)
|
posiitonData.value.generateElList = posiitonData.value.generateElList.filter((item:any)=>item.userLikeSortId != value.designItemId)
|
||||||
|
|
||||||
posiitonData.value.generateElList.forEach((item:any)=>{
|
posiitonData.value.generateElList.forEach((item:any)=>{
|
||||||
if(item.sort > collItem.sort){
|
if(item.sort > collItem.sort){
|
||||||
item.sort-=1
|
item.sort-=1
|
||||||
@@ -565,8 +660,178 @@ export default defineComponent({
|
|||||||
const openCollection = (str:string)=>{
|
const openCollection = (str:string)=>{
|
||||||
dataDom.collectionModal.init(str)
|
dataDom.collectionModal.init(str)
|
||||||
}
|
}
|
||||||
|
const openEditBtn = (id:number)=>{
|
||||||
|
designData.openEditBtnId = id
|
||||||
|
let removeEditBtnId = ()=>{
|
||||||
|
designData.openEditBtnId = -1
|
||||||
|
document.removeEventListener('click',removeEditBtnId)
|
||||||
|
}
|
||||||
|
document.addEventListener('click',removeEditBtnId)
|
||||||
|
|
||||||
|
}
|
||||||
|
let setEditDesignType = (arr:any,index:any,type:any,status:any,listType:string)=>{
|
||||||
|
arr = JSON.parse(JSON.stringify(arr))
|
||||||
|
let item = arr[index]
|
||||||
|
if(status == 'add'){
|
||||||
|
item.sourceUrl = item.designOutfitUrl || item.url
|
||||||
|
}else{
|
||||||
|
|
||||||
|
}
|
||||||
|
arr[index].resultType = type
|
||||||
|
// dataDom.editDesignType.isProductimg = isLike
|
||||||
|
dataDom.editDesignType.isProductimg = true
|
||||||
|
dataDom.editDesignType.init(arr,index,null,status,listType)
|
||||||
|
dataDom.editDesignType.isLike = false
|
||||||
|
dataDom.editDesignType.productimgRelightDirection = editDesignType.RelightDirection
|
||||||
|
dataDom.editDesignType.isComparison = true
|
||||||
|
}
|
||||||
|
const addGenerateImg = (data:any)=>{
|
||||||
|
if(!data.id)return
|
||||||
|
let obj = {
|
||||||
|
id:data.id,
|
||||||
|
designItemId:data.id,
|
||||||
|
// designItemId:data.elementId,
|
||||||
|
designOutfitId:'',
|
||||||
|
designOutfitUrl:data.url,
|
||||||
|
sourceUrl:data.sourceUrl,
|
||||||
|
resultType:data.resultType,
|
||||||
|
elementId:data.elementId,
|
||||||
|
elementType:data.elementType,
|
||||||
|
sort:data.sort,
|
||||||
|
}
|
||||||
|
let list = []
|
||||||
|
if(data.listType == 'disLike'){
|
||||||
|
list = designCollectionList.value
|
||||||
|
}else{
|
||||||
|
list = likeDesignCollectionList.value
|
||||||
|
}
|
||||||
|
if(data.isIndex == -1){
|
||||||
|
if(data.listType == 'like'){
|
||||||
|
likeDesignCollection(obj,-1,data.resultType)
|
||||||
|
}else{
|
||||||
|
list.unshift(obj)
|
||||||
|
nextTick().then(()=>{
|
||||||
|
setDesignItemStyle()
|
||||||
|
moveItem('disLike')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
// collectionLikeUpdate
|
||||||
|
// Https
|
||||||
|
if(data.listType == 'like'){
|
||||||
|
let value = {
|
||||||
|
"oldRelationId": data.oldId,
|
||||||
|
"relationId": data.id,
|
||||||
|
"relationType": data.resultType,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.collectionLikeUpdate,value).then((rv:any)=>{
|
||||||
|
if(rv){
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
list[data.isIndex].designOutfitUrl = obj.designOutfitUrl
|
||||||
|
list[data.isIndex].resultType = obj.resultType
|
||||||
|
list[data.isIndex].id = obj.id
|
||||||
|
list[data.isIndex].designItemId = obj.designItemId
|
||||||
|
list[data.isIndex].sourceUrl = obj.sourceUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const setNoDesignLike = (design:any,index:any,type:any,str:string) => {
|
||||||
|
let url
|
||||||
|
let data = {
|
||||||
|
toProductImageResultId:[(design.designItemId || design.id)],
|
||||||
|
projectId: store.state.Workspace.probjects.id,
|
||||||
|
}
|
||||||
|
if(type == 'ToProductImage' || type == 'Relight'){
|
||||||
|
if(str == 'like'){
|
||||||
|
url = Https.httpUrls.productImageLike
|
||||||
|
}else{
|
||||||
|
url = Https.httpUrls.productImageUnLike
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(str == 'like'){
|
||||||
|
url = Https.httpUrls.productImageLike
|
||||||
|
}else{
|
||||||
|
url = Https.httpUrls.productImageUnLike
|
||||||
|
}
|
||||||
|
}
|
||||||
|
designData.likeLoading = true;
|
||||||
|
Https.axiosPost(url, data).then(
|
||||||
|
(rv) => {
|
||||||
|
if(str == 'like'){
|
||||||
|
let value:any = {
|
||||||
|
...design,
|
||||||
|
sort:likeDesignCollectionList.value.length + 1,
|
||||||
|
}
|
||||||
|
design.groupDetailId = rv.groupDetailId;
|
||||||
|
store.commit(
|
||||||
|
"addLikeDesignCollectionList",
|
||||||
|
value
|
||||||
|
);
|
||||||
|
setLikeDislLike('like',value)
|
||||||
|
if(index != -1)store.commit("deleteDesignCollectionList", index);
|
||||||
|
}else{
|
||||||
|
if(index != -1)store.commit("deleteLikeDesignCollectionList", index);
|
||||||
|
store.commit("addDesignCollectionList", [design]);
|
||||||
|
likeDesignCollectionList.value.forEach((item:any)=>{
|
||||||
|
if(item.sort > design.sort){
|
||||||
|
item.sort-=1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
designData.likeLoading = false;
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
designData.likeLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let likeDesignCollection = (design:any,index:any,type:any) => {
|
||||||
|
if (designData.likeLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(type != 'Design'){
|
||||||
|
setNoDesignLike(design,index,type,'like')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
designItemId: design.designItemId,
|
||||||
|
userGroupId: store.state.HomeStoreModule.userGroupId,
|
||||||
|
projectId: store.state.Workspace.probjects.id,
|
||||||
|
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
designPythonOutfitId:design.designOutfitId?design.designOutfitId:design.designPythonOutfitId
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
designData.likeLoading = true;
|
||||||
|
Https.axiosPost(Https.httpUrls.designLike, data)
|
||||||
|
.then((rv: any) => {
|
||||||
|
if (rv) {
|
||||||
|
let value:any = {
|
||||||
|
...design,
|
||||||
|
id:rv.userLikeId,
|
||||||
|
groupDetailId:rv.userLikeId,
|
||||||
|
userLikeSortId:rv.userLikeSortId,
|
||||||
|
userLikeGroupId:rv.userGroupId,
|
||||||
|
sort:rv.sort,
|
||||||
|
}
|
||||||
|
store.commit("setUserGroupId", rv.userGroupId);
|
||||||
|
design.groupDetailId = rv.groupDetailId;
|
||||||
|
store.commit(
|
||||||
|
"addLikeDesignCollectionList",
|
||||||
|
value
|
||||||
|
);
|
||||||
|
setLikeDislLike('like',value)
|
||||||
|
if(index != -1)store.commit("deleteDesignCollectionList", index);
|
||||||
|
}
|
||||||
|
designData.likeLoading = false;
|
||||||
|
})
|
||||||
|
.catch((rv) => {
|
||||||
|
designData.likeLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
store,
|
store,
|
||||||
|
...toRefs(editDesignType),
|
||||||
likeDesignCollectionList,
|
likeDesignCollectionList,
|
||||||
deleteDesignCollectionList,
|
deleteDesignCollectionList,
|
||||||
designCollectionList,
|
designCollectionList,
|
||||||
@@ -592,6 +857,7 @@ export default defineComponent({
|
|||||||
setDesignItemStyle,
|
setDesignItemStyle,
|
||||||
showDesignMark,
|
showDesignMark,
|
||||||
...toRefs(collItemSize),
|
...toRefs(collItemSize),
|
||||||
|
...toRefs(designData),
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
likeItemDom,
|
likeItemDom,
|
||||||
collItemDom,
|
collItemDom,
|
||||||
@@ -609,6 +875,10 @@ export default defineComponent({
|
|||||||
posiitonData,
|
posiitonData,
|
||||||
moveItem,
|
moveItem,
|
||||||
openCollection,
|
openCollection,
|
||||||
|
setEditDesignType,
|
||||||
|
openEditBtn,
|
||||||
|
addGenerateImg,
|
||||||
|
setNoDesignLike,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -626,7 +896,6 @@ export default defineComponent({
|
|||||||
designProgress: 0,
|
designProgress: 0,
|
||||||
startDesignType: "design", //设计类型 design 和 resdesign
|
startDesignType: "design", //设计类型 design 和 resdesign
|
||||||
disLikeLoading: false, //不喜欢防抖
|
disLikeLoading: false, //不喜欢防抖
|
||||||
likeLoading: false, //喜欢防抖
|
|
||||||
dragIdx:0,
|
dragIdx:0,
|
||||||
designRandom:'',
|
designRandom:'',
|
||||||
detailDestroy:false,//销毁detail
|
detailDestroy:false,//销毁detail
|
||||||
@@ -996,7 +1265,15 @@ export default defineComponent({
|
|||||||
deleteDesignCollection(list:any,index:any){
|
deleteDesignCollection(list:any,index:any){
|
||||||
list.splice(index,1)
|
list.splice(index,1)
|
||||||
},
|
},
|
||||||
likeDesignCollection(design: any, index: any) {
|
|
||||||
|
likeDesignCollection(design: any, index: any,type:any) {
|
||||||
|
if (this.likeLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(type != 'Design'){
|
||||||
|
this.setNoDesignLike(design,index,type,'like')
|
||||||
|
return
|
||||||
|
}
|
||||||
let data = {
|
let data = {
|
||||||
designItemId: design.designItemId,
|
designItemId: design.designItemId,
|
||||||
userGroupId: this.store.state.HomeStoreModule.userGroupId,
|
userGroupId: this.store.state.HomeStoreModule.userGroupId,
|
||||||
@@ -1004,9 +1281,7 @@ export default defineComponent({
|
|||||||
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
designPythonOutfitId:design.designOutfitId?design.designOutfitId:design.designPythonOutfitId
|
designPythonOutfitId:design.designOutfitId?design.designOutfitId:design.designPythonOutfitId
|
||||||
};
|
};
|
||||||
if (this.likeLoading) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.likeLoading = true;
|
this.likeLoading = true;
|
||||||
Https.axiosPost(Https.httpUrls.designLike, data)
|
Https.axiosPost(Https.httpUrls.designLike, data)
|
||||||
@@ -1027,15 +1302,12 @@ export default defineComponent({
|
|||||||
value
|
value
|
||||||
);
|
);
|
||||||
this.setLikeDislLike('like',value)
|
this.setLikeDislLike('like',value)
|
||||||
this.store.commit("deleteDesignCollectionList", index);
|
if(index != -1)this.store.commit("deleteDesignCollectionList", index);
|
||||||
if (this.startDesignType === "resDesign") {
|
if (this.startDesignType === "resDesign") {
|
||||||
this.getHistoryChoose(this.userGroupId, "like");
|
this.getHistoryChoose(this.userGroupId, "like");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.likeLoading = false;
|
this.likeLoading = false;
|
||||||
if(this.driver__.driver){
|
|
||||||
driverObj__.moveNext();
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.catch((rv) => {
|
.catch((rv) => {
|
||||||
this.likeLoading = false;
|
this.likeLoading = false;
|
||||||
@@ -1043,13 +1315,18 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
|
|
||||||
//不喜欢设计
|
//不喜欢设计
|
||||||
dislikeDesignCollection(design: any, index: any) {
|
dislikeDesignCollection(design:any,type:string, index: any) {
|
||||||
let data = {
|
let data = {
|
||||||
designId: design.designId || this.designId,
|
designId: design.designId || this.designId,
|
||||||
designPythonOutfitId:design.designOutfitId,
|
designPythonOutfitId:design.designOutfitId,
|
||||||
groupDetailId: design.groupDetailId || design.id,
|
groupDetailId: design.groupDetailId || design.id,
|
||||||
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
};
|
};
|
||||||
|
console.log(type)
|
||||||
|
if(type != 'Design'){
|
||||||
|
this.setNoDesignLike(design,index,type,'disLike')
|
||||||
|
return
|
||||||
|
}
|
||||||
if (this.disLikeLoading) {
|
if (this.disLikeLoading) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1237,20 +1514,6 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
return colorList;
|
return colorList;
|
||||||
},
|
},
|
||||||
//点击下拉图标出现操作
|
|
||||||
changeShowOperateContent() {
|
|
||||||
this.isShowOperate = !this.isShowOperate;
|
|
||||||
document.addEventListener(
|
|
||||||
"click",
|
|
||||||
this.closeShowOperateContent,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
},
|
|
||||||
//关闭下拉图标
|
|
||||||
closeShowOperateContent() {
|
|
||||||
this.isShowOperate = false;
|
|
||||||
document.removeEventListener("click", this.closeShowOperateContent);
|
|
||||||
},
|
|
||||||
|
|
||||||
//销毁图片详情
|
//销毁图片详情
|
||||||
setDetailDestroy() {
|
setDetailDestroy() {
|
||||||
@@ -1265,7 +1528,12 @@ export default defineComponent({
|
|||||||
collectionList: any,
|
collectionList: any,
|
||||||
type: string
|
type: string
|
||||||
) {
|
) {
|
||||||
|
// if()
|
||||||
if(this.isMove)return
|
if(this.isMove)return
|
||||||
|
if(design.resultType != "Design"){
|
||||||
|
this.setEditDesignType(collectionList,index,design.resultType,'edit',type)
|
||||||
|
return
|
||||||
|
}
|
||||||
design.designOutfitId = design.designPythonOutfitId?design.designPythonOutfitId:design.designOutfitId
|
design.designOutfitId = design.designPythonOutfitId?design.designPythonOutfitId:design.designOutfitId
|
||||||
let data = {
|
let data = {
|
||||||
design: design,
|
design: design,
|
||||||
@@ -1644,14 +1912,9 @@ export default defineComponent({
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
transition: top,left .3s;
|
transition: top,left .3s;
|
||||||
&:hover .icon_like,&:hover .icon_delete,&:hover .Dustbin {
|
&:hover .btn{
|
||||||
display: block;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
// &:nth-child(4n) {
|
|
||||||
// margin-right: 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
.content_img_flex {
|
.content_img_flex {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -1660,6 +1923,7 @@ export default defineComponent({
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 2rem;
|
border-radius: 2rem;
|
||||||
border: 2px solid #E0E0E0;
|
border: 2px solid #E0E0E0;
|
||||||
|
overflow: hidden;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
&.active{
|
&.active{
|
||||||
@@ -1677,27 +1941,61 @@ export default defineComponent({
|
|||||||
// max-height: 100%;
|
// max-height: 100%;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
.Dustbin{
|
|
||||||
position: absolute;
|
.btn{
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%,-50%);
|
|
||||||
cursor: pointer;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 4rem;
|
|
||||||
font-size: 1.8rem;
|
|
||||||
padding: 1rem 1.5rem;
|
|
||||||
background: rgba(0, 0, 0, 0.7);
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.icon_like,.icon_delete {
|
|
||||||
font-size: 2.4rem;
|
|
||||||
top: 1rem;
|
top: 1rem;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
|
display: flex;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
cursor: pointer;
|
flex-direction: column;
|
||||||
display: none;
|
align-items: center;
|
||||||
|
> i{
|
||||||
|
cursor: pointer;
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
> .btnOpen{
|
||||||
|
position: absolute;
|
||||||
|
width: max-content;
|
||||||
|
left: 3rem;
|
||||||
|
top: 3rem;
|
||||||
|
transform: translateX(-100%);
|
||||||
|
background: #e4e4e7;
|
||||||
|
padding: 1.2rem;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
display: none;
|
||||||
|
z-index: 99;
|
||||||
|
&.active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
> .item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: .8rem;
|
||||||
|
padding: .8rem;
|
||||||
|
border-radius: .8rem;
|
||||||
|
cursor: pointer;
|
||||||
|
&:last-child{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
> .text{
|
||||||
|
font-size: 1.2rem;
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
&:hover{
|
||||||
|
background: #efeff1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.icon_like,.icon_delete {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon_delete{
|
.icon_delete{
|
||||||
top: 5rem;
|
top: 5rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select> -->
|
</a-select> -->
|
||||||
@@ -1356,10 +1356,10 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ant-slider-track{
|
.ant-slider-track{
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
.ant-slider-handle{
|
.ant-slider-handle{
|
||||||
border-color: #343579;
|
border-color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.placement_remove_point_block{
|
.placement_remove_point_block{
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<chat ref="chatDom" @chatChange="chatChange" v-show="openType == 'history'"></chat>
|
<chat ref="chatDom" @chatChange="chatChange" v-show="openType == 'history'"></chat>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,ref,watch,nextTick,provide,toRefs, reactive, onMounted} from 'vue'
|
import { defineComponent,computed,inject,watch,nextTick,provide,toRefs, reactive, onMounted} from 'vue'
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
@@ -31,9 +31,6 @@ export default defineComponent({
|
|||||||
components:{
|
components:{
|
||||||
design,newPorject,chat
|
design,newPorject,chat
|
||||||
},
|
},
|
||||||
props:{
|
|
||||||
settingGetHistory:{type:Function,default:()=>{}},
|
|
||||||
},
|
|
||||||
emits:['setTask','newProject'],
|
emits:['setTask','newProject'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
@@ -45,6 +42,7 @@ export default defineComponent({
|
|||||||
selectObject:computed(()=>store.state.Workspace.probjects) as any,//选择的项目
|
selectObject:computed(()=>store.state.Workspace.probjects) as any,//选择的项目
|
||||||
chatData:null as any,
|
chatData:null as any,
|
||||||
})
|
})
|
||||||
|
let settingGetHistory:any = inject('settingGetHistory')
|
||||||
const setIsShowMark = (boolean:boolean)=>{
|
const setIsShowMark = (boolean:boolean)=>{
|
||||||
data.isShowMark = boolean
|
data.isShowMark = boolean
|
||||||
}
|
}
|
||||||
@@ -55,7 +53,7 @@ export default defineComponent({
|
|||||||
chatDom:null as any,
|
chatDom:null as any,
|
||||||
})
|
})
|
||||||
watch(() => route.query,
|
watch(() => route.query,
|
||||||
(query, oldQuery) => {
|
(query:any, oldQuery:any) => {
|
||||||
data.routeQuery = query
|
data.routeQuery = query
|
||||||
const key = Object.keys(query)?.[0]
|
const key = Object.keys(query)?.[0]
|
||||||
if(key){
|
if(key){
|
||||||
@@ -63,14 +61,20 @@ export default defineComponent({
|
|||||||
}else{
|
}else{
|
||||||
data.openType = ''
|
data.openType = ''
|
||||||
}
|
}
|
||||||
|
// if((query.history || query.id) != (oldQuery.history || oldQuery.id)){
|
||||||
|
// }
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
if(query.id || query.history){
|
if(query.history || query.id){
|
||||||
data.isShowMark = true
|
data.isShowMark = true
|
||||||
|
createData()
|
||||||
if(query.type == 'Works'){
|
if(query.type == 'Works'){
|
||||||
getWorks(query.id || query.history)
|
getWorks(query.id || query.history)
|
||||||
}else{
|
}else{
|
||||||
|
// setProjectData({id:query.id,process:'toProduct'})
|
||||||
getHistory(query.id || query.history)
|
getHistory(query.id || query.history)
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
createData()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -78,6 +82,7 @@ export default defineComponent({
|
|||||||
{ immediate: true } // 立即触发一次以处理初始参数
|
{ immediate: true } // 立即触发一次以处理初始参数
|
||||||
);
|
);
|
||||||
const createData = ()=>{
|
const createData = ()=>{
|
||||||
|
store.commit("createProbject");
|
||||||
store.commit("clearAllData");
|
store.commit("clearAllData");
|
||||||
store.commit("clearAllCollection");
|
store.commit("clearAllCollection");
|
||||||
store.commit("setAllBoardDataChoose",{});
|
store.commit("setAllBoardDataChoose",{});
|
||||||
@@ -112,7 +117,8 @@ export default defineComponent({
|
|||||||
id,
|
id,
|
||||||
}
|
}
|
||||||
if(!id)return
|
if(!id)return
|
||||||
createData()
|
data.isShowMark = false
|
||||||
|
|
||||||
Https.axiosPost(Https.httpUrls.selectHistoryProject,value).then((rv: any) => {
|
Https.axiosPost(Https.httpUrls.selectHistoryProject,value).then((rv: any) => {
|
||||||
setProjectData(rv)
|
setProjectData(rv)
|
||||||
}).catch((res)=>{
|
}).catch((res)=>{
|
||||||
@@ -128,26 +134,26 @@ export default defineComponent({
|
|||||||
id:rv.id,
|
id:rv.id,
|
||||||
type:rv.process == 'SERIES_DESIGN'?'seriesDesign':'singleProductDesign',
|
type:rv.process == 'SERIES_DESIGN'?'seriesDesign':'singleProductDesign',
|
||||||
httpType:rv.process,//项目类型
|
httpType:rv.process,//项目类型
|
||||||
ageGroup:rv.workspaceVO.ageGroup,
|
ageGroup:rv.workspaceVO?.ageGroup,
|
||||||
style:rv.workspaceVO.style,
|
style:rv.workspaceVO?.style,
|
||||||
styleId:rv.workspaceVO.styleId,
|
styleId:rv.workspaceVO?.styleId,
|
||||||
styleName:rv.workspaceVO.styleName,
|
styleName:rv.workspaceVO?.styleName,
|
||||||
sex:rv.workspaceVO.sex,
|
sex:rv.workspaceVO?.sex,
|
||||||
userBrandDnaImg:rv.workspaceVO.userBrandDnaImg,
|
userBrandDnaImg:rv.workspaceVO?.userBrandDnaImg,
|
||||||
userBrandDnaName:rv.workspaceVO.userBrandDnaName,
|
userBrandDnaName:rv.workspaceVO?.userBrandDnaName,
|
||||||
brandPercentage:rv.workspaceVO.brandPercentage,
|
brandPercentage:rv.workspaceVO?.brandPercentage,
|
||||||
userBrandDna:rv.workspaceVO.userBrandDna,
|
userBrandDna:rv.workspaceVO?.userBrandDna,
|
||||||
systemDesignerPercentage:rv.workspaceVO.systemDesignerPercentage,
|
systemDesignerPercentage:rv.workspaceVO?.systemDesignerPercentage,
|
||||||
position:{
|
position:{
|
||||||
label:rv.workspaceVO.positionEnum.value,
|
label:rv.workspaceVO?.positionEnum?.value,
|
||||||
value:rv.workspaceVO.positionEnum.name
|
value:rv.workspaceVO?.positionEnum?.name
|
||||||
},
|
},
|
||||||
positionList:[],
|
positionList:[],
|
||||||
publishData:{
|
publishData:{
|
||||||
id:rv.portfolioDTO.id?rv.portfolioDTO.id:'',
|
id:rv.portfolioDTO?.id?rv.portfolioDTO?.id:'',
|
||||||
portfolioDes:rv.portfolioDTO.portfolioDes?rv.portfolioDTO.portfolioDes:'',
|
portfolioDes:rv.portfolioDTO?.portfolioDes?rv.portfolioDTO?.portfolioDes:'',
|
||||||
portfolioName:rv.portfolioDTO.portfolioName?rv.portfolioDTO.portfolioName:'',
|
portfolioName:rv.portfolioDTO?.portfolioName?rv.portfolioDTO?.portfolioName:'',
|
||||||
tagsDTO:rv.portfolioDTO.tagsDTO?rv.portfolioDTO.tagsDTO:[],
|
tagsDTO:rv.portfolioDTO?.tagsDTO?rv.portfolioDTO?.tagsDTO:[],
|
||||||
},
|
},
|
||||||
model:[]
|
model:[]
|
||||||
}
|
}
|
||||||
@@ -167,7 +173,11 @@ export default defineComponent({
|
|||||||
// dataDom.workflow.isUpdataPorject = true
|
// dataDom.workflow.isUpdataPorject = true
|
||||||
// })
|
// })
|
||||||
setChatData()
|
setChatData()
|
||||||
getCollection()
|
if(route.name == 'tools'){
|
||||||
|
getCollection('tools')
|
||||||
|
}else{
|
||||||
|
getCollection('design')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const setChatData = ()=>{
|
const setChatData = ()=>{
|
||||||
if(!data.chatData)return
|
if(!data.chatData)return
|
||||||
@@ -193,10 +203,16 @@ export default defineComponent({
|
|||||||
// })
|
// })
|
||||||
// })
|
// })
|
||||||
// }
|
// }
|
||||||
const getCollection = ()=>{
|
const getCollection = (type:string)=>{
|
||||||
|
let moduleList = [] as any
|
||||||
|
if(type == 'design'){
|
||||||
|
moduleList = ["moodBoard", "printBoard", "colorBoard", "sketchBoard",'design','mannequin']
|
||||||
|
}else{
|
||||||
|
moduleList = ["printBoard", "colorBoard", "sketchBoard",'design','toProduct','relight','poseTransfer','mannequin',"patternMaking3D",'deReconstruction']
|
||||||
|
}
|
||||||
let value:any = {
|
let value:any = {
|
||||||
"id":data.selectObject.id,
|
"id":data.selectObject.id,
|
||||||
"moduleList":["moodBoard", "printBoard", "colorBoard", "sketchBoard",'design','toProduct','relight','poseTransfer','mannequin']
|
"moduleList":moduleList,
|
||||||
}
|
}
|
||||||
Https.axiosPost(Https.httpUrls.getModuleContent,value).then(async (rv)=>{
|
Https.axiosPost(Https.httpUrls.getModuleContent,value).then(async (rv)=>{
|
||||||
historyChooseData(rv)//设置历史数据
|
historyChooseData(rv)//设置历史数据
|
||||||
@@ -214,7 +230,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard']
|
let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard']
|
||||||
// let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard','toProduct','relight','poseTransfer','mannequin']
|
// let allBoardData = ['sketchBoard','moodBoard','printBoard','colorBoard','toProduct','relight','poseTransfer','mannequin']
|
||||||
let canvasData = ['canvas']
|
let canvasData = ['canvas','deReconstruction']
|
||||||
for (let index = 0; index < canvasData.length; index++) {
|
for (let index = 0; index < canvasData.length; index++) {
|
||||||
const item = canvasData[index];
|
const item = canvasData[index];
|
||||||
await getCanvasData(item)
|
await getCanvasData(item)
|
||||||
@@ -235,7 +251,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
data.isShowMark = false
|
data.isShowMark = false
|
||||||
dataDom.design.openSetData()
|
if(type == 'design'){
|
||||||
|
dataDom.design.openSetData()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const getCanvasData = (str:any)=>{
|
const getCanvasData = (str:any)=>{
|
||||||
@@ -380,11 +398,11 @@ export default defineComponent({
|
|||||||
if(value.type == '[DESIGN_SIGNAL]' && dataDom.design){
|
if(value.type == '[DESIGN_SIGNAL]' && dataDom.design){
|
||||||
dataDom.design.designNewCollection()
|
dataDom.design.designNewCollection()
|
||||||
}else{
|
}else{
|
||||||
getCollection()
|
getCollection('design')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const newProject = (value:any)=>{
|
const newProject = (value:any)=>{
|
||||||
props.settingGetHistory()
|
settingGetHistory()
|
||||||
router.push(`home?history=${value.id}`)
|
router.push(`home?history=${value.id}`)
|
||||||
data.chatData = value
|
data.chatData = value
|
||||||
|
|
||||||
|
|||||||
@@ -98,9 +98,9 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
chatContent:'',
|
chatContent:'',
|
||||||
hintList:[
|
hintList:[
|
||||||
'描述1',
|
'设计一套田园风衣服',
|
||||||
'描述3',
|
'设计一套夏日风衣服',
|
||||||
'描述2',
|
'设计一套未来风格的衣服',
|
||||||
],
|
],
|
||||||
enableThinking:false,//深度思考
|
enableThinking:false,//深度思考
|
||||||
uploadFile:null as any,
|
uploadFile:null as any,
|
||||||
@@ -125,7 +125,7 @@ export default defineComponent({
|
|||||||
e.target.style.height = `${e.target.scrollHeight}px`;
|
e.target.style.height = `${e.target.scrollHeight}px`;
|
||||||
}
|
}
|
||||||
const addChatContent = (item:any)=>{
|
const addChatContent = (item:any)=>{
|
||||||
if((data.textarea.value += item.length) > 10000)return
|
if((data.textarea.value?.length + item.length) > 10000)return
|
||||||
data.chatContent += item
|
data.chatContent += item
|
||||||
data.textarea.value += item
|
data.textarea.value += item
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,26 +39,20 @@
|
|||||||
<div class="gallery_btn" style="line-height: 5rem;" @click="setStyle">{{ $t('Habit.Select') }}</div>
|
<div class="gallery_btn" style="line-height: 5rem;" @click="setStyle">{{ $t('Habit.Select') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="style marginBottom brand">
|
<div class="style marginBottom brand">
|
||||||
<div class="text">Bran DNA</div>
|
<div class="text">Brand DNA</div>
|
||||||
<div class="text"><img v-show="selectObject.userBrandDna" :src="selectObject.userBrandDnaImg"></div>
|
<div class="text"><img v-show="selectObject.userBrandDna" :src="selectObject.userBrandDnaImg"></div>
|
||||||
<!-- <div class="text"><img v-show="selectObject.userBrandDna" :src="selectObject.userBrandDnaImg">{{ selectObject.userBrandDnaName }}</div> -->
|
<!-- <div class="text"><img v-show="selectObject.userBrandDna" :src="selectObject.userBrandDnaImg">{{ selectObject.userBrandDnaName }}</div> -->
|
||||||
<div class="gallery_btn" style="line-height: 5rem;" @click="setBrandDNA">{{ $t('Habit.Select') }}</div>
|
<div class="gallery_btn" style="line-height: 5rem;" @click="setBrandDNA">{{ $t('Habit.Select') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="systemDesigner marginBottom" v-if="selectObject.userBrandDna">
|
<div class="brandDNAStrenght marginBottom" v-if="selectObject.userBrandDna">
|
||||||
|
<div class="text">
|
||||||
|
Brand DNA Strength
|
||||||
|
</div>
|
||||||
<a-slider class="system_silder"
|
<a-slider class="system_silder"
|
||||||
v-model:value="selectObject.brandPercentage"
|
v-model:value="selectObject.brandPercentage"
|
||||||
:tip-formatter="formatterBrandDNA"
|
:tip-formatter="formatterBrandDNA"
|
||||||
:tooltipVisible="false"
|
|
||||||
>
|
>
|
||||||
</a-slider>
|
</a-slider>
|
||||||
<div class="text">
|
|
||||||
<div class="left">
|
|
||||||
Bran DNA<span>({{systemBrandDNA.system}}%)</span>
|
|
||||||
</div>
|
|
||||||
<div class="right">
|
|
||||||
System<span>({{systemBrandDNA.brandDNA}}%)</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="systemDesigner marginBottom" v-if="show.systemDesigner">
|
<div class="systemDesigner marginBottom" v-if="show.systemDesigner">
|
||||||
<a-slider class="system_silder"
|
<a-slider class="system_silder"
|
||||||
@@ -150,10 +144,6 @@ export default defineComponent({
|
|||||||
system:0,
|
system:0,
|
||||||
designer:0,
|
designer:0,
|
||||||
},
|
},
|
||||||
systemBrandDNA:{
|
|
||||||
system:0,
|
|
||||||
brandDNA:0,
|
|
||||||
},
|
|
||||||
setIsShowMark:inject('setIsShowMark') as any,
|
setIsShowMark:inject('setIsShowMark') as any,
|
||||||
})
|
})
|
||||||
// watch(()=>data.selectObject_,(newVal)=>{
|
// watch(()=>data.selectObject_,(newVal)=>{
|
||||||
@@ -193,10 +183,7 @@ export default defineComponent({
|
|||||||
return `${num}%`;
|
return `${num}%`;
|
||||||
}
|
}
|
||||||
const formatterBrandDNA = (value: number)=>{
|
const formatterBrandDNA = (value: number)=>{
|
||||||
data.systemBrandDNA.system = 100 - value
|
return `${value}%`;
|
||||||
data.systemBrandDNA.brandDNA = value
|
|
||||||
let num = Math.abs((value-50)*2)
|
|
||||||
return `${num}%`;
|
|
||||||
}
|
}
|
||||||
const complete = ()=>{
|
const complete = ()=>{
|
||||||
if(!data.selectObject.name){
|
if(!data.selectObject.name){
|
||||||
@@ -223,28 +210,13 @@ export default defineComponent({
|
|||||||
Https.axiosPost(Https.httpUrls.projectSaveOrUpdate,value).then((rv)=>{
|
Https.axiosPost(Https.httpUrls.projectSaveOrUpdate,value).then((rv)=>{
|
||||||
if(rv){
|
if(rv){
|
||||||
data.selectObject.id = rv.id
|
data.selectObject.id = rv.id
|
||||||
let model:any = {}
|
// let position = []
|
||||||
let position = []
|
// if(data.selectObject.sex == "Female"){
|
||||||
if(data.selectObject.sex == "Female"){
|
// position = store.state.UserHabit.FemalePosition
|
||||||
// if(rv.workspaceVO.sex == "Female"){
|
// }else{
|
||||||
model = {
|
// position = store.state.UserHabit.MalePosition
|
||||||
id:rv.workspaceVO.mannequinFemaleId,
|
// }
|
||||||
type:rv.workspaceVO.mannequinFemaleType,
|
// data.selectObject.positionList = position
|
||||||
url:rv.workspaceVO.femalePresignedUrl,
|
|
||||||
}
|
|
||||||
position = store.state.UserHabit.FemalePosition
|
|
||||||
}else{
|
|
||||||
model = {
|
|
||||||
id:rv.workspaceVO.mannequinMaleId,
|
|
||||||
type:rv.workspaceVO.mannequinMaleType,
|
|
||||||
url:rv.workspaceVO.malePresignedUrl,
|
|
||||||
}
|
|
||||||
position = store.state.UserHabit.MalePosition
|
|
||||||
}
|
|
||||||
// model.url = rv.workspaceVO.malePresignedUrl
|
|
||||||
data.selectObject.model = model
|
|
||||||
data.selectObject.positionList = position
|
|
||||||
// store.commit('setProbject',data.selectObject)
|
|
||||||
emit('setProject',data.selectObject)
|
emit('setProject',data.selectObject)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -392,6 +364,18 @@ export default defineComponent({
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
> .brandDNAStrenght{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
> .text{
|
||||||
|
margin-right: 3rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
> .system_silder{
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
> .position{
|
> .position{
|
||||||
> .text{
|
> .text{
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
|
|||||||
@@ -2,8 +2,29 @@
|
|||||||
<div class="patternMaking3D">
|
<div class="patternMaking3D">
|
||||||
<div class="selectModel">
|
<div class="selectModel">
|
||||||
<div class="heard selectList">
|
<div class="heard selectList">
|
||||||
<div :class="{active:libraryOrModel == 'model'}" @click="setLibraryOrModel('model')">Clothing</div>
|
<div class="title" :class="{active:libraryOrModel == 'model'}" @click="setLibraryOrModel('model')">Clothing</div>
|
||||||
<div :class="{active:libraryOrModel == 'print'}" @click="setLibraryOrModel('print')">Print</div>
|
<div class="title" :class="{active:libraryOrModel == 'print'}" @click="setLibraryOrModel('print')">Print</div>
|
||||||
|
<div class="generalModel_state">
|
||||||
|
<div class="generalModel_state_item smail">
|
||||||
|
<a-select
|
||||||
|
ref="select"
|
||||||
|
v-model:value="sex"
|
||||||
|
:options="sexList"
|
||||||
|
size="large"
|
||||||
|
:fieldNames="{ label: 'name', value: 'value' }"
|
||||||
|
style="width:20rem"
|
||||||
|
@change="sexChange"
|
||||||
|
>
|
||||||
|
<template #suffixIcon
|
||||||
|
><span
|
||||||
|
class="icon iconfont icon-xiala"
|
||||||
|
style="color: #000"
|
||||||
|
></span
|
||||||
|
></template>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="list" v-show="libraryOrModel == 'model'" v-if="maskShow">
|
<div class="list" v-show="libraryOrModel == 'model'" v-if="maskShow">
|
||||||
<div v-for="item in modelList" class="modelItem" :class="{active:item.id == selectModel.id}" @click="setSelectModel(item)">
|
<div v-for="item in modelList" class="modelItem" :class="{active:item.id == selectModel.id}" @click="setSelectModel(item)">
|
||||||
@@ -86,6 +107,8 @@ export default defineComponent({
|
|||||||
// }),
|
// }),
|
||||||
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
selectObject:computed(()=>store.state.Workspace.probjects),//选择的项目
|
||||||
modelList:[] as any,
|
modelList:[] as any,
|
||||||
|
sex:'Female',
|
||||||
|
sexList:computed(()=>store.state.UserHabit.sex.value),
|
||||||
printList:computed(()=>store.state.UploadFilesModule.allBoardData.printboardFiles),
|
printList:computed(()=>store.state.UploadFilesModule.allBoardData.printboardFiles),
|
||||||
isShowMark:false,
|
isShowMark:false,
|
||||||
isNoData:false,
|
isNoData:false,
|
||||||
@@ -97,12 +120,12 @@ export default defineComponent({
|
|||||||
maskShow:false,
|
maskShow:false,
|
||||||
libraryOrModel:'model'
|
libraryOrModel:'model'
|
||||||
})
|
})
|
||||||
watch(()=>data.selectObject.sex,(newVal)=>{
|
const sexChange = ()=>{
|
||||||
data.modelList = []
|
data.modelList = []
|
||||||
data.currentPage = 0,
|
data.currentPage = 0,
|
||||||
data.isNoData = false
|
data.isNoData = false
|
||||||
data.isShowMark = false
|
data.isShowMark = false
|
||||||
})
|
}
|
||||||
const setSelectModel = (item:any)=>{
|
const setSelectModel = (item:any)=>{
|
||||||
data.isShowMark = true
|
data.isShowMark = true
|
||||||
const value = {
|
const value = {
|
||||||
@@ -143,7 +166,7 @@ export default defineComponent({
|
|||||||
let value = {
|
let value = {
|
||||||
page: data.currentPage,
|
page: data.currentPage,
|
||||||
size:data.pageSize,
|
size:data.pageSize,
|
||||||
sex:data.selectObject.sex,
|
sex:data.sex,
|
||||||
}
|
}
|
||||||
data.isShowLoading = true
|
data.isShowLoading = true
|
||||||
Https.axiosPost(Https.httpUrls.threeDPage,value).then(
|
Https.axiosPost(Https.httpUrls.threeDPage,value).then(
|
||||||
@@ -177,7 +200,7 @@ export default defineComponent({
|
|||||||
dataDom.download.openDown(data.selectModel.id)
|
dataDom.download.openDown(data.selectModel.id)
|
||||||
}
|
}
|
||||||
const setLibraryOrModel = (str:any)=>{
|
const setLibraryOrModel = (str:any)=>{
|
||||||
if(str == 'print' && data.selectModel.id == -1)return
|
// if(str == 'print' && data.selectModel.id == -1)return
|
||||||
data.libraryOrModel = str
|
data.libraryOrModel = str
|
||||||
}
|
}
|
||||||
const setMaterial = (item:any)=>{
|
const setMaterial = (item:any)=>{
|
||||||
@@ -191,6 +214,7 @@ export default defineComponent({
|
|||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
|
sexChange,
|
||||||
setSelectModel,
|
setSelectModel,
|
||||||
openSetData,
|
openSetData,
|
||||||
getModelList,
|
getModelList,
|
||||||
@@ -246,14 +270,19 @@ export default defineComponent({
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
align-items: center;
|
||||||
&.selectList{
|
&.selectList{
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
> div{
|
> .title{
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-right: 2rem;
|
margin-right: 2rem;
|
||||||
margin-bottom: 2rem;
|
cursor: pointer;
|
||||||
|
// margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
> div::before{
|
> .generalModel_state{
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
> .title::before{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
<div class="element">
|
<div class="element">
|
||||||
<div class="title"><i class="fi fi-rs-comments"></i><span>Selected Video</span></div>
|
<div class="title"><i class="fi fi-rs-comments"></i><span>Selected Video</span></div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<generalDrag ref="generalDragLeft" v-if="isState" :list="likeList" :isLike="true" :isVideo="true" @setBtn="likeSetBtn"></generalDrag>
|
<generalDrag ref="generalDragLeft" :list="likeList" :isLike="true" :isVideo="true" @setBtn="likeSetBtn"></generalDrag>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="btnLeft" @click="setSize('left')" :class="{'active':button.left}">
|
<!-- <div class="btnLeft" @click="setSize('left')" :class="{'active':button.left}">
|
||||||
<span class="icon iconfont icon-xiala"></span>
|
<span class="icon iconfont icon-xiala"></span>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<div class="element">
|
<div class="element">
|
||||||
<div class="title"><i class="fi fi-rs-comments"></i><span>Generated Video</span></div>
|
<div class="title"><i class="fi fi-rs-comments"></i><span>Generated Video</span></div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<generalDrag ref="generalDragRight" v-if="isState" :list="noLikeList" :isVideo="true" @setBtn="noLikeSetBtn"></generalDrag>
|
<generalDrag ref="generalDragRight" :list="noLikeList" :isVideo="true" @setBtn="noLikeSetBtn"></generalDrag>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -118,10 +118,7 @@ export default defineComponent({
|
|||||||
// selectList,
|
// selectList,
|
||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
isState:{
|
|
||||||
type:Boolean,
|
|
||||||
default:false,
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
emits:[],
|
emits:[],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
@@ -141,7 +138,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
waitList:[],
|
waitList:[],
|
||||||
likeList:computed(()=>store.state.HomeStoreModule.poseTransfer),
|
likeList:computed(()=>store.state.HomeStoreModule.poseTransfer),
|
||||||
noLikeList:[],
|
noLikeList:[ { "id": 128, "taskId": "df9cd154-6cf9-488a-8e64-426ef4a27e13-83", "productImage": null, "gifUrl": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_gif/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.gif?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=2a43ad4a389e8366207b6500506c17140e0387924a2adcb35188f2e59777e422", "videoUrl": "None", "firstFrameUrl": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_first_img/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=e202d13874f0a28105602a268c802d4c99d2fbecd06a9460cc07e7c7ecbd0559", "isLiked": 0, "status": "Success", "collectionType": null, "url": "https://www.minio-api.aida.com.hk/aida-users/83/pose_transform_first_img/df9cd154-6cf9-488a-8e64-426ef4a27e13-83.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250530%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250530T015548Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=e202d13874f0a28105602a268c802d4c99d2fbecd06a9460cc07e7c7ecbd0559" } ],
|
||||||
isGenerate:false,//判断是否正在进行generate
|
isGenerate:false,//判断是否正在进行generate
|
||||||
remGenerate:false,
|
remGenerate:false,
|
||||||
removeGenerate:false,
|
removeGenerate:false,
|
||||||
@@ -150,6 +147,7 @@ export default defineComponent({
|
|||||||
selectPose:null as any,
|
selectPose:null as any,
|
||||||
})
|
})
|
||||||
const setIsShowMark:any = inject('setIsShowMark')
|
const setIsShowMark:any = inject('setIsShowMark')
|
||||||
|
const createProbject:any = inject('createProbject')
|
||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
generalDragLeft:null as any,
|
generalDragLeft:null as any,
|
||||||
generalDragRight:null as any,
|
generalDragRight:null as any,
|
||||||
@@ -158,7 +156,6 @@ export default defineComponent({
|
|||||||
const selectImgItem = (item:any,)=>{
|
const selectImgItem = (item:any,)=>{
|
||||||
data.selectImg = item
|
data.selectImg = item
|
||||||
data.fileList.forEach((listItem:any)=>listItem.isChecked = false)
|
data.fileList.forEach((listItem:any)=>listItem.isChecked = false)
|
||||||
console.log(data.currentList)
|
|
||||||
data.currentList.forEach((listItem:any)=>listItem.isChecked = false)
|
data.currentList.forEach((listItem:any)=>listItem.isChecked = false)
|
||||||
item.isChecked = true
|
item.isChecked = true
|
||||||
if(item.url || item.imgUrl)data.selectImg.minioUrl = getMinioUrl(item.url || item.imgUrl)
|
if(item.url || item.imgUrl)data.selectImg.minioUrl = getMinioUrl(item.url || item.imgUrl)
|
||||||
@@ -166,6 +163,7 @@ export default defineComponent({
|
|||||||
const openSetData = ()=>{
|
const openSetData = ()=>{
|
||||||
// dataDom.generalDrag.openSetData()
|
// dataDom.generalDrag.openSetData()
|
||||||
data.currentList = store.state.UploadFilesModule.modularData.toProduct
|
data.currentList = store.state.UploadFilesModule.modularData.toProduct
|
||||||
|
data.currentList = data.currentList?data.currentList:[]
|
||||||
setIsShowMark(false)
|
setIsShowMark(false)
|
||||||
if(data.poseList.length == 0){
|
if(data.poseList.length == 0){
|
||||||
getPoseList()
|
getPoseList()
|
||||||
@@ -175,7 +173,6 @@ export default defineComponent({
|
|||||||
const setCloudImg = ()=>{
|
const setCloudImg = ()=>{
|
||||||
let arr = store.state.UploadFilesModule.cloudList
|
let arr = store.state.UploadFilesModule.cloudList
|
||||||
let list = JSON.parse(JSON.stringify(arr.poseTransfer)) || []
|
let list = JSON.parse(JSON.stringify(arr.poseTransfer)) || []
|
||||||
console.log(list)
|
|
||||||
list.forEach((item:any)=>{
|
list.forEach((item:any)=>{
|
||||||
item.url = item.firstFrameUrl
|
item.url = item.firstFrameUrl
|
||||||
data.noLikeList.unshift(item)
|
data.noLikeList.unshift(item)
|
||||||
@@ -300,7 +297,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let beforeUpload = (file: any)=>{
|
let beforeUpload = async (file: any)=>{
|
||||||
const isJpgOrPng =
|
const isJpgOrPng =
|
||||||
file.type === "image/jpeg" ||
|
file.type === "image/jpeg" ||
|
||||||
file.type === "image/png" ||
|
file.type === "image/png" ||
|
||||||
@@ -313,7 +310,10 @@ export default defineComponent({
|
|||||||
if (!isLt2M) {
|
if (!isLt2M) {
|
||||||
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
||||||
}
|
}
|
||||||
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
if(!data.upload.projectId){
|
||||||
|
await createProbject()
|
||||||
|
}
|
||||||
|
return (isJpgOrPng && isLt2M && data.upload.projectId) || Upload.LIST_IGNORE;
|
||||||
}
|
}
|
||||||
const fileUploadChange = (value: any)=> {
|
const fileUploadChange = (value: any)=> {
|
||||||
let file = value.file;
|
let file = value.file;
|
||||||
|
|||||||
@@ -24,16 +24,12 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="content_item_imgBox_itemImg"
|
class="imgBox"
|
||||||
v-show="file?.status === 'done'"
|
v-show="file?.status === 'done'"
|
||||||
|
|
||||||
>
|
>
|
||||||
<img @click="setGenerate(file)" :class="[file?.isChecked?'active':'']" :src="file?.imgUrl" class="upload_img"/>
|
<img @click="setGenerate(file)" :class="[file?.isChecked?'active':'']" :src="file?.imgUrl" class="upload_img"/>
|
||||||
<a-checkbox v-model:checked="file.isChecked"></a-checkbox>
|
<a-checkbox v-model:checked="file.isChecked"></a-checkbox>
|
||||||
|
|
||||||
<!-- <div class="content_item_imgBox_itemImg_delete" @click="deleteFile(index)">
|
|
||||||
<i class="fi fi-rr-trash"></i>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="upload_file_item upload_component">
|
<div class="upload_file_item upload_component">
|
||||||
@@ -116,11 +112,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="productImg_content_item_title">{{$t('ProductImg.Upload')}}</div>
|
|
||||||
<div class="productImg_content_item_imgBox generalScroll upload_item">
|
|
||||||
|
|
||||||
|
|
||||||
</div> -->
|
|
||||||
<div class="productImg_content_item_generate_btn input_border">
|
<div class="productImg_content_item_generate_btn input_border">
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<div v-show="!isProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
|
<div v-show="!isProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
|
||||||
@@ -232,7 +223,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||||
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick} from "vue";
|
import { defineComponent,watch,createVNode, h, ref ,toRefs,computed,reactive,triggerRef, nextTick, inject} from "vue";
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { getCookie,setCookie } from "@/tool/cookie";
|
import { getCookie,setCookie } from "@/tool/cookie";
|
||||||
// import domTurnImg from '@/tool/domTurnImg'
|
// import domTurnImg from '@/tool/domTurnImg'
|
||||||
@@ -265,6 +256,7 @@ export default defineComponent({
|
|||||||
let driver__:any = computed(()=>{
|
let driver__:any = computed(()=>{
|
||||||
return store.state.Guide.guide
|
return store.state.Guide.guide
|
||||||
})
|
})
|
||||||
|
const createProbject:any = inject('createProbject')
|
||||||
let productImgData:any = reactive({
|
let productImgData:any = reactive({
|
||||||
isShowMark:false,
|
isShowMark:false,
|
||||||
fileList:{},
|
fileList:{},
|
||||||
@@ -411,7 +403,7 @@ export default defineComponent({
|
|||||||
bor = false
|
bor = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let beforeUpload = (file: any)=>{
|
let beforeUpload = async (file: any)=>{
|
||||||
const isJpgOrPng =
|
const isJpgOrPng =
|
||||||
file.type === "image/jpeg" ||
|
file.type === "image/jpeg" ||
|
||||||
file.type === "image/png" ||
|
file.type === "image/png" ||
|
||||||
@@ -424,6 +416,12 @@ export default defineComponent({
|
|||||||
if (!isLt2M) {
|
if (!isLt2M) {
|
||||||
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
message.info(useI18n().t('MoodboardUpload.jsContent4'));
|
||||||
}
|
}
|
||||||
|
if(!productImgData.selectObject.id){
|
||||||
|
productImgData.selectObject.id = await createProbject()
|
||||||
|
upload.value = {
|
||||||
|
projectId:productImgData.selectObject.id
|
||||||
|
}
|
||||||
|
}
|
||||||
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
|
||||||
}
|
}
|
||||||
let deleteFile = (index:any)=>{
|
let deleteFile = (index:any)=>{
|
||||||
@@ -968,33 +966,28 @@ methods: {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.upload_file_item{
|
|
||||||
display: flex;
|
|
||||||
margin-right: 1rem;
|
|
||||||
height: 14rem !important;
|
|
||||||
width: 9rem;
|
|
||||||
border: none !important;
|
|
||||||
&.upload_file_item:last-child{
|
|
||||||
width: 9rem;
|
|
||||||
margin-right: 0rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// width: 45%;
|
|
||||||
.productImg_content_item_imgBox{
|
.productImg_content_item_imgBox{
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-bottom: 3rem;
|
margin-bottom: 3rem;
|
||||||
.content_item_imgBox_itemImg{
|
width: 100%;
|
||||||
width: auto;
|
height: 25rem;
|
||||||
max-width: 20rem;
|
.content_item_imgBox_itemImg ,.upload_file_item{
|
||||||
|
margin-right: 1rem;
|
||||||
|
width: calc(100% / 2 - .5rem);
|
||||||
|
cursor: pointer;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
height: 25rem;
|
||||||
|
position: relative;
|
||||||
|
> .imgBox{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
img{
|
img{
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.upload_file_item{
|
|
||||||
flex-shrink: 0;
|
|
||||||
width: 36rem;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.productImg_content_item_generate{
|
.productImg_content_item_generate{
|
||||||
--width:100%;
|
--width:100%;
|
||||||
|
|||||||
@@ -1054,7 +1054,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1502,7 +1502,7 @@ export default defineComponent({
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,17 +21,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,computed,ref,provide,nextTick,watch,toRefs, reactive} from 'vue'
|
import { defineComponent,computed,inject,provide,nextTick,watch,toRefs, reactive} from 'vue'
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute,useRouter } from 'vue-router';
|
||||||
import toProduct from '@/component/home/tools/toProduct/index.vue';
|
import toProduct from '@/component/home/tools/toProduct/index.vue';
|
||||||
import poseTransfer from '@/component/home/tools/poseTransfer/index.vue';
|
import poseTransfer from '@/component/home/tools/poseTransfer/index.vue';
|
||||||
import deReconstruction from '@/component/home/tools/deReconstruction/index.vue';
|
import deReconstruction from '@/component/home/tools/deReconstruction/index.vue';
|
||||||
import patternMaking3D from '@/component/home/tools/patternMaking3D/index.vue';
|
import patternMaking3D from '@/component/home/tools/patternMaking3D/index.vue';
|
||||||
import canvasUpload from "@/component/Canvas/index.vue";
|
import canvasUpload from "@/component/Canvas/index.vue";
|
||||||
|
import {openTypeList} from "@/tool/listData.js";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components:{
|
components:{
|
||||||
@@ -39,10 +40,12 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
},
|
},
|
||||||
emits:[],
|
emits:['toolsCreateProject'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const router = useRouter()
|
||||||
|
const {t} = useI18n()
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
openType:'' as any,
|
openType:'' as any,
|
||||||
isShowMark:false,
|
isShowMark:false,
|
||||||
@@ -62,29 +65,80 @@ export default defineComponent({
|
|||||||
const setIsShowMark = (boolean:boolean)=>{
|
const setIsShowMark = (boolean:boolean)=>{
|
||||||
data.isShowMark = boolean
|
data.isShowMark = boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let settingGetHistory:any = inject('settingGetHistory')
|
||||||
const open = (str:any)=>{
|
const open = (str:any)=>{
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
|
console.log(dataDom[str],str,123123)
|
||||||
if(dataDom[str]?.openSetData){
|
if(dataDom[str]?.openSetData){
|
||||||
dataDom[str].openSetData()
|
dataDom[str].openSetData()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
provide('setIsShowMark',setIsShowMark)
|
|
||||||
watch(() => route.query,
|
watch(() => route.query,
|
||||||
(query, oldQuery) => {
|
(query:any, oldQuery:any) => {
|
||||||
if(oldQuery && query?.tools == oldQuery?.tools)return
|
if(oldQuery && query?.tools == oldQuery?.tools)return
|
||||||
let str = query.tools
|
const key = Object.keys(query)?.[0]
|
||||||
nextTick(()=>{
|
if(route.name == 'tools' && key){
|
||||||
console.log(str)
|
data.openType = query[key]
|
||||||
data.openType = str
|
nextTick(()=>{
|
||||||
open(str)
|
open(query[key])
|
||||||
})
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{ immediate: true } // 立即触发一次以处理初始参数
|
{ immediate: true } // 立即触发一次以处理初始参数
|
||||||
);
|
);
|
||||||
|
const createProbject = async ()=>{
|
||||||
|
return await new Promise((resolve, reject) => {
|
||||||
|
if(!route.query.tools)return
|
||||||
|
let toolsData:any = openTypeList(t).tools.list.find((item:any)=>item.value == route.query.tools)
|
||||||
|
let value = {
|
||||||
|
name:toolsData.label,
|
||||||
|
process:route.query.tools,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.projectSaveOrUpdate,value).then((rv)=>{
|
||||||
|
if(rv){
|
||||||
|
let value = {
|
||||||
|
id:rv.id
|
||||||
|
}
|
||||||
|
store.commit('setProbject',value)
|
||||||
|
// let model:any = {}
|
||||||
|
// let position = []
|
||||||
|
// if(data.selectObject.sex == "Female"){
|
||||||
|
// // if(rv.workspaceVO.sex == "Female"){
|
||||||
|
// model = {
|
||||||
|
// id:rv.workspaceVO.mannequinFemaleId,
|
||||||
|
// type:rv.workspaceVO.mannequinFemaleType,
|
||||||
|
// url:rv.workspaceVO.femalePresignedUrl,
|
||||||
|
// }
|
||||||
|
// position = store.state.UserHabit.FemalePosition
|
||||||
|
// }else{
|
||||||
|
// model = {
|
||||||
|
// id:rv.workspaceVO.mannequinMaleId,
|
||||||
|
// type:rv.workspaceVO.mannequinMaleType,
|
||||||
|
// url:rv.workspaceVO.malePresignedUrl,
|
||||||
|
// }
|
||||||
|
// position = store.state.UserHabit.MalePosition
|
||||||
|
// }
|
||||||
|
// // model.url = rv.workspaceVO.malePresignedUrl
|
||||||
|
// data.selectObject.model = model
|
||||||
|
// data.selectObject.positionList = position
|
||||||
|
let routeName:any = route.name
|
||||||
|
router.push(`${routeName}?${routeName}=${route.query[routeName]}&id=${rv.id}`)
|
||||||
|
settingGetHistory()
|
||||||
|
resolve(rv.id);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
provide('setIsShowMark',setIsShowMark)
|
||||||
|
provide('createProbject',createProbject)
|
||||||
|
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
|
createProbject,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
provide() {
|
provide() {
|
||||||
|
|||||||
@@ -615,6 +615,7 @@ export default {
|
|||||||
scaleImage:{
|
scaleImage:{
|
||||||
overlayOrNot:'是否覆盖当前图片',
|
overlayOrNot:'是否覆盖当前图片',
|
||||||
submitCanvas:'画布内容没有储存,是否继续',
|
submitCanvas:'画布内容没有储存,是否继续',
|
||||||
|
cover:'是否覆盖编辑的内容',
|
||||||
},
|
},
|
||||||
account:{
|
account:{
|
||||||
personCentered:'个人中心',
|
personCentered:'个人中心',
|
||||||
|
|||||||
@@ -615,6 +615,7 @@ export default {
|
|||||||
scaleImage:{
|
scaleImage:{
|
||||||
overlayOrNot:'Whether to overwrite the current picture',
|
overlayOrNot:'Whether to overwrite the current picture',
|
||||||
submitCanvas:'Canvas content is not saved, whether to continue',
|
submitCanvas:'Canvas content is not saved, whether to continue',
|
||||||
|
cover:'Do you want to overwrite the edited content?',
|
||||||
},
|
},
|
||||||
account:{
|
account:{
|
||||||
personCentered:'Account',
|
personCentered:'Account',
|
||||||
|
|||||||
@@ -115,7 +115,8 @@ const DesignDetailCopy : Module<DesignDetailCopy,RootState> = {
|
|||||||
}else if(str == 'element'){
|
}else if(str == 'element'){
|
||||||
state.selectDetail.newDetail[str] = data
|
state.selectDetail.newDetail[str] = data
|
||||||
}else if(str == 'models'){
|
}else if(str == 'models'){
|
||||||
state.selectDetail.newDetail[str] = data
|
// if(!state.designDetail.newModel)state.designDetail.newModel={}
|
||||||
|
state.designDetail.newModel = JSON.parse(JSON.stringify(data))
|
||||||
}else{
|
}else{
|
||||||
if(!state.selectDetail.newDetail[str])state.selectDetail.newDetail[str] = []
|
if(!state.selectDetail.newDetail[str])state.selectDetail.newDetail[str] = []
|
||||||
const foundObjects = state.selectDetail.newDetail[str].filter((item:any) => item.id === data.id);
|
const foundObjects = state.selectDetail.newDetail[str].filter((item:any) => item.id === data.id);
|
||||||
@@ -190,13 +191,19 @@ const DesignDetailCopy : Module<DesignDetailCopy,RootState> = {
|
|||||||
async setPraeview(state,value){//preview
|
async setPraeview(state,value){//preview
|
||||||
let data = value.rv
|
let data = value.rv
|
||||||
let currentType = value.currentType
|
let currentType = value.currentType
|
||||||
|
if(state.designDetail.oldModel?.url)state.frontBack.body.path = state.designDetail.oldModel.url
|
||||||
for (let j = 0; j < data.clothes.length; j++) {
|
for (let j = 0; j < data.clothes.length; j++) {
|
||||||
const item = data.clothes[j];
|
const item = data.clothes[j];
|
||||||
if(!item.id)continue
|
if(!item.id)continue
|
||||||
if(item.id == state.selectDetail.id || state.selectDetail.newDetail?.sketch?.id == item.id){
|
if(item.id == state.selectDetail.id || state.selectDetail.newDetail?.sketch?.id == item.id){
|
||||||
|
|
||||||
}
|
}
|
||||||
let id_ = state.selectDetail.id || state.selectDetail.newDetail?.sketch?.id
|
let id_:any
|
||||||
|
if(state.currentDetailType != 'models'){
|
||||||
|
id_ = state.selectDetail.id || state.selectDetail.newDetail?.sketch?.id
|
||||||
|
}else{
|
||||||
|
id_ = item.id
|
||||||
|
}
|
||||||
let el:any = document.querySelector('.molepositon .perview_img')
|
let el:any = document.querySelector('.molepositon .perview_img')
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
const img = new Image();
|
const img = new Image();
|
||||||
@@ -239,30 +246,32 @@ const DesignDetailCopy : Module<DesignDetailCopy,RootState> = {
|
|||||||
resolve('')
|
resolve('')
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
state.selectDetail.change = item.change
|
if(state.currentDetailType != 'models'){
|
||||||
if(state.selectDetail?.newDetail?.color){
|
state.selectDetail.change = item.change
|
||||||
state.selectDetail.color = state.selectDetail?.newDetail?.color
|
if(state.selectDetail?.newDetail?.color){
|
||||||
state.selectDetail.newDetail.color = null
|
state.selectDetail.color = state.selectDetail?.newDetail?.color
|
||||||
|
state.selectDetail.newDetail.color = null
|
||||||
|
}
|
||||||
|
if(item.partialDesign){
|
||||||
|
state.selectDetail.partialDesign = item.partialDesign
|
||||||
|
}
|
||||||
|
state.selectDetail.designType = item.designType
|
||||||
|
state.selectDetail.gradient = item.gradient
|
||||||
|
state.selectDetail.layersObject = item.layersObject
|
||||||
|
state.selectDetail.path = item.path
|
||||||
|
state.selectDetail.minIOPath = item.minIOPath
|
||||||
|
state.selectDetail.scale = [1,1]
|
||||||
|
state.selectDetail.offset = [0,0]
|
||||||
|
state.selectDetail.printObject = item.printObject
|
||||||
|
state.selectDetail.trims = item.trims
|
||||||
|
state.selectDetail.type = item.type
|
||||||
|
state.selectDetail.undividedLayer = item.undividedLayer
|
||||||
|
if(state.selectDetail.newDetail?.sketch?.id && !state.selectDetail.id){
|
||||||
|
state.designDetail.clothes.push(state.selectDetail)
|
||||||
|
}
|
||||||
|
state.selectDetail.id = item.id
|
||||||
|
if(state.selectDetail.newDetail?.[currentType])delete state.selectDetail.newDetail[currentType]
|
||||||
}
|
}
|
||||||
if(item.partialDesign){
|
|
||||||
state.selectDetail.partialDesign = item.partialDesign
|
|
||||||
}
|
|
||||||
state.selectDetail.designType = item.designType
|
|
||||||
state.selectDetail.gradient = item.gradient
|
|
||||||
state.selectDetail.layersObject = item.layersObject
|
|
||||||
state.selectDetail.path = item.path
|
|
||||||
state.selectDetail.minIOPath = item.minIOPath
|
|
||||||
state.selectDetail.scale = [1,1]
|
|
||||||
state.selectDetail.offset = [0,0]
|
|
||||||
state.selectDetail.printObject = item.printObject
|
|
||||||
state.selectDetail.trims = item.trims
|
|
||||||
state.selectDetail.type = item.type
|
|
||||||
state.selectDetail.undividedLayer = item.undividedLayer
|
|
||||||
if(state.selectDetail.newDetail?.sketch?.id && !state.selectDetail.id){
|
|
||||||
state.designDetail.clothes.push(state.selectDetail)
|
|
||||||
}
|
|
||||||
state.selectDetail.id = item.id
|
|
||||||
if(state.selectDetail.newDetail?.[currentType])delete state.selectDetail.newDetail[currentType]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ export const Https = {
|
|||||||
countDesignProcess:'/api/design/countDesignProcess', //统计design进度
|
countDesignProcess:'/api/design/countDesignProcess', //统计design进度
|
||||||
getDesignResult:'/api/design/getDesignResult', //查询design结果
|
getDesignResult:'/api/design/getDesignResult', //查询design结果
|
||||||
designSort:`/api/design/sort`, //design排序
|
designSort:`/api/design/sort`, //design排序
|
||||||
|
collectionLikeUpdate:`/api/history/collectionLikeUpdate`, //赋值排序
|
||||||
|
|
||||||
designProcess:`/api/design/designProcess`, //统计design进度
|
designProcess:`/api/design/designProcess`, //统计design进度
|
||||||
designGetModel:`/api/design/getModel`, //导出获取模特链接
|
designGetModel:`/api/design/getModel`, //导出获取模特链接
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ export default defineComponent({
|
|||||||
background: #F3F4F8;
|
background: #F3F4F8;
|
||||||
|
|
||||||
.menu_title{
|
.menu_title{
|
||||||
color: #343579;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu_icon{
|
.menu_icon{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="homeMain_max">
|
<div class="homeMain_max">
|
||||||
<div class="leftBox">
|
<div class="leftBox" :class="{leftHide:leftShow}">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<span>AiDA</span>
|
<span>AiDA</span>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="2rem" height="2rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
<svg @click="()=>leftShow=!leftShow" class="leftShowOrHide" xmlns="http://www.w3.org/2000/svg" width="2rem" height="2rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="newObj marginT2" @click="newProject">
|
<div class="newObj marginT2" @click="newProject">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="navList marginT2">
|
<div class="navList marginT2">
|
||||||
<div class="tools list" v-for="item in openTypeList" :class="{active:openType == item.value}">
|
<div class="tools list" v-for="item in openTypeList" :class="{active:openType == item.value}">
|
||||||
|
|
||||||
<div class="titleBox" @click="setOpenType(item.value,item.list)">
|
<div class="titleBox" @click="setOpenType(item.value,item.list)">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<i :class="['fi',item.icon]"></i>
|
<i :class="['fi',item.icon]"></i>
|
||||||
@@ -46,7 +47,7 @@
|
|||||||
<i class="fi fi-rr-edit"></i>
|
<i class="fi fi-rr-edit"></i>
|
||||||
<span>Rename</span>
|
<span>Rename</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" @click.stop="setting(childItem)">
|
<div class="item" v-if="childItem.process == 'SINGLE_DESIGN' || childItem.process == 'SERIES_DESIGN'" @click.stop="setting(childItem)">
|
||||||
<i class="fi fi-rr-settings-sliders"></i>
|
<i class="fi fi-rr-settings-sliders"></i>
|
||||||
<span>Setting</span>
|
<span>Setting</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -117,6 +118,13 @@
|
|||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="user">
|
<div class="user">
|
||||||
|
<div class="left" v-show="leftShow">
|
||||||
|
<svg @click="()=>leftShow=!leftShow" class="leftShowOrHide" xmlns="http://www.w3.org/2000/svg" width="2rem" height="2rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
||||||
|
<div class="newObj marginT2" @click="newProject">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
||||||
|
<p>New Project</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="trialApproval">
|
<div class="trialApproval">
|
||||||
<div class="message_iconItem">
|
<div class="message_iconItem">
|
||||||
<a-badge :count="messageNum">
|
<a-badge :count="messageNum">
|
||||||
@@ -205,7 +213,7 @@
|
|||||||
You can use these features only after becoming a regular user~
|
You can use these features only after becoming a regular user~
|
||||||
</div>
|
</div>
|
||||||
<div class="router" v-else-if="!getLangIsShowMark">
|
<div class="router" v-else-if="!getLangIsShowMark">
|
||||||
<home ref="home" @setTask="setTask" :settingGetHistory="settingGetHistory"></home>
|
<home ref="home" @setTask="setTask"></home>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -225,7 +233,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script >
|
<script >
|
||||||
import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted, nextTick, watch } from "vue";
|
import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted, nextTick, watch, provide } from "vue";
|
||||||
import { isEmail } from "@/tool/util";
|
import { isEmail } from "@/tool/util";
|
||||||
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
|
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
|
||||||
import payOrder from "@/component/Pay/payOrder.vue";
|
import payOrder from "@/component/Pay/payOrder.vue";
|
||||||
@@ -273,6 +281,7 @@ export default defineComponent({
|
|||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const homeMainData = reactive({
|
const homeMainData = reactive({
|
||||||
|
leftShow:false,
|
||||||
openType:'',
|
openType:'',
|
||||||
openTypeChild:'',
|
openTypeChild:'',
|
||||||
isLanguage:false,
|
isLanguage:false,
|
||||||
@@ -447,7 +456,6 @@ export default defineComponent({
|
|||||||
homeMainData.historyData.isShowLoading = false
|
homeMainData.historyData.isShowLoading = false
|
||||||
homeMainData.historyData.isNoData = false
|
homeMainData.historyData.isNoData = false
|
||||||
let imgParent = document.querySelector('.homeMain_max .detail .material_content_list_loding .historyPage_loading')
|
let imgParent = document.querySelector('.homeMain_max .detail .material_content_list_loding .historyPage_loading')
|
||||||
console.log(imgParent)
|
|
||||||
new IntersectionObserver(
|
new IntersectionObserver(
|
||||||
(entries, observer) => {
|
(entries, observer) => {
|
||||||
// 如果不是相交,则直接返回
|
// 如果不是相交,则直接返回
|
||||||
@@ -463,7 +471,12 @@ export default defineComponent({
|
|||||||
router.push(itemRouter)
|
router.push(itemRouter)
|
||||||
}
|
}
|
||||||
const setHistory = (item,childItem)=>{
|
const setHistory = (item,childItem)=>{
|
||||||
router.push(`/home?history=${childItem.id}`)
|
// router.push(`/home/tools?tools=toProduct&id=${childItem.id}`)
|
||||||
|
if(childItem.process == 'SERIES_DESIGN' || childItem.process == "SINGLE_DESIGN"){
|
||||||
|
router.push(`/home?history=${childItem.id}`)
|
||||||
|
}else{
|
||||||
|
router.push(`/home/tools?tools=${childItem.process}&id=${childItem.id}`)
|
||||||
|
}
|
||||||
// router.push(`/home?history=${childItem.id}`)
|
// router.push(`/home?history=${childItem.id}`)
|
||||||
}
|
}
|
||||||
const settingGetHistory = ()=>{
|
const settingGetHistory = ()=>{
|
||||||
@@ -472,6 +485,7 @@ export default defineComponent({
|
|||||||
homeMainData.historyData.isShowLoading = false
|
homeMainData.historyData.isShowLoading = false
|
||||||
homeMainData.historyData.isNoData = false
|
homeMainData.historyData.isNoData = false
|
||||||
}
|
}
|
||||||
|
provide('settingGetHistory',settingGetHistory)
|
||||||
const getHistory = ()=>{
|
const getHistory = ()=>{
|
||||||
if(homeMainData.historyData.isShowLoading && !homeMainData.historyData.isNoData)return
|
if(homeMainData.historyData.isShowLoading && !homeMainData.historyData.isNoData)return
|
||||||
homeMainData.historyData.isShowLoading = true
|
homeMainData.historyData.isShowLoading = true
|
||||||
@@ -873,6 +887,12 @@ export default defineComponent({
|
|||||||
> .leftBox{
|
> .leftBox{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #f5f5f5;
|
background: #f5f5f5;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 26rem;
|
||||||
|
transition: width .3s;
|
||||||
|
&.leftHide{
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
> .left{
|
> .left{
|
||||||
width: 26rem;
|
width: 26rem;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -1147,25 +1167,7 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> .newObj{
|
|
||||||
border-radius: 1.2rem;
|
|
||||||
padding: 1.6rem 1.2rem;
|
|
||||||
border: 1px solid #0003;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
cursor: pointer;
|
|
||||||
> svg{
|
|
||||||
margin-right: .4rem;
|
|
||||||
width: 2.4rem;
|
|
||||||
height: 2.4rem;
|
|
||||||
}
|
|
||||||
> p{
|
|
||||||
font-size: 1.6rem;
|
|
||||||
font-weight: 600;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
> .navList{
|
> .navList{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -1257,6 +1259,25 @@ export default defineComponent({
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.newObj{
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
padding: 1.6rem 1.2rem;
|
||||||
|
border: 1px solid #0003;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
> svg{
|
||||||
|
margin-right: .4rem;
|
||||||
|
width: 2.4rem;
|
||||||
|
height: 2.4rem;
|
||||||
|
}
|
||||||
|
> p{
|
||||||
|
font-size: 1.6rem;
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
> .rightBox{
|
> .rightBox{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -1270,7 +1291,21 @@ export default defineComponent({
|
|||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding: 2rem 2rem 0 0;
|
padding: 2rem 2rem 1.2rem;
|
||||||
|
align-items: center;
|
||||||
|
> .left{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: auto;
|
||||||
|
> .newObj{
|
||||||
|
background: #f5f5f5;
|
||||||
|
padding: 1.2rem;
|
||||||
|
}
|
||||||
|
> svg{
|
||||||
|
margin-right: 2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
> .trialApproval{
|
> .trialApproval{
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
@@ -1522,9 +1557,9 @@ export default defineComponent({
|
|||||||
width: 6rem;
|
width: 6rem;
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
line-height: 2.8rem;
|
line-height: 2.8rem;
|
||||||
border: 0.1rem solid #343579;
|
border: 0.1rem solid #000;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
color: #343579;
|
color: #000;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 1.8rem;
|
top: 1.8rem;
|
||||||
right: 1.8rem;
|
right: 1.8rem;
|
||||||
@@ -1575,7 +1610,7 @@ export default defineComponent({
|
|||||||
.bind_email_submit_button {
|
.bind_email_submit_button {
|
||||||
height: 4.6rem;
|
height: 4.6rem;
|
||||||
line-height: 4.6rem;
|
line-height: 4.6rem;
|
||||||
background: #343579;
|
background: #000;
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
@@ -1602,7 +1637,7 @@ export default defineComponent({
|
|||||||
.tip_content {
|
.tip_content {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #343579;
|
color: #000;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
<template #suffixIcon
|
<template #suffixIcon
|
||||||
><span
|
><span
|
||||||
class="icon iconfont icon-xiala"
|
class="icon iconfont icon-xiala"
|
||||||
style="color: #343579"
|
style="color: #000"
|
||||||
></span
|
></span
|
||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -2119,7 +2119,7 @@ export default defineComponent({
|
|||||||
.check_block_body{
|
.check_block_body{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: #343579;
|
background: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2238,7 +2238,7 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
&.select_item_img{
|
&.select_item_img{
|
||||||
// border-color: #343579;
|
// border-color: #000;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
@@ -2410,7 +2410,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.rename_submit_button{
|
.rename_submit_button{
|
||||||
background: #343579;
|
background: #000;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ export default defineComponent({
|
|||||||
background: #F3F4F8;
|
background: #F3F4F8;
|
||||||
|
|
||||||
.menu_title{
|
.menu_title{
|
||||||
color: #343579;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu_icon{
|
.menu_icon{
|
||||||
|
|||||||
Reference in New Issue
Block a user