Merge branch 'dev_vite' of http://18.167.251.121:10003/aidlab/aida_front into dev_vite

This commit is contained in:
zhangyh
2025-11-14 15:20:49 +08:00
17 changed files with 406 additions and 32 deletions

View File

@@ -50,7 +50,7 @@
</div>
</div>
<div class="item detailLeft" :class="{isEditPattern:isEditPattern.value}">
<detailLeft v-if="currentDetailType"></detailLeft>
<detailLeft v-if="currentDetailType" ref="detailLeft"></detailLeft>
<!-- <detailLeft v-if="selectDetail && selectDetail.id && currentDetailType"></detailLeft> -->
<div class="btn" style="margin: 0;" v-show="currentDetailType == 'color'">
<div class="gallery_btn" @click="previwe">{{$t('DesignPrintOperation.Preview')}}</div>
@@ -67,6 +67,7 @@
@revocation="revocation"
@oppositeRevocation="oppositeRevocation"
@modelOnLoad="modelOnLoad"
@sketchSysToLibrary="sketchSysToLibrary"
></model>
<div class="btn">
<div class="gallery_btn" style="margin-right: 0;" @click="submit">{{$t('DesignPrintOperation.Submit')}}</div>
@@ -136,6 +137,7 @@ export default defineComponent({
model:null,
canvasBox,
detailRight,
detailLeft:null as any,
})
const userDetail = computed(()=>{
return store.state.UserHabit.userDetail
@@ -491,6 +493,9 @@ export default defineComponent({
store.commit('DesignDetail/setDesignDetail',detailData.designDetail)
},1000)
}
const sketchSysToLibrary = ()=>{//系统sketch添加到library更新library
detailDom.detailLeft.sketchSysToLibrary()
}
onMounted(()=>{
window.addEventListener('resize', handleResize);
})
@@ -515,6 +520,7 @@ export default defineComponent({
detailEdit,
canvasReload,
modelOnLoad,
sketchSysToLibrary,
}
},

View File

@@ -16,6 +16,7 @@
:clothing-image-opts="{
imageMode:'contains',
}"
:hideCanvas="hideCanvas"
ref="editCanvas">
</editCanvas>
<!-- <canvasContent ref="canvasContent"></canvasContent> -->
@@ -37,6 +38,7 @@
:clothing-image-opts="{
imageMode:'contains',
}"
:hideCanvas="hideCanvas"
ref="editCanvasBackFront">
</editCanvas>
</div>
@@ -63,6 +65,7 @@ import { useStore } from "vuex";
import { useI18n } from 'vue-i18n'
import editCanvas from "@/component/Canvas/CanvasEditor/index.vue";
import { formatTime,segmentImage,getMinioUrl } from "@/tool/util";
import { useRouter, useRoute } from 'vue-router'
export default defineComponent({
components:{
@@ -77,7 +80,7 @@ export default defineComponent({
setup(props,{emit}) {
const store = useStore();
const {t} = useI18n();
const route = useRoute()
const detailDom = reactive({
editFrontBack:null as any,
model:null,
@@ -104,6 +107,7 @@ export default defineComponent({
getCanvasIfEdit:inject('getCanvasIfEdit')as any,
canvasInstance:null as any,
canvasJSON:'',
hideCanvas: computed(()=>store.state.Workspace.projectPath !== route.fullPath),
})
watch(()=>detailData.selectDetail,(newValue,oldValue)=>{
detailData.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)

View File

@@ -1,6 +1,6 @@
<template>
<div class="detailLeft">
<sketch v-show="currentDetailType == 'sketch'" @addDetail="addDetail"></sketch>
<sketch v-show="currentDetailType == 'sketch'" ref="sketch" @addDetail="addDetail"></sketch>
<print v-show="currentDetailType == 'print'"></print>
<color v-if="currentDetailType == 'color'"></color>
<element v-show="currentDetailType == 'element'"></element>
@@ -42,6 +42,7 @@ export default defineComponent({
})
const getDetailListDom = reactive({
addDetails:null as any,
sketch:null as any,
})
const addDetail = () =>{
let addDetails:any = getDetailListDom.addDetails
@@ -53,6 +54,9 @@ export default defineComponent({
detailData.selectDetail.newDetail.sketch = null
}
}
const sketchSysToLibrary = ()=>{//系统sketch添加到library更新library
getDetailListDom.sketch.sketchSysToLibrary()
}
return{
...toRefs(detailData),
@@ -60,6 +64,7 @@ export default defineComponent({
...toRefs(getDetailListDom),
addDetail,
setSloganData,
sketchSysToLibrary,
}
},

View File

@@ -12,7 +12,7 @@
<i class="fi fi-rr-picture centent"></i>
</div>
</div>
<selectList @selectImgItem="selectImgItem" source="detail" level1Type="Sketchboard" type="sketch" :catecoryList="sketchCatecoryList"></selectList>
<selectList @selectImgItem="selectImgItem" source="detail" ref="selectList" level1Type="Sketchboard" type="sketch" :catecoryList="sketchCatecoryList"></selectList>
</div>
</template>
<script lang="ts">
@@ -47,7 +47,7 @@ export default defineComponent({
currentPage:1,
})
const getDetailListDom = reactive({
libraryList:null as any,
selectList:null as any,
})
const openCurrent = ()=>{
detailData.selectTitle = 'current'
@@ -55,9 +55,8 @@ export default defineComponent({
const openUpload = ()=>{
detailData.selectTitle = 'upload'
}
const openLibrary = ()=>{
detailData.selectTitle = 'library'
getDetailListDom.libraryList.init()
const sketchSysToLibrary = ()=>{
getDetailListDom.selectList.openLibrary()
}
const hasDuplicateId = (id:any)=>{
let arr = detailData.designDetail.clothes
@@ -96,7 +95,7 @@ export default defineComponent({
openCurrent,
openUpload,
openLibrary,
sketchSysToLibrary,
selectImgItem,
openAddDetail,
}

View File

@@ -4,7 +4,7 @@
<div class="back" v-show="isEditPattern.value">
<i class="fi fi-br-angle-left" @click="setBack"></i>
</div>
<modelNav @canvasReload="()=>$emit('canvasReload')" @addSketch="()=>$emit('addSketch')" @deleteItem="deleteItem"></modelNav>
<modelNav @canvasReload="()=>$emit('canvasReload')" @addSketch="()=>$emit('addSketch')" @sketchSysToLibrary="()=>$emit('sketchSysToLibrary')" @deleteItem="deleteItem"></modelNav>
</div>
<div class="modelindex_right">
<div class="detail_btn">
@@ -26,7 +26,7 @@
<i v-show="!body && deleteShow" class="fi fi-br-check" @click="deleteNav(1)"></i> -->
<!-- -->
<i :title="$t('DesignDetail.compareTitle')" @mousedown="mousedownDesignImg" @mouseup="mousedownDesignImg" @touchstart="mousedownDesignImg" @touchend="mousedownDesignImg">
<i :title="$t('DesignDetail.compareTitle')" @mousedown="mousedownDesignImg" @mouseup="mousedownDesignImg" @touchstart.passive="mousedownDesignImg" @touchend.passive="mousedownDesignImg">
<SvgIcon name="DetailCompare" size="30" />
</i>
@@ -50,7 +50,7 @@ export default defineComponent({
components:{
position,modelNav
},
emits:['detailEdit','canvasReload','addSketch','revocation','oppositeRevocation','modelOnLoad'],
emits:['detailEdit','canvasReload','addSketch','revocation','oppositeRevocation','modelOnLoad','sketchSysToLibrary'],
setup(props,{emit}) {
const {t} = useI18n()
const store = useStore();

View File

@@ -7,7 +7,10 @@
@mousedown.stop="designMousedown(getMousePosition($event,false),item.uniqueId,'disLike')"
@touchstart.passive="designMousedown(getMousePosition($event,true),item.uniqueId,'disLike')"
@click="selectDetailItem(item,index)">
<i class="fi fi-rr-trash" @click.stop="deleteDetailItem(item?.id)"></i>
<div class="iconList">
<i class="fi fi-rr-add" :class="{ active:item.scope == 'sys'}" @click.stop="sketchSystemToLibrary(item)"></i>
<i class="fi fi-rr-trash" @click.stop="deleteDetailItem(item?.id)"></i>
</div>
<img :src="item.path" alt="">
</div>
</div>
@@ -30,7 +33,7 @@ export default defineComponent({
components:{
position,
},
emits:['canvasReload','addSketch','deleteItem'],
emits:['canvasReload','addSketch','deleteItem','sketchSysToLibrary'],
props:{
},
setup(props,{emit}) {
@@ -249,6 +252,17 @@ export default defineComponent({
collItemSize.prentHeight = (collItemSize.padding + remValue) * elArr.length + 'px'
moveItem()
}
const sketchSystemToLibrary = (item)=>{
let value = {
clothId:item.id,
path:item.minIOPath
}
Https.axiosGet(Https.httpUrls.addSysSketchToLibrary,{params:value})
.then((rv:any)=>{
item.scope = 'user'
emit('sketchSysToLibrary')
})
}
let observers = null as any
onMounted(()=>{
observers = new ResizeObserver(entries => {
@@ -269,6 +283,7 @@ export default defineComponent({
designMousedown,
addSketch,
getMousePosition,
sketchSystemToLibrary,
}
},
@@ -295,17 +310,35 @@ export default defineComponent({
position: absolute;
background: #fff;
transition: top .3s;
> i:not(.fi-bs-plus){
display: none;
> .iconList{
position: absolute;
right: 1rem;
top: 1rem;
cursor: pointer;
font-size: 2rem;
}
&:hover{
right: 1rem;
display: none;
flex-direction: column;
align-items: center;
> i{
display: block;
margin-bottom: .2rem;
font-size: 1.8rem;
}
> .fi-rr-add{
pointer-events: none;
color: #acacac;
&.active{
pointer-events: auto;
color: #000;
}
}
>i:not(.fi-rr-add){
font-size: 2rem;
}
}
i:not(.fi-bs-plus){
}
&:hover{
> .iconList{
display: flex;
}
}
&:last-child{

View File

@@ -724,8 +724,9 @@ export default defineComponent({
}
},
methods: {
generageAdd(data: any) {
if (!data?.imgUrl) return
generageAdd(value: any) {
if (!value?.imgUrl) return
const data = JSON.parse(JSON.stringify(value))
data.type_ = this.type_
data.type_.type1 = data.designType ? data.designType : this.type_.type1
data.resData = JSON.parse(JSON.stringify(data))
@@ -1204,13 +1205,14 @@ export default defineComponent({
Https.axiosPost(Https.httpUrls.generateLike, data)
.then(rv => {
item.like = true
item.libraryId = rv.libraryId
})
.catch(res => {})
this.fileList[index].state = ''
this.generageAdd(item)
} else {
this.fileList[index].state = 'delete'
this.generageAdd(item)
// this.generageAdd(item)
let data = {
generateDetailId: item.id,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
@@ -1218,6 +1220,7 @@ export default defineComponent({
Https.axiosGet(Https.httpUrls.generateDislike, { params: data })
.then(rv => {
item.like = false
item.libraryId = null
})
.catch(res => {})
}

View File

@@ -422,6 +422,8 @@ export default defineComponent({
},
//创建定时器
createTimer() {
clearInterval(this.timer);
this.time = 60;
this.timer = setInterval(() => {
this.time--;
if (!this.time) {

View File

@@ -119,10 +119,22 @@ export default defineComponent({
file.level2Type = cate.value;
file.categoryValue = cate.value;
file.category = cate.name;
if(props.isSetSketchCategory){
console.log("libraryId:" + file.libraryId)
if(file.libraryId){
let data = {
libraryId:[file.libraryId],
level2Type:props.item.categoryValue,
}
Https.axiosPost(Https.httpUrls.setSketchLibrary,data).then(
(rv: any) => {
emit('upTypeSucced')
}
).catch((res)=>{
});
}else if(props.isSetSketchCategory){
setSketchLibrary(props.item)
}
// this.store.commit("sketchGenerateFiles", this.fileList);
}
let setSketchLibrary = (item:any)=>{

View File

@@ -193,10 +193,56 @@
<div v-show="frogetPasswordStep === 3">
<div class="forget_passored_form_content">
<div class="forget_passored_form_title">Password</div>
<div v-show="passwordConditionShow" class="conditionShow">
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.length"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.length"
class="fi fi-br-check"
></i>
</div>
<div class="text">At least 8 characters long</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.special"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.special"
class="fi fi-br-check"
></i>
</div>
<div class="text">Must contain special characters</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.group"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.group"
class="fi fi-br-check"
></i>
</div>
<div class="text">
Mix of uppercase, lowercase and numbers
</div>
</div>
</div>
<input
class="forget_passored_form_input"
placeholder="Enter a new password"
v-model="newPassword"
@focus="() => (passwordConditionShow = true)"
@blur="() => (passwordConditionShow = false)"
@input="passwordInput"
@keydown.enter="submitResetPassword()"
/>
</div>
@@ -302,6 +348,12 @@ export default defineComponent({
passwordType: "password",
userId: "",
loginTime: true,
passwordConditionShow:false,
passwordCondition: {
length: false,
special: false,
group: false,
},
};
},
onBeforeUnmount() {
@@ -544,9 +596,26 @@ export default defineComponent({
sessionStorage.setItem("sessionId", randomNum);
sessionStorage.setItem("record", JSON.stringify([]));
}
},
passwordInput(e) {
this.isPassword(this.newPassword);
},
isPassword(password: any) {
this.passwordCondition.length = /.{8,}/.test(password);
this.passwordCondition.special =
/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password);
this.passwordCondition.group =
/[a-z]/.test(password) && /[A-Z]/.test(password) && /\d/.test(password);
return Object.values(this.passwordCondition).filter(
(value) => value === true
).length;
},
//修改密码提交
submitResetPassword() {
if (this.isPassword(this.newPassword) < 3) {
message.info("You must satisfy ALL password conditions to register.");
return;
}
let data = {
email: this.forgetPasswordEmail,
emailVerifyCode: this.forgetEmailValue,
@@ -563,6 +632,8 @@ export default defineComponent({
//创建定时器
createTimer() {
clearInterval(this.timer);
this.time = 60;
this.timer = setInterval(() => {
this.time--;
if (this.time <= 0) this.clearTimer(0);
@@ -607,6 +678,36 @@ export default defineComponent({
.login_page {
width: 100%;
height: 100%;
.conditionShow {
bottom: 0;
position: absolute;
right: 0;
left: auto;
transform: translateY(-5rem);
background: #404040;
color: #fff;
font-size: 1.4rem;
padding: 2rem;
border-radius: 2rem;
z-index: 2;
> .item {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
&:last-child {
margin-bottom: 0;
}
> .icon {
margin-right: 1rem;
i {
display: flex;
// &.fi-br-cross-small{
// color: red;
// }
}
}
}
}
.page_content {
.login_content {
margin: 0 auto;

View File

@@ -189,10 +189,56 @@
<div v-show="frogetPasswordStep === 3">
<div class="forget_passored_form_content">
<div class="forget_passored_form_title">Password</div>
<div v-show="passwordConditionShow" class="conditionShow">
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.length"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.length"
class="fi fi-br-check"
></i>
</div>
<div class="text">At least 8 characters long</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.special"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.special"
class="fi fi-br-check"
></i>
</div>
<div class="text">Must contain special characters</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.group"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.group"
class="fi fi-br-check"
></i>
</div>
<div class="text">
Mix of uppercase, lowercase and numbers
</div>
</div>
</div>
<input
class="forget_passored_form_input"
placeholder="Enter a new password"
v-model="newPassword"
@focus="() => (passwordConditionShow = true)"
@blur="() => (passwordConditionShow = false)"
@input="passwordInput"
@keydown.enter="submitResetPassword()"
/>
</div>
@@ -258,6 +304,7 @@ import { useI18n } from "vue-i18n";
import { setLang } from "@/tool/guide";
import md5 from "md5";
import router from "@/router";
import { pass } from "three/tsl";
export default defineComponent({
components: {
VerificationCodeInput,
@@ -307,6 +354,12 @@ export default defineComponent({
loginTime: true,
animation: false,
inputCodeTime: null as any,
passwordConditionShow:false,
passwordCondition: {
length: false,
special: false,
group: false,
},
};
},
onBeforeUnmount() {
@@ -413,14 +466,12 @@ export default defineComponent({
checkRobot() {
this.isCheckRobot = !this.isCheckRobot;
},
//提交账号密码预先登录
submitPerLogin() {
//输入账号密码
if (this.emailStap >= 2) {
let verificationCodeInputDom:any = this.$refs.verificationCodeInputDom
let code = verificationCodeInputDom.getCtData.map(item => item).join('');
console.log(code)
if(code.length !== this.emailCode.length){
message.info("Please enter the complete verification code.");
}else{
@@ -562,9 +613,26 @@ export default defineComponent({
sessionStorage.setItem("sessionId", randomNum);
sessionStorage.setItem("record", JSON.stringify([]));
}
},
passwordInput(e) {
this.isPassword(this.newPassword);
},
isPassword(password: any) {
this.passwordCondition.length = /.{8,}/.test(password);
this.passwordCondition.special =
/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password);
this.passwordCondition.group =
/[a-z]/.test(password) && /[A-Z]/.test(password) && /\d/.test(password);
return Object.values(this.passwordCondition).filter(
(value) => value === true
).length;
},
//修改密码提交
submitResetPassword() {
if (this.isPassword(this.newPassword) < 3) {
message.info("You must satisfy ALL password conditions to register.");
return;
}
let data = {
email: this.forgetPasswordEmail,
emailVerifyCode: this.forgetEmailValue,
@@ -581,6 +649,8 @@ export default defineComponent({
//创建定时器
createTimer() {
clearInterval(this.timer);
this.time = 60;
this.timer = setInterval(() => {
this.time--;
if (this.time <= 0) this.clearTimer(0);
@@ -633,6 +703,36 @@ export default defineComponent({
.login_page {
width: 100%;
height: 100%;
.conditionShow {
bottom: 0;
position: absolute;
right: 0;
left: auto;
transform: translateY(-5rem);
background: #404040;
color: #fff;
font-size: 1.4rem;
padding: 2rem;
border-radius: 2rem;
z-index: 2;
> .item {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
&:last-child {
margin-bottom: 0;
}
> .icon {
margin-right: 1rem;
i {
display: flex;
// &.fi-br-cross-small{
// color: red;
// }
}
}
}
}
.page_content {
.login_content {
margin: 0 auto;
@@ -718,7 +818,6 @@ export default defineComponent({
cursor: pointer;
}
}
.login_form_input {
width: 100%;
height: 6.75rem;
@@ -885,7 +984,7 @@ export default defineComponent({
.forget_passored_form_content {
margin-top: 3.5rem;
position: relative;
.forget_passored_form_title {
font-size: 2.4rem;
font-weight: bold;

View File

@@ -200,10 +200,56 @@
<div v-show="frogetPasswordStep === 3">
<div class="forget_passored_form_content">
<div class="forget_passored_form_title">Password</div>
<div v-show="passwordConditionShow" class="conditionShow">
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.length"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.length"
class="fi fi-br-check"
></i>
</div>
<div class="text">At least 8 characters long</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.special"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.special"
class="fi fi-br-check"
></i>
</div>
<div class="text">Must contain special characters</div>
</div>
<div class="item">
<div class="icon">
<i
v-show="!passwordCondition.group"
class="fi fi-br-cross-small"
></i>
<i
v-show="passwordCondition.group"
class="fi fi-br-check"
></i>
</div>
<div class="text">
Mix of uppercase, lowercase and numbers
</div>
</div>
</div>
<input
class="forget_passored_form_input"
placeholder="Enter a new password"
v-model="newPassword"
@focus="() => (passwordConditionShow = true)"
@blur="() => (passwordConditionShow = false)"
@input="passwordInput"
@keydown.enter="submitResetPassword()"
/>
</div>
@@ -315,6 +361,12 @@ export default defineComponent({
loginTime: true,
animation: false,
inputCodeTime: null as any,
passwordConditionShow:false,
passwordCondition: {
length: false,
special: false,
group: false,
},
};
},
onBeforeUnmount() {
@@ -572,9 +624,26 @@ export default defineComponent({
sessionStorage.setItem("sessionId", randomNum);
sessionStorage.setItem("record", JSON.stringify([]));
}
},
passwordInput(e) {
this.isPassword(this.newPassword);
},
isPassword(password: any) {
this.passwordCondition.length = /.{8,}/.test(password);
this.passwordCondition.special =
/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password);
this.passwordCondition.group =
/[a-z]/.test(password) && /[A-Z]/.test(password) && /\d/.test(password);
return Object.values(this.passwordCondition).filter(
(value) => value === true
).length;
},
//修改密码提交
submitResetPassword() {
if (this.isPassword(this.newPassword) < 3) {
message.info("You must satisfy ALL password conditions to register.");
return;
}
let data = {
email: this.forgetPasswordEmail,
emailVerifyCode: this.forgetEmailValue,
@@ -591,6 +660,8 @@ export default defineComponent({
//创建定时器
createTimer() {
clearInterval(this.timer);
this.time = 60;
this.timer = setInterval(() => {
this.time--;
if (this.time <= 0) this.clearTimer(0);
@@ -643,6 +714,36 @@ export default defineComponent({
.login_page {
width: 100%;
height: 100%;
.conditionShow {
bottom: 0;
position: absolute;
right: 0;
left: auto;
transform: translateY(-5rem);
background: #404040;
color: #fff;
font-size: 1.4rem;
padding: 2rem;
border-radius: 2rem;
z-index: 2;
> .item {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
&:last-child {
margin-bottom: 0;
}
> .icon {
margin-right: 1rem;
i {
display: flex;
// &.fi-br-cross-small{
// color: red;
// }
}
}
}
}
.page_content {
.login_content {
margin: 0 auto;

View File

@@ -686,7 +686,7 @@ export default defineComponent({
if(this.colorList[colorList.length - 1]?.gradient && this.colorList[colorList.length - 1]?.gradient?.selectIndex>-1 && this.colorList[colorList.length - 1]?.gradient?.gradientShow){
this.selectColor = {rgba:this.colorList[colorList.length - 1].gradient.gradientList[colorList.length - 1].rgba,hex:hex} //顔色选择器默认颜色
}else{
this.selectColor = {rgba:this.colorList[colorList.length - 1].rgba,hex:hex} //顔色选择器默认颜色
this.selectColor = {rgba:this.colorList[colorList.length - 1]?.rgba,hex:hex} //顔色选择器默认颜色
}
this.store.commit('setColorboardList',colorList)
},

View File

@@ -742,6 +742,8 @@ export default defineComponent({
//创建定时器
createTimer() {
clearInterval(this.timer);
this.time = 60;
this.timer = setInterval(() => {
this.time--;
if (!this.time) {

View File

@@ -5,6 +5,7 @@
@canvasInit="canvasInit"
@changeCanvas="changeCanvas"
is-general
:hideCanvas="hideCanvas"
:isBackgroundChangeable="false"
ref="editCanvas"></editCanvas>
</div>
@@ -26,6 +27,7 @@ import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useI18n } from "vue-i18n";
import editCanvas from "@/component/Canvas/CanvasEditor/index.vue";
import { useRouter, useRoute } from 'vue-router'
export default defineComponent({
@@ -53,12 +55,14 @@ export default defineComponent({
const isShowMark = ref(false)
const component = reactive({
})
const route = useRoute()
const data = reactive({
canvasLoad:false,
canvasJSON:computed(()=>store.state.HomeStoreModule.canvasData.canvas),
canvasConfig:{
},
hideCanvas: computed(()=>store.state.Workspace.projectPath !== route.fullPath),
})
watch(()=>data.canvasJSON,(newVal)=>{
dataDom.editCanvas.loadJSON(newVal)

View File

@@ -217,6 +217,7 @@ export const Https = {
projectSaveOrUpdate:`/api/project/saveOrUpdate`, //History修改用户分组名
historyChoose:`/api/history/choose`, //History choose
getDesignDetail:`/api/design/detail/getDetail`,//查询design详情
addSysSketchToLibrary:`/api/library/addSysSketchToLibrary`,//把系统衣服添加的library
designSingleWithGradient:`/api/design/detail/designSingleWithGradient`,//查询需要更新mask列表
getNextSysElement:'/api/design/detail/getNextSysElement',//切换系统的element
detailPrintDot:'/api/design/detail/printDot',//print打点预览

View File

@@ -1067,6 +1067,7 @@ export default defineComponent({
Https.axiosPost(Https.httpUrls.generateLike, data).then(
(rv) => {
item.like = true
item.libraryId = rv.libraryId
}
).catch(res=>{
});
@@ -1078,6 +1079,7 @@ export default defineComponent({
Https.axiosGet(Https.httpUrls.generateDislike, {params:data}).then(
(rv) => {
item.like = false
item.libraryId = null
}
).catch(res=>{
});