mirror of
https://gitee.com/xiongmao1988/rax-medical.git
synced 2025-08-23 20:44:58 +08:00
This commit is contained in:
parent
8067c80c1e
commit
72ac564e87
|
@ -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'),
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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>
|
|
@ -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({
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue
Block a user