更新组件演示页面,方便用户直接使用组件,去除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="basic-avatar">
<view class="basic-avatar tn-safe-area-inset-bottom">
<!-- 顶部自定义导航 -->
<tn-nav-bar fixed>头像</tn-nav-bar>
@@ -8,38 +8,104 @@
<!-- 页面内容 -->
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<dynamic-demo-template ref="demoTemplate" :tips="tips" :sectionList="sectionList" :full="false" @click="click">
<block v-if="singleAvatarShow">
<tn-avatar
:backgroundColor="backgroundColor"
:src="src"
:text="text"
:icon="icon"
:shape="shape"
:size="size"
:shadow="shadow"
:border="border"
:borderColor="borderColor"
:imgMode="imgMode"
:badge="badge"
:badgeSize="badgeSize"
:badgeBgColor="badgeBgColor"
:badgeColor="badgeColor"
:badgeIcon="badgeIcon"
:badgeText="badgeText"
:badgePosition="badgePosition"
>
</tn-avatar>
</block>
<block v-else>
<tn-avatar-group
:lists="groupList"
:shape="shape"
:size="size"
:gap="0.4"
></tn-avatar-group>
</block>
</dynamic-demo-template>
<demo-title title="基础">
<view class="tn-flex tn-flex-col-center tn-flex-row-left tn-flex-wrap">
<view class="tn-margin-sm">
<tn-avatar></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar backgroundColor="#FFFFFF"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar icon="link" backgroundColor="#FFFFFF"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar text="TN" backgroundColor="#FFFFFF"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :shadow="true" :src="src"></tn-avatar>
</view>
</view>
</demo-title>
<demo-title title="大小">
<view class="tn-flex tn-flex-col-center tn-flex-row-left tn-flex-wrap">
<view class="tn-margin-sm">
<tn-avatar size="sm" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar size="lg" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar size="xl" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar size="160rpx" :src="src"></tn-avatar>
</view>
</view>
</demo-title>
<demo-title title="形状">
<view class="tn-flex tn-flex-col-center tn-flex-row-left tn-flex-wrap">
<view class="tn-margin-sm">
<tn-avatar shape="circle" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar shape="square" :src="src"></tn-avatar>
</view>
</view>
</demo-title>
<demo-title title="边框">
<view class="tn-flex tn-flex-col-center tn-flex-row-left tn-flex-wrap">
<view class="tn-margin-sm">
<tn-avatar :border="true" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :border="true" borderColor="#01BEFF" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :border="true" borderColor="#01BEFF" :borderSize="4" :src="src"></tn-avatar>
</view>
</view>
</demo-title>
<demo-title title="角标">
<view class="tn-flex tn-flex-col-center tn-flex-row-left tn-flex-wrap">
<view class="tn-margin-sm">
<tn-avatar :badge="true" badgeText="99+" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :badge="true" badgeIcon="vip" :src="src"></tn-avatar>
</view>
<view class="tn-margin-sm">
<tn-avatar :badge="true" badgeIcon="vip" badgeBgColor="transparent" badgeColor="tn-color-orange" badgeSize="40" :badgePosition="[-8, 18]" :src="src"></tn-avatar>
</view>
</view>
</demo-title>
<demo-title title="头像组">
<view class="tn-margin-sm">
<tn-avatar-group :lists="groupList"></tn-avatar-group>
</view>
<view class="tn-margin-sm">
<tn-avatar-group :lists="groupList" shape="shape"></tn-avatar-group>
</view>
<view class="tn-margin-sm">
<tn-avatar-group :lists="groupList" size="lg"></tn-avatar-group>
</view>
<view class="tn-margin-sm">
<tn-avatar-group :lists="groupList" size="lg" :gap="0.5"></tn-avatar-group>
</view>
</demo-title>
<view class="tn-padding-bottom-lg"></view>
</view>
@@ -48,30 +114,13 @@
</template>
<script>
import dynamicDemoTemplate from '@/libs/components/dynamic-demo-template.vue'
import demoTitle from '@/libs/components/demo-title.vue'
export default {
name: 'basicAvatar',
components: {dynamicDemoTemplate},
components: {demoTitle},
data() {
return {
backgroundColor: '',
src: 'https://tnuiimage.tnkjapp.com/avatar/xiaomai4.jpg',
text: '',
icon: '',
shape: 'circle',
size: '',
shadow: false,
border: false,
borderColor: 'rgba(0, 0, 0, 0.1)',
imgMode: 'aspectFill',
badge: false,
badgeSize: 28,
badgeBgColor: '#AAAAAA',
badgeColor: '#FFFFFF',
badgeIcon: 'sex-male',
badgeText: '',
badgePosition: [0, 0],
groupList: [
{src: 'https://tnuiimage.tnkjapp.com/avatar/xiaomai1.jpg'},
{src: 'https://tnuiimage.tnkjapp.com/avatar/xiaomai2.jpg'},
@@ -79,194 +128,18 @@
{icon: 'logo-tuniao'},
{src: 'https://tnuiimage.tnkjapp.com/avatar/xiaomai1.jpg'},
{src: 'https://tnuiimage.tnkjapp.com/avatar/xiaomai2.jpg'},
],
// 头像显示方式切换
singleAvatarShow: true,
tips: ['无需依赖额外的样式文件','使用tn-avatar组件'],
sectionList: [
{
name: '参数切换',
section: [
{
title: '形状',
optional: ['圆形','方形'],
methods: 'shapeChange'
},
{
title: '类型',
optional: ['图片','文字','图标'],
methods: 'typeChange'
},
{
title: '大小',
optional: ['默认','sm','lg','xl','120rpx'],
methods: 'sizeChange'
},
{
title: '阴影',
optional: ['显示','隐藏'],
methods: 'shadowChange',
current: 1
},
{
title: '边框',
optional: ['显示','隐藏'],
methods: 'borderChange',
current: 1
},
{
title: '自定义颜色',
optional: ['默认','自定义'],
methods: 'colorChange'
},
{
title: '角标',
optional: ['显示','隐藏'],
methods: 'badgeChange',
current: 1
},
{
title: '角标大小',
optional: ['默认','20'],
methods: 'badgeSizeChange',
show: false
},
{
title: '角标内容',
optional: ['图标','文字'],
methods: 'badgeContentChange',
show: false
},
{
title: '角标位置',
optional: ['默认','[8,8]'],
methods: 'badgePositionChange',
show: false
}
]
},
{
name: '样式切换',
section: [
{
title: '方式',
optional: ['单头像','头像组'],
methods: 'singleAvatarChange'
}
]
}
]
}
},
methods: {
click(event) {
this[event.methods] && this[event.methods](event)
},
// 切换头像形状
shapeChange(event) {
this.shape = event.index === 0 ? 'circle' : 'square'
},
// 切换头像类型
typeChange(event) {
switch (event.index) {
case 0:
this.src = 'https://tnuiimage.tnkjapp.com/avatar/xiaomai4.jpg'
this.text = ''
this.icon = ''
break
case 1:
this.src = ''
this.text = 'TN'
this.icon = ''
break
case 2:
this.src = ''
this.text = ''
this.icon = 'logo-tuniao'
break
}
},
// 切换头像大小
sizeChange(event) {
this.size = event.index === 0 ? '' : event.name
},
// 切换阴影状态
shadowChange(event) {
this.shadow = event.index === 0 ? true : false
},
// 切换边框状态
borderChange(event) {
this.border = event.index === 0 ? true : false
},
// 切换颜色
colorChange(event) {
if (event.index === 0) {
this.backgroundColor = ''
this.borderColor = 'rgba(0, 0, 0, 0.1)'
this.badgeBgColor = '#AAAAAA'
this.badgeColor = '#FFFFFF'
} else {
this.backgroundColor = '#01BEFF'
this.borderColor = '#E6E6E6'
this.badgeBgColor = 'tn-bg-red'
this.badgeColor = '#FFFFFF'
}
},
// 切换角标状态
badgeChange(event) {
if (event.index === 0) {
this.badge = true
this.$refs.demoTemplate.updateSectionBtnsState([7,8,9], true)
} else {
this.badge = false
this.$refs.demoTemplate.updateSectionBtnsState([7,8,9], false)
}
},
// 切换角标大小
badgeSizeChange(event) {
this.badgeSize = event.index === 0 ? 28 : Number(event.name)
},
// 切换角标内容
badgeContentChange(event) {
switch(event.index) {
case 0:
this.badgeIcon = 'sex-male'
this.badgeText = ''
this.badgeSizeChange({index: 0})
this.$refs.demoTemplate.updateSectionBtnsValue(0, 7, 0)
break
case 1:
this.badgeIcon = ''
this.badgeText = '99+'
this.badgeSize = 0
break
}
},
// 切换角标位置
badgePositionChange(event) {
switch(event.index) {
case 0:
this.badgePosition = [0, 0]
break
case 1:
this.badgePosition = [8, 8]
break
}
},
// 单头像、头像组切换
singleAvatarChange(event) {
this.singleAvatarShow = event.index === 0
}
},
}
}
</script>
<style lang="scss" scoped>
.basic-avatar {
background-color: $tn-bg-gray-color;
min-height: 100vh;
}
</style>