chore: merge src and src-next
This commit is contained in:
@@ -14,7 +14,7 @@ Vue.use(Circle);
|
||||
### Basic Usage
|
||||
|
||||
```html
|
||||
<van-circle v-model="currentRate" :rate="30" :speed="100" :text="text" />
|
||||
<van-circle v-model:currentRate="currentRate" :rate="30" :speed="100" :text="text" />
|
||||
```
|
||||
|
||||
```js
|
||||
@@ -36,7 +36,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:stroke-width="60"
|
||||
text="Custom Width"
|
||||
@@ -47,7 +47,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
layer-color="#ebedf0"
|
||||
text="Custom Color"
|
||||
@@ -58,7 +58,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:color="gradientColor"
|
||||
text="Gradient"
|
||||
@@ -83,7 +83,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:clockwise="false"
|
||||
text="Counter Clockwise"
|
||||
@@ -94,7 +94,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
size="120px"
|
||||
text="Custom Size"
|
||||
@@ -107,7 +107,7 @@ export default {
|
||||
|
||||
| Attribute | Description | Type | Default |
|
||||
| --- | --- | --- | --- |
|
||||
| v-model | Current rate | _number_ | - |
|
||||
| v-model:currentRate | Current rate | _number_ | - |
|
||||
| rate | Target rate | _number \| string_ | `100` |
|
||||
| size | Circle size | _number \| string_ | `100px` |
|
||||
| color `v2.1.4` | Progress color, passing object to render gradient | _string \| object_ | `#1989fa` |
|
||||
|
||||
@@ -13,10 +13,15 @@ Vue.use(Circle);
|
||||
|
||||
### 基础用法
|
||||
|
||||
`rate`属性表示进度条的目标进度,`v-model`表示动画过程中的实时进度。当`rate`发生变化时,`v-model`会以`speed`的速度变化,直至达到`rate`设定的值。
|
||||
`rate`属性表示进度条的目标进度,`v-model:currentRate`表示动画过程中的实时进度。当`rate`发生变化时,`v-model:currentRate`会以`speed`的速度变化,直至达到`rate`设定的值。
|
||||
|
||||
```html
|
||||
<van-circle v-model="currentRate" :rate="30" :speed="100" :text="text" />
|
||||
<van-circle
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="30"
|
||||
:speed="100"
|
||||
:text="text"
|
||||
/>
|
||||
```
|
||||
|
||||
```js
|
||||
@@ -40,7 +45,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:stroke-width="60"
|
||||
text="宽度定制"
|
||||
@@ -53,7 +58,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
layer-color="#ebedf0"
|
||||
text="颜色定制"
|
||||
@@ -66,7 +71,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:color="gradientColor"
|
||||
text="渐变色"
|
||||
@@ -93,7 +98,7 @@ export default {
|
||||
|
||||
```html
|
||||
<van-circle
|
||||
v-model="currentRate"
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
:clockwise="false"
|
||||
text="逆时针方向"
|
||||
@@ -105,7 +110,12 @@ export default {
|
||||
通过`size`属性设置圆环直径
|
||||
|
||||
```html
|
||||
<van-circle v-model="currentRate" :rate="rate" size="120px" text="大小定制" />
|
||||
<van-circle
|
||||
v-model:currentRate="currentRate"
|
||||
:rate="rate"
|
||||
size="120px"
|
||||
text="大小定制"
|
||||
/>
|
||||
```
|
||||
|
||||
## API
|
||||
@@ -114,7 +124,7 @@ export default {
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 |
|
||||
| --- | --- | --- | --- |
|
||||
| v-model | 当前进度 | _number_ | - |
|
||||
| v-model:currentRate | 当前进度 | _number_ | - |
|
||||
| rate | 目标进度 | _number \| string_ | `100` |
|
||||
| size | 圆环直径,默认单位为 `px` | _number \| string_ | `100px` |
|
||||
| color `v2.1.4` | 进度条颜色,传入对象格式可以定义渐变色 | _string \| object_ | `#1989fa` |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<demo-section>
|
||||
<demo-block :title="t('basicUsage')">
|
||||
<van-circle
|
||||
v-model="currentRate1"
|
||||
v-model:currentRate="currentRate1"
|
||||
:rate="rate"
|
||||
:speed="100"
|
||||
:text="currentRate1.toFixed(0) + '%'"
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<demo-block :title="t('customStyle')">
|
||||
<van-circle
|
||||
v-model="currentRate3"
|
||||
v-model:currentRate="currentRate3"
|
||||
:rate="rate"
|
||||
:speed="100"
|
||||
:stroke-width="60"
|
||||
@@ -19,7 +19,7 @@
|
||||
/>
|
||||
|
||||
<van-circle
|
||||
v-model="currentRate3"
|
||||
v-model:currentRate="currentRate3"
|
||||
color="#ee0a24"
|
||||
:rate="rate"
|
||||
layer-color="#ebedf0"
|
||||
@@ -28,7 +28,7 @@
|
||||
/>
|
||||
|
||||
<van-circle
|
||||
v-model="currentRate2"
|
||||
v-model:currentRate="currentRate2"
|
||||
:rate="rate"
|
||||
:speed="100"
|
||||
:color="gradientColor"
|
||||
@@ -36,7 +36,7 @@
|
||||
/>
|
||||
|
||||
<van-circle
|
||||
v-model="currentRate4"
|
||||
v-model:currentRate="currentRate4"
|
||||
color="#07c160"
|
||||
:rate="rate"
|
||||
:speed="100"
|
||||
@@ -46,7 +46,7 @@
|
||||
/>
|
||||
|
||||
<van-circle
|
||||
v-model="currentRate4"
|
||||
v-model:currentRate="currentRate4"
|
||||
color="#7232dd"
|
||||
:rate="rate"
|
||||
:speed="100"
|
||||
|
||||
+10
-7
@@ -23,7 +23,7 @@ export default createComponent({
|
||||
props: {
|
||||
text: String,
|
||||
strokeLinecap: String,
|
||||
value: {
|
||||
currentRate: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
@@ -61,6 +61,8 @@ export default createComponent({
|
||||
},
|
||||
},
|
||||
|
||||
emits: ['update:currentRate'],
|
||||
|
||||
beforeCreate() {
|
||||
this.uid = `van-circle-gradient-${uid++}`;
|
||||
},
|
||||
@@ -83,7 +85,7 @@ export default createComponent({
|
||||
},
|
||||
|
||||
layerStyle() {
|
||||
const offset = (PERIMETER * this.value) / 100;
|
||||
const offset = (PERIMETER * this.currentRate) / 100;
|
||||
|
||||
return {
|
||||
stroke: `${this.color}`,
|
||||
@@ -130,7 +132,7 @@ export default createComponent({
|
||||
rate: {
|
||||
handler(rate) {
|
||||
this.startTime = Date.now();
|
||||
this.startRate = this.value;
|
||||
this.startRate = this.currentRate;
|
||||
this.endRate = format(rate);
|
||||
this.increase = this.endRate > this.startRate;
|
||||
this.duration = Math.abs(
|
||||
@@ -141,7 +143,7 @@ export default createComponent({
|
||||
cancelRaf(this.rafId);
|
||||
this.rafId = raf(this.animate);
|
||||
} else {
|
||||
this.$emit('input', this.endRate);
|
||||
this.$emit('update:currentRate', this.endRate);
|
||||
}
|
||||
},
|
||||
immediate: true,
|
||||
@@ -154,7 +156,7 @@ export default createComponent({
|
||||
const progress = Math.min((now - this.startTime) / this.duration, 1);
|
||||
const rate = progress * (this.endRate - this.startRate) + this.startRate;
|
||||
|
||||
this.$emit('input', format(parseFloat(rate.toFixed(1))));
|
||||
this.$emit('update:currentRate', format(parseFloat(rate.toFixed(1))));
|
||||
|
||||
if (this.increase ? rate < this.endRate : rate > this.endRate) {
|
||||
this.rafId = raf(this.animate);
|
||||
@@ -175,8 +177,9 @@ export default createComponent({
|
||||
stroke={this.gradient ? `url(#${this.uid})` : this.color}
|
||||
/>
|
||||
</svg>
|
||||
{this.slots() ||
|
||||
(this.text && <div class={bem('text')}>{this.text}</div>)}
|
||||
{this.$slots.default
|
||||
? this.$slots.default()
|
||||
: this.text && <div class={bem('text')}>{this.text}</div>}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user