语言适配加部分布局修改
This commit is contained in:
@@ -126,11 +126,16 @@ export default defineComponent({
|
|||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.account_frontPage{
|
.account_frontPage{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
.account_frontPage_body{
|
.account_frontPage_body{
|
||||||
padding-bottom: 3rem;
|
padding-bottom: 3rem;
|
||||||
|
height: 100%;
|
||||||
:deep(.ant-badge){
|
:deep(.ant-badge){
|
||||||
font-size: var(--aida-fsize2);
|
font-size: var(--aida-fsize2);
|
||||||
}
|
}
|
||||||
|
:deep(.ant-tabs-content){
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
:deep(.ant-tabs-tabpane){
|
:deep(.ant-tabs-tabpane){
|
||||||
padding: 0 5rem;
|
padding: 0 5rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,42 +2,55 @@
|
|||||||
<div class="bindPage_page">
|
<div class="bindPage_page">
|
||||||
<div class="bindPage_page_body">
|
<div class="bindPage_page_body">
|
||||||
<div class="bind_item">
|
<div class="bind_item">
|
||||||
<div class="title">Bind Wechat</div>
|
<div class="title">{{ $t('frontPage.BindWechat') }}</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="type">
|
<div class="type">
|
||||||
<img v-if="!userDetail.accountExtendList?.WeChat" src="@/assets/images/loginPage/weiXinIcon.svg" alt="">
|
<img v-if="!userDetail.accountExtendList?.WeChat" src="@/assets/images/loginPage/weiXinIcon.svg" alt="">
|
||||||
<img v-else :src="userDetail.accountExtendList?.WeChat.headImgUrl" alt="">
|
<img v-else :src="userDetail.accountExtendList?.WeChat.headImgUrl" alt="">
|
||||||
<div class="text">{{ userDetail.accountExtendList?.WeChat?userDetail.accountExtendList?.WeChat.name:'Unbound' }}</div>
|
<div class="text">{{ userDetail.accountExtendList?.WeChat?userDetail.accountExtendList?.WeChat.name:$t('frontPage.Unbound') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!userDetail.accountExtendList?.WeChat" class="gallery_btn" @click="openWeiXinModel">Bind Now</div>
|
<div v-if="!userDetail.accountExtendList?.WeChat" class="gallery_btn" @click="openWeiXinModel">{{ $t('frontPage.BindNow') }}</div>
|
||||||
<div v-else class="gallery_btn" @click="ungroupWeiXinModel">Unbind</div>
|
<div v-if="userDetail.accountExtendList?.WeChat" class="gallery_btn" @click="ungroupWeiXinModel">{{ $t('frontPage.Unbind') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bind_item">
|
<div class="bind_item">
|
||||||
<div class="title">Bind Gmail</div>
|
<div class="title">{{ $t('frontPage.BindGmail') }}</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="type">
|
<div class="type">
|
||||||
<img v-if="!userDetail.accountExtendList?.Google" src="@/assets/images/loginPage/gmailIcon.svg" alt="">
|
<img v-if="!userDetail.accountExtendList?.Google" src="@/assets/images/loginPage/gmailIcon.svg" alt="">
|
||||||
<img v-else :src="userDetail.accountExtendList?.Google?.headImgUrl" alt="">
|
<img v-else :src="userDetail.accountExtendList?.Google?.headImgUrl" alt="">
|
||||||
<div class="text">{{ userDetail.accountExtendList?.Google?userDetail.accountExtendList?.Google.name:'Unbound' }}</div>
|
<div class="text">{{ userDetail.accountExtendList?.Google?userDetail.accountExtendList?.Google.name:$t('frontPage.Unbound') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gmail_btn">
|
<div class="gmail_btn">
|
||||||
<div v-if="!userDetail.accountExtendList?.Google" class="gallery_btn">Bind Now</div>
|
<div v-if="!userDetail.accountExtendList?.Google && googleLoad" class="gallery_btn">{{ $t('frontPage.BindNow') }}</div>
|
||||||
<div v-else class="gallery_btn" @click="ungroupGoogleModel">Unbind</div>
|
<div v-else class="gallery_btn loading"><i class="fi fi-br-loading"></i></div>
|
||||||
<div v-show="!userDetail.accountExtendList?.Google" id="g_id_bind"></div>
|
<div v-show="!userDetail.accountExtendList?.Google" id="g_id_bind"></div>
|
||||||
|
<div v-if="userDetail.accountExtendList?.Google" class="gallery_btn" @click="ungroupGoogleModel">{{ $t('frontPage.Unbind') }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bind_item">
|
||||||
|
<div class="title">{{ $t('frontPage.ModifyEmail') }}</div>
|
||||||
|
<div class="box">
|
||||||
|
<div class="type">
|
||||||
|
<img :src="userDetail.avatar" alt="">
|
||||||
|
<div class="text">{{ userDetail.email }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="gmail_btn">
|
||||||
|
<div class="gallery_btn" @click="modifyEmail">{{ $t('frontPage.Modify') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mark_loading" v-show="loadingShow">
|
<div class="mark_loading" v-show="loadingShow">
|
||||||
<a-spin size="large" />
|
<a-spin size="large" />
|
||||||
</div>
|
</div>
|
||||||
<weiXinModel ref="weiXinModel"></weiXinModel>
|
<weiXinModel ref="weiXinModel"></weiXinModel>
|
||||||
|
<bindEmail ref="bindEmail" type="Modify"></bindEmail>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { defineComponent,computed,ref,reactive,nextTick,toRefs,onBeforeUnmount, onMounted} from 'vue'
|
import { defineComponent,computed,createVNode,reactive,nextTick,toRefs,onBeforeUnmount, onMounted} from 'vue'
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { Modal,message } from 'ant-design-vue';
|
import { Modal,message } from 'ant-design-vue';
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
@@ -45,23 +58,28 @@ import weiXinModel from "@/component/LoginPage/weiXinModel.vue";
|
|||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
|
import bindEmail from "@/component/HomePage/bindEmail.vue";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components:{
|
components:{
|
||||||
weiXinModel
|
weiXinModel,bindEmail
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const t = useI18n().t;
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
let accountHomeData = reactive({
|
let accountHomeData = reactive({
|
||||||
router:null,
|
router:null,
|
||||||
loadingShow:false,
|
loadingShow:false,
|
||||||
|
googleLoad:false,
|
||||||
userDetail:computed(()=>{
|
userDetail:computed(()=>{
|
||||||
return store.state.UserHabit.userDetail
|
return store.state.UserHabit.userDetail
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
let bindPageDom = reactive({
|
let bindPageDom = reactive({
|
||||||
weiXinModel:null
|
weiXinModel:null,
|
||||||
|
bindEmail:null,
|
||||||
})
|
})
|
||||||
let data = reactive({
|
let data = reactive({
|
||||||
scriptSrc:'https://accounts.google.com/gsi/client',
|
scriptSrc:'https://accounts.google.com/gsi/client',
|
||||||
@@ -88,7 +106,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
const ungroupWeiXinModel = ()=>{
|
const ungroupWeiXinModel = ()=>{
|
||||||
Https.axiosGet(Https.httpUrls.unbindWeChat,).then((rv)=>{
|
Https.axiosGet(Https.httpUrls.unbindWeChat,).then((rv)=>{
|
||||||
message.success('Successful discharge');
|
message.success(t('frontPage.jsContent1'));
|
||||||
let value = {
|
let value = {
|
||||||
accountExtendList:{
|
accountExtendList:{
|
||||||
WeChat:undefined,
|
WeChat:undefined,
|
||||||
@@ -107,11 +125,14 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
store.commit("upUserDetail", value)
|
store.commit("upUserDetail", value)
|
||||||
message.success('Successful discharge');
|
message.success(t('frontPage.jsContent1'));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const modifyEmail = ()=>{
|
||||||
|
bindPageDom.bindEmail.init()
|
||||||
|
|
||||||
|
}
|
||||||
onMounted(async ()=>{
|
onMounted(async ()=>{
|
||||||
|
|
||||||
let GOOGLE_CLIENT_ID = '194770296147-njd68pm7tnapgonkj2h48mhf63n15n3f.apps.googleusercontent.com'
|
let GOOGLE_CLIENT_ID = '194770296147-njd68pm7tnapgonkj2h48mhf63n15n3f.apps.googleusercontent.com'
|
||||||
var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`);
|
var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`);
|
||||||
if(!existingScript){
|
if(!existingScript){
|
||||||
@@ -119,8 +140,22 @@ export default defineComponent({
|
|||||||
const script = document.createElement("script");
|
const script = document.createElement("script");
|
||||||
script.src = data.scriptSrc
|
script.src = data.scriptSrc
|
||||||
script.onload=()=>{
|
script.onload=()=>{
|
||||||
|
accountHomeData.googleLoad = true
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
|
script.onerror = ()=>{
|
||||||
|
Modal.confirm({
|
||||||
|
title: t('frontPage.jsContent2'),
|
||||||
|
icon: createVNode(ExclamationCircleOutlined),
|
||||||
|
okText: 'Yes',
|
||||||
|
cancelText: 'No',
|
||||||
|
mask:false,
|
||||||
|
centered:true,
|
||||||
|
onOk() {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
accountHomeData.googleLoad = true
|
||||||
|
}
|
||||||
document.body.appendChild(script);
|
document.body.appendChild(script);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -154,6 +189,7 @@ export default defineComponent({
|
|||||||
openWeiXinModel,
|
openWeiXinModel,
|
||||||
ungroupGoogleModel,
|
ungroupGoogleModel,
|
||||||
ungroupWeiXinModel,
|
ungroupWeiXinModel,
|
||||||
|
modifyEmail,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
@@ -165,6 +201,8 @@ export default defineComponent({
|
|||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.bindPage_page{
|
.bindPage_page{
|
||||||
|
height: 100%;
|
||||||
|
overflow-y: auto;
|
||||||
.bindPage_page_body{
|
.bindPage_page_body{
|
||||||
.bind_item{
|
.bind_item{
|
||||||
margin-bottom: 4rem;
|
margin-bottom: 4rem;
|
||||||
@@ -194,6 +232,25 @@ export default defineComponent({
|
|||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.gallery_btn{
|
||||||
|
&.loading{
|
||||||
|
width: 10rem;
|
||||||
|
i{
|
||||||
|
&::before{
|
||||||
|
display: inline-block;
|
||||||
|
animation: loading 1s linear infinite;
|
||||||
|
@keyframes loading {
|
||||||
|
from{
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
to{
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
>.gmail_btn{
|
>.gmail_btn{
|
||||||
position: relative;
|
position: relative;
|
||||||
#g_id_bind{
|
#g_id_bind{
|
||||||
|
|||||||
@@ -3,35 +3,34 @@
|
|||||||
<div v-if="userDetail.status != 'canceled'">
|
<div v-if="userDetail.status != 'canceled'">
|
||||||
<div class="cancel_box_item">
|
<div class="cancel_box_item">
|
||||||
<div class="modal_title_text">
|
<div class="modal_title_text">
|
||||||
<div>What is your reason for cancelling AiDA?</div>
|
<div>{{ $t('cancelRenewal.cancelling') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<textarea v-model="textareaValue" placeholder="Share your feedback here..."></textarea>
|
<textarea v-model="textareaValue" placeholder="Share your feedback here..."></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div class="cancel_box_item cancel_box_item2">
|
<div class="cancel_box_item cancel_box_item2">
|
||||||
<div class="modal_title_text">
|
<div class="modal_title_text">
|
||||||
<div>You’re about to cancel your subscription</div>
|
<div>{{ $t('cancelRenewal.subscription') }}</div>
|
||||||
<div>
|
<div>
|
||||||
<i class="fi fi-sr-circle-xmark"></i>
|
<i class="fi fi-sr-circle-xmark"></i>
|
||||||
<div class="modal_title_text_assistant">You will loose all your date</div>
|
<div class="modal_title_text_assistant">{{ $t('cancelRenewal.looseDate') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<i class="fi fi-sr-circle-xmark"></i>
|
<i class="fi fi-sr-circle-xmark"></i>
|
||||||
<div class="modal_title_text_assistant">You will loose your settings and customizations</div>
|
<div class="modal_title_text_assistant">{{ $t('cancelRenewal.looseCustomizations') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
<i class="fi fi-sr-triangle-warning"></i>
|
<i class="fi fi-sr-triangle-warning"></i>
|
||||||
<div>Don’t worry! The data you have in AiDA will be
|
<div>{{ $t('cancelRenewal.DonWorry') }}</div>
|
||||||
safe.</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="button_box">
|
<div class="button_box">
|
||||||
<div class="gallery_btn white" @click="subscribe">Continue to renew</div>
|
<div class="gallery_btn white" @click="subscribe">{{ $t('cancelRenewal.Continue') }}</div>
|
||||||
<div class="gallery_btn" @click="cancelSubscription">Yes,cancel it</div>
|
<div class="gallery_btn" @click="cancelSubscription">{{ $t('cancelRenewal.cancel') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="no_renewal">
|
<div v-else class="no_renewal">
|
||||||
There are no subscription plans with automatic renewal.
|
{{ $t('cancelRenewal.subscriptionRenewal') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="mark_loading" v-show="isShowMark">
|
<div class="mark_loading" v-show="isShowMark">
|
||||||
<a-spin size="large" />
|
<a-spin size="large" />
|
||||||
|
|||||||
@@ -96,6 +96,13 @@ export default defineComponent({
|
|||||||
dataIndex: "id",
|
dataIndex: "id",
|
||||||
key: "id",
|
key: "id",
|
||||||
fixed: "left",
|
fixed: "left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'User Name',
|
||||||
|
align: "center",
|
||||||
|
width: 100,
|
||||||
|
dataIndex: "username",
|
||||||
|
key: "username",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Create Time',
|
title: 'Create Time',
|
||||||
@@ -112,13 +119,6 @@ export default defineComponent({
|
|||||||
dataIndex: "status",
|
dataIndex: "status",
|
||||||
key: "status",
|
key: "status",
|
||||||
|
|
||||||
},{
|
|
||||||
title: 'Updata Time',
|
|
||||||
align: "center",
|
|
||||||
width: 200,
|
|
||||||
dataIndex: "updateTime",
|
|
||||||
key: "updateTime",
|
|
||||||
|
|
||||||
},{
|
},{
|
||||||
title: 'Total income',
|
title: 'Total income',
|
||||||
align: "center",
|
align: "center",
|
||||||
@@ -135,6 +135,13 @@ export default defineComponent({
|
|||||||
dataIndex: "monthlyEarnings",
|
dataIndex: "monthlyEarnings",
|
||||||
key: "monthlyEarnings",
|
key: "monthlyEarnings",
|
||||||
openType:'all',
|
openType:'all',
|
||||||
|
},{
|
||||||
|
title: 'Unpaid amount',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 100,
|
||||||
|
dataIndex: "unpaidEarnings",
|
||||||
|
key: "unpaidEarnings",
|
||||||
},{
|
},{
|
||||||
title: 'Invitation Link',
|
title: 'Invitation Link',
|
||||||
align: "center",
|
align: "center",
|
||||||
@@ -143,12 +150,12 @@ export default defineComponent({
|
|||||||
dataIndex: "link",
|
dataIndex: "link",
|
||||||
key: "link",
|
key: "link",
|
||||||
},{
|
},{
|
||||||
title: 'Unpaid amount',
|
title: 'Updata Time',
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
width: 200,
|
||||||
width: 100,
|
dataIndex: "updateTime",
|
||||||
dataIndex: "unpaidEarnings",
|
key: "updateTime",
|
||||||
key: "unpaidEarnings",
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Operations',
|
title: 'Operations',
|
||||||
@@ -263,7 +270,7 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
Https.axiosPost(Https.httpUrls.affiliateList, data).then(
|
Https.axiosPost(Https.httpUrls.affiliateList, data).then(
|
||||||
(rv: any) => {
|
(rv: any) => {
|
||||||
this.collectionList = rv.records;
|
this.collectionList = rv.content;
|
||||||
this.total=rv.total
|
this.total=rv.total
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,6 +15,16 @@
|
|||||||
:destroyOnClose="true"
|
:destroyOnClose="true"
|
||||||
:zIndex="9999"
|
:zIndex="9999"
|
||||||
>
|
>
|
||||||
|
<div class="generalModel_btn" v-if="type == 'Modify'">
|
||||||
|
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
||||||
|
<!-- <i class="fi fi-rr-cross-small"></i> -->
|
||||||
|
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="23" cy="23" r="23" fill="white" fill-opacity="0.3"/>
|
||||||
|
<rect x="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="white"/>
|
||||||
|
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="login_page">
|
<div class="login_page">
|
||||||
<div class="page_content">
|
<div class="page_content">
|
||||||
<!-- 账号密码和邮箱登录 start-->
|
<!-- 账号密码和邮箱登录 start-->
|
||||||
@@ -27,7 +37,8 @@
|
|||||||
'login_active',
|
'login_active',
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
Bind Email
|
<span v-if="type == 'Modify'">Modify Email</span>
|
||||||
|
<span v-else>Bind Email</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 账号密码登录 start -->
|
<!-- 账号密码登录 start -->
|
||||||
@@ -84,7 +95,8 @@
|
|||||||
:state="emailStap"
|
:state="emailStap"
|
||||||
@click="submitPerLogin()"
|
@click="submitPerLogin()"
|
||||||
>
|
>
|
||||||
Bind Email
|
<span v-if="type == 'Modify'">Modify Email</span>
|
||||||
|
<span v-else>Bind Email</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 账号密码登录 end -->
|
<!-- 账号密码登录 end -->
|
||||||
@@ -114,6 +126,7 @@ export default defineComponent({
|
|||||||
components: {
|
components: {
|
||||||
VerificationCodeInput,
|
VerificationCodeInput,
|
||||||
},
|
},
|
||||||
|
props:['type'],
|
||||||
setup(){
|
setup(){
|
||||||
let timer:any = 0;
|
let timer:any = 0;
|
||||||
const {locale} = useI18n()
|
const {locale} = useI18n()
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="renewContent">
|
<div class="renewContent">
|
||||||
<div class="generalModelTitle">
|
<div class="generalModelTitle">
|
||||||
Select The Best Plan For Your Needs
|
{{ $t('Renew.title') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="renew_detail">
|
<div class="renew_detail">
|
||||||
<div class="name generalModelTitle">{{ current.title }}</div>
|
<div class="name generalModelTitle">{{ current.title }}</div>
|
||||||
@@ -39,16 +39,16 @@
|
|||||||
<div class="type" v-if="current.typeList.length > 1">
|
<div class="type" v-if="current.typeList.length > 1">
|
||||||
<label>
|
<label>
|
||||||
<input name="pric" type="radio" value="monthly" v-model="current.type" @change="setPricType('monthly')">
|
<input name="pric" type="radio" value="monthly" v-model="current.type" @change="setPricType('monthly')">
|
||||||
Monthly
|
{{ $t('Renew.Monthly') }}
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input name="pric" type="radio" value="year" v-model="current.type" @change="setPricType('year')">
|
<input name="pric" type="radio" value="year" v-model="current.type" @change="setPricType('year')">
|
||||||
Yearly
|
{{ $t('Renew.Yearly') }}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">{{ current.info }}</div>
|
<div class="info">{{ current.info }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gallery_btn gallery_btn_radius" @click="payment">Subscribe Now</div>
|
<div class="gallery_btn gallery_btn_radius" @click="payment">{{ $t('Renew.SubscribeNow') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="login_footer_item_text"
|
class="login_footer_item_text"
|
||||||
@@ -76,6 +76,7 @@ import { defineComponent,ref,reactive,toRefs ,onMounted} from "vue";
|
|||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import payMethod from "@/component/Pay/payMethod.vue";
|
import payMethod from "@/component/Pay/payMethod.vue";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
const md5 = require("md5");
|
const md5 = require("md5");
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
@@ -83,6 +84,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
setup(){
|
setup(){
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const {t} = useI18n()
|
||||||
let renew = reactive({
|
let renew = reactive({
|
||||||
renewModel:false,
|
renewModel:false,
|
||||||
renewModelMask:true,
|
renewModelMask:true,
|
||||||
@@ -90,14 +92,14 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
let renewData = reactive({
|
let renewData = reactive({
|
||||||
personage:{
|
personage:{
|
||||||
title:'Personal version',
|
title:t('Renew.PersonalVersion'),
|
||||||
price:{
|
price:{
|
||||||
monthly:'500',
|
monthly:'500',
|
||||||
year:'5,000',
|
year:'5,000',
|
||||||
},
|
},
|
||||||
unit:{
|
unit:{
|
||||||
monthly:'HKD / Month',
|
monthly:t('Renew.HKDMonth'),
|
||||||
year:'HKD / Year',
|
year:t('Renew.HKDYear'),
|
||||||
},
|
},
|
||||||
type:'monthly',
|
type:'monthly',
|
||||||
typeList:['monthly','year'],
|
typeList:['monthly','year'],
|
||||||
|
|||||||
@@ -27,10 +27,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="payMethodContent">
|
<div class="payMethodContent">
|
||||||
<div class="generalModelTitle">
|
<div class="generalModelTitle">
|
||||||
Purchase points
|
{{ $t('upgradePlan.PurchasePoints') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="generalModelInfo">
|
<div class="generalModelInfo">
|
||||||
select a payment method
|
{{ $t('upgradePlan.paymentmethod') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="payMethod_list">
|
<div class="payMethod_list">
|
||||||
<label class="payMethod_item">
|
<label class="payMethod_item">
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="payMethod_payAffirm_btn">
|
<div class="payMethod_payAffirm_btn">
|
||||||
<div class="gallery_btn white" @click="cancelDsign">Cancel</div>
|
<div class="gallery_btn white" @click="cancelDsign">{{ $t('upgradePlan.Cancel') }}</div>
|
||||||
<div class="gallery_btn" @click="payAffirm">Payment</div>
|
<div class="gallery_btn" @click="payAffirm">{{ $t('upgradePlan.Payment') }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,21 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="signUp" v-if="signUp">
|
<div class="signUp">
|
||||||
<div class="selectSignUp" v-show="!isSelectSignUp">
|
<div class="selectSignUp" v-show="!isSelectSignUp">
|
||||||
<div class="back" @click="close">
|
|
||||||
< BACK
|
|
||||||
</div>
|
|
||||||
<div class="title">Our Advantages</div>
|
<div class="title">Our Advantages</div>
|
||||||
<div class="introduce"><span @click="()=>isSelectSignUp=true">LEARN MORE ALL OUR PRODUCT FEATURES</span></div>
|
<div class="introduce"><span @click="()=>isSelectSignUp=true">LEARN MORE ALL OUR PRODUCT FEATURES</span></div>
|
||||||
<div class="gallery_list product_list">
|
<div class="gallery_list product_list">
|
||||||
<div class="gallery_item" v-for="item in productList" :key="item">
|
<div class="gallery_item" v-for="item in productList" :key="item">
|
||||||
<div class="product_signUp_box">
|
<div class="product_signUp_box">
|
||||||
<div class="title">{{ item.title }}</div>
|
<div class="title">{{ item.title }}</div>
|
||||||
<div class="info" v-if="item.title != '------------------'">{{ item.info }}</div>
|
<div class="info">{{ item.info }}</div>
|
||||||
<div class="info" v-else>-----</div>
|
|
||||||
<div class="detail">{{ item.detail }}</div>
|
<div class="detail">{{ item.detail }}</div>
|
||||||
<div class="highlight" v-if="item.highlight">{{ item.highlight }}</div>
|
<div class="highlight" v-if="item.highlight">{{ item.highlight }}</div>
|
||||||
<div class="gallery_btn gallery_btn_radius" v-if="item.title != '------------------'" :class="{active:item.title == '------------------'}" @click="createAccount">Create account</div>
|
<div class="gallery_btn gallery_btn_radius" v-if="item.info != '/'" @click="createAccount">Create account</div>
|
||||||
<div class="gallery_btn gallery_btn_radius" v-else :class="{active:item.title == '------------------'}" @click="createAccount">Contact us</div>
|
<a class="gallery_btn gallery_btn_radius" v-else href="mailto:info@code-create.com.hk">Contact us</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="product_detail">
|
<ul class="product_detail">
|
||||||
<li v-for="detailItem in item.detailList">{{ detailItem }}</li>
|
<li v-for="detailItem in item.detailList">{{ detailItem }}</li>
|
||||||
@@ -35,6 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gallery_btn" style="width: 20rem;" @click="()=>isSelectSignUp=false">Create account</div>
|
<div class="gallery_btn" style="width: 20rem;" @click="()=>isSelectSignUp=false">Create account</div>
|
||||||
|
<!-- <div class="gallery_btn" v-else style="width: 20rem;" @click="()=>isSelectSignUp=false">Contact us</div> -->
|
||||||
</div>
|
</div>
|
||||||
<registerModel ref="registerModel"></registerModel>
|
<registerModel ref="registerModel"></registerModel>
|
||||||
</div>
|
</div>
|
||||||
@@ -54,7 +51,6 @@
|
|||||||
registerModel:null
|
registerModel:null
|
||||||
})
|
})
|
||||||
let data = reactive({
|
let data = reactive({
|
||||||
signUp:false,
|
|
||||||
isSelectSignUp:false,
|
isSelectSignUp:false,
|
||||||
productList:[
|
productList:[
|
||||||
{
|
{
|
||||||
@@ -70,59 +66,33 @@
|
|||||||
'Support monthly/annual payment options',
|
'Support monthly/annual payment options',
|
||||||
'Suitable for individual creators and freelance designers to use'
|
'Suitable for individual creators and freelance designers to use'
|
||||||
]
|
]
|
||||||
},
|
},{
|
||||||
{
|
title:"Education Edition",
|
||||||
title:"------------------",
|
info:"/",
|
||||||
info:"--- / Year",
|
detail:"Multi user management system for universities",
|
||||||
detail:"---------------------------------------------",
|
highlight:"",
|
||||||
// highlight:"---------------",
|
|
||||||
detailList:[
|
detailList:[
|
||||||
'---------------------------------------',
|
'Multi user management system for universities',
|
||||||
'---------------------------------------',
|
'Credit limits are shared across the entire school',
|
||||||
'---------------------------------------',
|
'AI assisted design teaching function',
|
||||||
'---------------------------------------',
|
'Support sketch creativity and design inspiration teaching',
|
||||||
'---------------------------------------',
|
'Basic 3D design functions',
|
||||||
]
|
]
|
||||||
},{
|
},{
|
||||||
title:"------------------",
|
title:"Enterprise Edition",
|
||||||
info:"--- / Year",
|
info:"/",
|
||||||
detail:"---------------------------------------------",
|
detail:"Enterprise level multi person collaboration system",
|
||||||
// highlight:"---------------",
|
highlight:"",
|
||||||
detailList:[
|
detailList:[
|
||||||
'---------------------------------------',
|
'Enterprise level multi person collaboration system',
|
||||||
'---------------------------------------',
|
'Internal Credit Sharing within Enterprises',
|
||||||
'---------------------------------------',
|
'Brand DNA management system, customizable brand Exclusive design preferences',
|
||||||
'---------------------------------------',
|
'Cloud based design generation and management',
|
||||||
'---------------------------------------',
|
'Complete 3D design function, supporting high-definition printing output, professional plate making, and 3D rendering of renderings',
|
||||||
|
'Enterprise level data security assurance',
|
||||||
|
'Suitable for fashion design teams and brands to use',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// title:"Education Edition",
|
|
||||||
// info:"XXX / Year",
|
|
||||||
// detail:"Multi user management system for universities",
|
|
||||||
// highlight:"Free 5-day trial",
|
|
||||||
// detailList:[
|
|
||||||
// 'Multi user management system for universities',
|
|
||||||
// 'Credit limits are shared across the entire school',
|
|
||||||
// 'AI assisted design teaching function',
|
|
||||||
// 'Support sketch creativity and design inspiration teaching',
|
|
||||||
// 'Basic 3D design functions',
|
|
||||||
// ]
|
|
||||||
// },{
|
|
||||||
// title:"Enterprise Edition",
|
|
||||||
// info:"XXX / Year",
|
|
||||||
// detail:"Enterprise level multi person collaboration system",
|
|
||||||
// highlight:"Free 5-day trial",
|
|
||||||
// detailList:[
|
|
||||||
// 'Enterprise level multi person collaboration system',
|
|
||||||
// 'Internal Credit Sharing within Enterprises',
|
|
||||||
// 'Brand DNA management system, customizable brand Exclusive design preferences',
|
|
||||||
// 'Cloud based design generation and management',
|
|
||||||
// 'Complete 3D design function, supporting high-definition printing output, professional plate making, and 3D rendering of renderings',
|
|
||||||
// 'Enterprise level data security assurance',
|
|
||||||
// 'Suitable for fashion design teams and brands to use',
|
|
||||||
// ]
|
|
||||||
// },
|
|
||||||
],
|
],
|
||||||
introductList:[
|
introductList:[
|
||||||
{
|
{
|
||||||
@@ -152,12 +122,7 @@
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
const init = ()=>{
|
|
||||||
data.signUp = true
|
|
||||||
}
|
|
||||||
const close = ()=>{
|
const close = ()=>{
|
||||||
data.signUp = false
|
|
||||||
emit('close')
|
|
||||||
}
|
}
|
||||||
const createAccount = ()=>{
|
const createAccount = ()=>{
|
||||||
if(window.innerWidth < 768){
|
if(window.innerWidth < 768){
|
||||||
@@ -171,7 +136,6 @@
|
|||||||
return {
|
return {
|
||||||
...toRefs(dom),
|
...toRefs(dom),
|
||||||
...toRefs(data),
|
...toRefs(data),
|
||||||
init,
|
|
||||||
close,
|
close,
|
||||||
createAccount,
|
createAccount,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default {
|
|||||||
SentTo:'发送',
|
SentTo:'发送',
|
||||||
Resend:'重发',
|
Resend:'重发',
|
||||||
Credits:'积分',
|
Credits:'积分',
|
||||||
|
SubscribeNow:'立即订阅',
|
||||||
TaskList:'任务列表',
|
TaskList:'任务列表',
|
||||||
ViewOrders:'查询订单',
|
ViewOrders:'查询订单',
|
||||||
jsContent1:'邮箱格式不正确',
|
jsContent1:'邮箱格式不正确',
|
||||||
@@ -105,6 +106,8 @@ export default {
|
|||||||
payment:'选择付款方式',
|
payment:'选择付款方式',
|
||||||
Cancel:'取消',
|
Cancel:'取消',
|
||||||
Payment:'付款',
|
Payment:'付款',
|
||||||
|
PurchasePoints:'购买',
|
||||||
|
paymentmethod:'请选择付款方式',
|
||||||
policy1:'我承认我已阅读并同意',
|
policy1:'我承认我已阅读并同意',
|
||||||
policy2:'条款和条件',
|
policy2:'条款和条件',
|
||||||
policy3:'(包括服务范围)及',
|
policy3:'(包括服务范围)及',
|
||||||
@@ -598,7 +601,7 @@ export default {
|
|||||||
//account首页
|
//account首页
|
||||||
myInfor:'我的信息',
|
myInfor:'我的信息',
|
||||||
bindWeChat:'绑定',
|
bindWeChat:'绑定',
|
||||||
cancel:'订阅',
|
cancel:'取消订阅',
|
||||||
|
|
||||||
//编辑个人信息页
|
//编辑个人信息页
|
||||||
userName:'用户名',
|
userName:'用户名',
|
||||||
@@ -619,6 +622,36 @@ export default {
|
|||||||
hisWorks:'他的作品',
|
hisWorks:'他的作品',
|
||||||
works:'作品',
|
works:'作品',
|
||||||
},
|
},
|
||||||
|
frontPage:{
|
||||||
|
BindWechat:'绑定微信',
|
||||||
|
Unbound:'未绑定',
|
||||||
|
BindNow:'绑定',
|
||||||
|
Unbind:'取消绑定',
|
||||||
|
BindGmail:'绑定谷歌',
|
||||||
|
ModifyEmail:'修改邮箱',
|
||||||
|
Modify:'修改',
|
||||||
|
jsContent1:'取消绑定成功',
|
||||||
|
jsContent2:'当前网络无法加载谷歌',
|
||||||
|
},
|
||||||
|
Renew:{
|
||||||
|
title:'根据您的需求选择最佳计划',
|
||||||
|
Monthly:'月',
|
||||||
|
Yearly:'年',
|
||||||
|
SubscribeNow:'立即订阅',
|
||||||
|
PersonalVersion:'个人版',
|
||||||
|
HKDMonth:'HKD / 月',
|
||||||
|
HKDYear:'HKD / 年',
|
||||||
|
},
|
||||||
|
cancelRenewal:{
|
||||||
|
cancelling:'您取消AiDA的原因是什么?',
|
||||||
|
subscription:'您即将取消订阅',
|
||||||
|
looseDate:'你将失去所有功能',
|
||||||
|
looseCustomizations:'你将丢失你的设置和自定义',
|
||||||
|
DonWorry:'别担心!您在 AiDA 中的数据是安全的.',
|
||||||
|
Continue:'继续续订',
|
||||||
|
cancel:'是的,取消',
|
||||||
|
subscriptionRenewal:'没有自动续订的订阅计划.',
|
||||||
|
},
|
||||||
guide:{
|
guide:{
|
||||||
guide1:"在<strong>工作空间</strong>中,您可以个性化您的设计设置,包括选择适用于男装或女装的设计,以及选择用于创作的人体模型。",
|
guide1:"在<strong>工作空间</strong>中,您可以个性化您的设计设置,包括选择适用于男装或女装的设计,以及选择用于创作的人体模型。",
|
||||||
guide2:"选择您要设计的服装性别。",
|
guide2:"选择您要设计的服装性别。",
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default {
|
|||||||
SentTo:'Sent to',
|
SentTo:'Sent to',
|
||||||
Resend:'Resend',
|
Resend:'Resend',
|
||||||
Credits:'Credits',
|
Credits:'Credits',
|
||||||
|
SubscribeNow:'Subscribe now',
|
||||||
TaskList:'Task List',
|
TaskList:'Task List',
|
||||||
ViewOrders:'View Orders',
|
ViewOrders:'View Orders',
|
||||||
jsContent1:'The email format is incorrect',
|
jsContent1:'The email format is incorrect',
|
||||||
@@ -105,6 +106,8 @@ export default {
|
|||||||
payment:'Select payment method',
|
payment:'Select payment method',
|
||||||
Cancel:'Cancel',
|
Cancel:'Cancel',
|
||||||
Payment:'Payment',
|
Payment:'Payment',
|
||||||
|
PurchasePoints:'Purchase points',
|
||||||
|
paymentmethod:'select a payment method',
|
||||||
policy1:'I acknowledge that I have read, understand, and agree with the ',
|
policy1:'I acknowledge that I have read, understand, and agree with the ',
|
||||||
policy2:'Terms and Conditions',
|
policy2:'Terms and Conditions',
|
||||||
policy3:' (including the Scope of service) and the ',
|
policy3:' (including the Scope of service) and the ',
|
||||||
@@ -618,6 +621,36 @@ export default {
|
|||||||
hisWorks:'His works',
|
hisWorks:'His works',
|
||||||
works:'Works',
|
works:'Works',
|
||||||
},
|
},
|
||||||
|
frontPage:{
|
||||||
|
BindWechat:'Bind Wechat',
|
||||||
|
Unbound:'Unbound',
|
||||||
|
BindNow:'Bind Now',
|
||||||
|
Unbind:'Unbind',
|
||||||
|
BindGmail:'Bind Gmail',
|
||||||
|
ModifyEmail:'Modify Email',
|
||||||
|
Modify:'Modify',
|
||||||
|
jsContent1:'Successful discharge',
|
||||||
|
jsContent2:'The current network cannot load Google',
|
||||||
|
},
|
||||||
|
Renew:{
|
||||||
|
title:'Select The Best Plan For Your Needs',
|
||||||
|
Monthly:'Monthly',
|
||||||
|
Yearly:'Yearly',
|
||||||
|
SubscribeNow:'Subscribe Now',
|
||||||
|
PersonalVersion:'Personal version',
|
||||||
|
HKDMonth:'HKD / Month',
|
||||||
|
HKDYear:'HKD / Year',
|
||||||
|
},
|
||||||
|
cancelRenewal:{
|
||||||
|
cancelling:'What is your reason for cancelling AiDA?',
|
||||||
|
subscription:'You’re about to cancel your subscription',
|
||||||
|
looseDate:'You will loose all your date',
|
||||||
|
looseCustomizations:'You will loose your settings and customizations',
|
||||||
|
DonWorry:'Don’t worry! The data you have in AiDA will be safe.',
|
||||||
|
Continue:'Continue to renew',
|
||||||
|
cancel:'Yes,cancel it',
|
||||||
|
subscriptionRenewal:'There are no subscription plans with automatic renewal.',
|
||||||
|
},
|
||||||
createSlogan:{
|
createSlogan:{
|
||||||
title:'Create Slogan',
|
title:'Create Slogan',
|
||||||
Color:'Color',
|
Color:'Color',
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
meta:{enter:'all',},
|
meta:{enter:'all',},
|
||||||
component: _import('LoginPage')
|
component: _import('LoginPage')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/register',
|
||||||
|
name: 'register',
|
||||||
|
meta:{enter:'all',},
|
||||||
|
component: _import('Register')
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: '/register',
|
// path: '/register',
|
||||||
// name: 'register',
|
// name: 'register',
|
||||||
|
|||||||
@@ -92,7 +92,7 @@
|
|||||||
<!-- <i @click="Assignment" class="fi fi-rr-gift" title="Assignment"></i> -->
|
<!-- <i @click="Assignment" class="fi fi-rr-gift" title="Assignment"></i> -->
|
||||||
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
|
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="userDetail.systemUser == 0 || userDetail.systemUser == 3" class="gallery_btn" style="margin-left: 3rem;" @click="subscribe">Subscribe now</div>
|
<div v-if="userDetail.systemUser == 0 || userDetail.systemUser != 3" class="gallery_btn" style="margin-left: 3rem;" @click="subscribe">{{$t('Header.SubscribeNow')}}</div>
|
||||||
<div v-else style="width: 30rem;"></div>
|
<div v-else style="width: 30rem;"></div>
|
||||||
</div>
|
</div>
|
||||||
<navRouter :routerList="navRouterList"></navRouter>
|
<navRouter :routerList="navRouterList"></navRouter>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="homeRecommend_max" ref="homeRecommendMax">
|
<div class="homeRecommend_max">
|
||||||
<header class="homeRecommend_heade">
|
<header class="homeRecommend_heade">
|
||||||
<div class="homeRecommend_right_content">
|
<div class="homeRecommend_right_content">
|
||||||
<div class="homeRecommend_user_content">
|
<div class="homeRecommend_user_content">
|
||||||
@@ -8,26 +8,9 @@
|
|||||||
@click="turnToNewPage('https://www.aidlab.hk/en/')"
|
@click="turnToNewPage('https://www.aidlab.hk/en/')"
|
||||||
src="@/assets/images/loginPage/aida_logo.png"
|
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>
|
</div>
|
||||||
<div class="homeRecommend_right">
|
<div class="homeRecommend_right">
|
||||||
<a class="gallery_btn" v-if="userDetail.systemUser == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
|
|
||||||
<div class="gallery_btn" v-if="userDetail.systemUser == 1 && !isMoblie" @click="goHome">Home</div>
|
<div class="gallery_btn" v-if="userDetail.systemUser == 1 && !isMoblie" @click="goHome">Home</div>
|
||||||
<div class="gallery_btn white" v-if="userDetail.systemUser != -1" @click="logout">log off</div>
|
<div class="gallery_btn white" v-if="userDetail.systemUser != -1" @click="logout">log off</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -36,7 +19,6 @@
|
|||||||
<div class="gallery_btn white" @click="setRegister">Sign up</div>
|
<div class="gallery_btn white" @click="setRegister">Sign up</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<signUp ref="signUp" @close="signUpClose"></signUp>
|
|
||||||
<div class="homeRecommend_content_body">
|
<div class="homeRecommend_content_body">
|
||||||
<div class="homeRecommend_content_body_recommend">
|
<div class="homeRecommend_content_body_recommend">
|
||||||
<img src="@/assets/images/homePage/home-bg.png">
|
<img src="@/assets/images/homePage/home-bg.png">
|
||||||
@@ -45,12 +27,6 @@
|
|||||||
<h1>AiDA</h1>
|
<h1>AiDA</h1>
|
||||||
<h3>bloom your creativity</h3>
|
<h3>bloom your creativity</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_body_recommend_center_btn">
|
|
||||||
<div @click="setRegister" class="gallery_btn white" style="border: none; margin-right: 2rem;" >SUBSCRIBE NOW</div>
|
|
||||||
<div @click="setRegister" class="gallery_btn white" style="border: none;" >START TRIAL</div>
|
|
||||||
<!-- <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>
|
||||||
</div>
|
</div>
|
||||||
<Works :isScroll="false"></Works>
|
<Works :isScroll="false"></Works>
|
||||||
@@ -77,21 +53,17 @@ import { useI18n } from "vue-i18n";
|
|||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { gsap, TweenMax } from "gsap";
|
import { gsap, TweenMax } from "gsap";
|
||||||
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
||||||
import signUp from '@/component/mainPage/signUp/index.vue'
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
VerificationCodeInput,
|
VerificationCodeInput,
|
||||||
Habit,
|
Habit,
|
||||||
Works,
|
Works,
|
||||||
signUp,
|
|
||||||
},
|
},
|
||||||
setup(){
|
setup(){
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
let registerModel = ref()
|
let registerModel = ref()
|
||||||
let data = reactive({
|
let data = reactive({
|
||||||
homeRecommendMax:null,
|
|
||||||
signUp:null
|
|
||||||
})
|
})
|
||||||
let isMoblie = ref(false)
|
let isMoblie = ref(false)
|
||||||
let userDetail = computed(()=>{
|
let userDetail = computed(()=>{
|
||||||
@@ -100,13 +72,6 @@ export default defineComponent({
|
|||||||
let setLogin = ()=>{
|
let setLogin = ()=>{
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
}
|
}
|
||||||
let setRegister = () =>{
|
|
||||||
data.signUp.init()
|
|
||||||
data.homeRecommendMax.classList.add('openSignUp')
|
|
||||||
}
|
|
||||||
let signUpClose = ()=>{
|
|
||||||
data.homeRecommendMax.classList.remove('openSignUp')
|
|
||||||
}
|
|
||||||
let setAdminUp = ()=>{
|
let setAdminUp = ()=>{
|
||||||
let scrollDom = document.querySelector('.homeRecommend_content_body')
|
let scrollDom = document.querySelector('.homeRecommend_content_body')
|
||||||
scrollDom.scrollTo({
|
scrollDom.scrollTo({
|
||||||
@@ -140,6 +105,9 @@ export default defineComponent({
|
|||||||
},500)
|
},500)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const setRegister = ()=>{
|
||||||
|
router.push('/register');
|
||||||
|
}
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
window.addEventListener('resize',updataIsMoblie)
|
window.addEventListener('resize',updataIsMoblie)
|
||||||
})
|
})
|
||||||
@@ -151,12 +119,11 @@ export default defineComponent({
|
|||||||
userDetail,
|
userDetail,
|
||||||
setLogin,
|
setLogin,
|
||||||
registerModel,
|
registerModel,
|
||||||
setRegister,
|
|
||||||
signUpClose,
|
|
||||||
setAdminUp,
|
setAdminUp,
|
||||||
logout,
|
logout,
|
||||||
goHome,
|
goHome,
|
||||||
isMoblie,
|
isMoblie,
|
||||||
|
setRegister,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -222,21 +189,6 @@ export default defineComponent({
|
|||||||
.homeRecommend_content_body{
|
.homeRecommend_content_body{
|
||||||
flex: 1;
|
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 {
|
.homeRecommend_heade {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -354,11 +306,7 @@ export default defineComponent({
|
|||||||
font-size: 6rem;
|
font-size: 6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content_body_recommend_center_btn{
|
|
||||||
a:nth-child(1){
|
|
||||||
margin-right: 3rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@
|
|||||||
)"
|
)"
|
||||||
@dragstart="dragstart($event, index)"
|
@dragstart="dragstart($event, index)"
|
||||||
@dragover.prevent
|
@dragover.prevent
|
||||||
@drop="dragDrop($event, index)">
|
@drop="dragDrop($event, index,likeDesignCollectionList)">
|
||||||
<div class="content_img_flex">
|
<div class="content_img_flex">
|
||||||
<img class="content_img" :src="design.designOutfitUrl"
|
<img class="content_img" :src="design.designOutfitUrl"
|
||||||
:key="design.designOutfitUrl" />
|
:key="design.designOutfitUrl" />
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- </draggable> -->
|
<!-- </draggable> -->
|
||||||
<div class="content_img_block" :style="collStyle" v-for="(
|
<div class="content_img_block" :style="collStyle" draggable v-for="(
|
||||||
design, index
|
design, index
|
||||||
) in designCollectionList" :key="design?.designItemId">
|
) in designCollectionList" :key="design?.designItemId">
|
||||||
<div class="content_img_flex"
|
<div class="content_img_flex"
|
||||||
@@ -144,8 +144,10 @@
|
|||||||
index,
|
index,
|
||||||
designCollectionList,
|
designCollectionList,
|
||||||
'dislike'
|
'dislike'
|
||||||
)
|
)"
|
||||||
">
|
@dragstart="dragstart($event, index)"
|
||||||
|
@dragover.prevent
|
||||||
|
@drop="dragDrop($event, index,designCollectionList)">
|
||||||
<img class="content_img" :src="design.designOutfitUrl" />
|
<img class="content_img" :src="design.designOutfitUrl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="icon iconfont icon-jushoucang icon_like" :class="[driver__.driver?index == 0?driver__.index == 32?'Guide_img showEvents':'':'':'']" @click.stop="
|
<div class="icon iconfont icon-jushoucang icon_like" :class="[driver__.driver?index == 0?driver__.index == 32?'Guide_img showEvents':'':'':'']" @click.stop="
|
||||||
@@ -155,6 +157,13 @@
|
|||||||
)
|
)
|
||||||
">
|
">
|
||||||
</div>
|
</div>
|
||||||
|
<i class="fi fi-rr-trash icon_delete" @click.stop="
|
||||||
|
deleteDesignCollection(
|
||||||
|
designCollectionList,
|
||||||
|
index
|
||||||
|
)
|
||||||
|
">
|
||||||
|
</i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -278,10 +287,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
activated() {
|
activated() {
|
||||||
console.log('Home component activated');
|
|
||||||
},
|
},
|
||||||
deactivated() {
|
deactivated() {
|
||||||
console.log('Home component deactivated');
|
|
||||||
},
|
},
|
||||||
setup(props,{emit}) {
|
setup(props,{emit}) {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
@@ -597,9 +604,10 @@ export default defineComponent({
|
|||||||
|
|
||||||
this.dragIdx = index
|
this.dragIdx = index
|
||||||
},
|
},
|
||||||
dragDrop (e:any, index:any) {
|
dragDrop (e:any, index:any,list:any) {
|
||||||
let _teams = this.likeDesignCollectionList //将hotteams存起来
|
let _teams = list //将hotteams存起来
|
||||||
let _dragitem = _teams[this.dragIdx] //将被拖拽的那条数据存起来
|
let _dragitem = _teams[this.dragIdx] //将被拖拽的那条数据存起来
|
||||||
|
if(!_dragitem)return
|
||||||
_teams.splice(this.dragIdx, 1) //删除被拖拽的那条数据
|
_teams.splice(this.dragIdx, 1) //删除被拖拽的那条数据
|
||||||
_teams.splice(index, 0, _dragitem) //将被拖拽的那条数据放到数组中指定的位置
|
_teams.splice(index, 0, _dragitem) //将被拖拽的那条数据放到数组中指定的位置
|
||||||
},
|
},
|
||||||
@@ -953,7 +961,9 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
return colorBoards;
|
return colorBoards;
|
||||||
},
|
},
|
||||||
|
deleteDesignCollection(list:any,index:any){
|
||||||
|
list.splice(index,1)
|
||||||
|
},
|
||||||
likeDesignCollection(design: any, index: any) {
|
likeDesignCollection(design: any, index: any) {
|
||||||
let data = {
|
let data = {
|
||||||
designItemId: design.designItemId,
|
designItemId: design.designItemId,
|
||||||
@@ -1586,7 +1596,7 @@ export default defineComponent({
|
|||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
&:hover .icon_like {
|
&:hover .icon_like,&:hover .icon_delete {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1604,7 +1614,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
}
|
}
|
||||||
&.active{
|
&.active{
|
||||||
.icon_like{
|
.icon_like,.icon_delete{
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
.content_img_flex {
|
.content_img_flex {
|
||||||
@@ -1612,12 +1622,14 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content_img {
|
.content_img {
|
||||||
max-width: 100%;
|
// max-width: 100%;
|
||||||
max-height: 100%;
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
// max-height: 100%;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon_like {
|
.icon_like,.icon_delete {
|
||||||
font-size: 2.4rem;
|
font-size: 2.4rem;
|
||||||
top: 1rem;
|
top: 1rem;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
@@ -1625,7 +1637,9 @@ export default defineComponent({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.icon_delete{
|
||||||
|
top: 5rem;
|
||||||
|
}
|
||||||
.icon-jushoucang {
|
.icon-jushoucang {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
'login_active',
|
'login_active',
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
Log on to AiDA 3.1
|
Log on to AiDA 3.0
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 账号密码登录 start -->
|
<!-- 账号密码登录 start -->
|
||||||
|
|||||||
236
src/views/Register.vue
Normal file
236
src/views/Register.vue
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
<template>
|
||||||
|
<div class="homeRecommend_max openSignUp">
|
||||||
|
<header class="homeRecommend_heade">
|
||||||
|
<div class="homeRecommend_right_content">
|
||||||
|
<div class="homeRecommend_user_content">
|
||||||
|
<img
|
||||||
|
class="homeRecommend_logo"
|
||||||
|
@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">
|
||||||
|
<div class="gallery_btn" v-if="userDetail.systemUser == 1 && !isMoblie" @click="goHome">Home</div>
|
||||||
|
<div class="gallery_btn white" v-if="userDetail.systemUser != -1" @click="logout">log off</div>
|
||||||
|
</div>
|
||||||
|
<div class="homeRecommend_right" v-if="userDetail.systemUser == -1">
|
||||||
|
<div class="gallery_btn" @click="setLogin">Login</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<signUp ref="signUp" @close="signUpClose"></signUp>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script >
|
||||||
|
import { defineComponent, toRefs, reactive, ref , nextTick,computed, onMounted, onBeforeUnmount } from "vue";
|
||||||
|
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
|
import signUp from '@/component/mainPage/signUp/index.vue'
|
||||||
|
export default defineComponent({
|
||||||
|
components: {
|
||||||
|
signUp,
|
||||||
|
},
|
||||||
|
setup(){
|
||||||
|
const store = useStore();
|
||||||
|
const router = useRouter();
|
||||||
|
let registerModel = ref()
|
||||||
|
let data = reactive({
|
||||||
|
homeRecommendMax:null,
|
||||||
|
signUp:null
|
||||||
|
})
|
||||||
|
let isMoblie = ref(false)
|
||||||
|
let userDetail = computed(()=>{
|
||||||
|
return store.state.UserHabit.userDetail
|
||||||
|
})
|
||||||
|
let setLogin = ()=>{
|
||||||
|
router.push("/login");
|
||||||
|
}
|
||||||
|
let logout = ()=>{
|
||||||
|
let userInfo = store.state.UserHabit.userDetail;
|
||||||
|
let data = {
|
||||||
|
userId: userInfo?.userId,
|
||||||
|
};
|
||||||
|
store.commit('createDetail')
|
||||||
|
if(!data.userId) return
|
||||||
|
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
||||||
|
clonAllCookie();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let goHome = ()=>{
|
||||||
|
router.push('/home');
|
||||||
|
}
|
||||||
|
let time
|
||||||
|
let updataIsMoblie = ()=>{
|
||||||
|
clearTimeout(time)
|
||||||
|
time = setTimeout(()=>{
|
||||||
|
if(window.innerWidth < 768){
|
||||||
|
isMoblie.value = true
|
||||||
|
}else{
|
||||||
|
isMoblie.value = false
|
||||||
|
}
|
||||||
|
},500)
|
||||||
|
|
||||||
|
}
|
||||||
|
onMounted(()=>{
|
||||||
|
window.addEventListener('resize',updataIsMoblie)
|
||||||
|
})
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener('resize', updataIsMoblie);
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
...toRefs(data),
|
||||||
|
userDetail,
|
||||||
|
setLogin,
|
||||||
|
registerModel,
|
||||||
|
logout,
|
||||||
|
goHome,
|
||||||
|
isMoblie,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
// credits.value(newVal,oldVal){
|
||||||
|
// console.log(String(newVal).length);
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
turnToNewPage(url) {
|
||||||
|
window.open(url);
|
||||||
|
},
|
||||||
|
turnToWindow(url) {
|
||||||
|
window.open(url);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.homeRecommend_max{
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
|
||||||
|
&.openSignUp{
|
||||||
|
.homeRecommend_heade{
|
||||||
|
position: relative;
|
||||||
|
background: #fff !important;
|
||||||
|
.login_footer_item_text{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.homeRecommend_content_adminTop{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.homeRecommend_heade {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
// padding: 0 30px;
|
||||||
|
padding: 1rem 4rem;
|
||||||
|
width: 100%;
|
||||||
|
// height: 7rem;
|
||||||
|
flex-shrink: 0;
|
||||||
|
// background: rgba(255, 255, 255, 0.2);
|
||||||
|
// border-bottom: 0.1rem solid rgba(3, 3, 3, 0.1);
|
||||||
|
position: absolute;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 2;
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
.homeRecommend_right{
|
||||||
|
width: 33%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
.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 {
|
||||||
|
width: 14.4rem;
|
||||||
|
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: 40%;
|
||||||
|
height: 100%;
|
||||||
|
align-items: center;
|
||||||
|
overflow: hidden;
|
||||||
|
.homeRecommend_user_content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
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;
|
||||||
|
transition: .3s all;
|
||||||
|
}
|
||||||
|
.icon_rotate {
|
||||||
|
-moz-transform: rotate(180deg);
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
transform: rotate(180deg);
|
||||||
|
animation-direction: 0.5s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user