人员管理、民主管理、主页优化

This commit is contained in:
2026-10-30 17:49:33 +08:00
parent 7dacfd7e5a
commit 8960d0e723
33 changed files with 296 additions and 111 deletions
@@ -12,7 +12,7 @@ const act = {
<div class="swiper-slide" v-for="(activity, index) in actList" :key="activity.id">
<div class="item" role="button" tabindex="0" @click="go(activity)" @keydown.enter="go(activity)" @keydown.space.prevent="go(activity)">
<div class="img-box">
<el-image :src="activity.cover" fit="cover" :alt="activity.name">
<el-image :src="activity.cover" fit="contain" :alt="activity.name">
<div slot="error" class="portal-cover-empty"><i class="fa fa-picture-o" aria-hidden="true"></i><span>暂无图片</span></div>
</el-image>
<span class="status" :class="{'status-ended': getStatusText(activity) === '已结束', 'status-upcoming': getStatusText(activity) === '未开始'}">
@@ -356,12 +356,9 @@ const act = {
height: 100% !important;
max-width: 100% !important;
max-height: 128px !important;
object-fit: fill !important;
transition: transform 0.3s ease;
}
.activity-swiper .swiper-slide .item:hover .img-box img {
transform: scale(1.1);
/* 活动海报含有文字,等比完整显示且悬停时不放大,避免内容被裁切。 */
object-fit: contain !important;
object-position: center;
}
.activity-swiper .swiper-slide .item h4 {
@@ -5,7 +5,7 @@ const entry = {
<div class="portal-entry-tabs" role="tablist" aria-label="推荐入口">
<button v-for="section in entrySections" :key="section.key"
type="button" role="tab" :aria-selected="activeSection === section.key"
:class="{active: activeSection === section.key}" @click="$set(this, 'activeSection', section.key)">{{ section.title }}</button>
:class="{active: activeSection === section.key}" @click="switchSection(section.key)">{{ section.title }}</button>
</div>
<a class="portal-more" href="/platform/v4/apps">全部应用 <i class="fa fa-arrow-right" aria-hidden="true"></i></a>
</div>
@@ -60,6 +60,10 @@ const entry = {
this.getFavorite()
},
methods: {
// sectionKey 为 serv(推荐服务)、app(推荐应用)或 fav(我的收藏);通过组件方法更新栏目,避免内联事件中 this 指向错误。
switchSection(sectionKey) {
this.$set(this, 'activeSection', sectionKey)
},
// platform 固定传 PC;Result.data 为当前用户有权限的推荐服务数组。
getRecommendService() {
this.$axios.post('/platform/home/listRecommendService', {platform: "PC"}).then(res => {
@@ -118,7 +118,7 @@ layout("/layouts/v4/baseLayout.html"){
</style>
<link rel="stylesheet" href="${base!}/assets/platform/css/home-portal.css?v=20261028-2" />
<link rel="stylesheet" href="${base!}/assets/platform/css/home-portal.css?v=20261030-1" />
<!-- 登录资料仅在 HTML 属性中输出并转义;放在 Vue 挂载区域外,避免名称被当作模板表达式解析。 -->
<div id="v4-home-profile-data" hidden