除了颜色选择图片,注册页面
2
.env.dev
@@ -9,4 +9,4 @@ VUE_APP_BASE_URL = 'https://develop.api.aida.com.hk'
|
|||||||
# 佩佩
|
# 佩佩
|
||||||
# VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
|
# VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
|
||||||
# 海波
|
# 海波
|
||||||
# VUE_APP_BASE_URL = 'http://192.168.1.9:5567'
|
VUE_APP_BASE_URL = 'http://192.168.1.9:5567'
|
||||||
|
|||||||
BIN
public/image/mainImg/img1.png
Normal file
|
After Width: | Height: | Size: 443 KiB |
BIN
public/image/mainImg/img10.png
Normal file
|
After Width: | Height: | Size: 429 KiB |
BIN
public/image/mainImg/img2.png
Normal file
|
After Width: | Height: | Size: 432 KiB |
BIN
public/image/mainImg/img3.png
Normal file
|
After Width: | Height: | Size: 424 KiB |
BIN
public/image/mainImg/img4.png
Normal file
|
After Width: | Height: | Size: 376 KiB |
BIN
public/image/mainImg/img5.png
Normal file
|
After Width: | Height: | Size: 456 KiB |
BIN
public/image/mainImg/img6.png
Normal file
|
After Width: | Height: | Size: 365 KiB |
BIN
public/image/mainImg/img7.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
BIN
public/image/mainImg/img8.png
Normal file
|
After Width: | Height: | Size: 477 KiB |
BIN
public/image/mainImg/img9.png
Normal file
|
After Width: | Height: | Size: 503 KiB |
@@ -163,6 +163,7 @@ li {
|
|||||||
height: 3.3rem;
|
height: 3.3rem;
|
||||||
line-height: 3.3rem;
|
line-height: 3.3rem;
|
||||||
zoom: 1;
|
zoom: 1;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.started_btn .fi-br-loading::before {
|
.started_btn .fi-br-loading::before {
|
||||||
transition: all 0.5s;
|
transition: all 0.5s;
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ input:focus{
|
|||||||
height: 3.3rem;
|
height: 3.3rem;
|
||||||
line-height: 3.3rem;
|
line-height: 3.3rem;
|
||||||
zoom: 1;
|
zoom: 1;
|
||||||
|
white-space: nowrap;
|
||||||
.fi-br-loading::before{
|
.fi-br-loading::before{
|
||||||
transition: all .5s;
|
transition: all .5s;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
<div class="detail_modal_body_select">
|
<div class="detail_modal_body_select">
|
||||||
<div v-show="(type_ == 1 || type_ == 2 || type_ == 4) && select == true">
|
<div v-show="(type_ == 1 || type_ == 2 || type_ == 4) && select == true">
|
||||||
<div class="detail_uploadLibrary">
|
<div class="detail_uploadLibrary">
|
||||||
<div class="switch_type_list">
|
<div v-show="type_ == 4" style="font-size:1.5rem; margin:1rem 0">{{ $t('LibraryPage.generated') }}</div>
|
||||||
|
<div class="switch_type_list" v-show="type_ != 4">
|
||||||
<div
|
<div
|
||||||
@click.stop="open(1)"
|
@click.stop="open(1)"
|
||||||
class="switch_type_item"
|
class="switch_type_item"
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
></template>
|
></template>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_search_block">
|
<div class="content_search_block" v-show="type_ != 4">
|
||||||
<input class="search_input" :placeholder="$t('DesignDetailAlter.inputContent1')" v-model="searchPictureName" @keydown.enter="getLibraryList()">
|
<input class="search_input" :placeholder="$t('DesignDetailAlter.inputContent1')" v-model="searchPictureName" @keydown.enter="getLibraryList()">
|
||||||
<div class="search_icon_block" @click.stop="getLibraryList()"><span class="icon iconfont icon-sousuo"></span></div>
|
<div class="search_icon_block" @click.stop="getLibraryList()"><span class="icon iconfont icon-sousuo"></span></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1130,19 +1131,19 @@ export default defineComponent({
|
|||||||
)
|
)
|
||||||
});
|
});
|
||||||
this.selectColorList = selectColorList
|
this.selectColorList = selectColorList
|
||||||
// this.getHsvColor(selectColorList)
|
this.getHsvColor(selectColorList)
|
||||||
// this.selectColor = {rgba:{r:color[0],g:color[1],b:color[2],a:1},hex:colorHex}
|
this.selectColor = {rgba:{r:color[0],g:color[1],b:color[2],a:1},hex:colorHex}
|
||||||
let colorListIndex = []
|
// let colorListIndex = []
|
||||||
this.colorList.forEach((item,index)=>{
|
// this.colorList.forEach((item,index)=>{
|
||||||
if(!item.rgba){
|
// if(!item.rgba){
|
||||||
colorListIndex.push(index)
|
// colorListIndex.push(index)
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
for (let index = 0; index < selectColorList.length; index++) {
|
// for (let index = 0; index < selectColorList.length; index++) {
|
||||||
this.colorList[colorListIndex[0]] = selectColorList[index]
|
// this.colorList[colorListIndex[0]] = selectColorList[index]
|
||||||
this.getPantongName(selectColorList[index].rgba,colorListIndex[0])
|
// this.getPantongName(selectColorList[index].rgba,colorListIndex[0])
|
||||||
colorListIndex.splice(0,1)
|
// colorListIndex.splice(0,1)
|
||||||
}
|
// }
|
||||||
img.remove()
|
img.remove()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -39,10 +39,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="print_right show_print_right Guide_1_25" :class="[driver__.driver?'showEvents':'']">
|
<div class="print_right show_print_right Guide_1_25" :class="[driver__.driver?'showEvents':'']">
|
||||||
<div class="designOpenrtion_nav">
|
<div class="designOpenrtion_nav">
|
||||||
<div class="designOpenrtion_single" v-for="item,index in designOpenrtionList" :key="item" v-show="(stateOverallSingle == 'overall' && item.level2Type == 'Pattern') || stateOverallSingle == 'single'">
|
<div class="designOpenrtion_single" v-for="item,index in designOpenrtionList" :key="item" v-show="(stateOverallSingle == 'single' && item.level2Type != 'Pattern') || stateOverallSingle == 'overall'">
|
||||||
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
||||||
</div>
|
</div>
|
||||||
<div class="designOpenrtion_single" v-for="item,index in designList" :key="item" v-show="(stateOverallSingle == 'overall' && item.level2Type == 'Pattern') || stateOverallSingle == 'single'">
|
<div class="designOpenrtion_single" v-for="item,index in designList" :key="item" v-show="(stateOverallSingle == 'single' && item.level2Type != 'Pattern') || stateOverallSingle == 'overall'">
|
||||||
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="designOpenrtion_overall" v-show="!overallSingle">
|
<!-- <div class="designOpenrtion_overall" v-show="!overallSingle">
|
||||||
@@ -102,9 +102,10 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div v-show="!overallSingle"></div>
|
<div v-show="!overallSingle"></div>
|
||||||
<ul v-if="!overallSingle && printStyleList[stateOverallSingle][0]" :class="{active:printStyleList[stateOverallSingle][0]?.designOpenrtionBtn}" class="designOpenrtion_Mouoverall" :style="'left:'+printStyleList[stateOverallSingle][0]?.style?.left+';top:'+printStyleList[stateOverallSingle][0]?.style?.top+';'" @mousedown.stop="itemMoveMousedown(0,$event)">
|
<ul v-if="!overallSingle && printStyleList[stateOverallSingle][0]" class="designOpenrtion_Mouoverall active" :style="'left:'+printStyleList[stateOverallSingle][0]?.style?.left+';top:'+printStyleList[stateOverallSingle][0]?.style?.top+';'" @mousedown.stop="itemMoveMousedown(0,$event)">
|
||||||
<i class="fi fi-rr-arrows animtion1"></i>
|
<i class="fi fi-rr-arrows animtion1"></i>
|
||||||
<i class="fi fi-rr-arrows animtion2"></i>
|
<i class="fi fi-rr-arrows animtion2"></i>
|
||||||
|
<li class="designOpenrtion_rotote" v-rotote.stop="[0,printStyleList[stateOverallSingle][0].transform]"></li>
|
||||||
<!-- <li class="designOpenrtion_delete" @click="deletePrint">
|
<!-- <li class="designOpenrtion_delete" @click="deletePrint">
|
||||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAdBJREFUSImt1r1uU0EQBeDPFh1pgBQEEwFVAg9BROhCAh1FAg1gkMA8DA0oKOEB3IEIRQgF4SEQBIUC6ENSGgPFXaPx+udeSxxppPXOzJnZ8e7MrRmPWdzANZxPv+EbvmILL/G9hGcADayjgz8l0kUb56qSX8dhBeJcDrFSRv44ZRQdt3EPczieZB5NvB1ymta4zCP5J1yucOIFfM6CDJykob8s73GiAnkPJ7Eb/H9iJhpsZJlPQh6D7AWe9Z5iFr+CIpalhjWspnXZ/pXA01FURkv/HxpxK+g2UE+yGfZXM5+doHt4DEtB2R5dAXdD9nfG2LVxNa2XKGreiziXGefZ5rKZbCLmg/4jHIWNqSEZ1fC0IrnE0bM5qqdFGWoV92RBf/P/S3RRVqI3YaOZGd8eQpgHXMt8HgTd67qi5fZwMzOO5XuREmim9ShEji04q78tLwSDSR/aYuD599DgeVDsY3pMhqOQt4pnUXlGf7PbTQ5VcQofgv8BTudGK/rb9Z6it5RhEV+CX1cxYoeiZXDg7OC+4vpNJbmkuC3vMtsuHpVltKzo55OOzINxmeeYxhPVhn5H0ftnhhGNeu49NBSjdBkX9H+27Cvu+Sv8GEXwF9+O3b1zwZqdAAAAAElFTkSuQmCC" alt="">
|
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAdBJREFUSImt1r1uU0EQBeDPFh1pgBQEEwFVAg9BROhCAh1FAg1gkMA8DA0oKOEB3IEIRQgF4SEQBIUC6ENSGgPFXaPx+udeSxxppPXOzJnZ8e7MrRmPWdzANZxPv+EbvmILL/G9hGcADayjgz8l0kUb56qSX8dhBeJcDrFSRv44ZRQdt3EPczieZB5NvB1ymta4zCP5J1yucOIFfM6CDJykob8s73GiAnkPJ7Eb/H9iJhpsZJlPQh6D7AWe9Z5iFr+CIpalhjWspnXZ/pXA01FURkv/HxpxK+g2UE+yGfZXM5+doHt4DEtB2R5dAXdD9nfG2LVxNa2XKGreiziXGefZ5rKZbCLmg/4jHIWNqSEZ1fC0IrnE0bM5qqdFGWoV92RBf/P/S3RRVqI3YaOZGd8eQpgHXMt8HgTd67qi5fZwMzOO5XuREmim9ShEji04q78tLwSDSR/aYuD599DgeVDsY3pMhqOQt4pnUXlGf7PbTQ5VcQofgv8BTudGK/rb9Z6it5RhEV+CX1cxYoeiZXDg7OC+4vpNJbmkuC3vMtsuHpVltKzo55OOzINxmeeYxhPVhn5H0ftnhhGNeu49NBSjdBkX9H+27Cvu+Sv8GEXwF9+O3b1zwZqdAAAAAElFTkSuQmCC" alt="">
|
||||||
</li> -->
|
</li> -->
|
||||||
@@ -257,7 +258,9 @@ export default defineComponent({
|
|||||||
let x = e.clientX - X
|
let x = e.clientX - X
|
||||||
let y = Y - e.clientY
|
let y = Y - e.clientY
|
||||||
angle = Math.atan2(x,y)*(180 / Math.PI)
|
angle = Math.atan2(x,y)*(180 / Math.PI)
|
||||||
elParent.firstElementChild.style.transform = "rotateZ("+ angle + "deg)"
|
if(elParent){
|
||||||
|
elParent.firstElementChild.style.transform = "rotateZ("+ angle + "deg)"
|
||||||
|
}
|
||||||
el.style.transform = "translate(-50%, -50%)rotateZ("+ angle + "deg)"
|
el.style.transform = "translate(-50%, -50%)rotateZ("+ angle + "deg)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -652,7 +655,8 @@ export default defineComponent({
|
|||||||
location = [arr[index].style.left.replace(/px/g,'')*sketchNum,arr[index].style.top.replace(/px/g,'')*sketchNum]
|
location = [arr[index].style.left.replace(/px/g,'')*sketchNum,arr[index].style.top.replace(/px/g,'')*sketchNum]
|
||||||
}
|
}
|
||||||
let obj = {
|
let obj = {
|
||||||
angle : !this.overallSingle ? 0:arr[index].transform.rotateZ,
|
angle : arr[index].transform.rotateZ,
|
||||||
|
// angle : !this.overallSingle ? 0:arr[index].transform.rotateZ,
|
||||||
location : location,
|
location : location,
|
||||||
priority:arr[index].style.zIndex,
|
priority:arr[index].style.zIndex,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
@@ -1038,6 +1042,7 @@ export default defineComponent({
|
|||||||
i{
|
i{
|
||||||
display: flex;
|
display: flex;
|
||||||
color: #14bcff;
|
color: #14bcff;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.animtion1{
|
.animtion1{
|
||||||
animation: anim 4s 2s linear infinite;
|
animation: anim 4s 2s linear infinite;
|
||||||
|
|||||||
@@ -42,10 +42,10 @@
|
|||||||
<!-- <div class="designOpenrtionMobile_single" v-show="overallSingle" v-for="item,index in designOpenrtionList" :key="item" :class="{active:printStyleList[index]?.designOpenrtionBtn?printStyleList[index]?.designOpenrtionBtn:false}">
|
<!-- <div class="designOpenrtionMobile_single" v-show="overallSingle" v-for="item,index in designOpenrtionList" :key="item" :class="{active:printStyleList[index]?.designOpenrtionBtn?printStyleList[index]?.designOpenrtionBtn:false}">
|
||||||
<img :src="item.path" @click="setpitch(item,index)">
|
<img :src="item.path" @click="setpitch(item,index)">
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="designOpenrtionMobile_single" v-for="item,index in designOpenrtionList" :key="item" v-show="(stateOverallSingle == 'overall' && item.level2Type == 'Pattern') || stateOverallSingle == 'single'">
|
<div class="designOpenrtionMobile_single" v-for="item,index in designOpenrtionList" :key="item" v-show="(stateOverallSingle == 'single' && item.level2Type != 'Pattern') || stateOverallSingle == 'overall'">
|
||||||
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
||||||
</div>
|
</div>
|
||||||
<div class="designOpenrtionMobile_single" v-for="item,index in designList" :key="item" v-show="(stateOverallSingle == 'overall' && item.level2Type == 'Pattern') || stateOverallSingle == 'single'">
|
<div class="designOpenrtionMobile_single" v-for="item,index in designList" :key="item" v-show="(stateOverallSingle == 'single' && item.level2Type != 'Pattern') || stateOverallSingle == 'overall'">
|
||||||
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
<img :class="[(item.checked == true && overallSingle == false)?'active':'']" :src="item.path" @click="setpitch(item,index)">
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="designOpenrtionMobile_overall" v-show="!overallSingle">
|
<!-- <div class="designOpenrtionMobile_overall" v-show="!overallSingle">
|
||||||
@@ -103,9 +103,10 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div v-show="!overallSingle"></div>
|
<div v-show="!overallSingle"></div>
|
||||||
<ul v-if="!overallSingle && printStyleList[stateOverallSingle][0]" :class="{active:printStyleList[stateOverallSingle][0]?.designOpenrtionBtn}" class="designOpenrtionMobile_Mouoverall" :style="'left:'+printStyleList[stateOverallSingle][0]?.style?.left+';top:'+printStyleList[stateOverallSingle][0]?.style?.top+';'" @touchstart.stop="itemMoveMousedown(0,$event)">
|
<ul v-if="!overallSingle && printStyleList[stateOverallSingle][0]" class="designOpenrtionMobile_Mouoverall active" :style="'left:'+printStyleList[stateOverallSingle][0]?.style?.left+';top:'+printStyleList[stateOverallSingle][0]?.style?.top+';'" @touchstart.stop="itemMoveMousedown(0,$event)">
|
||||||
<i class="fi fi-rr-arrows animtion1"></i>
|
<i class="fi fi-rr-arrows animtion1"></i>
|
||||||
<i class="fi fi-rr-arrows animtion2"></i>
|
<i class="fi fi-rr-arrows animtion2"></i>
|
||||||
|
<li class="designOpenrtionMobile_rotote" v-rotote.stop="[0,printStyleList[stateOverallSingle][0].transform]"></li>
|
||||||
<!-- <li class="designOpenrtionMobile__delete" @click="deletePrint">
|
<!-- <li class="designOpenrtionMobile__delete" @click="deletePrint">
|
||||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAdBJREFUSImt1r1uU0EQBeDPFh1pgBQEEwFVAg9BROhCAh1FAg1gkMA8DA0oKOEB3IEIRQgF4SEQBIUC6ENSGgPFXaPx+udeSxxppPXOzJnZ8e7MrRmPWdzANZxPv+EbvmILL/G9hGcADayjgz8l0kUb56qSX8dhBeJcDrFSRv44ZRQdt3EPczieZB5NvB1ymta4zCP5J1yucOIFfM6CDJykob8s73GiAnkPJ7Eb/H9iJhpsZJlPQh6D7AWe9Z5iFr+CIpalhjWspnXZ/pXA01FURkv/HxpxK+g2UE+yGfZXM5+doHt4DEtB2R5dAXdD9nfG2LVxNa2XKGreiziXGefZ5rKZbCLmg/4jHIWNqSEZ1fC0IrnE0bM5qqdFGWoV92RBf/P/S3RRVqI3YaOZGd8eQpgHXMt8HgTd67qi5fZwMzOO5XuREmim9ShEji04q78tLwSDSR/aYuD599DgeVDsY3pMhqOQt4pnUXlGf7PbTQ5VcQofgv8BTudGK/rb9Z6it5RhEV+CX1cxYoeiZXDg7OC+4vpNJbmkuC3vMtsuHpVltKzo55OOzINxmeeYxhPVhn5H0ftnhhGNeu49NBSjdBkX9H+27Cvu+Sv8GEXwF9+O3b1zwZqdAAAAAElFTkSuQmCC" alt="">
|
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACxAAAAsQHGLUmNAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAdBJREFUSImt1r1uU0EQBeDPFh1pgBQEEwFVAg9BROhCAh1FAg1gkMA8DA0oKOEB3IEIRQgF4SEQBIUC6ENSGgPFXaPx+udeSxxppPXOzJnZ8e7MrRmPWdzANZxPv+EbvmILL/G9hGcADayjgz8l0kUb56qSX8dhBeJcDrFSRv44ZRQdt3EPczieZB5NvB1ymta4zCP5J1yucOIFfM6CDJykob8s73GiAnkPJ7Eb/H9iJhpsZJlPQh6D7AWe9Z5iFr+CIpalhjWspnXZ/pXA01FURkv/HxpxK+g2UE+yGfZXM5+doHt4DEtB2R5dAXdD9nfG2LVxNa2XKGreiziXGefZ5rKZbCLmg/4jHIWNqSEZ1fC0IrnE0bM5qqdFGWoV92RBf/P/S3RRVqI3YaOZGd8eQpgHXMt8HgTd67qi5fZwMzOO5XuREmim9ShEji04q78tLwSDSR/aYuD599DgeVDsY3pMhqOQt4pnUXlGf7PbTQ5VcQofgv8BTudGK/rb9Z6it5RhEV+CX1cxYoeiZXDg7OC+4vpNJbmkuC3vMtsuHpVltKzo55OOzINxmeeYxhPVhn5H0ftnhhGNeu49NBSjdBkX9H+27Cvu+Sv8GEXwF9+O3b1zwZqdAAAAAElFTkSuQmCC" alt="">
|
||||||
</li> -->
|
</li> -->
|
||||||
@@ -257,7 +258,9 @@ export default defineComponent({
|
|||||||
let x = e.targetTouches[0].clientX - X
|
let x = e.targetTouches[0].clientX - X
|
||||||
let y = Y - e.targetTouches[0].clientY
|
let y = Y - e.targetTouches[0].clientY
|
||||||
angle = Math.atan2(x,y)*(180 / Math.PI)
|
angle = Math.atan2(x,y)*(180 / Math.PI)
|
||||||
elParent.firstElementChild.style.transform = "rotateZ("+ angle + "deg)"
|
if(elParent){
|
||||||
|
elParent.firstElementChild.style.transform = "rotateZ("+ angle + "deg)"
|
||||||
|
}
|
||||||
el.style.transform = "translate(-50%, -50%)rotateZ("+ angle + "deg)"
|
el.style.transform = "translate(-50%, -50%)rotateZ("+ angle + "deg)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -652,7 +655,8 @@ export default defineComponent({
|
|||||||
location = [arr[index].style.left.replace(/px/g,'')*sketchNum,arr[index].style.top.replace(/px/g,'')*sketchNum]
|
location = [arr[index].style.left.replace(/px/g,'')*sketchNum,arr[index].style.top.replace(/px/g,'')*sketchNum]
|
||||||
}
|
}
|
||||||
let obj = {
|
let obj = {
|
||||||
angle : !this.overallSingle ? 0:arr[index].transform.rotateZ,
|
angle : arr[index].transform.rotateZ,
|
||||||
|
// angle : !this.overallSingle ? 0:arr[index].transform.rotateZ,
|
||||||
location : location,
|
location : location,
|
||||||
priority:arr[index].style.zIndex,
|
priority:arr[index].style.zIndex,
|
||||||
scale: scale,
|
scale: scale,
|
||||||
@@ -1074,6 +1078,7 @@ export default defineComponent({
|
|||||||
i{
|
i{
|
||||||
display: flex;
|
display: flex;
|
||||||
color: #14bcff;
|
color: #14bcff;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.animtion1{
|
.animtion1{
|
||||||
animation: anim 4s 2s linear infinite;
|
animation: anim 4s 2s linear infinite;
|
||||||
|
|||||||
@@ -521,24 +521,37 @@ export default defineComponent({
|
|||||||
this.setPosition('')
|
this.setPosition('')
|
||||||
// this.getworkspace()
|
// this.getworkspace()
|
||||||
}
|
}
|
||||||
})
|
}).catch((res)=>{
|
||||||
|
this.isShowMark = false
|
||||||
|
// this.getworkspace()
|
||||||
|
});
|
||||||
},
|
},
|
||||||
getMannequins(){//获取模特
|
getMannequins(isSetmannequins:any){//获取模特
|
||||||
Https.axiosGet(Https.httpUrls.getMannequins,{params:{sex:this.workspaceItem.sex}}).then((rv: any) => {
|
let styleData = this.workspaceItem.style?this.workspaceItem.style:''
|
||||||
if (rv) {
|
return new Promise((resolve,reject)=>{
|
||||||
// rv.forEach((item:any)=>{
|
Https.axiosGet(Https.httpUrls.getMannequins,{params:{sex:this.workspaceItem.sex,style:styleData}}).then(async (rv: any) => {
|
||||||
// item.type ==
|
if (rv) {
|
||||||
// })
|
if(rv[0].type == 'System'){
|
||||||
if(rv[0].type == 'System'){
|
let a = rv[0]
|
||||||
let a = rv[0]
|
rv[0] = rv[1]
|
||||||
rv[0] = rv[1]
|
rv[1] = a
|
||||||
rv[1] = a
|
}
|
||||||
|
this.mannequins = rv
|
||||||
|
if(this.mannequins?.[0]==null){
|
||||||
|
this.systemSeleves = false
|
||||||
|
}
|
||||||
|
if(isSetmannequins){
|
||||||
|
// this.workspaceItem.femalePresignedUrl = this.mannequins?.[1]?.modelList[0].presignedUrl
|
||||||
|
// this.workspaceItem.mannequinFemaleType = 'System'
|
||||||
|
// this.workspaceItem.mannequinFemaleId = this.mannequins?.[1]?.modelList[0].id
|
||||||
|
await this.setMannequins(this.mannequins?.[1]?.modelList[0],'System')
|
||||||
|
// this.workspaceItem.mannequinUrl = this.mannequins?.[1]?.modelList[0].presignedUrl
|
||||||
|
// this.workspaceItem.mannequinType = 'System'
|
||||||
|
// this.workspaceItem.mannequinId = this.mannequins?.[1]?.modelList[0].id
|
||||||
|
}
|
||||||
|
resolve('')
|
||||||
}
|
}
|
||||||
this.mannequins = rv
|
})
|
||||||
if(this.mannequins?.[0]==null){
|
|
||||||
this.systemSeleves = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
putWorkspace(data:any,index:any){//修改workspace
|
putWorkspace(data:any,index:any){//修改workspace
|
||||||
@@ -678,7 +691,7 @@ export default defineComponent({
|
|||||||
this.workspaceItem.sexEnum = v
|
this.workspaceItem.sexEnum = v
|
||||||
this.openType.sex = false
|
this.openType.sex = false
|
||||||
this.workspaceItem.sex = v.value
|
this.workspaceItem.sex = v.value
|
||||||
this.getMannequins()
|
this.getMannequins(false)
|
||||||
this.setMannequinsSex()
|
this.setMannequinsSex()
|
||||||
this.setPosition('sex')
|
this.setPosition('sex')
|
||||||
|
|
||||||
@@ -694,33 +707,37 @@ export default defineComponent({
|
|||||||
// this.workspaceItem.mannequinId = item.id
|
// this.workspaceItem.mannequinId = item.id
|
||||||
// this.workspaceItem.mannequinType = str
|
// this.workspaceItem.mannequinType = str
|
||||||
// this.workspaceItem.mannequinUrl = item.presignedUrl
|
// this.workspaceItem.mannequinUrl = item.presignedUrl
|
||||||
let id
|
return new Promise((resolve, reject) => {
|
||||||
if(this.workspaceItem.sexEnum.value == 'Female'){
|
let id
|
||||||
id = this.workspaceItem.mannequinFemaleId
|
if(this.workspaceItem.sexEnum.value == 'Female'){
|
||||||
this.workspaceItem.femalePresignedUrl = item.presignedUrl
|
id = this.workspaceItem.mannequinFemaleId
|
||||||
this.workspaceItem.mannequinFemaleType = str
|
this.workspaceItem.femalePresignedUrl = item.presignedUrl
|
||||||
this.workspaceItem.mannequinFemaleId = item.id
|
this.workspaceItem.mannequinFemaleType = str
|
||||||
}else if(this.workspaceItem.sexEnum.value == 'Male'){
|
this.workspaceItem.mannequinFemaleId = item.id
|
||||||
id = this.workspaceItem.mannequinMaleId
|
}else if(this.workspaceItem.sexEnum.value == 'Male'){
|
||||||
this.workspaceItem.malePresignedUrl = item.presignedUrl
|
id = this.workspaceItem.mannequinMaleId
|
||||||
this.workspaceItem.mannequinMaleType = str
|
this.workspaceItem.malePresignedUrl = item.presignedUrl
|
||||||
this.workspaceItem.mannequinMaleId = item.id
|
this.workspaceItem.mannequinMaleType = str
|
||||||
}
|
this.workspaceItem.mannequinMaleId = item.id
|
||||||
// if(id != item.id){
|
}
|
||||||
if(this.driver__.driver){
|
// if(id != item.id){
|
||||||
// this.openType.habit = false
|
if(this.driver__.driver){
|
||||||
nextTick().then(()=>{
|
// this.openType.habit = false
|
||||||
// driverObj__.moveTo(2);
|
nextTick().then(()=>{
|
||||||
driverObj__.moveNext();
|
// driverObj__.moveTo(2);
|
||||||
this.openType.model = false
|
driverObj__.moveNext();
|
||||||
|
this.openType.model = false
|
||||||
|
|
||||||
// driverObj__.moveNext();
|
// driverObj__.moveNext();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
this.workspaceItem.mannequinUrl = item.presignedUrl
|
this.workspaceItem.mannequinUrl = item.presignedUrl
|
||||||
this.workspaceItem.mannequinType = str
|
this.workspaceItem.mannequinType = str
|
||||||
this.workspaceItem.mannequinId = item.id
|
this.workspaceItem.mannequinId = item.id
|
||||||
|
resolve('')
|
||||||
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
// FEMALE MALE
|
// FEMALE MALE
|
||||||
setMannequinsSex(){
|
setMannequinsSex(){
|
||||||
@@ -755,7 +772,7 @@ export default defineComponent({
|
|||||||
this.openType.workspace = false
|
this.openType.workspace = false
|
||||||
this.openType.sex = false
|
this.openType.sex = false
|
||||||
this.openType.model = !this.openType.model
|
this.openType.model = !this.openType.model
|
||||||
this.getMannequins()
|
this.getMannequins(false)
|
||||||
if(this.driver__.driver && this.openType.model){
|
if(this.driver__.driver && this.openType.model){
|
||||||
nextTick().then(()=>{
|
nextTick().then(()=>{
|
||||||
driverObj__.moveTo(4);
|
driverObj__.moveTo(4);
|
||||||
@@ -794,9 +811,14 @@ export default defineComponent({
|
|||||||
// sureSelectModel(event: any) {
|
// sureSelectModel(event: any) {
|
||||||
// this.store.commit("setTemplateData", event);
|
// this.store.commit("setTemplateData", event);
|
||||||
// },
|
// },
|
||||||
setWorkspaceStyle(data: any){
|
async setWorkspaceStyle(data: any){
|
||||||
this.workspaceItem.styleId = data.id
|
// this.workspaceItem.styleId = data.id
|
||||||
this.workspaceItem.styleName = data.name
|
this.workspaceItem.styleName = data.name
|
||||||
|
this.workspaceItem.style = data.value
|
||||||
|
this.workspaceItem.styleId = data.id
|
||||||
|
if(data.isRevampModel){
|
||||||
|
await this.getMannequins(true)
|
||||||
|
}
|
||||||
this.putWorkspace(this.workspaceItem,this.workspaceItem.id)
|
this.putWorkspace(this.workspaceItem,this.workspaceItem.id)
|
||||||
},
|
},
|
||||||
setStyle(){
|
setStyle(){
|
||||||
@@ -1025,6 +1047,8 @@ export default defineComponent({
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.model_current{
|
.model_current{
|
||||||
margin-right: calc(3rem*1.2);
|
margin-right: calc(3rem*1.2);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
.model_text{
|
.model_text{
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ setup(props,{emit}) {
|
|||||||
let data = {
|
let data = {
|
||||||
id:habitSetStyleData.selectStyle.id,
|
id:habitSetStyleData.selectStyle.id,
|
||||||
name:habitSetStyleData.selectStyle.name,
|
name:habitSetStyleData.selectStyle.name,
|
||||||
|
value:habitSetStyleData.selectStyle.value,
|
||||||
isRevampModel:false,
|
isRevampModel:false,
|
||||||
}
|
}
|
||||||
if(oldDataId == data.id){
|
if(oldDataId == data.id){
|
||||||
@@ -150,10 +151,10 @@ setup(props,{emit}) {
|
|||||||
let setClear = ()=>{
|
let setClear = ()=>{
|
||||||
habitSetStyleData.selectStyle.id = ''
|
habitSetStyleData.selectStyle.id = ''
|
||||||
habitSetStyleData.selectStyle.name = ''
|
habitSetStyleData.selectStyle.name = ''
|
||||||
|
habitSetStyleData.selectStyle.value = ''
|
||||||
}
|
}
|
||||||
let setItemSelect = (item:any)=>{
|
let setItemSelect = (item:any)=>{
|
||||||
habitSetStyleData.selectStyle.name = item.name
|
habitSetStyleData.selectStyle = Object.assign({},item)
|
||||||
habitSetStyleData.selectStyle.id = item.id
|
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
habitSetStyle,
|
habitSetStyle,
|
||||||
|
|||||||
@@ -123,9 +123,8 @@
|
|||||||
<img src="#" :title="pantongNameList[index]">
|
<img src="#" :title="pantongNameList[index]">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="started_btn upload_color_btn" v-show="selectColorList.length>0" @click="()=>isSelectSuccessively = !isSelectSuccessively">{{isSelectSuccessively?$t('ColorboardUpload.SelectSuccessively'):$t('ColorboardUpload.SelectSeparately')}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="right_content_line">
|
<div class="right_content_line">
|
||||||
<div class="upload_right_header">
|
<div class="upload_right_header">
|
||||||
@@ -201,6 +200,7 @@ export default defineComponent({
|
|||||||
selectIndex:-1,
|
selectIndex:-1,
|
||||||
gradientShow:false,
|
gradientShow:false,
|
||||||
})
|
})
|
||||||
|
let isSelectSuccessively = ref(false)
|
||||||
return {
|
return {
|
||||||
fileList,
|
fileList,
|
||||||
colorList,
|
colorList,
|
||||||
@@ -209,6 +209,7 @@ export default defineComponent({
|
|||||||
driver__,
|
driver__,
|
||||||
t,
|
t,
|
||||||
gradient,
|
gradient,
|
||||||
|
isSelectSuccessively,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
@@ -487,16 +488,16 @@ export default defineComponent({
|
|||||||
this.selectColor = {rgba:{r:color[0],g:color[1],b:color[2],a:1},hex:colorHex}
|
this.selectColor = {rgba:{r:color[0],g:color[1],b:color[2],a:1},hex:colorHex}
|
||||||
// console.log(this.colorList);
|
// console.log(this.colorList);
|
||||||
// console.log(selectColorList);
|
// console.log(selectColorList);
|
||||||
let colorListIndex = []
|
// let colorListIndex = []
|
||||||
this.colorList.forEach((item,index)=>{
|
// this.colorList.forEach((item,index)=>{
|
||||||
if(!item.rgba){
|
// if(!item.rgba){
|
||||||
colorListIndex.push(index)
|
// colorListIndex.push(index)
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
for (let index = 0; index < selectColorList.length; index++) {
|
// for (let index = 0; index < selectColorList.length; index++) {
|
||||||
this.colorList[colorListIndex[0]] = selectColorList[index]
|
// this.colorList[colorListIndex[0]] = selectColorList[index]
|
||||||
colorListIndex.splice(0,1)
|
// colorListIndex.splice(0,1)
|
||||||
}
|
// }
|
||||||
nextTick().then(()=>{
|
nextTick().then(()=>{
|
||||||
if(this.driver__.driver){
|
if(this.driver__.driver){
|
||||||
driverObj__.moveNext()
|
driverObj__.moveNext()
|
||||||
@@ -524,10 +525,21 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
setUplpadColor(color){
|
setUplpadColor(color){
|
||||||
nextTick().then(()=>{
|
nextTick().then(()=>{
|
||||||
this.selectColor = color
|
if(this.isSelectSuccessively){
|
||||||
if(this.driver__.driver){
|
for (let index = 0; index < this.colorList.length; index++) {
|
||||||
driverObj__.moveNext()
|
if(!this.colorList[index].rgba){
|
||||||
|
this.selectIndex = index
|
||||||
|
this.selectColor = color
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
this.selectColor = color
|
||||||
|
if(this.driver__.driver){
|
||||||
|
driverObj__.moveNext()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -746,7 +758,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let colorList =this.colorList.filter((v) => v && Object.keys(v).length)
|
let colorList =this.colorList.filter((v) => v && Object.keys(v).length)
|
||||||
this.setColorboardList(colorList)
|
this.setColorboardList(colorList)
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
@@ -834,10 +846,12 @@ export default defineComponent({
|
|||||||
.right_content_line{
|
.right_content_line{
|
||||||
padding-left: calc(3rem*1.2);
|
padding-left: calc(3rem*1.2);
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-right: calc(5rem*1.2);
|
padding-right: calc(3rem*1.2);
|
||||||
|
margin-right: 2.4rem;
|
||||||
.upload_centetn{
|
.upload_centetn{
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
height: calc(100% - 4.4rem*1.2);
|
height: calc(100% - 4.4rem*1.2);
|
||||||
|
padding-bottom: 4rem;
|
||||||
}
|
}
|
||||||
.upload_centetn::-webkit-scrollbar {
|
.upload_centetn::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -923,6 +937,13 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.upload_color_btn{
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
bottom: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
.color_setting_block{
|
.color_setting_block{
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background: linear-gradient(70deg, #eee4f3, #f3f4e6);
|
background: linear-gradient(70deg, #eee4f3, #f3f4e6);
|
||||||
|
|||||||
@@ -205,7 +205,7 @@
|
|||||||
<div><span class="icon iconfont icon-zhuyi"></span>{{ $t('exportModel.insufficient') }}</div>
|
<div><span class="icon iconfont icon-zhuyi"></span>{{ $t('exportModel.insufficient') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="exportCanvasBox_left_btn">
|
<div class="exportCanvasBox_left_btn">
|
||||||
<div class="subitOkPreviewBtn" :class="{active:allBoardData.printboardFiles.length<=0}" :title="allBoardData.printboardFiles.length<=0?$t('exportModel.jsContent2'):''" @click="setHDExport">{{ $t('exportModel.HDExport') }}</div>
|
<!-- <div class="subitOkPreviewBtn" :class="{active:allBoardData.printboardFiles.length<=0}" :title="allBoardData.printboardFiles.length<=0?$t('exportModel.jsContent2'):''" @click="setHDExport">{{ $t('exportModel.HDExport') }}</div> -->
|
||||||
<div class="subitOkPreviewBtn" @click="setSubmit">{{ $t('exportModel.Save') }}</div>
|
<div class="subitOkPreviewBtn" @click="setSubmit">{{ $t('exportModel.Save') }}</div>
|
||||||
<div class="subitOkPreviewBtn" @click="setShare">{{ $t('exportModel.Share') }}</div>
|
<div class="subitOkPreviewBtn" @click="setShare">{{ $t('exportModel.Share') }}</div>
|
||||||
<div class="subitOkPreviewBtn Guide_1_32" @click="setExport">{{ $t('exportModel.Export') }}</div>
|
<div class="subitOkPreviewBtn Guide_1_32" @click="setExport">{{ $t('exportModel.Export') }}</div>
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
<div class="generalModelOperate_btn_ok" :class="[credits < (allExportSR.filter(item=> item.checked ).length*5)?'active':'']" @click="setExportSR">OK</div>
|
<div class="generalModelOperate_btn_ok" :class="[credits < (allExportSR.filter(item=> item.checked ).length*5)?'active':'']" @click="setExportSR">OK</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<publish ref="publish"></publish>
|
<publish ref="publish" @setPublish="setSubmit"></publish>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -573,6 +573,8 @@ export default defineComponent({
|
|||||||
isShowMark.value = false
|
isShowMark.value = false
|
||||||
}
|
}
|
||||||
updateCanvasState('')//加载完成后记录一下
|
updateCanvasState('')//加载完成后记录一下
|
||||||
|
setOperation('move')
|
||||||
|
closeNav.value.tool = true
|
||||||
if(driver__.value.driver){
|
if(driver__.value.driver){
|
||||||
driverObj__.moveNext()
|
driverObj__.moveNext()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,12 +39,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-popover>
|
<!-- <a-popover>
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>Seed</p>
|
<p>Seed</p>
|
||||||
</template>
|
</template>
|
||||||
<input class="search_seed" max="9999" v-show="scene?.value == 'Logo'" @input="ifSeedValue" v-model="searchPictureSeed" type="Number" placeholder='Seed' min="0">
|
<input class="search_seed" max="9999" v-show="scene?.value == 'Logo'" @input="ifSeedValue" v-model="searchPictureSeed" type="Number" placeholder='Seed' min="0">
|
||||||
</a-popover>
|
</a-popover> -->
|
||||||
|
|
||||||
<input
|
<input
|
||||||
class="search_input"
|
class="search_input"
|
||||||
@@ -244,6 +244,7 @@ export default defineComponent({
|
|||||||
let remGenerate:any = ref(false)
|
let remGenerate:any = ref(false)
|
||||||
let remGenerateTime:any = ref()
|
let remGenerateTime:any = ref()
|
||||||
let styleRecommend:any = inject('styleRecommend')
|
let styleRecommend:any = inject('styleRecommend')
|
||||||
|
let generateLevel2Type = ''
|
||||||
return {
|
return {
|
||||||
searchPictureName,
|
searchPictureName,
|
||||||
searchPictureSeed,
|
searchPictureSeed,
|
||||||
@@ -270,6 +271,7 @@ export default defineComponent({
|
|||||||
remGenerate,
|
remGenerate,
|
||||||
remGenerateTime,
|
remGenerateTime,
|
||||||
styleRecommend,
|
styleRecommend,
|
||||||
|
generateLevel2Type,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
data(prop) {
|
data(prop) {
|
||||||
@@ -431,6 +433,9 @@ export default defineComponent({
|
|||||||
sloganText = this.searchPictureName
|
sloganText = this.searchPictureName
|
||||||
if(this.upload.level1Type == "Sketchboard"){
|
if(this.upload.level1Type == "Sketchboard"){
|
||||||
level2Type = this.sketchboardList?.[0]?.categoryValue?this.sketchboardList[0].categoryValue:''
|
level2Type = this.sketchboardList?.[0]?.categoryValue?this.sketchboardList[0].categoryValue:''
|
||||||
|
if(this.workspace.styleName){
|
||||||
|
sloganText = `${this.workspace.styleName},${sloganText}`
|
||||||
|
}
|
||||||
}else if(this.upload.level1Type == "Printboard"){
|
}else if(this.upload.level1Type == "Printboard"){
|
||||||
level2Type = this.scene?.value
|
level2Type = this.scene?.value
|
||||||
if(level2Type == 'Slogan' && this.searchPictureName == ''){
|
if(level2Type == 'Slogan' && this.searchPictureName == ''){
|
||||||
@@ -440,7 +445,7 @@ export default defineComponent({
|
|||||||
sloganText = `${this.printModel.value},${sloganText}`
|
sloganText = `${this.printModel.value},${sloganText}`
|
||||||
}
|
}
|
||||||
if(!base64 && level2Type == 'Slogan'){
|
if(!base64 && level2Type == 'Slogan'){
|
||||||
message.info('请绘制Slogan');
|
message.info(this.t('Generate.jsContent10'));
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -459,6 +464,7 @@ export default defineComponent({
|
|||||||
gender:this.workspace.sexEnum.value,
|
gender:this.workspace.sexEnum.value,
|
||||||
sloganBase64:base64,
|
sloganBase64:base64,
|
||||||
}
|
}
|
||||||
|
this.generateLevel2Type = data.level2Type
|
||||||
this.isGenerate = true
|
this.isGenerate = true
|
||||||
this.remGenerateTime = setTimeout(()=>{
|
this.remGenerateTime = setTimeout(()=>{
|
||||||
this.remGenerate = true
|
this.remGenerate = true
|
||||||
@@ -484,6 +490,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
}
|
}
|
||||||
).catch(res=>{
|
).catch(res=>{
|
||||||
|
this.generateLevel2Type = ''
|
||||||
this.isGenerate = false
|
this.isGenerate = false
|
||||||
clearInterval(this.remGenerateTime)
|
clearInterval(this.remGenerateTime)
|
||||||
this.remGenerate = false
|
this.remGenerate = false
|
||||||
@@ -534,6 +541,7 @@ export default defineComponent({
|
|||||||
clearInterval(this.remGenerateTime)
|
clearInterval(this.remGenerateTime)
|
||||||
this.remGenerate = false
|
this.remGenerate = false
|
||||||
this.isGenerate = false
|
this.isGenerate = false
|
||||||
|
this.generateLevel2Type = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -542,6 +550,7 @@ export default defineComponent({
|
|||||||
clearInterval(this.remGenerateTime)
|
clearInterval(this.remGenerateTime)
|
||||||
this.isGenerate = false
|
this.isGenerate = false
|
||||||
this.remGenerate = false
|
this.remGenerate = false
|
||||||
|
this.generateLevel2Type = ''
|
||||||
});
|
});
|
||||||
},1000)
|
},1000)
|
||||||
},
|
},
|
||||||
@@ -552,7 +561,16 @@ export default defineComponent({
|
|||||||
clearInterval(this.generateTime)
|
clearInterval(this.generateTime)
|
||||||
if(this.generateProceedList){
|
if(this.generateProceedList){
|
||||||
let str = this.generateProceedList.map((obj:any) => obj.taskId).join(',');
|
let str = this.generateProceedList.map((obj:any) => obj.taskId).join(',');
|
||||||
let data = {uniqueId:str,userId:this?.userInfo?.userId,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone}
|
let type = 'Generate'
|
||||||
|
if(this.generateLevel2Type == 'Logo'){
|
||||||
|
type = 'Logo'
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
uniqueId:str,
|
||||||
|
userId:this?.userInfo?.userId,
|
||||||
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
type: type
|
||||||
|
}
|
||||||
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(
|
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
this.generateProceedList = []
|
this.generateProceedList = []
|
||||||
@@ -576,6 +594,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
if(this.upload.level1Type == "Moodboard"){
|
if(this.upload.level1Type == "Moodboard"){
|
||||||
this.styleRecommend.push(value)
|
this.styleRecommend.push(value)
|
||||||
|
this.styleRecommend = [...new Set(this.styleRecommend)]
|
||||||
}
|
}
|
||||||
this.searchPictureName += str + value
|
this.searchPictureName += str + value
|
||||||
},
|
},
|
||||||
@@ -674,6 +693,10 @@ export default defineComponent({
|
|||||||
this.sketchboardList = data
|
this.sketchboardList = data
|
||||||
},
|
},
|
||||||
deleteFile(item: any) {
|
deleteFile(item: any) {
|
||||||
|
if(this.scene?.value == 'Slogan' && this.type_.type2 == 'Printboard'){
|
||||||
|
let createSlogan:any = this.$refs.createSlogan
|
||||||
|
createSlogan.isDeleteSlogan = true
|
||||||
|
}
|
||||||
this.sketchboardList.splice(item, 1);
|
this.sketchboardList.splice(item, 1);
|
||||||
// if((this.sketchboardList.length<2 && this.moodboarList.length == 0) || this.sketchboardList.length == 0){
|
// if((this.sketchboardList.length<2 && this.moodboarList.length == 0) || this.sketchboardList.length == 0){
|
||||||
// this.printModel = {
|
// this.printModel = {
|
||||||
@@ -721,7 +744,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
deleteGenerate(index:any){
|
deleteGenerate(index:any){
|
||||||
if(this.isGenerate)return
|
// if(this.isGenerate)return
|
||||||
|
let num = this.fileList.length
|
||||||
let _this = this
|
let _this = this
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: this.t('LibraryPage.jsContent1'),
|
title: this.t('LibraryPage.jsContent1'),
|
||||||
@@ -731,7 +755,8 @@ export default defineComponent({
|
|||||||
mask:false,
|
mask:false,
|
||||||
centered:true,
|
centered:true,
|
||||||
onOk() {
|
onOk() {
|
||||||
_this.fileList.splice(index,1)
|
let a = _this.fileList.length - num
|
||||||
|
_this.fileList.splice(index-a,1)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ export default defineComponent({
|
|||||||
(rv) => {
|
(rv) => {
|
||||||
|
|
||||||
if(rv){
|
if(rv){
|
||||||
if(rv.isTutorial){
|
if(rv?.isTutorial){
|
||||||
this.record.push({
|
this.record.push({
|
||||||
state:1,
|
state:1,
|
||||||
str:this.t('RobotAssist.jsContent5'),
|
str:this.t('RobotAssist.jsContent5'),
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export default defineComponent({
|
|||||||
value:'SR',
|
value:'SR',
|
||||||
})
|
})
|
||||||
let getTaskTime:any = null
|
let getTaskTime:any = null
|
||||||
let isShowMark:any = false
|
let isShowMark:any = ref(false)
|
||||||
return {
|
return {
|
||||||
...toRefs(filter),
|
...toRefs(filter),
|
||||||
store,
|
store,
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let httpsUrl
|
let httpsUrl
|
||||||
if(this.modeOfPayment == 'paypal'){
|
if(this.modeOfPayment == 'paypal'){
|
||||||
httpsUrl = Https.httpUrls.payAlipay+`/${this.price.num}?returnUrl=${url}`
|
httpsUrl = Https.httpUrls.payPaypal+`/${this.price.num}?returnUrl=${url}`
|
||||||
}else{
|
}else{
|
||||||
httpsUrl = Https.httpUrls.payAlipayHK+`?amount=${this.price.num}&wallet=${this.modeOfPaymentDetail}`
|
httpsUrl = Https.httpUrls.payAlipayHK+`?amount=${this.price.num}&wallet=${this.modeOfPaymentDetail}`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,10 @@
|
|||||||
<div>Color</div>
|
<div>Color</div>
|
||||||
<input type="color" v-model="fill">
|
<input type="color" v-model="fill">
|
||||||
</div>
|
</div>
|
||||||
<div class="clearSlogan_center_btn_item">
|
<!-- <div class="clearSlogan_center_btn_item">
|
||||||
<div>font Size</div>
|
<div>font Size</div>
|
||||||
<input type="Number" v-model="fontSize">
|
<input type="Number" v-model="fontSize">
|
||||||
</div>
|
</div> -->
|
||||||
<div class="clearSlogan_center_btn_item">
|
<div class="clearSlogan_center_btn_item">
|
||||||
<div>Font Align</div>
|
<div>Font Align</div>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -105,6 +105,7 @@ export default defineComponent({
|
|||||||
let scale = 2;
|
let scale = 2;
|
||||||
let exportWH = 512
|
let exportWH = 512
|
||||||
let canvasWH = ref(0);
|
let canvasWH = ref(0);
|
||||||
|
let isDeleteSlogan = ref(false)
|
||||||
let textData = reactive({
|
let textData = reactive({
|
||||||
fill:'#000000',
|
fill:'#000000',
|
||||||
fontSize:'51',
|
fontSize:'51',
|
||||||
@@ -149,6 +150,13 @@ export default defineComponent({
|
|||||||
canvasWH.value = height
|
canvasWH.value = height
|
||||||
scale = exportWH/canvasWH.value
|
scale = exportWH/canvasWH.value
|
||||||
let oldCanvasDom = canvasBox.querySelector('.canvas-container')
|
let oldCanvasDom = canvasBox.querySelector('.canvas-container')
|
||||||
|
if(isDeleteSlogan.value && oldCanvasDom){
|
||||||
|
oldCanvasDom.remove()
|
||||||
|
canvas.remove(textbox);
|
||||||
|
canvas.dispose();
|
||||||
|
oldCanvasDom = null
|
||||||
|
isDeleteSlogan.value = false
|
||||||
|
}
|
||||||
// if(oldCanvasDom)oldCanvasDom.remove()
|
// if(oldCanvasDom)oldCanvasDom.remove()
|
||||||
if(!oldCanvasDom){
|
if(!oldCanvasDom){
|
||||||
var canvasDom = document.createElement("canvas");
|
var canvasDom = document.createElement("canvas");
|
||||||
@@ -160,7 +168,6 @@ export default defineComponent({
|
|||||||
isDrawingMode: false, // 开启绘图模式
|
isDrawingMode: false, // 开启绘图模式
|
||||||
});
|
});
|
||||||
canvas.on('object:moving',canvasMoving)
|
canvas.on('object:moving',canvasMoving)
|
||||||
|
|
||||||
setTextFun('请输入\n一段话吧~')
|
setTextFun('请输入\n一段话吧~')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,8 +275,8 @@ export default defineComponent({
|
|||||||
dom.style.left = domXY.x+'px'
|
dom.style.left = domXY.x+'px'
|
||||||
dom.style.top = (domXY.y + 5)+'px'
|
dom.style.top = (domXY.y + 5)+'px'
|
||||||
}
|
}
|
||||||
|
let textbox
|
||||||
let setTextFun = (str)=>{
|
let setTextFun = (str)=>{
|
||||||
let textbox
|
|
||||||
textbox = new fabric.IText(str, {
|
textbox = new fabric.IText(str, {
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
textAlign:'center'
|
textAlign:'center'
|
||||||
@@ -360,6 +367,7 @@ export default defineComponent({
|
|||||||
...toRefs(textData),
|
...toRefs(textData),
|
||||||
...toRefs(textDataList),
|
...toRefs(textDataList),
|
||||||
textBtnShow,
|
textBtnShow,
|
||||||
|
isDeleteSlogan,
|
||||||
t,
|
t,
|
||||||
init,
|
init,
|
||||||
setTextFun,
|
setTextFun,
|
||||||
|
|||||||
59
src/component/HomePage/fullScreenImg.vue
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<!-- <template>
|
||||||
|
<a-image
|
||||||
|
class="fullScreenImg"
|
||||||
|
:src="src"
|
||||||
|
/>
|
||||||
|
</template> -->
|
||||||
|
<template>
|
||||||
|
<a-image
|
||||||
|
class="fullScreenImg"
|
||||||
|
:width="width"
|
||||||
|
:src="src"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from 'vue';
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'fullScreenImg',
|
||||||
|
props:{
|
||||||
|
width:{
|
||||||
|
type:String,
|
||||||
|
default:'100%'
|
||||||
|
},
|
||||||
|
center:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false
|
||||||
|
},
|
||||||
|
src:{
|
||||||
|
type:String,
|
||||||
|
default:''
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang='less'>
|
||||||
|
.ant-image{
|
||||||
|
height: 100%;
|
||||||
|
.fullScreenImg{
|
||||||
|
width: 100%;
|
||||||
|
cursor: zoom-in;
|
||||||
|
&.active{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-image-mask{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-image-preview-mask{
|
||||||
|
.ant-image-preview-body{
|
||||||
|
.ant-image-preview-operations{
|
||||||
|
background: rgba(0, 0, 0, .5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
{{$t('Generate.Close')}}
|
{{$t('Generate.Close')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_clear started_btn">清空</div>
|
<!-- <div class="input_clear started_btn" @click="clearPrductimg">{{$t('ProductImg.Clear')}}</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right">
|
<div class="productImg_right">
|
||||||
@@ -123,11 +123,14 @@
|
|||||||
<div class="productImg_right_item_like">
|
<div class="productImg_right_item_like">
|
||||||
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
|
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right_item_scale">
|
<div class="productImg_right_item_scale iconLeft">
|
||||||
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
|
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right_item_menu iconLeft">
|
<div class="productImg_right_item_menu iconLeft">
|
||||||
<i class="fi fi-rr-circle-ellipsis" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
|
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
|
||||||
|
<ul v-show="item.menuShow">
|
||||||
|
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -136,15 +139,15 @@
|
|||||||
<div class="button_second" @click="setExport">{{$t('ProductImg.Export')}}</div>
|
<div class="button_second" @click="setExport">{{$t('ProductImg.Export')}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right_item_box generalScroll" v-mousewheel>
|
<div class="productImg_right_item_box generalScroll" v-mousewheel>
|
||||||
<div class="productImg_right_item" v-for="item,index in likeList[productimgMenu.value]" :key="item">
|
<div class="productImg_right_item" v-for="item,index in likeList" :key="item">
|
||||||
<img :src="item.url" alt="">
|
<img :src="item.url" alt="">
|
||||||
<div class="productImg_right_item_like iconLeft">
|
<div class="productImg_right_item_like">
|
||||||
<i class="fi fi-sr-heart" @click.stop="likeFile(item,'noLike',index)"></i>
|
<i class="fi fi-sr-heart" @click.stop="likeFile(item,'noLike',index)"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right_item_scale iconLeft">
|
<div class="productImg_right_item_scale iconLeft">
|
||||||
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(likeList[productimgMenu.value],index)"></i>
|
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(likeList,index)"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="productImg_right_item_menu">
|
<div class="productImg_right_item_menu iconLeft">
|
||||||
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
|
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
|
||||||
<ul v-show="item.menuShow">
|
<ul v-show="item.menuShow">
|
||||||
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
|
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
|
||||||
@@ -202,15 +205,15 @@ export default defineComponent({
|
|||||||
isProductimg:false,//开始生成
|
isProductimg:false,//开始生成
|
||||||
selectProductimgList:[],
|
selectProductimgList:[],
|
||||||
generateList:{},
|
generateList:{},
|
||||||
likeList:{},
|
likeList:[],
|
||||||
})
|
})
|
||||||
let productimgMenuList = ref([
|
let productimgMenuList = ref([
|
||||||
{
|
{
|
||||||
value:'ProductImage',
|
value:'ProductImage',
|
||||||
label:useI18n().t('ProductImg.ProductImage')
|
label:useI18n().t('ProductImg.ProductImage')
|
||||||
},{
|
},{
|
||||||
value:'ProductImage1',
|
value:'Relight',
|
||||||
label:'123123'
|
label:useI18n().t('ProductImg.Relight')
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
let productimgMenu:any = ref(productimgMenuList.value[0])
|
let productimgMenu:any = ref(productimgMenuList.value[0])
|
||||||
@@ -242,7 +245,7 @@ export default defineComponent({
|
|||||||
rv.forEach((item:any) => {
|
rv.forEach((item:any) => {
|
||||||
item.imgUrl = item.url
|
item.imgUrl = item.url
|
||||||
});
|
});
|
||||||
productImgData.likeList[productimgMenu.value.value] = rv
|
productImgData.likeList = rv
|
||||||
}
|
}
|
||||||
).catch(res=>{
|
).catch(res=>{
|
||||||
});
|
});
|
||||||
@@ -263,7 +266,7 @@ export default defineComponent({
|
|||||||
let cleardata = ()=>{
|
let cleardata = ()=>{
|
||||||
productImg.value = false
|
productImg.value = false
|
||||||
productImgData.isShowMark = false
|
productImgData.isShowMark = false
|
||||||
productImgData.likeList = {}
|
productImgData.likeList = []
|
||||||
productImgData.generateList = {}
|
productImgData.generateList = {}
|
||||||
productimgMenu.value = productimgMenuList.value[0]
|
productimgMenu.value = productimgMenuList.value[0]
|
||||||
}
|
}
|
||||||
@@ -278,6 +281,9 @@ export default defineComponent({
|
|||||||
file.id = res.data.id
|
file.id = res.data.id
|
||||||
file.isChecked = true
|
file.isChecked = true
|
||||||
file.type = 'ProductElement'
|
file.type = 'ProductElement'
|
||||||
|
if(productimgMenu.value.value == 'Relight'){
|
||||||
|
file.type = "ToProductImage"
|
||||||
|
}
|
||||||
productImgData.fileList[productimgMenu.value.value].filter((v: any) => v.status === "done");
|
productImgData.fileList[productimgMenu.value.value].filter((v: any) => v.status === "done");
|
||||||
}else{
|
}else{
|
||||||
bor = false
|
bor = false
|
||||||
@@ -322,17 +328,14 @@ export default defineComponent({
|
|||||||
Https.axiosPost(url, data).then(
|
Https.axiosPost(url, data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
if(str == 'like'){
|
if(str == 'like'){
|
||||||
if(!productImgData.likeList[productimgMenu.value.value]){
|
productImgData.likeList.push(item)
|
||||||
productImgData.likeList[productimgMenu.value.value] = []
|
|
||||||
}
|
|
||||||
productImgData.likeList[productimgMenu.value.value].push(item)
|
|
||||||
productImgData.generateList[productimgMenu.value.value].splice(index,1)
|
productImgData.generateList[productimgMenu.value.value].splice(index,1)
|
||||||
}else{
|
}else{
|
||||||
if(!productImgData.generateList[productimgMenu.value.value]){
|
if(!productImgData.generateList[productimgMenu.value.value]){
|
||||||
productImgData.generateList[productimgMenu.value.value] = []
|
productImgData.generateList[productimgMenu.value.value] = []
|
||||||
}
|
}
|
||||||
productImgData.generateList[productimgMenu.value.value].push(item)
|
productImgData.generateList[productimgMenu.value.value].push(item)
|
||||||
productImgData.likeList[productimgMenu.value.value].splice(index,1)
|
productImgData.likeList.splice(index,1)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -341,11 +344,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let setExport = ()=>{
|
let setExport = ()=>{
|
||||||
let imgList:any = []
|
let imgList:any = []
|
||||||
productimgMenuList.value.forEach((item:any)=>{
|
imgList = productImgData.likeList
|
||||||
if(productImgData.likeList[item.value]){
|
|
||||||
imgList.push(...productImgData.likeList[item.value])
|
|
||||||
}
|
|
||||||
})
|
|
||||||
let data = {
|
let data = {
|
||||||
key:'FinalizeImage',
|
key:'FinalizeImage',
|
||||||
imgList:imgList,
|
imgList:imgList,
|
||||||
@@ -386,6 +385,10 @@ export default defineComponent({
|
|||||||
if(item.isChecked){
|
if(item.isChecked){
|
||||||
obj.elementId = item.designOutfitId
|
obj.elementId = item.designOutfitId
|
||||||
obj.elementType = 'DesignOutfit'
|
obj.elementType = 'DesignOutfit'
|
||||||
|
if(productimgMenu.value.value == 'Relight'){
|
||||||
|
obj.elementId = item.id
|
||||||
|
obj.elementType = 'ToProductImage'
|
||||||
|
}
|
||||||
selectArr.push(JSON.parse(JSON.stringify(obj)))
|
selectArr.push(JSON.parse(JSON.stringify(obj)))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -404,7 +407,11 @@ export default defineComponent({
|
|||||||
remPrductimgTime = setTimeout(()=>{
|
remPrductimgTime = setTimeout(()=>{
|
||||||
productImgData.remProductimg = true
|
productImgData.remProductimg = true
|
||||||
},10000)
|
},10000)
|
||||||
Https.axiosPost(Https.httpUrls.toProduct, data).then(
|
let url = Https.httpUrls.toProduct
|
||||||
|
if(productimgMenu.value.value == 'Relight'){
|
||||||
|
url = Https.httpUrls.relight
|
||||||
|
}
|
||||||
|
Https.axiosPost(url, data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
let arr:any = []
|
let arr:any = []
|
||||||
rv.forEach((item:any)=>{
|
rv.forEach((item:any)=>{
|
||||||
@@ -424,10 +431,15 @@ export default defineComponent({
|
|||||||
let data = dataList
|
let data = dataList
|
||||||
let dataNum = dataList.length
|
let dataNum = dataList.length
|
||||||
let state = true
|
let state = true
|
||||||
|
let url = Https.httpUrls.toProductImageResult
|
||||||
|
if(productimgMenu.value.value == 'Relight'){
|
||||||
|
url = Https.httpUrls.relightResult
|
||||||
|
}
|
||||||
|
|
||||||
prductimgTime = setInterval(()=>{
|
prductimgTime = setInterval(()=>{
|
||||||
if(!state)return
|
if(!state)return
|
||||||
state = false
|
state = false
|
||||||
Https.axiosPost(Https.httpUrls.toProductImageResult, data).then(
|
Https.axiosPost(url, data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
state = true
|
state = true
|
||||||
if(productImgData.isProductimg){//防止取消后有正在执行的获取状态
|
if(productImgData.isProductimg){//防止取消后有正在执行的获取状态
|
||||||
@@ -499,6 +511,7 @@ export default defineComponent({
|
|||||||
selectList.value[productimgMenu.value.value] = []
|
selectList.value[productimgMenu.value.value] = []
|
||||||
}
|
}
|
||||||
if(selectList.value[menuItem.value].indexOf(item) == -1){
|
if(selectList.value[menuItem.value].indexOf(item) == -1){
|
||||||
|
item.isChecked = true
|
||||||
selectList.value[menuItem.value].push(item)
|
selectList.value[menuItem.value].push(item)
|
||||||
}
|
}
|
||||||
generalIsMenuShow.menuShow = false
|
generalIsMenuShow.menuShow = false
|
||||||
@@ -507,6 +520,9 @@ export default defineComponent({
|
|||||||
generalIsMenuShow.menuShow = false
|
generalIsMenuShow.menuShow = false
|
||||||
generalIsMenuShow = {}
|
generalIsMenuShow = {}
|
||||||
document.removeEventListener('click',removeMenuShow)
|
document.removeEventListener('click',removeMenuShow)
|
||||||
|
}
|
||||||
|
let clearPrductimg = ()=>{
|
||||||
|
|
||||||
}
|
}
|
||||||
//超分
|
//超分
|
||||||
let setTask = (data:any)=>{
|
let setTask = (data:any)=>{
|
||||||
@@ -538,6 +554,7 @@ export default defineComponent({
|
|||||||
setScaleImage,
|
setScaleImage,
|
||||||
setMenu,
|
setMenu,
|
||||||
setMenuShow,
|
setMenuShow,
|
||||||
|
clearPrductimg,
|
||||||
setTask,
|
setTask,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@@ -725,7 +742,7 @@ export default defineComponent({
|
|||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
.input_box{
|
.input_box{
|
||||||
flex: 0;
|
flex: 0;
|
||||||
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
.started_btn{
|
.started_btn{
|
||||||
// width: 13rem;
|
// width: 13rem;
|
||||||
@@ -760,9 +777,16 @@ export default defineComponent({
|
|||||||
.productImg_right_item_like,.productImg_right_item_scale,.productImg_right_item_menu{
|
.productImg_right_item_like,.productImg_right_item_scale,.productImg_right_item_menu{
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 1rem;
|
top: 2rem;
|
||||||
right: 2rem;
|
right: 2rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
background: #fff;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: .5rem;
|
||||||
|
border: .1rem solid #ccc;
|
||||||
.fi-sr-heart{
|
.fi-sr-heart{
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
@@ -771,12 +795,15 @@ export default defineComponent({
|
|||||||
ul{
|
ul{
|
||||||
top: 100%;
|
top: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 10rem;
|
width: 13rem;
|
||||||
|
left: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: calc(1rem*1.2);
|
border-radius: calc(1rem*1.2);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
z-index: 3;
|
||||||
li{
|
li{
|
||||||
background: #cccccc;
|
background: #cccccc;
|
||||||
|
padding: .5rem 1rem;
|
||||||
}
|
}
|
||||||
li:hover{
|
li:hover{
|
||||||
// background: rgba(0,0,0,.4);
|
// background: rgba(0,0,0,.4);
|
||||||
@@ -790,12 +817,12 @@ export default defineComponent({
|
|||||||
right: auto;
|
right: auto;
|
||||||
}
|
}
|
||||||
.productImg_right_item_scale{
|
.productImg_right_item_scale{
|
||||||
top: 4rem;
|
top: 6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.productImg_right_item:hover{
|
.productImg_right_item:hover{
|
||||||
.productImg_right_item_like,.productImg_right_item_scale,.productImg_right_item_menu{
|
.productImg_right_item_like,.productImg_right_item_scale,.productImg_right_item_menu{
|
||||||
display: block;
|
display: flex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.productImg_right_item:last-child{
|
.productImg_right_item:last-child{
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="scaleImage_content">
|
<div class="scaleImage_content">
|
||||||
|
<img v-if="isComparison" :src="scaleImageList[scaleImageIndex]?.sourceUrl">
|
||||||
<img :src="scaleImageList[scaleImageIndex]?.imgUrl">
|
<img :src="scaleImageList[scaleImageIndex]?.imgUrl">
|
||||||
<!-- <img v-if="isComparison" :src="scaleImageList[scaleImageIndex]?.url"> -->
|
|
||||||
<div class="img_operate_block" v-if="isLike">
|
<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-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>
|
<i v-else class="fi fi-sr-heart operate_icon" :adminLike="!!scaleImageList[scaleImageIndex]?.like" @click.stop="LikeFile(scaleImageList[scaleImageIndex],'noLike')"></i>
|
||||||
|
|||||||
@@ -602,7 +602,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
confrimSubmit(){
|
async confrimSubmit(){
|
||||||
let param = {
|
let param = {
|
||||||
libraryId:this.printObject.id,
|
libraryId:this.printObject.id,
|
||||||
templateId:this.printObject.templateId || null,
|
templateId:this.printObject.templateId || null,
|
||||||
@@ -610,7 +610,7 @@ export default defineComponent({
|
|||||||
modelSex:this.sex,
|
modelSex:this.sex,
|
||||||
checkMd5:1,
|
checkMd5:1,
|
||||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
...this.getPrintLocation()
|
...await this.getPrintLocation()
|
||||||
}
|
}
|
||||||
if(this.userInfo.userId == 88 || this.userInfo.userId == 83){
|
if(this.userInfo.userId == 88 || this.userInfo.userId == 83){
|
||||||
param.modelType = this.modelType
|
param.modelType = this.modelType
|
||||||
@@ -686,8 +686,19 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getPrintLocation(){
|
async getPrintLocation(){
|
||||||
let {width , height} = this.imgBox
|
let {width , height} = this.imgBox
|
||||||
|
if(this.modelType == 'System'){
|
||||||
|
await new Promise((resolve, reject) => {
|
||||||
|
let img = new Image()
|
||||||
|
img.src = this.option.img
|
||||||
|
img.onload = () => {
|
||||||
|
width = img.width
|
||||||
|
height = img.height
|
||||||
|
resolve(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
let locationData:any = {}
|
let locationData:any = {}
|
||||||
let returnData:any = {}
|
let returnData:any = {}
|
||||||
let newLocationList = JSON.parse(JSON.stringify(this.locationList))
|
let newLocationList = JSON.parse(JSON.stringify(this.locationList))
|
||||||
@@ -720,7 +731,7 @@ export default defineComponent({
|
|||||||
libraryId:this.printObject.relationId || null,
|
libraryId:this.printObject.relationId || null,
|
||||||
templateId:this.printObject.templateId || null,
|
templateId:this.printObject.templateId || null,
|
||||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
...this.getPrintLocation()
|
...await this.getPrintLocation()
|
||||||
}
|
}
|
||||||
let cropper:any = this.$refs.cropper
|
let cropper:any = this.$refs.cropper
|
||||||
await cropper.getCropData((value:any)=>{
|
await cropper.getCropData((value:any)=>{
|
||||||
|
|||||||
850
src/component/LibraryPage/ModelPlacementUpdata.vue
Normal file
@@ -0,0 +1,850 @@
|
|||||||
|
<template>
|
||||||
|
<div v-show="placementShow">
|
||||||
|
<a-modal class="models_placement_component"
|
||||||
|
v-model:visible="placementShow"
|
||||||
|
:footer="null"
|
||||||
|
width="111.5rem"
|
||||||
|
:maskClosable="false"
|
||||||
|
:centered="true"
|
||||||
|
>
|
||||||
|
<template #closeIcon>
|
||||||
|
<div class="close_icon" @click.stop="closeModal()"><span class="icon iconfont icon-guanbi"></span></div>
|
||||||
|
</template>
|
||||||
|
<div class="models_placement_body" >
|
||||||
|
<div class="palcement_modal_header">
|
||||||
|
<div class="models_placement_title">Registration</div>
|
||||||
|
<div class="placement_operate_list">
|
||||||
|
<div class="operate_item" v-show="locationList.length == 6" @click="submitPlacement">
|
||||||
|
<div class="icon iconfont icon-baocun1 operate_icon"></div>
|
||||||
|
<div class="operate_item_des">Submit</div>
|
||||||
|
</div>
|
||||||
|
<div class="operate_item" v-show="locationList.length == 6" @click="printPreview">
|
||||||
|
<div class="icon iconfont icon-shengchengyulan operate_icon"></div>
|
||||||
|
<div class="operate_item_des">Preview</div>
|
||||||
|
</div>
|
||||||
|
<div class="operate_item" v-show="perviewUrl" @click="backPreview">
|
||||||
|
<div class="icon iconfont icon-fanhui1 operate_icon"></div>
|
||||||
|
<div class="operate_item_des">Back</div>
|
||||||
|
</div>
|
||||||
|
<div class="operate_item" @click="restoreLocationList">
|
||||||
|
<div class="icon iconfont icon-huifu operate_icon"></div>
|
||||||
|
<div class="operate_item_des">Restore</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="plcaement_point_content" v-if="userInfo.userId == 88 || userInfo.userId == 83">
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<input type="checkbox" model="false" @click="()=>{modelType = 'System'}">
|
||||||
|
System
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<input type="checkbox" model="false" @click="()=>{modelType = 'Library'}">
|
||||||
|
Library
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<input type="checkbox" model="false" @click="()=>{sex = 'Female'}">
|
||||||
|
Female
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; align-items: center;">
|
||||||
|
<input type="checkbox" model="false" @click="()=>{sex = 'Male'}">
|
||||||
|
Male
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="models_placement_content">
|
||||||
|
<div class="plcaement_point_content">
|
||||||
|
<div class="select_block">
|
||||||
|
<a-select
|
||||||
|
ref="select"
|
||||||
|
v-model:value="sex"
|
||||||
|
:options="sexList"
|
||||||
|
>
|
||||||
|
<template #suffixIcon
|
||||||
|
><span
|
||||||
|
class="icon iconfont icon-xiala"
|
||||||
|
style="color: #343579"
|
||||||
|
></span
|
||||||
|
></template>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
<div class="placement_point_item" v-for="(point,index) in pointList" :key="index" >
|
||||||
|
<div class="ponit_title">{{point.title}}</div>
|
||||||
|
<div class="point_list">
|
||||||
|
<div class="point_item" v-for="item in point.pointList" :key="item.color" :style="{borderColor:item.color,visibility:item.show?'inherit':'hidden'}" @mousedown="AddDian(item)"><div class="point_block" :style="{background:item.color}"></div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="placement_content_operate_list">
|
||||||
|
<div class="placement_content_operate_item" @click="changeRemoveStatus">
|
||||||
|
<div class="placement_remove_point_block"></div>
|
||||||
|
<div class="placement_content_operate_des">Remove Point</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="placement_tip_content">Please change the pure white inside the mannequin for another color to enhance your experience</div>
|
||||||
|
|
||||||
|
<div class="img_preview_block" >
|
||||||
|
<div class="perview_mark_loading" v-show="isShowMark">
|
||||||
|
<a-spin size="large" />
|
||||||
|
</div>
|
||||||
|
<div class="img_content_block" ref="imgbox" @mousemove="startMove($event)">
|
||||||
|
<img class="placement_img" :src="perviewUrl || printObject?.url">
|
||||||
|
<div :class="['ponit_click',isRemoveStatus?'remove_point_click':'']" v-show="!perviewUrl" v-for="(item,index) in locationList" :key="item" :style="{left:item.left+'px', top:item.top+'px',borderColor:item.color}" @mousedown="getMouseDown($event,item,index)" @mousemove="startMove($event)">
|
||||||
|
<div class="placement_add_point_content" :style="{background:item.color}" v-show="!isRemoveStatus"></div>
|
||||||
|
<div class="icon iconfont icon-guanbi" v-show="isRemoveStatus"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent,ref,createVNode} from 'vue'
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import {dataURLtoFile} from "@/tool/util"
|
||||||
|
import { getCookie } from "@/tool/cookie";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import { Modal,message } from 'ant-design-vue';
|
||||||
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
|
export default defineComponent({
|
||||||
|
setup() {
|
||||||
|
const store = useStore()
|
||||||
|
let oldLocationList:any = ref([])
|
||||||
|
let locationList:any = ref([])
|
||||||
|
let printObject:any = ref({})
|
||||||
|
let imgBox:any = ref({})
|
||||||
|
let intObj:any = ref(null)
|
||||||
|
let currentSign:any = ref({})
|
||||||
|
let oldPointList:any = ref([]) //备份点
|
||||||
|
let pointList:any = ref([])
|
||||||
|
let isSubmit:any = ref(false) //判断历史是否有提交过
|
||||||
|
let manager:any = ref(false)
|
||||||
|
let userInfo:any = ref()
|
||||||
|
|
||||||
|
return {
|
||||||
|
store,
|
||||||
|
oldLocationList,
|
||||||
|
locationList,
|
||||||
|
printObject,
|
||||||
|
imgBox,
|
||||||
|
intObj,
|
||||||
|
currentSign,
|
||||||
|
oldPointList,
|
||||||
|
pointList,
|
||||||
|
isSubmit,
|
||||||
|
manager,
|
||||||
|
userInfo
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
placementShow:false,
|
||||||
|
collectionIndex:0,
|
||||||
|
startDian:false,
|
||||||
|
moveOriginal:{posX: 0, posY: 0},
|
||||||
|
isRemoveStatus:false,
|
||||||
|
placement_sacle:30,
|
||||||
|
perviewUrl:'',//预览的图片地址
|
||||||
|
isShowMark:false,
|
||||||
|
modelType:'Library',
|
||||||
|
sex:'Male',
|
||||||
|
sexList: [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
let userInfo:any = getCookie("userInfo")
|
||||||
|
this.userInfo = JSON.parse(userInfo);
|
||||||
|
this.getSex()
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
formatter(value:number){
|
||||||
|
return `${value}%`;
|
||||||
|
},
|
||||||
|
|
||||||
|
showPlacementModal(data:any){
|
||||||
|
this.placementShow = true
|
||||||
|
this.printObject = {
|
||||||
|
...data
|
||||||
|
}
|
||||||
|
setTimeout(()=>{
|
||||||
|
let imgbox:any = this.$refs.imgbox
|
||||||
|
let position = imgbox.getBoundingClientRect()
|
||||||
|
this.imgBox = {
|
||||||
|
width:imgbox.clientWidth,
|
||||||
|
height:imgbox.scrollHeight,
|
||||||
|
left : position.left,
|
||||||
|
top:position.top,
|
||||||
|
scrollTop:imgbox.scrollTop || 0,
|
||||||
|
}
|
||||||
|
this.getDefaultPointList(this.imgBox)
|
||||||
|
},500)
|
||||||
|
},
|
||||||
|
getSex(){
|
||||||
|
Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'Sex'}}).then((rv: any) => {
|
||||||
|
if (rv) {
|
||||||
|
let arr:any = []
|
||||||
|
rv.forEach((item:any) => {
|
||||||
|
let obj = {
|
||||||
|
value:item.name,
|
||||||
|
label:item.name,
|
||||||
|
}
|
||||||
|
arr.push(obj)
|
||||||
|
});
|
||||||
|
this.sex = arr[0].value
|
||||||
|
this.sexList = arr
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//初始化可以使用的点位
|
||||||
|
getDefaultPointList(imgBox:any){
|
||||||
|
this.isSubmit = false
|
||||||
|
this.pointList = [
|
||||||
|
{
|
||||||
|
title:'SHOULDER',
|
||||||
|
pointList:[{type:'shoulderLeft',color:'#6E70FF',show:true,field:'shoulder'},{type:'shoulderRight',color:'#6E70FF',show:true,field:'shoulder'}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title:'WAISTBAND',
|
||||||
|
pointList:[{type:'waistbandLeft',color:'#6FCEFF',show:true,field:'waistband'},{type:'waistbandRight',color:'#6FCEFF',show:true,field:'waistband'}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title:'HAND',
|
||||||
|
pointList:[{type:'handLeft',color:'#d88e8e',show:true,field:'hand'},{type:'handRight',color:'#d88e8e',show:true,field:'hand'}]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
if(this.printObject.templateId){//编辑
|
||||||
|
this.isSubmit = true
|
||||||
|
for(let ponit of this.pointList){
|
||||||
|
for(let pointItem of ponit.pointList){
|
||||||
|
if(this.printObject[pointItem.type]?.length){
|
||||||
|
pointItem.show = false
|
||||||
|
let data = {
|
||||||
|
left:this.printObject[pointItem.type][0] * imgBox.width - 12,
|
||||||
|
top:this.printObject[pointItem.type][1] * imgBox.height - 12,
|
||||||
|
color:pointItem.color,
|
||||||
|
type:pointItem.type,
|
||||||
|
field:pointItem.field,
|
||||||
|
}
|
||||||
|
this.locationList.push(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.oldLocationList = JSON.parse(JSON.stringify(this.locationList))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.oldPointList = JSON.parse(JSON.stringify(this.pointList))
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
AddDian(point:any){
|
||||||
|
if(!point.show){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.startDian = true
|
||||||
|
this.isRemoveStatus = false
|
||||||
|
this.intObj = point
|
||||||
|
},
|
||||||
|
|
||||||
|
changeRemoveStatus(){
|
||||||
|
this.isRemoveStatus = true
|
||||||
|
},
|
||||||
|
|
||||||
|
startMove(event:any){
|
||||||
|
if(this.isRemoveStatus){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let imgbox:any = this.$refs.imgbox
|
||||||
|
let scrollTop = imgbox.scrollTop;
|
||||||
|
if(this.intObj){
|
||||||
|
this.currentSign.left = event.clientX - this.imgBox.left
|
||||||
|
this.currentSign.top = event.clientY + scrollTop - this.imgBox.top
|
||||||
|
this.currentSign.color = this.intObj.color
|
||||||
|
this.currentSign.type= this.intObj.type
|
||||||
|
this.currentSign.field = this.intObj.field
|
||||||
|
this.locationList.push(this.currentSign)
|
||||||
|
this.intObj.show = false
|
||||||
|
this.intObj = null
|
||||||
|
}else{
|
||||||
|
if(this.startDian){
|
||||||
|
this.currentSign.left = event.clientX - this.imgBox.left - this.moveOriginal.posX
|
||||||
|
this.currentSign.top = event.clientY + scrollTop - this.imgBox.top -this.moveOriginal.posY
|
||||||
|
document.addEventListener('mouseup', this.getMouseOver);
|
||||||
|
this.$forceUpdate()
|
||||||
|
this.setBoundarySign()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 在边界上的签名域处理
|
||||||
|
setBoundarySign() {
|
||||||
|
let imgbox:any = this.$refs.imgbox
|
||||||
|
let height = imgbox.offsetHeight + imgbox.scrollTop;
|
||||||
|
// 2 为签名域的边框
|
||||||
|
let maxPosHeight = height - 24
|
||||||
|
let maxPosWidth = imgbox.clientWidth - 24 //+ this.signBox.paddLeft;
|
||||||
|
if (this.currentSign.top <= 0) {
|
||||||
|
this.currentSign.top = 0
|
||||||
|
} else if (this.currentSign.top >= maxPosHeight ) {
|
||||||
|
this.currentSign.top = maxPosHeight;
|
||||||
|
}
|
||||||
|
if (this.currentSign.left <= 0) {
|
||||||
|
this.currentSign.left = 0
|
||||||
|
} else if (this.currentSign.left >= maxPosWidth) {
|
||||||
|
this.currentSign.left = maxPosWidth;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getMouseDown(event:any,item:any,index:number){
|
||||||
|
if(this.isRemoveStatus){
|
||||||
|
for(let itemPoint of this.pointList){
|
||||||
|
for(let point of itemPoint.pointList){
|
||||||
|
if(item.type == point.type){
|
||||||
|
point.show = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.locationList.splice(index,1)
|
||||||
|
}else{
|
||||||
|
this.currentSign = item
|
||||||
|
// 计算出鼠标在签名域上的偏移
|
||||||
|
this.moveOriginal.posX = event.offsetX
|
||||||
|
this.moveOriginal.posY = event.offsetY // 1为边框
|
||||||
|
this.startDian = true
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
getMouseOver(){
|
||||||
|
this.startDian = false
|
||||||
|
this.currentSign = {}
|
||||||
|
document.removeEventListener('mouseup', this.getMouseOver);
|
||||||
|
},
|
||||||
|
|
||||||
|
closeModal(){
|
||||||
|
let _this = this
|
||||||
|
if(!this.isSubmit){
|
||||||
|
Modal.confirm({
|
||||||
|
title: "You haven't marked the image yet, and the model will not be uploaded. Are you sure you want to close it?",
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Ok',
|
||||||
|
cancelText: 'Cancel',
|
||||||
|
mask:false,
|
||||||
|
// centered:true,
|
||||||
|
onOk() {
|
||||||
|
// _this.getDefaultPointList(_this.imgBox)
|
||||||
|
_this.oldLocationList = []
|
||||||
|
_this.locationList = []
|
||||||
|
_this.intObj = null
|
||||||
|
_this.currentSign = {}
|
||||||
|
_this.isRemoveStatus = false
|
||||||
|
_this.placementShow = false
|
||||||
|
_this.perviewUrl = ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
// _this.getDefaultPointList(_this.imgBox)
|
||||||
|
_this.oldLocationList = []
|
||||||
|
_this.locationList = []
|
||||||
|
_this.intObj = null
|
||||||
|
_this.currentSign = {}
|
||||||
|
_this.isRemoveStatus = false
|
||||||
|
_this.placementShow = false
|
||||||
|
_this.perviewUrl = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
restoreLocationList(){
|
||||||
|
this.pointList = JSON.parse(JSON.stringify(this.oldPointList))
|
||||||
|
this.locationList = JSON.parse(JSON.stringify(this.oldLocationList))
|
||||||
|
},
|
||||||
|
|
||||||
|
submitPlacement(){
|
||||||
|
if(this.printObject.templateId){
|
||||||
|
this.printObject.id = this.printObject.libraryId
|
||||||
|
this.confrimSubmit()
|
||||||
|
}else{
|
||||||
|
this.customRequest().then((rv:any)=>{
|
||||||
|
this.isShowMark = false
|
||||||
|
this.printObject.id = rv.id
|
||||||
|
this.confrimSubmit()
|
||||||
|
}).catch((res:any)=>{
|
||||||
|
this.isShowMark = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
confrimSubmit(){
|
||||||
|
let param = {
|
||||||
|
libraryId:this.printObject.id,
|
||||||
|
templateId:this.printObject.templateId || null,
|
||||||
|
modelType:'System',
|
||||||
|
checkMd5:1,
|
||||||
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
...this.getPrintLocation()
|
||||||
|
}
|
||||||
|
if(this.userInfo.userId == 88 || this.userInfo.userId == 83){
|
||||||
|
// param.modelType = this.modelType
|
||||||
|
}
|
||||||
|
this.isShowMark = true
|
||||||
|
Https.axiosPost(Https.httpUrls.saveOrEditTemplatePoint, param).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.isShowMark = false
|
||||||
|
this.isSubmit = true
|
||||||
|
this.$emit('submitModelPlacement')
|
||||||
|
this.closeModal()
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
this.isShowMark = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
customRequest(){
|
||||||
|
let new_data = {
|
||||||
|
file:this.printObject.file,
|
||||||
|
level1Type:'Models',
|
||||||
|
level2Type:'',
|
||||||
|
checkMd5:1,
|
||||||
|
sex:this.sex,
|
||||||
|
modelType:'System',
|
||||||
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
}
|
||||||
|
if(this.userInfo.userId == 88 || this.userInfo.userId == 83){
|
||||||
|
// new_data.modelType = this.modelType
|
||||||
|
new_data.sex = this.sex
|
||||||
|
}
|
||||||
|
this.isShowMark = true
|
||||||
|
return new Promise((resolve,reject)=>{
|
||||||
|
Https.axiosPost(Https.httpUrls.libraryUpload, new_data,{headers:{'Content-Type': 'multipart/form-data'}}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
if(!rv.checkMd5){
|
||||||
|
resolve(this.affirmCstomRequest(new_data))
|
||||||
|
}else{
|
||||||
|
resolve(rv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).catch((res)=>{
|
||||||
|
reject(res)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
affirmCstomRequest(data:any){
|
||||||
|
let _this = this
|
||||||
|
return new Promise((resolve,reject)=>{
|
||||||
|
Modal.confirm({
|
||||||
|
title: 'This picture has been uploaded whether to continue uploading? ',
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
onOk() {
|
||||||
|
data.checkMd5 = 0
|
||||||
|
Https.axiosPost(Https.httpUrls.libraryUpload, data,{headers:{'Content-Type': 'multipart/form-data'}}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
_this.isShowMark = false
|
||||||
|
resolve(rv)
|
||||||
|
}
|
||||||
|
).catch((res)=>{
|
||||||
|
reject(res)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
_this.isShowMark = false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
getPrintLocation(){
|
||||||
|
let {width , height} = this.imgBox
|
||||||
|
let locationData:any = {}
|
||||||
|
let returnData:any = {}
|
||||||
|
let newLocationList = JSON.parse(JSON.stringify(this.locationList))
|
||||||
|
//进行字段归类
|
||||||
|
for(let item of newLocationList){
|
||||||
|
locationData[item.field] = locationData[item.field] || []
|
||||||
|
locationData[item.field].push(item)
|
||||||
|
}
|
||||||
|
for(let key in locationData){
|
||||||
|
locationData[key].sort(this.sortBy("left")) //通过left字段进行排序
|
||||||
|
locationData[key].forEach((v:any,index:any) => {
|
||||||
|
v.type = !index ?v.field + 'Left' :v.field +'Right' //第一个是left,第二个是right
|
||||||
|
v.left = ((v.left + 12) / width).toFixed(4)
|
||||||
|
v.top = ((v.top + 12) / height).toFixed(4)
|
||||||
|
returnData[v.type] = [v.left, v.top]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return returnData
|
||||||
|
},
|
||||||
|
|
||||||
|
sortBy(field:any) {
|
||||||
|
return function(a:any,b:any) {
|
||||||
|
return a[field] - b[field];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
printPreview(){
|
||||||
|
let file = this.printObject.templateId ? null :this.printObject.file,
|
||||||
|
models = {
|
||||||
|
libraryId:this.printObject.libraryId || null,
|
||||||
|
templateId:this.printObject.templateId || null,
|
||||||
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
...this.getPrintLocation()
|
||||||
|
}
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('file', file);
|
||||||
|
formData.append("models", new Blob([JSON.stringify(models)], {type: "application/json"}));
|
||||||
|
if(this.isShowMark){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.isShowMark = true
|
||||||
|
Https.axiosPost(Https.httpUrls.libraryModelsDot, formData,{headers:{'Content-Type': 'multipart/form-data'}}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.perviewUrl = rv
|
||||||
|
this.isShowMark = false
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
this.isShowMark = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
backPreview(){
|
||||||
|
this.perviewUrl = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.models_placement_component{
|
||||||
|
|
||||||
|
.ant-modal-close{
|
||||||
|
width: 3.6rem;
|
||||||
|
height: 3.6rem;
|
||||||
|
position: absolute;
|
||||||
|
top: -1.8rem;
|
||||||
|
right: -1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-modal-header{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-modal-body{
|
||||||
|
background: #F2F3FB;
|
||||||
|
min-height: 72rem;
|
||||||
|
overflow-y: hidden;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close_icon{
|
||||||
|
width: 3.6rem;
|
||||||
|
height: 3.6rem;
|
||||||
|
background: #000000;
|
||||||
|
border-radius: 50%;
|
||||||
|
line-height: 3.6rem;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.icon-guanbi{
|
||||||
|
font-size: 2rem;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.models_placement_body{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.palcement_modal_header{
|
||||||
|
position: relative;
|
||||||
|
height: 6.6rem;
|
||||||
|
width: 100%;
|
||||||
|
background: #F7F7F7;
|
||||||
|
|
||||||
|
.models_placement_title{
|
||||||
|
position: absolute;
|
||||||
|
height: 100%;
|
||||||
|
line-height: 6.6rem;
|
||||||
|
left: 3.7rem;
|
||||||
|
top: 0;
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: #030303;
|
||||||
|
}
|
||||||
|
.placement_operate_list{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin:0 auto;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.operate_item{
|
||||||
|
margin-right: 4rem;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.operate_icon{
|
||||||
|
font-size: 2.1rem;
|
||||||
|
color: #64686D;
|
||||||
|
}
|
||||||
|
|
||||||
|
.operate_item_des{
|
||||||
|
height: 1.2rem;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
}
|
||||||
|
&:last-child{
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.models_placement_content{
|
||||||
|
position: relative;
|
||||||
|
height: calc(100% - 6.6rem);
|
||||||
|
width: 100%;
|
||||||
|
padding: 1.1rem 0;
|
||||||
|
|
||||||
|
.plcaement_point_content{
|
||||||
|
width: 22rem;
|
||||||
|
background: #EBECF4;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top:18.4rem;
|
||||||
|
padding: 3rem 2.7rem 0 1.4rem;
|
||||||
|
.select_block{
|
||||||
|
// background: #FFFFFF;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
color: #1A1A1A !important;
|
||||||
|
.ant-select{
|
||||||
|
width: 100%;
|
||||||
|
.ant-select-selector{
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
height: 3rem;
|
||||||
|
.ant-select-selection-item, .select_block .ant-select-single .ant-select-selector .ant-select-selection-placeholder{
|
||||||
|
font-weight: 300 !important;
|
||||||
|
line-height: 1.5715 !important;
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.icon-xiala{
|
||||||
|
color: #1A1A1A !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.placement_point_item{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
|
||||||
|
.ponit_title{
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
user-select:none; /* CSS3属性 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.point_list{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 6.2rem;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.point_item{
|
||||||
|
width: 2.4rem;
|
||||||
|
height: 2.4rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
border:solid 0.2rem transparent;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
-moz-user-select:none; /* Firefox私有属性 */
|
||||||
|
-webkit-user-select:none; /* WebKit内核私有属性 */
|
||||||
|
-ms-user-select:none; /* IE私有属性(IE10及以后) */
|
||||||
|
-khtml-user-select:none; /* KHTML内核私有属性 */
|
||||||
|
-o-user-select:none; /* Opera私有属性 */
|
||||||
|
user-select:none; /* CSS3属性 */
|
||||||
|
|
||||||
|
|
||||||
|
.point_block{
|
||||||
|
width: 0.4rem;
|
||||||
|
height: 0.4rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.placement_content_operate_list{
|
||||||
|
width: 10.6rem;
|
||||||
|
background: #EBECF4;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top:18.4rem;
|
||||||
|
|
||||||
|
.placement_content_operate_item{
|
||||||
|
padding: 1.5rem 0;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
|
||||||
|
.placement_content_operate_des{
|
||||||
|
width: 100%;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
-moz-user-select:none;
|
||||||
|
user-select:none
|
||||||
|
}
|
||||||
|
|
||||||
|
.print_scale_value{
|
||||||
|
height: 1.1rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-tooltip-placement-top{
|
||||||
|
top: -37px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-slider-track{
|
||||||
|
background: #343579;
|
||||||
|
}
|
||||||
|
.ant-slider-handle{
|
||||||
|
border-color: #343579;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placement_remove_point_block{
|
||||||
|
width: 2.4rem;
|
||||||
|
height: 2.4rem;
|
||||||
|
border: 2px solid #000000;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin: 0 auto 0.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.placement_tip_content{
|
||||||
|
position: absolute;
|
||||||
|
right: 2rem;
|
||||||
|
bottom: 2rem;
|
||||||
|
width: 30rem;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: #64686D;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img_preview_block{
|
||||||
|
width: 40.8rem;
|
||||||
|
background: #ffffff;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
user-select:none;
|
||||||
|
-moz-user-select:none;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.img_content_block{
|
||||||
|
width: 40.8rem;
|
||||||
|
height: 100%;
|
||||||
|
max-height: 63.2rem;
|
||||||
|
overflow-y: auto;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
overflow: -moz-scrollbars-none;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::-webkit-scrollbar { width: 0 !important }
|
||||||
|
}
|
||||||
|
|
||||||
|
.perview_mark_loading{
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
height: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
z-index: 9;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.placement_img{
|
||||||
|
width: 100%;
|
||||||
|
user-select:none;
|
||||||
|
-moz-user-select:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ponit_click{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
position: absolute;
|
||||||
|
border: 2px solid transparent;
|
||||||
|
border-radius: 50%;
|
||||||
|
-moz-user-select:none; /* Firefox私有属性 */
|
||||||
|
-webkit-user-select:none; /* WebKit内核私有属性 */
|
||||||
|
-ms-user-select:none; /* IE私有属性(IE10及以后) */
|
||||||
|
-khtml-user-select:none; /* KHTML内核私有属性 */
|
||||||
|
-o-user-select:none; /* Opera私有属性 */
|
||||||
|
user-select:none; /* CSS3属性 */
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.remove_point_click{
|
||||||
|
border-color: transparent;
|
||||||
|
background: #EF3C3C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placement_add_point_content{
|
||||||
|
width: 4px;
|
||||||
|
height: 4px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #6E70FF;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-guanbi{
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
color:#ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -161,6 +161,16 @@ export default defineComponent({
|
|||||||
this.loadImg();
|
this.loadImg();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
deleteItem(id){
|
||||||
|
console.log(this.list,id);
|
||||||
|
for (let index = 0; index < this.list.length; index++) {
|
||||||
|
if(this.list[index].id == id){
|
||||||
|
this.list.splice(index,1)
|
||||||
|
this.resize()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
loadImg() {
|
loadImg() {
|
||||||
if (this.wait_list.length <= 0) {
|
if (this.wait_list.length <= 0) {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
:destroyOnClose="true"
|
:destroyOnClose="true"
|
||||||
>
|
>
|
||||||
<div class="generalModel_btn">
|
<div class="generalModel_btn">
|
||||||
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
<div class="generalModel_closeIcon" @click.stop="cancelDsign('')">
|
||||||
<i class="fi fi-rr-cross-small"></i>
|
<i class="fi fi-rr-cross-small"></i>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="collection_closeIcon" @click.stop="download()">
|
<!-- <div class="collection_closeIcon" @click.stop="download()">
|
||||||
@@ -24,7 +24,10 @@
|
|||||||
<div class="newScaleImage_content_right">
|
<div class="newScaleImage_content_right">
|
||||||
<div class="newScaleImage_content_right_img">
|
<div class="newScaleImage_content_right_img">
|
||||||
<div>
|
<div>
|
||||||
<img :src="scaleImageList[scaleImageIndex]">
|
<img v-show="scaleImageIndex > 0" :src="scaleImageList[scaleImageIndex]">
|
||||||
|
<div v-show="scaleImageIndex == 0">
|
||||||
|
<fullScreenImg :src="scaleImageList[scaleImageIndex]" width="100%" :center="true"></fullScreenImg>
|
||||||
|
</div>
|
||||||
<!-- <img :src="scaleImageData?.canvasUrl"> -->
|
<!-- <img :src="scaleImageData?.canvasUrl"> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -44,16 +47,58 @@
|
|||||||
<div class="scaleImage_chunk_title_intro">
|
<div class="scaleImage_chunk_title_intro">
|
||||||
Overall
|
Overall
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="scaleImage_chunk_title">{{scaleImageData.portfolioName}}</div>
|
<!-- <div class="scaleImage_chunk_title_intro">zhh</div> -->
|
||||||
<div class="scaleImage_chunk_title_intro">{{scaleImageData.portfolioDes}}</div>
|
<div class="detail_right_user detail_left_right_item">
|
||||||
|
<!-- <div class="detail_right_user_head">
|
||||||
|
<img v-lazy="scaleImageData?.imgUrl">
|
||||||
|
</div> -->
|
||||||
|
<div class="detail_right_user_content">
|
||||||
|
<div class="scaleImage_chunk_title_intro">@{{scaleImageData.userName}}</div>
|
||||||
|
<!-- <div class="scaleImage_chunk_title_intro">个性签名</div>
|
||||||
|
<div class="scaleImage_chunk_btn">关注</div> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="scaleImage_chunk_title">
|
||||||
|
{{$t('newScaleImage.Title')}}:
|
||||||
|
<span class="scaleImage_chunk_title_intro">{{scaleImageData.portfolioName}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="scaleImageData.portfolioDes" class="scaleImage_chunk_title">
|
||||||
|
{{$t('newScaleImage.Describe')}}: <span>{{scaleImageData.portfolioDes}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="scaleImage_chunk_title_intro">{{scaleImageData.createDate}}</div>
|
||||||
|
<div class="detail_right_look_operation detail_left_right_item">
|
||||||
|
<!-- <div class="detail_left_right_item_click">
|
||||||
|
<svg :adminLike="!!true" xmlns="http://www.w3.org/2000/svg" width="2.5rem" height="2.5rem" viewBox="0 0 16 16" fill="none" role="img" :style="{color:'#9e9ea7',fill: 'currentColor'}">
|
||||||
|
<path d="M10.7408 2C13.0889 2 14.6667 4.235 14.6667 6.32C14.6667 10.5425 8.11856 14 8.00004 14C7.88152 14 1.33337 10.5425 1.33337 6.32C1.33337 4.235 2.91115 2 5.2593 2C6.60745 2 7.48893 2.6825 8.00004 3.2825C8.51115 2.6825 9.39263 2 10.7408 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||||
|
</svg>
|
||||||
|
<span>321</span>
|
||||||
|
</div> -->
|
||||||
|
<div class="detail_left_right_item_click" @click="setPortfolioLike">
|
||||||
|
<i v-if="scaleImageData?.isLike == 1" :adminLike="!!true" class="fi fi-sr-thumbs-up" style="color: rgba(158, 158, 167);"></i>
|
||||||
|
<i v-else class="fi fi-rr-social-network"></i>
|
||||||
|
<span>{{scaleImageData.likeNum}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<i class="fi fi-sr-eye"></i>
|
||||||
|
<span>{{scaleImageData.viewNums}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<i class="fi fi-rr-comment-alt-dots"></i>
|
||||||
|
<span>{{commentList.length}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="userInfo?.userName === scaleImageData.userName" @click="deletePortfolio" class="detail_left_right_item_click">
|
||||||
|
<i class="icon iconfont icon-shanchu operate_icon"></i>
|
||||||
|
<!-- <span>{{$t('newScaleImage.Delete')}}</span> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="scaleImage_chunk_item content_left_collection_content" v-show="scaleImageData.openSource == 1">
|
<div v-if="false" class="scaleImage_chunk_item content_left_collection_content" v-show="scaleImageData.openSource == 1">
|
||||||
<div class="scaleImage_chunk_title">{{scaleImageData.Collection}}</div>
|
<div class="scaleImage_chunk_title">{{scaleImageData.Collection}}</div>
|
||||||
<div class="content_left_collection_content_list">
|
<div class="content_left_collection_content_list">
|
||||||
<img v-for="item in scaleImageData?.designPythonOutfitList" v-lazy="item.designUrl">
|
<img v-for="item in scaleImageData?.designPythonOutfitList" v-lazy="item.designUrl">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="started_btn" @click="setChoose" :title="systemUser.value != 1?$t('newScaleImage.jsContent1'): scaleImageData.openSource == 0?$t('newScaleImage.jsContent2'):''" :class="{active:systemUser.value != 1?true:scaleImageData.openSource == 0}">{{$t('newScaleImage.SecondaryCreation')}}</div>
|
<div v-if="systemUser.value == 1" class="started_btn" @click="setChoose" :title="systemUser.value != 1?$t('newScaleImage.jsContent1'): scaleImageData.openSource == 0?$t('newScaleImage.jsContent2'):''" :class="{active:systemUser.value != 1?true:scaleImageData.openSource == 0}">{{$t('newScaleImage.SecondaryCreation')}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="newScaleImage_right_content_generate">
|
<div v-else class="newScaleImage_right_content_generate">
|
||||||
<div class="scaleImage_chunk_item content_left_generate_item">
|
<div class="scaleImage_chunk_item content_left_generate_item">
|
||||||
@@ -75,18 +120,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="newScaleImage_right_detail">
|
<div v-if="false" class="newScaleImage_right_detail">
|
||||||
<div class="scaleImage_chunk_item">
|
<div class="scaleImage_chunk_item">
|
||||||
<div class="detail_right_user detail_left_right_item">
|
|
||||||
<!-- <div class="detail_right_user_head">
|
|
||||||
<img v-lazy="scaleImageData?.imgUrl">
|
|
||||||
</div> -->
|
|
||||||
<div class="detail_right_user_content">
|
|
||||||
<div class="scaleImage_chunk_title">{{scaleImageData.userName}}</div>
|
|
||||||
<!-- <div class="scaleImage_chunk_title_intro">个性签名</div>
|
|
||||||
<div class="scaleImage_chunk_btn">关注</div> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="detail_right_work_detail detail_left_right_item">
|
<div class="detail_right_work_detail detail_left_right_item">
|
||||||
<!-- <div class="scaleImage_chunk_title">{{ scaleImageData?.portfolioName }}</div> -->
|
<!-- <div class="scaleImage_chunk_title">{{ scaleImageData?.portfolioName }}</div> -->
|
||||||
<!-- <div class="scaleImage_chunk_title_intro">{{ scaleImageData?.portfolioDes }}</div> -->
|
<!-- <div class="scaleImage_chunk_title_intro">{{ scaleImageData?.portfolioDes }}</div> -->
|
||||||
@@ -101,27 +137,7 @@
|
|||||||
<span>{{ scaleImageData.updateDate }}</span>
|
<span>{{ scaleImageData.updateDate }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail_right_look_operation detail_left_right_item">
|
|
||||||
<!-- <div class="detail_left_right_item_click">
|
|
||||||
<svg :adminLike="!!true" xmlns="http://www.w3.org/2000/svg" width="2.5rem" height="2.5rem" viewBox="0 0 16 16" fill="none" role="img" :style="{color:'#9e9ea7',fill: 'currentColor'}">
|
|
||||||
<path d="M10.7408 2C13.0889 2 14.6667 4.235 14.6667 6.32C14.6667 10.5425 8.11856 14 8.00004 14C7.88152 14 1.33337 10.5425 1.33337 6.32C1.33337 4.235 2.91115 2 5.2593 2C6.60745 2 7.48893 2.6825 8.00004 3.2825C8.51115 2.6825 9.39263 2 10.7408 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
||||||
</svg>
|
|
||||||
<span>321</span>
|
|
||||||
</div> -->
|
|
||||||
<div class="detail_left_right_item_click" @click="setPortfolioLike">
|
|
||||||
<i v-if="scaleImageData?.isLike == 1" :adminLike="!!true" class="fi fi-sr-thumbs-up" style="color: rgba(158, 158, 167);"></i>
|
|
||||||
<i v-else class="fi fi-rr-social-network"></i>
|
|
||||||
<span>{{scaleImageData.likeNum}}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<i class="fi fi-sr-eye"></i>
|
|
||||||
<span>{{scaleImageData.viewNums}}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<i class="fi fi-rr-comment-alt-dots"></i>
|
|
||||||
<span>{{commentList.length}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <div class="detail_right_auther detail_left_right_item">
|
<!-- <div class="detail_right_auther detail_left_right_item">
|
||||||
<div class="scaleImage_chunk_title">Auther Other Products</div>
|
<div class="scaleImage_chunk_title">Auther Other Products</div>
|
||||||
<div class="detail_right_auther_img">
|
<div class="detail_right_auther_img">
|
||||||
@@ -150,8 +166,14 @@
|
|||||||
<div class="scaleImage_chunk_title">{{$t('newScaleImage.NoComments')}}</div>
|
<div class="scaleImage_chunk_title">{{$t('newScaleImage.NoComments')}}</div>
|
||||||
<div class="scaleImage_chunk_title">{{$t('newScaleImage.first')}}</div>
|
<div class="scaleImage_chunk_title">{{$t('newScaleImage.first')}}</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
|
<div class="newScaleImage_right_comment_setComment" @click.stop="">
|
||||||
|
<input type="text" ref="commentInputFocus" v-model="commentText" :placeholder="commentInput">
|
||||||
|
<div class="detail_left_setComment_btn" @click="setComment">
|
||||||
|
<i class="fi fi-ss-paper-plane-top"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div v-show="commentList.length !== 0" class="newScaleImage_right_comment_content">
|
<div v-show="commentList.length !== 0" class="newScaleImage_right_comment_content">
|
||||||
<div class="detail_left_content_item" v-for="item in commentList" :key="item.id">
|
<div class="detail_left_content_item" v-for="item,index in commentList" :key="item.id">
|
||||||
<!-- <div class="detail_left_content_item_img">
|
<!-- <div class="detail_left_content_item_img">
|
||||||
<img v-lazy="scaleImageData?.imgUrl">
|
<img v-lazy="scaleImageData?.imgUrl">
|
||||||
</div> -->
|
</div> -->
|
||||||
@@ -170,13 +192,12 @@
|
|||||||
<span>123</span>
|
<span>123</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="left_content_item_btn">
|
<div class="left_content_item_btn">
|
||||||
{{userInfo.userName }}{{item.userName}}
|
<div class="left_content_item_delete" v-if="userInfo?.userName === item.userName" @click="setDeleteComment(item,index,'')">{{$t('newScaleImage.Delete')}}</div>
|
||||||
<div class="left_content_item_delete" v-if="userInfo.userName === item.userName" @click="setDelete(item)">删除</div>
|
|
||||||
<div class="left_content_item_unfold" @click="()=>item.detailUnfold = !item.detailUnfold">{{item.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
<div class="left_content_item_unfold" @click="()=>item.detailUnfold = !item.detailUnfold">{{item.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="item.childCommentVOList" class="detail_left_content_item_replyContent_box" :class="[item.unfold?'':'active']">
|
<div v-if="item.childCommentVOList" class="detail_left_content_item_replyContent_box" :class="[item.unfold?'':'active']">
|
||||||
<div class="detail_left_content_item_replyContent" v-for="children in item.childCommentVOList" :key="children.id">
|
<div class="detail_left_content_item_replyContent" v-for="children,childrenIndex in item.childCommentVOList" :key="children.id">
|
||||||
<div class="detail_left_content_item_img">
|
<div class="detail_left_content_item_img">
|
||||||
<!-- <img v-lazy="scaleImageData?.imgUrl"> -->
|
<!-- <img v-lazy="scaleImageData?.imgUrl"> -->
|
||||||
</div>
|
</div>
|
||||||
@@ -196,7 +217,7 @@
|
|||||||
<span>123</span>
|
<span>123</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="left_content_item_btn">
|
<div class="left_content_item_btn">
|
||||||
<div class="left_content_item_delete" v-if="userInfo.userName === children.userName" @click="setDelete(children)">删除</div>
|
<div class="left_content_item_delete" v-if="userInfo?.userName === children.userName" @click="setDeleteComment(children,index,childrenIndex)">{{$t('newScaleImage.Delete')}}</div>
|
||||||
<div class="left_content_item_unfold" @click="()=>children.detailUnfold = !children.detailUnfold">{{children.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
<div class="left_content_item_unfold" @click="()=>children.detailUnfold = !children.detailUnfold">{{children.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -216,12 +237,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="newScaleImage_right_comment_setComment" @click.stop="">
|
|
||||||
<input type="text" ref="commentInputFocus" v-model="commentText" :placeholder="commentInput">
|
|
||||||
<div class="detail_left_setComment_btn" @click="setComment">
|
|
||||||
<i class="fi fi-ss-paper-plane-top"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -230,18 +246,22 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent,watch,getCurrentInstance, h, ref ,toRefs,computed,reactive,triggerRef, nextTick, onMounted} from "vue";
|
import { defineComponent,watch,getCurrentInstance, createVNode, ref ,toRefs,computed,reactive,triggerRef, nextTick, onMounted} from "vue";
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { getCookie } from "@/tool/cookie";
|
import { getCookie } from "@/tool/cookie";
|
||||||
// import domTurnImg from '@/tool/domTurnImg'
|
// import domTurnImg from '@/tool/domTurnImg'
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { downloadIamge,setPubDate } from "@/tool/util";
|
import { downloadIamge,setPubDate } from "@/tool/util";
|
||||||
import { message } from "ant-design-vue";
|
import { Modal,message } from "ant-design-vue";
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
|
import fullScreenImg from '@/component/HomePage/fullScreenImg.vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
setup() {
|
components:{fullScreenImg},
|
||||||
|
emits:['deletePorfolio'],
|
||||||
|
setup(props:any,{emit}) {
|
||||||
let {t} = useI18n()
|
let {t} = useI18n()
|
||||||
//首先在setup中定义
|
//首先在setup中定义
|
||||||
let userInfo = ref({});
|
let userInfo = ref({});
|
||||||
@@ -288,7 +308,10 @@ export default defineComponent({
|
|||||||
document.addEventListener('click',removeCommentReply)
|
document.addEventListener('click',removeCommentReply)
|
||||||
// let scaleImageList = this.store.state.UploadFilesModule.moodboard
|
// let scaleImageList = this.store.state.UploadFilesModule.moodboard
|
||||||
}
|
}
|
||||||
let cancelDsign = ()=>{
|
let cancelDsign = (id:any)=>{
|
||||||
|
if(id){
|
||||||
|
emit('deletePorfolio',id)
|
||||||
|
}
|
||||||
scaleImage.value = false
|
scaleImage.value = false
|
||||||
imgData.scaleImageIndex = 0
|
imgData.scaleImageIndex = 0
|
||||||
imgData.scaleImageData = {}
|
imgData.scaleImageData = {}
|
||||||
@@ -385,6 +408,9 @@ export default defineComponent({
|
|||||||
imgData.commentInput = t('newScaleImage.jsContent3')
|
imgData.commentInput = t('newScaleImage.jsContent3')
|
||||||
}
|
}
|
||||||
let setComment = ()=>{
|
let setComment = ()=>{
|
||||||
|
if(!imgData.commentText){
|
||||||
|
return message.info(t('LibraryPage.jsContent7'))
|
||||||
|
}
|
||||||
let data = {
|
let data = {
|
||||||
"accountId": 0,
|
"accountId": 0,
|
||||||
"comment": imgData.commentText,
|
"comment": imgData.commentText,
|
||||||
@@ -398,21 +424,20 @@ export default defineComponent({
|
|||||||
Https.axiosPost(Https.httpUrls.portfolioComment, data)
|
Https.axiosPost(Https.httpUrls.portfolioComment, data)
|
||||||
.then((rv) => {
|
.then((rv) => {
|
||||||
imgData.commentText = ''
|
imgData.commentText = ''
|
||||||
getCommentPage('comment')
|
getCommentPage({str:'comment',id:imgData.scaleImageData.id})
|
||||||
})
|
})
|
||||||
.catch((rv) => {
|
.catch((rv) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let getCommentPage = (str:any)=>{
|
let getCommentPage = (value:any)=>{
|
||||||
let data = imgData.getCommentData
|
let data = imgData.getCommentData
|
||||||
imgData.isShowMark = true
|
imgData.isShowMark = true
|
||||||
Https.axiosPost(Https.httpUrls.portfolioCommentPage,data).then(
|
Https.axiosPost(Https.httpUrls.portfolioCommentPage,data).then(
|
||||||
(rv: any) => {
|
(rv: any) => {
|
||||||
if(rv.content.length == imgData.commentList.length&&str != 'comment'){
|
|
||||||
imgData.isNoData = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
rv.content.forEach((item:any)=>{
|
rv.content.forEach((item:any)=>{
|
||||||
|
if(value.id == item.portfolioId){
|
||||||
|
item.unfold = true
|
||||||
|
}
|
||||||
item.createTimes = setPubDate(item.createTime)
|
item.createTimes = setPubDate(item.createTime)
|
||||||
if (item.childCommentVOList) {
|
if (item.childCommentVOList) {
|
||||||
item.childCommentVOList.forEach((obj:any)=>{
|
item.childCommentVOList.forEach((obj:any)=>{
|
||||||
@@ -422,8 +447,10 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
// imgData.commentList.push(...rv.content)
|
// imgData.commentList.push(...rv.content)
|
||||||
imgData.commentList = rv.content
|
imgData.commentList = rv.content
|
||||||
|
|
||||||
imgData.isShowMark = false
|
imgData.isShowMark = false
|
||||||
|
if(rv.total == rv.content.length&&value?.str != 'comment'){
|
||||||
|
imgData.isNoData = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
).catch((res)=>{
|
).catch((res)=>{
|
||||||
imgData.isShowMark = false
|
imgData.isShowMark = false
|
||||||
@@ -453,8 +480,64 @@ export default defineComponent({
|
|||||||
.catch((rv) => {
|
.catch((rv) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
let setDelete = (value:any)=>{
|
let setDeleteComment = (value:any,index:any,childrenIndex:any)=>{
|
||||||
|
console.log(value);
|
||||||
|
Modal.confirm({
|
||||||
|
title: t('newScaleImage.jsContent4'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Ok',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
let data = {
|
||||||
|
"accountId": 0,
|
||||||
|
"comment": "",
|
||||||
|
"createTime": "",
|
||||||
|
"id": value.id,
|
||||||
|
"isDeleted": 0,
|
||||||
|
"parentLevel1Id": 0,
|
||||||
|
"parentLevel2Id": 0,
|
||||||
|
"portfolioId": imgData.scaleImageData.id,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.commentDelete, data)
|
||||||
|
.then((rv) => {
|
||||||
|
let commentData = {
|
||||||
|
str:'comment',
|
||||||
|
id:imgData.scaleImageData.id,
|
||||||
|
}
|
||||||
|
getCommentPage(commentData)
|
||||||
|
})
|
||||||
|
.catch((rv) => {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
let deletePortfolio = ()=>{
|
||||||
|
Modal.confirm({
|
||||||
|
title: t('newScaleImage.jsContent5'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
let data = {
|
||||||
|
id:imgData.scaleImageData.id
|
||||||
|
}
|
||||||
|
Https.axiosGet(Https.httpUrls.porfolioDelete, {params:data})
|
||||||
|
.then((rv) => {
|
||||||
|
cancelDsign(imgData.scaleImageData.id)
|
||||||
|
})
|
||||||
|
.catch((rv) => {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
watch(()=>imgData.scaleImageIndex,
|
watch(()=>imgData.scaleImageIndex,
|
||||||
(newVal,oldVal)=>{
|
(newVal,oldVal)=>{
|
||||||
@@ -466,7 +549,7 @@ export default defineComponent({
|
|||||||
)
|
)
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
let user:any = getCookie('userInfo')
|
let user:any = getCookie('userInfo')
|
||||||
userInfo = JSON.parse(user)
|
userInfo.value = JSON.parse(user)
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
userInfo,
|
userInfo,
|
||||||
@@ -484,9 +567,10 @@ export default defineComponent({
|
|||||||
LikeFile,
|
LikeFile,
|
||||||
setChoose,
|
setChoose,
|
||||||
setCommentReply,
|
setCommentReply,
|
||||||
|
deletePortfolio,
|
||||||
setComment,
|
setComment,
|
||||||
setPortfolioLike,
|
setPortfolioLike,
|
||||||
setDelete,
|
setDeleteComment,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
directives:{
|
directives:{
|
||||||
@@ -590,9 +674,15 @@ export default defineComponent({
|
|||||||
color: #000;
|
color: #000;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
max-height: 100px;
|
max-height: 100px;
|
||||||
|
text-align: left;
|
||||||
&.active{
|
&.active{
|
||||||
max-height: max-content;
|
max-height: max-content;
|
||||||
}
|
}
|
||||||
|
span{
|
||||||
|
font-size: 1.8rem;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #535353;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.scaleImage_chunk_title_comment{
|
.scaleImage_chunk_title_comment{
|
||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
@@ -612,7 +702,24 @@ export default defineComponent({
|
|||||||
// text-overflow: ellipsis;
|
// text-overflow: ellipsis;
|
||||||
// white-space: nowrap;
|
// white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
.detail_right_look_operation{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
>div{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 2rem;
|
||||||
|
i{
|
||||||
|
display: flex;
|
||||||
|
font-size: 2rem;
|
||||||
|
color: #9e9ea7;
|
||||||
|
}
|
||||||
|
span{
|
||||||
|
margin-left: calc(var(--padding) / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.newScaleImage_left{
|
.newScaleImage_left{
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
@@ -643,6 +750,10 @@ export default defineComponent({
|
|||||||
>div{
|
>div{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
>div{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
img{
|
img{
|
||||||
// width: auto;
|
// width: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
@@ -717,6 +828,12 @@ export default defineComponent({
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: var(--content-height);
|
height: var(--content-height);
|
||||||
|
.detail_left_right_item_click{
|
||||||
|
cursor: pointer;
|
||||||
|
i{
|
||||||
|
color: #9e9ea7;
|
||||||
|
}
|
||||||
|
}
|
||||||
.generate_item_title_left{
|
.generate_item_title_left{
|
||||||
font-size: 2.4rem;
|
font-size: 2.4rem;
|
||||||
}
|
}
|
||||||
@@ -744,7 +861,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content_left_collection_detail{
|
.content_left_collection_detail{
|
||||||
height: calc(8rem + var(--padding) * 2);
|
// height: calc(8rem + var(--padding) * 2);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
@@ -752,6 +869,9 @@ export default defineComponent({
|
|||||||
.scaleImage_chunk_title{
|
.scaleImage_chunk_title{
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
|
>div{
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content_left_collection_content{
|
.content_left_collection_content{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@@ -825,12 +945,7 @@ export default defineComponent({
|
|||||||
.detail_left_right_item{
|
.detail_left_right_item{
|
||||||
margin-bottom: var(--margin);
|
margin-bottom: var(--margin);
|
||||||
}
|
}
|
||||||
.detail_left_right_item_click{
|
|
||||||
cursor: pointer;
|
|
||||||
i{
|
|
||||||
color: #9e9ea7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.detail_left_right_item:last-child{
|
.detail_left_right_item:last-child{
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
@@ -964,18 +1079,18 @@ export default defineComponent({
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
height: 8rem;
|
height: 8rem;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-top: 3rem;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
padding-bottom: var(--padding);
|
padding-bottom: var(--padding);
|
||||||
padding-top: var(--padding);
|
padding-top: var(--padding);
|
||||||
bottom: 0;
|
top: 0;
|
||||||
background: #f5f5f5;
|
background: #f5f5f5;
|
||||||
input,.detail_left_setComment_btn{
|
input,.detail_left_setComment_btn{
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
input{
|
input{
|
||||||
padding-left: var(--padding);
|
padding-left: var(--padding);
|
||||||
|
flex: 1;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
@@ -1040,23 +1155,7 @@ export default defineComponent({
|
|||||||
height: auto
|
height: auto
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.detail_right_look_operation{
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
>div{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
font-size: 2rem;
|
|
||||||
i{
|
|
||||||
display: flex;
|
|
||||||
font-size: 2rem;
|
|
||||||
color: #9e9ea7;
|
|
||||||
}
|
|
||||||
span{
|
|
||||||
margin-left: calc(var(--padding) / 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.detail_right_date{
|
.detail_right_date{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="publidh_right_btn">
|
<div class="publidh_right_btn">
|
||||||
<div class="started_btn" @click="cancelDsign">{{$t('Publish.Close')}}</div>
|
<div class="started_btn" @click="cancelDsign">{{$t('Publish.Close')}}</div>
|
||||||
<div class="started_btn" @click="setPublish">{{beenPublished == 0?'Publish':'Updata Publish'}}</div>
|
<div class="started_btn" @click="setPublish">{{beenPublished == 0?$t('Publish.Publish'):$t('Publish.UpdatePublish')}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -96,7 +96,7 @@ import { downloadIamge,base64ToFile } from "@/tool/util";
|
|||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
setup() {
|
setup(prop,{emit}) {
|
||||||
let {t} = useI18n()
|
let {t} = useI18n()
|
||||||
let publish: any = ref(false);//弹窗
|
let publish: any = ref(false);//弹窗
|
||||||
let publishMask:any = ref(false)//弹窗遮罩
|
let publishMask:any = ref(false)//弹窗遮罩
|
||||||
@@ -222,6 +222,7 @@ export default defineComponent({
|
|||||||
.then((rv) => {
|
.then((rv) => {
|
||||||
cleardata()
|
cleardata()
|
||||||
publishData.isShowMark = false
|
publishData.isShowMark = false
|
||||||
|
emit('setPublish')
|
||||||
message.success(t('Publish.jsContent4'))
|
message.success(t('Publish.jsContent4'))
|
||||||
})
|
})
|
||||||
.catch((rv) => {
|
.catch((rv) => {
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ export default {
|
|||||||
jsContent5:"我们很高兴让您体验AiDA 3.0。请注意,部分服务在试用期间可能会受到限制。如果您已经准备好全身心投入并享受完整的体验,我们诚挚地邀请您订阅。只需访问",
|
jsContent5:"我们很高兴让您体验AiDA 3.0。请注意,部分服务在试用期间可能会受到限制。如果您已经准备好全身心投入并享受完整的体验,我们诚挚地邀请您订阅。只需访问",
|
||||||
jsContent6:" 就可以开始订阅。感谢您试用我们的服务!",
|
jsContent6:" 就可以开始订阅。感谢您试用我们的服务!",
|
||||||
jsContent9:"是否清除当前收集?",
|
jsContent9:"是否清除当前收集?",
|
||||||
|
jsContent10:"请完成标语图片",
|
||||||
},
|
},
|
||||||
ProductImg:{
|
ProductImg:{
|
||||||
Finalize:'完成',
|
Finalize:'完成',
|
||||||
@@ -150,6 +151,8 @@ export default {
|
|||||||
SelectedProduct:'选择的产品',
|
SelectedProduct:'选择的产品',
|
||||||
Export:'导出',
|
Export:'导出',
|
||||||
ProductImage:'产品图',
|
ProductImage:'产品图',
|
||||||
|
Relight:'打光',
|
||||||
|
Clear:'清空',
|
||||||
jsContent1:'如果您离开此页,您的更改将会丢失。您确定要离开这一页吗?',
|
jsContent1:'如果您离开此页,您的更改将会丢失。您确定要离开这一页吗?',
|
||||||
jsContent2:'请至少选择一张图片',
|
jsContent2:'请至少选择一张图片',
|
||||||
},
|
},
|
||||||
@@ -170,6 +173,7 @@ export default {
|
|||||||
NoLabel:'空标签',
|
NoLabel:'空标签',
|
||||||
unionSet:'并集',
|
unionSet:'并集',
|
||||||
all:'全选',
|
all:'全选',
|
||||||
|
generated:'所有默认材质都是AiDA自己生成',
|
||||||
ImageOnly:'图片',
|
ImageOnly:'图片',
|
||||||
TextOnly:'文字',
|
TextOnly:'文字',
|
||||||
TextImage:'图片-文字',
|
TextImage:'图片-文字',
|
||||||
@@ -307,6 +311,8 @@ export default {
|
|||||||
RGBA:'RGBA',
|
RGBA:'RGBA',
|
||||||
UploadImage:'上传图片',
|
UploadImage:'上传图片',
|
||||||
ColorCode:'颜色代码',
|
ColorCode:'颜色代码',
|
||||||
|
SelectSuccessively:'连选',
|
||||||
|
SelectSeparately:'单选',
|
||||||
ExtractColor:'提取颜色',
|
ExtractColor:'提取颜色',
|
||||||
Single:'单色',
|
Single:'单色',
|
||||||
Gradual:'渐变',
|
Gradual:'渐变',
|
||||||
@@ -471,6 +477,7 @@ export default {
|
|||||||
Permissions:'权限',
|
Permissions:'权限',
|
||||||
PermissionsItem1:'是否允许其他用户进行二次创建。',
|
PermissionsItem1:'是否允许其他用户进行二次创建。',
|
||||||
Close:'关闭',
|
Close:'关闭',
|
||||||
|
UpdatePublish:'更新发布',
|
||||||
jsContent1:'如果您离开此页,您的更改将会丢失。您确定要离开这一页吗?',
|
jsContent1:'如果您离开此页,您的更改将会丢失。您确定要离开这一页吗?',
|
||||||
jsContent2:'请输入您的作品名称',
|
jsContent2:'请输入您的作品名称',
|
||||||
jsContent3:'这将把您的作品发布到广场上,供所有用户查看。请确认是否发布?',
|
jsContent3:'这将把您的作品发布到广场上,供所有用户查看。请确认是否发布?',
|
||||||
@@ -487,10 +494,15 @@ export default {
|
|||||||
reply:'回复',
|
reply:'回复',
|
||||||
unfold:'展开',
|
unfold:'展开',
|
||||||
Collapse:'折叠',
|
Collapse:'折叠',
|
||||||
|
Title:'标题',
|
||||||
|
Delete:'删除',
|
||||||
|
Describe:'描述',
|
||||||
replyAll:'所有回复',
|
replyAll:'所有回复',
|
||||||
jsContent1:'请先登录或者升级为正式用户',
|
jsContent1:'请先登录或者升级为正式用户',
|
||||||
jsContent2:'作者不允许二次创作',
|
jsContent2:'作者不允许二次创作',
|
||||||
jsContent3:'请输入评论内容',
|
jsContent3:'请输入评论内容',
|
||||||
|
jsContent4:'是否删除当前评论',
|
||||||
|
jsContent5:'是否删除当前作品',
|
||||||
},
|
},
|
||||||
guide:{
|
guide:{
|
||||||
guide1:"在<strong>工作空间</strong>中,您可以个性化您的设计设置,包括选择适用于男装或女装的设计,以及选择用于创作的人体模型。",
|
guide1:"在<strong>工作空间</strong>中,您可以个性化您的设计设置,包括选择适用于男装或女装的设计,以及选择用于创作的人体模型。",
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ export default {
|
|||||||
SelectedProduct:'Selected Product',
|
SelectedProduct:'Selected Product',
|
||||||
Export:'Export',
|
Export:'Export',
|
||||||
ProductImage:'Product Image',
|
ProductImage:'Product Image',
|
||||||
|
Relight:'Relight',
|
||||||
|
Clear:'Clear',
|
||||||
jsContent1:'Your changes will be lost if you navigate away from this page. Are you sure you want to leave this page?',
|
jsContent1:'Your changes will be lost if you navigate away from this page. Are you sure you want to leave this page?',
|
||||||
jsContent2:'Please select at least one picture',
|
jsContent2:'Please select at least one picture',
|
||||||
},
|
},
|
||||||
@@ -171,6 +173,7 @@ export default {
|
|||||||
NoLabel:'No Label',
|
NoLabel:'No Label',
|
||||||
unionSet:'union set',
|
unionSet:'union set',
|
||||||
all:'all',
|
all:'all',
|
||||||
|
generated:'All default materials are generated by AiDA ourselves',
|
||||||
ImageOnly:'Image Only',
|
ImageOnly:'Image Only',
|
||||||
TextOnly:'Text Only',
|
TextOnly:'Text Only',
|
||||||
TextImage:'Text-Image',
|
TextImage:'Text-Image',
|
||||||
@@ -308,6 +311,8 @@ export default {
|
|||||||
RGBA:'RGBA',
|
RGBA:'RGBA',
|
||||||
UploadImage:'Upload Image',////////////
|
UploadImage:'Upload Image',////////////
|
||||||
ColorCode:'Color Code',
|
ColorCode:'Color Code',
|
||||||
|
SelectSuccessively:'Select Successively',
|
||||||
|
SelectSeparately:'Select Separately',
|
||||||
ExtractColor:'Extract Color',
|
ExtractColor:'Extract Color',
|
||||||
Single:'Single',
|
Single:'Single',
|
||||||
Gradual:'Gradual',
|
Gradual:'Gradual',
|
||||||
@@ -383,6 +388,7 @@ export default {
|
|||||||
jsContent7:"upload failed",
|
jsContent7:"upload failed",
|
||||||
jsContent8:"You have {num} remaining opportunity to generate {str}.",
|
jsContent8:"You have {num} remaining opportunity to generate {str}.",
|
||||||
jsContent9:"You have exhausted your generation opportunities {str}.",
|
jsContent9:"You have exhausted your generation opportunities {str}.",
|
||||||
|
jsContent10:"Please complete the slogan picture",
|
||||||
},
|
},
|
||||||
collectionModal:{
|
collectionModal:{
|
||||||
Moodboard:'Moodboard',
|
Moodboard:'Moodboard',
|
||||||
@@ -472,6 +478,7 @@ export default {
|
|||||||
Permissions:'Permissions',
|
Permissions:'Permissions',
|
||||||
PermissionsItem1:'Whether to allow other users to perform secondary creation.',
|
PermissionsItem1:'Whether to allow other users to perform secondary creation.',
|
||||||
Close:'Close',
|
Close:'Close',
|
||||||
|
UpdatePublish:'Update Publish',
|
||||||
jsContent1:'Your changes will be lost if you navigate away from this page. Are you sure you want to leave this page?',
|
jsContent1:'Your changes will be lost if you navigate away from this page. Are you sure you want to leave this page?',
|
||||||
jsContent2:'Please enter the name of your work',
|
jsContent2:'Please enter the name of your work',
|
||||||
jsContent3:'This will publish your work to the square for all users to see. Please confirm whether to publish?',
|
jsContent3:'This will publish your work to the square for all users to see. Please confirm whether to publish?',
|
||||||
@@ -487,11 +494,16 @@ export default {
|
|||||||
first:'You can be the first!',
|
first:'You can be the first!',
|
||||||
reply:'Reply',
|
reply:'Reply',
|
||||||
unfold:'Expand',
|
unfold:'Expand',
|
||||||
|
Title:'Title',
|
||||||
|
Delete:'Delete',
|
||||||
|
Describe:'Describe',
|
||||||
Collapse:'Collapse',
|
Collapse:'Collapse',
|
||||||
replyAll:'All replies',
|
replyAll:'All replies',
|
||||||
jsContent1:'Please log in or upgrade to an official user',
|
jsContent1:'Please log in or upgrade to an official user',
|
||||||
jsContent2:'The author is not allowed to use it',
|
jsContent2:'The author is not allowed to use it',
|
||||||
jsContent3:'Please enter a comment',
|
jsContent3:'Please enter a comment',
|
||||||
|
jsContent4:'Do you need to delete this comment',
|
||||||
|
jsContent5:'Whether to delete the current gallery',
|
||||||
},
|
},
|
||||||
guide:{
|
guide:{
|
||||||
guide1:"You can personalize your design settings right here in the <strong>Workspace</strong>, including choosing to design for men's or women's wear, as well as selecting the mannequin to use for your creations.",
|
guide1:"You can personalize your design settings right here in the <strong>Workspace</strong>, including choosing to design for men's or women's wear, as well as selecting the mannequin to use for your creations.",
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ function removeDiv(element){
|
|||||||
}
|
}
|
||||||
|
|
||||||
const openGuide = () =>{
|
const openGuide = () =>{
|
||||||
|
return//暂时关闭
|
||||||
let isTest = JSON.parse(getCookie('isTest'))
|
let isTest = JSON.parse(getCookie('isTest'))
|
||||||
let isBeginner = JSON.parse(getCookie('isBeginner'))
|
let isBeginner = JSON.parse(getCookie('isBeginner'))
|
||||||
// console.log(isBeginner);
|
// console.log(isBeginner);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ axios.interceptors.response.use((res) =>{
|
|||||||
if(!isLoginTime){
|
if(!isLoginTime){
|
||||||
isLoginTime = true
|
isLoginTime = true
|
||||||
router.replace('/')
|
router.replace('/')
|
||||||
message.warning('请登陆后重试~')
|
message.warning('Please login and try again~')
|
||||||
clonAllCookie()
|
clonAllCookie()
|
||||||
store.commit('clearSystemUser')
|
store.commit('clearSystemUser')
|
||||||
setTimeout(()=>[
|
setTimeout(()=>[
|
||||||
@@ -241,7 +241,9 @@ export const Https = {
|
|||||||
portfolioNoLike:`/api/portfolio/unlike`,//作品广场取消点赞
|
portfolioNoLike:`/api/portfolio/unlike`,//作品广场取消点赞
|
||||||
portfolioComment:`/api/portfolio/comment`,//作品广场评论
|
portfolioComment:`/api/portfolio/comment`,//作品广场评论
|
||||||
portfolioCommentPage:`/api/portfolio/commentPage`,//作品广场评论列表
|
portfolioCommentPage:`/api/portfolio/commentPage`,//作品广场评论列表
|
||||||
|
commentDelete:`/api/portfolio/commentDelete`,//删除评论
|
||||||
|
porfolioDelete:`/api/portfolio/delete`,//删除作品
|
||||||
|
|
||||||
//product生成
|
//product生成
|
||||||
toProduct:`/api/history/toProduct`,//开始生成
|
toProduct:`/api/history/toProduct`,//开始生成
|
||||||
toProductImageResult:`/api/history/toProductImageResult`,//获取结果
|
toProductImageResult:`/api/history/toProductImageResult`,//获取结果
|
||||||
@@ -250,7 +252,10 @@ export const Https = {
|
|||||||
productImageUnLike:`/api/history/productImageUnLike`,//取消like生成结果
|
productImageUnLike:`/api/history/productImageUnLike`,//取消like生成结果
|
||||||
productImageLikeList:`/api/history/productImageLikeList`,//like生成结果
|
productImageLikeList:`/api/history/productImageLikeList`,//like生成结果
|
||||||
|
|
||||||
|
//打光
|
||||||
|
relight:`/api/history/relight`,//开始生成
|
||||||
|
relightResult:`/api/history/relightResult`,//开始生成
|
||||||
|
|
||||||
//保存画布
|
//保存画布
|
||||||
canvasElementUpload:`/api/history/canvasElementUpload`,//画布上传临时图片
|
canvasElementUpload:`/api/history/canvasElementUpload`,//画布上传临时图片
|
||||||
exportSave:`/api/history/exportSave`,//保存画布
|
exportSave:`/api/history/exportSave`,//保存画布
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
v-if="isTest"
|
||||||
class="trialApproval button_second credits hideChecked"
|
class="trialApproval button_second credits hideChecked"
|
||||||
>
|
>
|
||||||
{{$t('Header.Credits')}}:
|
{{$t('Header.Credits')}}:
|
||||||
@@ -65,11 +66,11 @@
|
|||||||
<span class="icon iconfont icon-yuyan"></span>
|
<span class="icon iconfont icon-yuyan"></span>
|
||||||
<span class="select_item_des">{{$t('Header.language')}}</span>
|
<span class="select_item_des">{{$t('Header.language')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_item" @click="openTask()">
|
<!-- <div class="select_item" @click="openTask()">
|
||||||
|
|
||||||
<i class="icon iconfont icon-renwu"></i>
|
<i class="icon iconfont icon-renwu"></i>
|
||||||
<span class="select_item_des">{{$t('Header.TaskList')}}</span>
|
<span class="select_item_des">{{$t('Header.TaskList')}}</span>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="select_item" @click="orderForm()">
|
<div class="select_item" @click="orderForm()">
|
||||||
|
|
||||||
<i class="fi fi-rs-notebook"></i>
|
<i class="fi fi-rs-notebook"></i>
|
||||||
|
|||||||
@@ -10,39 +10,40 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="homeRecommend_right" v-if="systemUser.value == 0">
|
<div class="homeRecommend_right">
|
||||||
<a class="started_btn" href="https://code-create.com.hk/aida/" target="_blank">升级成为正式用户</a>
|
<a class="started_btn" v-if="systemUser.value == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
|
||||||
<div class="started_btn started_btn2" @click="logout">退出登录</div>
|
<div class="started_btn started_btn2" v-if="systemUser.value != -1" @click="logout">log off</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="homeRecommend_right" v-else-if="systemUser.value == -1">
|
<div class="homeRecommend_right" v-if="systemUser.value == -1">
|
||||||
<div class="started_btn" @click="setLogin">登录</div>
|
<div class="started_btn" @click="setLogin">Login</div>
|
||||||
<div class="started_btn started_btn2" @click="setRegister">注册</div>
|
<div class="started_btn started_btn2" @click="setRegister">Visitor registration</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div class="homeRecommend_content_body">
|
<div class="homeRecommend_content_body">
|
||||||
<div class="homeRecommend_content_body_recommend" id="aaaa">
|
<div class="homeRecommend_content_body_recommend" id="aaaa">
|
||||||
<div class="content_body_recommend_left">
|
<div class="content_body_recommend_left">
|
||||||
<img class="content_body_img1 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img1 content_body_img" src="/image/mainImg/img1.png" alt="">
|
||||||
<img class="content_body_img2 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img2 content_body_img" src="/image/mainImg/img2.png" alt="">
|
||||||
<img class="content_body_img3 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img3 content_body_img" src="/image/mainImg/img3.png" alt="">
|
||||||
<img class="content_body_img4 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img4 content_body_img" src="/image/mainImg/img4.png" alt="">
|
||||||
<img class="content_body_img5 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img5 content_body_img" src="/image/mainImg/img5.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="content_body_recommend_center content_body_text">
|
<div class="content_body_recommend_center content_body_text">
|
||||||
<div class="content_body_recommend_center_title">
|
<div class="content_body_recommend_center_title">
|
||||||
<h1>全球<div>最佳创作者</div>齐聚AIDA</h1>
|
<h1>AiDA × ANY</h1>
|
||||||
|
<h3>bloom your creativity</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_body_recommend_center_btn">
|
<div class="content_body_recommend_center_btn">
|
||||||
<a class="started_btn" href="https://code-create.com.hk/aida/" target="_blank">立即购买</a>
|
<a class="started_btn" href="https://code-create.com.hk/aida/" target="_blank">SUBSCRIBE NOW</a>
|
||||||
<a class="started_btn" href="https://code-create.com.hk/aida-trial/" target="_blank">立即试用</a>
|
<a class="started_btn" href="https://code-create.com.hk/aida-trial/" target="_blank">START TRIAL</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_body_recommend_right">
|
<div class="content_body_recommend_right">
|
||||||
<img class="content_body_img1 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img1 content_body_img" src="/image/mainImg/img6.png" alt="">
|
||||||
<img class="content_body_img2 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img2 content_body_img" src="/image/mainImg/img7.png" alt="">
|
||||||
<img class="content_body_img3 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img3 content_body_img" src="/image/mainImg/img8.png" alt="">
|
||||||
<img class="content_body_img4 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img4 content_body_img" src="/image/mainImg/img9.png" alt="">
|
||||||
<img class="content_body_img5 content_body_img" src="https://img2.baidu.com/it/u=1061364893,2453516073&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="">
|
<img class="content_body_img5 content_body_img" src="/image/mainImg/img10.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Works :isScroll="false"></Works>
|
<Works :isScroll="false"></Works>
|
||||||
@@ -377,11 +378,18 @@ export default defineComponent({
|
|||||||
h1{
|
h1{
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
font-size: 13rem;
|
font-size: 13rem;
|
||||||
font-weight: 600;
|
font-weight: 900;
|
||||||
|
margin: 7rem;
|
||||||
div{
|
div{
|
||||||
color: #341e57;
|
color: #341e57;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
h3{
|
||||||
|
line-height: 1;
|
||||||
|
margin: 7rem;
|
||||||
|
font-size: 5rem;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.content_body_recommend_center_btn{
|
.content_body_recommend_center_btn{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<newScaleImage ref="newScaleImage"></newScaleImage>
|
<newScaleImage ref="newScaleImage" @deletePorfolio="deletePorfolio"></newScaleImage>
|
||||||
<!-- <RobotAssist></RobotAssist> -->
|
<!-- <RobotAssist></RobotAssist> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -131,7 +131,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
filter.getListDate.page = 0
|
filter.getListDate.page = 0
|
||||||
fall.value.clearData()
|
fall.value.clearData()
|
||||||
getPorfolio()
|
// getPorfolio()
|
||||||
}
|
}
|
||||||
let likeFile = (item:any,type:string) => {
|
let likeFile = (item:any,type:string) => {
|
||||||
}
|
}
|
||||||
@@ -175,8 +175,13 @@ export default defineComponent({
|
|||||||
// .catch((rv) => {
|
// .catch((rv) => {
|
||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
let deletePorfolio = (value:any)=>{
|
||||||
|
fall.value.deleteItem(value);
|
||||||
|
|
||||||
|
}
|
||||||
onMounted (()=>{
|
onMounted (()=>{
|
||||||
filter.isShowMark = false
|
filter.isShowMark = false
|
||||||
|
|
||||||
filter.isNoData = false
|
filter.isNoData = false
|
||||||
getPorfolio()
|
getPorfolio()
|
||||||
let worksPage:any = document.querySelector('.works_page')
|
let worksPage:any = document.querySelector('.works_page')
|
||||||
@@ -204,6 +209,7 @@ export default defineComponent({
|
|||||||
t,
|
t,
|
||||||
setprintModel,
|
setprintModel,
|
||||||
setPortfolioLike,
|
setPortfolioLike,
|
||||||
|
deletePorfolio,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
<div class="libray_right_content">
|
<div class="libray_right_content">
|
||||||
<div class="right_content_body" v-show="uploadGenerate =='Upload'">
|
<div class="right_content_body" v-show="uploadGenerate =='Upload'">
|
||||||
<div class="content_body_header" v-show="selectCode == 'DesignElements'">
|
<div class="content_body_header" v-show="selectCode == 'DesignElements'">
|
||||||
<div style="font-size:1.5rem;">All default materials are generated by AiDA ourselves</div>
|
<div style="font-size:1.5rem;">{{ $t('LibraryPage.generated') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="content_body_header"> -->
|
<!-- <div class="content_body_header"> -->
|
||||||
<div class="content_body_header" v-show="selectCode != 'DesignElements'">
|
<div class="content_body_header" v-show="selectCode != 'DesignElements'">
|
||||||
@@ -225,12 +225,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-popover>
|
<!-- <a-popover>
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>Seed</p>
|
<p>Seed</p>
|
||||||
</template>
|
</template>
|
||||||
<input class="search_seed" max="9999" v-show="selectCode == 'Printboard' && scene?.value == 'Logo'" @input="ifSeedValue" v-model="searchPictureSeed" type="Number" placeholder='Seed' min="0">
|
<input class="search_seed" max="9999" v-show="selectCode == 'Printboard' && scene?.value == 'Logo'" @input="ifSeedValue" v-model="searchPictureSeed" type="Number" placeholder='Seed' min="0">
|
||||||
</a-popover>
|
</a-popover> -->
|
||||||
<input
|
<input
|
||||||
class="search_input "
|
class="search_input "
|
||||||
@input="ifMaximumLength"
|
@input="ifMaximumLength"
|
||||||
@@ -354,6 +354,7 @@ import { LoadingOutlined } from "@ant-design/icons-vue";
|
|||||||
import { defineComponent,h ,ref,createVNode,nextTick,reactive,provide,computed} from 'vue'
|
import { defineComponent,h ,ref,createVNode,nextTick,reactive,provide,computed} from 'vue'
|
||||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||||
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
|
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
|
||||||
|
// import ModelPlacement from '@/component/LibraryPage/ModelPlacementUpdata.vue';
|
||||||
import setLabel from '@/component/LibraryPage/setLabel.vue';
|
import setLabel from '@/component/LibraryPage/setLabel.vue';
|
||||||
import ModelPlacementMobile from '@/component/LibraryPage/ModelPlacementMobile.vue';
|
import ModelPlacementMobile from '@/component/LibraryPage/ModelPlacementMobile.vue';
|
||||||
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
|
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
|
||||||
@@ -508,6 +509,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
let isTextarea = ref(false)
|
let isTextarea = ref(false)
|
||||||
let workspace:any = ref({})
|
let workspace:any = ref({})
|
||||||
|
let generateLevel2:any = {}
|
||||||
return {
|
return {
|
||||||
menuList,
|
menuList,
|
||||||
selectImgList,
|
selectImgList,
|
||||||
@@ -551,6 +553,7 @@ export default defineComponent({
|
|||||||
options,
|
options,
|
||||||
isTextarea,
|
isTextarea,
|
||||||
workspace,
|
workspace,
|
||||||
|
generateLevel2,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(this_) {
|
data(this_) {
|
||||||
@@ -824,7 +827,9 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
deleteGenerate(index:any){
|
deleteGenerate(index:any){
|
||||||
if(this.isGenerate[this.selectCode])return
|
// if(this.isGenerate[this.selectCode])return
|
||||||
|
let num = this.generateList[this.selectCode].length
|
||||||
|
|
||||||
let _this = this
|
let _this = this
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: this.t('LibraryPage.jsContent1'),
|
title: this.t('LibraryPage.jsContent1'),
|
||||||
@@ -834,7 +839,8 @@ export default defineComponent({
|
|||||||
mask:false,
|
mask:false,
|
||||||
centered:true,
|
centered:true,
|
||||||
onOk() {
|
onOk() {
|
||||||
_this.generateList[_this.selectCode].splice(index,1)
|
let a = _this.generateList[_this.selectCode].length - num
|
||||||
|
_this.generateList[_this.selectCode].splice(index-a,1)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -1178,6 +1184,10 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
deleteFile(index: any) {
|
deleteFile(index: any) {
|
||||||
|
if(this.scene?.value == 'Slogan' && this.selectCode == 'Printboard'){
|
||||||
|
let createSlogan:any = this.$refs.createSlogan
|
||||||
|
createSlogan.isDeleteSlogan = true
|
||||||
|
}
|
||||||
this.selectGenerateList.splice(index, 1);
|
this.selectGenerateList.splice(index, 1);
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -1224,6 +1234,9 @@ export default defineComponent({
|
|||||||
sloganText = this.captionGeneration
|
sloganText = this.captionGeneration
|
||||||
if(this.selectCode == "Sketchboard"){
|
if(this.selectCode == "Sketchboard"){
|
||||||
level2Type = this.selectGenerateList?.[0]?.categoryValue?this.selectGenerateList[0].categoryValue:''
|
level2Type = this.selectGenerateList?.[0]?.categoryValue?this.selectGenerateList[0].categoryValue:''
|
||||||
|
if(this.workspace.styleName){
|
||||||
|
sloganText = `${this.workspace.styleName},${sloganText}`
|
||||||
|
}
|
||||||
}else if(this.selectCode == "Printboard"){
|
}else if(this.selectCode == "Printboard"){
|
||||||
level2Type = this.scene?.value
|
level2Type = this.scene?.value
|
||||||
if(level2Type == 'Slogan' && this.captionGeneration == ''){
|
if(level2Type == 'Slogan' && this.captionGeneration == ''){
|
||||||
@@ -1233,7 +1246,7 @@ export default defineComponent({
|
|||||||
sloganText = `${arr[this.printModel.num-1]},${sloganText}`
|
sloganText = `${arr[this.printModel.num-1]},${sloganText}`
|
||||||
}
|
}
|
||||||
if(!base64 && level2Type == 'Slogan'){
|
if(!base64 && level2Type == 'Slogan'){
|
||||||
message.info('请绘制Slogan');
|
message.info(this.t('Generate.jsContent10'));
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1252,6 +1265,7 @@ export default defineComponent({
|
|||||||
gender:selectCodeStr == 'Sketchboard'?this.sex:'',
|
gender:selectCodeStr == 'Sketchboard'?this.sex:'',
|
||||||
sloganBase64:base64,
|
sloganBase64:base64,
|
||||||
}
|
}
|
||||||
|
this.generateLevel2[selectCodeStr] = data.level2Type
|
||||||
this.isGenerate[selectCodeStr] = true
|
this.isGenerate[selectCodeStr] = true
|
||||||
this.isTextarea = false
|
this.isTextarea = false
|
||||||
this.remGenerateTime[selectCodeStr] = setTimeout(()=>{
|
this.remGenerateTime[selectCodeStr] = setTimeout(()=>{
|
||||||
@@ -1282,6 +1296,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
).catch(res=>{
|
).catch(res=>{
|
||||||
// this.isShowMark = false
|
// this.isShowMark = false
|
||||||
|
this.generateLevel2[selectCodeStr] = ''
|
||||||
this.isGenerate[selectCodeStr] = false
|
this.isGenerate[selectCodeStr] = false
|
||||||
clearInterval(this.remGenerateTime[selectCodeStr])
|
clearInterval(this.remGenerateTime[selectCodeStr])
|
||||||
this.remGenerate[selectCodeStr] = false
|
this.remGenerate[selectCodeStr] = false
|
||||||
@@ -1314,6 +1329,7 @@ export default defineComponent({
|
|||||||
// element.category = this.scene?.value
|
// element.category = this.scene?.value
|
||||||
this.generateList[str].unshift(element)
|
this.generateList[str].unshift(element)
|
||||||
data = data.filter((item:any) => item !== element.taskId);
|
data = data.filter((item:any) => item !== element.taskId);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if((data.length == 0)|| (rv.filter((item:any)=>item.status == 'Invalid').length == data.length)){
|
if((data.length == 0)|| (rv.filter((item:any)=>item.status == 'Invalid').length == data.length)){
|
||||||
@@ -1324,6 +1340,7 @@ export default defineComponent({
|
|||||||
clearInterval(this.remGenerateTime[str])
|
clearInterval(this.remGenerateTime[str])
|
||||||
this.remGenerate[str] = false
|
this.remGenerate[str] = false
|
||||||
this.isGenerate[str] = false
|
this.isGenerate[str] = false
|
||||||
|
this.generateLevel2 = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1333,6 +1350,7 @@ export default defineComponent({
|
|||||||
// this.isShowMark = false
|
// this.isShowMark = false
|
||||||
this.isGenerate[str] = false
|
this.isGenerate[str] = false
|
||||||
this.remGenerate[str] = false
|
this.remGenerate[str] = false
|
||||||
|
this.generateLevel2[str] = ''
|
||||||
});
|
});
|
||||||
},1000)
|
},1000)
|
||||||
},
|
},
|
||||||
@@ -1343,7 +1361,16 @@ export default defineComponent({
|
|||||||
clearInterval(this.generateTime[this.selectCode])
|
clearInterval(this.generateTime[this.selectCode])
|
||||||
if(this.generateProceedList){
|
if(this.generateProceedList){
|
||||||
let str = this.generateProceedList.map((obj:any) => obj.taskId).join(',');
|
let str = this.generateProceedList.map((obj:any) => obj.taskId).join(',');
|
||||||
let data = {uniqueId:str,userId:(this?.userInfo as any)?.userId,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone}
|
let type = 'Generate'
|
||||||
|
if(this.generateLevel2[str] == 'Logo'){
|
||||||
|
type = 'Logo'
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
uniqueId:str,
|
||||||
|
userId:(this?.userInfo as any)?.userId,
|
||||||
|
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||||
|
type: type
|
||||||
|
}
|
||||||
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(
|
Https.axiosGet(Https.httpUrls.generateStopWaiting, {params:data}).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
this.generateProceedList = []
|
this.generateProceedList = []
|
||||||
|
|||||||
@@ -676,8 +676,7 @@ export default defineComponent({
|
|||||||
let submit = (value:any)=>{
|
let submit = (value:any)=>{
|
||||||
Https.axiosPost(Https.httpUrls.questionnaire, value).then(
|
Https.axiosPost(Https.httpUrls.questionnaire, value).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
console.log(rv);
|
alert('Submit Successfully!')
|
||||||
|
|
||||||
}
|
}
|
||||||
).catch(res=>{
|
).catch(res=>{
|
||||||
});
|
});
|
||||||
@@ -790,7 +789,7 @@ export default defineComponent({
|
|||||||
border: 2px solid rgb(173, 173, 173);
|
border: 2px solid rgb(173, 173, 173);
|
||||||
}
|
}
|
||||||
input,select{
|
input,select{
|
||||||
height: 40px;
|
height: 7rem;
|
||||||
}
|
}
|
||||||
input,
|
input,
|
||||||
button,
|
button,
|
||||||
|
|||||||
@@ -672,6 +672,7 @@ export default defineComponent({
|
|||||||
let submit = (value:any)=>{
|
let submit = (value:any)=>{
|
||||||
Https.axiosPost(Https.httpUrls.questionnaire, value).then(
|
Https.axiosPost(Https.httpUrls.questionnaire, value).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
|
alert('提交成功!')
|
||||||
}
|
}
|
||||||
).catch(res=>{
|
).catch(res=>{
|
||||||
});
|
});
|
||||||
@@ -783,7 +784,7 @@ export default defineComponent({
|
|||||||
border: 2px solid rgb(173, 173, 173);
|
border: 2px solid rgb(173, 173, 173);
|
||||||
}
|
}
|
||||||
input,select{
|
input,select{
|
||||||
height: 40px;
|
height: 7rem;
|
||||||
}
|
}
|
||||||
input,
|
input,
|
||||||
button,
|
button,
|
||||||
|
|||||||