修复bug

This commit is contained in:
X1627315083
2024-10-08 18:34:22 +08:00
parent 52b9d3ac32
commit 5799db9ef3
15 changed files with 841 additions and 14 deletions

View File

@@ -6,6 +6,6 @@ NODE_ENV = 'development'
VUE_APP_BASE_URL = 'https://develop.api.aida.com.hk'
VUE_APP_BASE_URL = 'https://www.api.aida.com.hk'
# 佩佩
# VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
# VUE_APP_BASE_URL = 'http://192.168.1.4:5567'
# 海波
# VUE_APP_BASE_URL = 'http://192.168.1.9:5567'

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 KiB

View File

@@ -0,0 +1,69 @@
{
"eventsList": [
{
"id": 1,
"title":"Just post your design work, you could have the chance to come to Hong Kong and interact with industry leaders face-to-face",
"imgUrl": "/image/events/workshop-En.jpg"
}
],
"eventsItem":[
{
"id":1,
"title":"Just post your design work, you could have the chance to come to Hong Kong and interact with industry leaders face-to-face",
"imgUrl": "/image/events/workshop-En.jpg",
"textList":[
{
"paragraph":[
{
"text":"🎨AiDA Workshop!"
}
]
},{
"paragraph":[
{
"text":"The process is simple: use AiDA to post your design work on the 'Gallery', and the one with the most likes(at least 20 likes) will be invited to the AiDA Workshop offline event in Hong Kong on November 14th, to exchange ideas with the Royal College of Art (RCA), Jae Lim, co-founder of the renowned fashion brand BESFXXK, and outstanding designers! "
}
]
},{
"paragraph":[
{
"text":"<b>⚠ATTENTION❗❗</b>"
}
]
},{
"paragraph":[
{
"text":"1. Add the tag in the work description #AiDAworkshop_2024"
},{
"text":"2. One winner only"
}
]
},{
"paragraph":[
{
"text":"<b>🤩Code-Create will provide (Terms and conditions apply):</b>"
}
]
},{
"paragraph":[
{
"text":"✅Round-trip transportation fee (only within China)"
}
]
},{
"paragraph":[
{
"text":"✅One night accommodation fee"
}
]
},{
"paragraph":[
{
"text":"⌛Deadline: October 31, 2024"
}
]
}
]
}
]
}

View File

@@ -0,0 +1,69 @@
{
"eventsList": [
{
"id": 1,
"title":"什么?只要发布设计作品就有机会来香港与大佬面对面交流?!",
"imgUrl": "/image/events/workshop-En.jpg"
}
],
"eventsItem":[
{
"id":1,
"title":"什么?只要发布设计作品就有机会来香港与大佬面对面交流?!",
"imgUrl": "/image/events/workshop-En.jpg",
"textList":[
{
"paragraph":[
{
"text":"🎨这是一趟艺术巅峰之旅AiDA Workshop"
}
]
},{
"paragraph":[
{
"text":"参与过程很简单利用AiDA 在 “Gallery广场 ”发布设计作品,最终获赞最高者(至少20个赞将被邀请至11月14日 举办的AiDA Workshop香港线下活动与英国皇家艺术学院RCA、韩国知名时尚品牌BESFXXK创始人JAE以及优秀设计师一同交流(名额仅限1名"
}
]
},{
"paragraph":[
{
"text":"<b>⚠️注意❗❗</b>"
}
]
},{
"paragraph":[
{
"text":"1. 作品描述添加tag: #AiDAworkshop_2024"
},{
"text":"2. 一个冠军名额"
}
]
},{
"paragraph":[
{
"text":"<b>🤩Code-Create将提供适用条款条规</b>"
}
]
},{
"paragraph":[
{
"text":"✅往返机票/动车费用(仅限中国地区)"
}
]
},{
"paragraph":[
{
"text":"✅一晚酒店住宿费用"
}
]
},{
"paragraph":[
{
"text":"⌛截止时间2024.10.31"
}
]
}
]
}
]
}

View File

@@ -0,0 +1,244 @@
<template>
<div class="eventsDetail_page" :class="{active:isScroll}">
<div class="eventsDetail_title ">
<div class="modal_title_text" @click="setBack">
<i class="fi fi-sr-left"></i>
<div class="eventsDetail_title_text">Back</div>
</div>
</div>
<div class="eventsDetail_content">
<div class="eventsDetail_content_left">
<fullScreenImg :src="eventsDetail.imgUrl" width="100%" :center="true"></fullScreenImg>
</div>
<div class="eventsDetail_content_right">
<div class="modal_title_text">
<div>{{ eventsDetail.title }}</div>
</div>
<div class="modal_title_text" v-for="item in eventsDetail.textList">
<div class="eventsDetail_content_right_btn_box">
<div class="eventsDetail_content_right_btn" v-for="buttonItem,buttonIndex in item?.button" @click="openButton(buttonItem,buttonIndex)">
<div v-show="!loadingShow[buttonIndex]" class="started_btn">{{ buttonItem.text }}</div>
<div v-show="loadingShow[buttonIndex]" class="started_btn"><i class="fi fi-br-loading"></i></div>
</div>
</div>
<div class="modal_title_text_intro" v-for="introItem in item?.paragraph" :class="{active:introItem.display == 'flex'}" v-detailText="introItem.text">
</div>
</div>
</div>
</div>
</div>
</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 RobotAssist from "@/component/HomePage/RobotAssist.vue";
import { Https } from "@/tool/https";
import { message, Upload, Modal } from "ant-design-vue";
import fullScreenImg from '@/component/HomePage/fullScreenImg.vue'
import { useRouter } from 'vue-router';
import { useI18n } from "vue-i18n";
import generalMenu from "@/component/HomePage/generalMenu.vue";
import eventData from "@/assets/json/events.json";
import eventDataCn from "@/assets/json/events_cn.json";
import { useStore } from "vuex";
export default defineComponent({
components: {
generalMenu,
fullScreenImg,
},
props:{
isScroll:{
type:Boolean,
default:true,
},
},
setup() {
const router = useRouter();
const store = useStore();
let filter:any = reactive({
eventsDetail: {
},
getListDate:{
"getLikePortfolio": 0,
"getMyPortfolio": 0,
page:1,
size:10,
},
isShowMark:false,
isNoData:false,//如果数据为空就不加载
loadingShow:{},
})
let systemUser = computed(()=>{
return store.state.UserHabit.systemUser
})
let likeFile = (item:any,type:string) => {
}
let setBack = ()=>{
router.go(-1);
}
let openButton = (data:any,index:number)=>{
if(filter.loadingShow[index]){
return
}
filter.loadingShow[index] = true
Https.axiosGet(data.https).then(
(rv: any) => {
if(rv){
message.success(data.success)
filter.loadingShow[index] = false
}
}
).catch(res=>{
filter.loadingShow[index] = false
});
}
onMounted (()=>{
const { t, locale } = useI18n();
const currentLocale = locale.value;
let eventLangData:any
if(currentLocale == 'ENGLISH'){
eventLangData = eventData
}else{
eventLangData = eventDataCn
}
eventLangData.eventsItem.forEach((item:any)=>{
if(item.id == router.currentRoute.value.query.id){
filter.eventsDetail = item;
}
})
})
return {
...toRefs(filter),
systemUser,
likeFile,
setBack,
openButton,
}
},
directives:{
detailText:{
mounted (el,binding) {
el.innerHTML = binding.value
}
}
},
async mounted(){
},
})
</script>
<style lang="less">
.eventsDetail_page {
min-height: 100%;
width: 100%;
padding: 0 9rem;
padding-top: 5rem;
&.active{
display: flex;
flex-direction: column;
height: 100%;
.eventsDetail_content{
overflow-y: auto;
width: 100%;
}
}
@media (max-width: 768px) {
padding-top: 0;
min-height: auto;
padding-bottom: 10rem;
}
.eventsDetail_title{
display: flex;
padding: 2rem 0rem;
align-items: center;
position: sticky;
top: 0;
z-index: 222;
background: #fff;
.modal_title_text{
cursor: pointer;
display: flex;
margin-bottom: 0;
}
.modal_title_text:hover .eventsDetail_title_text{
text-decoration: underline;
}
i{
display: flex;
align-items: center;
margin-right: 1rem;
}
}
.eventsDetail_content{
border-top: 1px solid #f0f0f0;
display: flex;
justify-content: space-between;
padding-top: 8rem;
@media (max-width: 768px) {
flex-direction: column;
}
.eventsDetail_content_left,.eventsDetail_content_right{
width: 50%;
@media (max-width: 768px) {
width: 100%;
}
}
.eventsDetail_content_left{
width: 40%;
max-height: 60rem;
@media (max-width: 768px) {
width: 100%;
}
.ant-image{
// height: auto;
height: 100%;
}
.eventsDetail_content_left_img{
width: 100%;
cursor: zoom-in;
}
}
.eventsDetail_content_right{
.modal_title_text{
letter-spacing: .4rem;
font-weight: 600;
.modal_title_text_intro{
display: block;
&.active{
display: flex;
justify-content: space-between;
}
li{
width: 48%;
}
em{
// font-family: auto;
}
a{
display: inline;
}
}
.eventsDetail_content_right_btn_box{
display: flex;
justify-content: space-evenly;
.eventsDetail_content_right_btn{
}
}
}
.modal_title_text:last-child{
}
.modal_title_text:last-child::after{
content: "";
display: block;
border-top: 3px solid;
height: 6rem;
}
}
}
}
</style>

View File

@@ -41,7 +41,7 @@
</div>
<div class="publidh_content_item_tagList">
<div v-for="item,index in tagList" @click="pushTag(item,index)">
<a-tag color="purple">{{ item.tag }}</a-tag>
<a-tag color="purple" :title="item.title">{{ item.tagName }}</a-tag>
</div>
</div>
<div class="publidh_right_detail publidh_content_item">
@@ -104,8 +104,7 @@ export default defineComponent({
isSecondaryCreation:true,
}
})
let tagList = ref([{tag:'#RCAworkshop_2024 '},{tag:'#RCAwork '},{tag:'#RCAwo '},{tag:'#RCAwork '}])
let selectTagList:any = ref([])
let tagList = ref([{tagId:1,tagName:'#RCAworkshop_2024 ',title:'The process is simple: use AiDA to post your design work on the "Gallery ", and the one with the most likes(at least 20 likes) will be invited to the AiDA Workshop offline event in Hong Kong on November 14th, to exchange ideas with the Royal College of Art (RCA), Jae Lim, co-founder of the renowned fashion brand BESFXXK, and outstanding designers! '}])
// let textarea: any = ref(null)
// let setCopy = ()=>{
// textarea.value.select()
@@ -131,6 +130,7 @@ export default defineComponent({
status:'',
updateDate:'',
collectionId:'',
tagsDTO:[],
// isAllowLikes:true,
}
}
@@ -144,14 +144,25 @@ export default defineComponent({
const regex = /#\S+\s/g;
// 使用match方法提取匹配的字符串
const matches = text.match(regex);
// 处理提取结果,去掉空格并返回
return matches ? matches.map((match:any) => match.trim()) : [];
}
let textareaChange = ()=>{
console.log(extractHashtags(publishData.subPublishDate.portfolioDes));
let tagListArr = extractHashtags(publishData.subPublishDate.portfolioDes)
let tagsDTO:any = []
tagListArr.forEach((item:any) => {
const index = tagList.value.findIndex((obj:any) => obj.tagName === item);
if(index>-1){
let obj = {
tagName:tagList.value[index],
tagId:tagList.value[index].tagId
}
tagsDTO.push(tagList.value[index])
}else{
tagsDTO.push({tagName:item})
}
});
publishData.subPublishDate.tagsDTO = tagsDTO
}
let setPermissionsItem = ()=>{
// publishData.selectPermissions.isAllowLikes &&
@@ -214,6 +225,7 @@ export default defineComponent({
param.append('file',file)
publishData.subPublishDate.openSource = publishData.selectPermissions.isSecondaryCreation?1:0
param.append('data',JSON.stringify(publishData.subPublishDate))
param.append('tagsDTO',JSON.stringify(publishData.subPublishDate.tagsDTO))
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
// let data = publishData.subPublishDate
publishData.isShowMark = true
@@ -236,7 +248,7 @@ export default defineComponent({
// if(tag.tag == 'RCAworkshop_2024'){
// publishData.subPublishDate.portfolioDes = '#AiDA x RCA workshop '
// }
publishData.subPublishDate.portfolioDes = publishData.subPublishDate.portfolioDes+tag.tag
publishData.subPublishDate.portfolioDes = publishData.subPublishDate.portfolioDes+tag.tagName
textareaChange()
}
return {
@@ -244,7 +256,6 @@ export default defineComponent({
publishMask,
...toRefs(publishData),
tagList,
selectTagList,
// textarea,
// setCopy,
init,

View File

@@ -0,0 +1,77 @@
<template>
<nav class="homeMain_nav_content">
<!-- <router-link :class="['nav_item',$route.name === 'homePage' ? 'select_nav' : '', ]" :to="`/home/homePage`">
{{$t('Header.HOME')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'library' ? 'select_nav' : '', ]" :to="`/home/library`">
{{$t('Header.LIBRARY')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'history' ? 'select_nav' : '', ]" :to="`/home/history`">
{{$t('Header.HISTORY')}}
</router-link>
<router-link :class="['nav_item',$route.name === 'works' ? 'select_nav' : '', ]" :to="`/home/works`">
{{$t('Header.WORKS')}}
</router-link> -->
<router-link v-for="item in routerList" :class="['nav_item',item.routerName.indexOf($route.name) > -1 ? 'select_nav' : '', ]" :to="item.router">{{ item.name }}</router-link>
</nav>
</template>
<script >
import { defineProps } from 'vue';
import { defineComponent, createVNode, ref, computed } from "vue";
export default defineComponent({
components: {
},
props:['routerList'],
setup(props,{emit}){
return {
}
},
})
</script>
<style lang="less" scoped>
.homeMain_nav_content {
display: flex;
// margin-left: 28.9rem;
// margin-left: 46.2rem;
align-items: center;
height: 7rem;
justify-content: 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;
position: relative;
&.nav_item:last-child{
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%;
}
}
}
</style>

View File

@@ -5,6 +5,7 @@ export default {
LIBRARY:'收藏',
HISTORY:'历史',
WORKS:'作品广场',
EVENTS:'活动',
bindEmail:'绑定邮箱',
logOff:'退出登录',
Tutorial:'教程',

View File

@@ -5,6 +5,7 @@ export default {
LIBRARY:'LIBRARY',
HISTORY:'HISTORY',
WORKS:'GALLERY',
EVENTS:'EVENTS',
bindEmail:'bind email',
logOff:'log off',
Tutorial:'Tutorial',

View File

@@ -34,7 +34,7 @@
</div>
</div>
<nav class="homeMain_nav_content">
<!-- <nav class="homeMain_nav_content">
<router-link :class="['nav_item',$route.name === 'homePage' ? 'select_nav' : '', ]" :to="`/home/homePage`">
{{$t('Header.HOME')}}
</router-link>
@@ -47,7 +47,8 @@
<router-link :class="['nav_item',$route.name === 'works' ? 'select_nav' : '', ]" :to="`/home/works`">
{{$t('Header.WORKS')}}
</router-link>
</nav>
</nav> -->
<navRouter :routerList="navRouterList"></navRouter>
<div class="homeMain_right">
<img
@@ -114,7 +115,7 @@
</div>
</template>
<script >
import { defineComponent, createVNode, ref, computed } from "vue";
import { defineComponent, createVNode, ref, computed, onMounted } from "vue";
import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import payOrder from "@/component/Pay/payOrder.vue";
@@ -131,6 +132,7 @@ import { useStore } from "vuex";
import { setLang } from "@/tool/guide";
import showViewVideo from "@/tool/mount";
import { useI18n } from "vue-i18n";
import navRouter from "@/component/modules/navRouter.vue";
export default defineComponent({
components: {
VerificationCodeInput,
@@ -140,6 +142,7 @@ export default defineComponent({
UpgradePlan,
payOrder,
TaskPage,
navRouter,
},
setup(){
const store = useStore();
@@ -153,6 +156,32 @@ export default defineComponent({
let activeCredits = ref(false)
let getLangIsShowMark = ref(true)
let AdministratorUserIdList = [88,6,46,31,73,83,87,4]
let navRouterList = ref([])
onMounted(()=>{
navRouterList.value = [
{
routerName:['homePage'],
router:'/home/homePage',
name:t('Header.HOME')
},{
routerName:['library'],
router:'/home/library',
name:t('Header.LIBRARY')
},{
routerName:['history'],
router:'/home/history',
name:t('Header.HISTORY')
},{
routerName:['works'],
router:'/home/works',
name:t('Header.WORKS')
},{
routerName:['events','eventsDetail'],
router:'/home/events',
name:t('Header.EVENTS')
},
]
})
return {
store,
t,
@@ -163,6 +192,7 @@ export default defineComponent({
activeCredits,
getLangIsShowMark,
AdministratorUserIdList,
navRouterList,
}
},
data() {

View File

@@ -0,0 +1,315 @@
<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}">
{{ item.name }}
</div>
<div v-show="!isScroll && systemUser.value == -1" class="modal_title_text_assistant active">All</div>
</div>
<div class="page_content" >
<div class="page_content_itemBox">
<div class="page_content_item" v-for="item in eventsList" :key="item.id" v-fadeIn="isScroll">
<div class="page_content_item_img" @click="openEventsDetail(item)">
<img :src="item.imgUrl" alt="">
</div>
<div class="page_content_item_time">{{ item.time }}</div>
<div class="page_content_item_title" @click="openEventsDetail(item)">{{ item.title }}</div>
</div>
</div>
<div class="page_loading_box" v-show="!isNoData">
<span class="page_loading" v-show="!isShowMark"></span>
<span v-show="isShowMark">
<a-spin size="large" />
</span>
</div>
</div>
</div>
</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";
import generalMenu from "@/component/HomePage/generalMenu.vue";
import { useStore } from "vuex";
import eventData from "@/assets/json/events.json";
import eventDataCn from "@/assets/json/events_cn.json";
import { useRouter } from 'vue-router'
import { gsap, TweenMax } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
export default defineComponent({
components: {
generalMenu,
},
props:{
isScroll:{
type:Boolean,
default:true,
},
},
setup() {
const router:any = useRouter()
const store = useStore();
let filter:any = reactive({
worksSelect: 'all',
worksType: [
{
name: useI18n().t('works.all'),
value: 'all'
},
// {
// name: useI18n().t('works.FavoriteWorks'),
// value: 'favoriteWorks'
// },
// {
// name: useI18n().t('works.MyWorks'),
// value: 'myWorks'
// },
],
eventsList:[],
getListDate:{
"getLikePortfolio": 0,
"getMyPortfolio": 0,
page:1,
size:10,
},
isShowMark:false,
isNoData:false,//如果数据为空就不加载
})
let systemUser = computed(()=>{
return store.state.UserHabit.systemUser
})
let selectMenu:any = ref({
label:'全部',
value:'all',
})
let setWorksSelect = (val:any) => {
// filter.worksSelect = val.value
// filter.getListDate.getLikePortfolio = 0
// filter.getListDate.getMyPortfolio = 0
// if(val.value == 'all'){
// }else if(val.value == 'favoriteWorks'){
// filter.getListDate.getLikePortfolio = 1
// }else if(val.value == 'myWorks'){
// filter.getListDate.getMyPortfolio = 1
// }
// filter.getListDate.page = 0
filter.isShowMark = false
filter.isNoData = false
// getPorfolio()
}
let likeFile = (item:any,type:string) => {
}
let getImgScale = (item:any)=>{
}
let getPorfolio = ()=>{
let data = filter.getListDate
if(filter.isShowMark && !filter.isNoData)return
filter.isShowMark = true
Https.axiosPost(Https.httpUrls.getPorfolio, data)
.then((rv) => {
if (rv.content.length > 0) {
} else {
filter.isNoData = true
}
filter.isShowMark = false
})
.catch((rv) => {
filter.isShowMark = false
filter.isNoData = true
});
}
let {t} = useI18n()
let openEventsDetail = (item:any)=>{
let path = router.currentRoute._value.path.split('/')[1]
router.push(`/${path}/eventsDetail?id=${item.id}`)
// router.push(`${path}?id=${item.id}`)
}
onMounted (()=>{
// filter.isShowMark = false
// filter.isNoData = false
// getPorfolio()
// let worksPage:any = document.querySelector('.events_page')
// let imgParent:any = document.querySelector('.events_page .page_loading')
// new IntersectionObserver(
// (entries, observer) => {
// // 如果不是相交,则直接返回
// if (!entries[0].intersectionRatio) return;
// filter.getListDate.page += 1
// getPorfolio()
// },
// ).observe(imgParent);
const { t, locale } = useI18n();
const currentLocale = locale.value;
if(currentLocale == 'ENGLISH'){
filter.eventsList = eventData.eventsList
}else{
filter.eventsList = eventDataCn.eventsList
}
})
return {
...toRefs(filter),
systemUser,
selectMenu,
setWorksSelect,
likeFile,
getImgScale,
t,
openEventsDetail,
}
},
directives:{
fadeIn:{
mounted (el,binding) {
let dom
if(binding.value){
dom = document.querySelector('.events_page')
}else{
dom = document.querySelector('.homeRecommend_content_body')
}
gsap.registerPlugin(ScrollTrigger);
let tl1 = gsap.timeline();
tl1.from(el,1, {y:'30px',opacity:0},)
ScrollTrigger.create({
trigger: el, // 触发器元素
start: "top 90%", // 滚动触发器的起始滚动位置
end: '100% 80%', // 滚动触发器的结束滚动位置
// markers: true, // 开启标注功能
animation:tl1,
scroller:dom,//设置指定元素为滚动依据
scrub:2,
// onUpdate:(v)=>{
// if(v.progress < 0.1){
// v.trigger?.classList.remove('active')
// }else{
// v.trigger?.classList.add('active')
// // v.trigger?.classList.add('active')
// }
// }
});
}
},
},
async mounted(){
},
})
</script>
<style lang="less">
.el-icon{
font-size: 14px;
}
.events_page {
border-radius: 4rem;
width: 100%;
// overflow: hidden;
// height: 100%;
height: auto;
min-height: 100%;
padding: 0 9rem;
// min-width: 1440px;
position: relative;
padding-top: 5rem;
display: flex;
flex-direction: column;
.modal_title_text{
display: flex;
margin: 0;
padding-bottom: 2.4rem;
.modal_title_text_assistant{
padding: 1rem 3rem;
border-radius: 2rem;
background: #eee;
margin-right: 1rem;
cursor: pointer;
}
.modal_title_text_assistant:last-child{
margin-right: 0;
}
.active{
background: #39215b;
color: #fff;
}
.modal_search_menu{
margin-left: auto;
z-index: 10;
.generalMenu_printModel{
margin-right: 0;
}
}
}
.page_content {
position: relative;
min-height: 80%;
height: auto;
background: #f7f8fa;
width: 100%;
flex: 1;
@media (max-width: 768px) {
background: #fff;
}
.page_content_itemBox{
display: flex;
flex-wrap: wrap;
.page_content_item{
max-width: 25%;
padding: 2rem;
@media (max-width: 768px) {
max-width: 100%;
}
.page_content_item_img{
width: 100%;
aspect-ratio: 16 / 10;
display: flex;
align-items: center;
cursor: pointer;
img{
width: 100%;
object-fit: contain;
border-radius: 2rem;
}
}
.page_content_item_time{
color: #5f5f5f;
}
.page_content_item_title{
text-overflow: ellipsis; /* 显示省略号 */
overflow: hidden; /* 溢出隐藏 */
display: -webkit-box;
-webkit-line-clamp: 2; /* 限制显示的行数 */
-webkit-box-orient: vertical;
font-weight: 800;
color: #000000;
cursor: pointer;
}
.page_content_item_title:hover{
text-decoration: underline;
}
}
}
.page_loading_box{
text-align: center;
height: 50px;
.page_loading{
display: block;
width: 50px;
height: 50px;
}
}
}
&.active{
display: flex;
flex-direction: column;
height: 100%;
.page_content{
overflow-y: auto;
width: 100%;
}
}
}
</style>

View File

@@ -87,6 +87,10 @@ export default defineComponent({
name: useI18n().t('works.MyWorks'),
value: 'myWorks'
},
// {
// name: 'RCA Workshop 2024',
// value: 'RCAworkshop_2024'
// },
],
worksList: [
],
@@ -95,6 +99,7 @@ export default defineComponent({
"getMyPortfolio": 0,
page:1,
size:10,
tagId:'',
},
isShowMark:false,
isNoData:false,//如果数据为空就不加载
@@ -131,12 +136,16 @@ export default defineComponent({
filter.worksSelect = val.value
filter.getListDate.getLikePortfolio = 0
filter.getListDate.getMyPortfolio = 0
filter.getListDate.tagId = ''
if(val.value == 'all'){
}else if(val.value == 'favoriteWorks'){
filter.getListDate.getLikePortfolio = 1
}else if(val.value == 'myWorks'){
filter.getListDate.getMyPortfolio = 1
}else if(val.value == 'RCAworkshop_2024'){
filter.getListDate.tagId = 1
}
filter.getListDate.page = 0
fall.value.clearData()
filter.isShowMark = false

View File

@@ -727,7 +727,7 @@ export default defineComponent({
if(this.selectCode != 'DesignElements'){
this.getClass()
}
if(this.selectCode == 'Sketchboard')this.getSex()
if(this.selectCode == 'Sketchboard' || this.selectCode == 'Models')this.getSex()
this.getLibraryList('')

View File

@@ -37,6 +37,7 @@
"tests/**/*.ts",
"tests/**/*.tsx",
"src/**/*.js",
],
"exclude": [
"node_modules"