This commit is contained in:
gaofy 2023-12-19 09:47:27 +08:00
parent 8067c80c1e
commit 72ac564e87
12 changed files with 144 additions and 32 deletions

View File

@ -18,13 +18,13 @@ const router = createRouter({
{
path: '/home',
name: '首页',
component: () => import('@/views/home/home.vue'),
component: () => import('@/views/home/index.vue'),
},
{
path: '/permissions-manage',
name: '权限管理',
redirect: '/permissions-manage/doctor-manage',
component: () => import('@/views/permissions-manage/permissions-manage.vue'),
component: () => import('@/views/permissions-manage/index.vue'),
children: [
{
path: '/permissions-manage/doctor-manage',
@ -46,22 +46,35 @@ const router = createRouter({
{
path: '/patients-manage',
name: '患者管理',
component: () => import('@/views/patients-manage/patients-manage.vue'),
redirect: '/patients-manage/patients-manage',
component: () => import('@/views/patients-manage/index.vue'),
children: [
{
path: '/patients-manage/patients-manage',
name: '患者管理',
component: () => import('@/views/patients-manage/patients-manage.vue'),
},
{
path: '/patients-manage/surgery-info',
name: '手术信息',
component: () => import('@/views/patients-manage/surgery-info.vue'),
}
]
},
{
path: '/remote-manage',
name: '远程管理',
component: () => import('@/views/remote-manage/remote-manage.vue'),
component: () => import('@/views/remote-manage/index.vue'),
},
{
path: '/system-manage',
name: '后台管理',
component: () => import('@/views/system-manage/system-manage.vue'),
component: () => import('@/views/system-manage/index.vue'),
},
{
path: '/logs-manage',
name: '日志管理',
component: () => import('@/views/logs-manage/logs-manage.vue'),
component: () => import('@/views/logs-manage/index.vue'),
}
]
}

View File

@ -8,4 +8,11 @@ export const getHospitalsData = () => {
export const getPhoneAreasData = () => {
return ['中国 +86']
}
export const getDeptData = () => {
const depts = []
depts.push({ label: '神经外科', value: '神经外科' })
depts.push({ label: '心脏内科', value: '心脏内科' })
return depts
}

View File

@ -0,0 +1,72 @@
<template>
<div class="permissions-manage-page">
<div class="menu-box">
<CommonMenu :menuData="menuData" @selectMenu="selectMenu" />
</div>
<div class="content-box">
<div class="header-box">
<PageTabs ref="pageTabsRef" />
</div>
<div class="main-box">
<div class="background-block">
<RouterView />
</div>
</div>
</div>
</div>
</template>
<script lang='ts' setup>
import { onMounted, reactive, ref, toRefs, watch } from 'vue'
import type { MenuItem } from '@/utils/public-interface'
import CommonMenu from '@/components/common-menu.vue'
import PageTabs from '@/components/page-tabs.vue'
const menuData = [
{ name: '患者管理', path: '/patients-manage/patients-manage' },
{ name: '手术信息', path: '/patients-manage/surgery-info' }
]
const pageTabsRef = ref()
const selectMenu = (e: MenuItem) => {
pageTabsRef.value.setTab(e)
}
</script>
<style lang='scss' scoped>
.permissions-manage-page {
width: 100%;
height: 100%;
display: flex;
.menu-box {
width: 200px;
height: 100%;
background: white;
overflow-x: hidden;
overflow-y: auto;
}
.content-box {
width: calc(100% - 200px);
height: 100%;
.header-box {
width: 100%;
height: 50px;
}
.main-box {
width: 100%;
height: calc(100% - 50px);
padding: 10px;
.background-block {
width: 100%;
height: 100%;
background: white;
border-radius: 15px;
padding: 20px;
}
}
}
}</style>

View File

@ -67,17 +67,9 @@ const queryParams = ref({
} as any)
const tableData = ref([] as any)
while (tableData.value.length < 10) {
tableData.value.push({
userName: 'cscs',
name: '测试',
phone: '12312345678',
role: '高级管理员',
enable: true,
})
}
queryData({userName: '测试'})
const queryData = (e: any) => {
function queryData (e: any) {
tableData.value = []
while (tableData.value.length < 10) {
tableData.value.push({

View File

@ -15,7 +15,8 @@
<el-input v-model="formData.menuName" placeholder="请输入菜单名称"></el-input>
</el-form-item>
<el-form-item label="图标" prop="icon">
<el-input v-model="formData.menuName" placeholder="请输入菜单名称"></el-input>
<i :class="formData.icon" style="font-size: 26px;margin: 0 10px;"></i>
<el-button @click="isIconDialog = true">选择图标</el-button>
</el-form-item>
<el-form-item label="路由" prop="route">
<el-input v-model="formData.route" placeholder="请输入路由"></el-input>
@ -43,9 +44,9 @@
</div>
</el-form>
<el-dialog v-model="isIconDialog" title="选择图标" width="30%">
<el-dialog v-model="isIconDialog" title="选择图标" top="20vh" width="25%">
<div class="iconfont-box">
<div class="iconfont-item" v-for="item in iconfont.glyphs" :key="item.font_class">
<div class="iconfont-item" v-for="item in iconfont.glyphs" :key="item.font_class" @click="iconClick(item)">
<i :class="'icon-' + item.font_class"></i>
</div>
</div>
@ -99,6 +100,7 @@ function resetData() {
type: '菜单',
fatherMenu: '',
menuName: '',
icon: '',
route: '',
order: 1,
isShow: true
@ -110,6 +112,10 @@ const numberInputChange = (e: any) => {
formData.value.order = 1
}
}
const iconClick = (e: any) => {
formData.value.icon = 'icon-' + e.font_class
isIconDialog.value = false
}
const saveData = async () => {
await formRef.value.validate((valid: any, fields: any) => {
if (valid) {
@ -135,4 +141,20 @@ const saveData = async () => {
}
}
}
.iconfont-box {
display: flex;
flex-wrap: wrap;
max-height: 300px;
.iconfont-item {
font-size: 30px;
padding: 10px;
&:hover {
background: rgba($main-color, .1);
}
&:focus, &:active {
background: rgba($main-color, .2);
color: $main-color;
}
}
}
</style>

View File

@ -18,12 +18,12 @@
<div class="table-part">
<el-table ref="tableRef" :data="tableData" row-key="id" height="100%" border show-overflow-tooltip
@row-click="tableRowClick">
<el-table-column property="menuName" label="菜单名称" width="120" align="center" />
<el-table-column property="menuName" label="菜单名称" width="180" align="center" />
<el-table-column property="order" label="排序" width="80" align="center" />
<el-table-column label="图标" width="80" align="center" >
<template #default="scope"><i class="main-color" :class="scope.row.icon"></i></template>
<template #default="scope"><i class="main-color f20" :class="scope.row.icon"></i></template>
</el-table-column>
<el-table-column property="route" label="路由" width="180" align="center" />
<el-table-column property="route" label="路由" width="260" align="center" />
<el-table-column property="type" label="类型" width="180" align="center" />
<el-table-column label="操作" align="center">
<template #default="scope">

View File

@ -67,17 +67,9 @@ const queryParams = ref({
} as any)
const tableData = ref([] as any)
while (tableData.value.length < 10) {
tableData.value.push({
roleName: '测试',
roleMark: 'ROLE_ADMIN',
roleRemark: '超级管理员',
dataPermissions: '全部',
createdTime: dateFormater('yyyy-MM-dd HH:mm:ss'),
})
}
queryData({roleName: '测试'})
const queryData = (e: any) => {
function queryData (e: any) {
tableData.value = []
while (tableData.value.length < 10) {
tableData.value.push({

View File

@ -0,0 +1,14 @@
<template>
<div>
</div>
</template>
<script lang='ts' setup>
import { onMounted, reactive, ref, toRefs, watch } from 'vue'
</script>
<style lang='scss' scoped>
</style>