You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/ui/page/app/auth.html

102 lines
3.2 KiB
HTML

7 months ago
<!DOCTYPE html>
<html>
<head>
<title>权限管理</title>
</head>
<style>
body {
padding: 20px;
}
.header {
font-size: 24px;
line-height: 1.5;
margin-bottom: 20px;
font-weight: 600;
}
.sub-header {
font-size: 20px;
line-height: 1.5;
margin-bottom: 20px;
font-weight: 600;
text-align: center;
}
.dialog {
height: 60vh;
width: 60vw;
background-color: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
padding: 2rem;
border-radius: 0.5rem;
}
</style>
<body>
<div class="header">应用权限管理</div>
<div class="sub-header">资源表</div>
<v-table :axios='$axios' :onerr="onerr" :keys="keys" :api='resource_url'></v-table>
7 months ago
<div class="sub-header">角色表</div>
<v-table :axios='$axios' :onerr="onerr" :keys="role_keys" :api='role_url'>
<v-btn vslot='_addon' size='sm' @click='show_user(row)' color='#2c9'>权限表</v-btn>
7 months ago
</v-table>
<v-dialog v:show='show'>
<div class="dialog">
<div class="text-2xl">{{selected_role.name}}角色权限表</div>
<v-table :querys='{role_id: selected_role?.id}' :axios='$axios' :onerr="onerr" :keys="access_keys"
:api='access_url' :data="accessData"></v-table>
7 months ago
</div>
</v-dialog>
</body>
<script setup>
id = $router.params.id
7 months ago
rows = []
keys = [
{name: 'id', label: 'ID', disabled: true, style: {width: '2rem'}},
7 months ago
{name: 'name', required: true, label: '资源名称'},
{name: 'des', label: '资源描述', editable: true},
{name: 'created_at', label: '创建时间', disabled: true, field: (r) => new Date(r.created_at).toLocaleString()},
{name: 'updated_at', label: '更新时间', disabled: true, field: (r) => new Date(r.updated_at).toLocaleString()},
7 months ago
]
role_keys = [
{name: 'id', label: 'ID', disabled: true, style: {width: '2rem'}},
7 months ago
{name: 'name', required: true, label: '角色名称'},
{name: 'des', required: true, label: '角色描述', editable: true},
{name: 'user_count', label: '用户数量', disabled: true},
{name: 'created_at', label: '创建时间', disabled: true, field: (r) => new Date(r.created_at).toLocaleString()},
{name: 'updated_at', label: '更新时间', disabled: true, field: (r) => new Date(r.updated_at).toLocaleString()},
7 months ago
]
access_keys = [
{name: 'id', label: 'ID', disabled: true, style: {width: '2rem'}},
7 months ago
{name: 'name', required: true, label: '资源名'},
{name: 'tid', label: '限制域', editable: true},
{name: 'level', label: '权限等级', editable: true},
{name: 'created_at', label: '创建时间', disabled: true, field: (r) => new Date(r.created_at).toLocaleString()},
{name: 'updated_at', label: '更新时间', disabled: true, field: (r) => new Date(r.updated_at).toLocaleString()},
7 months ago
]
show = false
role_user_keys = []
selected_role = {}
accessData = []
user_role_data = []
show_user = async (row) => {
selected_role = row
access_url = `/api/app/${id}/access`
7 months ago
show = true
}
resource_url = `/api/app/${id}/resource`
access_url = ``
role_url = `/api/app/${id}/role`
user_role_url = `/api/user/_/user_role/${selected_role.id}`
7 months ago
onerr = (e) => {
console.warn(e)
// history.back()
7 months ago
}
</script>
</html>