fix
This commit is contained in:
@@ -17,7 +17,7 @@ const imageData = [
|
|||||||
name: "风景照片",
|
name: "风景照片",
|
||||||
type: "风景",
|
type: "风景",
|
||||||
imgList: [
|
imgList: [
|
||||||
{ url: "/src/assets/work/1.PNG", name: "山景" },
|
{ url: "https://www.minio-api.aida.com.hk/aida-users/83/printboard/7a0cccfc-1e3c-4c38-af65-d6179f21a267.png?response-content-type=image%2Fpng&response-content-disposition=inline&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=admin%2F20250723%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250723T025046Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=3612d6c168207bebdae2fa7c7c2c86ea0f48358b99b8b41dec9e2ff15e197e15", name: "山景" },
|
||||||
{ url: "/src/assets/work/2.PNG", name: "海景" },
|
{ url: "/src/assets/work/2.PNG", name: "海景" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -264,7 +264,8 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.app-container {
|
.app-container {
|
||||||
height: 100vh;
|
height: 100%;
|
||||||
|
// height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -201,7 +201,7 @@
|
|||||||
<a-spin size="large" />
|
<a-spin size="large" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<scaleImage ref="scaleImage" :isCanvas="type_.type2 == 'Sketchboard'" :sex="workspace.sex"></scaleImage>
|
<scaleImage ref="scaleImage" :imgType="type_.type2" :sex="workspace.sex"></scaleImage>
|
||||||
<createSlogan ref="createSlogan" @setSloganData="setSloganData"></createSlogan>
|
<createSlogan ref="createSlogan" @setSloganData="setSloganData"></createSlogan>
|
||||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -135,7 +135,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="scaleImage_content_imgBox" :class="{active:isComparison}">
|
<div class="scaleImage_content_imgBox" :class="{active:isComparison}">
|
||||||
<img v-if="isComparison" :src="scaleImageList[scaleImageIndex]?.sourceUrl">
|
<img v-if="isComparison" :src="scaleImageList[scaleImageIndex]?.sourceUrl">
|
||||||
<generalMiniCanvas v-if="isCanvas" :imgUrl="scaleImageList[scaleImageIndex]?.imgUrl || scaleImageList[scaleImageIndex]?.url" @submitBase64Data="submitBase64Data"></generalMiniCanvas>
|
<generalMiniCanvas v-if="false" :imgUrl="scaleImageList[scaleImageIndex]?.imgUrl || scaleImageList[scaleImageIndex]?.url" @submitBase64Data="submitBase64Data"></generalMiniCanvas>
|
||||||
<img v-else :style="{'max-width':maxWidth}" :src="scaleImageList[scaleImageIndex]?.imgUrl || scaleImageList[scaleImageIndex]?.url">
|
<img v-else :style="{'max-width':maxWidth}" :src="scaleImageList[scaleImageIndex]?.imgUrl || scaleImageList[scaleImageIndex]?.url">
|
||||||
|
|
||||||
<!-- <div class="img_operate_block" v-if="isLike">
|
<!-- <div class="img_operate_block" v-if="isLike">
|
||||||
@@ -187,9 +187,9 @@ export default defineComponent({
|
|||||||
upload:'',
|
upload:'',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
isCanvas:{
|
imgType:{
|
||||||
type:Boolean,
|
type:String,
|
||||||
default:false,
|
default:'',
|
||||||
},
|
},
|
||||||
sex:{
|
sex:{
|
||||||
type:String,
|
type:String,
|
||||||
@@ -445,6 +445,8 @@ export default defineComponent({
|
|||||||
"gender": props.sex,
|
"gender": props.sex,
|
||||||
"originalId":scaleImageList.value[scaleImageIndex.value]?.id,
|
"originalId":scaleImageList.value[scaleImageIndex.value]?.id,
|
||||||
"isOverride":isOverlay,
|
"isOverride":isOverlay,
|
||||||
|
originalIdSource:props.imgType,
|
||||||
|
type:props.imgType,
|
||||||
}
|
}
|
||||||
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
||||||
(rv) => {
|
(rv) => {
|
||||||
@@ -601,7 +603,7 @@ export default defineComponent({
|
|||||||
setImageIndex(index:any){
|
setImageIndex(index:any){
|
||||||
if(this.isNext)return
|
if(this.isNext)return
|
||||||
let this_ = this
|
let this_ = this
|
||||||
if(this.isCanvas){
|
if(this.imgType == 'Printboard' || this.imgType == 'Sketchboard'){
|
||||||
this.isNext = true
|
this.isNext = true
|
||||||
new Promise((resolve,reject)=>{
|
new Promise((resolve,reject)=>{
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
<div class="collectionBox">
|
<div class="collectionBox">
|
||||||
<MoodboardUpload ref="moodBoard" v-show="openType == 'moodBoard' || collectionStep == 1"></MoodboardUpload>
|
<MoodboardUpload ref="moodBoard" v-show="openType == 'moodBoard' || collectionStep == 1"></MoodboardUpload>
|
||||||
<PrintboardUpload ref="printBoard" v-show="openType == 'printBoard' || collectionStep == 2"></PrintboardUpload>
|
<PrintboardUpload ref="printBoard" v-show="openType == 'printBoard' || collectionStep == 2"></PrintboardUpload>
|
||||||
<ColorboardUpload ref="colorBoard" v-show="openType == 'colorBoard' || collectionStep == 3"></ColorboardUpload>
|
<ColorboardUpload ref="colorBoard" v-show="openType == 'colorBoard' || collectionStep == 3" :collectionStep="collectionStep"></ColorboardUpload>
|
||||||
<mannequin ref="mannequin" v-show="openType == 'mannequin' || collectionStep == 4"></mannequin>
|
<mannequin ref="mannequin" v-show="openType == 'mannequin' || collectionStep == 4"></mannequin>
|
||||||
<SketchboardUpload ref="sketchBoard" v-show="openType == 'sketchBoard' || collectionStep == 5"></SketchboardUpload>
|
<SketchboardUpload ref="sketchBoard" v-show="openType == 'sketchBoard' || collectionStep == 5"></SketchboardUpload>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -254,29 +254,32 @@ export default defineComponent({
|
|||||||
collectionStep:{
|
collectionStep:{
|
||||||
handler(newVal,oldVal){
|
handler(newVal,oldVal){
|
||||||
if(newVal != 3)return
|
if(newVal != 3)return
|
||||||
const backIcon = document.createElement('div');
|
nextTick(()=>{
|
||||||
if(backIcon.classList.contains('vc-sketch-color-wrap'))return
|
const backIcon = document.createElement('div');
|
||||||
backIcon.classList.add('vc-sketch-color-wrap')
|
if(backIcon.classList.contains('vc-sketch-color-wrap'))return
|
||||||
let dropperDom = document.getElementsByClassName("colorboard_upload_modal")[0].getElementsByClassName('vc-chrome-fields-wrap')[0]
|
backIcon.classList.add('vc-sketch-color-wrap')
|
||||||
dropperDom.appendChild(backIcon);
|
let dropperDom = document.getElementsByClassName("colorboard_upload_modal")[0].getElementsByClassName('vc-chrome-fields-wrap')[0]
|
||||||
backIcon.addEventListener('click', async ()=>{
|
dropperDom.appendChild(backIcon);
|
||||||
try {
|
backIcon.addEventListener('click', async ()=>{
|
||||||
const dropper = new EyeDropper();
|
try {
|
||||||
const result = await dropper.open();
|
const dropper = new EyeDropper();
|
||||||
let hex = result.sRGBHex.replace("#", "");
|
const result = await dropper.open();
|
||||||
// 将十六进制颜色码拆分成红、绿、蓝三个部分
|
let hex = result.sRGBHex.replace("#", "");
|
||||||
const r = parseInt(hex.substring(0, 2), 16);
|
// 将十六进制颜色码拆分成红、绿、蓝三个部分
|
||||||
const g = parseInt(hex.substring(2, 4), 16);
|
const r = parseInt(hex.substring(0, 2), 16);
|
||||||
const b = parseInt(hex.substring(4, 6), 16);
|
const g = parseInt(hex.substring(2, 4), 16);
|
||||||
this.selectColor = {rgba:{r:r,g:g,b:b,a:1},hex:result.sRGBHex}
|
const b = parseInt(hex.substring(4, 6), 16);
|
||||||
// 返回RGB格式的字符串
|
this.selectColor = {rgba:{r:r,g:g,b:b,a:1},hex:result.sRGBHex}
|
||||||
// return `rgb(${r}, ${g}, ${b})`;
|
// 返回RGB格式的字符串
|
||||||
// box.style.backgroundColor = label.textContent = result.sRGBHex;
|
// return `rgb(${r}, ${g}, ${b})`;
|
||||||
} catch (e) {
|
// box.style.backgroundColor = label.textContent = result.sRGBHex;
|
||||||
message.info(this.t('ColorboardUpload.jsContent1'))
|
} catch (e) {
|
||||||
}
|
message.info(this.t('ColorboardUpload.jsContent1'))
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
immediate: true,
|
||||||
},
|
},
|
||||||
selectColor:{
|
selectColor:{
|
||||||
handler(newVal,oldVal){
|
handler(newVal,oldVal){
|
||||||
|
|||||||
@@ -152,7 +152,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="moreBox" @click.stop>
|
<div class="moreBox" @click.stop>
|
||||||
<more level1Type="Printboard" :moreList="['edit','down','enlargement','delete']" :item="item" :index="index" @deleteFile="deleteFile" @scaleImage="scaleImage"></more>
|
<more level1Type="Printboard" :moreList="['edit','down','enlargement','delete']" :list="printboardList" :item="item" :index="index" @deleteFile="deleteFile" @scaleImage="scaleImage"></more>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -927,14 +927,26 @@ export default defineComponent({
|
|||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
&:hover{
|
||||||
|
.moreBox,.pin_block{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
:deep(.operate_file_block){
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
:deep(.operate_file_block){
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.2s ease-in-out;
|
||||||
|
}
|
||||||
.moreBox{
|
.moreBox{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
top: 1rem;
|
top: 1rem;
|
||||||
// opacity: 0;
|
opacity: 0;
|
||||||
width: 3rem;
|
width: 3rem;
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
transition: all 0.3s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
&.modal_imgItem:nth-child(even) {
|
&.modal_imgItem:nth-child(even) {
|
||||||
}
|
}
|
||||||
@@ -953,6 +965,8 @@ export default defineComponent({
|
|||||||
border-radius: 3rem;
|
border-radius: 3rem;
|
||||||
background: rgba(0,0,0,.7);
|
background: rgba(0,0,0,.7);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.2s ease-in-out;
|
||||||
>label{
|
>label{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -978,8 +992,10 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
span{
|
span{
|
||||||
font-size: 1.4rem;
|
font-size: 1.2rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&.active{
|
&.active{
|
||||||
|
|||||||
@@ -879,14 +879,26 @@ export default defineComponent({
|
|||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
&:hover{
|
||||||
|
.moreBox,.pin_block{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
:deep(.operate_file_block){
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
:deep(.operate_file_block){
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.2s ease-in-out;
|
||||||
|
}
|
||||||
.moreBox{
|
.moreBox{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
top: 1rem;
|
top: 1rem;
|
||||||
// opacity: 0;
|
opacity: 0;
|
||||||
width: 3rem;
|
width: 3rem;
|
||||||
height: 3rem;
|
height: 3rem;
|
||||||
transition: all 0.3s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
&.modal_imgItem:nth-child(even) {
|
&.modal_imgItem:nth-child(even) {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
@@ -909,6 +921,8 @@ export default defineComponent({
|
|||||||
border-radius: 3rem;
|
border-radius: 3rem;
|
||||||
background: rgba(0,0,0,.7);
|
background: rgba(0,0,0,.7);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.2s ease-in-out;
|
||||||
>label{
|
>label{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
<i class="fi fi-br-menu-dots-vertical" @click.stop="openList"></i>
|
<i class="fi fi-br-menu-dots-vertical" @click.stop="openList"></i>
|
||||||
<div class="more_box" v-show="show">
|
<div class="more_box" v-show="show">
|
||||||
<div class="item" v-if="moreList.includes('edit')" @click.stop="setMore('edit')">
|
<div class="item" v-if="moreList.includes('edit')" @click.stop="setMore('edit')">
|
||||||
<i class="fi fi-rr-edit"></i>
|
<!-- <i class="fi fi-rr-edit"></i> -->
|
||||||
|
<i class="fi fi-br-pen-swirl"></i>
|
||||||
<div class="text">{{ $t('more.edit') }}</div>
|
<div class="text">{{ $t('more.edit') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" v-if="moreList.includes('enlargement')" @click.stop="setMore('enlargement')">
|
<div class="item" v-if="moreList.includes('enlargement')" @click.stop="setMore('enlargement')">
|
||||||
@@ -30,6 +31,7 @@ import { Https } from "@/tool/https";
|
|||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import { downloadIamge } from "@/tool/util";
|
import { downloadIamge } from "@/tool/util";
|
||||||
|
import { Modal } from "ant-design-vue";
|
||||||
import modalCanvas from "@/component/modules/generalModalCanvas.vue";
|
import modalCanvas from "@/component/modules/generalModalCanvas.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@@ -38,6 +40,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
moreList:{type:Array,default:()=>[]},
|
moreList:{type:Array,default:()=>[]},
|
||||||
|
list:{type:Array,default:()=>[]},
|
||||||
item:{type:Object,default:()=>{}},
|
item:{type:Object,default:()=>{}},
|
||||||
index:{type:Number,default:0},
|
index:{type:Number,default:0},
|
||||||
level1Type:{type:String,default:''},
|
level1Type:{type:String,default:''},
|
||||||
@@ -45,6 +48,7 @@ export default defineComponent({
|
|||||||
emits:['deleteFile','scaleImage'],
|
emits:['deleteFile','scaleImage'],
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const {t} = useI18n()
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
show:false
|
show:false
|
||||||
})
|
})
|
||||||
@@ -73,9 +77,50 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
setShow()
|
setShow()
|
||||||
}
|
}
|
||||||
const saveBase64Img = (rv)=>{
|
const saveBase64Img = async (rv)=>{
|
||||||
console.log(rv)
|
let isOverlay = false
|
||||||
console.log(props.item)
|
await new Promise<void>((resolve, reject) => {
|
||||||
|
Modal.confirm({
|
||||||
|
title: t('scaleImage.overlayOrNot'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
resolve()
|
||||||
|
isOverlay = true
|
||||||
|
|
||||||
|
},
|
||||||
|
onCancel(){
|
||||||
|
isOverlay = false
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
let data = {
|
||||||
|
"base64": rv,
|
||||||
|
"category": props.item.categoryValue,
|
||||||
|
"gender": store.state.Workspace.probjects.sex,
|
||||||
|
"originalId":props.item.resData.id,
|
||||||
|
"isOverride":isOverlay,
|
||||||
|
originalIdSource:props.item.resData.designType,
|
||||||
|
type:props.level1Type,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
||||||
|
(rv) => {
|
||||||
|
rv.imgUrl = rv.url
|
||||||
|
rv.status = 'Success'
|
||||||
|
rv.resData = {
|
||||||
|
id:rv.id,
|
||||||
|
designType:props.item.resData.designType,
|
||||||
|
}
|
||||||
|
rv.category = props.item?.category
|
||||||
|
rv.categoryValue = props.item?.categoryValue
|
||||||
|
isOverlay?(props.list[props.index] = rv):(props.list.unshift(rv))
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return{
|
return{
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
|
|||||||
@@ -58,6 +58,8 @@
|
|||||||
<ExistsImageList :list="canvasSelectList" @select="handleImageSelect" />
|
<ExistsImageList :list="canvasSelectList" @select="handleImageSelect" />
|
||||||
</template>
|
</template>
|
||||||
</editCanvas>
|
</editCanvas>
|
||||||
|
<!-- <canvasAA ></canvasAA> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
<div class="gallery_btn" @click="saveCanvas">Save</div>
|
<div class="gallery_btn" @click="saveCanvas">Save</div>
|
||||||
@@ -86,10 +88,12 @@ import editCanvas from "@/component/Canvas/CanvasEditor/index.vue";
|
|||||||
import ExistsImageList from "@/component/Canvas/ExistsImageList/index.vue";
|
import ExistsImageList from "@/component/Canvas/ExistsImageList/index.vue";
|
||||||
import JSZip, { forEach } from "jszip";
|
import JSZip, { forEach } from "jszip";
|
||||||
import publish from "@/component/WorksPage/publish.vue";
|
import publish from "@/component/WorksPage/publish.vue";
|
||||||
|
import canvasAA from '@/component/Canvas/canvasExample.vue'
|
||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components:{
|
components:{
|
||||||
toProductRelight,poseTransfer,editCanvas,ExistsImageList,publish
|
toProductRelight,poseTransfer,editCanvas,ExistsImageList,publish,canvasAA
|
||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
source:{
|
source:{
|
||||||
@@ -268,6 +272,7 @@ export default defineComponent({
|
|||||||
const saveCanvas = ()=>{
|
const saveCanvas = ()=>{
|
||||||
let canvasJSON = dataDom.editCanvas.getJSON()
|
let canvasJSON = dataDom.editCanvas.getJSON()
|
||||||
let canvasData = JSON.parse(canvasJSON)
|
let canvasData = JSON.parse(canvasJSON)
|
||||||
|
|
||||||
if(!canvasData)return
|
if(!canvasData)return
|
||||||
canvasData.canvas.objects.forEach((objectsItem:any) => {
|
canvasData.canvas.objects.forEach((objectsItem:any) => {
|
||||||
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
|
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
|
||||||
@@ -306,7 +311,7 @@ export default defineComponent({
|
|||||||
let nameTail = imgItem.url?.split(".").pop().split("?").shift();
|
let nameTail = imgItem.url?.split(".").pop().split("?").shift();
|
||||||
img.push({
|
img.push({
|
||||||
imgUrl:imgItem.url,
|
imgUrl:imgItem.url,
|
||||||
name:`${item.type}${index}.${nameTail}`
|
name:`${item.type}${index}.${nameTail?nameTail:'png'}`
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -373,9 +378,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
const share = async ()=>{
|
const share = async ()=>{
|
||||||
var imageDataURL = '';
|
var imageDataURL = '';
|
||||||
await dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:false}).then((rv:any)=>{
|
imageDataURL = await dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:false})
|
||||||
imageDataURL = rv
|
|
||||||
})
|
|
||||||
console.log(imageDataURL)
|
console.log(imageDataURL)
|
||||||
let value = {
|
let value = {
|
||||||
imgUrl:imageDataURL,
|
imgUrl:imageDataURL,
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ axios.interceptors.response.use((res) =>{
|
|||||||
}
|
}
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
if(error?.response?.status === 401 && router.currentRoute._value.name != 'setIdentification'){//如果是记录浏览器页面就不跳转login
|
if(error?.response?.status === 401 && router.currentRoute._value.name != 'setIdentification'){//如果是记录浏览器页面就不跳转login
|
||||||
return
|
|
||||||
clonAllCookie()
|
clonAllCookie()
|
||||||
if(!isLoginTime){
|
if(!isLoginTime){
|
||||||
isLoginTime = true
|
isLoginTime = true
|
||||||
|
|||||||
@@ -225,6 +225,9 @@
|
|||||||
<div class="img_operate_block" :title="t('LibraryPage.Delete')" @click.stop="deleteSinglePic(img,index)">
|
<div class="img_operate_block" :title="t('LibraryPage.Delete')" @click.stop="deleteSinglePic(img,index)">
|
||||||
<span class="icon iconfont icon-shanchu operate_icon"></span>
|
<span class="icon iconfont icon-shanchu operate_icon"></span>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="img_operate_block" @click.stop="editImg(img,index)">
|
||||||
|
<i class="fi fi-br-pen-swirl"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -464,6 +467,7 @@
|
|||||||
<div class="content_img_item" v-for="(img,index) in generateList[selectCode]" :key="img.id" :class="[img.status != 'Success'?'hideEvents':'']"
|
<div class="content_img_item" v-for="(img,index) in generateList[selectCode]" :key="img.id" :class="[img.status != 'Success'?'hideEvents':'']"
|
||||||
:draggable="!isGenerate[selectCode]" @dragstart="startDrag($event,index)" @dragover.prevent @drop="drop($event,index)">
|
:draggable="!isGenerate[selectCode]" @dragstart="startDrag($event,index)" @dragover.prevent @drop="drop($event,index)">
|
||||||
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
|
<div :class="['content_img_item_block', selectImgList.indexOf(img.id) > -1 ? 'select_item_img' :'']">
|
||||||
|
|
||||||
<!-- <img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt=""> -->
|
<!-- <img v-show="img.status != 'Success'" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" src="@/assets/images/homePage/loading.gif" alt=""> -->
|
||||||
<img v-if="img?.imgUrl" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" v-lazy="img.imgUrl">
|
<img v-if="img?.imgUrl" :class="['content_img', ['Moodboard','Printboard'].indexOf(selectCode) > -1 ? 'board_content_img' :'']" v-lazy="img.imgUrl">
|
||||||
<div v-else class="loading">
|
<div v-else class="loading">
|
||||||
@@ -483,6 +487,10 @@
|
|||||||
<i v-if="!img.like" class="fi fi-rr-heart operate_icon" @click.stop="likeFile(img,'like')"></i>
|
<i v-if="!img.like" class="fi fi-rr-heart operate_icon" @click.stop="likeFile(img,'like')"></i>
|
||||||
<i v-else class="fi fi-sr-heart operate_icon" :adminLike="!!img.like" @click.stop="likeFile(img,'noLike')"></i>
|
<i v-else class="fi fi-sr-heart operate_icon" :adminLike="!!img.like" @click.stop="likeFile(img,'noLike')"></i>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="img_operate_block" @click.stop="editImg(img,index)">
|
||||||
|
<i class="fi fi-br-pen-swirl"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<sketchCategory v-show="selectCode == 'Sketchboard' && img?.imgUrl" :disignTypeList="designTypeList[selectCode]" :generateList="generateList['Sketchboard']" :item="img"></sketchCategory>
|
<sketchCategory v-show="selectCode == 'Sketchboard' && img?.imgUrl" :disignTypeList="designTypeList[selectCode]" :generateList="generateList['Sketchboard']" :item="img"></sketchCategory>
|
||||||
@@ -502,13 +510,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<searchLabel ref="searchLabel"></searchLabel>
|
<searchLabel ref="searchLabel"></searchLabel>
|
||||||
<scaleImage ref="scaleImage" :isCanvas="selectCode == 'Sketchboard'" :sex="workspace.sex"></scaleImage>
|
<scaleImage ref="scaleImage" :imgType="selectCode" :sex="workspace.sex"></scaleImage>
|
||||||
<!-- <ModelPlacement ref="ModelPlacement" @submitModelPlacement="getLibraryList"></ModelPlacement> -->
|
<!-- <ModelPlacement ref="ModelPlacement" @submitModelPlacement="getLibraryList"></ModelPlacement> -->
|
||||||
<setLabel ref="setLabel"></setLabel>
|
<setLabel ref="setLabel"></setLabel>
|
||||||
<createSlogan ref="createSlogan" @setSloganData="setSloganData"></createSlogan>
|
<createSlogan ref="createSlogan" @setSloganData="setSloganData"></createSlogan>
|
||||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||||
|
|
||||||
<createBrand ref="createBrand" @submitBrandAdd="getBrandDNAList"></createBrand>
|
<createBrand ref="createBrand" @submitBrandAdd="getBrandDNAList"></createBrand>
|
||||||
|
<modalCanvas ref="modalCanvas" @setSloganData="saveBase64Img"></modalCanvas>
|
||||||
|
|
||||||
<!-- <RobotAssist></RobotAssist> -->
|
<!-- <RobotAssist></RobotAssist> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -521,6 +531,7 @@ import setLabel from '@/component/LibraryPage/setLabel.vue';
|
|||||||
import brandDetail from '@/component/LibraryPage/brandDetail.vue';
|
import brandDetail from '@/component/LibraryPage/brandDetail.vue';
|
||||||
import createBrand from '@/component/LibraryPage/createBrand.vue';
|
import createBrand from '@/component/LibraryPage/createBrand.vue';
|
||||||
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
|
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
|
||||||
|
import modalCanvas from "@/component/modules/generalModalCanvas.vue";
|
||||||
|
|
||||||
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||||
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
|
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
|
||||||
@@ -552,6 +563,7 @@ export default defineComponent({
|
|||||||
generalMenu,
|
generalMenu,
|
||||||
UpgradePlan,
|
UpgradePlan,
|
||||||
mannequinEdit,
|
mannequinEdit,
|
||||||
|
modalCanvas,
|
||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
},
|
},
|
||||||
@@ -595,12 +607,14 @@ export default defineComponent({
|
|||||||
const dataDom = reactive({
|
const dataDom = reactive({
|
||||||
createBrand:null as any,
|
createBrand:null as any,
|
||||||
brandDetail:null as any,
|
brandDetail:null as any,
|
||||||
|
modalCanvas:null as any,
|
||||||
})
|
})
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
isBrandDetail:false,
|
isBrandDetail:false,
|
||||||
brandDNAList:[] as any,
|
brandDNAList:[] as any,
|
||||||
ageGroup:'',
|
ageGroup:'',
|
||||||
ageGroupList:computed(()=>store.state.UserHabit.ageGroup),
|
ageGroupList:computed(()=>store.state.UserHabit.ageGroup),
|
||||||
|
editIndex:-1,
|
||||||
})
|
})
|
||||||
let designTypeList:any = ref({
|
let designTypeList:any = ref({
|
||||||
Sketchboard:positionType,
|
Sketchboard:positionType,
|
||||||
@@ -845,7 +859,42 @@ export default defineComponent({
|
|||||||
const addBrand = ()=>{
|
const addBrand = ()=>{
|
||||||
dataDom.createBrand.openAddBrand()
|
dataDom.createBrand.openAddBrand()
|
||||||
}
|
}
|
||||||
|
const editImg = (item:any,index:number)=>{
|
||||||
|
console.log(item)
|
||||||
|
pageData.editIndex = index
|
||||||
|
dataDom.modalCanvas.init(item,'')
|
||||||
|
// imgList
|
||||||
|
}
|
||||||
|
const saveBase64Img = (rv)=>{
|
||||||
|
let item = imgList.value[pageData.editIndex]
|
||||||
|
if(uploadGenerate.value !='Upload'){
|
||||||
|
item = generateList.value[selectCode.value]
|
||||||
|
item.designType = 'Generate'
|
||||||
|
item.level1Type = selectCode.value
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
"base64": rv,
|
||||||
|
"category": item.level2Type,
|
||||||
|
"gender": sex.value,
|
||||||
|
"originalId":item.id,
|
||||||
|
"isOverride":true,
|
||||||
|
originalIdSource:item.designType,
|
||||||
|
type:item.level1Type,
|
||||||
|
}
|
||||||
|
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
||||||
|
(rv) => {
|
||||||
|
// rv.imgUrl = rv.url
|
||||||
|
// rv.status = 'Success'
|
||||||
|
// rv.designType = item.designType
|
||||||
|
// rv.category = props.categoryValue
|
||||||
|
// rv.categoryValue = props.item?.categoryValue
|
||||||
|
// props.list[props.index] = rv
|
||||||
|
item.url = rv.url
|
||||||
|
}
|
||||||
|
).catch(res=>{
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...toRefs(dataDom),
|
...toRefs(dataDom),
|
||||||
...toRefs(pageData),
|
...toRefs(pageData),
|
||||||
@@ -907,6 +956,8 @@ export default defineComponent({
|
|||||||
setSpeed,
|
setSpeed,
|
||||||
openBrandDetail,
|
openBrandDetail,
|
||||||
addBrand,
|
addBrand,
|
||||||
|
editImg,
|
||||||
|
saveBase64Img,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(this_) {
|
data(this_) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
AiDA, a first-to-market technology that empowers fashion designers, based on their creative inspirations, to work with AI to create original designs.
|
AiDA, a first-to-market technology that empowers fashion designers, based on their creative inspirations, to work with AI to create original designs.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="loginBox">
|
<div class="loginBox" :class="{'active':loginType}">
|
||||||
<div class="selectType" v-show="!loginType">
|
<div class="selectType" v-show="!loginType">
|
||||||
<div class="text">Continue with one of these:</div>
|
<div class="text">Continue with one of these:</div>
|
||||||
<div class="typeList">
|
<div class="typeList">
|
||||||
@@ -33,11 +33,11 @@
|
|||||||
Individual
|
Individual
|
||||||
</div>
|
</div>
|
||||||
<div class="gallery_btn" @click="setLoginType('school')">
|
<div class="gallery_btn" @click="setLoginType('school')">
|
||||||
Enterprise
|
|
||||||
</div>
|
|
||||||
<div class="gallery_btn" @click="setLoginType('enterprise')">
|
|
||||||
Academic
|
Academic
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div class="gallery_btn" @click="setLoginType('enterprise')">
|
||||||
|
Enterprise
|
||||||
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="login" v-show="loginType">
|
<div class="login" v-show="loginType">
|
||||||
@@ -220,6 +220,9 @@ export default defineComponent({
|
|||||||
> .loginBox {
|
> .loginBox {
|
||||||
width: 44rem;
|
width: 44rem;
|
||||||
margin-top: 7rem;
|
margin-top: 7rem;
|
||||||
|
&.active{
|
||||||
|
width: 53rem;
|
||||||
|
}
|
||||||
> .selectType {
|
> .selectType {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
Reference in New Issue
Block a user