mirror of https://github.com/veypi/OneAuth.git
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.
116 lines
3.6 KiB
HTML
116 lines
3.6 KiB
HTML
<!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>
|
|
<c-app-menu slot="menu"></c-app-menu>
|
|
<div class="header">应用权限管理</div>
|
|
<div class="sub-header">资源表</div>
|
|
<v-table :onerr="onerr" :keys="keys" :api='resource_url'></v-table>
|
|
<div class="sub-header">角色表</div>
|
|
<v-table :onerr="onerr" :keys="role_keys" :api='role_url'>
|
|
<v-btn slot='_addon' size='sm' @click='show_user(row)' color='#2c9'>权限表</v-btn>
|
|
</v-table>
|
|
<v-dialog v:show='show'>
|
|
<div class="dialog">
|
|
<div class="text-2xl">{{selected_role.name}}角色权限表</div>
|
|
<v-table :onerr="onerr" :keys="access_keys" :api='access_url' :data="accessData"
|
|
:next='access_api.next'></v-table>
|
|
</div>
|
|
</v-dialog>
|
|
</body>
|
|
<script setup>
|
|
rows = []
|
|
keys = [
|
|
{name: 'id', label: 'ID', no_create: true},
|
|
{name: 'name', required: true, label: '资源名称'},
|
|
{name: 'des', label: '资源描述', editable: true},
|
|
{name: 'created_at', label: '创建时间', no_create: true, field: (r) => new Date(r.created_at).toLocaleString()},
|
|
{name: 'updated_at', label: '更新时间', no_create: true, field: (r) => new Date(r.updated_at).toLocaleString()},
|
|
]
|
|
role_keys = [
|
|
{name: 'id', label: 'ID', no_create: true},
|
|
{name: 'name', required: true, label: '角色名称'},
|
|
{name: 'des', required: true, label: '角色描述', editable: true},
|
|
{name: 'user_count', label: '用户数量', no_create: true},
|
|
{name: 'created_at', label: '创建时间', no_create: true, field: (r) => new Date(r.created_at).toLocaleString()},
|
|
{name: 'updated_at', label: '更新时间', no_create: true, field: (r) => new Date(r.updated_at).toLocaleString()},
|
|
]
|
|
access_keys = [
|
|
{name: 'id', label: 'ID', no_create: true},
|
|
{name: 'name', required: true, label: '资源名'},
|
|
{name: 'tid', label: '限制域', editable: true},
|
|
{name: 'level', label: '权限等级', editable: true},
|
|
{name: 'created_at', label: '创建时间', no_create: true, field: (r) => new Date(r.created_at).toLocaleString()},
|
|
{name: 'updated_at', label: '更新时间', no_create: true, field: (r) => new Date(r.updated_at).toLocaleString()},
|
|
]
|
|
show = false
|
|
role_user_keys = []
|
|
selected_role = {}
|
|
accessData = []
|
|
user_role_data = []
|
|
show_user = async (row) => {
|
|
selected_role = row
|
|
user_role_url = ($env.root || '') + `/api/user/_/user_role/${selected_role.id}`
|
|
accessData = await access_api.next(0, 10)
|
|
// user_role_data = await user_role_api.next(0, 10)
|
|
show = true
|
|
}
|
|
|
|
const params = new URLSearchParams(window.location.search)
|
|
id = params.get('id')
|
|
if (!id) {
|
|
history.back()
|
|
return
|
|
}
|
|
resource_url = ($env.root || '') + `/api/app/${id}/resource`
|
|
role_url = ($env.root || '') + `/api/app/${id}/role`
|
|
access_url = ($env.root || '') + `/api/access`
|
|
user_role_url = ($env.root || '') + `/api/user/_/user_role/${selected_role.id}`
|
|
onerr = (e) => {
|
|
console.warn(e)
|
|
history.back()
|
|
}
|
|
access_api = {
|
|
next: async (page, size) => {
|
|
console.log(id)
|
|
return await api.Get(access_url, {query: {page, size, app_id: id, role_id: selected_role.id || ''}})
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</html>
|