vue实现课堂发布测试
Vue实现课堂发布测试功能
项目结构设计
使用Vue CLI创建项目基础结构,核心目录包括:
components/存放可复用组件views/存放页面级组件router/配置路由store/Vuex状态管理
测试表单组件
创建TestPublish.vue组件,包含表单元素:
<template>
<div class="test-publish">
<el-form :model="testForm" :rules="rules" ref="form">
<el-form-item label="测试标题" prop="title">
<el-input v-model="testForm.title"></el-input>
</el-form-item>
<el-form-item label="测试内容" prop="content">
<el-input type="textarea" v-model="testForm.content"></el-input>
</el-form-item>
<el-form-item label="截止时间" prop="deadline">
<el-date-picker v-model="testForm.deadline" type="datetime"></el-date-picker>
</el-form-item>
</el-form>
<el-button type="primary" @click="publishTest">发布测试</el-button>
</div>
</template>
数据验证规则
在组件脚本部分设置表单验证规则:
data() {
return {
testForm: {
title: '',
content: '',
deadline: ''
},
rules: {
title: [
{ required: true, message: '请输入测试标题', trigger: 'blur' },
{ min: 3, max: 50, message: '长度在3到50个字符', trigger: 'blur' }
],
content: [
{ required: true, message: '请输入测试内容', trigger: 'blur' }
]
}
}
}
API接口调用
配置axios实例并封装测试发布接口:
// api/test.js
import request from '@/utils/request'
export function publishTest(data) {
return request({
url: '/api/test/publish',
method: 'post',
data
})
}
提交处理逻辑
实现表单提交方法,包含验证和API调用:
methods: {
publishTest() {
this.$refs.form.validate(valid => {
if (valid) {
publishTest(this.testForm).then(response => {
this.$message.success('测试发布成功')
this.$router.push('/classroom')
}).catch(error => {
this.$message.error(error.message)
})
}
})
}
}
路由配置
在路由文件中配置测试发布页面:
// router/index.js
{
path: '/publish-test',
name: 'PublishTest',
component: () => import('../views/PublishTest.vue'),
meta: { requiresAuth: true }
}
状态管理
使用Vuex管理测试数据状态:
// store/modules/test.js
const actions = {
async publishTest({ commit }, testData) {
try {
const res = await publishTestApi(testData)
commit('ADD_TEST', res.data)
return res
} catch (error) {
throw error
}
}
}
样式优化
添加SCSS样式增强用户体验:
.test-publish {
max-width: 800px;
margin: 0 auto;
padding: 20px;
.el-form-item {
margin-bottom: 22px;
}
.el-button {
margin-top: 20px;
}
}
功能扩展建议
- 添加富文本编辑器支持复杂内容格式
- 实现附件上传功能
- 添加测试类型选择(作业/考试)
- 集成班级学生选择器
- 添加定时发布功能
以上实现方案采用Element UI组件库,可根据实际项目需求替换为其他UI框架。核心逻辑包括表单验证、数据提交和状态管理,可根据具体后端API调整请求参数和响应处理。

