|
|
- <template>
- <view class="page">
- <navbar title="江华"/>
-
- <view class="content">
- <view class="article-list" v-if="!loading">
- <article-item
- v-for="(item, index) in List"
- :key="item.id || index"
- :item="item"
- @click="handleItemClick"
- />
- </view>
-
- <!-- 加载状态 -->
- <view class="loading-container" v-if="loading">
- <text class="loading-text">加载中...</text>
- </view>
-
- <!-- 空状态 -->
- <view class="empty-container" v-if="!loading && List.length === 0">
- <text class="empty-text">暂无文章</text>
- </view>
- </view>
-
- <tabber select="1" />
- </view>
- </template>
-
- <script>
- import tabber from '@/components/base/tabbar.vue'
- import articleItem from '@/components/list/articleItem.vue'
- import loadList from '@/mixins/loadList.js'
-
- export default {
- mixins: [loadList],
- components : {
- tabber,
- articleItem
- },
- data() {
- return {
- mixinsListApi: 'articleList'
- }
- },
- methods: {
- // 处理文章点击事件
- handleItemClick(item) {
- console.log('点击了文章:', item);
- // 跳转到文章详情页
- uni.navigateTo({
- url: `/pages_order/article/index?id=${item.id}`
- })
- }
- }
- }
- </script>
-
- <style scoped lang="scss">
- .page {
- background-color: #f5f5f5;
- min-height: 100vh;
- }
-
- .content {
- padding: 20rpx;
- padding-bottom: 120rpx; // 为底部tabbar留出空间
- }
-
- .article-list {
- display: flex;
- flex-direction: column;
- gap: 20rpx;
- }
-
- .loading-container {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 100rpx 0;
-
- .loading-text {
- font-size: 28rpx;
- color: #999;
- }
- }
-
- .empty-container {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 100rpx 0;
-
- .empty-text {
- font-size: 28rpx;
- color: #999;
- }
- }
- </style>
|