This commit is contained in:
X1627315083
2024-12-11 16:26:36 +08:00
parent 5d9dc7b77d
commit a6ae63e7cd
96 changed files with 6163 additions and 9414 deletions

View File

@@ -7,9 +7,12 @@
<img :src="userInfo?.avatar" alt="">
</div>
<div class="homeMain_user_detail">
<div class="homeMain_user_icon" @click="openAccount">
<img :src="userInfo?.avatar" alt="">
</div>
<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="homeMain_user_detail_attention">
<div class="attention_item">
<!-- 点击事件就用下面的div -->
<!-- <div class="attention_item attention_item_active"> -->
@@ -25,30 +28,52 @@
<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 class="homeMain_subscribe">
<div>
<span class="font">Status</span>
<span class="state font">Paid <i class="fi fi-ss-check-circle"></i></span>
<span class="time">31 Dec 2024</span>
</div>
<!-- <div>
<span class="font">Cancel Renewal <i class="fi fi-rr-arrow-small-right"></i></span>
</div> -->
</div>
<div class="homeMain_select">
<div class="select_item_box" @click.stop="isLanguage = !isLanguage">
<div class="select_item">
<span class="icon iconfont icon-yuyan"></span>
<span class="select_item_des">{{$t('Header.language')}}</span>
<span class="icon iconfont icon-xiala" :class="{'active': isLanguage}"></span>
</div>
<ul class="select_list" :class="{'active': isLanguage}" @click.stop="">
<li class="select_item" v-for="item in language" @click="setLocale(item.value)">
<span class="select_item_des">{{ item.name }}</span>
</li>
</ul>
</div>
<div class="select_item" @click="orderForm()">
<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(cookieUserInfo?.userId) >= 0" :to="`/administrator`">
<span class="icon iconfont icon-yonghu"></span>
<span class="select_item_des">Administrator</span>
</router-link>
<div class="select_item" @click="getTutorial()">
<span class="fi fi-rr-book-user"></span>
<span class="select_item_des">{{$t('Header.Tutorial')}}</span>
</div>
<div class="select_item_long"></div>
<div class="select_item" @click="logout()">
<span class="icon iconfont icon-tuichu"></span>
<span class="select_item_des">{{$t('Header.logOff')}}</span>
</div>
</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')}}@{{ cookieUserInfo?.userName }}</div>
<div
v-if="!isMurmur"
:class="[
'icon',
'iconfont',
'icon-xiala',
isShowOperate ? 'icon_rotate' : '',
]"
@click.stop="changeShowOperateContent()"
></div>
</div>
<div
class="trialApproval button_second credits hideChecked"
>
@@ -63,36 +88,16 @@
<!-- <i @click="Assignment" class="fi fi-rr-gift" title="Assignment"></i> -->
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
</div>
<div class="gallery_btn" style="margin-left: 3rem;" @click="subscribe">Subscribe now</div>
</div>
<!-- <nav class="homeMain_nav_content">
<router-link :class="['nav_item',$route.name === 'homePage' ? 'select_nav' : '', ]" :to="`/home/homePage`">
{{$t('Header.HOME')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'library' ? 'select_nav' : '', ]" :to="`/home/library`">
{{$t('Header.LIBRARY')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'history' ? 'select_nav' : '', ]" :to="`/home/history`">
{{$t('Header.HISTORY')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'works' ? 'select_nav' : '', ]" :to="`/home/works`">
{{$t('Header.WORKS')}}
</router-link>
</nav> -->
<navRouter :routerList="navRouterList"></navRouter>
<div class="homeMain_right">
<!-- <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> -->
@@ -106,44 +111,7 @@
<Habit></Habit>
</div>
<nav class="select_block" v-show="isShowOperate">
<!-- <div class="select_item" @click="showBindEmailModal()">
<span class="icon iconfont icon-youxiang"></span><span class="select_item_des">{{$t('Header.bindEmail')}}</span>
</div> -->
<div class="select_item" @click.stop="isLanguage = !isLanguage">
<span class="icon iconfont icon-yuyan"></span>
<span class="select_item_des">{{$t('Header.language')}}</span>
</div>
<!-- <div class="select_item" @click="openTask()">
<i class="icon iconfont icon-renwu"></i>
<span class="select_item_des">{{$t('Header.TaskList')}}</span>
</div> -->
<div class="select_item" @click="orderForm()">
<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(cookieUserInfo?.userId) >= 0" :to="`/administrator`">
<span class="icon iconfont icon-yonghu"></span>
<span class="select_item_des">Administrator</span>
</router-link>
<div class="select_item" @click="getTutorial()">
<span class="fi fi-rr-book-user"></span>
<span class="select_item_des">{{$t('Header.Tutorial')}}</span>
</div>
<div class="select_item" @click="logout()">
<span class="icon iconfont icon-tuichu"></span>
<span class="select_item_des">{{$t('Header.logOff')}}</span>
</div>
</nav>
<ul class="select_block select_list" v-show="isLanguage">
<li class="select_item" v-for="item in language" @click="setLocale(item.value)">
<span class="select_item_des">{{ item.name }}</span>
</li>
</ul>
<payOrder ref="payOrder"></payOrder>
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
<TaskPage ref="TaskPage"></TaskPage>
@@ -160,6 +128,8 @@
</div>
<RobotAssist></RobotAssist>
<scaleVideo ref="scaleVideo"></scaleVideo>
<!-- 进行续订 -->
<renew ref="renew"></renew>
</div>
</template>
<script >
@@ -168,6 +138,7 @@ import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import payOrder from "@/component/Pay/payOrder.vue";
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
import renew from "@/component/HomePage/renew.vue";
import Habit from "@/component/Detail/habit.vue";
import TaskPage from "@/component/HomePage/TaskPage.vue";
import UpgradePlan from "@/component/HomePage/UpgradePlan.vue";
@@ -189,6 +160,7 @@ import MyEvent from "@/tool/myEvents";
export default defineComponent({
components: {
VerificationCodeInput,
renew,
Habit,
RobotAssist,
scaleVideo,
@@ -223,11 +195,9 @@ export default defineComponent({
})
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)
@@ -273,14 +243,6 @@ export default defineComponent({
);
}
//点击下拉图标出现操作
let changeShowOperateContent=() =>{
stateList.isShowOperate = !stateList.isShowOperate;
document.addEventListener(
"click",
closeShowOperateContent,
false
);
}
let changeLanguage=() =>{
stateList.isLanguage = !stateList.isLanguage;
document.addEventListener(
@@ -292,12 +254,14 @@ export default defineComponent({
//关闭下拉图标
let closeShowOperateContent=() =>{
stateList.isShowOperate = false;
stateList.isLanguage = false
stateList.isNewPosted = false
document.removeEventListener("click", closeShowOperateContent);
}
let renew = ref(null)
const subscribe = ()=>{
renew.value.init()
}
onMounted(()=>{
getUnreadCount()
navRouterList.value = [
@@ -341,9 +305,10 @@ export default defineComponent({
...toRefs(stateList),
newPosted,
openNewPosted,
changeShowOperateContent,
changeLanguage,
closeShowOperateContent,
renew,
subscribe,
}
},
data() {
@@ -415,15 +380,13 @@ export default defineComponent({
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')
// .to(userDetailIcon,.3, {'left':'16rem',y:'25%',x:'-50%',scale:1.5,opacity:1},'-=.3')
let overTime
let outTime
userDetailMax.addEventListener('mouseenter',(event)=>{
@@ -432,7 +395,6 @@ export default defineComponent({
clearTimeout(outTime)
overTime = setTimeout(() => {
state = true
this.isShowOperate = false
this.isLanguage = false
tl1.play()
}, 500);
@@ -453,9 +415,7 @@ export default defineComponent({
setTask(data){
this.openTask(data)
},
turnToNewPage(url) {
window.open(url);
},
turnToPage(name) {
let noRefresh = name === "home" ? true : false;
@@ -647,23 +607,23 @@ export default defineComponent({
.homeMain_heade {
flex-shrink: 0;
display: flex;
justify-content: space-between;
// padding: 0 30px;
padding: 0 9rem;
padding: 0 6rem;
width: 100%;
height: 7rem;
height: auto;
background: rgba(255, 255, 255, 0.2);
// border-bottom: 0.1rem solid rgba(3, 3, 3, 0.1);
position: relative;
align-items: center;
z-index: 1049;
z-index: 9;
background-color: #fff;
.homeMain_right{
width: 33%;
// width: 33%;
width: auto;
display: flex;
justify-content: flex-end;
align-items: center;
margin-left: auto;
.message{
display: flex;
width: 6rem;
@@ -715,7 +675,9 @@ export default defineComponent({
// right: 3.2rem;
left: 0;
display: flex;
width: 33%;
// width: 36%;
margin-right: 7rem;
width: auto;
height: 100%;
align-items: center;
.homeMain_icon {
@@ -734,6 +696,7 @@ export default defineComponent({
left: 0;
border-radius: 50%;
cursor: pointer;
background: #fff;
img{
width: 100%;
height: 100%;
@@ -745,24 +708,107 @@ export default defineComponent({
position: absolute;
top: calc(100% + .5rem);
background: #fff;
border-radius: 4px;
width: 30rem;
height: 30rem;
width: 32rem;
height: auto;
opacity: 0;
display: none;
box-shadow: 0 0px 10px 1px rgba(0, 0, 0, 0.12);
padding-top: 4rem;
// box-shadow: 0 0px 10px 1px rgba(0, 0, 0, 0.12);
text-align: center;
flex-direction: column;
align-items: center;
padding: 4rem 3rem;
padding: 1.2rem 2rem;
border: 2px solid #000;
border-radius: 2rem;
.username,.homeMain_user_detail_attention,.homeMain_subscribe{
margin-bottom: 2rem;
}
.homeMain_user_icon{
position: relative;
}
.homeMain_subscribe{
padding: 2rem;
background: #f3f3f6;
border-radius: 1.4rem;
cursor: pointer;
width: 100%;
> div{
display: flex;
margin-bottom: 2rem;
}
> div:last-child{
margin-bottom: 0;
}
.font{
font-size: 1.6rem;
font-weight: 600;
margin-right: 1rem;
}
.state{
color: #3ab45c;
}
.time{
font-size: 1.4rem;
font-weight: 400;
margin-left: auto;
}
}
.homeMain_select{
width: 100%;
.select_item {
padding: 0 1rem;
border-radius: .8rem;
line-height: 4rem;
color: #4d4d4d;
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
width: 100%;
flex-wrap: wrap;
&:hover {
background: #f3f3f6;
}
.iconfont ,.fi-rr-book-user {
// font-size: 1.4rem;
}
.select_item_des {
font-size: 1.6rem;
margin-left: 1rem;
font-weight: 500;
}
}
.select_item_long{
border-bottom: 1px solid #eceaea;
margin: 2rem 0;
}
.icon-xiala{
margin-left: auto;
&.active{
transform: rotate(180deg);
}
}
.select_list{
height: 0;
overflow: hidden;
transition: all .3s;
width: 100%;
margin: 0;
> li{
padding-left: 2.5rem;
}
&.active{
height: auto;
}
}
}
.homeMain_user_detail_attention{
width: 100%;
display: flex;
justify-content: space-between;
padding: 0 2rem;
border-bottom: 1px solid #e3e5e7;
padding-left: 3.5rem;
padding-right: 3.5rem;
.attention_item{
display: flex;
flex-direction: column;
@@ -777,32 +823,15 @@ export default defineComponent({
color: #39215b;
}
}
div{
font-size: 1.6rem;
font-weight: 600;
}
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;
}
}
}
@@ -815,29 +844,6 @@ export default defineComponent({
margin: .7rem;
}
}
.homeMain_user_content {
// transition: all .3s;
display: flex;
align-items: center;
position: relative;
height: 3.7rem;
&.marLeft2{
margin-left: 2rem;
}
.icon-xiala {
font-size: 1.4rem;
cursor: pointer;
transition: .3s all;
}
.icon_rotate {
-moz-transform: rotate(180deg);
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
animation-direction: 0.5s;
}
}
.credits{
font-size: 1.8rem;
color: #1a1a1a;
@@ -846,6 +852,10 @@ export default defineComponent({
padding: 0 1rem;
cursor: auto;
display: flex;
line-height: 6rem;
height: 6rem;
box-sizing: content-box;
border-radius: 4rem;
span{
width: 5rem;
display: inline-block;
@@ -855,7 +865,7 @@ export default defineComponent({
.credits_item{
transition: .3s all;
// height: 4rem;
height: 35px;
height: 100%;
// height: 3.2rem;
div{
height: 100%;
@@ -899,33 +909,37 @@ export default defineComponent({
overflow: hidden;
border: 1px solid #000000;
height: auto;
&.select_list{
// display: none;
transform: translateX(105%);
// transform: translateX(120%);
}
.select_item {
padding-left: 1.5rem;
height: 4.1rem;
color: #4d4d4d;
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
// &.select_list{
// top: 56%;
// left: 100%;
// // transform: translateX(5%);
// }
.homeMain_select{
width: 100%;
.select_item {
height: 4.1rem;
color: #4d4d4d;
display: flex;
align-items: center;
cursor: pointer;
user-select: none;
width: 100%;
&:hover {
background: #f7f7f7;
}
&:hover {
background: #f7f7f7;
}
.iconfont ,.fi-rr-book-user {
// font-size: 1.4rem;
}
.iconfont ,.fi-rr-book-user {
font-size: 1.4rem;
}
.select_item_des {
font-size: 1.3rem;
margin-left: 0.8rem;
.select_item_des {
font-size: 1.6rem;
margin-left: 1rem;
font-weight: 500;
}
}
}
}
.modal_component {
.skip_content {

View File

@@ -1,5 +1,5 @@
<template>
<div class="homeRecommend_max Guide_1_16_1">
<div class="homeRecommend_max" ref="homeRecommendMax">
<header class="homeRecommend_heade">
<div class="homeRecommend_right_content">
<div class="homeRecommend_user_content">
@@ -8,56 +8,59 @@
@click="turnToNewPage('https://www.aidlab.hk/en/')"
src="@/assets/images/loginPage/aida_logo.png"
/>
<div
class="login_footer_item_text"
@click="turnToWindow(
'https://code-create.com.hk/aida-terms-and-conditions/'
)"
>
Terms&Conditions
</div>
<div
class="login_footer_item_text"
@click="turnToWindow(
'https://code-create.com.hk/aida-subscription-agreement/'
)"
>
Privacy Policy
</div>
</div>
</div>
<div class="homeRecommend_right">
<a class="started_btn" v-if="systemUser.value == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
<div class="started_btn" v-if="systemUser.value == 1 && !isMoblie" @click="goHome">Home</div>
<div class="started_btn started_btn2" v-if="systemUser.value != -1" @click="logout">log off</div>
<a class="gallery_btn" v-if="systemUser.value == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
<div class="gallery_btn" v-if="systemUser.value == 1 && !isMoblie" @click="goHome">Home</div>
<div class="gallery_btn white" v-if="systemUser.value != -1" @click="logout">log off</div>
</div>
<div class="homeRecommend_right" v-if="systemUser.value == -1">
<div class="started_btn" @click="setLogin">Login</div>
<div class="started_btn started_btn2" @click="setRegister">Visitor registration</div>
<div class="gallery_btn" @click="setLogin">Login</div>
<div class="gallery_btn white" @click="setRegister">Sign up</div>
</div>
</header>
<signUp ref="signUp" @close="signUpClose"></signUp>
<div class="homeRecommend_content_body">
<div class="homeRecommend_content_body_recommend" id="aaaa">
<div class="content_body_recommend_left mdhidden">
<img class="content_body_img1 content_body_img" src="/image/mainImg/img1.png" alt="">
<img class="content_body_img2 content_body_img" src="/image/mainImg/img2.png" alt="">
<img class="content_body_img3 content_body_img" src="/image/mainImg/img3.png" alt="">
<img class="content_body_img4 content_body_img" src="/image/mainImg/img4.png" alt="">
<img class="content_body_img5 content_body_img" src="/image/mainImg/img5.png" alt="">
</div>
<div class="homeRecommend_content_body_recommend">
<img src="@/assets/images/homePage/home-bg.png">
<div class="content_body_recommend_center content_body_text">
<div class="content_body_recommend_center_title">
<h1>AiDA</h1>
<h3>bloom your creativity</h3>
</div>
<div class="content_body_recommend_center_btn">
<a class="started_btn" href="https://code-create.com.hk/aida/" target="_blank">SUBSCRIBE NOW</a>
<a class="started_btn" href="https://code-create.com.hk/aida-trial/" target="_blank">START TRIAL</a>
<a class="gallery_btn white" style="border: none;" href="https://code-create.com.hk/aida/" target="_blank">SUBSCRIBE NOW</a>
<a class="gallery_btn white" style="border: none;" href="https://code-create.com.hk/aida-trial/" target="_blank">START TRIAL</a>
</div>
</div>
<div class="content_body_recommend_right mdhidden">
<img class="content_body_img1 content_body_img" src="/image/mainImg/img6.png" alt="">
<img class="content_body_img2 content_body_img" src="/image/mainImg/img7.png" alt="">
<img class="content_body_img3 content_body_img" src="/image/mainImg/img8.png" alt="">
<img class="content_body_img4 content_body_img" src="/image/mainImg/img9.png" alt="">
<img class="content_body_img5 content_body_img" src="/image/mainImg/img10.png" alt="">
</div>
</div>
<Works :isScroll="false"></Works>
</div>
<div class="homeRecommend_content_adminTop" @click="setAdminUp">
<i class="fi fi-rr-arrow-small-up"></i>
</div>
<registerModel ref="registerModel"></registerModel>
</div>
</template>
<script >
import { defineComponent, createVNode, ref , nextTick,computed, onMounted } from "vue";
import { defineComponent, reactive, ref , nextTick,computed, onMounted, toRefs } from "vue";
import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
@@ -72,18 +75,22 @@ import { useI18n } from "vue-i18n";
import { useRouter } from 'vue-router';
import { gsap, TweenMax } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import registerModel from '@/component/Login/registerModel.vue'
import signUp from '@/component/mainPage/signUp/index.vue'
export default defineComponent({
components: {
VerificationCodeInput,
Habit,
Works,
registerModel,
signUp,
},
setup(){
const store = useStore();
const router = useRouter();
let registerModel = ref()
let data = reactive({
homeRecommendMax:null,
signUp:null
})
let isMoblie = ref(false)
let systemUser = computed(()=>{
return store.state.UserHabit.systemUser
@@ -92,12 +99,11 @@ export default defineComponent({
router.push("/login");
}
let setRegister = () =>{
// ler
if(window.innerWidth < 768){
registerModel.value.pageWidth = '100%'
}
registerModel.value.init()
// router.push("/register");
data.signUp.init()
data.homeRecommendMax.classList.add('openSignUp')
}
let signUpClose = ()=>{
data.homeRecommendMax.classList.remove('openSignUp')
}
let setAdminUp = ()=>{
let scrollDom = document.querySelector('.homeRecommend_content_body')
@@ -127,10 +133,12 @@ export default defineComponent({
}
})
return {
...toRefs(data),
systemUser,
setLogin,
registerModel,
setRegister,
signUpClose,
setAdminUp,
logout,
goHome,
@@ -148,33 +156,9 @@ export default defineComponent({
},
mounted() {
nextTick().then(()=>{
let dom = document.querySelector('.homeRecommend_content_body')
let codeTween = document.querySelectorAll('.homeRecommend_content_body_recommend .content_body_img')
let codeTweenText = document.querySelectorAll('.homeRecommend_content_body_recommend .content_body_text')
for (let index = 0; index < codeTween.length; index++) {
gsap.from(codeTween[index],.5, {scale:.6 },);
gsap.registerPlugin(ScrollTrigger);
let tl1 = gsap.timeline();
tl1.to(codeTween[index],1, {y:'-30px',opacity:0},)
ScrollTrigger.create({
trigger: codeTween[index], // 触发器元素
start: "top 0%", // 滚动触发器的起始滚动位置
end: '200% 20%', // 滚动触发器的结束滚动位置
// markers: true, // 开启标注功能
scrub: true,
animation:tl1,
scroller:dom,//设置指定元素为滚动依据
scrub:2,
// onUpdate:(v)=>{
// if(v.progress < 0.1){
// v.trigger?.classList.remove('active')
// }else{
// v.trigger?.classList.add('active')
// // v.trigger?.classList.add('active')
// }
// }
});
}
gsap.registerPlugin(ScrollTrigger);
let tl1 = gsap.timeline();
tl1.from(codeTweenText,1, {'margin-top':'30px',opacity:1},)
@@ -187,12 +171,29 @@ export default defineComponent({
animation:tl1,
scroller:dom,//设置指定元素为滚动依据
scrub:2,
});
//标题滚动背景就变为背景
let header = document.querySelectorAll('.homeRecommend_max .homeRecommend_heade')
let tl2 = gsap.timeline();
tl2.to(header,0.5, {'background-color':'#fff'},)
ScrollTrigger.create({
trigger: header, // 触发器元素
start: "0% 0%", // 滚动触发器的起始滚动位置
// markers: true, // 开启标注功能
// scrub: true,
animation:tl2,
scroller:dom,//设置指定元素为滚动依据
scrub:.5,
});
})
},
methods: {
turnToNewPage(url) {
window.open(url);
},
turnToWindow(url) {
window.open(url);
},
},
});
</script>
@@ -207,34 +208,54 @@ export default defineComponent({
.homeRecommend_content_body{
flex: 1;
}
&.openSignUp{
.homeRecommend_heade{
position: relative;
background: #fff !important;
.login_footer_item_text{
display: block;
}
}
.homeRecommend_content_body{
display: none;
}
.homeRecommend_content_adminTop{
display: none;
}
}
}
.homeRecommend_heade {
display: flex;
justify-content: space-between;
// padding: 0 30px;
padding: 0 9rem;
padding: 1rem 4rem;
width: 100%;
height: 7rem;
// height: 7rem;
flex-shrink: 0;
background: rgba(255, 255, 255, 0.2);
// background: rgba(255, 255, 255, 0.2);
// border-bottom: 0.1rem solid rgba(3, 3, 3, 0.1);
position: relative;
position: absolute;
align-items: center;
z-index: 1049;
z-index: 2;
@media (max-width: 768px) {
z-index: 1000;
}
background-color: #fff;
// background-color: #fff;
.homeRecommend_right{
width: 33%;
display: flex;
justify-content: flex-end;
align-items: center;
.started_btn2{
color: #000;
background: #fff;
border: 2px solid #39215b;
margin-left: 2rem;
.gallery_btn{
// color: #000;
// background: #fff;
// border: 2px solid #39215b;
// margin-left: 2rem;
width: 13rem;
text-align: center;
&.gallery_btn:nth-child(1){
margin-right: 3rem;
}
}
}
.homeRecommend_logo {
@@ -242,11 +263,15 @@ export default defineComponent({
height: 3.2rem;
margin-top: 0;
}
.login_footer_item_text{
margin-left: 5rem;
display: none;
}
.homeRecommend_right_content {
top: 0;
left: 0;
display: flex;
width: 33%;
width: 40%;
height: 100%;
align-items: center;
overflow: hidden;
@@ -293,138 +318,31 @@ export default defineComponent({
// justify-content: center;
position: relative;
border-bottom: 1px solid #ececec;
.content_body_recommend_left,
.content_body_recommend_right{
position: absolute;
top: 0;
img{
border-radius: 2rem;
position: absolute;
width: 20px;
object-fit: cover;
}
}
--margin:3rem;
.content_body_recommend_right{
right: 0;
.content_body_img1{
width: 20rem;
height: 20rem;
object-fit: cover;
top: 10rem;
right: calc(20rem + var(--margin));
}
.content_body_img2{
width: 15rem;
height: 15rem;
object-fit: cover;
top: calc(30rem + var(--margin));
right: calc(20rem + var(--margin));
}
.content_body_img3{
top: 38rem;
width: 30rem;
height: 30rem;
object-fit: cover;
right: calc(-13rem + var(--margin));
}
.content_body_img4{
width: 20rem;
height: 20rem;
object-fit: cover;
top: 51rem;
right: calc(20rem + var(--margin));
}
.content_body_img5{
width: 20rem;
height: 20rem;
object-fit: cover;
top: 15rem;
right: 0;
}
}
.content_body_recommend_left{
left: 0;
.content_body_img1{
width: 15rem;
height: 15rem;
object-fit: cover;
top: 5rem;
left: calc(20rem + var(--margin));
}
.content_body_img2{
width: 25rem;
height: 25rem;
object-fit: cover;
top: calc(20rem + var(--margin));
left: calc(20rem + var(--margin));
}
.content_body_img3{
width: 20rem;
height: 20rem;
object-fit: cover;
top: calc(10rem + var(--margin));
// left: calc(0 + var(--margin));
}
.content_body_img4{
width: 30rem;
height: 30rem;
object-fit: cover;
top: 36rem;
left: calc(-13rem + var(--margin));
}
.content_body_img5{
width: 20rem;
height: 20rem;
object-fit: cover;
top: 51rem;
left: calc(20rem + var(--margin));
}
.content_body_img6{
width: 20rem;
height: 20rem;
object-fit: cover;
top: 20rem;
left: calc(0 + var(--margin));
}
width: 100%;
img{
width: 100%;
}
.content_body_recommend_center{
padding: 20rem 0;
text-align: center;
width: 50%;
position: relative;
left: 50%;
transform: translateX(-50%);
z-index: 2;
opacity: 0;
@media (max-width: 768px) {
width: 80%;
}
position: absolute;
top: 40%;
left: 36rem;
transform: translateY(-50%);
.content_body_recommend_center_title{
h1,h3{
color: #fff;
}
h1{
font-size: 15rem;
margin-bottom: 0;
line-height: 1;
font-size: 13rem;
font-weight: 900;
margin: 7rem;
div{
color: #341e57;
}
}
h3{
line-height: 1;
margin: 7rem;
font-size: 5rem;
font-weight: 900;
font-size: 6rem;
}
}
.content_body_recommend_center_btn{
display: flex;
justify-content: center;
cursor: pointer;
a{
margin: 0 2rem;
a:nth-child(1){
margin-right: 3rem;
}
}
}

View File

@@ -208,7 +208,7 @@ export default defineComponent({
// height: 100%;
height: auto;
min-height: 100%;
padding: 0 9rem;
padding: 0 6rem;
// min-width: 1440px;
position: relative;
padding-top: 5rem;

View File

@@ -7,8 +7,8 @@
<!-- <img class="page_content_bg" src="@/assets/images/homePage/bg.png" /> -->
<div class="page_content_body">
<div class="home_page_body">
<div class="home_page_left">
<div class="home_page_left_content">
<div class="home_page_left" ref="hidden">
<div class="home_page_left_content" :class="{'active':domHidden}">
<!-- 空状态 start-->
<div class="home_left_null" v-show="!isHaveReviewCollection">
<div>
@@ -32,10 +32,10 @@
<!-- <div class="button_second" @click="startNewCollection()">
{{ $t('HomeView.Start') }}
</div> -->
<div class="button_first button_margin" @click="recollection()">
<div class="gallery_btn white button_margin" @click="recollection()">
{{ $t('HomeView.Edit') }}
</div>
<div class="button_first button_margin" @click="resetCollection()">
<div class="gallery_btn white button_margin" @click="resetCollection()">
{{ $t('HomeView.Reset') }}
</div>
</div>
@@ -52,20 +52,37 @@
</div>
</div>
<!-- 有图状态 end-->
</div>
<div class="home_page_left_bottom" @click="()=>domHidden = !domHidden" v-show="designCollectionId">
<span class="icon iconfont icon-xiala" :class="{'active':domHidden}"></span>
</div>
</div>
<div class="home_page_right">
<div class="right_top">
<!-- <div class="right_top" ref="hidden" :class="{'active':domHidden}"> -->
<div class="right_top_left">
<div class="button_second Guide_1_15" @click="designNewCollection()">
<div class="gallery_btn white Guide_1_15" @click="designNewCollection()">
{{ $t('HomeView.Design') }}
</div>
<div class="button_first button_margin_14 Guide_1_30" v-show="designCollectionId"
<div class="gallery_btn white button_margin_14 Guide_1_30" v-show="designCollectionId"
@click="resDesignCollection()">
{{ $t('HomeView.Redesign') }}
</div>
<div class="silder button_margin_14" v-show="designCollectionId">
<div class="text">Small</div>
<a-slider id="system_silder"
class="system_silder"
v-model:value="collValue"
@afterChange="setSystemDesigner"
:tooltipVisible="false"
>
</a-slider>
<div class="text">Big</div>
</div>
<div class="gallery_btn Guide_1_31" style="margin-left: auto" @click="exportModel()">
<!-- {{ $t('HomeView.Export') }} -->
{{$t('HomeView.FinalizeCollection')}}
</div>
</div>
</div>
@@ -79,11 +96,35 @@
</div>
<div class="right_content_body">
<div class="right_content_img_block scroll_style Guide_1_17 active" v-mousewheel :class="[driver__.driver?'showEvents':'']">
<div class="right_content_img_block scroll_style Guide_1_17 active" :class="[driver__.driver?'showEvents':'']">
<div class="right_content_img_item">
<!-- <draggable
group="people" > -->
<div class="content_img_block" v-for="(
<div class="content_img_block active" :style="collStyle" draggable
v-for="(design, index) in likeDesignCollectionList" :key="design.id"
@click="designDetail(
design,
index,
likeDesignCollectionList,
'like'
)"
@dragstart="dragstart($event, index)"
@dragover.prevent
@drop="dragDrop($event, index)">
<div class="content_img_flex">
<img class="content_img" :src="design.designOutfitUrl"
:key="design.designOutfitUrl" />
</div>
<div class="icon iconfont icon-jushoucanggift icon_like" @click.stop="
dislikeDesignCollection(
design,
index
)">
</div>
</div>
<!-- </draggable> -->
<div class="content_img_block" :style="collStyle" v-for="(
design, index
) in designCollectionList" :key="design?.designItemId">
<div class="content_img_flex"
@@ -106,64 +147,28 @@
">
</div>
</div>
<!-- </draggable> -->
<div class="content_img_block" v-show="showDesignMark">
<div class="content_img_flex" >
<!-- <img class="content_img" v-lazy="''" /> -->
<img class="content_img" src="@/assets/images/homePage/loading.gif" />
</div>
</div>
</div>
</div>
</div>
<div class="right_content_header">
<!-- <div class="right_content_header">
<div class="content_header_left">
<i class="fi fi-rs-comments"></i><span class="content_header_des">{{ $t('HomeView.SelectedDesign') }}</span>
</div>
<div class="right_content_export" v-show="likeDesignCollectionList.length">
<!-- <div class="button_second Guide_1_31" @click="exportCanvas()"> -->
<div class="button_second Guide_1_31" @click="exportModel()">
<!-- {{ $t('HomeView.Export') }} -->
{{$t('HomeView.FinalizeCollection')}}
</div>
<!-- <div
:class="[
'icon',
'iconfont',
'icon-xiala',
isShowOperate ? 'icon_rotate' : '',
]"
@click.stop="changeShowOperateContent()"
></div> -->
<!-- <div class="export_nav" v-show="isShowOperate" @click.stop="">
<a-checkbox v-for="item in exportNav" v-model:checked="item.change" :disabled='item.noChange'>
{{ item.name }}
</a-checkbox>
</div> -->
</div>
</div>
<div class="right_content_body">
<div class="right_content_img_block scroll_style" v-mousewheel :class="{active:likeDesignCollectionList.length != 0}">
<div class="right_content_img_block scroll_style" :class="{active:likeDesignCollectionList.length != 0}">
<div class="right_content_img_item" id="right_content_img_block">
<!-- <div class="content_img_block" v-for="(
design, index
) in likeDesignCollectionList" :key="design?.id" @click="
designDetail(
design,
index,
likeDesignCollectionList,
'like'
)
">
<div class="content_img_flex">
<img class="content_img" v-lazy="design.designOutfitUrl"
:key="design.designOutfitUrl" />
</div>
<div class="icon iconfont icon-jushoucanggift icon_like" @click.stop="
dislikeDesignCollection(
design,
index
)
"></div>
</div> -->
<div class="content_img_block" draggable
v-for="(design, index) in likeDesignCollectionList" :key="design.id"
@click="designDetail(
@@ -188,7 +193,7 @@
</div>
</div>
</div>
</div>
</div> -->
</div>
</div>
</div>
@@ -200,6 +205,7 @@
<productImg ref="productImg" @setTask="setTask"></productImg>
<DesignDetail ref="designDetail" @finishRedesign="finishRedesign"></DesignDetail>
<ExportNewCoolection id="exportNewCoolection"></ExportNewCoolection>
<!-- 导出缩略图的蒙层 start-->
<div class="mark_loading" v-show="isShowMark || getLangIsShowMark">
<a-spin size="large" />
@@ -207,14 +213,15 @@
<!-- 导出缩略图的蒙层 end-->
<!-- design collection的进度蒙层 start-->
<div class="progress_mark" v-show="showDesignMark">
<!-- <div class="progress_mark" v-show="showDesignMark">
<div class="mark_content Guide_1_16">
<a-progress type="circle" :percent="designProgress" strokeColor="#341e57" :width="200" />
<div>
<a-spin :indicator="indicator" />
</div>
</div>
</div>
</div> -->
<!-- design collection的进度蒙层 end-->
<affiche ref="affiche"></affiche>
<!-- <RobotAssist></RobotAssist> -->
@@ -224,7 +231,7 @@
</template>
<script lang="ts">
import { defineComponent, h, ref, computed ,inject,provide,nextTick,createVNode} from "vue";
import { defineComponent, h, ref, computed, reactive, toRefs, inject,provide,nextTick,createVNode} from "vue";
// import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
// import HeaderComponent from "@/component/HomePage/Header.vue";
import CollectionModal from "@/component/HomePage/collectionModal.vue";
@@ -240,7 +247,6 @@ import html2canvas from "html2canvas";
import { message,Modal } from "ant-design-vue";
import { useStore } from "vuex";
import { Https } from "@/tool/https";
import { rgbToHsv, dataURLtoBlob } from "@/tool/util";
import { openGuide,driverObj__ } from "@/tool/guide";
import { LoadingOutlined ,ExclamationCircleOutlined} from "@ant-design/icons-vue";
import draggable from 'vuedraggable'
@@ -344,6 +350,25 @@ export default defineComponent({
return store.state.UploadFilesModule.chooseIsDesign})
let portfolio:any = ref({})
provide('portfolio',portfolio)
const collItemSize = reactive({
collValue:40,
collStyle:{
width:'24rem',
height:'37rem'
},
collTime:null as any,
})
const setSystemDesigner = ()=>{
clearTimeout(collItemSize.collTime)
collItemSize.collTime = setTimeout(()=>{
let wScale = 60,hScale = 92.5
let num = collItemSize.collValue
let {width,height} = collItemSize.collStyle
collItemSize.collStyle.width = wScale * ((num<20?20:num) / 100) + 'rem'
collItemSize.collStyle.height = hScale * ((num<20?20:num) / 100) + 'rem'
},500)
}
return {
store,
likeDesignCollectionList,
@@ -365,6 +390,8 @@ export default defineComponent({
isMannequinShow,
chooseIsDesign,
portfolio,
setSystemDesigner,
...toRefs(collItemSize),
};
},
data() {
@@ -387,6 +414,9 @@ export default defineComponent({
likeLoading: false, //喜欢防抖
dragIdx:0,
designRandom:'',
domHidden:false,
getDesignTime:null as any,
};
},
watch: {
@@ -401,6 +431,9 @@ export default defineComponent({
},
},
},
beforeUnmount(){
clearTimeout(this.getDesignTime);
},
async mounted() {
// if(JSON.parse( getCookie('isFirst') as any)){
// }
@@ -645,38 +678,63 @@ export default defineComponent({
);
return;
}
clearTimeout(this.getDesignTime);
let data = this.getDesignData("");
if(this.driver__.driver){
nextTick().then(()=>{
driverObj__.moveNext();
})
}
this.isShowMark = true
Https.axiosPost(Https.httpUrls.designCollection, data)
.then((rv: any) => {
if (rv) {
this.store.commit(
"setDesignCollectionList",
rv.designCollectionItems
);
let value = {
objectSignList:data.requestIdList.join(),
requestId:rv
}
this.store.commit("setLikeDesignCollectionList", []);
this.store.commit("deleteUserGroupId");
this.store.commit(
"setDesignCollectionId",
rv.collectionId
);
this.store.commit("setDesignId", rv.designId);
// this.designProgress = 0;
this.getDesignResult(value,'newDesign')
this.startDesignType = "design";
}
this.isShowMark = false;
})
.catch((res) => {
this.showDesignMark = false;
this.isShowMark = false;
})
// setTimeout(() => {
this.getDesignProcess(this.designRandom);
// }, 1000);
// this.getDesignProcess(this.designRandom);
},
getDesignResult(data:any,str:any){
this.showDesignMark = true
Https.axiosGet(Https.httpUrls.getDesignResult,{params:data})
.then((rv)=>{
if(rv.designCollectionItems){
this.store.commit("setDesignCollectionList",rv.designCollectionItems);
}
if(rv.unfinishedList.length == 0){
this.showDesignMark = false
if(str == 'newDesign'){
if(rv.designCollectionItems){
this.store.commit("deleteUserGroupId");
this.store.commit(
"setDesignCollectionId",
rv.collectionId
);
this.store.commit("setDesignId", rv.designId);
}
}else{
// this.designProgress = 0,
this.store.commit("setDesignId", rv.designId);
}
}else{
this.getDesignTime = setTimeout(()=>{
data.objectSignList = rv.unfinishedList.join()
this.getDesignResult(data,str)
},1000)
}
}).catch(()=>this.showDesignMark = false)
},
//重新设计collection
resDesignCollection() {
@@ -693,25 +751,25 @@ export default defineComponent({
driverObj__.moveNext();
})
}
clearTimeout(this.getDesignTime);
this.isShowMark = true
let data = this.getDesignData(this.designCollectionId);
Https.axiosPost(Https.httpUrls.reDesignCollection, data)
.then((rv: any) => {
if (rv) {
this.store.commit(
"setDesignCollectionList",
rv.designCollectionItems
);
// this.designProgress = 0,
let value = {
objectSignList:data.requestIdList.join(),
requestId:rv
}
this.getDesignResult(value,'resDesign')
this.startDesignType = "resDesign";
this.store.commit("setDesignId", rv.designId);
this.isShowMark = false
}
})
.catch((res) => {
this.showDesignMark = false;
this.isShowMark = false;
});
// setTimeout(() => {
this.getDesignProcess(this.designRandom);
// }, 1000);
// this.getDesignProcess(this.designRandom);
},
@@ -754,9 +812,15 @@ export default defineComponent({
data.collectionId = designCollectionId;
}
if(!isLoad){
this.designProgress = 0;
this.showDesignMark = true;
// this.designProgress = 0;
// this.isShowMark = true;
}
let arr = []
for (let index = 0; index < 8; index++) {
let floor = Math.floor(Math.random() * 90000000) + 10000000
arr.push(floor)
}
data.requestIdList = arr
return data;
},
@@ -1142,8 +1206,8 @@ export default defineComponent({
.home_page {
width: 100%;
height: 100%;
padding: 0 9rem;
overflow: hidden;
padding: 0 6rem;
// overflow: hidden;
// min-width: 1440px;
position: relative;
// left: 50%;
@@ -1164,18 +1228,51 @@ export default defineComponent({
display: flex;
// padding-left: 0.7rem;
box-sizing: border-box;
overflow: hidden;
// overflow: hidden;
.home_page_left {
// width: 44.4rem;
width: 55rem;
height: 100%;
padding: 2rem 0 0 0;
background: rgba(255, 255, 255, 0.2);
position: relative;
// overflow: hidden;
.home_page_left_bottom{
position: absolute;
width: 4rem;
height: 7rem;
background: #fff;
border: 2px solid;
border-right: none;
border-radius: 2rem 0 0 2rem;
top: 50%;
transform: translate(-100%,-50%);
left: 100%;
display: flex;
align-items: center;
justify-content: center;
z-index: 2;
cursor: pointer;
>span{
transition: all .3s;
transform: rotate(90deg);
&.active{
transform: rotate(270deg);
}
}
}
.home_page_left_content {
height: 100%;
width: 55rem;
overflow: hidden;
transition: all .3s;
padding-right: 1.2rem;
&.active{
padding-right: 0;
width: 0;
}
.home_left_null {
display: flex;
align-items: center;
@@ -1185,7 +1282,6 @@ export default defineComponent({
height: 100%;
position: relative;
background: #f7f8fa;
border: 1px solid #f2f2f9;
border-radius: 2rem;
overflow: hidden;
@@ -1275,21 +1371,40 @@ export default defineComponent({
justify-content: space-between;
box-shadow: 0rem 0.2rem 8rem 0rem rgba(238, 238, 244, 0.25);
background: rgba(255, 255, 255, 0.4);
transition: all .3s;
&.active{
overflow: hidden;
padding-top: 0;
padding-bottom: 0;
height: 0;
}
.right_top_left {
display: flex;
align-items: center;
width: 100%;
.button_margin_14 {
margin-left: 1.4rem;
}
.silder{
display: flex;
align-items: center;
.text{
font-weight: 600;
font-size: 1.8rem;
}
.system_silder{
margin: 0 3rem;
width: 12rem;
}
}
}
}
.right_content_block {
height: calc(100% - 8.584rem);
overflow-y: auto;
overflow-y: auto;
flex: 1;
display: flex;
flex-direction: column;
&.right_content_block::-webkit-scrollbar{display: none;}
&.active{
overflow: hidden;
@@ -1351,11 +1466,11 @@ export default defineComponent({
}
}
.right_content_body {
padding: 0 1.8rem 0 1.2rem;
// padding: 0 1.8rem 0 1.2rem;
background: rgba(255, 255, 255, 0.2);
height: calc(50% - 4.5rem);
// min-height: 280px;
// height: calc(50% - 4.5rem);
flex: 1;
overflow: auto;
.right_content_img_block {
// overflow-y: auto;
background: #f6f6fa;
@@ -1399,18 +1514,18 @@ export default defineComponent({
}
>div{
display: flex;
padding: 0 2.8rem 0 0.9rem;
flex-wrap: wrap;
// padding: 0 2.8rem 0 0.9rem;
height: 100%;
align-items: center;
align-content: flex-start;
}
.content_img_block {
// width: 20.1rem;
width: auto;
width: 24rem;
height: 37rem;
// height: 29.5rem;
margin-right: 1rem;
// margin-bottom: 1rem;
min-width: 127px;
margin-bottom: 1rem;
// min-height: 271px;
max-height: 100%;
@@ -1423,9 +1538,9 @@ export default defineComponent({
display: block;
}
&:nth-child(4n) {
margin-right: 0;
}
// &:nth-child(4n) {
// margin-right: 0;
// }
.content_img_flex {
display: flex;
@@ -1433,8 +1548,17 @@ export default defineComponent({
align-items: center;
width: 100%;
height: 100%;
border-radius: 2rem;
}
&.active{
.icon_like{
display: block;
}
.content_img_flex {
border: 2px solid #000;
}
}
.content_img {
max-width: 100%;
max-height: 100%;
@@ -1454,7 +1578,8 @@ export default defineComponent({
color: #000;
}
.icon-jushoucanggift {
color: rgba(52, 53, 121, 1);
// color: rgba(52, 53, 121, 1);
color: #000;
}
}
}

View File

@@ -282,7 +282,7 @@ export default defineComponent({
// height: 100%;
height: auto;
min-height: 100%;
padding: 0 9rem;
padding: 0 6rem;
// min-width: 1440px;
position: relative;
padding-top: 5rem;

View File

@@ -398,7 +398,7 @@ export default defineComponent({
.history_page {
width: 100%;
height: 100%;
padding: 0 9rem;
padding: 0 6rem;
overflow: hidden;
// min-width: 1440px;
position: relative;
@@ -420,7 +420,7 @@ export default defineComponent({
.history_page_body{
width: 100%;
height: 100%;
padding: 0 2.5rem 4rem;
padding: 4rem 2.5rem 4rem;
box-sizing: border-box;
.history_header{

View File

@@ -259,6 +259,7 @@
@keydown.enter="getgenerate"
@click="inputFocus()"
:placeholder="(scene?.value == 'Slogan' && selectCode == 'Printboard')?isSloganHint:$t('LibraryPage.inputContent2')"
@paste="onPaste"
v-model="captionGeneration">
<i class="fi fi-br-upload" :title="$t('Generate.uploadTitle')" v-show="!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'">
<a-upload
@@ -1317,10 +1318,9 @@ export default defineComponent({
}
file.categoryValue = category?.value;
file.category = category?.name;
let fileList = this.selectGenerateList.filter(
(v: any) => v.status === "done"
);
this.selectGenerateList = fileList
let paste = this.selectGenerateList.filter((v: any) => v.id === file.id);
if(paste.length == 0)this.selectGenerateList.push(file);
this.selectGenerateList = this.selectGenerateList.filter((v: any) => v.status === "done");
}else{
bor = false
}
@@ -1630,6 +1630,32 @@ export default defineComponent({
scaleImage.scaleImageMask = true
scaleImage.init(this.generateList[this.selectCode],index)
},
onPaste(e:any){
if(e.clipboardData.items[0] && !this.isTextarea && this.selectCode !== 'Moodboard' && this.scene?.value != 'Slogan' && this.scene?.value != 'Logo'){
let param = new FormData();
param.append('inPin','0')
param.append('gender',this.sex)
param.append('level1Type',this.selectCode)
param.append('timeZone',Intl.DateTimeFormat().resolvedOptions().timeZone)
param.append('file',e.clipboardData.files[0]);
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
Https.axiosPost(Https.httpUrls.elementUpload, param, config).then((v)=>{
let value = {data:v,errCode : 0}
v.status = 'done'
let data = {
file:{
status: 'done',
xhr:{
response:JSON.stringify(value)
}
}
}
this.generateFileUploadChange(data)
})
}
}
}
})
</script>
@@ -1641,7 +1667,7 @@ export default defineComponent({
width: 100%;
overflow: hidden;
height: 100%;
padding: 0 9rem;
padding: 0 6rem;
// min-width: 1440px;
position: relative;
.page_content {

View File

@@ -23,44 +23,44 @@
<!-- v-show="loginType == 'username'" -->
<div>
<div class="login_form_content" :state="emailStap">
<div class="login_form_title">Name</div>
<!-- <div class="login_form_title">Name</div>
<input
class="login_form_input"
placeholder="Enter your username"
v-model="username"
/>
<div class="login_form_title marign_top30">
<div>Password</div>
<!-- <div class="tip_content" @click="changeIsLogin(2)">
Forgot password
</div> -->
</div>
<div class="password_input_block">
<input
class="login_form_input"
:type="passwordType"
placeholder="Enter your password"
v-model="password"
@keydown.enter="submitPerLogin()"
/>
<div
class="icon iconfont icon-yanjing_yincang_o password_show_icon"
@click="changePasswordType()"
></div>
</div>
<div class="login_form_title marign_top30">
Email
</div>
<input
class="login_form_input"
placeholder="Enter your email address"
v-model="email"
@keydown.enter="submitPerLogin()"
/>
/> -->
<div v-show="emailStap === 1">
<div class="login_form_title marign_top30">
Email
</div>
<input
class="login_form_input"
placeholder="Enter your email address"
v-model="email"
@keydown.enter="submitPerLogin()"
/>
<div class="login_form_title marign_top30">
<div>Password</div>
</div>
<div class="password_input_block">
<input
class="login_form_input"
:type="passwordType"
placeholder="Enter your password"
v-model="password"
@keydown.enter="submitPerLogin()"
/>
<div
class="icon iconfont icon-yanjing_yincang_o password_show_icon"
@click="changePasswordType()"
></div>
</div>
</div>
<!-- 邮箱登录 start -->
<div
v-show="emailStap === 2"
class="login_form_email"
:class="{ active: emailStap === 2 }"
>
@@ -129,7 +129,9 @@
</label>
</div>
<div class="thirdPartyLogin marign_top30">
<googleLogin></googleLogin>
<googleLogin @googelLogin="googelLogin"></googleLogin>
<weiXinLogin></weiXinLogin>
<phoneLogin></phoneLogin>
</div>
<div
class="login_submit_button marign_top40"
@@ -233,7 +235,9 @@
<!-- 忘记密码 end -->
</div>
<div class="login_footer">
<!-- <div class="login_footer">
<div class="login_footer_item">
<div class="login_footer_item_text">
©2024 Code-Create Limited
@@ -262,7 +266,10 @@
Privacy Policy
</div>
</div>
</div>
</div> -->
<div class="mark_loading" v-show="loadingShow">
<a-spin size="large" />
</div>
</div>
</template>
@@ -274,22 +281,26 @@ import { setCookie, WriteCookie } from "@/tool/cookie";
import { message } from "ant-design-vue";
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
import googleLogin from "@/component/LoginPage/googleLogin.vue";
import weiXinLogin from "@/component/LoginPage/weiXinLogin.vue";
import phoneLogin from "@/component/LoginPage/phoneLogin.vue";
import { useStore } from "vuex";
import { useI18n } from "vue-i18n";
import { setLang } from "@/tool/guide";
const md5 = require("md5");
export default defineComponent({
components: {
VerificationCodeInput,googleLogin
VerificationCodeInput,googleLogin,weiXinLogin,phoneLogin
},
setup() {
let timer: any = 0;
const { locale } = useI18n();
const store = useStore();
let loadingShow = ref(false)
return {
store,
timer,
locale,
loadingShow,
};
},
data() {
@@ -315,6 +326,7 @@ export default defineComponent({
loginTime: true,
};
},
methods: {
changeLoginType(type: string) {
this.loginType = type;
@@ -431,7 +443,7 @@ export default defineComponent({
if (this.emailStap >= 2) {
return;
} else {
if (!this.username || !this.password) {
if (!this.password) {
message.info(
"Please enter your account number or password"
);
@@ -456,7 +468,8 @@ export default defineComponent({
}
let data = {
password: md5(this.password + "abc"),
userName: this.username,
userName: 'a',
// userName: this.username,
email: this.email,
operationType: "LOGIN",
ip: "",
@@ -503,54 +516,79 @@ 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;
let token = rv.token;
setCookie("isMurmur", false);
setCookie("token", token);
setCookie("isTest", isTest);
setCookie("isBeginner", isBeginner);
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("/Square");
} else {
if (window.innerWidth < 768) {
message.info(
"If you need to design, please log in using an iPad or computer."
);
this.turnToHomePage("/Square");
} else {
this.turnToHomePage("/home");
}
}
sessionStorage.setItem(
"isTimeOne",
JSON.stringify(false)
); //是否需要公告 提示 弹窗
let randomNum: any =
Math.floor(Math.random() * 9000000000000000) +
1000000000000000;
sessionStorage.setItem("sessionId", randomNum);
sessionStorage.setItem("record", JSON.stringify([]));
}
this.setSuccessLogin(rv)
})
.catch((res) => {});
},
//微信登录
wechatLogin(value:any) {
let data = {
code : value.code
}
this.loadingShow = true
Https.axiosGet(Https.httpUrls.parseWeChatCode, {params:data})
.then((rv: any) => {
this.loadingShow = false
this.setSuccessLogin(rv)
})
.catch((res) => {this.loadingShow = false});
},
//谷歌登录
googelLogin(value:any) {
let data = {credential : value}
Https.axiosGet(Https.httpUrls.parseGoogleCredential, {params:data})
.then((rv: any) => {
this.setSuccessLogin(rv)
})
.catch((res) => {});
},
//登陆成功设置参数
setSuccessLogin(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;
let token = rv.token;
setCookie("isMurmur", false);
setCookie("token", token);
setCookie("isTest", isTest);
setCookie("isBeginner", isBeginner);
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("/Square");
} else {
if (window.innerWidth < 768) {
message.info(
"If you need to design, please log in using an iPad or computer."
);
this.turnToHomePage("/Square");
} else {
this.turnToHomePage("/home");
}
}
sessionStorage.setItem(
"isTimeOne",
JSON.stringify(false)
); //是否需要公告 提示 弹窗
let randomNum: any =
Math.floor(Math.random() * 9000000000000000) +
1000000000000000;
sessionStorage.setItem("sessionId", randomNum);
sessionStorage.setItem("record", JSON.stringify([]));
}
},
//修改密码提交
submitResetPassword() {
let data = {
@@ -610,10 +648,13 @@ export default defineComponent({
}
);
},
turnToWindow(url: any) {
window.open(url);
},
},
mounted() {
const data = this.$route.query
if(data?.state == 'weiXin'){
this.wechatLogin(data)
}
},
});
</script>
<style lang="less" scoped>
@@ -631,17 +672,9 @@ export default defineComponent({
}
.login_content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
// width: 60rem;
width: 150rem;
background: #ffffff;
// box-shadow: -0.3rem 2rem 5.9rem 0px rgba(200,200,200,0.3);
border-radius: 1rem;
padding: 3rem 6rem 6.5rem;
box-sizing: border-box;
position: relative;
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
@@ -649,16 +682,15 @@ export default defineComponent({
width: 100%;
}
.login_content_left {
width: 40%;
width: 50%;
padding: 0 20rem;
@media (max-width: 768px) {
width: 100%;
}
.login_form_email {
position: absolute;
left: 0;
position: relative;
width: 100%;
height: 100%;
top: 0;
background: #fff;
transform: scale(0);
transition: 0.3s all;
@@ -677,9 +709,12 @@ export default defineComponent({
}
}
.login_content_right {
width: 40%;
height: 100%;
width: 50%;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
.login_type_list {
@@ -758,7 +793,10 @@ export default defineComponent({
font-size: 1.4rem;
box-sizing: border-box;
outline: none;
transition: all .3s;
&:hover{
border: 0.1rem solid #000;
}
&::placeholder {
color: #a5b0c2;
}
@@ -809,6 +847,10 @@ export default defineComponent({
font-weight: 500;
color: #ffffff;
cursor: pointer;
transition: all .3s;
&:hover{
background: #3C3C3C;
}
&[state="2"] {
cursor: not-allowed;
}
@@ -955,7 +997,10 @@ export default defineComponent({
}
.thirdPartyLogin{
display: flex;
justify-content: space-between;
justify-content: flex-start;
>div{
margin-right: 1rem;
}
}
.tip_content {
font-size: 1.3rem;

View File

@@ -84,7 +84,7 @@ export default defineComponent({
.paySucceed_page {
width: 100%;
height: 100%;
padding: 0 9rem;
padding: 0 6rem;
overflow: hidden;
// min-width: 1440px;
position: relative;

View File

@@ -383,7 +383,7 @@ export default defineComponent({
.trial_page {
width: 100%;
height: 100%;
padding: 0 9rem;
padding: 0 6rem;
overflow: hidden;
// min-width: 1440px;
position: relative;