diff --git a/packages/mixins/click-outside.js b/packages/mixins/click-outside.js
new file mode 100644
index 000000000..eac57ff31
--- /dev/null
+++ b/packages/mixins/click-outside.js
@@ -0,0 +1,17 @@
+import { on, off } from '../utils/event';
+
+export default config => ({
+ mounted() {
+ config.handler = event => {
+ if (!this.$el.contains(event.target)) {
+ this[config.method]();
+ }
+ };
+
+ on(document, config.event, config.handler);
+ },
+
+ beforeDestroy() {
+ off(document, config.event, config.handler);
+ }
+});
diff --git a/packages/swipe-cell/index.vue b/packages/swipe-cell/index.js
similarity index 58%
rename from packages/swipe-cell/index.vue
rename to packages/swipe-cell/index.js
index f2fcdfcd9..5a5ebd7db 100644
--- a/packages/swipe-cell/index.vue
+++ b/packages/swipe-cell/index.js
@@ -1,48 +1,15 @@
-
-