实现表单异步提交并显示消息

This commit is contained in:
F嘉阳
2018-02-08 10:32:34 +08:00
parent 06ba589dfd
commit 213cad2a74
14 changed files with 490 additions and 24 deletions

View File

@@ -13,7 +13,35 @@
<el-col :md="4" :lg="4" :xl="4" class="hidden-sm-and-down">
<el-card th:include="dist/thymeleaf/layout :: userbox"></el-card>
</el-col>
<el-col :md="14" :lg="14" :xl="14" :sm="18" :xs="23" :offset="1"></el-col>
<el-col :md="14" :lg="14" :xl="14" :sm="18" :xs="23" :offset="1">
<h2>作业提交系统</h2>
<br>
<ul>
<h3>功能说明</h3>
<li>自动识别未提交人员</li>
<li>提供作业格式模板下载</li>
<li>作业作者可以下载已提交的作业,作业保留一学期</li>
<li>实现作业提交,支持多文件上传,文件自动命名为学号+姓名,省去大量烦恼</li>
</ul>
<br>
<ul>
<h3>技术说明</h3>
<li>SpringBoot2.0 MVC后台开发框架使用SpringJpa持久层api底层为hibernate实现</li>
<li>vue2.5前端框架element2.1前端组件,前后端分离的开发方法</li>
<li>用户名密码使用最高安全性的SHA加密算法进行存储任何人无法获取</li>
<li>具备完整开发和维护文档,提供错误码、数据字典</li>
<li>URL为RESTful API风格便于开发和维护</li>
<li>异常统一管理</li>
</ul>
<br>
<ul>
<h3>友情链接</h3>
<li><a href="http://web.fjy8018.top:8080/blog/">F嘉阳 博客</a></li>
<li><a href="http://www.fjy8018.top:8080/orderbook/">订书系统</a></li>
<li><a href="https://www.imis2.top/">班级网站</a></li>
<li><a href="http://git.fjy8018.top:8080/users/sign_in">班级代码托管网站(私人)</a></li>
</ul>
</el-col>
<el-col :md="5" :lg="5" :sm="5" :xl="5" class="hidden-xs-only"></el-col>
</el-main>
<el-footer th:include="dist/thymeleaf/layout :: footer"></el-footer>

View File

@@ -0,0 +1,194 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>后台</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!--<link rel="stylesheet" href="https://unpkg.com/element-ui@2.1.0/lib/theme-chalk/display.css">-->
<link rel="stylesheet" href="../../static/css/style.css">
</head>
<body>
<!-- 先引入 Vue -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<div id="app">
<el-container>
<el-container>
<el-header>
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">首页</el-menu-item>
<el-submenu index="2">
<template slot="title">个人中心</template>
<el-menu-item index="2-1">选项1</el-menu-item>
<el-menu-item index="2-2">选项2</el-menu-item>
<el-menu-item index="2-3">选项3</el-menu-item>
</el-submenu>
<el-menu-item index="3" @click="ClickToJump('about')">关于</el-menu-item>
<el-menu-item index="4" @click="ClickToJump('feedback')">意见反馈</el-menu-item>
<el-menu-item index="5"><a href="login.jsp">登出</a></el-menu-item>
</el-menu>
</el-header>
<el-main>
<el-col :md="4" :lg="4" :xl="4" class="hidden-sm-and-down">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>用户名</span><br>
<span>学号</span>
</div>
<div class="item">
<el-button type="text" @click="ClickToJump('home')">首页</el-button><br>
<el-button type="text" @click="ClickToJump('user')">个人中心</el-button><br>
<el-button type="text" @click="ClickToJump('about')">关于</el-button><br>
<el-button type="text" @click="ClickToJump('feedback')">意见反馈</el-button>
</div>
</el-card>
</el-col>
<el-col :md="12" :lg="12" :xl="12" :sm="16" :xs="23" :offset="1">
<h4>添加老师</h4>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="老师名字">
<el-input v-model="formInline.user" placeholder="老师名字"></el-input>
</el-form-item>
<el-form-item label="用户号">
<el-select v-model="formInline.region" placeholder="用户号">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">添加</el-button>
</el-form-item>
</el-form>
<h4>添加课程</h4>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="课程名">
<el-input v-model="formInline.user" placeholder="课程名"></el-input>
</el-form-item>
<el-form-item label="教师名">
<el-select v-model="formInline.region" placeholder="教师名">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">添加</el-button>
</el-form-item>
</el-form>
<h4>添加作业</h4>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="作业名称">
<el-input v-model="formInline.user" placeholder="作业名称"></el-input>
</el-form-item>
<el-form-item label="模板文件名称">
<el-select v-model="formInline.region" placeholder="模板文件名称">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item label="课程名称">
<el-select v-model="formInline.region" placeholder="课程名称">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item label="存储文件夹">
<el-input v-model="formInline.user" placeholder="存储文件夹"></el-input>
</el-form-item>
<el-form-item label="作业内容">
<el-input v-model="formInline.user" placeholder="作业内容" type="textarea"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">添加</el-button>
</el-form-item>
</el-form>
<h4>发布公告</h4>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="公告内容">
<el-input v-model="formInline.user" placeholder="公告内容" type="textarea"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">添加</el-button>
</el-form-item>
</el-form>
<h4>添加管理员</h4>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="管理员名">
<el-input v-model="formInline.user" placeholder="管理员名"></el-input>
</el-form-item>
<el-form-item label="用户号">
<el-select v-model="formInline.region" placeholder="用户号">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">添加</el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :md="7" :lg="7" :sm="7" :xl="7" class="hidden-xs-only">
<el-row>
<el-col :span="24">
<div class="grid-content">
<el-card class="box-card hidden-xs-only">
<div slot="header" class="clearfix">
<span>用户反馈</span>
</div>
<div class="text item">
<el-table :data="feedbackData" style="width: 100%"
:default-sort="{prop: 'time', order: 'descending'}">
<el-table-column prop="content" label="内容" sortable>
</el-table-column>
<el-table-column prop="time" label="时间" sortable>
</el-table-column>
<el-table-column prop="username" label="用户名" sortable>
</el-table-column>
</el-table>
</div>
</el-card>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="grid-content">
<el-card class="box-card hidden-xs-only">
<div slot="header" class="clearfix">
<span>近期登陆日志</span>
</div>
<div class="text item">
<el-table :data="logData" style="width: 100%"
:default-sort="{prop: 'time', order: 'descending'}">
<el-table-column prop="username" label="用户名" sortable>
</el-table-column>
<el-table-column prop="header" label="请求头" sortable>
</el-table-column>
<el-table-column prop="time" label="时间" sortable>
</el-table-column>
<el-table-column prop="ip" label="ip地址" sortable>
</el-table-column>
</el-table>
</div>
</el-card>
</div>
</el-col>
</el-row>
</el-col>
</el-main>
<el-footer>
<div class="footer">
© 2018 作业提交系统
</div></el-footer>
</el-container>
</el-container>
</div>
<script src="../../static/js/admin.js"></script>
<script src="../../static/js/msg.js"></script>
</body>
</html>

View File

@@ -14,14 +14,17 @@
<el-card th:include="dist/thymeleaf/layout :: userbox"></el-card>
</el-col>
<el-col :md="14" :lg="14" :xl="14" :sm="18" :xs="23" :offset="1">
<el-form :model="feedbackForm" ref="feedbackForm" class="demo-ruleForm" action="/cms/home/dofeedback">
<el-form :model="feedbackForm" ref="feedbackForm" class="demo-ruleForm"
method="POST"
action="/cms/home/dofeedback">
<el-form-item label="反馈内容" prop="content" :rules="[
{ required: true, message: '反馈内容不能为空'}
]">
<el-input type="textarea" v-model.number="feedbackForm.content" auto-complete="off"></el-input>
<el-input type="textarea" v-model.number="feedbackForm.content"
auto-complete="off" name="content" ref="content"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('feedbackForm')">提交</el-button>
<el-button type="primary" @click="submitForm('feedbackForm','home/dofeedback')">提交</el-button>
<el-button @click="resetForm('feedbackForm')">重置</el-button>
</el-form-item>
</el-form>

View File

@@ -260,11 +260,24 @@
<el-card class="box-card hidden-xs-only">
<div slot="header" class="clearfix">
<span>作业提交倒计时</span>
<span style="color: red"> 功能未完成</span>
</div>
<div v-for="o in 4" :key="o" class="text item">
{{'倒计时 ' + o }}
<div class="text item">
<el-table :data="tableHomeworkData" style="width: 100%"
:default-sort="{prop: 'coursename', order: 'descending'}">
<el-table-column prop="coursename" label="科目" sortable width="180">
</el-table-column>
<el-table-column label="倒计时" sortable>
<template slot-scope="scope">
{{limitTime(scope.row)}}
</template>
</el-table-column>
</el-table>
<!--<span>{{ limitTime[0].coursename }}{{ limitTime[0].workname }}</span><br>
距离提交日期还有<span> {{ limitTime[0].time }}</span>天-->
</div>
</el-card>
<!--<template>
<el-table :data="tableData2" style="width: 100%">
<el-table-column prop="date" label="作业提交倒计时">

View File

@@ -237,15 +237,15 @@
</el-table-column>
</el-table-column>
</el-table>
<el-form :model="feedbackForm" ref="feedbackForm" class="demo-ruleForm">
<el-form :model="feedbackForm" ref="feedbackForm" class="demo-ruleForm" id="feedbackForm">
<el-form-item label="反馈内容" prop="content" :rules="[
{ required: true, message: '反馈内容不能为空'}
]">
<el-input type="textarea" v-model.number="feedbackForm.content"
auto-complete="off"></el-input>
auto-complete="off" ref="content"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('feedbackForm')">提交</el-button>
<el-button type="primary" @click="submitForm('feedbackForm','http://localhost:8080/cms/home/dofeedback')">提交</el-button>
<el-button @click="resetForm('feedbackForm')">重置</el-button>
</el-form-item>
</el-form>
@@ -263,14 +263,18 @@
<span style="color: red"> 功能未完成</span>
</div>
<div class="text item">
<template slot-scope="props">
<el-table :data="tableHomeworkData" style="width: 100%" :default-sort="{prop: 'worktime', order: 'descending'}">
<el-table :data="tableHomeworkData" style="width: 100%"
:default-sort="{prop: 'coursename', order: 'descending'}">
<el-table-column prop="coursename" label="科目" sortable width="180">
</el-table-column>
<el-table-column @prop="limitTime(props.row)" label="日期" sortable width="180">
</el-table-column>
<el-table-column label="倒计时" sortable>
<template slot-scope="scope">
{{limitTime(scope.row)}}
</template>
</el-table-column>
</el-table>
</template>
<!--<span>{{ limitTime[0].coursename }}{{ limitTime[0].workname }}</span><br>
距离提交日期还有<span> {{ limitTime[0].time }}</span>天-->
</div>