| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import Vue from "vue";
- // import store from '@/store'
- // let permissionArr = store.getters.permission
- Vue.directive("permission", {
- inserted(el, binding) {
- let value = binding.value;
- let permission = window.localStorage.getItem("permission");
- permission = permission.split(",");
- // 如果一个权限判断不了则用两个
- // 格式: v-permission="{child: 'child', parent: 'parent'}"
- // 在特殊情况下才会用到两个参数,基本情况只会用到一个标识
- if (typeof value == "string") {
- if (!permission.includes(value)) {
- // el.style.display = 'none'
- el.parentNode && el.parentNode.removeChild(el);
- }
- } else {
- if (
- permission.includes(value.parent) &&
- permission.includes(value.child)
- ) {
- // el.style.display = 'none'
- } else {
- el.parentNode && el.parentNode.removeChild(el);
- }
- }
- }
- });
- Vue.directive("number", {
- inserted(el) {
- el.oninput = function(e) {
- let value = "" + e.target.value;
- if (value.indexOf(".") != -1) {
- let arr = value.split("");
- arr.splice(arr.length - 1);
- let str2 = arr.join("");
- e.target.value = +str2;
- return;
- }
- };
- }
- });
- /** 防止重复点击指令 */
- Vue.directive("preventReClick", {
- mounted(el, binding) {
- el.addEventListener("click", () => {
- if (!el.disabled) {
- el.disabled = true;
- setTimeout(() => {
- el.disabled = false;
- }, binding.value || 2000);
- }
- });
- }
- });
|