diff --git a/docs/markdown/v2-progress-tracking.md b/docs/markdown/v2-progress-tracking.md
index 5cd18bee3..b3c287ef3 100644
--- a/docs/markdown/v2-progress-tracking.md
+++ b/docs/markdown/v2-progress-tracking.md
@@ -54,6 +54,7 @@
## Loading
- 新增`default`插槽
+- 新增`text-size`属性
## NoticeBar
diff --git a/packages/checkbox/zh-CN.md b/packages/checkbox/zh-CN.md
index cbcf3935a..6724af47b 100644
--- a/packages/checkbox/zh-CN.md
+++ b/packages/checkbox/zh-CN.md
@@ -170,7 +170,7 @@ export default {
|------|------|------|
| change | 当绑定值变化时触发的事件 | 当前组件的值 |
-### Checkbox Slots
+### Checkbox Slot
| 名称 | 说明 | slot-scope |
|------|------|------|
diff --git a/packages/field/index.js b/packages/field/index.js
index 6054872c8..89be94df1 100644
--- a/packages/field/index.js
+++ b/packages/field/index.js
@@ -1,9 +1,8 @@
import Icon from '../icon';
import Cell from '../cell';
import { cellProps } from '../cell/shared';
-import { use, isObj, isDef, isIOS } from '../utils';
import { getRootScrollTop } from '../utils/scroll';
-import { isNumber } from '../utils/validate/number';
+import { use, isObj, isDef, isIOS, suffixPx } from '../utils';
const [sfc, bem] = use('field');
@@ -66,8 +65,7 @@ export default sfc({
labelStyle() {
const { labelWidth } = this;
if (labelWidth) {
- const width = isNumber(String(labelWidth)) ? `${labelWidth}px` : labelWidth;
- return { width };
+ return { width: suffixPx(labelWidth) };
}
}
},
diff --git a/packages/loading/en-US.md b/packages/loading/en-US.md
index 2c20631a9..0cc3f6ae8 100644
--- a/packages/loading/en-US.md
+++ b/packages/loading/en-US.md
@@ -35,7 +35,8 @@ Vue.use(Loading);
|------|------|------|------|
| color | Loading color | `String` | `#c9c9c9` | |
| type | Can be set to `spinner` | `String` | `circular` |
-| size | Size | `String` | `30px` |
+| size | Icon size | `String` | `30px` |
+| text-size | Text font size | `String | Number` | `14px` |
### Slot
diff --git a/packages/loading/index.tsx b/packages/loading/index.tsx
index f5ca6ab59..76535153c 100644
--- a/packages/loading/index.tsx
+++ b/packages/loading/index.tsx
@@ -1,4 +1,4 @@
-import { use } from '../utils';
+import { use, suffixPx } from '../utils';
import { inherit } from '../utils/functional';
// Types
@@ -6,9 +6,10 @@ import { CreateElement, RenderContext } from 'vue/types';
import { DefaultSlots } from '../utils/use/sfc';
export type LoadingProps = {
- size?: string;
type: string;
+ size?: string;
color: string;
+ textSize?: string | number;
};
const [sfc, bem] = use('loading');
@@ -41,19 +42,34 @@ function Loading(
);
+ function Text() {
+ if (slots.default) {
+ const style = props.textSize && {
+ fontSize: suffixPx(props.textSize)
+ };
+
+ return (
+
+ {slots.default()}
+
+ );
+ }
+ }
+
return (
{Spin}
{Circular}
- {slots.default && {slots.default()}}
+ {Text()}
);
}
Loading.props = {
size: String,
+ textSize: [String, Number],
type: {
type: String,
default: 'circular'
diff --git a/packages/loading/test/__snapshots__/index.spec.js.snap b/packages/loading/test/__snapshots__/index.spec.js.snap
new file mode 100644
index 000000000..17965148b
--- /dev/null
+++ b/packages/loading/test/__snapshots__/index.spec.js.snap
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`text-size prop 1`] = `Text
`;
diff --git a/packages/loading/test/index.spec.js b/packages/loading/test/index.spec.js
new file mode 100644
index 000000000..497f6b773
--- /dev/null
+++ b/packages/loading/test/index.spec.js
@@ -0,0 +1,15 @@
+import { mount } from '../../../test/utils';
+import Loading from '..';
+
+test('text-size prop', () => {
+ const wrapper = mount(Loading, {
+ propsData: {
+ textSize: 20
+ },
+ scopedSlots: {
+ default: () => 'Text'
+ }
+ });
+
+ expect(wrapper).toMatchSnapshot();
+});
diff --git a/packages/loading/zh-CN.md b/packages/loading/zh-CN.md
index 80fa009da..53c7fab3b 100644
--- a/packages/loading/zh-CN.md
+++ b/packages/loading/zh-CN.md
@@ -35,7 +35,8 @@ Vue.use(Loading);
|------|------|------|------|------|
| color | 颜色 | `String` | `#c9c9c9` | - |
| type | 类型,可选值为 `spinner` | `String` | `circular` | - |
-| size | 大小 | `String` | `30px` | - |
+| size | 加载图标大小 | `String` | `30px` | - |
+| text-size | 文字大小 | `String | Number` | `14px` | 2.0.0 |
### Slot
diff --git a/packages/radio/zh-CN.md b/packages/radio/zh-CN.md
index 95453932b..b5e63c585 100644
--- a/packages/radio/zh-CN.md
+++ b/packages/radio/zh-CN.md
@@ -122,7 +122,7 @@ export default {
|------|------|------|
| change | 当绑定值变化时触发的事件 | 当前选中项的 name |
-### Radio Slots
+### Radio Slot
| 名称 | 说明 | slot-scope |
|------|------|------|
diff --git a/packages/skeleton/index.tsx b/packages/skeleton/index.tsx
index b893b43db..d3da65cc6 100644
--- a/packages/skeleton/index.tsx
+++ b/packages/skeleton/index.tsx
@@ -1,6 +1,5 @@
-import { use } from '../utils';
+import { use, suffixPx } from '../utils';
import { inherit } from '../utils/functional';
-import { isNumber } from '../utils/validate/number';
// Types
import { CreateElement, RenderContext } from 'vue/types';
@@ -22,11 +21,6 @@ const [sfc, bem] = use('skeleton');
const DEFAULT_ROW_WIDTH = '100%';
const DEFAULT_LAST_ROW_WIDTH = '60%';
-function suffixPx(value: string | number): string {
- value = String(value);
- return isNumber(value) ? `${value}px` : value;
-}
-
function Skeleton(
h: CreateElement,
props: SkeletonProps,
diff --git a/packages/utils/index.ts b/packages/utils/index.ts
index 92df1662c..e6c061f61 100644
--- a/packages/utils/index.ts
+++ b/packages/utils/index.ts
@@ -1,4 +1,5 @@
import Vue from 'vue';
+import { isNumber } from './validate/number';
export { use } from './use';
@@ -48,3 +49,8 @@ export function range(num: number, min: number, max: number): number {
export function isInDocument(element: HTMLElement): boolean {
return document.body.contains(element);
}
+
+export function suffixPx(value: string | number): string {
+ value = String(value);
+ return isNumber(value) ? `${value}px` : value;
+}