This commit is contained in:
X1627315083
2024-12-18 17:38:43 +08:00
90 changed files with 3220 additions and 865 deletions

View File

@@ -74,7 +74,6 @@ import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useRouter,useRoute } from 'vue-router'
import GO from "@/tool/GO";
import { getCookie } from "@/tool/cookie";
import { country } from "@/tool/country";
import { getUploadUrl } from "@/tool/util";
// import { forEach } from "jszip";
@@ -214,6 +213,12 @@ export default defineComponent({
// isShow:true,
// },
],
},{
name:'Trial Affiliate',
icon:'usetime',
route:'/administrator/affiliateAudit',
key:'sub10',
isShow:true,
}],
openKeys: [],
selectedKeys: ['sub1'],
@@ -239,16 +244,6 @@ export default defineComponent({
router.push('/home');
}
onMounted(() => {
let cookieInfo = getCookie('userInfo') || ''
if(cookieInfo){
// menuList.value = JSON.parse(menuListSession)
// userInfo.value = JSON.parse(cookieInfo)
// state.selectedKeys = [route.path]
// getBreadData(route.name)
// getTitle(menuList.value, route.path)
}else{
}
state.rootSubmenuKeys.forEach((item:any) => {
if(item.children){
item.children.forEach((item:any) => {

View File

@@ -4,23 +4,23 @@
<div class="homeMain_right_content">
<div class="homeMain_user">
<div class="homeMain_user_icon" @click="openAccount">
<img :src="userInfo?.avatar" alt="">
<img :src="userDetail.avatar" alt="">
</div>
<div class="homeMain_user_detail">
<div class="homeMain_user_icon" @click="openAccount">
<img :src="userInfo?.avatar" alt="">
<img :src="userDetail.avatar" alt="">
</div>
<div v-if="isTest" class="username">{{$t('Header.hello')}}@{{ $t('isTest.userName') }}</div>
<div v-else class="username">{{$t('Header.hello')}}@{{ cookieUserInfo?.userName }}</div>
<div 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>{{ userInfo?.followeeCount }}</div>
<div>{{ userDetail?.followeeCount }}</div>
<span>{{$t('account.Follow')}}</span>
</div>
<div class="attention_item">
<div>{{ userInfo?.followerCount }}</div>
<div>{{ userDetail?.followerCount }}</div>
<span>{{$t('account.Fans')}}</span>
</div>
<!-- <div class="attention_item">
@@ -31,8 +31,9 @@
<div class="homeMain_subscribe">
<div>
<span class="font">Status</span>
<span class="state font">Paid <i class="fi fi-ss-check-circle"></i></span>
<span class="time">31 Dec 2024</span>
<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>
@@ -56,11 +57,14 @@
<i class="fi fi-rs-notebook"></i>
<span class="select_item_des">{{$t('Header.ViewOrders')}}</span>
</div>
<router-link class="select_item" v-if="AdministratorUserIdList.indexOf(cookieUserInfo?.userId) >= 0" :to="`/administrator`">
<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>
@@ -116,7 +120,6 @@
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
<TaskPage ref="TaskPage"></TaskPage>
</header>
<div class="homeMain_content_body">
<!-- <router-view v-slot="{ Component }" @setTask = "setTask">
<keep-alive>
@@ -174,10 +177,9 @@ export default defineComponent({
const store = useStore();
const {t} = useI18n()
const {locale} = useI18n()
let userInfo= computed(()=>{
return store.state.UserHabit.userInfo
let userDetail= computed(()=>{
return store.state.UserHabit.userDetail
})
let isTest = ref()
let isMurmur = ref()
let credits = computed(()=>{
return store.state.UserHabit.credits.value
@@ -185,7 +187,6 @@ export default defineComponent({
let activeCredits = ref(false)
let getLangIsShowMark = ref(true)
let AdministratorUserIdList = [88,6,46,31,73,83,87,4]
let navRouterList = ref([])
let messageNum = computed(()=>{
return store.state.UserHabit.messageSystem.messageNum
@@ -208,6 +209,7 @@ export default defineComponent({
}
})
}
MyWs.close()
// MyWs.linkWs("wss://"+MyWs.messageUrl,'message')
MyWs.linkWs("wss://"+MyWs.messageUrl,'message')
let getWsMessage = (data)=>{
@@ -221,7 +223,7 @@ export default defineComponent({
isObj = true
}
});
if(isObj)store.commit('setUserInfo',obj)
if(isObj)store.commit('upUserDetail',obj)
store.commit('setMessageSystem',data)
}
@@ -290,15 +292,13 @@ export default defineComponent({
})
return {
store,
userInfo,
userDetail,
t,
locale,
isTest,
isMurmur,
credits,
activeCredits,
getLangIsShowMark,
AdministratorUserIdList,
navRouterList,
messageNum,
messageType,
@@ -314,15 +314,11 @@ export default defineComponent({
data() {
return {
bindEmailVisible: false,
isHaveBindEmail: false,
bindEmailStep: 1,
email: "",
emailCode: ["", "", "", "", "", ""], //邮箱验证码
time: 60, //60秒倒计时
timer: 0,
cookieUserInfo: {
userId:-1
},
timerOperate: null,
numTime: 30,
timerSec: null,
@@ -352,18 +348,23 @@ export default defineComponent({
},
}
},
mounted() {
let isTest = getCookie('isTest')//获取是否是试用用户
this.isTest =JSON.parse(isTest)
async mounted() {
await new Promise((resolve, reject) => {
this.store.dispatch('getLangType').then(()=>{
this.getLangIsShowMark = false
resolve()
}).catch(()=>{
this.getLangIsShowMark = false
resolve()
})
})
let isMurmur = getCookie('isMurmur')//获取是否是试用用户
this.isMurmur =JSON.parse(isMurmur)
this.cookieUserInfo = JSON.parse(getCookie("userInfo"));
if (!this.cookieUserInfo) {
this.$router.replace("/");
if (this.userDetail.userId && this.userDetail.userId > -1) {
this.accountIsLogin();
} else {
this.accountIsLogin(this.cookieUserInfo);
this.$router.replace("/");
}
this.isHaveBindEmail = this.cookieUserInfo?.email ? true : false;
if(!this.isMurmur){
this.operateClick();
document.addEventListener("click", this.operateClick);
@@ -371,10 +372,7 @@ export default defineComponent({
this.getCredits()
this.getLang('')
//语言适配
this.store.dispatch('getLangType').then(()=>{
this.getLangIsShowMark = false
})
let tl1 = gsap.timeline({ paused: true });
let heradeRight = document.querySelector('.homeMain_max .homeMain_right_content')
@@ -410,6 +408,12 @@ export default defineComponent({
tl1.reverse()
}, 500);
})
let orderId = sessionStorage.getItem('orderId');//进入首页后是否打开订单列表查询到订单
console.log(orderId);
if(orderId){
let payOrder = this.$refs.payOrder
payOrder.init(orderId)
}
},
methods: {
setTask(data){
@@ -454,9 +458,9 @@ export default defineComponent({
},
//教程
getTutorial(){
let url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.1-Manual-10_21-CN.pdf'
let url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.0-Manual-10_21-CN.pdf'
if(this.locale == 'ENGLISH'){
url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.1-Manual-10_21-EN.pdf'
url = 'https://code-create.com.hk/wp-content/uploads/2024/10/aida_3.0-Manual-10_21-EN.pdf'
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/10/AiDA-demo-video_10_21_EN.mp4'})
}else{
showViewVideo({url:'https://code-create.com.hk/wp-content/uploads/2024/10/AiDA-demo-video_10_21_CN.mp4'})
@@ -472,11 +476,10 @@ export default defineComponent({
//登出
async logout() {
let data = {
userId: this.cookieUserInfo.userId,
userId: this.userDetail.userId,
};
let isTest = getCookie('isTest')
// console.log(getCookie("token"));
if(JSON.parse(isTest)){
if(this.userDetail.systemUser == 3){
await Https.axiosGet(Https.httpUrls.trialUserLogout,).then((rv) => {
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
this.$router.replace("/");
@@ -489,7 +492,7 @@ export default defineComponent({
});
this.$router.replace("/");
}
this.store.commit('clearSystemUser')
this.store.commit('createDetail')
// WriteCookie("token");
clonAllCookie()
@@ -497,9 +500,9 @@ export default defineComponent({
},
//判断是否登录
accountIsLogin(userInfo) {
accountIsLogin() {
let data = {
userId: userInfo.userId,
userId: this.userDetail.userId,
};
Https.axiosPost(Https.httpUrls.accountIsLogin, data).then((rv) => {
if (!rv) {
@@ -743,9 +746,12 @@ export default defineComponent({
font-weight: 600;
margin-right: 1rem;
}
.state{
.stateSucsess{
color: #3ab45c;
}
.stateError{
color: #b43a3a;
}
.time{
font-size: 1.4rem;
font-weight: 400;

View File

@@ -27,11 +27,11 @@
</div>
</div>
<div class="homeRecommend_right">
<a class="gallery_btn" v-if="systemUser.value == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
<div class="gallery_btn" v-if="systemUser.value == 1 && !isMoblie" @click="goHome">Home</div>
<div class="gallery_btn white" v-if="systemUser.value != -1" @click="logout">log off</div>
<a class="gallery_btn" v-if="userDetail.systemUser == 0" href="https://code-create.com.hk/aida/" target="_blank">Upgrade to an official user</a>
<div class="gallery_btn" v-if="userDetail.systemUser == 1 && !isMoblie" @click="goHome">Home</div>
<div class="gallery_btn white" v-if="userDetail.systemUser != -1" @click="logout">log off</div>
</div>
<div class="homeRecommend_right" v-if="systemUser.value == -1">
<div class="homeRecommend_right" v-if="userDetail.systemUser == -1">
<div class="gallery_btn" @click="setLogin">Login</div>
<div class="gallery_btn white" @click="setRegister">Sign up</div>
</div>
@@ -60,7 +60,7 @@
</template>
<script >
import { defineComponent, reactive, ref , nextTick,computed, onMounted, toRefs } from "vue";
import { defineComponent, toRefs, reactive, ref , nextTick,computed, onMounted, onBeforeUnmount } from "vue";
import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
@@ -92,8 +92,8 @@ export default defineComponent({
signUp:null
})
let isMoblie = ref(false)
let systemUser = computed(()=>{
return store.state.UserHabit.systemUser
let userDetail = computed(()=>{
return store.state.UserHabit.userDetail
})
let setLogin = ()=>{
router.push("/login");
@@ -113,13 +113,12 @@ export default defineComponent({
});
}
let logout = ()=>{
let userInfo = JSON.parse(getCookie("userInfo"));
let userInfo = store.state.UserHabit.userDetail;
let data = {
userId: userInfo?.userId,
};
store.commit('clearSystemUser')
store.commit('createDetail')
if(!data.userId) return
// console.log(getCookie("token"));
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
clonAllCookie();
});
@@ -127,14 +126,27 @@ export default defineComponent({
let goHome = ()=>{
router.push('/home');
}
let time
let updataIsMoblie = ()=>{
clearTimeout(time)
time = setTimeout(()=>{
if(window.innerWidth < 768){
isMoblie.value = true
}else{
isMoblie.value = false
}
},500)
}
onMounted(()=>{
if(window.innerWidth < 768){
isMoblie.value = true
}
window.addEventListener('resize',updataIsMoblie)
})
onBeforeUnmount(() => {
window.removeEventListener('resize', updataIsMoblie);
});
return {
...toRefs(data),
systemUser,
userDetail,
setLogin,
registerModel,
setRegister,

View File

@@ -1,10 +1,10 @@
<template>
<div class="events_page" :class="{active:isScroll}">
<div class="modal_title_text modal_search">
<div v-show="isScroll || systemUser.value>-1" v-for="item in worksType" :key="item" class="modal_title_text_assistant" @click="setWorksSelect(item)" :class="{active:item.value == worksSelect}">
<div v-show="isScroll || userDetail.systemUser>-1" v-for="item in worksType" :key="item" class="modal_title_text_assistant" @click="setWorksSelect(item)" :class="{active:item.value == worksSelect}">
{{ item.name }}
</div>
<div v-show="!isScroll && systemUser.value == -1" class="modal_title_text_assistant active">All</div>
<div v-show="!isScroll && userDetail.systemUser == -1" class="modal_title_text_assistant active">All</div>
</div>
<div class="page_content" >
<div class="page_content_itemBox">
@@ -77,8 +77,8 @@ export default defineComponent({
isShowMark:false,
isNoData:false,//如果数据为空就不加载
})
let systemUser = computed(()=>{
return store.state.UserHabit.systemUser
let userDetail = computed(()=>{
return store.state.UserHabit.userDetail
})
let selectMenu:any = ref({
label:'全部',
@@ -151,7 +151,7 @@ export default defineComponent({
})
return {
...toRefs(filter),
systemUser,
userDetail,
selectMenu,
setWorksSelect,
likeFile,

View File

@@ -4,6 +4,10 @@
<!-- <generalCanvas></generalCanvas> -->
<div class="page_content">
<div class="userSystem" v-if="userDetail.systemList.indexOf(0) >= 0">
You can use these features only after becoming a regular user~
</div>
<!-- <img class="page_content_bg" src="@/assets/images/homePage/bg.png" /> -->
<div class="page_content_body">
<div class="home_page_body">
@@ -79,7 +83,7 @@
</a-slider>
<div class="text">Big</div>
</div>
<div class="gallery_btn Guide_1_31" style="margin-left: auto" @click="exportModel()">
<div v-show="designCollectionId" class="gallery_btn Guide_1_31" style="margin-left: auto" @click="exportModel()">
<!-- {{ $t('HomeView.Export') }} -->
{{$t('HomeView.FinalizeCollection')}}
</div>
@@ -224,8 +228,7 @@
</div> -->
<!-- design collection的进度蒙层 end-->
<affiche ref="affiche"></affiche>
<!-- <RobotAssist></RobotAssist> -->
<tesst></tesst>
<!-- <tesst></tesst> -->
</div>
</template>
@@ -242,7 +245,6 @@ import productImg from "@/component/HomePage/productImg.vue";
import generalCanvas from "@/component/modules/generalCanvas.vue";
import affiche from "@/component/HomePage/affiche.vue";
import DesignDetail from "@/component/Detail/DesignDetail.vue";
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import html2canvas from "html2canvas";
import { message,Modal } from "ant-design-vue";
import { useStore } from "vuex";
@@ -265,7 +267,6 @@ export default defineComponent({
DesignDetail,
ExportNewCoolection,
affiche,
// RobotAssist,
draggable,
productImg,
generalCanvas
@@ -283,6 +284,9 @@ export default defineComponent({
let designCollectionList: any = computed(() => {
return store.state.HomeStoreModule.designCollectionList;
});
let userDetail= computed(()=>{
return store.state.UserHabit.userDetail
})
let userGroupId: any = computed(() => {
return store.state.HomeStoreModule.userGroupId;
}); //模特id //当likeDesignCollectionList长度为0时清空startdesign时清空
@@ -334,7 +338,6 @@ export default defineComponent({
])
provide('exportNav',exportNav)
let isShowOperate = ref(false)
let userInfo:any = {}
let {t} = useI18n()
let driver__:any = computed(()=>{
return store.state.Guide.guide
@@ -374,6 +377,7 @@ export default defineComponent({
likeDesignCollectionList,
designCollectionList,
userGroupId,
userDetail,
setPortfolio,
designCollectionId,
designId,
@@ -381,7 +385,6 @@ export default defineComponent({
contentImg,
exportNav,
isShowOperate,
userInfo,
t,
driver__,
likeDesignItemIdList,
@@ -439,8 +442,6 @@ export default defineComponent({
// }
let test:any = getCookie('isTest')
let isTest =JSON.parse(test)
let userInfo:any = getCookie("userInfo")
this.userInfo = JSON.parse(userInfo);
this.store.dispatch('get_clothingType')
//判断账号剩余时间是否太短
let isModalOne = JSON.parse(sessionStorage.getItem("isTimeOne") as any)
@@ -1215,13 +1216,26 @@ export default defineComponent({
// transform: translateX(-50%);
.page_content {
position: relative;
.userSystem{
position: absolute;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
z-index:2;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
font-weight: 600;
font-size: 4rem;
}
.page_content_body {
position: absolute;
width: 100%;
height: 100%;
padding-bottom: 2.1rem;
box-sizing: border-box;
z-index:1;
.home_page_body {
width: 100%;
height: 100%;

View File

@@ -342,9 +342,24 @@
@click.stop=""
v-model="captionGeneration"
></textarea>
<div v-show="!isGenerate[selectCode]" class="generage_btn started_btn" @click.stop="getgenerate">
{{ $t('LibraryPage.Generate') }}
<!-- <div v-show="isGenerate"><a-spin size="large" /></div> -->
<div class="generage_btn_box" v-show="!isGenerate[selectCode]">
<div class="generage_btn started_btn">
<div @click.stop="getgenerate">
<span v-if="
selectCode == 'Moodboard' ||
(selectCode == 'Printboard' && scene?.value == 'Pattern') ||
(selectCode == 'Sketchboard' && scene?.value == 'generate')">{{ speedData.label }}</span>
<span v-else>{{ $t('LibraryPage.Generate') }}</span>
</div>
<div class="icon iconfont icon-xiala" v-show="
selectCode == 'Moodboard' ||
(selectCode == 'Printboard' && scene?.value == 'Pattern') ||
(selectCode == 'Sketchboard' && scene?.value == 'generate')" :class="{active:speedState}" @click.stop="openSpeed"></div>
</div>
<div class="content" v-show="speedState">
<div v-for="item in speedList" :key="item.value" @click="setSpeed(item)" :title="item.title">{{ item.label }}</div>
</div>
</div>
<div v-show="isGenerate[selectCode] && !remGenerate[selectCode]" class="generage_btn started_btn" @click.stop="getgenerate">
<i class="fi fi-br-loading"></i>
@@ -419,7 +434,7 @@
</template>
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { defineComponent,h ,ref,createVNode,nextTick,watch,provide,computed} from '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';
@@ -550,6 +565,9 @@ export default defineComponent({
let driver__:any = computed(()=>{
return store.state.Guide.guide
})
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
let generateTime:any = ref({
Sketchboard:'',
Moodboard:'',
@@ -599,6 +617,37 @@ export default defineComponent({
let generateLevel2:any = {}
let isSloganHint:any = ref('')
let printModelList:any = ref([])
let speed = reactive({
speedList:[
{
title:'Picture quality is average, speed is fast',
label:'Low Quality',
value:'fast',
},{
title:'Picture quality is high, speed is slow',
label:'High Quality',
value:'high',
},
],
speedState:false,
speedData:{
title:'Picture quality is average, speed is fast',
label:'Low Quality',
value:'fast',
},
})
const openSpeed = ()=>{
speed.speedState = !speed.speedState
if(speed.speedState){
document.addEventListener('click',openSpeed)
}else{
document.removeEventListener('click',openSpeed)
}
}
const setSpeed = (item:any)=>{
speed.speedData = item
}
let getSex = () =>{
sex.value = store.state.UserHabit.sex.value[0].value
getPosition()
@@ -720,6 +769,7 @@ export default defineComponent({
intersection,
isTest,
driver__,
userDetail,
generateTime,
generateProceedList,
isGenerate,
@@ -739,11 +789,13 @@ export default defineComponent({
getLibraryList,
getClass,
printModelList,
...toRefs(speed),
openSpeed,
setSpeed,
}
},
data(this_) {
return {
userInfo: {},
indicator: h(LoadingOutlined, {
style: {
fontSize: "2.4rem",
@@ -783,10 +835,8 @@ export default defineComponent({
},
async mounted(){
this.upload.gender = this.sex
let userInfo:any = getCookie("userInfo")
let isTest:any = getCookie('isTest')
this.isTest =JSON.parse(isTest)
this.userInfo = JSON.parse(userInfo);
this.uploadUrl = getUploadUrl()
this.token = getCookie("token") || "";
},
@@ -863,17 +913,17 @@ export default defineComponent({
if(this.selectCode == 'Printboard'){
this.printModelList = [
{
num:'',
num:1,
optype:false,
value:'Painting Style',
label:this.t('Generate.Model1')
},{
num:'',
num:2,
optype:false,
value:'Illustration Style',
label:this.t('Generate.Model2')
},{
num:'',
num:3,
optype:false,
value:'Real Style',
label:this.t('Generate.Model3')
@@ -1120,8 +1170,6 @@ export default defineComponent({
_this.store.commit("setWorkspace", rv);
}
})
console.log(newData);
_this.confirmDeletePic('',index,newData)
},
onCancel(){
@@ -1392,8 +1440,6 @@ export default defineComponent({
id:rv.id,
status:'Success',
})
console.log(this.generateList);
this.isShowMark = false
}
}).catch(()=>{
@@ -1450,12 +1496,12 @@ export default defineComponent({
collectionElementId:collectionElementId,
level1Type:selectCodeStr,
level2Type:level2Type,
userId:(this?.userInfo as any).userId,
userId:(this?.userDetail as any).userId,
isTestUser:this.driver__.driver?false:this.isTest,
text:sloganText,
seed:this.searchPictureSeed,
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
version:1,//为1就是Print
version:this.speedData.value,//为1就是Print
gender:selectCodeStr == 'Sketchboard'?this.sex:'',
sloganBase64:base64,
}
@@ -1562,7 +1608,7 @@ export default defineComponent({
}
let data = {
uniqueId:str,
userId:(this?.userInfo as any)?.userId,
userId:(this?.userDetail as any)?.userId,
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
type: type
}
@@ -1970,10 +2016,11 @@ export default defineComponent({
.input_border{
padding-bottom: 0;
background: rgba(0, 0, 0, 0);
width: 50rem;
width: 55rem;
.input_box_btnBox{
background: #fff;
align-items: center;
width:65%;
.search_input{
height: 3rem;
}

View File

@@ -558,25 +558,20 @@ export default defineComponent({
setCookie("isBeginner", isBeginner);
setCookie("isBeginnerNum", 0); //从第一步开始,机器人开始的话就是从第二部开始
setCookie("userInfo", JSON.stringify(rv));
let userid = {
ueserId:rv.userId,
systemUser:rv.systemUser
}
this.store.commit("upUserDetail", userid);
this.store.commit("setSystemUser", rv.systemUser);
let obj: any = {
avatar: rv.avatar,
followeeCount: rv.followeeCount,
followerCount: rv.followerCount,
};
this.store.commit("setUserInfo", obj);
if (rv.systemUser == 0) {
if (window.innerWidth < 768) {
message.info(
"If you need to design, please log in using an iPad or computer."
);
this.turnToHomePage("/Square");
} else {
if (window.innerWidth < 768) {
message.info(
"If you need to design, please log in using an iPad or computer."
);
this.turnToHomePage("/Square");
} else {
this.turnToHomePage("/home");
}
this.turnToHomePage("/home");
}
sessionStorage.setItem(
"isTimeOne",
@@ -627,7 +622,7 @@ export default defineComponent({
//跳转到首页
turnToHomePage(str: any) {
this.getLang();
// this.getLang();
// this.$router.push("/home");
// console.log(window.location.search.substring(1));
this.store.commit("clearAllData");
@@ -637,17 +632,17 @@ export default defineComponent({
this.$router.push(str);
},
//获取当前语言
getLang() {
let data = {};
Https.axiosPost(Https.httpUrls.getUserLanguage, data).then(
(rv: any) => {
if (rv) {
this.locale = rv;
setLang(rv);
}
}
);
},
// getLang() {
// let data = {};
// Https.axiosPost(Https.httpUrls.getUserLanguage, data).then(
// (rv: any) => {
// if (rv) {
// this.locale = rv;
// setLang(rv);
// }
// }
// );
// },
},
mounted() {
const data = this.$route.query
@@ -673,17 +668,22 @@ export default defineComponent({
.login_content {
position: relative;
width: 100%;
height: 100%;
// width: 100%;
// height: 100%;
width: 70%;
display: flex;
justify-content: space-between;
align-items: center;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
@media (max-width: 768px) {
width: 100%;
}
.login_content_left {
width: 50%;
padding: 0 20rem;
width: 60%;
// padding: 0 20rem;
padding-right: 20rem;
@media (max-width: 768px) {
width: 100%;
}

View File

@@ -5,13 +5,13 @@
<i class="fi fi-rr-settings"></i>
</div>
<div class="upgrade-content-wire"></div>
<div class="upgrade-content-text">System upgrading</div>
<!-- <div class="upgrade-content-text">System maintenance</div> -->
<!-- <div class="upgrade-content-text">System upgrading</div> -->
<div class="upgrade-content-text">System maintenance</div>
<!-- 没有截至时间 -->
<div class="upgrade-content-textab">Due to the system server upgrade, we will start the upgrade from 9:30 am Hong Kong time on the weekend of October 20th until October 21st. During this time,<br> the AiDA system will be temporarily inaccessible. We apologize for any inconvenience this may cause and thank you for your understanding.</div>
<!-- <div class="upgrade-content-textab">Due to the system server upgrade, we will start the upgrade from 9:30 am Hong Kong time on the weekend of October 20th until October 21st. During this time,<br> the AiDA system will be temporarily inaccessible. We apologize for any inconvenience this may cause and thank you for your understanding.</div> -->
<!-- 有截至时间 -->
<!-- <div class="upgrade-content-textab">Due to system server upgrades, We will be upgrading from 9:30 am Hong Kong time on Tuesday, July 9 until 17:00 PM on Tuesday, July 9. During this period, access to the AiDA system will be temporarily unavailable.<br> We apologize for any inconvenience this may cause and appreciate your understanding.</div> -->
<!-- <div class="upgrade-content-textab">The AiDA system cannot be accessed temporarily due to system server maintenance. We apologize for any inconvenience this may cause and thank you for your understanding.</div> -->
<div class="upgrade-content-textab">The AiDA system cannot be accessed temporarily due to system server maintenance. We apologize for any inconvenience this may cause and thank you for your understanding.</div>
</div>
</div>
</template>

View File

@@ -0,0 +1,318 @@
<template>
<div class="affiliateHome_page">
<div class="affiliateHome_page_left">
<div class="affiliateHome_title ">
<div class="modal_title_text" @click="setBack">
<i class="fi fi-sr-left"></i>
<div class="modal_title_intro affiliateHome_title_text">Back</div>
</div>
</div>
<div class="modal_title_text">Affiliate</div>
<a-menu
id="dddddd"
class="menu_list_content"
theme="dark"
v-model:openKeys="openKeys"
v-model:selectedKeys="selectedKeys"
mode="inline"
@click="handleClick"
>
<div v-for="(menu) in rootSubmenuKeys" :key="menu.key" >
<a-menu-item :key="menu.key" :name="menu.name" :route="menu.route" v-if="!menu.children">
<template #icon>
<span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span>
</template>
<span class="menu_title" :title="menu.name">{{menu.name}}</span>
</a-menu-item>
<a-sub-menu :key="menu.key" v-else>
<template #icon>
<span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span>
</template>
<template #expandIcon><span :class="['icon','iconfont', 'menu_icon', menu.expandIcon]"></span></template>
<template #title><span class="menu_title" :title="menu.name">{{menu.name}}</span></template>
<div >
<a-menu-item v-for="child in menu.children" :key="child.key" :name="child.name" :route="child.route"><span class="menu_title" :title="child.name">{{child.name}}</span></a-menu-item>
</div>
</a-sub-menu>
</div>
</a-menu>
</div>
<div class="affiliateHome_page_right">
<div class="affiliateHome_page_right_header">
<div class="page_name">
<div v-show="!routers.length" class="page_name_title">{{nowPageName}}</div>
<a-breadcrumb v-show="routers.length" :routes="routers">
<template #itemRender="{ route, routes, paths }">
<span v-if="routes.indexOf(route) === routes.length - 1">
{{ route.breadcrumbName }}
</span>
<router-link v-else :to="`${paths.join('/')}`">
{{ route.breadcrumbName }}
</router-link>
</template>
</a-breadcrumb>
</div>
</div>
<div class="affiliateHome_page_right_content">
<router-view v-slot="{ Component }">
<keep-alive>
<component :is="Component" />
</keep-alive>
</router-view>
</div>
</div>
</div>
</template>
<script lang="ts">
import { message, Upload } from "ant-design-vue";
import { defineComponent, onMounted, h, ref, nextTick, inject,reactive, toRefs } from "vue";
import { Https } from "@/tool/https";
import { useStore } from "vuex";
import { useRouter,useRoute } from 'vue-router'
import { country } from "@/tool/country";
import { getUploadUrl } from "@/tool/util";
export default defineComponent({
components: {
},
props: ["msg",'sketchCatecoryList'],
setup() {
const router = useRouter()
// const route:any = useRoute()
const store:any = useStore()
const state:any = reactive({
rootSubmenuKeys: [{
name:'Affiliate Home',
route:'/affiliate',
icon:'yonghu',
expandIcon:'icon-xiala',
key:'sub1',
isShow:true,
// children: [
// {
// name:'User Management',
// route:'/home/excil1',
// icon:'',
// key:'/home/excil22',
// isShow:true,
// },
// {
// code:'ROLE_MANAGER',
// name:'Access Permission',
// route:'/home/excil2',
// icon:'',
// key:'/home/excil33',
// isShow:true,
// },
// ],
},],
openKeys: [],
selectedKeys: ['sub1'],
nowPageName:'Affiliate Home',//当前页面名称
});
let routers:any = ref([])
const onOpenChange = (openKeys: string[]) => {
const latestOpenKey:any = openKeys.find(key => state.openKeys.indexOf(key) === -1);
if (state.rootSubmenuKeys.indexOf(latestOpenKey!) === -1) {
state.openKeys = openKeys;
} else {
state.openKeys = latestOpenKey ? [latestOpenKey] : [];
}
};
let handleClick = (event:any) => {
// state.selectedKeys = [Number(event.key)]
state.nowPageName = event.item.name
router.push({path:event.item.route})
}
let setBack = ()=>{
router.push('/home');
}
onMounted(() => {
state.rootSubmenuKeys.forEach((item:any) => {
if(item.children){
item.children.forEach((item:any) => {
if(item.route == router.currentRoute.value.path){
state.selectedKeys[0] = item.key
}
});
}else{
if(item.route == router.currentRoute.value.path){
state.selectedKeys[0] = item.key
}
}
});
//储存所有用户id和name
Https.axiosGet(Https.httpUrls.getAllUserId,).then((rv: any) => {
if (rv) {
store.commit('setAllUserList',rv);
}
})
let allCountry = country
sessionStorage.setItem('allCountry',JSON.stringify(allCountry));
// state.nowPageName = state.rootSubmenuKeys[0].name
// router.push(state.rootSubmenuKeys[0].route)
})
return {
...toRefs(state),
onOpenChange,
routers,
handleClick,
setBack,
};
},
data(prop) {
return {
}
},
mounted() {
},
watch:{
// newWindowState:{
// handler(newVal,oldVal){
// console.log(newVal);
// if(newVal){
// this.newWindow?.close();
// }
// }
// },
},
methods: {
},
});
</script>
<style lang="less">
.affiliateHome_page {
width: 100%;
height: 100%;
display: flex;
background: rgba(243,244,248,0.4);
.affiliateHome_title{
display: flex;
align-items: center;
position: sticky;
top: 0;
z-index: 222;
.modal_title_text{
cursor: pointer;
display: flex;
margin-bottom: 0;
font-size: 1.8rem;
}
.affiliateHome_title_text{
line-height: 1;
}
.modal_title_text:hover .affiliateHome_title_text{
text-decoration: underline;
}
i{
font-size: 1.2rem;
display: flex;
align-items: center;
margin-right: 1rem;
}
}
.affiliateHome_page_left{
width: 20%;
padding-top: 20px;
.modal_title_text{
// font-size: var(--aida-fsize1-8);
line-height: 10rem;
text-align: center;
}
.ant-menu-dark.menu_list_content{
padding-left: 1.8rem;
// width: 30rem;
width: 100%;
height: calc(100% - 16rem);
background: #FFFFFF;
flex-shrink: 0;
overflow-y: auto;
&::-webkit-scrollbar{
width: 0;
}
.menu_icon{
font-size: 2.4rem;
color: #808185;
}
.ant-menu-item{
padding-left: 3.1rem !important;
display: flex;
align-items: center;
height: 6.6rem;
border-radius: 3.3rem 0px 0px 3.3rem;
box-sizing: border-box;
&.ant-menu-item-only-child{
padding-left: 5.6rem !important;
}
}
.ant-menu-submenu-title{
padding-left: 3.1rem !important;
height: 6.6rem;
}
.ant-menu-inline.ant-menu-sub{
background: #FFFFFF;
padding-left: 4rem;
}
.menu_title{
font-size: 1.8rem;
font-family: Adobe Heiti Std;
font-weight: normal;
color: #808185;
}
.ant-menu-item-selected{
background: #F3F4F8;
.menu_title{
color: #343579;
}
.menu_icon{
color: #808185;
}
}
}
}
.affiliateHome_page_right{
flex: 1;
width: 80%;
.affiliateHome_page_right_header{
display: flex;
justify-content: space-between;
align-items: center;
height: 6.6rem;
padding: 0 2.8rem 0 3.0rem;
.page_name{
border-left: solid .4rem #161F29;
.page_name_title,.ant-breadcrumb-link{
font-size: 1.8rem;
font-weight: normal;
color: #333333;
padding-left: 1.2rem;
line-height: 1.8rem;
}
}
}
.affiliateHome_page_right_content{
height: 100%;
padding: 0 3rem;
}
}
}
</style>

View File

@@ -0,0 +1,86 @@
<template>
<div class="affiliateRegister">
<div class="title">AiDA 3.0 Questionnaire</div>
<div class="info">Have questions or suggestions? We'd love to hear from you. Send us a message and we'll respond as soon as possible.</div>
<div class="textarea_box">
<div class="text"></div>
<textarea :value="textarea"></textarea>
</div>
<div class="gallery_btn" style="width: 100%;" @click="submit">Register</div>
</div>
<div class="mark_loading" v-show="loadingShow">
<a-spin size="large" />
</div>
</template>
<script lang="ts">
import { message, Upload } from "ant-design-vue";
import { defineComponent, onMounted, h, ref, nextTick, inject,reactive, toRefs } from "vue";
import { Https } from "@/tool/https";
import { useRouter,useRoute } from 'vue-router'
export default defineComponent({
components: {
},
props: ["msg",'sketchCatecoryList'],
setup() {
const router = useRouter()
const affiliateRegisterData:any = reactive({
loadingShow:false,
textarea:'',//当前页面名称
});
const submit = ()=>{
affiliateRegisterData.loadingShow = true
let data = {
promotionMethod:affiliateRegisterData.textarea,
}
Https.axiosGet(Https.httpUrls.affiliateRegistration,{params:data}).then(()=>{
affiliateRegisterData.loadingShow = false
message.success('success')
}).catch((err)=>{
affiliateRegisterData.loadingShow = false
})
}
onMounted(() => {
})
return {
...toRefs(affiliateRegisterData),
submit,
};
},
});
</script>
<style lang="less" scoped>
.affiliateRegister{
width: 100rem;
margin: 0 auto;
margin-top: 14.5rem;
>.title{
font-size: 4rem;
font-weight: 600;
margin-bottom: 4rem;
}
>.info{
margin-bottom: 4rem;
font-size: 1.8rem;
font-weight: 400;
}
>.textarea_box{
margin-bottom: 5rem;
>.text{
font-size: 2rem;
font-weight: 600;
}
textarea{
width: 100%;
height: 18rem !important;
border: 2px solid;
border-radius: 2rem;
background: #f7f8fa;
padding: 2rem;
}
}
}
</style>

View File

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

View File

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

View File

@@ -43,12 +43,7 @@ export default defineComponent({
return {};
},
mounted() {
// this.userInfo = JSON.parse(getCookie("userInfo") as any);
// if (this.userInfo.userId == 83) {
// } else {
// router.replace("/home");
// return
// }
},
methods: {
async setFingerprint2(str:any) {

View File

@@ -111,13 +111,13 @@
</template>
<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";
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";
@@ -128,6 +128,7 @@ export default defineComponent({
RobotAssist,
},
setup() {
const store = useStore()
let rangePickerValue: any = ref([]);
let renameData: any = ref({}); //修改名字选中的数据
const columns: any = computed(() => {
@@ -232,15 +233,17 @@ export default defineComponent({
},
])
let collectionList: any = ref([]);
let userInfo: any = {};
let status: any = ref(0);
let voluntarily: any = ref(false);
let userDetail:any= computed(()=>{
return store.state.UserHabit.userDetail
})
return {
rangePickerValue,
columns,
collectionList,
renameData,
userInfo,
userDetail,
status,
currentState,
state,
@@ -263,10 +266,8 @@ export default defineComponent({
let historyTable: any = this.$refs.historyTable;
this.historyTableHeight = historyTable.clientHeight - 130;
this.gettrialList();
let userInfo:any = getCookie("userInfo")
this.userInfo = JSON.parse(userInfo);
if (this.userInfo.userId == 83 || this.userInfo.userId == 88 || this.userInfo.userId == 6) {
if (this.userDetail.userId == 83 || this.userDetail.userId == 88 || this.userDetail.userId == 6) {
} else {
router.replace("/home");
return