From 364b3dd102c6b6b8e4041971516331fcbced5b9a Mon Sep 17 00:00:00 2001 From: weichien Date: Tue, 8 Jun 2021 16:01:55 +0800 Subject: [PATCH] feat: add vue filters --- resources/assets/vue/app.js | 4 ++++ resources/assets/vue/general/filters/index.js | 7 +++++++ resources/assets/vue/general/filters/truncate.js | 3 +++ 3 files changed, 14 insertions(+) create mode 100644 resources/assets/vue/general/filters/index.js create mode 100644 resources/assets/vue/general/filters/truncate.js diff --git a/resources/assets/vue/app.js b/resources/assets/vue/app.js index 192f9fb6..1d98d12d 100644 --- a/resources/assets/vue/app.js +++ b/resources/assets/vue/app.js @@ -14,6 +14,8 @@ import vuelidate from 'vuelidate'; /** Input Mask **/ import VueTheMask from 'vue-the-mask'; +/** Vue Filter **/ +import filters from './general/filters'; /** Mixins */ import request from './general/mixins/request'; @@ -27,6 +29,8 @@ import Avatar from 'vue-avatar'; /** Application Injections */ Vue.use(vuelidate); Vue.use(VueTheMask); +Vue.use(filters); + Vue.directive('closable', closable); Vue.mixin({ methods: { diff --git a/resources/assets/vue/general/filters/index.js b/resources/assets/vue/general/filters/index.js new file mode 100644 index 00000000..37be02fa --- /dev/null +++ b/resources/assets/vue/general/filters/index.js @@ -0,0 +1,7 @@ +import truncate from "./truncate"; + +export default { + install(Vue) { + Vue.filter("truncate", truncate); + } +}; diff --git a/resources/assets/vue/general/filters/truncate.js b/resources/assets/vue/general/filters/truncate.js new file mode 100644 index 00000000..db81e9b0 --- /dev/null +++ b/resources/assets/vue/general/filters/truncate.js @@ -0,0 +1,3 @@ +export default function truncate (text, stop, clamp) { + return text.slice(0, stop) + (stop < text.length ? clamp || '...' : '') +} \ No newline at end of file