fix: 解决bug
This commit is contained in:
+3
-2
@@ -275,6 +275,7 @@ function normalizeUser(item: unknown, index: number): UserListItem {
|
|||||||
const name = getString(record, ['name', 'real_name', 'realName', 'nickname', 'username'], `用户${index + 1}`)
|
const name = getString(record, ['name', 'real_name', 'realName', 'nickname', 'username'], `用户${index + 1}`)
|
||||||
const roleType = getString(record, ['role_type', 'roleType', 'role'], '')
|
const roleType = getString(record, ['role_type', 'roleType', 'role'], '')
|
||||||
const status = getStatus(record)
|
const status = getStatus(record)
|
||||||
|
const institutionId = getString(record, ['institution', 'institution_id', 'institutionId'], '')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: getString(record, ['id', 'uuid', 'user_id', 'userId'], `${index}`),
|
id: getString(record, ['id', 'uuid', 'user_id', 'userId'], `${index}`),
|
||||||
@@ -282,7 +283,7 @@ function normalizeUser(item: unknown, index: number): UserListItem {
|
|||||||
account: getString(record, ['account', 'username', 'phone', 'mobile', 'email'], name),
|
account: getString(record, ['account', 'username', 'phone', 'mobile', 'email'], name),
|
||||||
role: getString(record, ['role_name', 'roleName', 'role', 'role_type', 'roleType']),
|
role: getString(record, ['role_name', 'roleName', 'role', 'role_type', 'roleType']),
|
||||||
roleType,
|
roleType,
|
||||||
org: getString(record, ['org', 'organization', 'organization_name', 'organizationName', 'hospital', 'hospital_name', 'hospitalName']),
|
org: getString(record, ['org', 'organization', 'organization_name', 'organizationName', 'institution_name', 'institutionName', 'hospital', 'hospital_name', 'hospitalName'], institutionId || '-'),
|
||||||
lastLogin: getString(record, ['last_login', 'lastLogin', 'login_time', 'loginTime']),
|
lastLogin: getString(record, ['last_login', 'lastLogin', 'login_time', 'loginTime']),
|
||||||
enabled: getBoolean(record, ['enabled', 'is_active', 'isActive', 'status']),
|
enabled: getBoolean(record, ['enabled', 'is_active', 'isActive', 'status']),
|
||||||
phone: getString(record, ['phone', 'mobile', 'account', 'username'], ''),
|
phone: getString(record, ['phone', 'mobile', 'account', 'username'], ''),
|
||||||
@@ -292,7 +293,7 @@ function normalizeUser(item: unknown, index: number): UserListItem {
|
|||||||
major: getString(record, ['major']),
|
major: getString(record, ['major']),
|
||||||
trainingStage: getString(record, ['training_stage', 'trainingStage']),
|
trainingStage: getString(record, ['training_stage', 'trainingStage']),
|
||||||
status,
|
status,
|
||||||
institutionId: getString(record, ['institution', 'institution_id', 'institutionId'])
|
institutionId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export const platformDashboard = {
|
|||||||
activeUserTrend: [6420, 7310, 8160, 8940, 10320, 11860],
|
activeUserTrend: [6420, 7310, 8160, 8940, 10320, 11860],
|
||||||
userComposition: [
|
userComposition: [
|
||||||
{ name: '学生', value: 38260 },
|
{ name: '学生', value: 38260 },
|
||||||
{ name: '带教老师', value: 7240 },
|
{ name: '带教医生', value: 7240 },
|
||||||
{ name: '医院管理员', value: 2760 }
|
{ name: '医院管理员', value: 2760 }
|
||||||
],
|
],
|
||||||
hourlyTrainingAverage: {
|
hourlyTrainingAverage: {
|
||||||
@@ -154,7 +154,7 @@ export const hospitalDashboard = {
|
|||||||
},
|
},
|
||||||
kpis: [
|
kpis: [
|
||||||
{ label: '本院科室数', value: '18', change: '+2 较上月', tone: 'blue' },
|
{ label: '本院科室数', value: '18', change: '+2 较上月', tone: 'blue' },
|
||||||
{ label: '带教老师数', value: '86', change: '+6', tone: 'green' },
|
{ label: '带教医生数', value: '86', change: '+6', tone: 'green' },
|
||||||
{ label: '本院学员数', value: '1,260', change: '+84', tone: 'purple' },
|
{ label: '本院学员数', value: '1,260', change: '+84', tone: 'purple' },
|
||||||
{ label: '训练完成率', value: '89.6%', change: '+3.2%', tone: 'orange' },
|
{ label: '训练完成率', value: '89.6%', change: '+3.2%', tone: 'orange' },
|
||||||
{ label: '平均训练得分', value: '84.8', change: '+1.6 分', tone: 'green' },
|
{ label: '平均训练得分', value: '84.8', change: '+1.6 分', tone: 'green' },
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ export const roleMenus: Record<RoleKey, MenuSection[]> = {
|
|||||||
{
|
{
|
||||||
title: '人员管理',
|
title: '人员管理',
|
||||||
items: [
|
items: [
|
||||||
{ page: 'doctor-list', icon: DoctorIcon, title: '医生管理' },
|
{ page: 'doctor-list', icon: DoctorIcon, title: '带教医生管理' },
|
||||||
{ page: 'student-list', icon: School, title: '医学生管理' },
|
{ page: 'student-list', icon: School, title: '医学生管理' },
|
||||||
{ page: 'teacher-list', icon: Reading, title: '师生关系管理' }
|
{ page: 'teacher-list', icon: Reading, title: '师生关系管理' }
|
||||||
]
|
]
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
{ path: 'users', name: 'Users', component: () => import('@/views/UsersView.vue'), meta: { title: '用户列表' } },
|
{ path: 'users', name: 'Users', component: () => import('@/views/UsersView.vue'), meta: { title: '用户列表' } },
|
||||||
{ path: 'cases/ai-generate', name: 'AiCaseGenerate', component: () => import('@/views/AiCaseGenerateView.vue'), meta: { title: 'AI病例生成' } },
|
{ path: 'cases/ai-generate', name: 'AiCaseGenerate', component: () => import('@/views/AiCaseGenerateView.vue'), meta: { title: 'AI病例生成' } },
|
||||||
{ path: 'cases/review', name: 'CaseReview', component: () => import('@/views/CaseReviewView.vue'), meta: { title: '病例审核' } },
|
{ path: 'cases/review', name: 'CaseReview', component: () => import('@/views/CaseReviewView.vue'), meta: { title: '病例审核' } },
|
||||||
{ path: 'users/doctors', name: 'DoctorUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '医生管理', roleType: 'doctor' } },
|
{ path: 'users/doctors', name: 'DoctorUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '带教医生管理', roleType: 'doctor' } },
|
||||||
{ path: 'users/students', name: 'StudentUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '医学生管理', roleType: 'student' } },
|
{ path: 'users/students', name: 'StudentUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '医学生管理', roleType: 'student' } },
|
||||||
{ path: 'users/content-admins', name: 'ContentAdminUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '内容管理员', roleType: 'content_admin' } },
|
{ path: 'users/content-admins', name: 'ContentAdminUsers', component: () => import('@/views/RoleUsersView.vue'), meta: { title: '内容管理员', roleType: 'content_admin' } },
|
||||||
{ path: 'my-students', name: 'MyStudents', component: () => import('@/views/MyStudentsView.vue'), meta: { title: '我的学生' } },
|
{ path: 'my-students', name: 'MyStudents', component: () => import('@/views/MyStudentsView.vue'), meta: { title: '我的学生' } },
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ const roleProfiles: Record<RoleKey, Pick<UserProfile, 'name' | 'avatarText'>> =
|
|||||||
'super-admin': { name: '张管理员', avatarText: '张' },
|
'super-admin': { name: '张管理员', avatarText: '张' },
|
||||||
'hospital-admin': { name: '李院管', avatarText: '李' },
|
'hospital-admin': { name: '李院管', avatarText: '李' },
|
||||||
'content-admin': { name: '王内容', avatarText: '王' },
|
'content-admin': { name: '王内容', avatarText: '王' },
|
||||||
teacher: { name: '陈医生', avatarText: '陈' }
|
teacher: { name: '陈带教', avatarText: '陈' }
|
||||||
}
|
}
|
||||||
|
|
||||||
const loginRoleMap: Record<LoginRole, RoleKey> = {
|
const loginRoleMap: Record<LoginRole, RoleKey> = {
|
||||||
|
|||||||
@@ -592,7 +592,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="visibleScoringRules.length" class="case-form-section">
|
<div v-if="showScoringRulesSection" class="case-form-section">
|
||||||
<div class="case-section-title">
|
<div class="case-section-title">
|
||||||
<h3>评分规则</h3>
|
<h3>评分规则</h3>
|
||||||
</div>
|
</div>
|
||||||
@@ -847,6 +847,9 @@ const canEditDetailCase = computed(() => detailCase.value?.publishStatus === 0)
|
|||||||
const visibleScoringRules = computed(() =>
|
const visibleScoringRules = computed(() =>
|
||||||
detailForm.scoring_rules.filter(rule => rule.dimension.trim() || rule.scoring_standard.trim())
|
detailForm.scoring_rules.filter(rule => rule.dimension.trim() || rule.scoring_standard.trim())
|
||||||
)
|
)
|
||||||
|
const showScoringRulesSection = computed(() =>
|
||||||
|
detailCase.value?.publishStatus === 2 && visibleScoringRules.value.length > 0
|
||||||
|
)
|
||||||
const relationsCurrentTitle = computed(() => {
|
const relationsCurrentTitle = computed(() => {
|
||||||
if (!relationsCase.value) {
|
if (!relationsCase.value) {
|
||||||
return ''
|
return ''
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<section class="overview-grid">
|
<section class="overview-grid">
|
||||||
<ChartPanel class="wide-chart" title="近6个月训练次数与活跃用户" subtitle="柱状图为训练次数,折线图为月活跃用户数" :option="trainingActiveOption" />
|
<ChartPanel class="wide-chart" title="近6个月训练次数与活跃用户" subtitle="柱状图为训练次数,折线图为月活跃用户数" :option="trainingActiveOption" />
|
||||||
<ChartPanel title="用户构成" subtitle="学生、带教老师、医院管理员分布" :option="userCompositionOption" />
|
<ChartPanel title="用户构成" subtitle="学生、带教医生、医院管理员分布" :option="userCompositionOption" />
|
||||||
<ChartPanel title="近7天平均训练量" subtitle="按小时聚合的平均训练量" :option="hourlyAverageOption" />
|
<ChartPanel title="近7天平均训练量" subtitle="按小时聚合的平均训练量" :option="hourlyAverageOption" />
|
||||||
<ChartPanel class="wide-chart" title="各机构用户人数与活跃人数" subtitle="累计注册用户与近30天活跃用户对比" :option="institutionUsersOption" />
|
<ChartPanel class="wide-chart" title="各机构用户人数与活跃人数" subtitle="累计注册用户与近30天活跃用户对比" :option="institutionUsersOption" />
|
||||||
</section>
|
</section>
|
||||||
@@ -339,9 +339,9 @@ function ratioText(part: number | null | undefined, total: number | null | undef
|
|||||||
function roleLabel(role: string) {
|
function roleLabel(role: string) {
|
||||||
const labels: Record<string, string> = {
|
const labels: Record<string, string> = {
|
||||||
super_admin: '超级管理员',
|
super_admin: '超级管理员',
|
||||||
doctor: '医生',
|
doctor: '带教医生',
|
||||||
student: '学生',
|
student: '学生',
|
||||||
teacher: '带教老师',
|
teacher: '带教医生',
|
||||||
content_admin: '内容管理员',
|
content_admin: '内容管理员',
|
||||||
hospital_admin: '医院管理员'
|
hospital_admin: '医院管理员'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ const dashboard = computed(() => {
|
|||||||
},
|
},
|
||||||
kpis: [
|
kpis: [
|
||||||
stat('本院科室数', numberText(summary.dept_count), '当前机构', 'blue'),
|
stat('本院科室数', numberText(summary.dept_count), '当前机构', 'blue'),
|
||||||
stat('带教老师数', numberText(summary.doctor_count), '医生用户', 'green'),
|
stat('带教医生数', numberText(summary.doctor_count), '带教医生用户', 'green'),
|
||||||
stat('本院学员数', numberText(summary.student_count), '学生用户', 'purple'),
|
stat('本院学员数', numberText(summary.student_count), '学生用户', 'purple'),
|
||||||
stat('累计训练次数', numberText(summary.train_total), '本院训练', 'blue'),
|
stat('累计训练次数', numberText(summary.train_total), '本院训练', 'blue'),
|
||||||
stat('训练完成率', percentText(summary.complete_rate), '完成训练占比', 'orange'),
|
stat('训练完成率', percentText(summary.complete_rate), '完成训练占比', 'orange'),
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ const pageKpis = computed<StatCard[]>(() => {
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
stat('本院科室数', numberText(summary.dept_count), '当前机构', 'blue'),
|
stat('本院科室数', numberText(summary.dept_count), '当前机构', 'blue'),
|
||||||
stat('带教老师数', numberText(summary.doctor_count), '医生用户', 'green'),
|
stat('带教医生数', numberText(summary.doctor_count), '带教医生用户', 'green'),
|
||||||
stat('本院学员数', numberText(summary.student_count), '学生用户', 'purple'),
|
stat('本院学员数', numberText(summary.student_count), '学生用户', 'purple'),
|
||||||
stat('累计训练次数', numberText(summary.train_total), '本院训练', 'blue'),
|
stat('累计训练次数', numberText(summary.train_total), '本院训练', 'blue'),
|
||||||
stat('训练完成率', percentText(summary.complete_rate), '完成训练占比', 'orange'),
|
stat('训练完成率', percentText(summary.complete_rate), '完成训练占比', 'orange'),
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
<el-row :gutter="14">
|
<el-row :gutter="14">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="机构编码" prop="code">
|
<el-form-item label="机构编码" prop="code">
|
||||||
<el-input v-model="institutionForm.code" placeholder="请输入机构编码" />
|
<el-input v-model="institutionForm.code" placeholder="例如:BJXH2026" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -86,7 +86,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="等级" prop="level">
|
<el-form-item label="等级" prop="level">
|
||||||
<el-input v-model="institutionForm.level" placeholder="例如:三甲、二甲" />
|
<el-select v-model="institutionForm.level" clearable filterable placeholder="请选择医院等级">
|
||||||
|
<el-option v-for="item in hospitalLevelOptions" :key="item" :label="item" :value="item" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -239,6 +241,19 @@ const institutionForm = reactive({
|
|||||||
bannerUrl: ''
|
bannerUrl: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const hospitalLevelOptions = [
|
||||||
|
'三级甲等',
|
||||||
|
'三级乙等',
|
||||||
|
'三级丙等',
|
||||||
|
'二级甲等',
|
||||||
|
'二级乙等',
|
||||||
|
'二级丙等',
|
||||||
|
'一级甲等',
|
||||||
|
'一级乙等',
|
||||||
|
'一级丙等',
|
||||||
|
'未定级'
|
||||||
|
]
|
||||||
|
|
||||||
const provinceOptions = [
|
const provinceOptions = [
|
||||||
{ name: '北京市', cities: ['北京市'] },
|
{ name: '北京市', cities: ['北京市'] },
|
||||||
{ name: '天津市', cities: ['天津市'] },
|
{ name: '天津市', cities: ['天津市'] },
|
||||||
|
|||||||
@@ -124,8 +124,8 @@ const form = reactive({
|
|||||||
|
|
||||||
const rows = ref<KnowledgeBaseItem[]>([
|
const rows = ref<KnowledgeBaseItem[]>([
|
||||||
{ id: 'KB-202606-001', name: '胸痛中心诊疗指南库', category: '临床指南', owner: '王内容', fileCount: 8, updatedAt: '2026-06-05', status: '已发布' },
|
{ id: 'KB-202606-001', name: '胸痛中心诊疗指南库', category: '临床指南', owner: '王内容', fileCount: 8, updatedAt: '2026-06-05', status: '已发布' },
|
||||||
{ id: 'KB-202606-002', name: '儿科发热问诊课件', category: '教学课件', owner: '李医生', fileCount: 5, updatedAt: '2026-06-03', status: '整理中' },
|
{ id: 'KB-202606-002', name: '儿科发热问诊课件', category: '教学课件', owner: '李带教', fileCount: 5, updatedAt: '2026-06-03', status: '整理中' },
|
||||||
{ id: 'KB-202605-029', name: '糖尿病慢病随访规范', category: '诊疗规范', owner: '陈医生', fileCount: 12, updatedAt: '2026-05-28', status: '已发布' },
|
{ id: 'KB-202605-029', name: '糖尿病慢病随访规范', category: '诊疗规范', owner: '陈带教', fileCount: 12, updatedAt: '2026-05-28', status: '已发布' },
|
||||||
{ id: 'KB-202605-017', name: '神经内科病例资料包', category: '病例资料', owner: '王内容', fileCount: 3, updatedAt: '2026-05-21', status: '草稿' }
|
{ id: 'KB-202605-017', name: '神经内科病例资料包', category: '病例资料', owner: '王内容', fileCount: 3, updatedAt: '2026-05-21', status: '草稿' }
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ const loginRoleOptions: Array<{ label: string; value: LoginRole }> = [
|
|||||||
{ label: '超级管理员', value: 'super_admin' },
|
{ label: '超级管理员', value: 'super_admin' },
|
||||||
{ label: '医院管理员', value: 'hospital_admin' },
|
{ label: '医院管理员', value: 'hospital_admin' },
|
||||||
{ label: '内容管理员', value: 'content_admin' },
|
{ label: '内容管理员', value: 'content_admin' },
|
||||||
{ label: '医生', value: 'doctor' }
|
{ label: '带教医生', value: 'doctor' }
|
||||||
]
|
]
|
||||||
|
|
||||||
const features = [
|
const features = [
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ const aiRows = [
|
|||||||
const auditRows = [
|
const auditRows = [
|
||||||
{ time: '06-03 13:42', user: '张管理员', action: '更新 AI 评分策略', result: '成功' },
|
{ time: '06-03 13:42', user: '张管理员', action: '更新 AI 评分策略', result: '成功' },
|
||||||
{ time: '06-03 11:08', user: '王内容', action: '提交病例审核', result: '成功' },
|
{ time: '06-03 11:08', user: '王内容', action: '提交病例审核', result: '成功' },
|
||||||
{ time: '06-02 19:26', user: '李医生', action: '导出训练报告', result: '成功' }
|
{ time: '06-02 19:26', user: '李带教', action: '导出训练报告', result: '成功' }
|
||||||
]
|
]
|
||||||
|
|
||||||
const lineOption = computed<EChartsOption>(() => ({
|
const lineOption = computed<EChartsOption>(() => ({
|
||||||
@@ -291,7 +291,7 @@ function inferTableTitle(currentPage: string) {
|
|||||||
if (currentPage.includes('department') || currentPage.includes('dept')) return '科室名称'
|
if (currentPage.includes('department') || currentPage.includes('dept')) return '科室名称'
|
||||||
if (currentPage.includes('training')) return '训练任务'
|
if (currentPage.includes('training')) return '训练任务'
|
||||||
if (currentPage.includes('student')) return '学生姓名'
|
if (currentPage.includes('student')) return '学生姓名'
|
||||||
if (currentPage.includes('doctor') || currentPage.includes('teacher')) return '医生姓名'
|
if (currentPage.includes('doctor') || currentPage.includes('teacher')) return '带教医生姓名'
|
||||||
return '名称'
|
return '名称'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,9 +306,9 @@ function inferPrimaryAction(currentPage: string) {
|
|||||||
function createRows(title: string) {
|
function createRows(title: string) {
|
||||||
return [
|
return [
|
||||||
{ id: 'M-202606-001', name: `${title}核心数据维护`, category: '方正中心医院', owner: '张管理员', metric: '1,286', status: '正常' },
|
{ id: 'M-202606-001', name: `${title}核心数据维护`, category: '方正中心医院', owner: '张管理员', metric: '1,286', status: '正常' },
|
||||||
{ id: 'M-202606-002', name: `${title}待审核任务`, category: '心内科', owner: '李医生', metric: '86%', status: '待审核' },
|
{ id: 'M-202606-002', name: `${title}待审核任务`, category: '心内科', owner: '李带教', metric: '86%', status: '待审核' },
|
||||||
{ id: 'M-202606-003', name: `${title}专题内容包`, category: '教学运营部', owner: '王内容', metric: '342', status: '已发布' },
|
{ id: 'M-202606-003', name: `${title}专题内容包`, category: '教学运营部', owner: '王内容', metric: '342', status: '已发布' },
|
||||||
{ id: 'M-202606-004', name: `${title}试点项目`, category: '南城社区医院', owner: '陈医生', metric: '73%', status: '正常' }
|
{ id: 'M-202606-004', name: `${title}试点项目`, category: '南城社区医院', owner: '陈带教', metric: '73%', status: '正常' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -254,9 +254,9 @@ function bounded(value: number | null | undefined) {
|
|||||||
function roleLabel(role: string) {
|
function roleLabel(role: string) {
|
||||||
const labels: Record<string, string> = {
|
const labels: Record<string, string> = {
|
||||||
super_admin: '超级管理员',
|
super_admin: '超级管理员',
|
||||||
doctor: '医生',
|
doctor: '带教医生',
|
||||||
student: '学生',
|
student: '学生',
|
||||||
teacher: '带教老师',
|
teacher: '带教医生',
|
||||||
content_admin: '内容管理员',
|
content_admin: '内容管理员',
|
||||||
hospital_admin: '医院管理员'
|
hospital_admin: '医院管理员'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,12 +244,12 @@ const resetPasswordForm = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const roleOptions: Array<{ label: string; value: ManagedRoleType }> = [
|
const roleOptions: Array<{ label: string; value: ManagedRoleType }> = [
|
||||||
{ label: '医生', value: 'doctor' },
|
{ label: '带教医生', value: 'doctor' },
|
||||||
{ label: '医学生', value: 'student' },
|
{ label: '医学生', value: 'student' },
|
||||||
{ label: '内容管理员', value: 'content_admin' }
|
{ label: '内容管理员', value: 'content_admin' }
|
||||||
]
|
]
|
||||||
const pageConfigs: Record<ManagedRoleType, { title: string; description: string }> = {
|
const pageConfigs: Record<ManagedRoleType, { title: string; description: string }> = {
|
||||||
doctor: { title: '医生管理', description: '维护本院医生和内容管理员账号,支持查询、导入导出、启停和密码重置。' },
|
doctor: { title: '带教医生管理', description: '维护本院带教医生和内容管理员账号,支持查询、导入导出、启停和密码重置。' },
|
||||||
student: { title: '医学生管理', description: '维护本院医学生账号,支持查询、导入导出、启停和密码重置。' },
|
student: { title: '医学生管理', description: '维护本院医学生账号,支持查询、导入导出、启停和密码重置。' },
|
||||||
content_admin: { title: '内容管理员', description: '维护本院内容管理员账号,支持查询、导入导出、启停和密码重置。' }
|
content_admin: { title: '内容管理员', description: '维护本院内容管理员账号,支持查询、导入导出、启停和密码重置。' }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ const resetPasswordForm = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const roleTypeOptions = [
|
const roleTypeOptions = [
|
||||||
{ label: '医生 doctor', value: 'doctor' },
|
{ label: '带教医生 doctor', value: 'doctor' },
|
||||||
{ label: '医学生 student', value: 'student' },
|
{ label: '医学生 student', value: 'student' },
|
||||||
{ label: '超级管理员 super_admin', value: 'super_admin' },
|
{ label: '超级管理员 super_admin', value: 'super_admin' },
|
||||||
{ label: '医院管理员 hospital_admin', value: 'hospital_admin' },
|
{ label: '医院管理员 hospital_admin', value: 'hospital_admin' },
|
||||||
|
|||||||
Reference in New Issue
Block a user