205 lines
4.3 KiB
HTML
205 lines
4.3 KiB
HTML
<!--#
|
|
layout("/layouts/v4/baseLayout.html"){
|
|
#-->
|
|
|
|
<style>
|
|
|
|
.section-banner {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.section-banner .banner-img {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.section-banner .banner-img img {
|
|
width: 100%;
|
|
height: auto;
|
|
display: block;
|
|
}
|
|
|
|
.section-wrapper {
|
|
width: 100%;
|
|
}
|
|
|
|
.home-grid {
|
|
width: 80%;
|
|
margin: 20px auto;
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 24px;
|
|
align-items: stretch;
|
|
row-gap: 24px;
|
|
}
|
|
|
|
.entry-card {
|
|
display: flex;
|
|
/*align-items: center;*/
|
|
min-width: 320px;
|
|
background: transparent;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
padding: 0;
|
|
transition: transform 0.2s, box-shadow 0.2s;
|
|
}
|
|
|
|
.entry-card:hover {
|
|
transform: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.act-card {
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
background: white;
|
|
border-radius: 8px;
|
|
box-shadow: 0 4px 12px rgba(0,0,0,0.06);
|
|
padding: 22px 11px;
|
|
box-sizing: border-box;
|
|
overflow: hidden;
|
|
transition: transform 0.2s, box-shadow 0.2s;
|
|
}
|
|
|
|
.home-section {
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.home-section-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.home-section-title {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: 6px;
|
|
color: #19324d;
|
|
font-size: 18px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.home-section-title i {
|
|
color: #409eff;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.home-section-title em {
|
|
color: #b5c0d6;
|
|
font-size: 14px;
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* 推荐入口的 scoped 样式会在组件挂载后注入,此处提前限制图片尺寸,避免刷新时原图短暂撑开页面。 */
|
|
#v4-home-app .entry-card .app-icon {
|
|
width: 56px;
|
|
height: 56px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
#v4-home-app .entry-card .app-icon img {
|
|
display: block;
|
|
width: 56px;
|
|
height: 56px;
|
|
max-width: 56px;
|
|
max-height: 56px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
</style>
|
|
|
|
<div class="v4-container" id="v4-home-app">
|
|
<!-- 首页banner -->
|
|
<div class="section-banner">
|
|
<div class="banner-img">
|
|
<img :src="homeBannerList[0] || ''" alt=""/>
|
|
<stats></stats>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="" style="padding-bottom: 20px">
|
|
<user></user>
|
|
|
|
<div class="home-grid">
|
|
<div class="entry-card">
|
|
<entry></entry>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="home-grid">
|
|
<div class="home-section">
|
|
<div class="home-section-header">
|
|
<div class="home-section-title">
|
|
<i class="fa fa-calendar"></i>
|
|
<span>最新活动</span>
|
|
<em>/Activities</em>
|
|
</div>
|
|
</div>
|
|
<div class="act-card">
|
|
<act></act>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<work-template v-if="$auth.hasRoleOr(['SYSADMIN','SCHOOL_UNION_ADMIN'])"></work-template>
|
|
|
|
<!-- <jcdt :list="websiteNews"></jcdt> -->
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script nonce="${cspNonce!}">
|
|
<!--#include("act.js"){}#-->
|
|
<!--#include("template.js"){}#-->
|
|
<!--#include("jcdt.js"){}#-->
|
|
<!--#include("entry.js"){}#-->
|
|
<!--#include("user.js"){}#-->
|
|
|
|
<!--#include("stats.js"){}#-->
|
|
|
|
new Vue({
|
|
el: '#v4-home-app',
|
|
data(){
|
|
return{
|
|
websiteNews: [],
|
|
homeBannerList: "${config.AppHomeImg!}".split(",").map(item => item.trim()).filter(item => item)
|
|
}
|
|
},
|
|
components: {
|
|
'act': act,
|
|
'work-template': workTemplate,
|
|
'jcdt': jcdt,
|
|
'entry': entry,
|
|
'user': user,
|
|
'stats': stats,
|
|
},
|
|
mounted() {
|
|
// this.getWebSiteNews()
|
|
},
|
|
methods: {
|
|
getWebSiteNews(){
|
|
this.$axios.post('/platform/home/getNews').then(res => {
|
|
if (res.code === 0) {
|
|
this.websiteNews = res.data
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
</script>
|
|
|
|
|
|
<!--#
|
|
}
|
|
#-->
|