detail preview可以设置空颜色

This commit is contained in:
X1627315083
2025-05-08 14:09:12 +08:00
parent a4e040d0ff
commit 610e715ca7
30 changed files with 1323 additions and 6496 deletions

View File

@@ -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;

View File

@@ -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')}}:&nbsp;
<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;

View File

@@ -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();

View File

@@ -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{

View File

@@ -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,

View File

@@ -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()

View File

@@ -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"

View File

@@ -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;

View File

@@ -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

View File

@@ -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,
},

View File

@@ -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,
},

View File

@@ -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>