赞
踩
目录
有时候我们会有很多数据,分成好几类
每一类都需要展示,那么这时候传统的表格可能用处就不是很大了,于是乎我们就自己来写一个数表单
在这里,我们使用了NCard, NTabs, NTabPane这三个组件
import { NCard, NTabs, NTabPane } from 'naive-ui'
- const tabs = {
- 星期一: 1,
- 星期二: 2,
- 星期三: 3,
- 星期四: 4,
- 星期五: 5,
- 星期六: 6,
- 星期日: 7,
- };
- const data = [
- {
- info: "这是消息1",
- msg: "你挂科了!",
- },
- {
- info: "这是消息2",
- msg: "你及格了!",
- },
- {
- info: "这是消息3",
- msg: "你延毕了!",
- },
- {
- info: "这是消息4",
- msg: "你评优了!",
- },
- {
- info: "这是消息5",
- msg: "你失败了!",
- },
- ];
- export { tabs, data };
const backColor = ref(["background-color:#F2F9FA", "background-color:#FFD700"])
- <template>
- <n-card title="测试样例" style="margin-bottom: 16px;max-width:50%;">
- <n-tabs style="flex" type="line">
- <n-tab-pane v-for="(value, index) in tabs"
- :key="index"
- :name="index"
- :tab="index"
- >
- <!-- 下面是题目列表 -->
- <div v-for="(value, index) in data" :key="index">
- <div
- class="topic-details"
- :style="backColor[index &1]"
- >
- {{ value.msg }}
- <!-- 这里面需要写很多样式 -->
- </div>
- </div>
- </n-tab-pane>
- </n-tabs>
- </n-card>
- </template>
-
- <script lang="ts" setup>
- import { ref } from 'vue'
- import { NCard, NTabs, NTabPane } from 'naive-ui'
- import { tabs, data } from "./data";
-
- const backColor = ref(["background-color:#F2F9FA", "background-color:#FFD700"])
- </script>
-
- <style scoped>
- .topic-details {
- min-height: 50px;
- }
- </style>
我们在官网了看见每个n-tab-pane是写死的,所以我们可以使用循环控制生成标签页,标签页没有关联,我们就采用字典来组合起来
然后每个n-tab-pane实际上渲染的是同一个框架,只不过每次点击可以设置请求不同的数据,给用户一种切换了容器的样子,你也可以在切换过程中加上加载动画使其看起来逼真
这里采用了:style来进行动态渲染,:class不知道为什么不能渲染
关闭了全局的居中,所以看起来可能有点不对称
各位可以发挥创造力自己改装哈!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。