Vue--권한 시스템 만들기
19817 단어 Vue
다중 페이지 Vue 항목에서 권한 일치를 우아하게 하는 방법
문제점 해결:
복잡한 신분 판단 - 일상 개발에서 ||| & & & & 로 신분 검증을 통해 DOM의 숨겨진 업무 논리적 상호작용을 처리한다새로운 신분을 추가하려면 이전의 논리를 모두 재현 처리해야 한다의존성:
정규 표현식Array.filter 클로즈업생각을 실현하다
(function (window) {
var u = {};
var ROOT = [];
var isAndroid = (/android/gi).test(navigator.appVersion);
var uzStorage = function () {
var ls = window.localStorage;
if (isAndroid) {
ls = os.localStorage();
}
return ls;
};
//
u.trimAll = function (str) {
return str.replace(/\s*/g, '');
};
u.setStorage = function (key, value) {
if (arguments.length === 2) {
var v = value;
if (typeof v == 'object') {
v = JSON.stringify(v);
v = 'obj-' + v;
} else {
v = 'str-' + v;
}
var ls = uzStorage();
if (ls) {
ls.setItem(key, v);
}
}
};
u.getStorage = function (key) {
var ls = uzStorage();
if (ls) {
var v = ls.getItem(key);
if (!v) {
return;
}
if (v.indexOf('obj-') === 0) {
v = v.slice(4);
return JSON.parse(v);
} else if (v.indexOf('str-') === 0) {
return v.slice(4);
}
}
};
u.rmStorage = function (key) {
var ls = uzStorage();
if (ls && key) {
ls.removeItem(key);
}
};
u.root = [ //
'shiju',
'fenju',
'paichusuo'
];
u.regex = { //
shiju: /^home_hospital_[^(r)]+|^home_hospital_room/, // home_hospital_ , r home_hospital_room
fenju: /^home_hospital_/,
paichusuo: /^user__/,
};
//
u.root_list = [
'home_hospital_room', //
];
u.init = function (root) {
if (!root) {
console.warn(' ');
return;
}
if (u.root.indexOf(root) == -1) {
console.warn(' ');
return;
}
u.ROOT = u.root_list.filter(function (item) {
item = u.trimAll(item);
return u.regex[root].test(item);
});
u.setStorage('ROOT', u.ROOT);
};
u.destroy = function () {
u.ROOT = {};
u.rmStorage('ROOT');
};
u.check = function (item) {
if (!u.ROOT && !u.getStorage('ROOT')) {
console.warn(' ');
return;
}
var ROOT = u.ROOT || u.getStorage('ROOT');
return ROOT.indexOf(item) !== -1;
};
/*end*/
window.$root = u;
})(window);
그룹 초기화$root.init('shiju')
v-show 판단 그룹에 있는지 여부v-show="root_check('home_hospital_room')"
methods: {
root_check (item) {
return $root.check(item)
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.