@@ -23,19 +23,21 @@
< v -window -item value = "notice" >
< div class = "news-grid" >
< v-card v-for = "item in postData.notice" class="news-card" width="340" >
< v -img :src = "item. cover" cover style = "height: 150px" @click ="toPost(item)" > < / v-img >
< div class = "news- cover" @click ="toPost(item)" >
< img :src = "item.cover" alt = "cover" / >
< / div >
< v-card-title > { { item . title } } < / v-card-title >
< v-card-actions >
< v-btn @click ="toPost(item)" class = "ms-2 card-btn" >
< v-btn @click ="toPost(item)" class = "card-btn" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
查看
< / v-btn >
< v-card-subtitle > id : { { item . post _id } } < / v-card-subtitle >
< v-btn @click ="toJson(item)" class = "ms-2 card-btn" v-show = "appStore.devMode" >
< v-btn @click ="toJson(item)" class = "card-btn" v-show = "appStore.devMode" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
JSON
< / v-btn >
@@ -43,9 +45,9 @@
< / v-card >
< / div >
< div class = "load-news" >
< v-btn @click ="loadMore('notice')" >
< v-btn @click ="loadMore('notice')" :loading = "loadingSub" >
< template v -slot : append >
< img src = "../assets/icons/arrow-left.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-left.svg" alt = "right" / >
< / template >
已加载 : { { noticeData . last _id } } , 加载更多
< / v-btn >
@@ -54,20 +56,21 @@
< v-window-item value = "activity" >
< div class = "news-grid" >
< v-card class = "news-card" v-for = "item in postData.activity" width="340" >
< v -img :src = "item. cover" cover style = "height: 150px" @click ="toPost(item)" > < / v-img >
< div class = "news- cover" @click ="toPost(item)" >
< img :src = "item.cover" alt = "cover" / >
< / div >
< v-card-title > { { item . title } } < / v-card-title >
< v-card-subtitle > { { item . subtitle } } < / v-card-subtitle >
< v-card-actions >
< v-btn @click ="toPost(item)" class = "ms-2 card-btn" >
< v-btn @click ="toPost(item)" class = "card-btn" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
查看
< / v-btn >
< v-card-subtitle > id : { { item . post _id } } < / v-card-subtitle >
< div v-show = "!appStore.devMode" >
< v -btn
class = "ms-2"
: style = "{
background: item.status?.colorCss,
color: '#faf7e8 !important',
@@ -75,9 +78,9 @@
> { { item . status ? . status } } < / v - b t n
>
< / div >
< v-btn @click ="toJson(item)" class = "ms-2 card-btn" v-show = "appStore.devMode" >
< v-btn @click ="toJson(item)" class = "card-btn" v-show = "appStore.devMode" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
JSON
< / v-btn >
@@ -85,9 +88,9 @@
< / v-card >
< / div >
< div class = "load-news" >
< v-btn @click ="loadMore('activity')" >
< v-btn @click ="loadMore('activity')" :loading = "loadingSub" >
< template v -slot : append >
< img src = "../assets/icons/arrow-left.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-left.svg" alt = "right" / >
< / template >
已加载 : { { activityData . last _id } } , 加载更多
< / v-btn >
@@ -96,19 +99,21 @@
< v-window-item value = "news" >
< div class = "news-grid" >
< v-card class = "news-card" v-for = "item in postData.news" width="340" >
< v -img :src = "item. cover" cover style = "height: 150px" @click ="toPost(item)" > < / v-img >
< div class = "news- cover" @click ="toPost(item)" >
< img :src = "item.cover" alt = "cover" / >
< / div >
< v-card-title > { { item . title } } < / v-card-title >
< v-card-actions >
< v-btn @click ="toPost(item)" class = "ms-2 card-btn" >
< v-btn @click ="toPost(item)" class = "card-btn" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
查看
< / v-btn >
< v-card-subtitle > id : { { item . post _id } } < / v-card-subtitle >
< v-btn @click ="toJson(item)" class = "ms-2 card-btn" v-show = "appStore.devMode" >
< v-btn @click ="toJson(item)" class = "card-btn" v-show = "appStore.devMode" >
< template v -slot : prepend >
< img src = "../assets/icons/arrow-right.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-right.svg" alt = "right" / >
< / template >
JSON
< / v-btn >
@@ -116,9 +121,9 @@
< / v-card >
< / div >
< div class = "load-news" >
< v-btn @click ="loadMore('news')" >
< v-btn @click ="loadMore('news')" :loading = "loadingSub" >
< template v -slot : append >
< img src = "../assets/icons/arrow-left.svg" alt = "right" onload = "SVGInject(this)" / >
< img src = "../assets/icons/arrow-left.svg" alt = "right" / >
< / template >
已加载 : { { newsData . last _id } } , 加载更多
< / v-btn >
@@ -136,9 +141,6 @@ import TLoading from "../components/t-loading.vue";
import { dialog } from "@tauri-apps/api" ;
// store
import useAppStore from "../store/modules/app" ;
// tools
// @ts-ignore
import "../tools/svg-inject.js" ;
// plugin
import MysOper from "../plugins/Mys" ;
// utils
@@ -153,6 +155,7 @@ const appStore = useAppStore();
// loading
const loading = ref ( true ) ;
const loadingTitle = ref ( "正在加载" ) ;
const loadingSub = ref ( false ) ;
// 路由
const router = useRouter ( ) ;
// search
@@ -188,55 +191,46 @@ onMounted(async () => {
// 加载更多
async function loadMore ( data : string ) {
let check = true ;
loadingSub . value = true ;
switch ( data ) {
case "notice" :
if ( noticeData . value . is _last ) {
await dialog . message ( "已经是最后一页了" ) ;
loadingSub . value = false ;
return ;
}
if ( noticeData . value . last _id === 50 ) {
check = await dialog . confirm ( "由于API限制, 获取到的数据数量可能变更为20, 是否继续? " ) ;
if ( ! check ) return ;
}
loading . value = true ;
loadingTitle . value = "正在获取公告数据..." ;
noticeData . value = await MysOper . News . get . notice ( noticeData . value . last _id + 10 ) ;
loadingTitle . value = "正在渲染数据..." ;
const getNotice = await MysOper . News . get . notice ( 20 , noticeData . value . last _id ) ;
noticeData . value . last _id = getNotice . last _id ;
noticeData . value . is _last = getNotice . is _last ;
noticeData . value . list = noticeData . value . list . concat ( getNotice . list ) ;
postData . value . notice = MysOper . News . card . notice ( noticeData . value ) ;
loading . value = false ;
loadingSub . value = false ;
break ;
case "activity" :
if ( activityData . value . is _last ) {
await dialog . message ( "已经是最后一页了" ) ;
loadingSub . value = false ;
return ;
}
if ( activityData . value . last _id === 50 ) {
check = await dialog . confirm ( "由于API限制, 获取到的数据数量可能变更为20, 是否继续? " ) ;
if ( ! check ) return ;
}
loading . value = true ;
loadingTitle . value = "正在获取活动数据..." ;
activityData . value = await MysOper . News . get . activity ( activityData . value . last _id + 10 ) ;
loadingTitle . value = "正在渲染数据..." ;
const getActivity = await MysOper . News . get . activity ( 20 , activityData . value . last _id ) ;
activityData . value . last _id = getActivity . last _id ;
activityData . value . is _last = getActivity . is _last ;
activityData . value . list = activityData . value . list . concat ( getActivity . list ) ;
postData . value . activity = MysOper . News . card . activity ( activityData . value ) ;
loading . value = false ;
loadingSub . value = false ;
break ;
case "news" :
if ( newsData . value . is _last ) {
await dialog . message ( "已经是最后一页了" ) ;
loadingSub . value = false ;
return ;
}
if ( newsData . value . last _id === 50 ) {
check = await dialog . confirm ( "由于API限制, 获取到的数据数量可能变更为20, 是否继续? " ) ;
if ( ! check ) return ;
}
loading . value = true ;
loadingTitle . value = "正在获取新闻数据..." ;
newsData . value = await MysOper . News . get . news ( newsData . value . last _id + 10 ) ;
loadingTitle . value = "正在渲染数据..." ;
const getNews = await MysOper . News . get . news ( 20 , newsData . value . last _id ) ;
newsData . value . last _id = getNews . last _id ;
newsData . value . is _last = getNews . is _last ;
newsData . value . list = newsData . value . list . concat ( getNews . list ) ;
postData . value . news = MysOper . News . card . news ( newsData . value ) ;
loading . value = false ;
loadingSub . value = false ;
break ;
}
}
@@ -297,7 +291,7 @@ async function searchPost() {
}
< / script >
< style lang = "css" >
< style lang = "css" scoped >
. news - grid {
font - family : Genshin , serif ;
display : grid ;
@@ -305,22 +299,29 @@ async function searchPost() {
grid - gap : 20 px ;
}
. news - grid img {
transition : all 0.3 s linear ;
}
. news - grid : hover img {
cursor : pointer ;
transform : scale ( 1.1 ) ;
transition : all 0.3 s linear ;
}
. news - card {
border - radius : 10 px ;
background : # faf7e8 ;
color : # 546 d8b ;
}
. news - cover {
height : 150 px ;
overflow : hidden ;
}
. news - cover : hover {
transform : scale ( 1.1 ) ;
transition : all 0.3 s linear ;
cursor : pointer ;
}
. news - cover img {
object - fit : cover ;
width : 100 % ;
height : 150 px ;
transition : all 0.3 s linear ;
}
/* load more */
. load - news {
font - family : Genshin , serif ;
@@ -330,7 +331,6 @@ async function searchPost() {
align - items : center ;
padding : 10 px ;
border - radius : 5 px ;
cursor : pointer ;
transition : all 0.3 s linear ;
}
@@ -339,12 +339,8 @@ async function searchPost() {
color : # faf7e8 ! important ;
}
. load - news button sv g {
. load - news button im g {
width : 18 px ;
height : 18 px ;
}
. load - news button svg path {
fill : # faf7e8 ;
}
< / style >