当前位置: 首页 > 知识库问答 >
问题:

javascript - uniapp 想实现不同tab 显示不同数据?

慕迪
2023-06-23

如何让不同的分类展示不同的数据
我想让id为1的 显示在全部栏目下 id为2显示吃吃喝喝栏目下 因该怎么改

swiperDateList: [
                    {
                        id: 1,
                        title:'一起吃个饭',
                        time:2020,
                        location: '1111',
                        publisher: '小丁',
                        remark: '备注'
                    },

image.png

<template>
    <view class="body-view">
        <!-- 使用scroll-view实现tabs滑动切换 -->
        <scroll-view class="top-menu-view" scroll-x="true" :scroll-into-view="tabCurrent">
            <view class="menu-topic-view" v-for="item in tabs" :id="'tabNum'+item.id" :key="(item.id - 1)" @click="swichMenu(item.id - 1)">
                <view :class="currentTab==(item.id - 1) ? 'menu-topic-act' : 'menu-topic'">
                    <text class="menu-topic-text">{{item.name}}</text>
                    <view class="menu-topic-bottom">
                        <view class="menu-topic-bottom-color"></view>
                    </view>
                </view>
            </view>
        </scroll-view>
        <!-- 内容 -->
        <swiper class="swiper-box-list" :current="currentTab" @change="swiperChange">
            <swiper-item class="swiper-topic-list" v-for="item in swiperDateList" :key="item.id">
                
                <view class="swiper-item">
                    
                    <view class="list">
                        <view class="item">
                            <view class="item-start">
                                <van-tag type="success">标题</van-tag>
                                <span class="item-start-value">{{item.time}}</span>
                            </view>
                            <view class="item-end" data-lat="" data-lng="">
                                <van-tag type="danger">时间</van-tag>
                                <span class="item-end-value">{{item.time}}</span>
                            </view>
                            <view class="item-time">
                                <span> 地点</span>
                                <span class="item-end-value">{{item.location}}</span>
                            </view>
                            <view class="item-seating">
                                <van-tag type="primary">发布人:</van-tag>
                                <span>{{item.publisher}}</span>
                            </view>
                            <van-divider></van-divider>
                            <view class="item-remark">
                                备注:{{item.remark}}
                            </view>
                        </view>
                    </view>
                    
                    
                </view>
            </swiper-item>
        </swiper>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                tabs: [{
                        id: 1,
                        name: '全部'
                    },
                    {
                        id: 2,
                        name: '吃吃喝喝'
                    },
                    {
                        id: 3,
                        name: '生活琐碎'
                    },
                    {
                        id: 4,
                        name: '户外放风'
                    },
                    {
                        id: 5,
                        name: '健身自律'
                    },
                    {
                        id: 6,
                        name: '其他'
                    },
                    
                ],
                currentTab: 0,
                tabCurrent: 'tabNum1',
                // Tab切换内容
                swiperDateList: [
                    {
                        id: 1,
                        title:'一起吃个饭',
                        time:2020,
                        location: '1111',
                        publisher: '小丁',
                        remark: '备注'
                    },
                    {
                        id: 1,
                        title:'一起吃个饭2',
                        time:222,
                        location: '2222',
                        publisher: '小丁',
                        remark: '备注2'
                    },
                    {
                        id: 2,
                        content: '交通交通'
                    },
                    {
                        id: 3,
                        content: '住房'
                    },
                    {
                        id: 4,
                        content: '社会保障'
                    },
                    {
                        id: 5,
                        content: '民生热点'
                    },
                    {
                        id: 6,
                        content: '即日头条'
                    },
                ],
            }
        },
        onLoad() {

        },
        methods: {
            swichMenu(id) {
                this.currentTab = id
                console.log(11,id)
                this.tabCurrent = 'tabNum'+ id
                
            },
            swiperChange(e) {
                console.log(22,e.detail.current)
                let index = e.detail.current
                this.swichMenu(index)
            }
        }
    }
</script>

<style scoped lang="scss">
    .body-view {
        height: 100vh;
        width: 100%;
        display: flex;
        flex: 1;
        flex-direction: column;
        overflow: hidden;
        align-items: flex-start;
        justify-content: center;
    }

    .top-menu-view {
        display: flex;
        position: fixed;
        top: 0rpx;
        left: 0;
        white-space: nowrap;
        width: 100%;
        background-color: #FFFFFF;
        height: 86rpx;
        line-height: 86rpx;
        border-top: 1rpx solid #d8dbe6;

        .menu-topic-view {
            display: inline-block;
            white-space: nowrap;
            height: 86rpx;
            position: relative;

            .menu-topic-text {
                font-size: 30rpx;
                color: #303133;
                padding: 10rpx 40rpx;
            }

            // .menu-topic-act {
            //     margin-left: 30upx;
            //     margin-right: 10upx;
            //     position: relative;
            //     height: 100%;
            //     display: flex;
            //     align-items: center;
            //     justify-content: center;
            // }

            .menu-topic-bottom {
                position: absolute;
                bottom: 0;
                width: 100%;

                .menu-topic-bottom-color {
                    width: 40rpx;
                    height: 4rpx;
                }
            }

            .menu-topic-act .menu-topic-bottom {
                display: flex;
                justify-content: center;
            }

            .menu-topic-act .menu-topic-bottom-color {
                background: #3d7eff;
            }



        }


    }

    .swiper-box-list {
        width: 100%;
        padding-top: 200rpx;
        flex:1;
        background-color: #FFFFFF;
        .swiper-topic-list {
             width: 100%;
         }
    }
</style>

共有1个答案

朱承载
2023-06-23

看你的数据是怎么来的,如果是一次性读取到全部的,可以用以下两种方式:

  1. 在获取到数据之后做好分类,分类在几个不同的当中,然后再模版中按照不同情况渲染列表面板,多数情况下会使用 uViewUI 的tabs组件。然后按照激活标签显示对应的面板。
  2. 获取到数据之后直接赋值给一个变量,使用 uViewUI 的tabs组件绑定激活标签变量,配合 computed 来动态变更显示列表。

如果不同面板是请求不同的借口的,依旧会是按照方式1.来处理,只不过会增加一个loading效果。

 类似资料:
  • 本文向大家介绍AngularJS实现根据不同条件显示不同控件,包括了AngularJS实现根据不同条件显示不同控件的使用技巧和注意事项,需要的朋友参考一下 由于项目需求,需要实现根据不同条件显示不同控件的功能。具体要求如下图所示: 即当选择“每单固定减”时,下方只显示“减免金额”一栏;     当选择“每单固定折扣”时,下方只显示“折扣比例”一栏;     当选择“每单满额减”时,下方只显示“满.

  • 页面有多个div元素,点击这些div元素将弹出一个遮罩层,遮罩层内显示所点击的对应的内容,请教大佬们该如何用jQuery实现? 具体如下图: 对应代码: 点击div元素弹出的遮罩层根据所点击的div显示对应的内容,如下图: 因为后期会有多个div元素,请问大佬们能否做成数据串的形式,点击那个就把对应的数据插入到这个遮罩层框架内

  • 我正在试图理解为什么下面的代码会像它那样运行。具体而言,为什么第一个表达式会输出的完整和最终版本?我意识到这和吊装有关(也许?)或者其他一些我没有完全理解的概念。只是在网上搜索这个是很有挑战性的,因为我没有合适的词库来搜索我想知道的东西。 我在为自己编写代码时发现了这一点,其中我希望通过for-loop看到对象在每次迭代时的状态。我很惊讶地看到输出到控制台的对象在每一个回合都是一样的;该状态是整个

  • 我(目前)有三个按钮 使用这些按钮,我想显示不同的菜单/覆盖。覆盖图如下所示: 这方面的JS是: 我的问题是只有菜单1正在显示。脚本可以正常工作,但是menu2和menu3没有显示。 我想这一定是缺少的东西。也许是a$(this)什么的(对不起我的JS已经不是以前的样子了)。我在中循环,然后从google chrome dev中点击了“Right”按钮(我想,很难说出来)。 预期结果:如果我按下按

  • 我是Spark和Scala的新手。我正在阅读火花的独特()功能。但是我找不到任何合适的细节。我有几个无法解决的疑问,并把它们写了下来。 > 在 Spark 中实现的 () 有多独特? 我不太擅长Spark源代码,无法识别整个流程。当我检查执行计划时,我只能看到一个SchffleRDD 什么是不同的时间复杂度? 我还从谷歌搜索中发现,它也以某种方式使用哈希和排序。 所以,我想它是否使用了与借助Has

  • uniapp的tki-tree组件子级不显示,我复制了别人一模一样的代码还是一样呀,请大家看看这有什么问题? 这是错误的效果图