From 9eedd9776d4a77aafec6b44f777eb2e1476b7e91 Mon Sep 17 00:00:00 2001 From: neverland <chenjiahan@buaa.edu.cn> Date: Wed, 12 Dec 2018 16:19:56 +0800 Subject: [PATCH] [improvement] update info style (#1066) --- example/pages/badge/index.wxml | 2 +- example/pages/tabbar/index.wxml | 2 +- packages/badge/README.md | 2 +- packages/badge/index.json | 5 ++++- packages/badge/index.less | 17 ++--------------- packages/badge/index.ts | 2 +- packages/badge/index.wxml | 10 ++++++++-- packages/common/style/var.less | 10 ++++++++++ packages/icon/index.json | 5 ++++- packages/icon/index.less | 20 -------------------- packages/icon/index.wxml | 8 +++----- packages/info/index.json | 3 +++ packages/info/index.less | 21 +++++++++++++++++++++ packages/info/index.ts | 8 ++++++++ packages/info/index.wxml | 7 +++++++ packages/tabbar-item/index.json | 3 ++- packages/tabbar-item/index.less | 24 ++---------------------- packages/tabbar-item/index.wxml | 12 +++++++++--- packages/tabbar/README.md | 2 +- 19 files changed, 88 insertions(+), 75 deletions(-) create mode 100644 packages/info/index.json create mode 100644 packages/info/index.less create mode 100644 packages/info/index.ts create mode 100644 packages/info/index.wxml diff --git a/example/pages/badge/index.wxml b/example/pages/badge/index.wxml index 7fa324cd..efe5582b 100644 --- a/example/pages/badge/index.wxml +++ b/example/pages/badge/index.wxml @@ -4,7 +4,7 @@ <van-badge title="标签名称" /> <van-badge title="标签名称" info="8" /> <van-badge title="标签名称" info="99" /> - <van-badge title="标签名称" info="199" /> + <van-badge title="标签名称" info="99+" /> </van-badge-group> </view> </demo-block> diff --git a/example/pages/tabbar/index.wxml b/example/pages/tabbar/index.wxml index 0d7f220a..cf665aae 100644 --- a/example/pages/tabbar/index.wxml +++ b/example/pages/tabbar/index.wxml @@ -9,7 +9,7 @@ <demo-block title="自定义图标"> <van-tabbar active="{{ active2 }}" custom-class="tabbar" bind:change="onChange" safe-area-inset-bottom="{{ false }}"> - <van-tabbar-item> + <van-tabbar-item info="3"> <span>自定义</span> <image slot="icon" src="{{ icon.normal }}" class="icon" mode="aspectFit" /> <image slot="icon-active" src="{{ icon.active }}" mode="aspectFit" /> diff --git a/packages/badge/README.md b/packages/badge/README.md index 953af0a7..0a23bb20 100644 --- a/packages/badge/README.md +++ b/packages/badge/README.md @@ -20,7 +20,7 @@ <van-badge title="标签名称" /> <van-badge title="标签名称" info="8" /> <van-badge title="标签名称" info="99" /> - <van-badge title="标签名称" info="199" /> + <van-badge title="标签名称" info="99+" /> </van-badge-group> ``` diff --git a/packages/badge/index.json b/packages/badge/index.json index 467ce294..bf0ebe00 100644 --- a/packages/badge/index.json +++ b/packages/badge/index.json @@ -1,3 +1,6 @@ { - "component": true + "component": true, + "usingComponents": { + "van-info": "../info/index" + } } diff --git a/packages/badge/index.less b/packages/badge/index.less index 7d7b233f..2b3939f4 100644 --- a/packages/badge/index.less +++ b/packages/badge/index.less @@ -36,20 +36,7 @@ } } - &__info { - position: absolute; - top: 4px; - right: 2px; - color: @white; - font-size: 12px; - font-weight: 500; - transform: scale(0.8); - text-align: center; - box-sizing: border-box; - padding: 0 6px; - min-width: 18px; - line-height: 18px; - border-radius: 9px; - background-color: @red; + &__text { + position: relative; } } diff --git a/packages/badge/index.ts b/packages/badge/index.ts index 2bf4168f..c8857364 100644 --- a/packages/badge/index.ts +++ b/packages/badge/index.ts @@ -7,7 +7,7 @@ VantComponent({ }, props: { - info: Number, + info: null, title: String }, diff --git a/packages/badge/index.wxml b/packages/badge/index.wxml index 3e55ca3a..425b4739 100644 --- a/packages/badge/index.wxml +++ b/packages/badge/index.wxml @@ -1,4 +1,10 @@ <view class="van-badge van-hairline custom-class {{ active ? 'van-badge--active' : '' }}" bind:tap="onClick"> - <view wx:if="{{ info }}" class="van-badge__info">{{ info }}</view> - {{ title }} + <view class="van-badge__text"> + <van-info + wx:if="{{ info !== null }}" + info="{{ info }}" + custom-style="right: 4px" + /> + {{ title }} + </view> </view> diff --git a/packages/common/style/var.less b/packages/common/style/var.less index fbec3342..81293627 100644 --- a/packages/common/style/var.less +++ b/packages/common/style/var.less @@ -37,6 +37,16 @@ @button-bottom-action-primary-color: @white; @button-bottom-action-primary-background-color: @red; +// Info +@info-size: 16px; +@info-color: @white; +@info-padding: 0 3px; +@info-font-size: 12px; +@info-font-weight: 500; +@info-border-width: 1px; +@info-background-color: @red; +@info-font-family: PingFang SC, Helvetica Neue, Arial, sans-serif; + // Notify @notify-padding: 6px 15px; @notify-font-size: 14px; diff --git a/packages/icon/index.json b/packages/icon/index.json index 467ce294..bf0ebe00 100644 --- a/packages/icon/index.json +++ b/packages/icon/index.json @@ -1,3 +1,6 @@ { - "component": true + "component": true, + "usingComponents": { + "van-info": "../info/index" + } } diff --git a/packages/icon/index.less b/packages/icon/index.less index 85de28bd..9ee115e6 100644 --- a/packages/icon/index.less +++ b/packages/icon/index.less @@ -30,26 +30,6 @@ } } - &__info { - position: absolute; - right: 0; - top: -8px; - color: @white; - font-size: 12px; - font-weight: 500; - font-family: PingFang SC, Helvetica Neue, Arial, sans-serif; - text-align: center; - box-sizing: border-box; - padding: 0 3px; - min-width: 16px; - line-height: 14px; - border: 1px solid @white; - border-radius: 16px; - background-color: @red; - transform: translateX(50%); - transform-origin: 100%; - } - &::before { display: inline-block; } diff --git a/packages/icon/index.wxml b/packages/icon/index.wxml index 156ab17f..0c37bcd3 100644 --- a/packages/icon/index.wxml +++ b/packages/icon/index.wxml @@ -5,12 +5,10 @@ style="{{ color ? 'color: ' + color + ';' : '' }}{{ size ? 'font-size: ' + size + ';' : '' }}{{ customStyle }}" bind:tap="onClick" > - <view + <van-info wx:if="{{ info !== null }}" - class="van-icon__info" - > - {{ info }} - </view> + info="{{ info }}" + /> <image wx:if="{{ utils.isSrc(name) }}" src="{{ name }}" diff --git a/packages/info/index.json b/packages/info/index.json new file mode 100644 index 00000000..467ce294 --- /dev/null +++ b/packages/info/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} diff --git a/packages/info/index.less b/packages/info/index.less new file mode 100644 index 00000000..86d50e88 --- /dev/null +++ b/packages/info/index.less @@ -0,0 +1,21 @@ +@import '../common/style/var.less'; + +.van-info { + position: absolute; + right: 0; + top: -@info-size / 2; + color: @info-color; + font-size: @info-font-size; + font-weight: @info-font-weight; + font-family: @info-font-family; + text-align: center; + box-sizing: border-box; + padding: @info-padding; + min-width: @info-size; + line-height: @info-size - @info-border-width * 2; + border: @info-border-width solid @white; + border-radius: @info-size; + background-color: @info-background-color; + transform: translateX(50%); + transform-origin: 100%; +} diff --git a/packages/info/index.ts b/packages/info/index.ts new file mode 100644 index 00000000..a90bcf73 --- /dev/null +++ b/packages/info/index.ts @@ -0,0 +1,8 @@ +import { VantComponent } from '../common/component'; + +VantComponent({ + props: { + info: null, + customStyle: String + } +}); diff --git a/packages/info/index.wxml b/packages/info/index.wxml new file mode 100644 index 00000000..7deb39b0 --- /dev/null +++ b/packages/info/index.wxml @@ -0,0 +1,7 @@ +<view + wx:if="{{ info !== null }}" + class="custom-class van-info" + style="{{ customStyle }}" +> + {{ info }} +</view> diff --git a/packages/tabbar-item/index.json b/packages/tabbar-item/index.json index 0a336c08..16f174c5 100644 --- a/packages/tabbar-item/index.json +++ b/packages/tabbar-item/index.json @@ -1,6 +1,7 @@ { "component": true, "usingComponents": { - "van-icon": "../icon/index" + "van-icon": "../icon/index", + "van-info": "../info/index" } } diff --git a/packages/tabbar-item/index.less b/packages/tabbar-item/index.less index 398cbc75..5aa636bc 100644 --- a/packages/tabbar-item/index.less +++ b/packages/tabbar-item/index.less @@ -19,27 +19,6 @@ margin-bottom: 5px; position: relative; - .van-icon { - display: block; - - &__info { - color: @white; - left: 100%; - top: -.5em; - font-size: .6em; - padding: 0 .25em; - text-align: center; - min-width: 1.4em; - line-height: 1.4; - position: absolute; - border-radius: .6em; - box-sizing: border-box; - background-color: @red; - transform: translateX(-50%); - font-family: PingFang SC, Helvetica Neue, Arial, sans-serif; - } - } - &--dot { &::after { top: 0; @@ -54,8 +33,9 @@ } image { - width: 50px; + width: 30px; height: 18px; + display: block; } } diff --git a/packages/tabbar-item/index.wxml b/packages/tabbar-item/index.wxml index e1da8a18..6f7251f1 100644 --- a/packages/tabbar-item/index.wxml +++ b/packages/tabbar-item/index.wxml @@ -6,14 +6,20 @@ <van-icon wx:if="{{ icon }}" name="{{ icon }}" - info="{{ info }}" customStyle="display: block" /> <block wx:else> - <slot wx:if="{{ active }}" name="icon-active" /> + <slot + wx:if="{{ active }}" + name="icon-active" + /> <slot wx:else name="icon" /> - <view wx:if="{{ info !== null }}" class="van-icon__info">{{ info }}</view> </block> + <van-info + wx:if="{{ info !== null }}" + info="{{ info }}" + custom-style="margin-top: 2px" + /> </view> <view class="van-tabbar-item__text"> <slot /> diff --git a/packages/tabbar/README.md b/packages/tabbar/README.md index 75851724..1a42e1b3 100644 --- a/packages/tabbar/README.md +++ b/packages/tabbar/README.md @@ -42,7 +42,7 @@ Page({ ```html <van-tabbar active="{{ active }}" bind:change="onChange"> - <van-tabbar-item> + <van-tabbar-item info="3"> <span>自定义</span> <image slot="icon" src="{{ icon.normal }}" class="icon" mode="aspectFit" /> <image slot="icon-active" src="{{ icon.active }}" mode="aspectFit" />