更新组件演示页面,方便用户直接使用组件,去除tn-button的默认背景色,tn-avatar修改参数默认值,修复tn-avatar-group最开始头像进行了偏移、修复无法使用标签的bug,tn-badge修改参数默认值,tn-collapse-item修复背景颜色失效问题,滚动通知移除默认背景颜色和字体大小,tn-count-down修复时间单位不正确问题,列表组件修复背景颜色问题,tn-nav-bar返回按钮修改为可进行修改的图标,tn-step添加点击步骤进行跳转,tn-loading修复默认激活颜色出错问题,tn-tag移除默认背景颜色,优化阴影大小css

This commit is contained in:
JaylenTech
2022-02-08 19:55:15 +08:00
parent 043ee3f585
commit 946bb52c03
94 changed files with 6296 additions and 4727 deletions

View File

@@ -1,6 +1,6 @@
<template>
<view class="components-tabs">
<view class="components-tabs tn-safe-area-inset-bottom">
<!-- 顶部自定义导航 -->
<tn-nav-bar fixed>tabs标签</tn-nav-bar>
@@ -8,26 +8,34 @@
<!-- 页面内容 -->
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<dynamic-demo-template ref="demoTemplate" :tips="tips" :sectionList="sectionList" :full="true" @click="click">
<tn-tabs
v-if="show"
:list="list"
:current="current"
:isScroll="isScroll"
:height="height"
:itemWidth="itemWidth"
:activeColor="activeColor"
:inactiveColor="inactiveColor"
:activeItemStyle="activeItemStyle"
:showBar="showBar"
:barWidth="barWidth"
:barHeight="barHeight"
:barStyle="barStyle"
:gutter="gutter"
:badgeOffset="badgeOffset"
@change="tabChange"
></tn-tabs>
</dynamic-demo-template>
<demo-title title="默认" :contentPadding="false">
<tn-tabs :list="scrollList" :current="current" @change="tabChange"></tn-tabs>
</demo-title>
<demo-title title="隐藏底部滑块" :contentPadding="false">
<tn-tabs :list="scrollList" :current="current" :showBar="false" @change="tabChange"></tn-tabs>
</demo-title>
<demo-title title="修改背景颜色" :contentPadding="false">
<tn-tabs :list="scrollList" :current="current" backgroundColor="#FFFFFF" @change="tabChange"></tn-tabs>
<view class="tn-margin-top">
<tn-tabs :list="scrollList" :current="current" backgroundColor="tn-main-gradient-indigo" activeColor="#FFFFFF" @change="tabChange"></tn-tabs>
</view>
</demo-title>
<demo-title title="自定义标签宽高" :contentPadding="false">
<tn-tabs :list="scrollList" :current="current" :height="120" :itemWidth="200" :barWidth="140" @change="tabChange"></tn-tabs>
</demo-title>
<demo-title title="自定义标签、滑块" :contentPadding="false">
<tn-tabs :list="scrollList" :current="current" backgroundColor="#FFFFFF" :activeItemStyle="activeItemStyle" :barStyle="barStyle" @change="tabChange"></tn-tabs>
</demo-title>
<demo-title title="固定选项标签" :contentPadding="false">
<tn-tabs :list="fixedList" :current="current" :isScroll="false" :badgeOffset="[20, 50]" @change="tabChange"></tn-tabs>
</demo-title>
<view class="tn-padding-bottom-lg"></view>
</view>
@@ -36,14 +44,20 @@
</template>
<script>
import dynamicDemoTemplate from '@/libs/components/dynamic-demo-template.vue'
import demoTitle from '@/libs/components/demo-title.vue'
export default {
name: 'componentsTabs',
components: {dynamicDemoTemplate},
components: {demoTitle},
data() {
return {
show: true,
data: [
current: 0,
activeItemStyle: {
borderTop: '1rpx solid #E6E6E6'
},
barStyle: {
boxShadow: `12rpx 12rpx 16rpx #01BEFF`
},
scrollList: [
{name: '关注', count: 10},
{name: '推荐'},
{name: '热榜', count: '99+'},
@@ -54,198 +68,27 @@
{name: '电影'},
{name: '游戏'}
],
list: [],
current: 0,
isScroll: true,
height: 80,
itemWidth: 'auto',
activeColor: '#01BEFF',
inactiveColor: '#080808',
activeItemStyle: {},
showBar: true,
barWidth: 40,
barHeight: 6,
barStyle: {},
gutter: 30,
badgeOffset: [20, 22],
tips: ['无需依赖额外的样式文件','使用tn-tabs组件'],
sectionList: [
{
name: '参数切换',
section: [
{
title: '模式选择',
optional: ['滑动','非滑动'],
methods: 'modeChange'
},
{
title: '标签数量',
optional: ['2','3','4','5'],
methods: 'countChange',
show: false
},
{
title: '显示底部滑块',
optional: ['显示','隐藏'],
methods: 'showBarChange'
},
{
title: '自定义宽高',
optional: ['默认','自定义'],
methods: 'customWidthHeightChange'
},
{
title: '自定义颜色',
optional: ['默认','自定义'],
methods: 'customColorChange'
},
{
title: '自定义样式',
optional: ['默认','自定义'],
methods: 'customStyleChange'
}
]
}
fixedList: [
{name: '关注', count: 10},
{name: '推荐'},
{name: '热榜', count: '99+'},
{name: '搞笑'}
]
}
},
onLoad() {
this.list = this.data
},
methods: {
click(event) {
this[event.methods] && this[event.methods](event)
},
// 切换模式
modeChange(event) {
this.show = false
this.current = 0
this.isScroll = event.index === 0 ? true : false
if (event.index === 0) {
this.list = this.data
this.badgeOffset = [20, 22]
this.$refs.demoTemplate.updateSectionBtnsState(1, false)
} else if (event.index === 1) {
this.$refs.demoTemplate.updateSectionBtnsState(1, true)
this.$refs.demoTemplate.updateSectionBtnsValue(0, 1, 0)
this.countChange({index: 0, name: 2})
}
this.$nextTick(() => {
this.show = true
})
},
// 切换标签数量
countChange(event) {
this.show = false
this.list = this.data.slice(0, Number(event.name))
switch (event.index) {
case 0:
this.badgeOffset = [20, 120]
break
case 1:
this.badgeOffset = [20, 70]
break
case 2:
this.badgeOffset = [20, 50]
break
case 3:
this.badgeOffset = [20, 22]
break
}
this.$nextTick(() => {
this.show = true
})
},
// 切换底部滑块显示
showBarChange(event) {
this.show = false
this.showBar = event.index === 0 ? true : false
this.$nextTick(() => {
this.show = true
})
},
// 切换自定义宽高
customWidthHeightChange(event) {
this.show = false
switch(event.index) {
case 0:
this.height = 80
this.itemWidth = 'auto'
this.barWidth = 40
this.barHeight = 6
this.gutter = 30
break
case 1:
this.height = 100
this.itemWidth = '40%'
this.barWidth = 130
this.barHeight = 4
this.gutter = 10
break
}
this.$nextTick(() => {
this.show = true
this.$refs.demoTemplate.updateSectionScrollView()
})
},
// 切换颜色
customColorChange(event) {
this.show = false
switch(event.index) {
case 0:
this.activeColor = '#01BEFF'
this.inactiveColor = '#080808'
break
case 1:
this.activeColor = '#31E749'
this.inactiveColor = '#AAAAAA'
break
}
this.$nextTick(() => {
this.show = true
})
},
// 切换自定义样式
customStyleChange(event) {
this.show = false
switch(event.index) {
case 0:
this.activeItemStyle = {}
this.barStyle = {}
break
case 1:
this.activeItemStyle = {
borderTop: '1rpx solid #E6E6E6'
}
this.barStyle = {
boxShadow: `6rpx 6rpx 8rpx ${this.activeColor}`
}
break
}
this.$nextTick(() => {
this.show = true
})
},
// tab选项卡切换
tabChange(index) {
this.current = index
}
},
}
}
</script>
<style lang="scss" scoped>
.components-tabs {
background-color: $tn-bg-gray-color;
min-height: 100vh;
}
</style>