前端仿今日头条、网易新闻 tabs组件,根据文字多少自适应tab项宽度,支持自定义标题栏
快速实现 前端仿今日头条网易新闻 tabs 组件标签页,根据文字多少自适应 tab项宽度, 详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12560
效果图如下:
代码如下:
#### 使用方法
```使用方法
<!-- spaceLeft设置tabs间距 v-model:绑定选择序列 tabs: 选择数据 change:切换事件 -->
<cc-tabs spaceLeft="12" v-model="industryTabIndex" :tabs="industryTabs" @change="tabChange"></cc-tabs>
```
#### HTML代码部分
```html
<template>
<view class="content">
<!-- cc-tabs组件,根据文字自适应tab项宽度,支持自定义标题栏 -->
<view style="margin-top:14px; margin-left: 8px; margin-right: 10px;">
<!-- spaceLeft设置tabs间距 v-model:绑定选择序列 tabs: 选择数据 change:切换事件 -->
<cc-tabs spaceLeft="12" v-model="industryTabIndex" :tabs="industryTabs" @change="tabChange"></cc-tabs>
<!-- 列表组件 -->
<CCBProjectList :productList="projectList" @click="goProDetail"></CCBProjectList>
</view>
</view>
</template>
```
#### JS代码 (引入组件 填充数据)
```javascript
<script>
import ccTabs from '@/components/cc-tabs.vue';
import CCBProjectList from '@/components/CCProjectList.vue';
export default {
components: {
ccTabs,
CCBProjectList
},
data() {
return {
// 列表数组
projectList: [],
industryTabs: [{
name: '光伏产业'
},
{
name: '新能源储能电池'
},
{
name: '国家先进制造业'
},
{
name: '医疗健康'
},
{
name: '银行金融'
},
{
name: '食品饮料白酒'
},
{
name: '行业七'
},
{
name: '行业八'
}
],
industryTabIndex: 0,
}
},
mounted() {
this.requestData();
},
methods: {
tabChange() {
console.log('切换行业类型 =' + this.industryTabIndex);
},
requestData() {
// 模拟请求参数设置
let reqData = {
'area': '',
"pageSize": 10,
"pageNo": this.curPageNum
}
// 模拟请求接口
this.totalNum = 39;
this.projectList = [];
for (let i = 0; i < 10; i++) {
this.projectList.push({
'proName': '项目名称' + i,
'proUnit': '公司名称' + i,
'area': '广州',
'proType': '省级项目',
'stage': '已开工',
'id': i + ''
});
}
}
}
}
</script>
```
#### CSS
```CSS
<style>
page{
}
.content {
display: flex;
flex-direction: column;
}
</style>
```