Skip to content

Commit a725c0d

Browse files
authored
feat(Slider): the label attr supports function types (#3928)
* chore(Slider): remove useless code * chore: unified code specifications * feat(Slider): the label attr supports function types * chore: update demo
1 parent b0ed0c1 commit a725c0d

File tree

12 files changed

+88
-53
lines changed

12 files changed

+88
-53
lines changed

packages/components/common/utils.wxs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ function isBoolean(value) {
2828
return typeof value === 'boolean';
2929
}
3030

31-
var isNoEmptyObj = function (obj) {
31+
function isNoEmptyObj(obj) {
3232
return isObject(obj) && JSON.stringify(obj) !== '{}';
33-
};
33+
}
3434

3535
function includes(arr, value) {
3636
if (!arr || !isArray(arr)) return false;

packages/components/slider/README.en-US.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ custom-style | Object | - | CSS(Cascading Style Sheets),used to set style on v
1111
colors | Array | [] | `deprecated`。Typescript:`Array<string>` | N
1212
disabled | Boolean | undefined | \- | N
1313
disabled-color | Array | [] | `deprecated`。Typescript:`Array<string>` | N
14-
label | String / Boolean | false | Typescript:`string \| boolean` | N
14+
label | String / Boolean / Function | false | Typescript:`string \| boolean` | N
1515
marks | Object / Array | {} | Typescript:`Record<number, string> \| Array<number>` | N
1616
max | Number | 100 | \- | N
1717
min | Number | 0 | \- | N

packages/components/slider/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ custom-style | Object | - | 样式,一般用于开启虚拟化组件节点场
8787
colors | Array | [] | 已废弃。颜色,[已选择, 未选择]。TS 类型:`Array<string>` | N
8888
disabled | Boolean | undefined | 是否禁用组件 | N
8989
disabled-color | Array | [] | 已废弃。禁用状态滑动条的颜色,[已选, 未选]。TS 类型:`Array<string>` | N
90-
label | String / Boolean | false | 滑块当前值文本。<br />值为 true 显示默认文案;值为 false 不显示滑块当前值文本;<br />值为 `${value}%` 则表示组件会根据占位符渲染文案;<br />值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值。TS 类型:`string \| boolean` | N
90+
label | String / Boolean / Function | false | 滑块当前值文本。<br />值为 true 显示默认文案;值为 false 不显示滑块当前值文本;<br />值为 `${value}%` 则表示组件会根据占位符渲染文案;<br />值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值。TS 类型:`string \| boolean` | N
9191
marks | Object / Array | {} | 刻度标记,示例:`[0, 10, 40, 200]` 或者 `{ 5: '5¥', 10: '10%' }`。TS 类型:`Record<number, string> \| Array<number>` | N
9292
max | Number | 100 | 滑块范围最大值 | N
9393
min | Number | 0 | 滑块范围最小值 | N

packages/components/slider/__test__/__snapshots__/demo.test.js.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ exports[`Slider Slider capsule demo works fine 1`] = `
4040
60,
4141
]
4242
}}"
43-
label="\${value}"
43+
label="\${value}%"
4444
range="{{true}}"
4545
theme="capsule"
4646
/>
@@ -95,7 +95,7 @@ exports[`Slider Slider disabled demo works fine 1`] = `
9595
>
9696
<t-slider
9797
disabled="{{true}}"
98-
label="\${value}"
98+
label="\${value}%"
9999
range="{{true}}"
100100
showExtremeValue="{{true}}"
101101
value="{{
@@ -140,7 +140,7 @@ exports[`Slider Slider label demo works fine 1`] = `
140140
class="wrapper"
141141
>
142142
<t-slider
143-
label="\${value}"
143+
label="\${value}%"
144144
value="{{35}}"
145145
bind:change="handleChange"
146146
/>
@@ -160,7 +160,7 @@ exports[`Slider Slider label demo works fine 1`] = `
160160
60,
161161
]
162162
}}"
163-
label="\${value}"
163+
label="{{[Function]}}"
164164
range="{{true}}"
165165
showExtremeValue="{{true}}"
166166
/>
@@ -277,7 +277,7 @@ exports[`Slider Slider vertical demo works fine 1`] = `
277277
class="wrapper"
278278
>
279279
<t-slider
280-
label="\${singlevalue}"
280+
label="\${value}%"
281281
value="{{35}}"
282282
vertical="{{true}}"
283283
bind:change="handleSingleChange"
@@ -322,7 +322,7 @@ exports[`Slider Slider vertical demo works fine 1`] = `
322322
class="wrapper"
323323
>
324324
<t-slider
325-
label="\${capsuleValue}"
325+
label="\${value}%"
326326
theme="capsule"
327327
value="{{35}}"
328328
vertical="{{true}}"

packages/components/slider/_example/capsule/index.wxml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<t-slider defaultValue="{{ [40, 60] }}" range theme="capsule" />
55

6-
<t-slider defaultValue="{{ [40, 60] }}" range label="${value}" theme="capsule" />
6+
<t-slider defaultValue="{{ [40, 60] }}" range label="${value}%" theme="capsule" />
77

88
<t-slider defaultValue="{{60}}" marks="{{marks}}" step="{{20}}" theme="capsule" />
99

packages/components/slider/_example/disabled/index.wxml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<t-slider value="{{35}}" disabled />
22

33
<view class="wrapper">
4-
<t-slider show-extreme-value label="${value}" value="{{ [40, 60] }}" range disabled />
4+
<t-slider show-extreme-value label="${value}%" value="{{ [40, 60] }}" range disabled />
55
</view>
66

77
<view class="wrapper">

packages/components/slider/_example/label/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Component({
22
data: {
33
value: 35,
4+
label(value, position) {
5+
const symbols = { min: '%', max: '%', start: '%', end: '%' };
6+
return `${value}${symbols[position]}`;
7+
},
48
},
59

610
methods: {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<view class="wrapper">
2-
<t-slider value="{{value}}" label="${value}" bind:change="handleChange"></t-slider>
2+
<t-slider value="{{value}}" label="${value}%" bind:change="handleChange"></t-slider>
33
</view>
44

55
<view class="demo-desc">带数值双游标滑块</view>
66

77
<view class="wrapper">
8-
<t-slider show-extreme-value label="${value}" default-value="{{ [40, 60] }}" range />
8+
<t-slider show-extreme-value label="{{label}}" default-value="{{ [40, 60] }}" range />
99
</view>

packages/components/slider/_example/vertical/index.wxml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
<view class="demo-desc">单游标垂直滑块</view>
22
<view class="wrapper">
3-
<t-slider vertical value="{{singlevalue}}" label="${singlevalue}" bind:change="handleSingleChange" />
3+
<t-slider vertical value="{{singlevalue}}" label="${value}%" bind:change="handleSingleChange" />
44
</view>
55
<view class="demo-desc">带刻度的双游标垂直滑块</view>
66
<view class="wrapper">
77
<t-slider vertical range defaultValue="{{ [20, 60] }}" marks="{{marks}}" step="{{20}}" />
88
</view>
99
<view class="demo-desc">胶囊型垂直滑块</view>
1010
<view class="wrapper">
11-
<t-slider
12-
vertical
13-
value="{{capsuleValue}}"
14-
label="${capsuleValue}"
15-
theme="capsule"
16-
bind:change="handleCapsuleChange"
17-
/>
11+
<t-slider vertical value="{{capsuleValue}}" label="${value}%" theme="capsule" bind:change="handleCapsuleChange" />
1812
</view>
1913
<view class="demo-desc">带刻度的胶囊型垂直滑块</view>
2014
<view class="wrapper">

packages/components/slider/slider.less

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,6 @@
129129
margin-right: 32rpx;
130130
}
131131

132-
&__value--right {
133-
flex-basis: 80rpx;
134-
135-
&__value--text {
136-
margin-right: 32rpx;
137-
text-align: right;
138-
display: block;
139-
}
140-
}
141-
142132
&__bar {
143133
margin: 16rpx 32rpx;
144134
flex: 10;

0 commit comments

Comments
 (0)