detail preview可以设置空颜色
This commit is contained in:
@@ -202,10 +202,10 @@ li {
|
||||
background: #353535;
|
||||
}
|
||||
.gallery_btn {
|
||||
padding: 0 1.8rem;
|
||||
line-height: 6rem;
|
||||
padding: 0 2rem;
|
||||
line-height: 5.4rem;
|
||||
border-radius: 4rem;
|
||||
font-size: 1.8rem;
|
||||
font-size: 1.6rem;
|
||||
transition: all 0.3s;
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
@@ -911,7 +911,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-size: 1.4rem;
|
||||
padding: calc(5rem*1.2) calc(6rem*1.2);
|
||||
padding: 6rem 7rem;
|
||||
position: relative;
|
||||
}
|
||||
.generalModel .fi-rr-down-to-line,
|
||||
|
||||
@@ -206,11 +206,11 @@ input:focus{
|
||||
background: #353535;
|
||||
}
|
||||
.gallery_btn{
|
||||
padding: 0 1.8rem;
|
||||
line-height: 6rem;
|
||||
padding: 0 2rem;
|
||||
line-height: 5.4rem;
|
||||
border-radius: 4rem;
|
||||
// line-height: 6rem;
|
||||
font-size: 1.8rem;
|
||||
font-size: 1.6rem;
|
||||
transition: all .3s;
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
@@ -996,7 +996,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-size: 1.4rem;
|
||||
padding: calc(5rem*1.2) calc(6rem*1.2);
|
||||
padding: 6rem 7rem;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
<span>percentOff(%): <span>*</span></span>
|
||||
<input
|
||||
:class="{active:title != 'Add'}"
|
||||
:disabled="title != 'Add'"
|
||||
v-model="percentOff"
|
||||
placeholder="Please enter percentOff"
|
||||
type="text"
|
||||
@@ -51,6 +52,7 @@
|
||||
<span>Commission Rate: <span>*</span></span>
|
||||
<input
|
||||
:class="{active:title != 'Add'}"
|
||||
:disabled="title != 'Add'"
|
||||
v-model="commissionRate"
|
||||
placeholder="Please enter commission rate"
|
||||
type="text"
|
||||
@@ -68,6 +70,7 @@
|
||||
<span>MaxRedemptions:</span>
|
||||
<input
|
||||
:class="{active:title != 'Add'}"
|
||||
:disabled="title != 'Add'"
|
||||
v-model="maxRedemptions"
|
||||
placeholder="Please enter maximum"
|
||||
type="text"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -264,7 +264,7 @@ export default defineComponent({
|
||||
let isCurrent = list[i].id == detailData?.selectDetail?.id
|
||||
let data:any = {
|
||||
changed:false,
|
||||
color:(newData && detailData.currentDetailType == 'color' && isCurrent)?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:`${list[i].color.rgba.r} ${list[i].color.rgba.g} ${list[i].color.rgba.b}`,
|
||||
color:(detailData.currentDetailType == 'color' && isCurrent)?(newData?.rgba?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:''):`${list[i].color.rgba.r} ${list[i].color.rgba.g} ${list[i].color.rgba.b}`,
|
||||
designType:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.designType:list[i].designType,
|
||||
id:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.id:list[i].id,
|
||||
// maskMinioUrl:'',
|
||||
|
||||
@@ -260,8 +260,8 @@ export default defineComponent({
|
||||
const getSubmitData = (value:any)=>{
|
||||
let parentNode = document.getElementsByClassName('molepositon')[0].getElementsByClassName("designOpenrtion_imgMask")[0].getBoundingClientRect()
|
||||
let ratio = detailData.frontBack.body.layersObject[0].imageSize[0]/parentNode.width
|
||||
let arr:any = sort(detailData.frontBack.front)
|
||||
// let arr:any = sort(JSON.parse(JSON.stringify(detailData.frontBack.front)))
|
||||
// let arr:any = sort(detailData.frontBack.front)
|
||||
let arr:any = sort(JSON.parse(JSON.stringify(detailData.frontBack.front)))
|
||||
let num = 10
|
||||
arr.forEach((item:any)=>{
|
||||
item.priority = num++
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,provide,computed} from 'vue'
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { message, Upload, Modal } from "ant-design-vue";
|
||||
|
||||
@@ -1,838 +0,0 @@
|
||||
<template>
|
||||
<div class="header_max">
|
||||
|
||||
<header class="header_component">
|
||||
<div class="header_right_content">
|
||||
<div class="header_user_icon"></div>
|
||||
<!-- <div class="header_icon icon iconfont icon-touxiang3"></div> -->
|
||||
<div class="header_user_content">
|
||||
<div v-if="isTest" class="username"><span>/</span> {{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
|
||||
<div v-else class="username"><span>/</span> {{$t('Header.hello')}}@{{ userInfo?.userName }}</div>
|
||||
<div
|
||||
v-if="!isMurmur"
|
||||
:class="[
|
||||
'icon',
|
||||
'iconfont',
|
||||
'icon-xiala',
|
||||
isShowOperate ? 'icon_rotate' : '',
|
||||
]"
|
||||
@click.stop="changeShowOperateContent()"
|
||||
></div>
|
||||
|
||||
</div>
|
||||
<div @click="openTask">abc</div>
|
||||
<!-- <div class="header_user_content marLeft2">
|
||||
<span class="username">{{$t('Header.language')}}</span>
|
||||
<div
|
||||
:class="[
|
||||
'icon',
|
||||
'iconfont',
|
||||
'icon-xiala',
|
||||
isLanguage ? 'icon_rotate' : '',
|
||||
]"
|
||||
@click.stop="changeLanguage()"
|
||||
></div>
|
||||
</div> -->
|
||||
<div
|
||||
class="trialApproval button_second credits hideChecked"
|
||||
>
|
||||
Credits:
|
||||
<span :title="credits">
|
||||
<!-- <div>{{ String(credits.value[credits.value.legnth-1]) }}</div> -->
|
||||
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
|
||||
<div v-for="numItem in 10">{{ numItem-1 }}</div>
|
||||
</div>
|
||||
</span>
|
||||
<i @click="getCredits" class="fi fi-br-refresh" :class="[activeCredits?'active':'']"></i>
|
||||
<i @click="Assignment" class="fi fi-rr-gift" title="Assignment"></i>
|
||||
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="header_nav_content">
|
||||
<div :class="['nav_item',$route.name === 'home' ? 'select_nav' : '',
|
||||
]"
|
||||
@click="turnToPage('home')"
|
||||
>
|
||||
{{$t('Header.HOME')}}
|
||||
</div>
|
||||
<div
|
||||
:class="['nav_item', $route.name === 'library' ? 'select_nav' : '',]"
|
||||
@click="turnToPage('library')"
|
||||
>
|
||||
{{$t('Header.LIBRARY')}}
|
||||
</div>
|
||||
<div
|
||||
:class="['nav_item',$route.name === 'history' ? 'select_nav' : '',]"
|
||||
@click="turnToPage('history')"
|
||||
>
|
||||
{{$t('Header.HISTORY')}}
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header_right">
|
||||
<img
|
||||
class="header_logo"
|
||||
@click="turnToNewPage('https://www.aidlab.hk/en/')"
|
||||
src="@/assets/images/loginPage/aida_logo.png"
|
||||
/>
|
||||
<Habit></Habit>
|
||||
</div>
|
||||
</header>
|
||||
<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="orderForm()">
|
||||
|
||||
<i class="fi fi-rs-notebook"></i>
|
||||
<span class="select_item_des">View Orders</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>
|
||||
<a-modal
|
||||
class="modal_component"
|
||||
v-model:visible="bindEmailVisible"
|
||||
:footer="null"
|
||||
title="Mailbox binding"
|
||||
width="56rem"
|
||||
:maskClosable="false"
|
||||
:keyboard="false"
|
||||
:centered="true"
|
||||
>
|
||||
<template #closeIcon v-if="!isHaveBindEmail && bindEmailStep === 1">
|
||||
<div class="skip_content">{{$t('Header.skip')}}</div>
|
||||
</template>
|
||||
<div class="bind_email_content" v-if="isHaveBindEmail">
|
||||
<div class="bind_email_tip">{{$t('Header.emailContent')}}</div>
|
||||
<div class="bind_email">{{ userInfo.email }}</div>
|
||||
</div>
|
||||
<div class="bind_email_content" v-else>
|
||||
<!-- 绑定邮箱第一步 start -->
|
||||
<div v-show="bindEmailStep === 1">
|
||||
<div class="bind_email_form_content">
|
||||
<div class="bind_email_form_title">{{$t('Header.Email')}}</div>
|
||||
<input
|
||||
class="bind_email_form_input"
|
||||
placeholder="Enter a new email"
|
||||
v-model="email"
|
||||
@keydown.enter="emailNextStepFun()"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="bind_email_submit_button"
|
||||
@click="emailNextStepFun()"
|
||||
>
|
||||
{{$t('Header.NextStep')}}
|
||||
</div>
|
||||
</div>
|
||||
<!-- 绑定邮箱第一步 end -->
|
||||
|
||||
<!-- 绑定邮箱第二步 start -->
|
||||
<div v-show="bindEmailStep === 2">
|
||||
<div @click="emailLastStepFun()">
|
||||
<span class="icon iconfont icon--shangyibu"></span
|
||||
><span class="email_last_step_content"
|
||||
>{{$t('Header.verification')}}</span
|
||||
>
|
||||
</div>
|
||||
<div class="email_last_step_des">
|
||||
<div class="sent_email_content">
|
||||
{{$t('Header.SentTo')}} {{ email }}
|
||||
</div>
|
||||
<div class="tip_content">
|
||||
<span v-show="time">{{ time }}s</span>
|
||||
<span v-show="!time" @click="emailNextStepFun()"
|
||||
>{{$t('Header.Resend')}}Resend</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<VerificationCodeInput
|
||||
:ct="emailCode"
|
||||
@sendCaptcha="submitBindEmail($event)"
|
||||
></VerificationCodeInput>
|
||||
</div>
|
||||
<!-- 绑定邮箱第一步 end -->
|
||||
</div>
|
||||
</a-modal>
|
||||
<payOrder ref="payOrder"></payOrder>
|
||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||
<TaskPage ref="TaskPage"></TaskPage>
|
||||
</div>
|
||||
</template>
|
||||
<script >
|
||||
import { defineComponent, createVNode, ref, computed } from "vue";
|
||||
import { isEmail } from "@/tool/util";
|
||||
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
||||
import payOrder from "@/component/Pay/payOrder.vue";
|
||||
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
|
||||
import Habit from "@/component/Detail/habit.vue";
|
||||
import TaskPage from "@/component/HomePage/TaskPage.vue";
|
||||
import UpgradePlan from "@/component/HomePage/UpgradePlan.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { Modal, message } from "ant-design-vue";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||
import { useStore } from "vuex";
|
||||
import { setLang } from "@/tool/guide";
|
||||
import { useI18n } from "vue-i18n";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
VerificationCodeInput,
|
||||
Habit,
|
||||
UpgradePlan,
|
||||
payOrder,
|
||||
TaskPage,
|
||||
},
|
||||
setup(){
|
||||
const store = useStore();
|
||||
const {t} = useI18n()
|
||||
const {locale} = useI18n()
|
||||
let isTest = ref()
|
||||
let isMurmur = ref()
|
||||
let credits = computed(()=>{
|
||||
return store.state.UserHabit.credits.value
|
||||
})
|
||||
let activeCredits = ref(false)
|
||||
return {
|
||||
store,
|
||||
t,
|
||||
locale,
|
||||
isTest,
|
||||
isMurmur,
|
||||
credits,
|
||||
activeCredits,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShowOperate: false,
|
||||
bindEmailVisible: false,
|
||||
isHaveBindEmail: false,
|
||||
bindEmailStep: 1,
|
||||
email: "",
|
||||
emailCode: ["", "", "", "", "", ""], //邮箱验证码
|
||||
time: 60, //60秒倒计时
|
||||
timer: 0,
|
||||
userInfo: {},
|
||||
timerOperate: null,
|
||||
numTime: 30,
|
||||
timerSec: null,
|
||||
modalWarning: null,
|
||||
isLanguage: false,
|
||||
|
||||
language:[
|
||||
{name:'English',value:'ENGLISH'},
|
||||
{name:'中文',value:'CHINESE_SIMPLIFIED'},
|
||||
// {name:'한국인',value:'KOREAN'},
|
||||
// {name:'にほんご',value:'JAPANESE'},
|
||||
// {name:'Русский',value:'RUSSIAN'},
|
||||
// {name:'Français',value:'FRENCH'},
|
||||
// {name:'แบบไทย',value:'THAI'},
|
||||
// {name:'Tiếng Việt',value:'VIETNAMESE'},
|
||||
// {name:'Italiano',value:'ITALIAN'},
|
||||
],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
// credits.value(newVal,oldVal){
|
||||
// console.log(String(newVal).length);
|
||||
// }
|
||||
},
|
||||
mounted() {
|
||||
let isTest = getCookie('isTest')//获取是否是试用用户
|
||||
this.isTest =JSON.parse(isTest)
|
||||
let isMurmur = getCookie('isMurmur')//获取是否是试用用户
|
||||
this.isMurmur =JSON.parse(isMurmur)
|
||||
this.userInfo = JSON.parse(getCookie("userInfo"));
|
||||
if (!this.userInfo) {
|
||||
this.$router.replace("/");
|
||||
} else {
|
||||
this.accountIsLogin(this.userInfo);
|
||||
}
|
||||
this.isHaveBindEmail = this.userInfo?.email ? true : false;
|
||||
if(!this.isMurmur){
|
||||
this.operateClick();
|
||||
document.addEventListener("click", this.operateClick);
|
||||
}
|
||||
this.getCredits()
|
||||
this.getLang('')
|
||||
},
|
||||
methods: {
|
||||
turnToNewPage(url) {
|
||||
window.open(url);
|
||||
},
|
||||
|
||||
turnToPage(name) {
|
||||
let noRefresh = name === "home" ? true : false;
|
||||
this.$router.push({ name: name, params: { noRefresh: noRefresh } });
|
||||
},
|
||||
UpgradePlan(){//购买积分
|
||||
let UpgradePlan = this.$refs.UpgradePlan
|
||||
UpgradePlan.init()
|
||||
},
|
||||
Assignment(){//任务
|
||||
// let num = 123+this.credits
|
||||
// this.store.commit('setCredits',num)
|
||||
},
|
||||
getCredits(){//刷新当前积分
|
||||
if(!this.activeCredits){
|
||||
this.activeCredits = true
|
||||
this.store.dispatch('getCredits').then((rv)=>{
|
||||
setTimeout(()=>{
|
||||
this.activeCredits = false
|
||||
},300)
|
||||
})
|
||||
}else{
|
||||
this.activeCredits = false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
//点击下拉图标出现操作
|
||||
changeShowOperateContent() {
|
||||
this.isShowOperate = !this.isShowOperate;
|
||||
document.addEventListener(
|
||||
"click",
|
||||
this.closeShowOperateContent,
|
||||
false
|
||||
);
|
||||
},
|
||||
changeLanguage(){
|
||||
this.isLanguage = !this.isLanguage;
|
||||
document.addEventListener(
|
||||
"click",
|
||||
this.closeShowOperateContent,
|
||||
false
|
||||
);
|
||||
},
|
||||
|
||||
//关闭下拉图标
|
||||
closeShowOperateContent() {
|
||||
this.isShowOperate = false;
|
||||
this.isLanguage = false
|
||||
document.removeEventListener("click", this.closeShowOperateContent);
|
||||
},
|
||||
|
||||
//打开绑定邮箱弹窗
|
||||
showBindEmailModal() {
|
||||
this.bindEmailVisible = true;
|
||||
},
|
||||
|
||||
emailNextStepFun() {
|
||||
if (!isEmail(this.email)) {
|
||||
message.info(this.t('Header.jsContent1'));
|
||||
return;
|
||||
}
|
||||
let data = {
|
||||
email: this.email,
|
||||
operationType: "BIND_MAILBOX",
|
||||
};
|
||||
const hide = message.loading("loading", 0);
|
||||
Https.axiosPost(Https.httpUrls.accountSendEmail, data)
|
||||
.then((rv) => {
|
||||
if (rv) {
|
||||
this.bindEmailStep = 2;
|
||||
(this.emailCode = ["", "", "", "", "", ""]),
|
||||
this.createTimer();
|
||||
hide();
|
||||
message.success(this.t('Header.jsContent2'));
|
||||
}
|
||||
})
|
||||
.catch((res) => {
|
||||
hide();
|
||||
});
|
||||
},
|
||||
|
||||
//绑定邮箱的上一步
|
||||
emailLastStepFun() {
|
||||
this.bindEmailStep = 1;
|
||||
this.email = "";
|
||||
(this.emailCode = ["", "", "", "", "", ""]), this.clearTimer();
|
||||
},
|
||||
|
||||
//创建定时器
|
||||
createTimer() {
|
||||
this.timer = setInterval(() => {
|
||||
this.time--;
|
||||
if (!this.time) {
|
||||
clearInterval(this.timer);
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
|
||||
//清除定时器
|
||||
clearTimer() {
|
||||
this.time = 60;
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer);
|
||||
}
|
||||
},
|
||||
//查看订单
|
||||
orderForm(){
|
||||
let payOrder = this.$refs.payOrder
|
||||
payOrder.init()
|
||||
},
|
||||
//登出
|
||||
async logout() {
|
||||
let data = {
|
||||
userId: this.userInfo.userId,
|
||||
};
|
||||
let isTest = getCookie('isTest')
|
||||
// console.log(getCookie("token"));
|
||||
if(JSON.parse(isTest)){
|
||||
await Https.axiosGet(Https.httpUrls.trialUserLogout,).then((rv) => {
|
||||
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
||||
this.$router.replace("/login");
|
||||
WriteCookie("token");
|
||||
});
|
||||
})
|
||||
}else{
|
||||
await Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
||||
WriteCookie("token");
|
||||
});
|
||||
this.$router.replace("/login");
|
||||
}
|
||||
// window.location.reload()
|
||||
|
||||
},
|
||||
|
||||
//绑定邮箱
|
||||
submitBindEmail(emailVerifyCode) {
|
||||
let data = {
|
||||
userEmail: this.email,
|
||||
userId: this.userInfo.userId,
|
||||
emailVerifyCode: emailVerifyCode,
|
||||
};
|
||||
Https.axiosPost(Https.httpUrls.accountBindEmail, data).then(
|
||||
(rv) => {
|
||||
if (rv) {
|
||||
this.userInfo.email = this.email;
|
||||
(this.bindEmailVisible = false),
|
||||
(this.bindEmailStep = 1);
|
||||
this.clearTimer();
|
||||
this.emailCode = ["", "", "", "", "", ""];
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
//判断是否登录
|
||||
accountIsLogin(userInfo) {
|
||||
let data = {
|
||||
userId: userInfo.userId,
|
||||
};
|
||||
Https.axiosPost(Https.httpUrls.accountIsLogin, data).then((rv) => {
|
||||
if (!rv) {
|
||||
this.$router.replace("/");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
//点击重置判断是否长时间五操作
|
||||
operateClick() {
|
||||
if (this.timer) {
|
||||
clearTimeout(this.timer);
|
||||
}
|
||||
let _this = this;
|
||||
let timeNum = 1000 * 60 * 120;
|
||||
this.timer = setTimeout(() => {
|
||||
this.modalWarning = Modal.warning({
|
||||
title: () =>
|
||||
this.t('Header.jsContent3',{numTime:_this.numTime}),
|
||||
icon: createVNode(ExclamationCircleOutlined),
|
||||
okText: "Ok",
|
||||
centered:true,
|
||||
onOk() {
|
||||
_this.numTime = 30;
|
||||
clearInterval(_this.timerSec);
|
||||
},
|
||||
});
|
||||
_this.numCounter();
|
||||
}, timeNum);
|
||||
},
|
||||
|
||||
numCounter() {
|
||||
this.timerSec = setInterval(() => {
|
||||
if (this.numTime > 0) {
|
||||
this.numTime = this.numTime - 1;
|
||||
} else {
|
||||
clearTimeout(this.timer);
|
||||
clearInterval(this.timerSec);
|
||||
this.logout();
|
||||
this.modalWarning.destroy();
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
//获取当前语言
|
||||
getLang(v){
|
||||
let data
|
||||
Https.axiosPost(Https.httpUrls.getUserLanguage, data).then(
|
||||
(rv) => {
|
||||
if (rv) {
|
||||
this.locale = rv
|
||||
setLang(rv)
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
setLang(v){
|
||||
|
||||
Https.axiosGet(Https.httpUrls.changeUserLanguage,{params:{language:v}}).then((rv) => {
|
||||
if (rv) {
|
||||
if (rv) {
|
||||
let token = rv;
|
||||
setCookie("token", token);
|
||||
this.getLang('')
|
||||
// if(this.$router.currentRoute._value.path == '/home'){
|
||||
// this.$router.push("/home")
|
||||
// }else{
|
||||
// this.$router.push("/home")
|
||||
// }
|
||||
this.store.commit('clearAllData')
|
||||
window.location.reload()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
setLocale(v){
|
||||
this.setLang(v)
|
||||
},
|
||||
openTask(){
|
||||
let taskPage = this.$refs.TaskPage
|
||||
taskPage.init()
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.header_max{
|
||||
position: relative;
|
||||
}
|
||||
.header_component {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
// padding: 0 30px;
|
||||
padding-left: 0;
|
||||
width: 100%;
|
||||
height: 7rem;
|
||||
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;
|
||||
background-color: #fff;
|
||||
.header_right{
|
||||
width: 33%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
}
|
||||
.header_logo {
|
||||
width: 14.4rem;
|
||||
height: 3.2rem;
|
||||
margin: 2.1rem 2.8rem 0 ;
|
||||
// position: absolute;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.header_nav_content {
|
||||
display: flex;
|
||||
// margin-left: 28.9rem;
|
||||
// margin-left: 46.2rem;
|
||||
align-items: center;
|
||||
|
||||
.nav_item {
|
||||
padding: 1.1rem 1rem;
|
||||
border-bottom: 0.1rem solid transparent;
|
||||
margin-right: 3.4rem;
|
||||
font-size: 1.6rem;
|
||||
line-height: 1.3rem;
|
||||
// color: #333333;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
font-weight: 900;
|
||||
&.nav_item:nth-child(3){
|
||||
margin: 0;
|
||||
}
|
||||
&.nav_item::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
display: block;
|
||||
background: #000;
|
||||
height: .3rem;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: .3rem;
|
||||
width: 0px;
|
||||
transition: 0.3s all;
|
||||
}
|
||||
&.select_nav {
|
||||
color: #000;
|
||||
transform: scale(1.15);
|
||||
}
|
||||
&.select_nav::before {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.header_right_content {
|
||||
// position: absolute;
|
||||
top: 0;
|
||||
// right: 3.2rem;
|
||||
left: 0;
|
||||
display: flex;
|
||||
width: 33%;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
.header_icon {
|
||||
font-size: 3.6rem;
|
||||
position: relative;
|
||||
top: 0.3rem;
|
||||
}
|
||||
.header_user_icon{
|
||||
height: 4rem;
|
||||
width: 4rem;
|
||||
background-color: #000;
|
||||
border-radius: 50%;
|
||||
transform: translateX(-40%)scale(1.3);
|
||||
}
|
||||
.header_user_content {
|
||||
// margin-left: 2rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
// top: 1.2rem;
|
||||
height: 3.7rem;
|
||||
&.marLeft2{
|
||||
margin-left: 2rem;
|
||||
}
|
||||
.username {
|
||||
font-size: 1.8rem;
|
||||
color: #1a1a1a;
|
||||
margin: 0 0.8rem;
|
||||
font-weight: 900;
|
||||
span{
|
||||
margin: .7rem;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-xiala {
|
||||
font-size: 1.4rem;
|
||||
cursor: pointer;
|
||||
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;
|
||||
font-weight: 900;
|
||||
width: auto;
|
||||
padding: 0 1rem;
|
||||
cursor: auto;
|
||||
display: flex;
|
||||
span{
|
||||
width: 5rem;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
margin-right: .9rem;
|
||||
.credits_item{
|
||||
transition: .3s all;
|
||||
div{
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
i{
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
border-left: .1rem solid ;
|
||||
padding-left: .9rem;
|
||||
margin-left: .9rem;
|
||||
font-size: 1.8rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
.fi-br-refresh{
|
||||
margin-left: 0;
|
||||
border-left: none;
|
||||
padding-left: 0;
|
||||
&.active{
|
||||
transition: all .3s;
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
.trialApproval{
|
||||
margin-left: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.select_block {
|
||||
z-index: 1050;
|
||||
position: absolute;
|
||||
left: 6.5rem;
|
||||
top: 4.7rem;
|
||||
width: 11.4rem;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 0.4rem 0.4rem 0px rgba(0, 0, 0, 0.1);
|
||||
overflow: hidden;
|
||||
border: 1px solid #000000;
|
||||
&.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;
|
||||
|
||||
&:hover {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.select_item_des {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 0.8rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.modal_component {
|
||||
.skip_content {
|
||||
width: 6rem;
|
||||
height: 3rem;
|
||||
line-height: 2.8rem;
|
||||
border: 0.1rem solid #343579;
|
||||
font-size: 1.4rem;
|
||||
color: #343579;
|
||||
position: absolute;
|
||||
top: 1.8rem;
|
||||
right: 1.8rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bind_email_content {
|
||||
padding: 4.8rem 9.2rem 6rem;
|
||||
|
||||
.bind_email_tip {
|
||||
font-size: 1.8rem;
|
||||
color: #a5b0c2;
|
||||
line-height: 1.9rem;
|
||||
text-align: center;
|
||||
}
|
||||
.bind_email {
|
||||
margin-top: 2rem;
|
||||
font-size: 2.2rem;
|
||||
font-weight: 400;
|
||||
color: #030303;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bind_email_form_content {
|
||||
.bind_email_form_title {
|
||||
font-size: 2.2rem;
|
||||
font-weight: bold;
|
||||
color: #030303;
|
||||
line-height: 2.4rem;
|
||||
}
|
||||
|
||||
.bind_email_form_input {
|
||||
width: 100%;
|
||||
height: 4.6rem;
|
||||
margin-top: 1rem;
|
||||
border: 0.1rem solid #b4bed7;
|
||||
padding-left: 2.1rem;
|
||||
line-height: 4.6rem;
|
||||
font-size: 1.8rem;
|
||||
box-sizing: border-box;
|
||||
|
||||
&::placeholder {
|
||||
color: #a5b0c2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bind_email_submit_button {
|
||||
height: 4.6rem;
|
||||
line-height: 4.6rem;
|
||||
background: #343579;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
width: 12.8rem;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
margin: 3rem auto 0;
|
||||
}
|
||||
|
||||
.icon--shangyibu {
|
||||
font-size: 2.5rem;
|
||||
font-weight: bold;
|
||||
color: #030303;
|
||||
}
|
||||
|
||||
.email_last_step_content {
|
||||
margin-left: 1rem;
|
||||
font-size: 2.2rem;
|
||||
font-family: PingFang SC;
|
||||
font-weight: bold;
|
||||
color: #030303;
|
||||
}
|
||||
|
||||
.tip_content {
|
||||
font-size: 1.3rem;
|
||||
font-weight: bold;
|
||||
color: #343579;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.email_last_step_des {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 2.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
|
||||
.sent_email_content {
|
||||
font-size: 1.8rem;
|
||||
font-weight: bold;
|
||||
color: #a5b0c2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -211,7 +211,6 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent, h, ref, computed, reactive, toRefs, inject,provide,nextTick,createVNode,onBeforeUnmount, toRef} from "vue";
|
||||
// import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import CollectionModal from "@/component/HomePage/collectionModal.vue";
|
||||
import NewCollectionReview from "@/component/HomePage/NewCollectionReview.vue";
|
||||
import productImg from "@/component/HomePage/productImg.vue";
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
:get-container="() => $refs.renew"
|
||||
v-model:visible="renewModel"
|
||||
:footer="null"
|
||||
:width="pageWidth"
|
||||
width="130rem"
|
||||
height="auto"
|
||||
:maskClosable="false"
|
||||
:centered="true"
|
||||
@@ -27,80 +27,136 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="renewContent">
|
||||
<div class="generalModelTitle">
|
||||
{{ $t('Renew.title') }}
|
||||
<div class="left">
|
||||
<div class="title">Unlock the Pro Advantage</div>
|
||||
<div class="content">
|
||||
<div class="benefits">
|
||||
<div>Benefits</div>
|
||||
<div class="contrast">
|
||||
<div>Free</div>
|
||||
<div>PRO</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefitsItem">
|
||||
<div class="describe">
|
||||
<div class="icon">
|
||||
<img src="https://storage.googleapis.com/chatapp-website-assets/stars.webp" >
|
||||
</div>
|
||||
<div class="text">
|
||||
<p class="title">GPT-4o - DeepSeek-R1 - Gemini Pro and more</p>
|
||||
<p class="info">More accurate answers with multiple latest AI models</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contrast">
|
||||
<div>√</div>
|
||||
<div>×</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefitsItem">
|
||||
<div class="describe">
|
||||
<div class="icon">
|
||||
<img src="https://storage.googleapis.com/chatapp-website-assets/stars.webp" >
|
||||
</div>
|
||||
<div class="text">
|
||||
<p class="title">GPT-4o - DeepSeek-R1 - Gemini Pro and more</p>
|
||||
<p class="info">More accurate answers with multiple latest AI models</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contrast">
|
||||
<div>√</div>
|
||||
<div>×</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefitsItem">
|
||||
<div class="describe">
|
||||
<div class="icon">
|
||||
<img src="https://storage.googleapis.com/chatapp-website-assets/stars.webp" >
|
||||
</div>
|
||||
<div class="text">
|
||||
<p class="title">GPT-4o - DeepSeek-R1 - Gemini Pro and more</p>
|
||||
<p class="info">More accurate answers with multiple latest AI models</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contrast">
|
||||
<div>√</div>
|
||||
<div>×</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="benefitsItem">
|
||||
<div class="describe">
|
||||
<div class="icon">
|
||||
<img src="https://storage.googleapis.com/chatapp-website-assets/stars.webp" >
|
||||
</div>
|
||||
<div class="text">
|
||||
<p class="title">GPT-4o - DeepSeek-R1 - Gemini Pro and more</p>
|
||||
<p class="info">More accurate answers with multiple latest AI models</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contrast">
|
||||
<div>√</div>
|
||||
<div>×</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="renew_detail">
|
||||
<div class="name generalModelTitle">{{ current?.title }}</div>
|
||||
<div class="price_box">
|
||||
<div class="price">
|
||||
<sub>$</sub>
|
||||
{{ current?.price[current?.type] }} <span>{{ current?.unit[current?.type] }}</span>
|
||||
</div>
|
||||
<div class="type" v-if="current.typeList.length > 1">
|
||||
<label>
|
||||
<input name="pric" type="radio" value="monthly" v-model="current.type" @change="setPricType('monthly')">
|
||||
{{ $t('Renew.Monthly') }}
|
||||
</label>
|
||||
<label>
|
||||
<input name="pric" type="radio" value="year" v-model="current.type" @change="setPricType('year')">
|
||||
{{ $t('Renew.Yearly') }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="type promotion">
|
||||
<div class="text">{{ $t('Renew.promotionCode') }}:</div>
|
||||
<div class="succeed" v-show="promotionData.error == 'true'">
|
||||
{{promotionData.code}}
|
||||
<i class="fi fi-sr-times-hexagon" @click="clearPromotionCode"></i>
|
||||
<div class="right">
|
||||
<div class="title">
|
||||
{{ $t('Renew.title') }}
|
||||
</div>
|
||||
<div class="info">Get started today for unlimited access!</div>
|
||||
<div class="content">
|
||||
<div class="productItem" :class="{active:item.price == current.price,sellWell:item.sellWell}" v-for="item in personage" :key="item.price" @click="setPromotionData(item)">
|
||||
<div class="popular" v-show="item.sellWell">MOST POPULAR</div>
|
||||
<div class="priceBox">
|
||||
<div class="left">
|
||||
<p class="productType">1 {{ item.type.label }}</p>
|
||||
<p class="price">${{ item.price }}</p>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="promotion">
|
||||
<div class="succeed" v-show="item.promotionData.error == 'true'">
|
||||
{{item.promotionData.code}}
|
||||
<i class="fi fi-sr-times-hexagon" @click="clearPromotionCode"></i>
|
||||
</div>
|
||||
<div class="input" @click.stop v-show="!item.promotionData.error || item.promotionData.error == 'false'">
|
||||
<input type="text" :placeholder="$t('Renew.promotionCode')" v-model="item.promotionData.code">
|
||||
<div style="cursor: pointer;" @click="examine(item)">{{ $t('Renew.use') }}</div>
|
||||
</div>
|
||||
<div class="error" v-show="item.promotionData.error == 'false'">{{item.promotionData.str}}</div>
|
||||
</div>
|
||||
<p class="discountsPrice" v-show="item.promotionData.price" style="text-align: center;">${{ item.promotionData.price }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input" v-show="!promotionData.error || promotionData.error == 'false'">
|
||||
<input type="text" v-model="promotionData.code">
|
||||
<div style="cursor: pointer;" @click="examine">{{ $t('Renew.use') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="payment">
|
||||
<div class="allocation">
|
||||
<div class="selectType">
|
||||
<div class="text">{{ $t('Renew.Payment') }}:</div>
|
||||
<label>
|
||||
<input name="payment" type="radio" value="CreditCard" v-model="current.PaymentType" @change="setPaymentType('CreditCard')">
|
||||
{{ $t('Renew.CreditCard') }}
|
||||
</label>
|
||||
<label>
|
||||
<input name="payment" type="radio" value="Alipay" v-model="current.PaymentType" @change="setPaymentType('Alipay')">
|
||||
{{ $t('Renew.Alipay') }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="error" v-show="promotionData.error == 'false'">{{promotionData.str}}</div>
|
||||
</div>
|
||||
<div class="type payment">
|
||||
<div class="text">{{ $t('Renew.Payment') }}:</div>
|
||||
<label>
|
||||
<input name="payment" type="radio" value="CreditCard" v-model="current.PaymentType" @change="setPaymentType('CreditCard')">
|
||||
{{ $t('Renew.CreditCard') }}
|
||||
</label>
|
||||
<label>
|
||||
<input name="payment" type="radio" value="Alipay" v-model="current.PaymentType" @change="setPaymentType('Alipay')">
|
||||
{{ $t('Renew.Alipay') }}
|
||||
</label>
|
||||
<div class="gallery_btn gallery_btn_radius" @click="payment">
|
||||
Continue
|
||||
</div>
|
||||
<!-- <div class="autoRenewal">
|
||||
<label>
|
||||
{{ current.autoRenewal.text }} :
|
||||
<a-switch v-model:checked="current.autoRenewal.value" />
|
||||
</label>
|
||||
</div> -->
|
||||
<div class="info">{{ current?.info }}</div>
|
||||
<div class="payMethod_payAffirm_clause" ref="labelDisclaimer">
|
||||
<label>
|
||||
<input type="checkbox" v-model="clause">
|
||||
<span class="generalModelDescription">{{ $t('upgradePlan.policy1') }}<a href="https://code-create.com.hk/aida-terms-and-conditions/" target="_blank">{{ $t('upgradePlan.policy2') }}</a>{{ $t('upgradePlan.policy3') }}<a href="https://code-create.com.hk/aida-subscription-agreement/" target="_blank">{{ $t('upgradePlan.policy4') }}</a>. *</span>
|
||||
</label>
|
||||
</div>
|
||||
<!-- <div class="paySecure">
|
||||
<svg data-v-4715f595="" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 17" class="shield-icon"><path fill="#4AA181" stroke="#4AA181" stroke-width=".395" d="M7.44.957 1.914 3.398a1.38 1.38 0 0 0-.822 1.256v3.69c0 1.648.443 3.257 1.218 4.667 1.577 2.154 3.835 3.222 5.986 3.222 2.152 0 4.206-1.069 5.387-3.21a9.7 9.7 0 0 0 1.225-4.679v-3.69a1.38 1.38 0 0 0-.822-1.256L8.56.957zm0 0h.001m-.001 0h.001m0 0c.351-.158.758-.159 1.119 0z"></path><g clip-path="url(#a)"><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.184" d="M10.634 6.563 7.016 10.18 5.37 8.536"></path></g><defs><clipPath id="a"><path fill="#fff" d="M4.055 4.586h7.895v7.895H4.055z"></path></clipPath></defs></svg>
|
||||
<span>Pay safe & secure </span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="gallery_btn gallery_btn_radius" @click="payment">{{ $t('Renew.SubscribeNow') }}</div>
|
||||
</div>
|
||||
<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 class="mark_loading" v-show="isShowMark_">
|
||||
@@ -140,35 +196,65 @@ export default defineComponent({
|
||||
})
|
||||
let payMethodData = reactive({
|
||||
clause:false,
|
||||
labelDisclaimer:null,
|
||||
labelDisclaimer:null as any,
|
||||
newWindow:null as any,
|
||||
isShowMark:false,
|
||||
isShowMark_:false,
|
||||
})
|
||||
let renewData = reactive({
|
||||
promotionData:{
|
||||
code:'',
|
||||
error:'',
|
||||
str:'',
|
||||
oldPrice:'',
|
||||
},
|
||||
personage:computed(()=>{
|
||||
return {
|
||||
title:t('Renew.PersonalVersion'),
|
||||
price:{
|
||||
monthly:'500',
|
||||
year:'5,000',
|
||||
|
||||
personage:[
|
||||
{
|
||||
price:'500',
|
||||
sellWell:true,
|
||||
activity:false,//活动打折
|
||||
type:{
|
||||
value:'Month',
|
||||
label:'Month',
|
||||
},
|
||||
PaymentType:'',
|
||||
promotionData:{
|
||||
code:'',
|
||||
error:'',
|
||||
str:'',
|
||||
price:'',
|
||||
},
|
||||
},
|
||||
unit:{
|
||||
monthly:t('Renew.HKDMonth'),
|
||||
year:t('Renew.HKDYear'),
|
||||
{
|
||||
price:'5,000',
|
||||
sellWell:false,
|
||||
activity:false,//活动打折
|
||||
typeValue:'year',
|
||||
type:{
|
||||
value:'Year',
|
||||
label:'Year',
|
||||
},
|
||||
PaymentType:'',
|
||||
promotionData:{
|
||||
code:'',
|
||||
error:'',
|
||||
str:'',
|
||||
price:'',
|
||||
},
|
||||
},
|
||||
type:'monthly',
|
||||
PaymentType:'',
|
||||
typeList:['monthly','year'],
|
||||
info:'Tax, VAT not included.',
|
||||
}
|
||||
}),
|
||||
],
|
||||
// personage:computed(()=>{
|
||||
// return {
|
||||
// title:t('Renew.PersonalVersion'),
|
||||
// price:{
|
||||
// monthly:'500',
|
||||
// year:'5,000',
|
||||
// },
|
||||
// unit:{
|
||||
// monthly:t('Renew.HKDMonth'),
|
||||
// year:t('Renew.HKDYear'),
|
||||
// },
|
||||
// type:'monthly',
|
||||
// PaymentType:'',
|
||||
// typeList:['monthly','year'],
|
||||
// info:'Tax, VAT not included.',
|
||||
// }
|
||||
// }),
|
||||
firm:computed(()=>{
|
||||
return {
|
||||
title:'Education Edition',
|
||||
@@ -185,6 +271,7 @@ export default defineComponent({
|
||||
},
|
||||
typeList:['year'],
|
||||
info:'Customised plan',
|
||||
|
||||
}
|
||||
}),
|
||||
education:computed(()=>{
|
||||
@@ -212,14 +299,11 @@ export default defineComponent({
|
||||
})
|
||||
const init = ()=>{
|
||||
renew.renewModel = true
|
||||
renewData.current = renewData.personage
|
||||
renewData.current = renewData.personage[0]
|
||||
}
|
||||
const cancelDsign = () => {
|
||||
renew.renewModel = false
|
||||
}
|
||||
const setPricType=(str:any)=>{
|
||||
renewData.current.type = str
|
||||
}
|
||||
const setPaymentType = (str:any)=>{
|
||||
renewData.current.PaymentType = str
|
||||
}
|
||||
@@ -234,10 +318,7 @@ export default defineComponent({
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
let subscribeType = 'Year'
|
||||
if(!renewData.current.PaymentType)return message.info(t('Renew.PleaseSelectPayment'))
|
||||
if(renewData.current.type == 'monthly')subscribeType= 'Month'
|
||||
// let data = {
|
||||
// autoRenewal:renewData.current.PaymentType != 'Alipay',//one_time为不自动续费
|
||||
// productName:'Subscription',
|
||||
@@ -249,9 +330,9 @@ export default defineComponent({
|
||||
productName:'Subscription',
|
||||
quantity:1,
|
||||
returnUrl:url,
|
||||
subscribeType:subscribeType,//yearly为年费,monthly为月费
|
||||
subscribeType:renewData.current.type.value,//yearly为年费,monthly为月费
|
||||
wallet:'ALIPAYHK',
|
||||
promotionCode:renewData.promotionData.code,
|
||||
promotionCode:renewData.current.promotionData.code,
|
||||
}
|
||||
let httpsUrl = Https.httpUrls.payStripe
|
||||
payMethodData.isShowMark_ = true
|
||||
@@ -288,37 +369,41 @@ export default defineComponent({
|
||||
renew.renewModel = false
|
||||
setPaidBack()
|
||||
}
|
||||
const examine = ()=>{
|
||||
const examine = (item:any)=>{
|
||||
// renewData.promotionData.error
|
||||
let price = renewData.current?.price[renewData.current?.type]
|
||||
let price = item?.price
|
||||
const normalNumber = Number(price.replace(/,/g, ''));
|
||||
if(!renewData.promotionData.code){
|
||||
if(!item.promotionData.code){
|
||||
return
|
||||
}
|
||||
let data = {
|
||||
promotionCode:renewData.promotionData.code,
|
||||
promotionCode:item.promotionData.code,
|
||||
price:normalNumber,
|
||||
}
|
||||
Https.axiosGet(Https.httpUrls.checkCoupon,{params:data}).then((rv:any)=>{
|
||||
if(rv){
|
||||
if(rv.status == "valid"){
|
||||
renewData.promotionData.error = 'true'
|
||||
renewData.promotionData.oldPrice = renewData.current?.price[renewData.current?.type]
|
||||
renewData.current.price[renewData.current.type] = (Number(rv.discountedPrice)).toLocaleString()
|
||||
|
||||
}else{
|
||||
renewData.promotionData.error = 'false'
|
||||
renewData.promotionData.str = rv.message
|
||||
}
|
||||
renewData.personage.forEach((personageItem:any)=>{
|
||||
if(personageItem.price == item.price){
|
||||
if(rv.status == "valid"){
|
||||
item.promotionData.error = 'true'
|
||||
item.promotionData.price = (Number(rv.discountedPrice)).toLocaleString()
|
||||
}else{
|
||||
item.promotionData.error = 'false'
|
||||
item.promotionData.str = rv.message
|
||||
}
|
||||
}
|
||||
})
|
||||
}else{
|
||||
}
|
||||
})
|
||||
}
|
||||
const clearPromotionCode = ()=>{
|
||||
renewData.promotionData.error = '';
|
||||
renewData.promotionData.code = ''
|
||||
renewData.current.price[renewData.current.type] = renewData.promotionData.oldPrice
|
||||
renewData.promotionData.oldPrice = ''
|
||||
renewData.current.promotionData.error = '';
|
||||
renewData.current.promotionData.code = ''
|
||||
renewData.current.promotionData.price = ''
|
||||
}
|
||||
const setPromotionData = (item:any)=>{
|
||||
renewData.current = item
|
||||
}
|
||||
return{
|
||||
store,
|
||||
@@ -327,13 +412,13 @@ export default defineComponent({
|
||||
...toRefs(payMethodData),
|
||||
init,
|
||||
cancelDsign,
|
||||
setPricType,
|
||||
setPaymentType,
|
||||
payment,
|
||||
setPaidBack,
|
||||
completePayment,
|
||||
examine,
|
||||
clearPromotionCode,
|
||||
setPromotionData
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -350,159 +435,332 @@ export default defineComponent({
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.renew {
|
||||
:deep(.ant-modal-body){
|
||||
padding: 0;
|
||||
}
|
||||
.renewContent{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.generalModelTitle{
|
||||
text-align: center;
|
||||
}
|
||||
.renew_detail{
|
||||
width: 58rem;
|
||||
height: 60rem;
|
||||
// height: 53rem;
|
||||
border-radius: 3rem;
|
||||
margin-bottom: 5rem;
|
||||
border: 2px solid #000;
|
||||
padding: 6rem 3rem 5rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.price_box{
|
||||
display: flex;
|
||||
border-radius: 3rem;
|
||||
overflow: hidden;
|
||||
> .left,> .right{
|
||||
> .title{
|
||||
text-align: center;
|
||||
font-size: 3.2rem;
|
||||
font-weight: 600;
|
||||
line-height: 4rem;
|
||||
}
|
||||
> .info{
|
||||
text-align: center;
|
||||
opacity: .6;
|
||||
font-weight: 400;
|
||||
margin-top: .8rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
> .content{
|
||||
margin-top: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
.price{
|
||||
font-size: 6rem;
|
||||
sub{
|
||||
font-size: 2rem;
|
||||
top: -3rem;
|
||||
}
|
||||
span{
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
> .left{
|
||||
width: 60%;
|
||||
background: #0f0f0f;
|
||||
color: #fff;
|
||||
padding: 4rem 3.2rem;
|
||||
> .title{
|
||||
opacity: .6;
|
||||
}
|
||||
.type{
|
||||
display: flex;
|
||||
&.promotion{
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
> .succeed{
|
||||
padding: 1rem;
|
||||
> .content{
|
||||
> .benefits,> .benefitsItem{
|
||||
display: flex;
|
||||
> .contrast{
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 1rem;
|
||||
background: #eee;
|
||||
> i{
|
||||
> div{
|
||||
width: 8rem;
|
||||
text-align: center;
|
||||
}
|
||||
> div:nth-child(1){
|
||||
margin-right: 2.4rem;
|
||||
opacity: .5;
|
||||
}
|
||||
> div:nth-child(2){
|
||||
opacity: 1;
|
||||
color: #38c793;
|
||||
text-shadow: 0 4px 27.1px #38c793b3;
|
||||
}
|
||||
}
|
||||
}
|
||||
> .benefits{
|
||||
> div:nth-child(1){
|
||||
opacity: .5;
|
||||
}
|
||||
font-weight: 600;
|
||||
font-size: 2rem;
|
||||
margin: 1rem 0;
|
||||
padding: 0 1.6rem;
|
||||
}
|
||||
> .benefitsItem{
|
||||
border: 1px solid #27272a;
|
||||
border-radius: 2.4rem;
|
||||
margin-bottom: 1.6rem;
|
||||
padding: 1.6rem;
|
||||
> .describe{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> .icon{
|
||||
border: 1px solid #27272a;
|
||||
background: linear-gradient(#1d1d1d,#000);
|
||||
border-radius: 1.4rem;
|
||||
margin-right: 1.6rem;
|
||||
padding: 1.4rem;
|
||||
> img{
|
||||
width: 3.5rem;
|
||||
height: 3.5rem;
|
||||
}
|
||||
}
|
||||
> .text{
|
||||
> p{
|
||||
margin: 0;
|
||||
}
|
||||
> .title{
|
||||
font-size: 1.8rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
> .info{
|
||||
font-weight: 400;
|
||||
margin-top: .4rem;
|
||||
font-size: 1.6rem;
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
> .right{
|
||||
width: 40%;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 4rem 3.2rem;
|
||||
> .content{
|
||||
margin-top: 2rem;
|
||||
> .productItem{
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 1rem;
|
||||
overflow: hidden;
|
||||
border: 2px solid #eaecf0;
|
||||
|
||||
> .popular{
|
||||
background: #2d9f75;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
padding: .8rem 1.2rem;
|
||||
}
|
||||
> .priceBox{
|
||||
height: 11rem;
|
||||
padding: 1rem 1.2rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
> .left,> .right{
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
> .discountsPrice ,> .price{
|
||||
font-size: 1.8rem;
|
||||
margin-top: .4rem;
|
||||
opacity: .4;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
> .left{
|
||||
> p:nth-child(1){
|
||||
font-size: 2rem;
|
||||
opacity: .7;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
> .right{
|
||||
> .promotion{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
> .text{
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
> .succeed{
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 1rem;
|
||||
background: #eee;
|
||||
// color: #fff;
|
||||
// font-weight: 600;
|
||||
> i{
|
||||
display: flex;
|
||||
margin-left: 1rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
> .input{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 2rem;
|
||||
border: 2px solid #000;
|
||||
overflow: hidden;
|
||||
padding: 0 1rem;
|
||||
input{
|
||||
border: none;
|
||||
height: 3rem;
|
||||
width: 10rem;
|
||||
font-size: 1.2rem;
|
||||
background: rgba(0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
> .error{
|
||||
color: red;
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
> .discountsPrice{
|
||||
font-weight: 600;
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.active{
|
||||
background: #0ea98233;
|
||||
border: 2px solid #0ea982;
|
||||
> .priceBox{
|
||||
> .left{
|
||||
> p:nth-child(1){
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
> .right{
|
||||
> .discountsPrice{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.sellWell{
|
||||
border: 2px solid #0ea982;
|
||||
}
|
||||
}
|
||||
> .productItem:last-child{
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
}
|
||||
> .payment{
|
||||
margin-top: auto;
|
||||
> .allocation{
|
||||
// border-radius: 1rem;
|
||||
// border: 2px solid #eaecf0;
|
||||
// padding: 1rem 1.2rem;
|
||||
|
||||
> .selectType{
|
||||
display: flex;
|
||||
> .text{
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
label{
|
||||
margin-right: 1rem;
|
||||
display: flex;
|
||||
margin-left: 1rem;
|
||||
cursor: pointer;
|
||||
input{
|
||||
margin-right: .5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
> .input{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 2rem;
|
||||
border: 2px solid #000;
|
||||
overflow: hidden;
|
||||
padding: 0 1rem;
|
||||
input{
|
||||
border: none;
|
||||
height: 3rem;
|
||||
}
|
||||
}
|
||||
> .error{
|
||||
color: red;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
> .text{
|
||||
margin-right: 2rem;
|
||||
// font-weight: 600;
|
||||
}
|
||||
|
||||
label{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 3rem;
|
||||
input{
|
||||
margin-right: 1rem;
|
||||
}
|
||||
> .gallery_btn{
|
||||
width: 100%;
|
||||
margin: 2rem 0;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
&.payment{
|
||||
> .payMethod_payAffirm_clause{
|
||||
label{
|
||||
margin-right: 1rem;
|
||||
input{
|
||||
margin-right: .5rem;
|
||||
margin-right: 1rem;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
span{
|
||||
vertical-align: top;
|
||||
font-size: 1.4rem;
|
||||
a{
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.animation{
|
||||
animation: shake .3s linear;
|
||||
@keyframes shake {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
25%{
|
||||
transform: translateX(-10px);
|
||||
}
|
||||
50%{
|
||||
transform: translateX(10px);
|
||||
}
|
||||
75%{
|
||||
transform: translateX(-10px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
label:last-child{
|
||||
margin-right: 0rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.login_footer_item_text{
|
||||
text-align: center;
|
||||
margin-bottom: 1.5rem;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.login_footer_item_text:last-child{
|
||||
margin-bottom: 0rem;
|
||||
}
|
||||
.payMethod_payAffirm_clause{
|
||||
label{
|
||||
cursor: pointer;
|
||||
input{
|
||||
margin-right: 1rem;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
span{
|
||||
vertical-align: top;
|
||||
a{
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.animation{
|
||||
animation: shake .3s linear;
|
||||
@keyframes shake {
|
||||
0%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
25%{
|
||||
transform: translateX(-10px);
|
||||
}
|
||||
50%{
|
||||
transform: translateX(10px);
|
||||
}
|
||||
75%{
|
||||
transform: translateX(-10px);
|
||||
}
|
||||
100%{
|
||||
transform: translateX(0px);
|
||||
}
|
||||
}
|
||||
// > .paySecure{
|
||||
// display: flex;
|
||||
// margin-top: 1rem;
|
||||
// > svg{
|
||||
// width: 1.6rem;
|
||||
// height: 1.6rem;
|
||||
// }
|
||||
// > span{
|
||||
// font-weight: 600;
|
||||
// font-size: 1.4rem;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
// .login_footer_item_text{
|
||||
// text-align: center;
|
||||
// margin-bottom: 1.5rem;
|
||||
// text-decoration: underline;
|
||||
// }
|
||||
// .login_footer_item_text:last-child{
|
||||
// margin-bottom: 0rem;
|
||||
// }
|
||||
}
|
||||
.mark_loading{
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
background: #fff;
|
||||
border-radius: 3rem;
|
||||
.mark_loading_title{
|
||||
font-size: 3rem;
|
||||
// text-decoration: underline;
|
||||
font-weight: 600;
|
||||
margin-bottom: 2rem;
|
||||
overflow: hidden;
|
||||
// color: #fff;
|
||||
}
|
||||
.mark_loading_intro{
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<i v-else class="fi fi-br-check" @click="editChek('brandSlogan')"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex:1;text-align: right;" v-show="imgList.length > 0">
|
||||
<div style="flex:1;text-align: right;" v-show="fall?.list?.length > 0">
|
||||
<div class="gallery_btn" v-show="schedule.num == 1||(schedule.num == 0 && !schedule.state)" @click="compute">Compute</div>
|
||||
<div v-show="schedule.num != 1">
|
||||
<a-progress style="width:20rem;" :percent="schedule.num * 100" size="small" :showInfo="false" />
|
||||
@@ -139,7 +139,6 @@ export default defineComponent({
|
||||
upload:{},
|
||||
token:getCookie("token"),
|
||||
isShowMark:false,
|
||||
imgList:[],
|
||||
total:0,
|
||||
pageSize:10,
|
||||
currentPage:1,
|
||||
|
||||
@@ -83,7 +83,7 @@ export default defineComponent({
|
||||
setup(){
|
||||
let list = ref([])
|
||||
let wait_list = ref([])
|
||||
let width = ref(250)
|
||||
let width = ref(300)
|
||||
let num_x = ref(1)
|
||||
let gap_x = ref(0)
|
||||
let gap_y = ref(0)
|
||||
|
||||
@@ -689,7 +689,8 @@ export default {
|
||||
jsContent2:'The current network cannot load Google',
|
||||
},
|
||||
Renew:{
|
||||
title:'Select The Best Plan For Your Needs',
|
||||
// title:'Select The Best Plan For Your Needs',
|
||||
title:'Find Your Ideal Plan',
|
||||
Monthly:'Monthly',
|
||||
Yearly:'Yearly',
|
||||
promotionCode:'Promotion code',
|
||||
|
||||
@@ -255,7 +255,7 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
*/
|
||||
state.userDetail.affiliate = data.affiliate
|
||||
state.userDetail.systemUser = data.systemUser
|
||||
// state.userDetail.systemUser = 3
|
||||
state.userDetail.systemUser = 3
|
||||
// 身份列表1:可以使用aida系统,2:可以使用affiliate页面,3:系统管理员用户
|
||||
state.userDetail.systemList = []
|
||||
if(data.systemUser != 0)state.userDetail.systemList.push(1)
|
||||
|
||||
@@ -231,4 +231,114 @@ const projectList = {
|
||||
}
|
||||
],
|
||||
}
|
||||
export {projectList}
|
||||
const openTypeList = (t)=>{
|
||||
return {
|
||||
tools:{
|
||||
icon:'fi-rr-magic-wand',
|
||||
label:'Advanced tools',
|
||||
value:'advancedTools',
|
||||
list:[
|
||||
{
|
||||
icon:'',
|
||||
label:'All',
|
||||
value:'all',
|
||||
}
|
||||
]
|
||||
},
|
||||
library:{
|
||||
icon:'fi-rr-followcollection',
|
||||
label:'Library',
|
||||
value:'library',
|
||||
router:'/home/library',
|
||||
list:[
|
||||
{
|
||||
icon:'fi-rr-grid',
|
||||
label:t('LibraryPage.Moodboard'),
|
||||
value:'Moodboard',
|
||||
router:'library=Moodboard'
|
||||
},{
|
||||
icon:'fi-rs-objects-column',
|
||||
label:t('LibraryPage.Prints'),
|
||||
value:'Printboard',
|
||||
router:'library=Printboard'
|
||||
},{
|
||||
icon:'icon iconfont icon-a-waitao_changkuanwaitao11x',
|
||||
label:t('LibraryPage.Sketches'),
|
||||
value:'Sketchboard',
|
||||
router:'library=Sketchboard'
|
||||
},{
|
||||
icon:'fi-ss-puzzle-piece',
|
||||
label:t('LibraryPage.DesignElements'),
|
||||
value:'DesignElements',
|
||||
router:'library=DesignElements'
|
||||
},{
|
||||
icon:'fi-rs-people',
|
||||
label:t('LibraryPage.Mannequins'),
|
||||
value:'Models',
|
||||
router:'library=Models'
|
||||
},{
|
||||
icon:'fi-ss-gem',
|
||||
label:t('LibraryPage.brandDNA'),
|
||||
value:'MyBrand',
|
||||
router:'library=MyBrand'
|
||||
},
|
||||
]
|
||||
},
|
||||
history:{
|
||||
icon:'fi-br-time-past',
|
||||
label:'History',
|
||||
value:'history',
|
||||
list:[
|
||||
{
|
||||
icon:'',
|
||||
label:'All',
|
||||
value:'all',
|
||||
}
|
||||
]
|
||||
},
|
||||
gallery:{
|
||||
icon:'fi-rr-gallery',
|
||||
label:'Gallery',
|
||||
value:'works',
|
||||
router:'/home/works',
|
||||
list:[
|
||||
{
|
||||
icon:'',
|
||||
label:'All',
|
||||
value:'all',
|
||||
router:'works=all'
|
||||
},{
|
||||
icon:'',
|
||||
label:'Like Works',
|
||||
value:'favoriteWorks',
|
||||
router:'works=favoriteWorks'
|
||||
},{
|
||||
icon:'',
|
||||
label:'My Works',
|
||||
value:'myWorks',
|
||||
router:'works=myWorks'
|
||||
},{
|
||||
icon:'',
|
||||
label:'New Year 2025',
|
||||
value:'NewYear_2025',
|
||||
router:'works=NewYear_2025'
|
||||
},
|
||||
]
|
||||
},
|
||||
event:{
|
||||
icon:'fi-rr-calendar-star',
|
||||
label:'Event',
|
||||
value:'event',
|
||||
router:'/home/events',
|
||||
list:[
|
||||
{
|
||||
icon:'',
|
||||
label:'All',
|
||||
value:'all',
|
||||
router:''
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
}
|
||||
export {projectList,openTypeList}
|
||||
@@ -305,6 +305,8 @@ export default defineComponent({
|
||||
.administrator_page_right{
|
||||
flex: 1;
|
||||
width: 80%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.administrator_page_right_header{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
@@ -1,102 +1,158 @@
|
||||
<template>
|
||||
<div class="homeMain_max Guide_1_16_1">
|
||||
<header class="homeMain_heade">
|
||||
<div class="homeMain_right_content">
|
||||
<div class="homeMain_user">
|
||||
<div class="homeMain_user_icon" @click="openAccount">
|
||||
<img :src="userDetail.avatar" alt="">
|
||||
<div class="homeMain_max">
|
||||
<div class="leftBox">
|
||||
<div class="left">
|
||||
<div class="title">
|
||||
<span>AiDA</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="2rem" height="2rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
||||
</div>
|
||||
<div class="newObj marginT2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
||||
<p>New Chat</p>
|
||||
</div>
|
||||
<div class="navList marginT2">
|
||||
<div class="tools list" v-for="item in openTypeList" :class="{active:openType == item.value}">
|
||||
<div class="titleBox" @click="setOpenType(item.value)">
|
||||
<div class="left">
|
||||
<i :class="['fi',item.icon]"></i>
|
||||
<span>{{item.label}}</span>
|
||||
</div>
|
||||
<div class="right">
|
||||
<i class="fi fi-br-angle-small-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detailBox">
|
||||
<div class="detail" v-show="openType == item.value">
|
||||
<div class="detailItem" v-for="childItem in item.list" @click="setRouter(item,childItem)" :class="{active:openTypeChild == childItem.value}">
|
||||
<i v-show="childItem.icon" :class="['fi',childItem.icon]"></i>
|
||||
<span>{{ childItem.label }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="homeMain_user_detail">
|
||||
</div>
|
||||
<div class="navListBottom">
|
||||
<div class="tools marginT2 list language" :class="{active:isLanguage}">
|
||||
<div class="titleBox" @click="()=>isLanguage = !isLanguage">
|
||||
<div class="left">
|
||||
<i class="fi fi-br-angle-small-down"></i>
|
||||
<span>Advanced Tools</span>
|
||||
</div>
|
||||
<div class="right">
|
||||
<i class="fi fi-br-angle-small-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detailBox">
|
||||
<div class="detail" v-show="isLanguage">
|
||||
<div class="detailItem">
|
||||
<!-- <i class="fi fi-br-angle-small-down"></i> -->
|
||||
<span>AI Image Generator</span>
|
||||
</div>
|
||||
<div class="detailItem active">
|
||||
<svg data-v-2396c87a="" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14" class="dark-icon sidebar-lang-icon" width="20" height="20"><path stroke="#52525b" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.167" d="M11.667 3.5 5.25 9.917 2.334 7"></path></svg>
|
||||
<span>AI Image Generator</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="userDetail.systemUser == 0 || userDetail.systemUser == 3" @click="openUpgradeToPro" class="gallery_btn gallery_btn_radius" style="width: 100%;">Upgrade to Pro</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightBox">
|
||||
<div class="right">
|
||||
<div class="user">
|
||||
<div class="homeMain_user">
|
||||
<div class="homeMain_user_icon" @click="openAccount">
|
||||
<img :src="userDetail.avatar" alt="">
|
||||
</div>
|
||||
<div v-if="userDetail.systemUser == 3" class="username">{{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
|
||||
<div v-else class="username">{{$t('Header.hello')}}@{{ userDetail.userName }}</div>
|
||||
<div class="homeMain_user_detail_attention">
|
||||
<div class="attention_item">
|
||||
<!-- 点击事件就用下面的div -->
|
||||
<!-- <div class="attention_item attention_item_active"> -->
|
||||
<div>{{ userDetail?.followeeCount }}</div>
|
||||
<span>{{$t('account.Follow')}}</span>
|
||||
<div class="homeMain_user_detail">
|
||||
<div class="homeMain_user_icon" @click="openAccount">
|
||||
<img :src="userDetail.avatar" alt="">
|
||||
</div>
|
||||
<div class="attention_item">
|
||||
<div>{{ userDetail?.followerCount }}</div>
|
||||
<span>{{$t('account.Fans')}}</span>
|
||||
</div>
|
||||
<!-- <div class="attention_item">
|
||||
<div>22</div>
|
||||
<span>作品数</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="homeMain_subscribe">
|
||||
<div>
|
||||
<span class="font">Status</span>
|
||||
<span v-if="userDetail.timeData.isExpiration" class="stateSucsess font">Valid <i class="fi fi-ss-check-circle"></i></span>
|
||||
<span v-else class="stateError font">Expire <i class="fi fi-ss-check-circle"></i></span>
|
||||
<span class="time">{{ userDetail.timeData.text }}</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 v-if="userDetail.systemUser == 3" class="username">{{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
|
||||
<div v-else class="username">{{$t('Header.hello')}}@{{ userDetail.userName }}</div>
|
||||
<div class="homeMain_user_detail_attention">
|
||||
<div class="attention_item">
|
||||
<!-- 点击事件就用下面的div -->
|
||||
<div>{{ userDetail?.followeeCount }}</div>
|
||||
<span>{{$t('account.Follow')}}</span>
|
||||
</div>
|
||||
<div class="attention_item">
|
||||
<div>{{ userDetail?.followerCount }}</div>
|
||||
<span>{{$t('account.Fans')}}</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 class="homeMain_subscribe">
|
||||
<div>
|
||||
<span class="font">Status</span>
|
||||
<span v-if="userDetail.timeData.isExpiration" class="stateSucsess font">Valid <i class="fi fi-ss-check-circle"></i></span>
|
||||
<span v-else class="stateError font">Expire <i class="fi fi-ss-check-circle"></i></span>
|
||||
<span class="time">{{ userDetail.timeData.text }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<router-link class="select_item" v-if="userDetail.systemList.indexOf(3) >= 0" :to="`/administrator`">
|
||||
<span class="icon iconfont icon-yonghu"></span>
|
||||
<span class="select_item_des">Administrator</span>
|
||||
</router-link>
|
||||
<router-link class="select_item" :to="`/Affiliate`" v-if="userDetail.systemList.indexOf(2) >= 0">
|
||||
<span class="icon iconfont icon-yonghu"></span>
|
||||
<span class="select_item_des">Affiliate</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 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="userDetail.systemList.indexOf(3) >= 0" :to="`/administrator`">
|
||||
<span class="icon iconfont icon-yonghu"></span>
|
||||
<span class="select_item_des">Administrator</span>
|
||||
</router-link>
|
||||
<router-link class="select_item" :to="`/Affiliate`" v-if="userDetail.systemList.indexOf(2) >= 0">
|
||||
<span class="icon iconfont icon-yonghu"></span>
|
||||
<span class="select_item_des">Affiliate</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>
|
||||
<div class="router">
|
||||
<router-view v-if="!getLangIsShowMark" @setTask="setTask" :getLangIsShowMark="getLangIsShowMark">
|
||||
</router-view>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<header class="homeMain_heade" v-show="false">
|
||||
<div class="homeMain_right_content">
|
||||
|
||||
<div
|
||||
class="trialApproval button_second credits hideChecked"
|
||||
>
|
||||
{{$t('Header.Credits')}}:
|
||||
<span :title="credits">
|
||||
<!-- <div>{{ String(credits.value[credits.value.legnth-1]) }}</div> -->
|
||||
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
|
||||
<div v-for="numItem in 10">{{ numItem-1 }}</div>
|
||||
</div>
|
||||
</span>
|
||||
<i @click="getCredits" class="fi fi-br-refresh" :class="[activeCredits?'active':'']"></i>
|
||||
<!-- <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">{{$t('Header.SubscribeNow')}}</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>
|
||||
<navRouter :routerList="navRouterList"></navRouter>
|
||||
<!-- <navRouter :routerList="navRouterList"></navRouter> -->
|
||||
<div class="homeMain_right">
|
||||
<div class="trialApproval credits message">
|
||||
<div class="message_iconItem">
|
||||
@@ -114,7 +170,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <Habit></Habit> -->
|
||||
</div>
|
||||
|
||||
@@ -122,16 +177,8 @@
|
||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||
<TaskPage ref="TaskPage"></TaskPage>
|
||||
</header>
|
||||
<div class="homeMain_content_body">
|
||||
<!-- <router-view v-slot="{ Component }" @setTask = "setTask">
|
||||
<keep-alive>
|
||||
<component :key="$route.name" :is="Component" v-if="$route.meta.keepAlive"/>
|
||||
</keep-alive>
|
||||
<component :key="$route.name" :is="Component" v-if="!$route.meta.keepAlive"/>
|
||||
</router-view> -->
|
||||
<router-view v-if="!getLangIsShowMark" @setTask="setTask" :getLangIsShowMark="getLangIsShowMark">
|
||||
</router-view>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mark_loading" v-show="getLangIsShowMark">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
@@ -144,7 +191,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script >
|
||||
import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted, nextTick } from "vue";
|
||||
import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted, nextTick, watch } from "vue";
|
||||
import { isEmail } from "@/tool/util";
|
||||
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
|
||||
import payOrder from "@/component/Pay/payOrder.vue";
|
||||
@@ -169,6 +216,8 @@ import { gsap, TweenMax,TweenLite } from "gsap";
|
||||
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
||||
import MyWs from "@/tool/webSocket";
|
||||
import MyEvent from "@/tool/myEvents";
|
||||
import { useRouter,useRoute } from 'vue-router'
|
||||
import {openTypeList} from "@/tool/listData.js";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
VerificationCodeInput,
|
||||
@@ -187,6 +236,32 @@ export default defineComponent({
|
||||
const store = useStore();
|
||||
const {t} = useI18n()
|
||||
const {locale} = useI18n()
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const homeMainData = reactive({
|
||||
openType:'',
|
||||
openTypeChild:'',
|
||||
isLanguage:false,
|
||||
openTypeList:openTypeList(t),
|
||||
})
|
||||
watch(() => route.query,
|
||||
(query, oldQuery) => {
|
||||
// if(oldQuery && query?.works == oldQuery?.works)return
|
||||
console.log(query,oldQuery,Object.keys(query)[0]);
|
||||
// homeMainData.openTypeList[Object.keys(query)[0]]
|
||||
nextTick(()=>{
|
||||
const key = Object.keys(query)?.[0]
|
||||
if(key){
|
||||
homeMainData.openType = Object.keys(query)[0]
|
||||
homeMainData.openTypeChild = query[Object.keys(query)[0]]
|
||||
}else{
|
||||
homeMainData.openType = ''
|
||||
homeMainData.openTypeChild = ''
|
||||
}
|
||||
})
|
||||
},
|
||||
{ immediate: true } // 立即触发一次以处理初始参数
|
||||
);
|
||||
let userDetail= computed(()=>{
|
||||
return store.state.UserHabit.userDetail
|
||||
})
|
||||
@@ -272,7 +347,7 @@ export default defineComponent({
|
||||
document.removeEventListener("click", closeShowOperateContent);
|
||||
}
|
||||
let renew = ref(null)
|
||||
const subscribe = ()=>{
|
||||
const openUpgradeToPro = ()=>{
|
||||
renew.value.init()
|
||||
}
|
||||
onMounted(()=>{
|
||||
@@ -301,10 +376,26 @@ export default defineComponent({
|
||||
},
|
||||
]
|
||||
})
|
||||
const setOpenType = (type)=>{
|
||||
if(homeMainData.openType == type){
|
||||
homeMainData.openType = ''
|
||||
}else {
|
||||
homeMainData.openType = type
|
||||
if(type == 'history'){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
const setRouter = (item,childItem)=>{
|
||||
let itemRouter = item.router
|
||||
if(childItem.router)itemRouter = itemRouter + '?' + childItem.router
|
||||
router.push(itemRouter)
|
||||
}
|
||||
return {
|
||||
store,
|
||||
userDetail,
|
||||
t,
|
||||
...toRefs(homeMainData),
|
||||
locale,
|
||||
isMurmur,
|
||||
credits,
|
||||
@@ -319,7 +410,9 @@ export default defineComponent({
|
||||
changeLanguage,
|
||||
closeShowOperateContent,
|
||||
renew,
|
||||
subscribe,
|
||||
openUpgradeToPro,
|
||||
setOpenType,
|
||||
setRouter,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -612,12 +705,367 @@ export default defineComponent({
|
||||
display: flex;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
flex-direction: column;
|
||||
.homeMain_content_body{
|
||||
> .leftBox{
|
||||
height: 100%;
|
||||
background: #f5f5f5;
|
||||
> .left{
|
||||
width: 26rem;
|
||||
height: 100%;
|
||||
padding: 2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.marginT2{
|
||||
margin-top: 2rem;
|
||||
}
|
||||
.list{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// padding: 1.2rem;
|
||||
max-height: 5rem;
|
||||
border-radius: 2rem;
|
||||
> .titleBox{
|
||||
padding: 1.2rem;
|
||||
display: flex;
|
||||
font-size: 1.4rem;
|
||||
cursor: pointer;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
i{
|
||||
display: flex;
|
||||
}
|
||||
> .left{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> i{
|
||||
margin-right: .8rem;
|
||||
}
|
||||
> span{
|
||||
line-height: 2.4rem;
|
||||
color: #52525b;
|
||||
transition: all .3s;
|
||||
}
|
||||
}
|
||||
> .right{
|
||||
> i{
|
||||
transition: all .3s;
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
> .left{
|
||||
> span{
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
> .detailBox{
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
flex: 1;
|
||||
> .detail{
|
||||
height: 100%;
|
||||
> .detailItem{
|
||||
cursor: pointer;
|
||||
padding: 1.2rem 1.1rem 1.2rem 2.2rem;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 400;
|
||||
margin-bottom: .4rem;
|
||||
border-radius: .8rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> i{
|
||||
margin-right: .8rem;
|
||||
display: flex;
|
||||
}
|
||||
&.active{
|
||||
background: #f5f5f5;
|
||||
}
|
||||
&:hover{
|
||||
background: #f5f5f5;
|
||||
}
|
||||
}
|
||||
> .detailItem:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.active{
|
||||
padding: 1.2rem;
|
||||
overflow: hidden;
|
||||
max-height: 100%;
|
||||
background: #00000008;
|
||||
> .titleBox{
|
||||
padding: 0;
|
||||
margin-bottom: 1.6rem;
|
||||
> .right{
|
||||
> i{
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.language{
|
||||
> .titleBox{
|
||||
padding: .8rem;
|
||||
background: #00000000;
|
||||
> .left{
|
||||
> i{
|
||||
margin-right: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
> .detailBox{
|
||||
> .detail{
|
||||
> .detailItem{
|
||||
padding: .8rem;
|
||||
> svg{
|
||||
margin-right: 2.5rem;
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
}
|
||||
> span{
|
||||
color: #111a18;
|
||||
opacity: .5;
|
||||
margin-left: 4.5rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
&.active{
|
||||
> span{
|
||||
color: #52525b;
|
||||
opacity: 1;
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
> .title{
|
||||
display: flex;
|
||||
padding: .4rem;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
> span{
|
||||
font-size: 2rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
> svg{
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
> .newObj{
|
||||
border-radius: 1.2rem;
|
||||
padding: 1.6rem 1.2rem;
|
||||
border: 1px solid #0003;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
> svg{
|
||||
margin-right: .4rem;
|
||||
width: 2.4rem;
|
||||
height: 2.4rem;
|
||||
}
|
||||
> p{
|
||||
font-size: 1.6rem;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
> .navList{
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
> .navListBottom{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
> .gallery_btn{
|
||||
margin-top: 1.2rem;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
> .rightBox{
|
||||
flex: 1;
|
||||
height: calc(100% - 20rem);
|
||||
// height: calc(100vh - 7rem);
|
||||
overflow: hidden;
|
||||
> .right{
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
> .user{
|
||||
margin-bottom: 1rem;
|
||||
.homeMain_user{
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
margin-left: auto;
|
||||
position: relative;
|
||||
.homeMain_user_icon{
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
position: relative;
|
||||
transform-origin: top;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
left: 0;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
// transition: all .3s;
|
||||
}
|
||||
.homeMain_user_detail{
|
||||
z-index: 999;
|
||||
position: absolute;
|
||||
top: calc(100% + .5rem);
|
||||
background: #fff;
|
||||
width: 32rem;
|
||||
height: auto;
|
||||
opacity: 0;
|
||||
right: 0px;
|
||||
display: none;
|
||||
// box-shadow: 0 0px 10px 1px rgba(0, 0, 0, 0.12);
|
||||
text-align: center;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
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;
|
||||
}
|
||||
.stateSucsess{
|
||||
color: #3ab45c;
|
||||
}
|
||||
.stateError{
|
||||
color: #b43a3a;
|
||||
}
|
||||
.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-left: 3.5rem;
|
||||
padding-right: 3.5rem;
|
||||
.attention_item{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.attention_item_active{
|
||||
cursor: pointer;
|
||||
}
|
||||
.attention_item_active:hover{
|
||||
color: #39215b;
|
||||
span{
|
||||
color: #39215b;
|
||||
}
|
||||
}
|
||||
div{
|
||||
font-size: 1.6rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
span{
|
||||
font-size: 1.4rem;
|
||||
color: #949eae;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
> .router{
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
padding: 0 6rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.homeMain_heade {
|
||||
@@ -702,159 +1150,7 @@ export default defineComponent({
|
||||
position: relative;
|
||||
top: 0.3rem;
|
||||
}
|
||||
.homeMain_user{
|
||||
.homeMain_user_icon{
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
position: relative;
|
||||
transform-origin: top;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
left: 0;
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
// transition: all .3s;
|
||||
}
|
||||
.homeMain_user_detail{
|
||||
position: absolute;
|
||||
top: calc(100% + .5rem);
|
||||
background: #fff;
|
||||
width: 32rem;
|
||||
height: auto;
|
||||
opacity: 0;
|
||||
display: none;
|
||||
// box-shadow: 0 0px 10px 1px rgba(0, 0, 0, 0.12);
|
||||
text-align: center;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
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;
|
||||
}
|
||||
.stateSucsess{
|
||||
color: #3ab45c;
|
||||
}
|
||||
.stateError{
|
||||
color: #b43a3a;
|
||||
}
|
||||
.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-left: 3.5rem;
|
||||
padding-right: 3.5rem;
|
||||
.attention_item{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.attention_item_active{
|
||||
cursor: pointer;
|
||||
}
|
||||
.attention_item_active:hover{
|
||||
color: #39215b;
|
||||
span{
|
||||
color: #39215b;
|
||||
}
|
||||
}
|
||||
div{
|
||||
font-size: 1.6rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
span{
|
||||
font-size: 1.4rem;
|
||||
color: #949eae;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.username {
|
||||
font-size: 1.8rem;
|
||||
color: #1a1a1a;
|
||||
|
||||
@@ -57,7 +57,6 @@ import { defineComponent, toRefs, reactive, ref , nextTick,computed, onMounted,
|
||||
import { isEmail } from "@/tool/util";
|
||||
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
|
||||
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
|
||||
import Habit from "@/component/Detail/habit.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { Modal, message } from "ant-design-vue";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||
@@ -70,7 +69,6 @@ import { ScrollTrigger } from "gsap/ScrollTrigger";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
VerificationCodeInput,
|
||||
Habit,
|
||||
},
|
||||
setup(){
|
||||
const store = useStore();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div class="events_page" :class="{active:isScroll}">
|
||||
<div class="modal_title_text modal_search">
|
||||
<!-- <div class="modal_title_text modal_search">
|
||||
<div v-show="isScroll || userDetail.systemUser>-1" v-for="item in worksType" :key="item" class="gallery_btn white" @click="setWorksSelect(item)" :class="{active:item.value == worksSelect}">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<div v-show="!isScroll && userDetail.systemUser == -1" class="gallery_btn active">All</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="page_content" >
|
||||
<div class="page_content_itemBox">
|
||||
<div class="page_content_item" v-for="item,index in eventsList" :key="eventsList[eventsList.length-1-index].id" v-fadeIn="isScroll">
|
||||
@@ -27,7 +27,6 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,provide,computed} from 'vue'
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { useI18n } from "vue-i18n";
|
||||
@@ -204,14 +203,12 @@ export default defineComponent({
|
||||
.events_page {
|
||||
border-radius: 4rem;
|
||||
width: 100%;
|
||||
// overflow: hidden;
|
||||
// height: 100%;
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
padding: 0 6rem;
|
||||
// min-width: 1440px;
|
||||
// padding: 0 6rem;
|
||||
position: relative;
|
||||
padding-top: 5rem;
|
||||
// padding-top: 5rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.modal_title_text{
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent, h, ref, computed, reactive, toRefs, inject,provide,nextTick,createVNode,onBeforeUnmount, toRef} from "vue";
|
||||
// import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import CollectionModal from "@/component/HomePage/collectionModal.vue";
|
||||
import NewCollectionReview from "@/component/HomePage/NewCollectionReview.vue";
|
||||
import ExportNewCoolection from "@/component/HomePage/ExportNewCoolection.vue";
|
||||
@@ -34,7 +33,6 @@ const FileSaver = require("file-saver");
|
||||
export default defineComponent({
|
||||
name: "homePage",
|
||||
components: {
|
||||
// HeaderComponent,
|
||||
homeIndex,
|
||||
NewCollectionReview,
|
||||
DesignDetail,
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
<template>
|
||||
<div class="works_page" :class="{active:isScroll,'otherUsersActive':otherUsers,'positionLogin':position=='login'}">
|
||||
<!-- <div class="modal_title_text">
|
||||
<div>Works</div>
|
||||
</div> -->
|
||||
<div class="modal_title_text modal_search" v-if="!otherUsers && position!='login'">
|
||||
<div class="works_page" :class="{active:isScroll,'otherUsersActive':otherUsers,'positionLogin':true}">
|
||||
<!-- <div class="works_page" :class="{active:isScroll,'otherUsersActive':otherUsers,'positionLogin':position=='login'}"> -->
|
||||
|
||||
<!-- <div class="modal_title_text modal_search" v-if="!otherUsers && position!='login'">
|
||||
<div v-show="isScroll" v-for="item in worksType" :key="item" class="gallery_btn white" @click="setWorksSelect(item)" :class="{active:item.value == worksSelect}">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<div v-show="!isScroll" class="modal_title_text_assistant gallery_btn white" :class="{active:'all' == worksSelect}" @click="setWorksSelect({value:'all'})">All</div>
|
||||
<div v-show="!isScroll" class="modal_title_text_assistant gallery_btn white" :class="{active:'NewYear_2025' == worksSelect}" @click="setWorksSelect({value:'NewYear_2025'})">NewYear_2025</div>
|
||||
<!-- <div class="modal_search_menu">
|
||||
<generalMenu :dataList="menuList" @setprintModel="setprintModel" :item="selectMenu"></generalMenu>
|
||||
</div> -->
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="page_content" >
|
||||
<Falls ref="fall" @loadend="isShowMark = false" @setPortfolioLike="setPortfolioLike" :isScroll="isScroll" @getImgScale="getImgScale"></Falls>
|
||||
<Falls ref="fall" @loadend="isShowMark = false" @setPortfolioLike="setPortfolioLike" :isScroll="isScroll" @getImgScale="getImgScale"></Falls>
|
||||
<div class="page_loading_box" v-show="!isNoData">
|
||||
<span class="page_loading" v-show="!isShowMark"></span>
|
||||
<span v-show="isShowMark">
|
||||
@@ -32,8 +28,7 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,provide,computed} from 'vue'
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,watch,computed} from 'vue'
|
||||
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import newScaleImage from "@/component/WorksPage/newScaleImage.vue";
|
||||
@@ -68,7 +63,8 @@ export default defineComponent({
|
||||
},
|
||||
},
|
||||
setup(prop) {
|
||||
const router = useRouter()
|
||||
const router = useRouter() as any
|
||||
const route = useRoute() as any
|
||||
let filter:any = reactive({
|
||||
worksSelect: 'all',
|
||||
isNull:true,
|
||||
@@ -135,18 +131,18 @@ export default defineComponent({
|
||||
let newScaleImageMobile:any = ref()
|
||||
let fall:any = ref()
|
||||
let setWorksSelect = (val:any) => {
|
||||
filter.worksSelect = val.value
|
||||
filter.worksSelect = val
|
||||
filter.getListDate.getLikePortfolio = 0
|
||||
filter.getListDate.getMyPortfolio = 0
|
||||
filter.getListDate.tagId = ''
|
||||
if(val.value == 'all'){
|
||||
}else if(val.value == 'favoriteWorks'){
|
||||
if(val == 'all'){
|
||||
}else if(val == 'favoriteWorks'){
|
||||
filter.getListDate.getLikePortfolio = 1
|
||||
}else if(val.value == 'myWorks'){
|
||||
}else if(val == 'myWorks'){
|
||||
filter.getListDate.getMyPortfolio = 1
|
||||
}else if(val.value == 'RCAworkshop_2024'){
|
||||
}else if(val == 'RCAworkshop_2024'){
|
||||
filter.getListDate.tagId = 1
|
||||
}else if(val.value == 'NewYear_2025'){
|
||||
}else if(val == 'NewYear_2025'){
|
||||
filter.getListDate.tagId = 3
|
||||
}
|
||||
filter.getListDate.page = 0
|
||||
@@ -226,7 +222,7 @@ export default defineComponent({
|
||||
let setPorfolioDom = ()=>{
|
||||
filter.isShowMark = false
|
||||
filter.isNoData = false
|
||||
getPorfolio()
|
||||
// getPorfolio()
|
||||
let worksPage:any = document.querySelector('.works_page')
|
||||
let imgParent:any = document.querySelector('.works_page .page_loading')
|
||||
new IntersectionObserver(
|
||||
@@ -240,6 +236,17 @@ export default defineComponent({
|
||||
// { root:worksPage }
|
||||
).observe(imgParent);
|
||||
}
|
||||
watch(() => route.query,
|
||||
(query, oldQuery) => {
|
||||
if(oldQuery && query?.works == oldQuery?.works)return
|
||||
let str = query.works
|
||||
if(!str)str = 'all'
|
||||
nextTick(()=>{
|
||||
setWorksSelect(str)
|
||||
})
|
||||
},
|
||||
{ immediate: true } // 立即触发一次以处理初始参数
|
||||
);
|
||||
onMounted (()=>{
|
||||
nextTick(()=>{
|
||||
setPorfolioDom()
|
||||
|
||||
@@ -88,7 +88,6 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent,ref,createVNode,computed,nextTick,provide} from 'vue'
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { formatTime } from "@/tool/util"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="page_content_body">
|
||||
<!-- <HeaderComponent></HeaderComponent> -->
|
||||
<div class="library_page_body">
|
||||
<div class="library_body_left">
|
||||
<!-- <div class="library_body_left">
|
||||
<div>
|
||||
<div class="library_menu_list" v-for="(menu,index) in menuList" :key="menu.title">
|
||||
<div :class="['menu_item', selectCode==menu.code ? 'select_menu_item' :'']" @click="selectMenuItem(menu,index)">
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
<div class="library_body_right">
|
||||
@@ -485,7 +485,6 @@
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { defineComponent,h ,ref,createVNode,nextTick,watch,provide,computed,reactive,toRefs} from 'vue'
|
||||
// import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
|
||||
// import ModelPlacement from '@/component/LibraryPage/ModelPlacementUpdata.vue';
|
||||
import setLabel from '@/component/LibraryPage/setLabel.vue';
|
||||
@@ -511,7 +510,6 @@ import generalMenu from "@/component/HomePage/generalMenu.vue";
|
||||
import UpgradePlan from "@/component/HomePage/UpgradePlan.vue";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
// HeaderComponent,
|
||||
ModelPlacement,
|
||||
setLabel,
|
||||
ModelPlacementMobile,
|
||||
@@ -893,14 +891,6 @@ export default defineComponent({
|
||||
};
|
||||
},
|
||||
watch:{
|
||||
searchPictureName(newVal,oldVal){
|
||||
// clearTimeout(this.getLibraryListInputTime)
|
||||
// this.getLibraryListInputTime = setTimeout(() => {
|
||||
// if(newVal != oldVal){
|
||||
// this.currentPage = 1
|
||||
// }
|
||||
// }, 500);
|
||||
},
|
||||
scene:{
|
||||
handler(newVal,oldVal){
|
||||
if(this.selectCode == 'Printboard' && newVal.value == 'Slogan'){
|
||||
@@ -911,6 +901,19 @@ export default defineComponent({
|
||||
this.isSloganHint = ''
|
||||
}
|
||||
}
|
||||
},
|
||||
'$route.query':{
|
||||
handler(query, oldQuery) {
|
||||
if(oldQuery && query?.library == oldQuery?.library)return
|
||||
let str = query.library
|
||||
if(!str)str = 'Moodboard'
|
||||
nextTick(()=>{
|
||||
console.log()
|
||||
this.selectMenuItem({code:str})
|
||||
// setWorksSelect(str)
|
||||
})
|
||||
},
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
async mounted(){
|
||||
@@ -920,6 +923,7 @@ export default defineComponent({
|
||||
this.uploadUrl = getUploadUrl()
|
||||
this.token = getCookie("token") || "";
|
||||
},
|
||||
|
||||
methods:{
|
||||
|
||||
|
||||
@@ -958,71 +962,67 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
},
|
||||
selectMenuItem(menu:any,index:any){
|
||||
if(menu.children?.length){ //证明是有子菜单
|
||||
menu.showChildren = !menu.showChildren
|
||||
}else{
|
||||
|
||||
if(menu.code != this.upload.level1Type){
|
||||
this.selectCode = menu.code
|
||||
this.currentPage = 1
|
||||
this.total = 0
|
||||
if(menu.code == 'MyBrand'){
|
||||
this.getBrandDNAList()
|
||||
return
|
||||
}
|
||||
this.searchPictureName = ''
|
||||
this.imgList = [],
|
||||
this.selectImgList = []
|
||||
this.isTextarea = false
|
||||
this.value.labelValue = []
|
||||
if(this.designTypeList[this.selectCode].length >= 1){
|
||||
this.designType = this.designTypeList[this.selectCode][0].value
|
||||
}else{
|
||||
this.designType = ''
|
||||
}
|
||||
if(this.selectCode != 'DesignElements'){
|
||||
this.getClass()
|
||||
}
|
||||
if(this.selectCode == 'Sketchboard' || this.selectCode == 'Models')this.getSex()
|
||||
if(this.selectCode == 'Sketchboard'){
|
||||
this.positionType = computed(() => {
|
||||
return this.store.state.UserHabit.Position;
|
||||
});
|
||||
this.printModelList = JSON.parse(JSON.stringify(this.store.state.UserHabit.SketchStyle))
|
||||
let imgList = ['/image/sketch/sketch-thick.jpg','/image/sketch/sketch-medium.jpg','/image/sketch/sketch-fine.jpg']
|
||||
this.printModelList.forEach((item:any,index:number)=>{
|
||||
item.img = imgList[index]
|
||||
})
|
||||
}
|
||||
if(this.selectCode == 'Printboard'){
|
||||
this.printModelList = [
|
||||
{
|
||||
num:1,
|
||||
optype:false,
|
||||
value:'Painting Style',
|
||||
label:this.t('Generate.Model1')
|
||||
},{
|
||||
num:2,
|
||||
optype:false,
|
||||
value:'Illustration Style',
|
||||
label:this.t('Generate.Model2')
|
||||
},{
|
||||
num:3,
|
||||
optype:false,
|
||||
value:'Real Style',
|
||||
label:this.t('Generate.Model3')
|
||||
},
|
||||
]
|
||||
}
|
||||
if(this.printModelList[0])this.printModel = this.printModelList[0]
|
||||
this.captionGeneration = ''
|
||||
this.selectGenerateList = []
|
||||
this.inputShow = false
|
||||
this.uploadGenerateOpen('Upload')
|
||||
selectMenuItem(menu:any){
|
||||
|
||||
if(menu.code != this.upload.level1Type){
|
||||
this.selectCode = menu.code
|
||||
this.currentPage = 1
|
||||
this.total = 0
|
||||
if(menu.code == 'MyBrand'){
|
||||
this.getBrandDNAList()
|
||||
return
|
||||
}
|
||||
this.upload.level1Type = menu.code
|
||||
}
|
||||
this.searchPictureName = ''
|
||||
this.imgList = [],
|
||||
this.selectImgList = []
|
||||
this.isTextarea = false
|
||||
this.value.labelValue = []
|
||||
if(this.designTypeList[this.selectCode].length >= 1){
|
||||
this.designType = this.designTypeList[this.selectCode][0].value
|
||||
}else{
|
||||
this.designType = ''
|
||||
}
|
||||
if(this.selectCode != 'DesignElements'){
|
||||
this.getClass()
|
||||
}
|
||||
if(this.selectCode == 'Sketchboard' || this.selectCode == 'Models')this.getSex()
|
||||
if(this.selectCode == 'Sketchboard'){
|
||||
this.positionType = computed(() => {
|
||||
return this.store.state.UserHabit.Position;
|
||||
});
|
||||
this.printModelList = JSON.parse(JSON.stringify(this.store.state.UserHabit.SketchStyle))
|
||||
let imgList = ['/image/sketch/sketch-thick.jpg','/image/sketch/sketch-medium.jpg','/image/sketch/sketch-fine.jpg']
|
||||
this.printModelList.forEach((item:any,index:number)=>{
|
||||
item.img = imgList[index]
|
||||
})
|
||||
}
|
||||
if(this.selectCode == 'Printboard'){
|
||||
this.printModelList = [
|
||||
{
|
||||
num:1,
|
||||
optype:false,
|
||||
value:'Painting Style',
|
||||
label:this.t('Generate.Model1')
|
||||
},{
|
||||
num:2,
|
||||
optype:false,
|
||||
value:'Illustration Style',
|
||||
label:this.t('Generate.Model2')
|
||||
},{
|
||||
num:3,
|
||||
optype:false,
|
||||
value:'Real Style',
|
||||
label:this.t('Generate.Model3')
|
||||
},
|
||||
]
|
||||
}
|
||||
if(this.printModelList[0])this.printModel = this.printModelList[0]
|
||||
this.captionGeneration = ''
|
||||
this.selectGenerateList = []
|
||||
this.inputShow = false
|
||||
this.uploadGenerateOpen('Upload')
|
||||
}
|
||||
this.upload.level1Type = menu.code
|
||||
},
|
||||
|
||||
async sexChange(){
|
||||
@@ -1860,7 +1860,6 @@ export default defineComponent({
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
padding: 0 6rem;
|
||||
// min-width: 1440px;
|
||||
position: relative;
|
||||
.mark_loading{
|
||||
@@ -1956,7 +1955,8 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
.library_body_right{
|
||||
width: calc(100% - 23.5rem);
|
||||
width: 100%;
|
||||
// width: calc(100% - 23.5rem);
|
||||
height: 100%;
|
||||
.header_operate_item{
|
||||
margin-right: 5rem;
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
<template>
|
||||
<div class="loginPage">
|
||||
<div class="left">
|
||||
<Works :isScroll="true" :position="'login'"></Works>
|
||||
<Works :isScroll="!isMask" :position="'login'"></Works>
|
||||
<div class="mask" v-show="isMask" @click="()=>isMask = !isMask">
|
||||
<div class="content">
|
||||
<div class="userNum">
|
||||
<div class="title">5 000 000 +</div>
|
||||
<div>HAPPY USERS</div>
|
||||
</div>
|
||||
<div class="info">Millions trust AI products every day</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="Text" v-show="!loginType">
|
||||
@@ -14,9 +23,9 @@
|
||||
Continue with one of these:
|
||||
</div>
|
||||
<div class="typeList">
|
||||
<div class="gallery_btn" @click="setLoginType('personal')">personal</div>
|
||||
<div class="gallery_btn" @click="setLoginType('school')">school</div>
|
||||
<div class="gallery_btn" @click="setLoginType('enterprise')">enterprise</div>
|
||||
<div class="gallery_btn white" @click="setLoginType('personal')">personal</div>
|
||||
<div class="gallery_btn white" @click="setLoginType('school')">school</div>
|
||||
<div class="gallery_btn white" @click="setLoginType('enterprise')">enterprise</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="login" v-show="loginType">
|
||||
@@ -57,6 +66,7 @@ export default defineComponent({
|
||||
const store = useStore();
|
||||
const loginData = reactive({
|
||||
loginType:'',
|
||||
isMask:true,
|
||||
})
|
||||
const dataDom = reactive({
|
||||
})
|
||||
@@ -87,6 +97,42 @@ export default defineComponent({
|
||||
> .left{
|
||||
width: 60%;
|
||||
background: #f7f8fa;
|
||||
position: relative;
|
||||
> .mask{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, .8) 100%);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
> .content{
|
||||
text-align: center;
|
||||
padding: 15rem;
|
||||
//黑色径向渐变
|
||||
background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 70%);
|
||||
.userNum{
|
||||
line-height: 1;
|
||||
margin-bottom: 3rem;
|
||||
> .title{
|
||||
font-size: 8rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
> div{
|
||||
font-size: 3rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
> .info{
|
||||
font-size: 4rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
> .right{
|
||||
display: flex;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,6 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent,ref,createVNode,computed} from 'vue'
|
||||
import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import { Modal,message } from 'ant-design-vue';
|
||||
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
@@ -24,7 +23,6 @@ import { useStore } from "vuex";
|
||||
import { useI18n } from 'vue-i18n';
|
||||
export default defineComponent({
|
||||
components: {
|
||||
HeaderComponent,
|
||||
RobotAssist,
|
||||
payOrder,
|
||||
},
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref, createVNode, computed } from "vue";
|
||||
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
||||
import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
||||
import router from "@/router/index";
|
||||
import { Https } from "@/tool/https";
|
||||
@@ -21,7 +20,6 @@ import { useI18n } from "vue-i18n";
|
||||
import Fingerprint2 from "fingerprintjs2"; //获取浏览器唯一标识
|
||||
export default defineComponent({
|
||||
components: {
|
||||
HeaderComponent,
|
||||
HistoryDetail,
|
||||
RobotAssist,
|
||||
},
|
||||
|
||||
@@ -1,574 +0,0 @@
|
||||
<template>
|
||||
<div class="trial_page">
|
||||
<div class="page_content">
|
||||
<img
|
||||
class="page_content_bg"
|
||||
src="@/assets/images/homePage/bg1.jpg"
|
||||
/>
|
||||
<div class="page_content_body">
|
||||
<HeaderComponent></HeaderComponent>
|
||||
<div class="trial_page_body">
|
||||
<div class="trial_table_search">
|
||||
<div class="trial_table_voluntarily">
|
||||
<span>voluntarily</span>
|
||||
<a-switch v-model:checked="voluntarily" @change="setIsAutoApproval" />
|
||||
</div>
|
||||
<a-range-picker
|
||||
class="range_picker"
|
||||
v-model:value="rangePickerValue"
|
||||
:placeholder="[
|
||||
$t('HistoryPage.StartDate'),
|
||||
$t('HistoryPage.EndDate'),
|
||||
]"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
>
|
||||
<template #suffixIcon>
|
||||
<span
|
||||
class="icon iconfont range_picker_icon icon-rili"
|
||||
></span>
|
||||
</template>
|
||||
</a-range-picker>
|
||||
<div class="trial_state">
|
||||
<div class="trial_current" @click="setState">
|
||||
{{currentState.name}}
|
||||
<div
|
||||
:class="['icon', 'iconfont', 'icon-xiala']"
|
||||
@click.stop=""
|
||||
></div>
|
||||
</div>
|
||||
<div class="header_user_content" :class="{active:currentState.state}">
|
||||
<!-- <span class="icon iconfont icon-yuyan"></span> -->
|
||||
<div class="username" v-for="item,index in state" :key="item" @click.stop="setStateItem(item)">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content_search_block">
|
||||
<input
|
||||
class="search_input"
|
||||
:placeholder="$t('HistoryPage.inputContent1')"
|
||||
v-model="searchCollectionName"
|
||||
@keydown.enter="searchHistoryList()"
|
||||
/>
|
||||
<div
|
||||
class="search_icon_block"
|
||||
@click="searchHistoryList()"
|
||||
>
|
||||
<span class="icon iconfont icon-sousuo"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="trial_table_content" ref="historyTable">
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:data-source="collectionList"
|
||||
:scroll="{ y: historyTableHeight }"
|
||||
@change="changePage"
|
||||
:pagination="{
|
||||
showSizeChanger: true,
|
||||
current: currentPage,
|
||||
pageSize: pageSize,
|
||||
total: total,
|
||||
showQuickJumper: true,
|
||||
bordered: false,
|
||||
}"
|
||||
>
|
||||
<template
|
||||
#bodyCell="{ column, text, record, index }"
|
||||
>
|
||||
<div
|
||||
class="operate_list"
|
||||
v-if="column?.Operations"
|
||||
>
|
||||
<div
|
||||
v-show="status == 0"
|
||||
class="operate_item"
|
||||
@click="setConsent(record, index)"
|
||||
>
|
||||
consent
|
||||
</div>
|
||||
<div
|
||||
v-show="status == 0"
|
||||
class="operate_item"
|
||||
@click="setRefuse(record, index)"
|
||||
>
|
||||
refuse
|
||||
</div>
|
||||
<!-- <div
|
||||
class="operate_item"
|
||||
@click="deleteGroup(record, index)"
|
||||
>
|
||||
Delete
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref, createVNode, computed } from "vue";
|
||||
import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
||||
import router from "@/router/index";
|
||||
import { Https } from "@/tool/https";
|
||||
import { formatTime } from "@/tool/util";
|
||||
import { Modal, message } from "ant-design-vue";
|
||||
import { useStore } from "vuex";
|
||||
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
HeaderComponent,
|
||||
HistoryDetail,
|
||||
RobotAssist,
|
||||
},
|
||||
setup() {
|
||||
const store = useStore()
|
||||
let rangePickerValue: any = ref([]);
|
||||
let renameData: any = ref({}); //修改名字选中的数据
|
||||
const columns: any = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: 'Email',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
dataIndex: "email",
|
||||
key: "email",
|
||||
},
|
||||
{
|
||||
title: 'Create Time',
|
||||
align: "center",
|
||||
ellipsis: 200,
|
||||
dataIndex: "updateTime",
|
||||
key: "updateTime",
|
||||
// customRender: (record: any) => {
|
||||
// let time = formatTime(
|
||||
// record.text / 1000,
|
||||
// "YYYY-MM-DD hh:mm:ss"
|
||||
// );
|
||||
// return time;
|
||||
// },
|
||||
},
|
||||
{
|
||||
title: 'State',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
customRender: (record: any) => {
|
||||
let str
|
||||
if(record.value == 0){
|
||||
str ='pending'
|
||||
}else if(record.value == 1){
|
||||
str ='agree'
|
||||
}else if(record.value == 2){
|
||||
str ='rejected'
|
||||
}
|
||||
return str;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'Address',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
dataIndex: "country",
|
||||
key: "country",
|
||||
},
|
||||
{
|
||||
title: 'Surname',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
dataIndex: "surname",
|
||||
key: "surname",
|
||||
},
|
||||
{
|
||||
title: 'Name',
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
},
|
||||
{
|
||||
title: 'Operations',
|
||||
key: "operation",
|
||||
align: "center",
|
||||
fixed: "right",
|
||||
width: 200,
|
||||
// slots:{customRender:'action'}
|
||||
Operations: true,
|
||||
},
|
||||
];
|
||||
});
|
||||
let currentState = ref({
|
||||
name:'all',
|
||||
value:'',
|
||||
state:false,
|
||||
},)
|
||||
let state:any = ref([
|
||||
{
|
||||
name:'all',
|
||||
value:'',
|
||||
},
|
||||
{
|
||||
name:'pending',
|
||||
value:0,
|
||||
},
|
||||
{
|
||||
name:'agree',
|
||||
value:1,
|
||||
},
|
||||
{
|
||||
name:'rejected',
|
||||
value:2,
|
||||
},
|
||||
])
|
||||
let collectionList: any = ref([]);
|
||||
let status: any = ref(0);
|
||||
let voluntarily: any = ref(false);
|
||||
let userDetail:any= computed(()=>{
|
||||
return store.state.UserHabit.userDetail
|
||||
})
|
||||
return {
|
||||
rangePickerValue,
|
||||
columns,
|
||||
collectionList,
|
||||
renameData,
|
||||
userDetail,
|
||||
status,
|
||||
currentState,
|
||||
state,
|
||||
voluntarily,
|
||||
};
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
historyTableHeight: 0,
|
||||
newCollectionName: "",
|
||||
renameVisivle: false, //修改名字弹窗
|
||||
collectionName: "", //选中的名字
|
||||
searchCollectionName: "",
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
let historyTable: any = this.$refs.historyTable;
|
||||
this.historyTableHeight = historyTable.clientHeight - 130;
|
||||
this.gettrialList();
|
||||
|
||||
if (this.userDetail.userId == 83 || this.userDetail.userId == 88 || this.userDetail.userId == 6) {
|
||||
} else {
|
||||
router.replace("/home");
|
||||
return
|
||||
}
|
||||
this.getIsAutoApproval()
|
||||
},
|
||||
methods: {
|
||||
//改变页码
|
||||
changePage(e: any) {
|
||||
this.currentPage = e.current;
|
||||
this.pageSize = e.pageSize;
|
||||
this.gettrialList();
|
||||
},
|
||||
|
||||
//查询列表
|
||||
searchHistoryList() {
|
||||
this.currentPage = 1;
|
||||
this.gettrialList();
|
||||
},
|
||||
//获取是否自动审批
|
||||
getIsAutoApproval(){
|
||||
Https.axiosPost(Https.httpUrls.getIsAutoApproval, {}).then(
|
||||
(rv: any) => {
|
||||
this.voluntarily = rv
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
setIsAutoApproval(){
|
||||
Https.axiosPost(Https.httpUrls.switchIsAutoApproval, {}).then(
|
||||
(rv: any) => {
|
||||
this.getIsAutoApproval
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
//获取列表
|
||||
gettrialList() {
|
||||
let startDate: any = this.rangePickerValue
|
||||
? new Date(this.rangePickerValue[0]).getTime()
|
||||
: "";
|
||||
let endDate: any = this.rangePickerValue
|
||||
? new Date(this.rangePickerValue[1]).getTime()
|
||||
: "";
|
||||
let data = {
|
||||
page: this.currentPage,
|
||||
size: this.pageSize,
|
||||
status: this.currentState.value,
|
||||
// startDate:startDate,
|
||||
// endDate:endDate
|
||||
};
|
||||
Https.axiosPost(Https.httpUrls.trialOrderList, data).then(
|
||||
(rv: any) => {
|
||||
this.collectionList = rv.content;
|
||||
}
|
||||
);
|
||||
},
|
||||
setConsent(record: any, index: number){
|
||||
const formData = new FormData()
|
||||
formData.append('ids',record.id)
|
||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||
Https.axiosPost(Https.httpUrls.trialOrderApproval, formData,config).then(
|
||||
(rv: any) => {
|
||||
message.success('同意成功~')
|
||||
}
|
||||
);
|
||||
},
|
||||
setRefuse(record: any, index: number){
|
||||
const formData = new FormData()
|
||||
formData.append('ids',record.id)
|
||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||
Https.axiosPost(Https.httpUrls.trialOrderRefuse, formData,config).then(
|
||||
(rv: any) => {
|
||||
this.gettrialList();
|
||||
message.success('拒绝成功~')
|
||||
}
|
||||
);
|
||||
},
|
||||
//删除分组
|
||||
// deleteGroup(record: any, index: number) {
|
||||
// let deleteGroupFun = (id: any, index: number) => {
|
||||
// let data = {
|
||||
// userGroupId: id,
|
||||
// };
|
||||
// Https.axiosPost(Https.httpUrls.deleteUserGroup, data).then(
|
||||
// (rv: any) => {
|
||||
// this.collectionList.splice(index, 1);
|
||||
// }
|
||||
// );
|
||||
// };
|
||||
// Modal.confirm({
|
||||
// title: "",
|
||||
// icon: createVNode(ExclamationCircleOutlined),
|
||||
// okText: "Yes",
|
||||
// cancelText: "No",
|
||||
// centered: true,
|
||||
// mask: false,
|
||||
// onOk() {
|
||||
// deleteGroupFun(record.id, index);
|
||||
// },
|
||||
// });
|
||||
// },
|
||||
setState(){
|
||||
this.currentState.state = true
|
||||
},
|
||||
setStateItem(item:any){
|
||||
this.currentState = item
|
||||
this.currentState.state = false
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<style lang="less">
|
||||
.trial_page {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0 6rem;
|
||||
overflow: hidden;
|
||||
// min-width: 1440px;
|
||||
position: relative;
|
||||
.page_content {
|
||||
position: relative;
|
||||
.page_content_bg {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.page_content_body {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
.trial_page_body {
|
||||
width: 100%;
|
||||
height: calc(100% - 7rem);
|
||||
padding: 0 2.5rem 4rem;
|
||||
box-sizing: border-box;
|
||||
.trial_table_search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 5rem;
|
||||
color: #fff;
|
||||
.range_picker {
|
||||
width: 36rem;
|
||||
height: 4.8rem;
|
||||
|
||||
.ant-picker-input > input {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.range_picker_icon {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
}
|
||||
.trial_table_voluntarily{
|
||||
padding: 0 2rem;
|
||||
margin: 0 2rem;
|
||||
margin-left: 0;
|
||||
// border: 0.1rem solid #f1f1f1;
|
||||
span{
|
||||
}
|
||||
>button{
|
||||
transform: scale(.8);
|
||||
|
||||
}
|
||||
}
|
||||
.content_search_block {
|
||||
margin-left: 4rem;
|
||||
display: flex;
|
||||
|
||||
.search_input {
|
||||
width: 32.8rem;
|
||||
padding-left: 1.5rem;
|
||||
height: 4.8rem;
|
||||
line-height: 4.6rem;
|
||||
background: #ffffff;
|
||||
border: 0.1rem solid #f1f1f1;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 400;
|
||||
&::placeholder {
|
||||
color: #c2c2c2;
|
||||
}
|
||||
}
|
||||
|
||||
.search_icon_block {
|
||||
width: 7.2rem;
|
||||
height: 4.8rem;
|
||||
line-height: 4.8rem;
|
||||
text-align: center;
|
||||
background: #343579;
|
||||
cursor: pointer;
|
||||
|
||||
.icon-sousuo {
|
||||
font-size: 2rem;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.trial_state {
|
||||
border: 0.1rem solid #f1f1f1;
|
||||
position: relative;
|
||||
width: 20rem;
|
||||
margin: 0 2rem;
|
||||
padding: 0 2rem;
|
||||
cursor: pointer;
|
||||
.trial_current{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.header_user_content {
|
||||
position: absolute;
|
||||
border: 2px solid;
|
||||
border-radius: 1rem;
|
||||
overflow: hidden;
|
||||
top: 0;
|
||||
transform: translateY(6rem);
|
||||
z-index: 2;
|
||||
display: none;
|
||||
margin-left: -2rem;
|
||||
.username{
|
||||
padding: 0 2rem;
|
||||
background: #ffffff;
|
||||
color: #000;
|
||||
}
|
||||
.username:hover{
|
||||
background: #e1e1e1;
|
||||
}
|
||||
&.active{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.trial_table_content {
|
||||
margin-top: 2.6rem;
|
||||
width: 100%;
|
||||
height: calc(100% - 13.7rem);
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
padding-bottom: 3rem;
|
||||
border-radius: 2rem;
|
||||
backdrop-filter: blur(3rem);
|
||||
overflow: hidden;
|
||||
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.38);
|
||||
.ant-table {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.ant-table-body {
|
||||
overflow-y: auto !important;
|
||||
-ms-overflow-style: none;
|
||||
overflow: -moz-scrollbars-none;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 0 !important;
|
||||
}
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background: #ffffff00;
|
||||
color: #fff;
|
||||
border-bottom: none;
|
||||
backdrop-filter: blur(1rem);
|
||||
}
|
||||
|
||||
.ant-table-tbody > tr > td {
|
||||
border: none;
|
||||
background: transparent;
|
||||
// color: #fff;
|
||||
}
|
||||
|
||||
.ant-table-tbody > tr {
|
||||
&:hover > td {
|
||||
background: #ffffff3a;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-table-pagination-right {
|
||||
padding-right: 3.5rem;
|
||||
}
|
||||
|
||||
.operate_list {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 1rem;
|
||||
|
||||
.operate_item {
|
||||
font-size: 1.4rem;
|
||||
font-family: Roboto;
|
||||
font-weight: 400;
|
||||
color: #343579;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user