This commit is contained in:
zoujiandong
2025-09-01 16:25:46 +08:00
parent 7270482bd9
commit 82e0a5c10d
14 changed files with 3089 additions and 464 deletions
+60 -37
View File
@@ -14,7 +14,7 @@
<!-- Fixed Banner Swiper -->
<view class="banner-container">
<view class="swipemask">
<view class="banner-subtitle">111111111</view>
<view class="banner-subtitle">{{bannerList[currentBannerIndex].summary}}</view>
<view class="dotbox">
<view class="circle" :class="{active:currentBannerIndex==index} "v-for="(banner, index) in bannerList"
:key="banner.id"></view>
@@ -39,19 +39,12 @@
>
<view class="banner-item">
<image
style="width:100%;"
class="banner-image"
:src="banner.thumbnail || '/static/big_background_my.png'"
mode="aspectFill"
:src="docUrl +banner.headImg"
mode="widthFix"
></image>
<view class="banner-content">
<view class="doctor-avatar" v-if="banner.doctorAvatar">
<image :src="banner.doctorAvatar" mode="aspectFill"></image>
</view>
<view class="banner-info">
<view class="banner-title">{{banner.title}}</view>
<view class="banner-subtitle">{{banner.subtitle || '专业医学视频教育平台'}}</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
@@ -59,7 +52,7 @@
<scroll-view class="news-list" scroll-y="true">
<!-- 肝胆新闻 -->
<view class="news-item" @click="goToNews('hepatoBiliaryNews')">
<view class="news-item" @click="goToNews('news')">
<view class="news-icon blue">
<uni-icons type="paperplane" size="24" color="#fff"></uni-icons>
</view>
@@ -73,7 +66,7 @@
</view>
<!-- 互动圈 -->
<view class="news-item" @click="goToNews('interactionCircle')">
<!-- <view class="news-item" @click="goToNews('interactionCircle')">
<view class="news-icon purple">
<uni-icons type="redo" size="24" color="#fff"></uni-icons>
</view>
@@ -84,10 +77,10 @@
<view class="news-arrow">
<uni-icons type="forward" size="16" color="#ccc"></uni-icons>
</view>
</view>
</view> -->
<!-- 科研项目 -->
<view class="news-item" @click="goToNews('researchProjects')">
<!-- <view class="news-item" @click="goToNews('researchProjects')">
<view class="news-icon orange">
<uni-icons type="star" size="24" color="#fff"></uni-icons>
</view>
@@ -99,9 +92,9 @@
<uni-icons type="forward" size="16" color="#ccc"></uni-icons>
</view>
</view>
-->
<!-- 临床招募 -->
<view class="news-item" @click="goToNews('clinicalRecruitment')">
<!-- <view class="news-item" @click="goToNews('clinicalRecruitment')">
<view class="news-icon green">
<uni-icons type="personadd" size="24" color="#fff"></uni-icons>
</view>
@@ -112,7 +105,7 @@
<view class="news-arrow">
<uni-icons type="forward" size="16" color="#ccc"></uni-icons>
</view>
</view>
</view> -->
<!-- 肝胆会议 -->
<view class="news-item" @click="goToCourse('hepatoBiliaryConference')">
@@ -129,7 +122,7 @@
</view>
<!-- 肝胆活动 -->
<view class="news-item" @click="goToNews('hepatoBiliaryActivities')">
<!-- <view class="news-item" @click="goToNews('hepatoBiliaryActivities')">
<view class="news-icon pink">
<uni-icons type="gift" size="24" color="#fff"></uni-icons>
</view>
@@ -140,18 +133,48 @@
<view class="news-arrow">
<uni-icons type="forward" size="16" color="#ccc"></uni-icons>
</view>
</view>
</view> -->
</scroll-view>
</view>
</template>
<script setup>
import { ref } from 'vue';
import { ref, onMounted } from 'vue';
import { onShow } from "@dcloudio/uni-app";
import api from '@/api/api.js';
import docUrl from "@/utils/docUrl.js";
import navTo from '../../utils/navTo';
onShow(()=>{
bannerList.value = getMockBannerData();
})
onMounted(() => {
loadNewsBanner();
});
onShow(() => {
loadNewsBanner();
});
// 加载新闻轮播数据
const loadNewsBanner = async () => {
try {
console.log(api)
const res = await api.newsRollNew({});
console.log('新闻轮播响应:', res);
if(res && res.code === 200) {
bannerList.value = res.data || [];
console.log('获取到轮播数据:', bannerList.value);
} else {
console.error('加载新闻轮播失败:', res.message);
// 如果接口失败,使用模拟数据作为备选
bannerList.value = getMockBannerData();
}
} catch (e) {
console.error('加载新闻轮播异常:', e);
// 如果接口异常,使用模拟数据作为备选
bannerList.value = getMockBannerData();
}
};
// Banner相关数据
const bannerList = ref([]);
const currentBannerIndex = ref(0);
@@ -204,21 +227,17 @@
// 新闻相关方法
const goToNews = (type) => {
console.log('跳转到新闻类型:', type);
// 这里可以根据不同的新闻类型跳转到相应的页面
uni.showToast({
title: '功能开发中',
icon: 'none'
});
if(type=="news"){
navTo({
url:'/pages_app/newsList/newsList'
})
}
};
const goToCourse = (type) => {
console.log('跳转到课程类型:', type);
// 这里可以根据不同的课程类型跳转到相应的页面
uni.showToast({
title: '功能开发中',
icon: 'none'
});
navTo({
url:'/pages/live/live'
})
};
</script>
@@ -271,6 +290,10 @@
.banner-subtitle {
font-size: 24rpx;
color: rgba(255,255,255,0.8);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 60%;
}
.dotbox{