diff --git a/docs/examples-docs/badge.md b/docs/examples-docs/badge.md
index c73d6a8e5..fee5fda1e 100644
--- a/docs/examples-docs/badge.md
+++ b/docs/examples-docs/badge.md
@@ -5,10 +5,10 @@
:::demo 样例代码
```html
-
-
-
-
+
+
+
+
```
:::
\ No newline at end of file
diff --git a/packages/badge/mixin/emitter.js b/packages/badge/mixin/emitter.js
new file mode 100644
index 000000000..2e25c831f
--- /dev/null
+++ b/packages/badge/mixin/emitter.js
@@ -0,0 +1,34 @@
+function broadcast(componentName, eventName, ...params) {
+ this.$children.forEach(child => {
+ var name = child.$options.componentName;
+
+ if (name === componentName) {
+ child.$emit.apply(child, [eventName].concat(params));
+ } else {
+ broadcast.apply(child, [componentName, eventName].concat(params));
+ }
+ });
+}
+export default {
+ methods: {
+ $dispatch(componentName, eventName, ...params) {
+
+ var parent = this.$parent || this.$root;
+ var name = parent.$options.componentName;
+
+ while (parent && (!name || name !== componentName)) {
+ parent = parent.$parent;
+
+ if (parent) {
+ name = parent.$options.componentName;
+ }
+ }
+ if (parent) {
+ parent.$emit.apply(parent, [eventName].concat(params));
+ }
+ },
+ $broadcast(componentName, eventName, ...params) {
+ broadcast.call(this, componentName, eventName, ...params);
+ }
+ }
+};
diff --git a/packages/badge/src/badge-group.vue b/packages/badge/src/badge-group.vue
index 1b928e828..231a60f9c 100644
--- a/packages/badge/src/badge-group.vue
+++ b/packages/badge/src/badge-group.vue
@@ -6,6 +6,11 @@
diff --git a/packages/badge/src/badge.vue b/packages/badge/src/badge.vue
index e8df950ab..a21163aff 100644
--- a/packages/badge/src/badge.vue
+++ b/packages/badge/src/badge.vue
@@ -1,22 +1,41 @@
-
+
{{info}}
- {{value}}
+ {{title}}