提交 837b7a1b authored 作者: matian's avatar matian

feat:新增数据中心列表部分

上级 e66c858b
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template #header-aside>
<el-button type="text" style="margin-top:5px;font-size:24px">导出</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
filters: [
{ type: 'select', prop: 'class_name', placeholder: '班级名称', label: '班级名称' }
],
columns: [
{ label: '班级名称', prop: 'paper_title', slots: 'table-name' },
{ label: '班级人数', prop: 'class_name', align: 'center', sortable: true },
{ label: '完成人数', prop: 'cankao_num', align: 'center', sortable: true },
{ label: '课程完成率', prop: 'wryrty', align: 'center', sortable: true },
{ label: '累计学习时长', prop: 'time', align: 'center', sortable: true },
{ label: '人均学习时长', prop: 'average', align: 'center', sortable: true }
],
data: [
{ class_name: 'weq' }
]
}
}
},
methods: {
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:progress="{ row }">
<el-progress :percentage="row.progress"></el-progress>
</template>
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini">查看</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '章节名称', prop: 'paper_title', align: 'center' },
{ label: '章节类型', prop: 'class_name', align: 'center' },
{ label: '学习进度', prop: 'progress', align: 'center', slots: 'progress' },
{ label: '是否标记完成', prop: 'hfsdhf', align: 'center' },
{ label: '最大学习时点', prop: 'saferg', align: 'center' },
{ label: '最后学习时点', prop: 'greghe', align: 'center' },
{ label: '累计学习时长', prop: 'ehrth', align: 'center' }
],
data: [
{ paper_title: 'ewfwf', progress: 90 }
]
}
}
},
methods: {
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list" @row-click="handleRowClick">
<app-list v-bind="tableOptions" ref="list">
<template v-slot:table-name="{ row }">
<el-link type="primary">{{ row.paper_title }}</el-link>
</template>
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini" @click="toPersonDetail">查看</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
import { getExamReivewList } from '../api.js'
export default {
data() {
return {
visible: false,
currentClickRow: {}
}
},
computed: {
......@@ -22,31 +23,28 @@ export default {
tableOptions() {
return {
remote: {
httpRequest: getExamReivewList,
params: { class_name: '', paper_title: '' }
},
filters: [
{ type: 'input', prop: 'class_name', placeholder: '班级名称' },
{ type: 'input', prop: 'paper_title', placeholder: '考卷名称' }
{ type: 'select', prop: 'class_name', placeholder: '学生姓名', label: '学生姓名' }
],
columns: [
{ label: '考卷名称', prop: 'paper_title', slots: 'table-name' },
{ label: '班级名称', prop: 'class_name', align: 'center' },
{ label: '未批阅学生数量', prop: 'commit_num', align: 'center' }
{ label: '学生姓名', prop: 'paper_title', slots: 'table-name' },
{ label: '总学习时长', prop: 'class_name', align: 'center', sortable: true },
{ label: '总完成率', prop: 'commit_num', align: 'center', sortable: true },
{ label: '本课学习时长', prop: 'etert', align: 'center', sortable: true },
{ label: '本课完成率', prop: 'grthr', align: 'center', sortable: true },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{ class_name: 'dfwjehf' }
]
}
}
},
methods: {
handleRowClick(row) {
this.currentClickRow = row
window.localStorage.examStudentsList = JSON.stringify(row.students)
this.visible = true
},
studentReview(data) {
toPersonDetail() {
this.$router.push({
path: '/teacher/exam/exam/review',
query: { sheet_id: data.sheet_id, stu_id: data.id }
path: '/detail'
})
}
}
......
......@@ -2,7 +2,10 @@ const routes = [
{
path: '/',
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/course', component: () => import('./views/List.vue') }]
children: [{ path: '/teacher/data/course', component: () => import('./views/List.vue') },
{ path: '/classDatas', component: () => import('./components/ClassList.vue') },
{ path: '/personal', component: () => import('./components/PersonalList.vue') },
{ path: '/detail', component: () => import('./components/CourseProcessList.vue') }]
}
]
......
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list" @row-click="handleRowClick">
<template v-slot:table-name="{ row }">
<el-link type="primary">{{ row.paper_title }}</el-link>
<app-list v-bind="tableOptions" ref="list">
<!-- 操作 -->
<template v-slot:table-img="{row}">
<img :src="row.tableImg" alt="" />
</template>
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini" @click="toClassData">班级数据</el-button>
<el-button type="text" size="mini" @click="toPersonal">个人数据</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
import { getExamReivewList } from '../api.js'
export default {
data() {
return {
......@@ -22,31 +26,34 @@ export default {
tableOptions() {
return {
remote: {
httpRequest: getExamReivewList,
params: { class_name: '', paper_title: '' }
},
filters: [
{ type: 'input', prop: 'class_name', placeholder: '班级名称' },
{ type: 'input', prop: 'paper_title', placeholder: '考卷名称' }
{ type: 'select', prop: 'class_name', placeholder: '课程名称', label: '课程名称' }
],
columns: [
{ label: '考卷名称', prop: 'paper_title', slots: 'table-name' },
{ label: '班级名称', prop: 'class_name', align: 'center' },
{ label: '未批阅学生数量', prop: 'commit_num', align: 'center' }
{ label: '图片', prop: 'tableImg', slots: 'table-img' },
{ label: '课程名称', prop: 'class_name', align: 'center' },
{ label: '人均学习时长', prop: 'cankao_num', align: 'center', sortable: true },
{ label: '课程完成率', prop: 'ewt4t43', align: 'center', sortable: true },
{ label: '操作', align: 'center', slots: 'table-operate' }
],
data: [
{
class_name: '1'
}
]
}
}
},
methods: {
handleRowClick(row) {
this.currentClickRow = row
window.localStorage.examStudentsList = JSON.stringify(row.students)
this.visible = true
toClassData() {
this.$router.push({
path: '/classDatas'
})
},
studentReview(data) {
toPersonal() {
this.$router.push({
path: '/teacher/exam/exam/review',
query: { sheet_id: data.sheet_id, stu_id: data.id }
path: '/personal'
})
}
}
......
const routes = [
{
path: '/',
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/exam', component: () => import('./views/List.vue') }]
}
]
export { routes }
<template>
<div>
<div style="font-size:32px;margin-bottom:15px">测试班级一</div>
<app-card>
<h1 class="title" style="font-size:28px">班级排名</h1>
<el-button type="text" style="font-size:28px;float:right;margin-top:-40px">导出</el-button>
<el-tabs v-model="tabActive" style="margin-top:30px">
<el-tab-pane label="已结束" name="baseInfo">
<Finished />
</el-tab-pane>
<el-tab-pane label="待评价" name="contacts" lazy>
<ToEvaluate />
</el-tab-pane>
<el-tab-pane label="未作答" name="project" lazy>
<NoAnswer />
</el-tab-pane>
</el-tabs>
</app-card>
</div>
</template>
<script>
import Finished from './Finished.vue'
import ToEvaluate from './ToEvaluate.vue'
import NoAnswer from './NoAnswer.vue'
export default {
components: { Finished, ToEvaluate, NoAnswer },
data() {
return {
tabActive: 'baseInfo'
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:table-name="{ row }">
<el-button type="text" @click="toPersonal">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'table-name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center', sortable: true },
{ label: '客观题平均分', prop: 'efw', align: 'center', sortable: true },
{ label: '客观题最高分', prop: 'average_num', align: 'center', sortable: true },
{ label: '客观题最低分', prop: 'top', align: 'center', sortable: true },
{ label: '主观题平均分', prop: 'low', align: 'center', sortable: true },
{ label: '主观题最高分', prop: 'title_num', align: 'center', sortable: true },
{ label: '主观题最低分', prop: 'title_percent', align: 'center', sortable: true }
],
data: [
{
class_name: '1w1e'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/PersonalList'
})
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:class_name="{ row }">
<el-button type="text" @click="toPersonal">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'class_name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center' },
{ label: '客观题平均分', prop: 'sfr3t34', align: 'center' },
{ label: '客观题最高分', prop: 'average_num', align: 'center' },
{ label: '客观题最低分', prop: 'top', align: 'center' },
{ label: '主观题平均分', prop: 'low', align: 'center' },
{ label: '主观题最高分', prop: 'title_num', align: 'center' },
{ label: '主观题最低分', prop: 'title_percent', align: 'center' }
],
data: [
{
class_name: 'dfshfuiwiw'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/PersonalList'
})
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list" @row-click="handleRowClick">
<app-list v-bind="tableOptions" ref="list">
<template v-slot:table-name="{ row }">
<el-link type="primary">{{ row.paper_title }}</el-link>
</template>
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini" @click="toExamData(row)">查看</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
import { getExamReivewList } from '../api.js'
export default {
data() {
return {
visible: false,
currentClickRow: {}
}
},
computed: {
......@@ -22,32 +23,32 @@ export default {
tableOptions() {
return {
remote: {
httpRequest: getExamReivewList,
params: { class_name: '', paper_title: '' }
},
filters: [
{ type: 'input', prop: 'class_name', placeholder: '班级名称' },
{ type: 'input', prop: 'paper_title', placeholder: '考卷名称' }
{ type: 'input', prop: 'paper_title', placeholder: '学生姓名', label: '学生姓名' }
],
columns: [
{ label: '考卷名称', prop: 'paper_title', slots: 'table-name' },
{ label: '班级名称', prop: 'class_name', align: 'center' },
{ label: '未批阅学生数量', prop: 'commit_num', align: 'center' }
{ label: '学生姓名', prop: 'paper_title', slots: 'table-name' },
{ label: '总得分', prop: 'class_name', align: 'center', sortable: true },
{ label: '主观题得分', prop: 'cankao_num', align: 'center', sortable: true },
{ label: '客观题得分', prop: 'ewfr', align: 'center', sortable: true },
{ label: '完成时间', prop: 'average_num', align: 'center', sortable: true },
{ label: '状态', prop: 'top', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{
class_name: '1w1e'
}
]
}
}
},
methods: {
handleRowClick(row) {
this.currentClickRow = row
window.localStorage.examStudentsList = JSON.stringify(row.students)
this.visible = true
},
studentReview(data) {
this.$router.push({
path: '/teacher/exam/exam/review',
query: { sheet_id: data.sheet_id, stu_id: data.id }
})
toExamData() {
// this.$router.push({
// path:''
// })
}
}
}
......
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:class_name="{ row }">
<el-button type="text" @click="toPersonal(row)">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'class_name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center' },
{ label: '客观题平均分', prop: 'dgrete', align: 'center' },
{ label: '客观题最高分', prop: 'average_num', align: 'center' },
{ label: '客观题最低分', prop: 'top', align: 'center' },
{ label: '主观题平均分', prop: 'low', align: 'center' },
{ label: '主观题最高分', prop: 'title_num', align: 'center' },
{ label: '主观题最低分', prop: 'title_percent', align: 'center' }
],
data: [
{
class_name: 'dfsfsf'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/PersonalList'
})
}
}
}
</script>
import httpRequest from '@/utils/axios'
/**
* 获取考卷批阅列表
*/
export function getExamReivewList(params) {
return httpRequest.get('/api/zy/v3-teacher/examination/examination-list', { params })
}
......@@ -2,7 +2,10 @@ const routes = [
{
path: '/',
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/exam', component: () => import('./views/List.vue') }]
children: [{ path: '/teacher/data/exam', component: () => import('./views/List.vue') },
{ path: '/class', component: () => import('./components/ClassList.vue') },
{ path: '/PersonalList', component: () => import('./components/PersonalList.vue') }
]
}
]
......
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini" @click="toExamData(row)">考试数据</el-button>
<el-button type="text" size="mini" @click="toClassData(row)">班级数据</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
filters: [
{ type: 'select', prop: 'class_name', placeholder: '考试名称', label: '考试名称' },
{ type: 'select', prop: 'paper_title', placeholder: '所属课程', label: '所属课程' }
],
columns: [
{ label: '考试名称', prop: 'paper_title', slots: 'table-name' },
{ label: '所属课程', prop: 'class_name', align: 'center' },
{ label: '参考人数', prop: 'cankao_num', align: 'center' },
{ label: '参考率', prop: 'rfert', align: 'center' },
{ label: '平均得分', prop: 'average_num', align: 'center' },
{ label: '最高分', prop: 'top', align: 'center' },
{ label: '最低分', prop: 'low', align: 'center' },
{ label: '题目总数', prop: 'title_num', align: 'center' },
{ label: '及格率', prop: 'title_percent', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{
class_name: '1w1e'
}
]
}
}
},
methods: {
toExamData () {
},
// 班级数据
toClassData() {
this.$router.push({
path: '/class'
})
}
}
}
</script>
<template>
<div>
<div style="font-size:32px;margin-bottom:15px">测试班级一</div>
<app-card>
<h1 class="title" style="font-size:28px">班级排名</h1>
<el-button type="text" style="font-size:28px;float:right;margin-top:-40px">导出</el-button>
<el-tabs v-model="tabActive" style="margin-top:30px">
<el-tab-pane label="已结束" name="baseInfo">
<Finished />
</el-tab-pane>
<el-tab-pane label="待评价" name="contacts" lazy>
<ToEvaluate />
</el-tab-pane>
<el-tab-pane label="未作答" name="project" lazy>
<NoAnswer />
</el-tab-pane>
</el-tabs>
</app-card>
</div>
</template>
<script>
import Finished from './Finished.vue'
import ToEvaluate from './ToEvaluate.vue'
import NoAnswer from './NoAnswer.vue'
export default {
components: { Finished, ToEvaluate, NoAnswer },
data() {
return {
tabActive: 'baseInfo'
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:table-name="{ row }">
<el-button type="text" @click="toPersonal">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'table-name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center', sortable: true },
{ label: '客观题平均分', prop: 'ret5t', align: 'center', sortable: true },
{ label: '客观题最高分', prop: 'average_num', align: 'center', sortable: true },
{ label: '客观题最低分', prop: 'top', align: 'center', sortable: true },
{ label: '主观题平均分', prop: 'low', align: 'center', sortable: true },
{ label: '主观题最高分', prop: 'title_num', align: 'center', sortable: true },
{ label: '主观题最低分', prop: 'title_percent', align: 'center', sortable: true }
],
data: [
{
class_name: '121321431'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/person'
})
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:class_name="{ row }">
<el-button type="text" @click="toPersonal">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'class_name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center' },
{ label: '客观题平均分', prop: 'afwerw', align: 'center' },
{ label: '客观题最高分', prop: 'average_num', align: 'center' },
{ label: '客观题最低分', prop: 'top', align: 'center' },
{ label: '主观题平均分', prop: 'low', align: 'center' },
{ label: '主观题最高分', prop: 'title_num', align: 'center' },
{ label: '主观题最低分', prop: 'title_percent', align: 'center' }
],
data: [
{
class_name: '1234556789999'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/PersonalList'
})
}
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template #header-aside>
<el-button type="text" style="margin-top:5px;font-size:24px" 导出</el-button>
</template>
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini">查看</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
filters: [
{ type: 'input', prop: 'class_name', placeholder: '学生姓名', label: '学生姓名' }
],
columns: [
{ label: '学生姓名', prop: 'paper_title', align: 'center' },
{ label: '总得分', prop: 'class_name', align: 'center' },
{ label: '主观题得分', prop: 'commit_num', align: 'center' },
{ label: '客观题得分', prop: 'qwrw4t', align: 'center' },
{ label: '完成时间', prop: 'etwtw', align: 'center' },
{ label: '状态', prop: 'sdgerte', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{ paper_title: '99' }
]
}
}
},
methods: {
}
}
</script>
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list">
<template v-slot:class_name="{ row }">
<el-button type="text" @click="toPersonal(row)">{{ row.class_name }}</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
export default {
data() {
return {
}
},
computed: {
// 列表配置
tableOptions() {
return {
remote: {
},
columns: [
{ label: '排名', prop: 'paper_title', align: 'center' },
{ label: '班级', slots: 'class_name', align: 'center' },
{ label: '平均分', prop: 'cankao_num', align: 'center' },
{ label: '客观题平均分', prop: 'dfasfa', align: 'center' },
{ label: '客观题最高分', prop: 'average_num', align: 'center' },
{ label: '客观题最低分', prop: 'top', align: 'center' },
{ label: '主观题平均分', prop: 'low', align: 'center' },
{ label: '主观题最高分', prop: 'title_num', align: 'center' },
{ label: '主观题最低分', prop: 'title_percent', align: 'center' }
],
data: [
{
class_name: '43547567'
}
]
}
}
},
methods: {
toPersonal() {
this.$router.push({
path: '/PersonalList'
})
}
}
}
</script>
......@@ -2,7 +2,9 @@ const routes = [
{
path: '/',
component: () => import('@/components/layout/index.vue'),
children: [{ path: '/teacher/data/test', component: () => import('./views/List.vue') }]
children: [{ path: '/teacher/data/test', component: () => import('./views/List.vue') },
{ path: '/classList', component: () => import('./components/ClassList.vue') },
{ path: '/person', component: () => import('./components/PersonalList.vue') }]
}
]
......
<template>
<app-container>
<app-list v-bind="tableOptions" ref="list" @row-click="handleRowClick">
<template v-slot:table-name="{ row }">
<el-link type="primary">{{ row.paper_title }}</el-link>
<app-list v-bind="tableOptions" ref="list">
<!-- 操作 -->
<template v-slot:table-operate="{ row }">
<el-button type="text" size="mini">练习数据</el-button>
<el-button type="text" size="mini" @click="toClassData(row)">班级数据</el-button>
</template>
</app-list>
</app-container>
</template>
<script>
import { getExamReivewList } from '../api.js'
export default {
data() {
return {
......@@ -22,31 +23,34 @@ export default {
tableOptions() {
return {
remote: {
httpRequest: getExamReivewList,
params: { class_name: '', paper_title: '' }
},
filters: [
{ type: 'input', prop: 'class_name', placeholder: '班级名称' },
{ type: 'input', prop: 'paper_title', placeholder: '考卷名称' }
{ type: 'select', prop: 'class_name', placeholder: '练习名称' },
{ type: 'select', prop: 'paper_title', placeholder: '所属课程' }
],
columns: [
{ label: '考卷名称', prop: 'paper_title', slots: 'table-name' },
{ label: '班级名称', prop: 'class_name', align: 'center' },
{ label: '未批阅学生数量', prop: 'commit_num', align: 'center' }
{ label: '练习名称', prop: 'paper_title', align: 'center' },
{ label: '所属章节', prop: 'class_name', align: 'center' },
{ label: '练习总人数', prop: 'commit_num', align: 'center' },
{ label: '联系率', prop: 'deterg', align: 'center' },
{ label: '平均得分', prop: 'grehrtj', align: 'center' },
{ label: '最高分', prop: 'jyj5uy', align: 'center' },
{ label: '最低分', prop: 'et43453', align: 'center' },
{ label: '题目总数', prop: 'rwr2rq', align: 'center' },
{ label: '及格率', prop: 'dwefw', align: 'center' },
{ label: '操作', slots: 'table-operate', align: 'center' }
],
data: [
{ paper_title: 'adsada' }
]
}
}
},
methods: {
handleRowClick(row) {
this.currentClickRow = row
window.localStorage.examStudentsList = JSON.stringify(row.students)
this.visible = true
},
studentReview(data) {
toClassData() {
this.$router.push({
path: '/teacher/exam/exam/review',
query: { sheet_id: data.sheet_id, stu_id: data.id }
path: '/classList'
})
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论