This commit is contained in:
sc 2021-04-22 17:00:20 +08:00
parent b651e9055d
commit 4f561f95db
5 changed files with 56 additions and 7 deletions

View File

@ -101,6 +101,14 @@
"component": "lala" "component": "lala"
}] }]
} }
],
"permissions": [
"list.add",
"list.edit",
"list.delete",
"user.add",
"user.edit",
"user.delete"
] ]
}, },
"message": "" "message": ""

View File

@ -7,12 +7,14 @@ import router from './router'
import store from './store' import store from './store'
import tool from './utils/tool' import tool from './utils/tool'
import api from './api' import api from './api'
import permission from './utils/permission'
const app = createApp(App); const app = createApp(App);
app.config.globalProperties.$CONFIG = config; app.config.globalProperties.$CONFIG = config;
app.config.globalProperties.$TOOL = tool; app.config.globalProperties.$TOOL = tool;
app.config.globalProperties.$API = api; app.config.globalProperties.$API = api;
app.config.globalProperties.$HAS = permission;
app.use(store); app.use(store);
app.use(router); app.use(router);

15
src/utils/permission.js Normal file
View File

@ -0,0 +1,15 @@
import tool from '@/utils/tool';
let permission = (data) => {
let userInfo = tool.data.get("user");
if(!userInfo){
return false;
}
let permissions = userInfo.permissions;
if(!permissions){
return false;
}
let isHave = permissions.includes(data);
return isHave;
}
export default permission;

View File

@ -1,17 +1,23 @@
const tool = { const tool = {
/* localStorage */ /* localStorage */
data : { data: {
set : function(table, settings){ set: function(table, settings) {
var _set = JSON.stringify(settings) var _set = JSON.stringify(settings)
return localStorage.setItem(table, _set); return localStorage.setItem(table, _set);
}, },
get : function(table){ get: function(table) {
return JSON.parse(localStorage.getItem(table)); var data = localStorage.getItem(table);
try {
data = JSON.parse(data)
} catch (err) {
return null
}
return data;
}, },
remove : function(table){ remove: function(table) {
return localStorage.removeItem(table); return localStorage.removeItem(table);
}, },
clear : function(){ clear: function() {
return localStorage.clear(); return localStorage.clear();
} }
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<el-row> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-card shadow="never"> <el-card shadow="never">
<div class="welTop"> <div class="welTop">
@ -28,12 +28,30 @@
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-card shadow="never" header="User Permissions">
<el-tag v-if="$HAS('user.add')">user.add</el-tag>
<el-tag v-if="$HAS('user.edit')">user.edit</el-tag>
<el-tag v-if="$HAS('user.delete')">user.delete</el-tag>
<el-tag v-if="$HAS('list.add')">list.add</el-tag>
<el-tag v-if="$HAS('list.edit')">list.edit</el-tag>
<el-tag v-if="$HAS('list.delete')">list.delete</el-tag>
</el-card>
</el-col>
</el-row>
</template> </template>
<script> <script>
</script> </script>
<style scoped> <style scoped>
.el-row {margin-bottom:20px;}
.el-tag+.el-tag {margin-left: 10px;}
.welTop {display: flex;} .welTop {display: flex;}
.welTop .main {margin-left:20px;} .welTop .main {margin-left:20px;}
.welTop .main h2 {font-size: 20px;color: #3c4a54;} .welTop .main h2 {font-size: 20px;color: #3c4a54;}