提交 a0a60373 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 8ad1e8b1
......@@ -12,7 +12,14 @@ import {
Filter,
Coordinate,
Notebook,
Picture
Picture,
UserFilled,
Promotion,
School,
Guide,
QuestionFilled,
EditPen,
DataAnalysis
} from '@element-plus/icons-vue'
export const menus: IMenuItem[] = [
{
......@@ -77,15 +84,51 @@ export const menus: IMenuItem[] = [
},
{
tag: 'v1-backend',
name: '后台管理',
name: '教学管理',
path: '/admin',
children: [
{
tag: 'v1-backend-lecturer-list',
icon: User,
icon: UserFilled,
name: '讲师管理',
path: '/admin/teacher'
},
{
tag: 'v1-backend-lecturer-list',
icon: User,
name: '学生管理',
path: '/admin/student'
},
{
tag: 'v1-backend-lecturer-list',
icon: Promotion,
name: '专业管理',
path: '/admin/pro'
},
{
tag: 'v1-backend-lecturer-list',
icon: School,
name: '班级管理',
path: '/admin/class'
},
{
tag: 'v1-backend-lecturer-list',
icon: Guide,
name: '学期管理',
path: '/admin/semester'
},
{
tag: 'v1-backend-lecturer-list',
icon: QuestionFilled,
name: '问答管理',
path: '/admin/qa'
},
{
tag: 'v1-backend-lecturer-list',
icon: EditPen,
name: '批改试卷',
path: '/admin/exam'
},
{
tag: 'v1-backend-category-list',
icon: Filter,
......@@ -96,6 +139,12 @@ export const menus: IMenuItem[] = [
icon: Coordinate,
name: '资源审核管理',
path: '/admin/audit'
},
{
tag: 'v1-backend-lecturer-list',
icon: DataAnalysis,
name: '数据画像与分析',
path: '/admin/teacher'
}
]
},
......
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getProList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/class',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getProList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getProList, params: { name: '' } },
filters: [
{ type: 'input', prop: 'name', label: '班级名称', placeholder: '班级名称' },
{ type: 'input', prop: 'name', label: '所属部门/学校', placeholder: '所属部门/学校' }
],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '班级代码', prop: 'name', align: 'center' },
{ label: '班级名称', prop: 'name', align: 'center' },
{ label: '所属部门/学校', prop: 'name', align: 'center' },
{ label: '人数', prop: 'name', align: 'center' },
{ label: '班主任', prop: 'name', align: 'center' },
{ label: '专业', prop: 'name', align: 'center' },
{ label: '入学年份', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="班级管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<el-button type="primary" round>新增班级</el-button>
<template #table-operate>
<el-space>
<el-link type="primary" plain>查看</el-link>
<el-link type="primary" plain>编辑</el-link>
<el-link type="primary" plain>班级学生</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getProList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/exam',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getProList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getProList, params: { name: '' } },
filters: [
{ type: 'select', prop: 'name', label: '所属课程', placeholder: '所属课程' },
{ type: 'select', prop: 'name', label: '所属班级', placeholder: '所属班级' },
{ type: 'select', prop: 'name', label: '所属学生', placeholder: '所属学生' },
{ type: 'input', prop: 'name', label: '问题内容', placeholder: '问题内容' }
],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '所属课程', prop: 'name', align: 'center' },
{ label: '提问人', prop: 'name', align: 'center' },
{ label: '所属班级', prop: 'name', align: 'center' },
{ label: '问题类型', prop: 'name', align: 'center' },
{ label: '问题标题', prop: 'name', align: 'center' },
{ label: '是否回复', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="问答管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<el-button type="primary" round>新增问答</el-button>
<template #table-operate>
<el-space>
<el-link type="primary" plain>添加回复</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getProList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/pro',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getProList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getProList, params: { name: '' } },
filters: [{ type: 'input', prop: 'name', label: '专业名称', placeholder: '专业名称' }],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '专业代码', prop: 'name', align: 'center' },
{ label: '专业名称', prop: 'name', align: 'center' },
{ label: '专业类别', prop: 'name', align: 'center' },
{ label: '学历', prop: 'name', align: 'center' },
{ label: '学制', prop: 'name', align: 'center' },
{ label: '学位门类', prop: 'name', align: 'center' },
{ label: '学位', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="专业管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<el-button type="primary" round>新增专业</el-button>
<template #table-operate>
<el-space>
<el-link type="primary" plain>查看</el-link>
<el-link type="primary" plain>编辑</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getProList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/qa',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getProList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getProList, params: { name: '' } },
filters: [
{ type: 'select', prop: 'name', label: '所属课程', placeholder: '所属课程' },
{ type: 'select', prop: 'name', label: '所属班级', placeholder: '所属班级' },
{ type: 'select', prop: 'name', label: '所属学生', placeholder: '所属学生' },
{ type: 'input', prop: 'name', label: '问题内容', placeholder: '问题内容' }
],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '所属课程', prop: 'name', align: 'center' },
{ label: '提问人', prop: 'name', align: 'center' },
{ label: '所属班级', prop: 'name', align: 'center' },
{ label: '问题类型', prop: 'name', align: 'center' },
{ label: '问题标题', prop: 'name', align: 'center' },
{ label: '是否回复', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="问答管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<template #table-operate>
<el-space>
<el-link type="primary" plain>添加回复</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getProList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/semester',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getProList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getProList, params: { name: '' } },
filters: [
{ type: 'input', prop: 'name', label: '学期名称', placeholder: '学期名称' },
{ type: 'input', prop: 'name', label: '所属部门/学校', placeholder: '所属部门/学校' }
],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '学期名称', prop: 'name', align: 'center' },
{ label: '所属部门/学校', prop: 'name', align: 'center' },
{ label: '学期开始日期', prop: 'name', align: 'center' },
{ label: '学期结束日期', prop: 'name', align: 'center' },
{ label: '教学周', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="学期管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<el-button type="primary" round>新增学期</el-button>
<template #table-operate>
<el-space>
<el-link type="primary" plain>查看</el-link>
<el-link type="primary" plain>编辑</el-link>
<el-link type="primary" plain>关联课程</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
import httpRequest from '@/utils/axios'
// 获取学生列表
export function getStudentList(params?: { type?: string; page?: number; page_size?: number }) {
return httpRequest.get('/api/psp/backend/video/index', { params })
}
import type { RouteRecordRaw } from 'vue-router'
import AppLayout from '@/components/layout/Index.vue'
export const routes: Array<RouteRecordRaw> = [
{
path: '/admin/student',
component: AppLayout,
children: [{ path: '', component: () => import('./views/List.vue') }]
}
]
<script setup lang="ts">
import { getStudentList } from '../api'
// import { useMapStore } from '@/stores/map'
// const store = useMapStore()
const appList = ref()
const listOptions = $computed(() => {
return {
remote: { httpRequest: getStudentList, params: { type: '' } },
filters: [
{ type: 'input', prop: 'name', label: '学生姓名', placeholder: '学生姓名' },
{ type: 'select', prop: 'office', label: '所属部门/学校', placeholder: '所属部门/学校' }
],
columns: [
{ label: '序号', type: 'index', align: 'center' },
{ label: '学号', prop: 'name', align: 'center' },
{ label: '姓名', prop: 'name', align: 'center' },
{ label: '性别', prop: 'name', align: 'center' },
{ label: '出生年月', prop: 'name', align: 'center' },
{ label: '省', prop: 'name', align: 'center' },
{ label: '市', prop: 'name', align: 'center' },
{ label: '县', prop: 'name', align: 'center' },
{ label: '联系电话', prop: 'name', align: 'center' },
{ label: '部门/学校', prop: 'name', align: 'center' },
{ label: '专业', prop: 'name', align: 'center' },
{ label: '班级', prop: 'name', align: 'center' },
{ label: '身份证号', prop: 'name', align: 'center' },
{ label: '状态', prop: 'name', align: 'center' },
{ label: '更新时间', prop: 'update_time', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
]
}
})
</script>
<template>
<AppCard title="学生管理">
<AppList v-bind="listOptions" ref="appList" border stripe>
<el-button type="primary" round>新增学生</el-button>
<el-button type="primary" round>批量导入</el-button>
<el-button type="primary" round>导出</el-button>
<template #table-operate>
<el-space>
<el-link type="primary" plain>查看</el-link>
<el-link type="primary" plain>编辑</el-link>
</el-space>
</template>
</AppList>
</AppCard>
</template>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论