Merge remote-tracking branch 'origin/develop' into StableVersion

This commit is contained in:
X1627315083
2024-10-21 09:47:16 +08:00
119 changed files with 34227 additions and 26724 deletions

View File

@@ -2,12 +2,42 @@
<div class="homeMain_max Guide_1_16_1">
<header class="homeMain_heade">
<div class="homeMain_right_content">
<div class="homeMain_user_icon"></div>
<div class="homeMain_user">
<div class="homeMain_user_icon" @click="openAccount">
<img :src="userInfo?.avatar" alt="">
</div>
<div class="homeMain_user_detail">
<div v-if="isTest" class="username">{{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
<div v-else class="username">{{$t('Header.hello')}}@{{ cookieUserInfo?.userName }}</div>
<div class="homeMain_user_detail_item homeMain_user_detail_attention">
<div class="attention_item">
<!-- 点击事件就用下面的div -->
<!-- <div class="attention_item attention_item_active"> -->
<div>{{ userInfo?.followeeCount }}</div>
<span>{{$t('account.Follow')}}</span>
</div>
<div class="attention_item">
<div>{{ userInfo?.followerCount }}</div>
<span>{{$t('account.Fans')}}</span>
</div>
<!-- <div class="attention_item">
<div>22</div>
<span>作品数</span>
</div> -->
</div>
<div class="homeMain_user_detail_item homeMain_user_detail_setUser" @click="openAccount">
<i class="fi fi-rr-user"></i>
<div>{{$t('Header.personal')}}</div>
<i class="icon iconfont icon-xiala"></i>
</div>
</div>
</div>
<div class="homeMain_user_content">
<div v-if="isTest" class="username"><span>/</span> {{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
<div v-else class="username"><span>/</span> {{$t('Header.hello')}}@{{ userInfo?.userName }}</div>
<div v-else class="username"><span>/</span> {{$t('Header.hello')}}@{{ cookieUserInfo?.userName }}</div>
<div
v-if="!isMurmur"
:class="[
'icon',
'iconfont',
@@ -18,6 +48,7 @@
></div>
</div>
<div
class="trialApproval button_second credits hideChecked"
>
@@ -49,13 +80,30 @@
</router-link>
</nav> -->
<navRouter :routerList="navRouterList"></navRouter>
<div class="homeMain_right">
<img
<!-- <img
class="homeMain_logo"
@click="turnToNewPage('https://www.aidlab.hk/en/')"
src="@/assets/images/loginPage/aida_logo.png"
/>
/> -->
<div class="trialApproval credits message">
<div class="message_iconItem">
<a-badge :count="messageNum">
<i class="fi fi-rr-envelope" @click="openMessage"></i>
</a-badge>
</div>
<div class="message_iconItem">
<a-badge :count="messageType?.newPosted">
<!-- <i class="fi fi-rr-envelope" @click="openMessage"></i> -->
<i class="fi fi-rr-bell" @click.stop="openNewPosted"></i>
</a-badge>
<div class="message_iconItem_value select_block" v-show="isNewPosted" style="width: 40rem">
<newPosted ref="newPosted"></newPosted>
</div>
</div>
</div>
<Habit></Habit>
</div>
<nav class="select_block" v-show="isShowOperate">
@@ -76,7 +124,7 @@
<i class="fi fi-rs-notebook"></i>
<span class="select_item_des">{{$t('Header.ViewOrders')}}</span>
</div>
<router-link class="select_item" v-if="AdministratorUserIdList.indexOf(userInfo?.userId) >= 0" :to="`/administrator`">
<router-link class="select_item" v-if="AdministratorUserIdList.indexOf(cookieUserInfo?.userId) >= 0" :to="`/administrator`">
<span class="icon iconfont icon-yonghu"></span>
<span class="select_item_des">Administrator</span>
</router-link>
@@ -115,7 +163,7 @@
</div>
</template>
<script >
import { defineComponent, createVNode, ref, computed, onMounted } from "vue";
import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted } from "vue";
import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import payOrder from "@/component/Pay/payOrder.vue";
@@ -128,17 +176,23 @@ import { Modal, message } from "ant-design-vue";
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import scaleVideo from "@/component/HomePage/scaleVideo.vue";
import newPosted from "@/component/HomePage/newPosted.vue";
import navRouter from "@/component/modules/navRouter.vue";
import { useStore } from "vuex";
import { setLang } from "@/tool/guide";
import showViewVideo from "@/tool/mount";
import { useI18n } from "vue-i18n";
import navRouter from "@/component/modules/navRouter.vue";
import { gsap, TweenMax,TweenLite } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import MyWs from "@/tool/webSocket";
import MyEvent from "@/tool/myEvents";
export default defineComponent({
components: {
VerificationCodeInput,
Habit,
RobotAssist,
scaleVideo,
newPosted,
UpgradePlan,
payOrder,
TaskPage,
@@ -148,16 +202,104 @@ export default defineComponent({
const store = useStore();
const {t} = useI18n()
const {locale} = useI18n()
let userInfo= computed(()=>{
return store.state.UserHabit.userInfo
})
let isTest = ref()
let isMurmur = ref()
let credits = computed(()=>{
return store.state.UserHabit.credits.value
})
let activeCredits = ref(false)
let getLangIsShowMark = ref(true)
let AdministratorUserIdList = [88,6,46,31,73,83,87,4]
let navRouterList = ref([])
let messageNum = computed(()=>{
return store.state.UserHabit.messageSystem.messageNum
})
let messageType = computed(()=>{
return store.state.UserHabit.messageSystem.messageType
})
let stateList = reactive({
isNewPosted:false,
isShowOperate:false,
isLanguage:false,
})
let isNewPosted = ref(false)
let isShowOperate = ref(false)
let isLanguage = ref(false)
let newPosted = ref(null)
let getUnreadCount = ()=>{
Https.axiosGet(Https.httpUrls.getUnreadCount).then((rv)=>{
if(rv){
store.commit('setMessageSystem',[rv])
}
})
}
// MyWs.linkWs("wss://"+MyWs.messageUrl,'message')
MyWs.linkWs("wss://"+MyWs.messageUrl,'message')
let getWsMessage = (data)=>{
let userInfo = ['followeeCount','followerCount']
let obj = {}
let isObj = false
data.forEach(element => {
const keys = Object.keys(element)[0]
if(userInfo.indexOf(keys) > 0){
obj[keys] = element[keys]
isObj = true
}
});
if(isObj)store.commit('setUserInfo',obj)
store.commit('setMessageSystem',data)
}
MyEvent.add('getMessage',getWsMessage)
// setTimeout(() => {
// MyWs.sendMessage('aaaa')
// }, 3000);
// MyWs.ws.onmessage = (data)=>{
// console.log(JSON.parse(data.data),232);
// }
let openNewPosted = ()=>{
stateList.isNewPosted = !stateList.isNewPosted
newPosted.value.init()
document.addEventListener(
"click",
closeShowOperateContent,
false
);
}
//点击下拉图标出现操作
let changeShowOperateContent=() =>{
stateList.isShowOperate = !stateList.isShowOperate;
document.addEventListener(
"click",
closeShowOperateContent,
false
);
}
let changeLanguage=() =>{
stateList.isLanguage = !stateList.isLanguage;
document.addEventListener(
"click",
closeShowOperateContent,
false
);
}
//关闭下拉图标
let closeShowOperateContent=() =>{
stateList.isShowOperate = false;
stateList.isLanguage = false
stateList.isNewPosted = false
document.removeEventListener("click", closeShowOperateContent);
}
onMounted(()=>{
getUnreadCount()
navRouterList.value = [
{
routerName:['homePage'],
@@ -184,6 +326,7 @@ export default defineComponent({
})
return {
store,
userInfo,
t,
locale,
isTest,
@@ -193,11 +336,18 @@ export default defineComponent({
getLangIsShowMark,
AdministratorUserIdList,
navRouterList,
messageNum,
messageType,
...toRefs(stateList),
newPosted,
openNewPosted,
changeShowOperateContent,
changeLanguage,
closeShowOperateContent,
}
},
data() {
return {
isShowOperate: false,
bindEmailVisible: false,
isHaveBindEmail: false,
bindEmailStep: 1,
@@ -205,12 +355,13 @@ export default defineComponent({
emailCode: ["", "", "", "", "", ""], //邮箱验证码
time: 60, //60秒倒计时
timer: 0,
userInfo: {},
cookieUserInfo: {
userId:-1
},
timerOperate: null,
numTime: 30,
timerSec: null,
modalWarning: null,
isLanguage: false,
language:[
{name:'English',value:'ENGLISH'},
@@ -230,19 +381,25 @@ export default defineComponent({
// console.log(String(newVal).length);
// }
},
directives:{
moveOpenDetal:{
mounted (el,binding) {
},
}
},
mounted() {
let isTest = getCookie('isTest')//获取是否是试用用户
this.isTest =JSON.parse(isTest)
let isMurmur = getCookie('isMurmur')//获取是否是试用用户
this.isMurmur =JSON.parse(isMurmur)
this.userInfo = JSON.parse(getCookie("userInfo"));
if (!this.userInfo) {
this.cookieUserInfo = JSON.parse(getCookie("userInfo"));
if (!this.cookieUserInfo) {
this.$router.replace("/");
} else {
this.accountIsLogin(this.userInfo);
this.accountIsLogin(this.cookieUserInfo);
}
this.isHaveBindEmail = this.userInfo?.email ? true : false;
if(!isMurmur){
this.isHaveBindEmail = this.cookieUserInfo?.email ? true : false;
if(!this.isMurmur){
this.operateClick();
document.addEventListener("click", this.operateClick);
}
@@ -252,6 +409,45 @@ export default defineComponent({
this.store.dispatch('getLangType').then(()=>{
this.getLangIsShowMark = false
})
let tl1 = gsap.timeline({ paused: true });
let heradeRight = document.querySelector('.homeMain_max .homeMain_right_content')
let userDetailMax = document.querySelector('.homeMain_max .homeMain_user')
let userDetailIcon = document.querySelector('.homeMain_max .homeMain_user_icon')
let userName = document.querySelector('.homeMain_max .homeMain_user_content')
let userDetail = document.querySelector('.homeMain_max .homeMain_user_detail')
// let anmiation = TweenMax.to(userDetailMax,1, {'margin-top':'30px',opacity:1})
// anmiation.stop()
let state
tl1
.to(userDetail,.3, {opacity:1,display:'flex'})
.to(userDetailIcon,.3, {'left':'15rem',y:'25%',x:'-50%',scale:1.5,opacity:1},'-=.3')
.to(userName,.3, {opacity:0},'-=.3')
let overTime
let outTime
userDetailMax.addEventListener('mouseenter',(event)=>{
if(state && !outTime)return
clearTimeout(overTime)
clearTimeout(outTime)
overTime = setTimeout(() => {
state = true
this.isShowOperate = false
this.isLanguage = false
tl1.play()
}, 500);
})
heradeRight.addEventListener('mouseleave',(event)=>{
if(overTime){
clearTimeout(overTime)
}
if(!state)return
clearTimeout(outTime)
outTime = setTimeout(() => {
state = false
tl1.reverse()
}, 500);
})
},
methods: {
setTask(data){
@@ -287,31 +483,7 @@ export default defineComponent({
},
//点击下拉图标出现操作
changeShowOperateContent() {
this.isShowOperate = !this.isShowOperate;
document.addEventListener(
"click",
this.closeShowOperateContent,
false
);
},
changeLanguage(){
this.isLanguage = !this.isLanguage;
document.addEventListener(
"click",
this.closeShowOperateContent,
false
);
},
//关闭下拉图标
closeShowOperateContent() {
this.isShowOperate = false;
this.isLanguage = false
document.removeEventListener("click", this.closeShowOperateContent);
},
@@ -322,12 +494,12 @@ export default defineComponent({
},
//教程
getTutorial(){
let url = 'https://code-create.com.hk/wp-content/uploads/2024/08/aida_3.0-Manual-0705-CN.pdf'
let url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.1-Manual-10_21-CN.pdf'
if(this.locale == 'ENGLISH'){
url = 'https://code-create.com.hk/wp-content/uploads/2024/08/aida_3.0-Manual-0705-EN.pdf'
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/07/AiDA-demo-video_0709_EN.webm'})
url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.1-Manual-10_21-EN.pdf'
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/10/AiDA-demo-video_10_21_EN.mp4'})
}else{
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/07/AiDA-demo-video_0709_CN.webm'})
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/10/AiDA-demo-video_10_21_CN.mp4'})
}
//打开视频
const a = document.createElement('a');
@@ -340,7 +512,7 @@ export default defineComponent({
//登出
async logout() {
let data = {
userId: this.userInfo.userId,
userId: this.cookieUserInfo.userId,
};
let isTest = getCookie('isTest')
// console.log(getCookie("token"));
@@ -451,6 +623,12 @@ export default defineComponent({
let taskPage = this.$refs.TaskPage
taskPage.init(data)
},
openAccount(){
this.$router.push("/home/account")
},
openMessage(){
this.$router.push("/home/account/accountMessage")
},
},
});
</script>
@@ -486,56 +664,50 @@ export default defineComponent({
display: flex;
justify-content: flex-end;
align-items: center;
.message{
display: flex;
width: 6rem;
justify-content: space-between;
margin: 0 2rem;
// padding: 1rem;
i{
margin-left: 0rem;
border-left: none;
padding-left: 0rem;
height: auto;
font-size: 2rem;
width: 3rem;
cursor: pointer;
}
span{
overflow: initial;
align-items: center;
width: auto;
margin: auto;
height: auto;
}
.message_iconItem{
position: relative;
display: flex;
.message_iconItem_value{
padding: 1rem;
left: 50%;
transform: translateX(-50%);
top: 4rem;
}
}
}
}
.homeMain_logo {
width: 14.4rem;
height: 3.2rem;
margin: 2.1rem 2.8rem 0 ;
// position: absolute;
line-height: 2rem;
margin-top: 0;
}
.homeMain_nav_content {
display: flex;
// margin-left: 28.9rem;
// margin-left: 46.2rem;
align-items: center;
.nav_item {
padding: 1.1rem 1rem;
border-bottom: 0.1rem solid transparent;
margin-right: 3.4rem;
font-size: 1.6rem;
line-height: 1.3rem;
// color: #333333;
color: #000;
cursor: pointer;
font-weight: 900;
position: relative;
&.nav_item:last-child{
margin: 0;
}
&.nav_item::before {
position: absolute;
content: "";
display: block;
background: #000;
height: .3rem;
left: 50%;
transform: translateX(-50%);
bottom: .3rem;
width: 0px;
transition: 0.3s all;
}
&.select_nav {
color: #000;
transform: scale(1.15);
}
&.select_nav::before {
width: 80%;
}
}
}
.homeMain_right_content {
// position: absolute;
@@ -546,39 +718,113 @@ export default defineComponent({
width: 33%;
height: 100%;
align-items: center;
overflow: hidden;
.homeMain_icon {
font-size: 3.6rem;
position: relative;
top: 0.3rem;
}
.homeMain_user_icon{
height: 4rem;
width: 4rem;
background-color: #000;
border-radius: 50%;
transform: translateX(-40%)scale(1.3);
.homeMain_user{
.homeMain_user_icon{
height: 6rem;
width: 6rem;
position: relative;
transform-origin: top;
overflow: hidden;
z-index: 2;
left: 0;
border-radius: 50%;
cursor: pointer;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
// transition: all .3s;
}
.homeMain_user_detail{
position: absolute;
top: calc(100% + .5rem);
background: #fff;
border-radius: 4px;
width: 30rem;
height: 30rem;
opacity: 0;
display: none;
box-shadow: 0 0px 10px 1px rgba(0, 0, 0, 0.12);
padding-top: 4rem;
text-align: center;
flex-direction: column;
align-items: center;
padding: 4rem 3rem;
.homeMain_user_detail_attention{
width: 100%;
display: flex;
justify-content: space-between;
padding: 0 2rem;
border-bottom: 1px solid #e3e5e7;
.attention_item{
display: flex;
flex-direction: column;
align-items: center;
}
.attention_item_active{
cursor: pointer;
}
.attention_item_active:hover{
color: #39215b;
span{
color: #39215b;
}
}
span{
font-size: 1.4rem;
color: #949eae;
}
}
.homeMain_user_detail_setUser{
display: flex;
align-items: center;
justify-content: flex-start;
cursor: pointer;
width: 100%;
i{
font-size: 2rem;
display: flex;
}
.fi-rr-user{
margin-right: 1rem;
}
.icon-xiala{
margin-left: auto
}
}
.homeMain_user_detail_item{
margin-top: 1rem;
padding-bottom: 1rem;
}
}
}
.username {
font-size: 1.8rem;
color: #1a1a1a;
margin: 0 0.8rem;
font-weight: 900;
span{
margin: .7rem;
}
}
.homeMain_user_content {
// margin-left: 2rem;
// transition: all .3s;
display: flex;
align-items: center;
position: relative;
// top: 1.2rem;
height: 3.7rem;
&.marLeft2{
margin-left: 2rem;
}
.username {
font-size: 1.8rem;
color: #1a1a1a;
margin: 0 0.8rem;
font-weight: 900;
span{
margin: .7rem;
}
}
.icon-xiala {
font-size: 1.4rem;
cursor: pointer;
@@ -609,7 +855,8 @@ export default defineComponent({
.credits_item{
transition: .3s all;
// height: 4rem;
height: 3.2rem;
height: 35px;
// height: 3.2rem;
div{
height: 100%;
}
@@ -624,6 +871,7 @@ export default defineComponent({
font-size: 1.8rem;
cursor: pointer;
}
.fi-br-refresh{
margin-left: 0;
border-left: none;

View File

@@ -1,6 +1,8 @@
<template>
<div class="home_page">
<!-- <HeaderComponent></HeaderComponent> -->
<!-- <generalCanvas></generalCanvas> -->
<div class="page_content">
<!-- <img class="page_content_bg" src="@/assets/images/homePage/bg.png" /> -->
<div class="page_content_body">
@@ -193,7 +195,7 @@
</div>
</div>
<KeepAlive>
<CollectionModal ref="collectionModal" @finishCollection="finishCollection()"></CollectionModal>
<CollectionModal :getDesignData="getDesignData" ref="collectionModal" @finishCollection="finishCollection()"></CollectionModal>
</KeepAlive>
<productImg ref="productImg" @setTask="setTask"></productImg>
<DesignDetail ref="designDetail" @finishRedesign="finishRedesign"></DesignDetail>
@@ -216,7 +218,6 @@
<!-- design collection的进度蒙层 end-->
<affiche ref="affiche"></affiche>
<!-- <RobotAssist></RobotAssist> -->
</div>
</template>
@@ -229,6 +230,7 @@ import CollectionModal from "@/component/HomePage/collectionModal.vue";
import NewCollectionReview from "@/component/HomePage/NewCollectionReview.vue";
import ExportNewCoolection from "@/component/HomePage/ExportNewCoolection.vue";
import productImg from "@/component/HomePage/productImg.vue";
import generalCanvas from "@/component/modules/generalCanvas.vue";
import affiche from "@/component/HomePage/affiche.vue";
import DesignDetail from "@/component/Detail/DesignDetail.vue";
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
@@ -256,7 +258,8 @@ export default defineComponent({
affiche,
// RobotAssist,
draggable,
productImg
productImg,
generalCanvas
},
props:{
getLangIsShowMark:{
@@ -275,8 +278,6 @@ export default defineComponent({
return store.state.HomeStoreModule.userGroupId;
}); //模特id //当likeDesignCollectionList长度为0时清空startdesign时清空
let setPortfolio = (data:any)=>{
console.log(data);
portfolio.value = data
}
provide('setPortfolio',setPortfolio)
@@ -449,6 +450,7 @@ export default defineComponent({
})
}else if(!isModalOne && isTest){
// setTimeout(() => {
// text = {
// str:`${this.t('HomeView.jsContent7')}<br>${this.t('HomeView.jsContent5')}<a href="https://code-create.com.hk/aida/" target="_blank">https://code-create.com.hk/aida/</a>${this.t('HomeView.jsContent6')}`,
@@ -456,7 +458,7 @@ export default defineComponent({
// this.affiche(text)
// }, 500);
}else{
openGuide()
}
// console.log(this.store.state.UserHabit);
@@ -619,53 +621,9 @@ export default defineComponent({
},
//完成设计
finishCollection() {
let _this = this;
_this.isFinishLoading = true;
this.getPantongName()
.then((res) => {
_this.store.commit("setAllBoardData");
_this.isHaveReviewCollection = true;
_this.isFinishLoading = false;
})
.catch((res) => {
_this.isFinishLoading = false;
});
this.isHaveReviewCollection = true;
this.isFinishLoading = false;
},
//查询颜色的潘通值和txc
getPantongName() {
let colorBoards = this.store.state.UploadFilesModule.colorBoards;
let data: any = [];
for (let v of colorBoards) {
let color: any = [v.rgbValue.r, v.rgbValue.g, v.rgbValue.b];
let hsv = rgbToHsv(color);
v.hsv = hsv[0] + hsv[1] + hsv[2];
data.push({
h: hsv[0],
s: hsv[1],
v: hsv[2],
});
}
return new Promise((resolve: any, reject: any) => {
Https.axiosPost(Https.httpUrls.getRgbByHsvBatch, data)
.then((rv: any) => {
if (rv) {
rv.forEach((ele: any, index: number) => {
colorBoards[index].id = ele.id;
colorBoards[index].tcx = ele.tcx;
colorBoards[index].name = ele.name;
});
this.store.commit("setColorboardList", colorBoards);
resolve();
}
})
.catch((res) => {
reject();
});
});
},
getContainer() {
return document.querySelector("#system_silder");
},
@@ -763,7 +721,7 @@ export default defineComponent({
colorBoards,
sketchboardFiles,
marketingSketchFiles,
moodTemplateId,
moodboardPosition,
} = this.store.state.UploadFilesModule.allBoardData;
this.randomNum()
let workspace = this.store.state.Workspace.workspace
@@ -773,6 +731,7 @@ export default defineComponent({
moodBoards: this.getBoardId(moodboardFiles),
printBoards: this.getPrintId(printboardFiles),
sketchBoards: this.getSkecthBoard(sketchboardFiles),
moodboardPosition: JSON.stringify(moodboardPosition),
switchCategory: !workspace.overallSingle ?"": workspace.position,
singleOverall: !workspace.overallSingle ? "overall" : "single",
systemScale: workspace.systemDesignerPercentage?workspace.systemDesignerPercentage*.01:.3,
@@ -784,11 +743,17 @@ export default defineComponent({
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
processId:this.designRandom
};
if (designCollectionId) {
// data.moodboardPosition = JSON.stringify(this.store.state.UploadFilesModule.moodboardPosition)
let isLoad = false
if(designCollectionId == -1){
isLoad = true
} else if (designCollectionId) {
data.collectionId = designCollectionId;
}
this.designProgress = 0;
this.showDesignMark = true;
if(!isLoad){
this.designProgress = 0;
this.showDesignMark = true;
}
return data;
},
@@ -996,6 +961,8 @@ export default defineComponent({
},
//处理选择组的数据
dealHistoryChooseData(data: any, type: any) {
console.log(data.collection.moodboardPosition);
let collectionData = {
disposeMoodboard: data.collection.moodTemplateId?[{
id:data.collection.moodTemplateId,
@@ -1004,6 +971,7 @@ export default defineComponent({
name:data.collection.moodTemplateName,
}
}]:[],
moodboardPosition:data.collection.moodboardPosition?JSON.parse(data.collection.moodboardPosition):{},
moodboardFiles: this.dealViewChooseData(
data.collection.moodBoards,"Moodboard"
),
@@ -1022,7 +990,6 @@ export default defineComponent({
),
};
// console.log(data);
this.store.commit("setAllBoardDataChoose", collectionData);
// this.store.commit('clearShowSketchboard')
this.store.commit("setShowSketchboard", data.collection.sketchBoards);
@@ -1194,6 +1161,7 @@ export default defineComponent({
display: flex;
// padding-left: 0.7rem;
box-sizing: border-box;
overflow: hidden;
.home_page_left {
// width: 44.4rem;
@@ -1383,7 +1351,7 @@ export default defineComponent({
padding: 0 1.8rem 0 1.2rem;
background: rgba(255, 255, 255, 0.2);
height: calc(50% - 4.5rem);
min-height: 280px;
// min-height: 280px;
.right_content_img_block {
// overflow-y: auto;
@@ -1440,7 +1408,8 @@ export default defineComponent({
margin-right: 1rem;
// margin-bottom: 1rem;
min-width: 127px;
min-height: 271px;
// min-height: 271px;
max-height: 100%;
display: inline-block;
position: relative;
@@ -1466,6 +1435,7 @@ export default defineComponent({
.content_img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.icon_like {

View File

@@ -1,9 +1,9 @@
<template>
<div class="works_page" :class="{active:isScroll}">
<div class="works_page" :class="{active:isScroll,'otherUsersActive':otherUsers}">
<!-- <div class="modal_title_text">
<div>Works</div>
</div> -->
<div class="modal_title_text modal_search">
<div class="modal_title_text modal_search" v-if="!otherUsers">
<div v-show="isScroll" v-for="item in worksType" :key="item" class="modal_title_text_assistant" @click="setWorksSelect(item)" :class="{active:item.value == worksSelect}">
{{ item.name }}
</div>
@@ -35,20 +35,12 @@ import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,provide,computed} from 'vue'
// import HeaderComponent from "@/component/HomePage/Header.vue";
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import {getUploadUrl,isMoible} from '@/tool/util'
import { useStore } from "vuex";
import { Https } from "@/tool/https";
import { getCookie } from "@/tool/cookie";
import newScaleImage from "@/component/WorksPage/newScaleImage.vue";
import newScaleImageMobile from "@/component/WorksPage/newScaleImageMobile.vue";
import { useI18n } from "vue-i18n";
import { ElCascader } from 'element-plus'
import { remove } from "jszip";
import generalMenu from "@/component/HomePage/generalMenu.vue";
import { useRouter,useRoute } from 'vue-router'
import Falls from "@/component/WorksPage/Falls.vue";
export default defineComponent({
components: {
@@ -62,8 +54,17 @@ export default defineComponent({
type:Boolean,
default:true,
},
otherUsers:{
type:Boolean,
default:false,
},
userId:{
type:String,
default:'-1',
},
},
setup() {
setup(prop) {
const router = useRouter()
let filter:any = reactive({
worksSelect: 'all',
isNull:true,
@@ -171,6 +172,9 @@ export default defineComponent({
let data = filter.getListDate
if(filter.isShowMark && !filter.isNoData)return
filter.isShowMark = true
if(prop.otherUsers){
data.accountId = prop.userId
}
Https.axiosPost(Https.httpUrls.getPorfolio, data)
.then((rv) => {
if(data.page == 1 && rv.content.length == 0){
@@ -216,9 +220,8 @@ export default defineComponent({
fall.value.deleteItem(value);
}
onMounted (()=>{
let setPorfolioDom = ()=>{
filter.isShowMark = false
filter.isNoData = false
getPorfolio()
let worksPage:any = document.querySelector('.works_page')
@@ -233,6 +236,17 @@ export default defineComponent({
},
// { root:worksPage }
).observe(imgParent);
}
onMounted (()=>{
nextTick(()=>{
setPorfolioDom()
})
let data = {
id:router.currentRoute.value.query?.workId
}
if(data.id){
getImgScale(data)
}
})
return {
...toRefs(filter),
@@ -250,37 +264,6 @@ export default defineComponent({
deletePorfolio,
}
},
data() {
return {
userInfo: {},
indicator: h(LoadingOutlined, {
style: {
fontSize: "2.4rem",
},
spin: true,
}),
upload: {
isPin: 0,
gender:'',
level1Type: this.selectCode,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
},
token: "",
};
},
watch:{
sex(newVal,oldVal){
this.upload.gender = newVal.value
},
searchPictureName(newVal,oldVal){
// clearTimeout(this.getLibraryListInputTime)
// this.getLibraryListInputTime = setTimeout(() => {
// if(newVal != oldVal){
// this.currentPage = 1
// }
// }, 500);
},
},
async mounted(){
},
@@ -333,15 +316,10 @@ export default defineComponent({
min-height: 80%;
height: auto;
background: #f7f8fa;
.page_loading_box{
text-align: center;
height: 50px;
.page_loading{
display: block;
width: 50px;
height: 50px;
}
@media (max-width: 768px) {
background: #fff;
}
>img{
position: relative;
left: 50%;
@@ -357,6 +335,17 @@ export default defineComponent({
width: 100%;
}
}
&.otherUsersActive{
padding: 0;
}
.page_loading_box{
text-align: center;
height: 50px;
.page_loading{
display: block;
width: 50px;
height: 50px;
}
}
}
</style>

View File

@@ -8,7 +8,6 @@
<div class="page_content_body">
<!-- <HeaderComponent></HeaderComponent> -->
<div class="history_page_body">
<div class="history_header">{{ $t('HistoryPage.History') }}</div>
<div class="history_table_search">
<!-- <div class="content_search_block">
@@ -324,8 +323,6 @@ export default defineComponent({
this.store.commit("setAllBoardDataChoose",{});
this.store.commit("clearShowSketchboard",{});
}
console.log(this.store.state.HomeStoreModule.userGroupId,record);
}
);
}

View File

@@ -43,6 +43,7 @@
v-show="selectCode != 'DesignElements' && selectCode != 'Printboard'"
v-model:value="sex"
:options="sexList"
:fieldNames="{ label: 'name', value: 'value' }"
@change="sexChange"
>
<template #suffixIcon
@@ -81,6 +82,21 @@
style="color: #343579"
></span
></template>
</a-select>
<a-select
ref="select"
v-show="SketchGenerateTypeList?.[0]?.value && selectCode == 'Sketchboard' && uploadGenerate == 'Generate'"
v-model:value="SketchGenerateType"
:options="SketchGenerateTypeList"
@change="setSketchGenerateType"
:fieldNames="{ label: 'name', value: 'value' }"
>
<template #suffixIcon
><span
class="icon iconfont icon-xiala"
style="color: #343579"
></span
></template>
</a-select>
</div>
</div>
@@ -128,7 +144,7 @@
:clearable="true"
:placeholder="$t('LibraryPage.Select')"
:max-collapse-tags=3
:props="props"
:props="prop"
:collapse-tags-tooltip="true"
ref="cascader"
popper-class="libraryPageCascader"
@@ -195,17 +211,18 @@
<div class="right_content_body" v-show="uploadGenerate !='Upload'">
<div class="content_body_header content_body_header_generate">
<div class="content_body_header_right"></div>
<div v-show="selectCode == 'Printboard' && scene?.value == 'Pattern'" class="printModel">
<!-- <div v-show="selectCode == 'Printboard' && scene?.value == 'Pattern'" class="printModel">
<div @click.stop="PrintModel">{{ printModel.name }}</div>
<ul v-show="printModel.optype">
<li class="printModel_item" @click="setprintModel(1)">{{ $t('LibraryPage.Model1') }}</li>
<li class="printModel_item" @click="setprintModel(2)">{{ $t('LibraryPage.Model2') }}</li>
<li class="printModel_item" @click="setprintModel(3)">{{ $t('LibraryPage.Model3') }}</li>
</ul>
</div>
</div> -->
<generalMenu v-if="printModelList" class="printModel" v-show="selectCode == 'Printboard' && scene?.value == 'Pattern'" :dataList="printModelList" :isCanvas="selectCode == 'Sketchboard'" @setprintModel="setprintModel" :item="printModel"></generalMenu>
<div class="input_border">
<div class="input_box" :class="{active:inputShow}">
<div class="input_box_btnBox">
<div class="input_box_btnBox" v-if="scene?.value != 'extract'">
<div class="upload_item" v-show="selectCode !== 'Moodboard' && ((selectCode == 'Printboard' && scene?.value == 'Pattern') || (selectCode == 'Printboard' && scene?.value == 'Slogan') || selectCode == 'Sketchboard')">
<div
class="upload_file_item"
@@ -251,7 +268,8 @@
list-type="picture-card"
:before-upload="beforeUpload"
:data="{
...upload
...upload,
gender:sex,
}"
:headers="{Authorization:token}"
v-model:file-list="selectGenerateList"
@@ -266,6 +284,54 @@
<i v-show="!isTextarea" class="fi fi-br-expand" @click.stop="setTextareaShow"></i>
<i v-show="isTextarea" class="fi fi-bs-compress" @click.stop="setTextareaShow"></i>
</div>
<div class="input_box_btnBox" v-else>
<div class="upload_item">
<div
class="upload_file_item"
v-for="(file, index) in selectGenerateList"
:key="file"
>
<div
class="upload_file_item_content"
v-show="file?.status === 'uploading'"
>
<a-spin :indicator="indicator" tip="Uploading..." />
</div>
<div
class="upload_file_item_content"
v-show="file?.status === 'done' || file?.base64"
>
<img :src="file?.imgUrl" class="upload_img" />
<div class="delete_like_file_block" :class="[driver__.driver?'hideEvents':'']">
<span class="icon iconfont icon-shanchu operate_icon" @click.stop="deleteFile(index)"></span>
</div>
</div>
</div>
</div>
<i class="fi fi-br-upload" style="margin-left: 2rem;" v-show="selectGenerateList.length == 0" :title="$t('Generate.uploadproduct')">
<a-upload
class="search_upImg"
:capture="null"
:action="uploadUrl + '/api/element/upload'"
list-type="picture-card"
:data="{
...upload,
gender:sex,
}"
:maxCount='1'
:headers="{ Authorization: token }"
v-model:file-list="selectGenerateList"
:before-upload="beforeUpload"
accept=".jpg,.png,.jpeg,.bmp"
@change="generateFileUploadChange"
>
</a-upload>
</i>
<div :title="$t('Generate.style')">
<generalMenu v-if="printModelList" class="printModel" :dataList="printModelList" :isCanvas="selectCode == 'Sketchboard'" @setprintModel="setprintModel" :item="printModel"></generalMenu>
</div>
</div>
<textarea
v-show="isTextarea "
class="search_textarea "
@@ -335,7 +401,7 @@
</div>
</div>
<searchLabel ref="searchLabel"></searchLabel>
<scaleImage ref="scaleImage"></scaleImage>
<scaleImage ref="scaleImage" :isCanvas="selectCode == 'Sketchboard'" :workspace="{sexEnum:{value:sex}}"></scaleImage>
<ModelPlacement ref="ModelPlacement" @submitModelPlacement="getLibraryList"></ModelPlacement>
<ModelPlacementMobile ref="ModelPlacementMobile" @submitModelPlacement="getLibraryList"></ModelPlacementMobile>
<setLabel ref="setLabel"></setLabel>
@@ -343,11 +409,8 @@
<!-- 蒙层 start-->
<div class="mark_loading" v-show="isShowMark || getLangIsShowMark">
<a-spin size="large" />
<!-- <div v-show="remGenerate" class="mark_loading_btn" @click="removeGenerate">{{$t('Generate.Close')}}</div> -->
</div>
<a-spin size="large" />
</div>
<!-- 蒙层 end-->
<!-- <RobotAssist></RobotAssist> -->
@@ -355,7 +418,7 @@
</template>
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,h ,ref,createVNode,nextTick,reactive,provide,computed} from 'vue'
import { defineComponent,h ,ref,createVNode,nextTick,watch,provide,computed} from 'vue'
// import HeaderComponent from "@/component/HomePage/Header.vue";
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
// import ModelPlacement from '@/component/LibraryPage/ModelPlacementUpdata.vue';
@@ -375,6 +438,8 @@ import { useI18n } from "vue-i18n";
import { ElCascader } from 'element-plus'
import { remove } from "jszip";
import createSlogan from "@/component/HomePage/createSlogan.vue";
import generalMenu from "@/component/HomePage/generalMenu.vue";
import { id } from "element-plus/es/locale";
export default defineComponent({
components: {
// HeaderComponent,
@@ -387,13 +452,16 @@ export default defineComponent({
scaleImage,
sketchCategory,
createSlogan,
generalMenu,
},
props:{
getLangIsShowMark:{
type:Boolean,
default:true,
}
},
setup() {
setup(props) {
const store = useStore();
let menuList = computed(()=>{
return [
@@ -416,7 +484,8 @@ export default defineComponent({
value:''
})
let sex:any = ref('')
const sexList:any = ref([])
// const sexList:any = []
let sexList:any = computed(()=>store.state.UserHabit.sex.value)
const printType = computed(() => {
return store.state.UserHabit.printType;
});
@@ -434,6 +503,10 @@ export default defineComponent({
Models:[],
DesignElements:designElementsType,
})
let SketchGenerateTypeList = computed(()=>{
return store.state.UserHabit.SketchGenerateType
})
let SketchGenerateType = ref({})
let imgList = ref([])
let currentPage:any = ref(1)
let pageSize:any = ref(18)
@@ -455,8 +528,10 @@ export default defineComponent({
})
let selectGenerateList:any = ref([])
let printModel = ref({
id:'',
num:1,
optype:false,
value:'',
name:useI18n().t('LibraryPage.Model1')
})
let {t} = useI18n()
@@ -508,7 +583,7 @@ export default defineComponent({
let getLibraryListInputTime:any = ref()
const options:any = ref([
]);
let props = {
let prop = {
multiple: true,
checkStrictly: true,
emitPath:true,
@@ -517,9 +592,99 @@ export default defineComponent({
label:'classificationName',
}
let isTextarea = ref(false)
let workspace:any = ref({})
let workspace:any = computed(()=>{
return store?.state?.Workspace?.workspace
})
let generateLevel2:any = {}
let isSloganHint:any = ref('')
let printModelList:any = ref([])
let getSex = () =>{
sex.value = store.state.UserHabit.sex.value[0].value
getPosition()
}
let getPosition = ()=>{
store.commit('setPosition',sex.value)
designType.value = designTypeList.value.Sketchboard?.[0].value
}
let getLibraryList = (str:any)=>{
let labelArr:any = []
value.value.labelValue.forEach((item:any)=>{
labelArr.push(item[item.length-1])
})
let design = ''
if(selectCode.value == 'Sketchboard' || selectCode.value == 'DesignElements' || selectCode.value == 'Printboard'){
design = designType.value
}
let data = {
classificationIdList:labelArr,
level1Type:selectCode.value,
level2Type:design,
page:1,
modelSex:sex.value?sex.value:'',
pictureName:searchPictureName.value,
size:pageSize.value,
intersection:intersection.value,
}
if(str == 'page'){
data.page = currentPage.value
}else{
currentPage.value = 1
}
isShowMark.value = true
Https.axiosPost(Https.httpUrls.queryLibraryPage,data).then(
(rv: any) => {
if(rv.content?.length == 0 && currentPage.value != 1){
currentPage.value = 1
getLibraryList('')
}else{
imgList.value = rv.content
total.value = rv.total
isShowMark.value = false
}
}
).catch((res)=>{
isShowMark.value = false
});
}
let getClass = ()=>{
let data = {
"classificationIdList": [],
"classificationName": "",
"createTime": "",
"deleteConfirm": '',
"id": '',
"libraryId": '',
"parentId": '',
"type": selectCode.value,
"updateTime": "",
"userId": ''
}
Https.axiosPost(Https.httpUrls.queryClassification, data).then(
(rv: any) => {
options.value = rv
rv.forEach((rvItem:any,rvIndex:number) => {
options.value[rvIndex].value = rvItem.id
options.value[rvIndex].label = rvItem.classificationName
rvItem.childList.forEach((childItem:any,index:number) => {
options.value[rvIndex].childList[index].value = childItem.id
options.value[rvIndex].childList[index].label = childItem.classificationName
});
});
}
).catch((res)=>{
});
}
watch(
() => props.getLangIsShowMark, // 这里使用了一个 getter 函数
(newValue, oldValue) => {
if(!newValue){
getLibraryList('')
getClass()
getSex()
}
},
{immediate: true,}
)
return {
menuList,
selectImgList,
@@ -528,6 +693,9 @@ export default defineComponent({
searchPictureSeed,
sexList,
sex,
positionType,
SketchGenerateType,
SketchGenerateTypeList,
designTypeList,
designType,
imgList,
@@ -559,12 +727,17 @@ export default defineComponent({
scene,
dragIdx,
getLibraryListInputTime,
props,
prop,
options,
isTextarea,
workspace,
generateLevel2,
isSloganHint,
getSex,
getPosition,
getLibraryList,
getClass,
printModelList,
}
},
data(this_) {
@@ -578,7 +751,7 @@ export default defineComponent({
}),
upload: {
isPin: 0,
gender:'',
gender:this_.sex,
level1Type: this_.selectCode,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
},
@@ -587,9 +760,6 @@ export default defineComponent({
};
},
watch:{
sex(newVal,oldVal){
this.upload.gender = newVal
},
searchPictureName(newVal,oldVal){
// clearTimeout(this.getLibraryListInputTime)
// this.getLibraryListInputTime = setTimeout(() => {
@@ -611,64 +781,18 @@ export default defineComponent({
}
},
async mounted(){
this.upload.gender = this.sex
let userInfo:any = getCookie("userInfo")
let isTest:any = getCookie('isTest')
this.isTest =JSON.parse(isTest)
this.userInfo = JSON.parse(userInfo);
this.uploadUrl = getUploadUrl()
this.getLibraryList('')
this.getClass()
this.token = getCookie("token") || "";
this.workspace = computed(()=>{
return this.store?.state?.Workspace?.workspace
})
this.token = getCookie("token") || "";
},
methods:{
getSex(){
Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'Sex'}}).then((rv: any) => {
if (rv) {
let arr:any = []
rv.forEach((item:any) => {
arr.push({
value:item.name,
label:item.value,
})
});
this.sex = arr[0].value
this.sexList = arr
this.getPosition()
}
})
},
async getPosition(){
// let params
// if(this.sex.value == 'Female'){
// params = 'FemalePosition'
// }else{
// params = 'MalePosition'
// }
this.store.commit('setPosition',this.sex)
this.designType = this.store.state.UserHabit.Position?.[0].value
// this.designType = this.designTypeList?.Sketchboard?.[0].value
// await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:params}}).then((rv: any) => {
// if (rv) {
// let arr:any = []
// rv.forEach((item:any) => {
// arr.push({
// value:item.name,
// label:item.value,
// name:item.value
// })
// });
// this.designType = arr[0]
// this.designTypeList['Sketchboard'] = arr
// // this.workspaceItem.position = this.totalTypeList[0].label
// }
// })
},
likeFile(item:any,str:string){
let designType = ''
if(this.selectCode == 'DesignElements' || this.selectCode == 'Printboard'){
@@ -721,26 +845,58 @@ export default defineComponent({
}else{
this.designType = ''
}
if(this.selectCode == 'DesignElements')this.uploadGenerate = 'Upload'
if(this.selectCode == 'Printboard')this.uploadGenerate = 'Upload'
if(this.selectCode == 'Models')this.uploadGenerate = 'Upload'
if(this.selectCode != 'DesignElements'){
this.getClass()
}
if(this.selectCode == 'Sketchboard' || this.selectCode == 'Models')this.getSex()
this.getLibraryList('')
if(this.selectCode == 'Sketchboard'){
this.positionType = computed(() => {
return this.store.state.UserHabit.Position;
});
this.printModelList = JSON.parse(JSON.stringify(this.store.state.UserHabit.SketchStyle))
let imgList = ['/image/sketch/sketch-fine.jpg','/image/sketch/sketch-medium.jpg','/image/sketch/sketch-thick.jpg']
this.printModelList.forEach((item:any,index:number)=>{
item.img = imgList[index]
})
}
if(this.selectCode == 'Printboard'){
this.printModelList = [
{
num:'',
optype:false,
value:'Painting Style',
label:this.t('Generate.Model1')
},{
num:'',
optype:false,
value:'Illustration Style',
label:this.t('Generate.Model2')
},{
num:'',
optype:false,
value:'Real Style',
label:this.t('Generate.Model3')
},
]
}
if(this.printModelList[0])this.printModel = this.printModelList[0]
this.captionGeneration = ''
this.selectGenerateList = []
this.inputShow = false
this.uploadGenerateOpen('Upload')
}
this.upload.level1Type = menu.code
}
},
async sexChange(){
// if(this.uploadGenerate == 'Generate' && this.selectCode == 'Sketchboard'){
// }else{
// // this.scene = this.designTypeList[this.selectCode].filter((item:any)=>item.value == this.designType)[0]
// await this.getPosition()
// }
await this.getPosition()
if(this.uploadGenerate == 'Generate')return
this.currentPage = 1
this.getLibraryList('')
@@ -757,7 +913,10 @@ export default defineComponent({
this.currentPage = 1
this.getLibraryList('')
},
setSketchGenerateType (){
this.selectGenerateList = []
this.scene = this.SketchGenerateTypeList.filter((item:any)=>item.value == this.SketchGenerateType)[0]
},
fileUploadChange(data:any){
let file = data.file
// let Cropper:any = this.$refs.Cropper
@@ -826,16 +985,25 @@ export default defineComponent({
// this.scene = this.designTypeList[this.selectCode][0]
// }
// }
// if(this.selectCode == 'Sketchboard' && str == 'Generate'){
// this.designTypeList.Sketchboard = computed(()=>{
// return this.store.state.UserHabit.SketchGenerateType
// })
// }else if(this.selectCode == 'Sketchboard'){
// this.designTypeList.Sketchboard = computed(() => {
// return this.store.state.UserHabit.Position;
// });
// }
if(this.designTypeList[this.selectCode][0]){
this.scene = this.designTypeList[this.selectCode][0]
this.designType = this.designTypeList[this.selectCode][0].value
}
if(this.uploadGenerate == 'Generate'){
if(str != 'Generate'){
this.getLibraryList('')
}
if(str == 'Generate' && this.selectCode == 'Sketchboard'){
this.scene = this.SketchGenerateTypeList[0]
this.SketchGenerateType = this.SketchGenerateTypeList[0].value
}
if(str != 'Generate'){
this.getLibraryList('')
}
this.uploadGenerate = str
},
@@ -850,7 +1018,7 @@ export default defineComponent({
mask:false,
centered:true,
onOk() {
_this.confirmDeletePic(data,index)
_this.confirmDeletePic(data,index,'')
}
});
},
@@ -894,19 +1062,20 @@ export default defineComponent({
cancelText: 'No',
centered:true,
onOk() {
_this.confirmDeletePic('',0)
_this.confirmDeletePic('',0,'')
}
});
},
//确定删除图片 有data则是单个
confirmDeletePic(data:any,index:any){
confirmDeletePic(data:any,index:any,nData:any){
let libraryIds = data ? [data.id] : this.selectImgList
let newData = {
libraryIds:libraryIds,
deleteModelConfirm:data.level1Type == 'Models' ? data.deleteModelConfirm?data.deleteModelConfirm : 0:'',
deleteModelConfirm:this.selectCode == 'Models' ? data.deleteModelConfirm?data.deleteModelConfirm : 0:'',
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
}
if(nData)newData = nData
Https.axiosPost(Https.httpUrls.batchDeleteLibrary, newData).then(
(rv: any) => {
if(data && data.id){
@@ -917,7 +1086,7 @@ export default defineComponent({
}
}
).catch((res)=>{
if(data.level1Type == "Models" && res.errCode === 2){
if(this.selectCode == "Models" && res.errCode === 2){
let _this = this
Modal.confirm({
title: res.errMsg,
@@ -928,7 +1097,7 @@ export default defineComponent({
zIndex:99999,
centered:true,
onOk() {
data.deleteModelConfirm = 1
newData.deleteModelConfirm = 1
let id = _this.store.state.Workspace.workspace.id
Https.axiosGet(Https.httpUrls.workspaceDetail,{params:{id:id}}).then((rv: any) => {
if (rv) {
@@ -950,7 +1119,9 @@ export default defineComponent({
_this.store.commit("setWorkspace", rv);
}
})
_this.confirmDeletePic(data,index)
console.log(newData);
_this.confirmDeletePic('',index,newData)
},
onCancel(){
@@ -1053,46 +1224,7 @@ export default defineComponent({
}
});
},
getLibraryList(str:any){
let labelArr:any = []
this.value.labelValue.forEach((item:any)=>{
labelArr.push(item[item.length-1])
})
let designType = ''
if(this.selectCode == 'Sketchboard' || this.selectCode == 'DesignElements' || this.selectCode == 'Printboard'){
designType = this.designType
}
let data = {
classificationIdList:labelArr,
level1Type:this.selectCode,
level2Type:designType,
page:1,
modelSex:this.sex?this.sex:'',
pictureName:this.searchPictureName,
size:this.pageSize,
intersection:this.intersection,
}
if(str == 'page'){
data.page = this.currentPage
}else{
this.currentPage = 1
}
this.isShowMark = true
Https.axiosPost(Https.httpUrls.queryLibraryPage,data).then(
(rv: any) => {
if(rv.content?.length == 0 && this.currentPage != 1){
this.currentPage = 1
this.getLibraryList('')
}else{
this.imgList = rv.content
this.total = rv.total
this.isShowMark = false
}
}
).catch((res)=>{
this.isShowMark = false
});
},
//编辑模特打点
editPlacementClick(data:any){
@@ -1107,7 +1239,8 @@ export default defineComponent({
//给模特打点编辑
placementClick(data:any){
let placementModal:any = isMoible() ? this.$refs.ModelPlacementMobile : this.$refs.ModelPlacement
// let placementModal:any = isMoible() ? this.$refs.ModelPlacementMobile : this.$refs.ModelPlacement
let placementModal:any = this.$refs.ModelPlacement
placementModal.showPlacementModal(data,this.sex)
},
setTextareaShow(){
@@ -1227,14 +1360,51 @@ export default defineComponent({
this.printModel.optype = false
document.removeEventListener('click',this.removePrintModel)
},
setprintModel(num:any){
this.printModel = {
num : num,
optype:false,
name:this.t('LibraryPage.Model'+num)
setprintModel(item:any){
this.printModel = item
// this.printModel = {
// num : num,
// optype:false,
// name:this.t('LibraryPage.Model'+num)
// }
},
imageToSketch(){
if((!this.printModel?.id && !this.printModel?.value) || !this.selectGenerateList?.[0]?.id)return message.info(this.t('Generate.jsContent4'));
this.isShowMark = true
let data = {
"elementId": this.selectGenerateList[0].id,
gender:this.sex,
"style": this.printModel.value,
"styleImageId": this.printModel.id?this.printModel.id:''
}
Https.axiosPost(Https.httpUrls.imageToSketch, data).then((rv)=>{
if(rv){
this.designTypeList[this.selectCode].forEach((itemCategory:any) => {
if(itemCategory.value == rv.category){
rv.categoryValue = itemCategory?.value
rv.category = itemCategory?.name
}
});
this.generateList[this.selectCode].push({
imgUrl:rv.url,
categoryValue:rv.categoryValue,
category:rv.category,
id:rv.id,
status:'Success',
})
console.log(this.generateList);
this.isShowMark = false
}
}).catch(()=>{
this.isShowMark = false
})
},
getgenerate(){
if(this.scene?.value == 'extract'){
this.imageToSketch()
return
}
this.isInputFocus = false
this.isTextarea = false
let selectCodeStr = JSON.parse(JSON.stringify(this.selectCode))
@@ -1454,34 +1624,6 @@ export default defineComponent({
})
},
getClass(){
let data = {
"classificationIdList": [],
"classificationName": "",
"createTime": "",
"deleteConfirm": '',
"id": '',
"libraryId": '',
"parentId": '',
"type": this.selectCode,
"updateTime": "",
"userId": ''
}
Https.axiosPost(Https.httpUrls.queryClassification, data).then(
(rv: any) => {
this.options = rv
rv.forEach((rvItem:any,rvIndex:number) => {
this.options[rvIndex].value = rvItem.id
this.options[rvIndex].label = rvItem.classificationName
rvItem.childList.forEach((childItem:any,index:number) => {
this.options[rvIndex].childList[index].value = childItem.id
this.options[rvIndex].childList[index].label = childItem.classificationName
});
});
}
).catch((res)=>{
});
},
scaleImage(index:any){
let scaleImage:any = this.$refs.scaleImage
@@ -1527,6 +1669,11 @@ export default defineComponent({
box-sizing: border-box;
display: flex;
padding-top: 2rem;
.printModel{
font-size: 1.4rem;
font-weight: 500;
margin-right: 2rem;
}
.library_body_left{
// width: 27.5rem;
width: 36.5rem;
@@ -1807,46 +1954,7 @@ export default defineComponent({
}
}
.printModel{
font-size: 1.4rem;
font-weight: 500;
margin-right: 2rem;
>div{
width: 13rem;
// display: flex;
display: block;
border-radius: 1rem;
margin: 0;
border: 2px solid;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 1rem;
text-align: center;
}
ul{
position: absolute;
width: 13rem;
text-align: center;
margin-top: .3rem;
border-radius: 1rem;
overflow: hidden;
z-index: 3;
li{
background: #c5c4c8;
line-height: 2;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 1rem;
&.printModel_item:hover{
background: #949396;
}
}
}
}
}
}

View File

@@ -15,7 +15,7 @@
'login_active',
]"
>
Log on to AiDA 3.0
Log on to AiDA 3.1
</div>
</div>
<!-- 账号密码登录 start -->
@@ -464,6 +464,9 @@ export default defineComponent({
Https.axiosPost(Https.httpUrls.accountLogin, data).then(
(rv: any) => {
if (rv) {
if(rv.systemUser == 4){
rv.systemUser = 1
}
this.createTimer();
let isTest = rv.systemUser == 3?true:false
let isBeginner = rv.isBeginner == 1?true:false
@@ -475,12 +478,19 @@ export default defineComponent({
setCookie("isBeginnerNum", 0);//从第一步开始,机器人开始的话就是从第二部开始
setCookie("userInfo", JSON.stringify(rv));
this.store.commit("setSystemUser", rv.systemUser)
let obj:any = {
avatar : rv.avatar,
followeeCount : rv.followeeCount,
followerCount : rv.followerCount,
}
this.store.commit("setUserInfo", obj)
if(rv.systemUser == 0){
this.turnToHomePage('/');
this.turnToHomePage('/Square');
}else{
if(window.innerWidth < 768){
message.info("If you need to design, please log in using an iPad or computer.");
this.turnToHomePage('/');
this.turnToHomePage('/Square');
}else{
this.turnToHomePage('/home');
}

130
src/views/emailVerify.vue Normal file
View File

@@ -0,0 +1,130 @@
<template>
<div class="emailVerify">
<main class="main">
<div class="survey-form">
<h1 id="title"><span></span>邮箱修改成功</h1>
<div class="text">
<p id="description">您的新邮箱为*********************</p>
</div>
<div class="mark_loading" v-show="!isSucceed">
</div>
</div>
</main>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
</template>
<script lang="ts">
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Modal,message } from 'ant-design-vue';
import { useRoute } from 'vue-router';
import { Https } from "@/tool/https";
import { defineComponent, toRefs,ref, reactive, createVNode } from "vue";
export default defineComponent({
setup() {
const route = useRoute();
let feedbackData:any = reactive({
isShowMark:false,
isSucceed:false,
});
let setSubmit = (value:any)=>{
Https.axiosPost(Https.httpUrls.questionnaire, value).then(
(rv) => {
alert('Submit Successfully!')
}
).catch(res=>{
});
}
return {
...toRefs(feedbackData),
setSubmit,
};
},
data() {
return {
// moodTemplateId: "", //模板id
};
},
mounted() {},
methods: {},
});
</script>
<style lang="less" scoped>
@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&display=swap");
.emailVerify {
font-family: "Quicksand", sans-serif;
font-family: 'Roboto', sans-serif;
text-align: center;
line-height: 1.5;
// background: linear-gradient(180deg, #f3f3e6 0%, #eee4f3 100%);
overflow-y: auto;
*{
padding: 0;
margin: 0;
}
.main{
background: linear-gradient(45deg, #eee4f3, #f3f4e6);
// background: #f5f5f5;
width: 100vw;
height: 100vh;
}
#title {
font-size: 6rem;
margin: 0;
font-weight: 900;
}
#title{
display: flex;
align-items: center;
span{
background: #39215b;
width: 8rem;
height: 8rem;
border-radius: 50%;
color: #fff;
display: block;
font-size: 6rem;
line-height: 8rem;
text-align: center;
margin: 10px;
}
}
.survey-form {
position: relative;
background: rgba(255, 255, 255);
width: 50%;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 2.4rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 2rem;
padding: 4rem 0;
.mark_loading{
background: #fff;
width: 100%;
height: 100%;
position: absolute;
top: 0;
}
}
@media (max-width: 760px) {
form {
width: 75%;
}
}
p{
font-size: 2.8rem;
}
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<div class="feedbackSurvey" :class="{'active': forbid}">
<main id="main">
<h1 id="title">AiDA 3.0 Feedback Survey</h1>
<h1 id="title">AiDA 3.1 Feedback Survey</h1>
<p id="description" v-if="!forbid">Please take the survey</p>
<div id="survey-form" :class="{'active': !forbid}">
<h2 class="section-title">Personal Information</h2>
@@ -392,7 +392,7 @@
</label>
</div>
<div class="section">
<p>3. Will you subscribe to AiDA 3.0?<span class="fontColor">*</span></p>
<p>3. Will you subscribe to AiDA 3.1?<span class="fontColor">*</span></p>
<label>
<input
:disabled="forbid"

View File

@@ -1,7 +1,7 @@
<template>
<div class="feedbackSurvey">
<main id="main">
<h1 id="title">AiDA 3.0 调查问卷</h1>
<h1 id="title">AiDA 3.1 调查问卷</h1>
<p id="description">请填写调查问卷表</p>
<div id="survey-form">
<h2 class="section-title">参与者信息</h2>
@@ -360,7 +360,7 @@
</label>
</div>
<div class="section">
<p>3. 您会订阅AiDA 3.0<span class="fontColor">*</span></p>
<p>3. 您会订阅AiDA 3.1<span class="fontColor">*</span></p>
<label>
<input
type="radio"