王元梓 2 years ago
commit 6202eb052f

@ -0,0 +1,51 @@
package com.config;
import com.domain.user;
import com.service.userService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
@Service
public class UserService implements UserDetailsService {
@Autowired
public com.service.userService userService;
@Autowired(required = false)
private PasswordEncoder passwordEncoder;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
// 根据用户查询用户信息
//User user = userMapper.findByUsername(username); //查询数据库
// user user = new user(1, username, "123456", 1);//注意:这里我就是用来测试的,实际应该从数据库中获取
user user=userService.selectByUserName(username);
if (user != null) {
// 根据用户查询用户对应权限
Collection<GrantedAuthority> authorities = new ArrayList<>();
/* //查询登录用户所拥有的角色
List<Role> list = RoleMapper.findByUserId(userId);
for (Role role : list) {
GrantedAuthority authority = new SimpleGrantedAuthority("ROLE_"+role.getRoleName());
authorities.add(authority);
}
*/
//创建一个授权对象
GrantedAuthority authority = new SimpleGrantedAuthority("ROLE_ADMIN"); //注意:这里我就是用来测试的,实际应该从数据库中获取
authorities.add(authority);
return new org.springframework.security.core.userdetails.User(
user.getUsername(),
// 因为数据库是明文,所以这里需加密密码
passwordEncoder.encode(user.getPassword()),
authorities);
}
return null;
}
}

@ -0,0 +1,96 @@
package com.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public UserDetailsService getUserService() {
return new UserService();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(getUserService()).passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers( "/pages/login.html","/img/*","/plugins/**","/css/*","/js/*","/dist/**","/pages/regist.html","/user/Save").permitAll()// 无需认证
.anyRequest().authenticated() // 所有请求都需要验证
.and()
.headers().frameOptions().disable()
.and()
.formLogin() // 使用默认的登录页面
.loginPage("/pages/login.html")// 指定指定要的登录页面
.loginProcessingUrl("/login")// 处理认证路径的请求
//认证成功后的跳转页面 默认是get方式提交 自定义成功页面post方式提交
//在 controller中处理时要注意
// .defaultSuccessUrl("/pages/main.html")
// .failureForwardUrl("/pages/error.html")
.successHandler(new SimpleUrlAuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
httpServletResponse.setContentType("application/json;charset=utf-8");
ServletOutputStream out = httpServletResponse.getOutputStream();
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(out, "登录成功");
out.flush();
out.close();
}
}).failureHandler(new SimpleUrlAuthenticationFailureHandler() {
@Override
public void onAuthenticationFailure(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException {
httpServletResponse.setContentType("application/json;charset=utf-8");
ServletOutputStream out = httpServletResponse.getOutputStream();
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(out, "登录失败");
out.flush();
out.close();
}
})
.and()
//开启cookie保存用户数据
// .rememberMe()
//设置cookie有效期
// .tokenValiditySeconds(60 * 60 * 24 * 7) //有效期一周
//设置cookie的私钥
// .key("")
// .and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/pages/login.html")
// .invalidateHttpSession(true)
.and()
// .headers().frameOptions().disable().and()
.csrf().disable() //关闭跨域保护
.sessionManagement()
.maximumSessions(1);// 同一用户 只允许一个在线 自动踢出在线用户
}
}

@ -0,0 +1,224 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>心理测评系统</title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>用户模块<small>测试详情</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>用户模块</el-breadcrumb-item>
<el-breadcrumb-item>测试详情</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div style="width: 80%;margin: 0 auto">
<div v-for="item in dataList">
<h3><span>{{item.xuhao}}:</span>{{item.them}}</h3>
<el-radio-group v-model="item.da" >
<el-radio :label="item.one">A:{{item.one}}</el-radio>
<el-radio :label="item.two">B:{{item.two}}</el-radio>
<el-radio :label="item.three">C:{{item.three}}</el-radio>
<el-radio :label="item.four">D:{{item.four}}</el-radio>
</el-radio-group>
<div style="margin-top: 30px">
<span>得分:</span><span>{{item.fen}}分</span><span style="margin-left: 10px">正确答案:</span><span>{{item.ok}}</span>
<span style="margin-left: 10px">
<span>正确性:</span>
<img src="../img/错误.svg" v-if="item.fen==0" style="width: 20px">
<img src="../img/正确.svg" v-else style="width: 20px">
</span>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
xuhao: [{ required: true, message: '题号为必填项', trigger: 'blur' }],
them: [{ required: true, message: '题目为必填项', trigger: 'blur' }],
one:[{ required: true, message: '选项A为必填项', trigger: 'blur' }],
two:[{ required: true, message: '选项B为必填项', trigger: 'blur' }],
three:[{ required: true, message: '选项C为必填项', trigger: 'blur' }],
four:[{ required: true, message: '选项D为必填项', trigger: 'blur' }],
ok:[{ required: true, message: '正确答案为必填项', trigger: 'blur' }],
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/timu/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
let ji=0;
let userId=localStorage.getItem("userId");
this.dataList.forEach(function (e) {
if(e.da==null)
{
ji++;
}
});
if(ji>0)
{
this.$message.error("还存在未填写的题目");
}
else
{
this.dataList.forEach(function (e) {
e.userId=userId;
})
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/ut/Save",this.dataList).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "答题成功",
type: 'success'
});
}).finally(()=> {
// this.findPage();
});
}
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
//发送请求获取检查项信息
axios.get("/timu/findById/" + row.id).then((res)=>{
//设置编辑窗口属性dialogFormVisible4Edit为true表示显示
this.dialogFormVisible4Edit = true;
//为模型数据设置值基于VUE双向数据绑定回显到页面
this.formData = res.data;
});
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/timu/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let mokuaiId=localStorage.getItem("mokuaiId");
let userId=localStorage.getItem("userId");
axios.get("/ut/selectDetails/"+userId+"/"+mokuaiId).then((response)=> {
this.dataList = response.data;
});
},
}
})
</script>
</html>

@ -0,0 +1,195 @@
.bg-primary {
background-color: #3F52E3 !important;
}
.text-primary {
color: #3F52E3 !important;
}
a {
color: #3F52E3;
}
a:hover {
color: #2d3db8;
}
.btn-primary {
background-color: #3F52E3;
border-color: transparent !important;
}
.btn-primary:focus,
.btn-primary:focus:active,
.btn-primary:active,
.btn-primary:hover {
background-color: #2d3db8 !important;
}
.btn-primary.disabled, .btn-primary:disabled {
background-color: #3F52E3;
border-color: #3F52E3;
}
.btn-outline-primary {
color: #3F52E3;
background-color: transparent;
background-image: none;
border-color: #3F52E3;
}
.btn-outline-primary:hover {
color: #fff;
background-color: #3F52E3;
border-color: #3F52E3;
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
color: #3F52E3;
background-color: transparent;
}
.btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
color: #fff;
background-color: #3F52E3;
border-color: #3F52E3;
}
.btn-link {
font-weight: 400;
color: #3F52E3;
background-color: transparent;
}
.btn-link:hover {
color: #2d3db8;
}
.dropdown-item.active, .dropdown-item:active {
color: #fff;
background-color: #3F52E3;
}
.custom-control-input:checked ~ .custom-control-label::before {
color: #fff;
background-color: #3F52E3;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: #3F52E3;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
background-color: #3F52E3;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
background-color: #3F52E3;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #fff;
background-color: #3F52E3;
}
.page-link {
color: #3F52E3;
background-color: #fff;
border: 1px solid #ededed;
}
.page-item.active .page-link {
color: #fff;
background-color: #3F52E3;
border-color: #3F52E3;
}
.page-link:focus, .page-link:hover {
color: #2d3db8;
}
.badge-primary {
color: #fff;
background-color: #3F52E3;
}
.progress-bar {
color: #fff;
background-color: #3F52E3;
}
.list-group-item.active {
color: #fff;
background-color: #3F52E3;
border-color: #3F52E3;
}
.bg-primary {
background-color: #3F52E3 !important;
}
.border-primary {
border-color: #3F52E3 !important;
}
.text-primary {
color: #3F52E3 !important;
}
.navbar.active {
background-color: #3F52E3;
}
.navbar-bg {
background-color: #3F52E3;
}
.form-control:focus {
border-color: #3F52E3;
}
.main-sidebar .sidebar-menu li.active a {
background-color: #f9f9f9;
color: #3F52E3;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li a:hover {
color: #3F52E3;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li.active a {
color: #3F52E3;
}
.alert.alert-primary {
background-color: #3F52E3;
}
.card.card-primary {
border-top: 2px solid #3F52E3;
}
.fc button.fc-state-active {
background-color: #3F52E3;
color: #fff;
}
.jqvmap-circle {
background-color: #3F52E3;
border: 1px solid #000;
}
.weather ul li {
border: 2px solid #3F52E3;
color: #3F52E3;
}
.card-chat .chat-content .chat-item.chat-right .chat-details .chat-text {
background-color: #3F52E3;
color: #fff;
}
.nav-tabs .nav-item .nav-link {
color: #3F52E3;
}
.nav-pills .nav-item .nav-link {
color: #3F52E3;
}
.swal-button.swal-button--confirm {
background-color: #3F52E3;
}
.page-item .page-link {
color: #3F52E3;
}
.page-item.active .page-link {
background-color: #3F52E3;
border-color: #3F52E3;
}
.btn-group .btn.active {
background-color: #3F52E3;
color: #fff;
}
.media .media-right {
color: #3F52E3;
}
.selectric-items li.selected,
.selectric-items li.highlighted {
background-color: #3F52E3;
color: #fff;
}
.dropzone {
border: 2px dashed #3F52E3;
}
.accordion .accordion-header[aria-expanded="true"] {
background-color: #3F52E3;
color: #fff;
}
.bootstrap-tagsinput .tag {
background-color: #3F52E3;
}

@ -0,0 +1,139 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div style="width:80%;margin:20px auto;background-color:white; border-radius: 5px; border: 1px solid gainsboro" id="app">
<h2 style="color:aqua;text-align: left;">交流</h2>
<hr style="margin-top: 10px;border: 0.5px solid whitesmoke"/>
<div style="width: 50%;margin: 50px auto">
<div style="margin-top: 10px;margin-bottom: 20px;color: aquamarine" v-html="content1" >
</div>
<el-input placeholder="内容" style="width: 300px;" class="filter-item" v-model="content" ></el-input>
<el-button type="primary" class="butT" @click="fa()">发送</el-button>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
userId:null,
userId1:null,
content:"",
content1:"",
userName:""
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
let timer = setInterval(() => {
this.findPage();
},100)
},
methods:{
// 弹出添加窗口
handleCreate(val) {
this.isShow=true;
this.userId1=val;
let form={"one":this.userId,"two":this.userId1};
axios.post("/liaotian/Select",form).then((response)=> {
this.content1=response.data;
}).finally(()=> {
});
},
findPage() {
this.userId1=localStorage.getItem("userId1");
this.userId=localStorage.getItem("userId");
this.userName= localStorage.getItem("username");
let form={"one":this.userId,"two":this.userId1};
axios.post("/liaotian/Select",form).then((response)=> {
this.content1=response.data;
}).finally(()=> {
});
},
fa()
{
this.content="<div style=\"margin-top: 10px\">"+this.userName+"说:"+this.content+"</div>";
let form={"one":this.userId,"two":this.userId1,"content":this.content};
axios.post("/liaotian/Save",form).then((response)=> {
this.$message({
message: "发送成功",
type: 'success'
});
}).finally(()=> {
this.content="";
let form={"one":this.userId,"two":this.userId1};
axios.post("/liaotian/Select",form).then((response)=> {
this.content1=response.data;
}).finally(()=> {
});
});
},
shua()
{
let form={"one":this.userId,"two":this.userId1};
axios.post("/liaotian/Select",form).then((response)=> {
this.content1=response.data;
}).finally(()=> {
});
}
}
})
</script>
</html>

@ -0,0 +1,18 @@
package com.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class myConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor()
{
MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}

@ -0,0 +1,319 @@
.ordersetting .el-input__inner {
height: 36px;
line-height: 36px;
}
.ordersetting {
background: #f5f5f5;
box-shadow: none;
border-top: none;
}
.gotoday {
border: 1px solid #d5d9df
}
.calendar p {
margin: 0;
}
.filebtn {
padding: 9px 20px;
border: none;
font-size: 18px;
background: #0ebffc;
}
.month {
width: 100%;
line-height: 3;
/* background: #00B8EC; */
}
.month ul {
margin: 0;
padding: 0;
display: flex;
}
.year-month {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-around;
}
.year-month:hover {
background: rgba(150, 2, 12, 0.1);
}
.choose-year {
padding-left: 20px;
font-size: 1.2rem;
}
.choose-month {
text-align: center;
font-size: 1.2rem;
}
.arrow {
padding: 30px;
}
.arrow:hover {
background: rgba(100, 2, 12, 0.1);
}
.month ul li {
color: white;
font-size: 20px;
text-transform: uppercase;
letter-spacing: 3px;
}
.caldate {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.1), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.weekdays {
margin: 0;
padding: 0;
background-color: #fff;
display: flex;
flex-wrap: wrap;
color: #333;
justify-content: space-around;
border-bottom: 1px solid #ededed;
border-top: 2px solid #0ebffc;
}
.weekdays li {
display: inline-block;
width: 14%;
text-align: center;
padding: 10px 0;
border-right: 1px solid #f1efef;
color: #000;
font-size: 20px;
}
.days {
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.days li {
height: 160px;
list-style-type: none;
display: inline-block;
width: 14%;
text-align: right;
font-size: 1rem;
color: #000;
list-style-type: none;
display: inline-block;
width: 14.2%;
font-size: 1rem;
color: #000;
border-bottom: 1px solid #fff;
}
.everyday {
height: 160px;
border-bottom: 1px solid #f1efefef;
position: relative;
background: #fff;
}
.everyday .datenumber {
position: absolute;
right: 10px;
top: 10px;
}
.everyday .usual {
height: 100%;
background: #1ed7fc;
text-align: center;
color: #fff;
display: flex;
flex-direction: column;
justify-content: center;
font-size: 20px;
line-height: 1.5;
}
.everyday .fulled {
height: 100%;
background: #ff9c9d;
text-align: center;
color: #fff;
display: flex;
flex-direction: column;
justify-content: center;
font-size: 20px;
}
.everyday .nochoose {
height: 100%;
background: #effbff;
}
.everyday .orderbtn {
position: absolute;
right: 10px;
bottom: 10px;
cursor: pointer;
border: none;
background: #d6ffff;
padding: 3px 10px;
color: #0ebffc;
border-radius: 4px;
font-size: 16px;
}
.days li .active {
padding: 6px 10px;
border-radius: 50%;
background: #00B8EC;
color: #fff;
}
.days li .other-month {
padding: 10px;
height: 140px;
color: gainsboro;
background: #f9f9f9;
}
/* .singlebtn {
font-size: 18px;
}
.mutiplebtn {
font-size: 18px;
} */
.filebox {
position: relative;
}
.el-card__body {
position: relative;
}
.el-upload--text {
position: absolute;
left: 22%;
top: 14px;
}
.el-upload--text .el-button {
background: #0ebffc;
border: none
}
.el-upload-list {
width: 20%;
}
.filebtns {
position: relative
}
.multifile {
width: 100%;
}
.mutibtn {
position: absolute;
left: 12%;
top: 0;
}
.uploadfile{
padding: 4px 10px;
height: 20px;
line-height: 20px;
position: relative;
border: 1px solid #999;
text-decoration: none;
color: #666;
}
.change{
position: absolute;
overflow: hidden;
right: 0;
top: 0;
opacity: 0;
}
.singleuploaded {
}
.mutiuploaded {
left: 31.5%;
}
.outputloaded {
left: 43%;
}
.inputfile-text {
height: 33px;
width: 233px;
display: inline-block;
border: 1px solid #ccc;
line-height: 36px;
border-radius: 7px;
cursor: pointer;
}
.inputfile-text span {
padding-left: 11px;
color: #aba7a7;
}
.days li .current-month .full {
background: #ff8a8a;
text-align: center;
line-height: 100px;
color: #fff;
}
.days li .current-month .full .full-text {
font-size: 26px;
}
.clearfix {clear: both}
.month .currentdate { float: left}
.month .choose {
float: right;
line-height: 57px;
padding-right: 30px;
color: #676767
}
.month .choose span {
background: #fff;
padding: 5px 10px;
cursor: pointer;
}
/* upload */
.file {
display: flex;
width: 60px;
height: 33px;
overflow: hidden;
border: 1px solid #ccc;
width: 20%;
margin-top: -4px;
border-radius: 7px;
position: relative;
}
.file .defaulttext {
position: absolute;
top: 5px;
left: 10px;
color: #bdbdbd;
}
.file input {
width: 100%;
height: 40px;
position: relative;
top: -10px;
font-size: 0;
opacity: 0;
cursor: pointer;
}
.el-card__body #span {
font-size: 14px;
padding-left: 20px;
color: #555;
margin-top: 10px;
display: block;
width: 20%;
}

@ -0,0 +1,55 @@
package com.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class user {
@TableId(type= IdType.AUTO)
private int id;
@TableField("username")
private String username;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
@TableField("password")
private String password;
@TableField("type")
private int type;
}

@ -0,0 +1,323 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>聊天</title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>聊天模块<small>选择用户</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>聊天模块</el-breadcrumb-item>
<el-breadcrumb-item>选择用户</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
<el-input placeholder="用户名" v-model="pagination.queryString" style="width: 200px;" class="filter-item"></el-input>
<el-button @click="findPage()" class="dalfBut">查询</el-button>
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="username" label="用户名" align="center"></el-table-column>
<el-table-column prop="password" label="密码" align="center"></el-table-column>
<el-table-column label="角色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.type == '0' ? '管理员' : '用户'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">聊天</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination-container">
<el-pagination
class="pagiantion"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pagination.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pagination.pageSize"
layout="total, sizes,prev, pager, next, jumper"
:total="pagination.total">
</el-pagination>
</div>
<!-- 新增标签弹层 -->
<div class="add-form">
<el-dialog title="新增用户" :visible.sync="dialogFormVisible">
<el-form ref="dataAddForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="角色" prop="type">
<el-select v-model="formData.type" placeholder="请选择角色">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button type="primary" @click="handleAdd()">确定</el-button>
</div>
</el-dialog>
</div>
<!-- 编辑标签弹层 -->
<div class="add-form">
<el-dialog title="编辑用户" :visible.sync="dialogFormVisible4Edit">
<el-form ref="dataEditForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="角色" prop="type">
<el-select v-model="formData.type" placeholder="请选择角色">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4Edit = false">取消</el-button>
<el-button type="primary" @click="handleEdit()">确定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
type:[{ required: true, message: '角色为必选项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/user/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
this.formData.status="拉黑";
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
localStorage.setItem("userId1",row.id);
window.parent.document.getElementById("f").src="liao.html";
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/user/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let userId=localStorage.getItem("userId");
param="?username="+this.pagination.queryString+"&id="+userId;//查询条件
//请求后台
axios.get("/user/SelectPageStudent/"+this.pagination.pageSize+"/"+this.pagination.currentPage+param).then((response)=> {
this.dataList = response.data.rows;
this.pagination.total = response.data.total;
});
},
c(row)
{
axios.get("/user/findById/" + row.id).then((res)=>{
this.formData=res.data;
if(this.formData.status=="拉黑")
{
this.formData.status="已拉黑"
}
else
{
this.formData.status="拉黑"
}
axios.put("/user/Update",this.formData).then((response)=> {
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
});
}
}
})
</script>
</html>

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.user;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao extends BaseMapper<user> {
}

@ -0,0 +1,230 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>用户模块<small>模块成绩</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>用户模块</el-breadcrumb-item>
<el-breadcrumb-item>模块成绩</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="name" label="模块名称" align="center"></el-table-column>
<el-table-column prop="score" label="分数" align="center"></el-table-column>
<el-table-column prop="zscore" label="权重后分数" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
type:[{ required: true, message: '角色为必选项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/user/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
this.formData.status="拉黑";
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
localStorage.setItem("mokuaiId",row.id);
window.parent.document.getElementById("f").src="allDetails.html";
},
handleUpdate1(row) {
localStorage.setItem("biaoshi",row.biaoshi);
window.parent.document.getElementById("f").src="pipei.html";
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/user/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let userId=localStorage.getItem("userId");
//请求后台
axios.get("/ut/selectAllm/"+userId).then((response)=> {
this.dataList = response.data;
});
},
c(row)
{
axios.get("/user/findById/" + row.id).then((res)=>{
this.formData=res.data;
if(this.formData.status=="拉黑")
{
this.formData.status="已拉黑"
}
else
{
this.formData.status="拉黑"
}
axios.put("/user/Update",this.formData).then((response)=> {
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
});
}
}
})
</script>
</html>

@ -0,0 +1,16 @@
package com;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages ="com.dao")
public class exerciesManageApplication {
public static void main(String[] args) {
SpringApplication.run(exerciesManageApplication.class, args);
}
}

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.fenduan;
import org.springframework.stereotype.Repository;
@Repository
public interface fenduanDao extends BaseMapper<fenduan> {
}

@ -0,0 +1,14 @@
package com.service;
import com.domain.fenduan;
import java.util.List;
public interface fenduanService {
public int insert(fenduan fenduan);
public int delete(int id);
public int edit(fenduan fenduan);
public fenduan findById(int id);
public List<fenduan> selectAll();
}

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.liaotian;
import org.springframework.stereotype.Repository;
@Repository
public interface liaotianDao extends BaseMapper<liaotian> {
}

@ -0,0 +1,9 @@
package com.service;
import com.domain.liaotian;
public interface liaotianService {
public int insert(liaotian liaotian);
public String select(liaotian liaotian);
}

@ -0,0 +1,195 @@
.bg-primary {
background-color: #3DC7BE !important;
}
.text-primary {
color: #3DC7BE !important;
}
a {
color: #3DC7BE;
}
a:hover {
color: #c9253d;
}
.btn-primary {
background-color: #3DC7BE;
border-color: transparent !important;
}
.btn-primary:focus,
.btn-primary:focus:active,
.btn-primary:active,
.btn-primary:hover {
background-color: #c9253d !important;
}
.btn-primary.disabled, .btn-primary:disabled {
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.btn-outline-primary {
color: #3DC7BE;
background-color: transparent;
background-image: none;
border-color: #3DC7BE;
}
.btn-outline-primary:hover {
color: #fff;
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
color: #3DC7BE;
background-color: transparent;
}
.btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
color: #fff;
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.btn-link {
font-weight: 400;
color: #3DC7BE;
background-color: transparent;
}
.btn-link:hover {
color: #c9253d;
}
.dropdown-item.active, .dropdown-item:active {
color: #fff;
background-color: #3DC7BE;
}
.custom-control-input:checked ~ .custom-control-label::before {
color: #fff;
background-color: #3DC7BE;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: #3DC7BE;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
background-color: #3DC7BE;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
background-color: #3DC7BE;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #fff;
background-color: #3DC7BE;
}
.page-link {
color: #3DC7BE;
background-color: #fff;
border: 1px solid #ededed;
}
.page-item.active .page-link {
color: #fff;
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.page-link:focus, .page-link:hover {
color: #c9253d;
}
.badge-primary {
color: #fff;
background-color: #3DC7BE;
}
.progress-bar {
color: #fff;
background-color: #3DC7BE;
}
.list-group-item.active {
color: #fff;
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.bg-primary {
background-color: #3DC7BE !important;
}
.border-primary {
border-color: #3DC7BE !important;
}
.text-primary {
color: #3DC7BE !important;
}
.navbar.active {
background-color: #3DC7BE;
}
.navbar-bg {
background-color: #3DC7BE;
}
.form-control:focus {
border-color: #3DC7BE;
}
.main-sidebar .sidebar-menu li.active a {
background-color: #f9f9f9;
color: #3DC7BE;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li a:hover {
color: #3DC7BE;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li.active a {
color: #3DC7BE;
}
.alert.alert-primary {
background-color: #3DC7BE;
}
.card.card-primary {
border-top: 2px solid #3DC7BE;
}
.fc button.fc-state-active {
background-color: #3DC7BE;
color: #fff;
}
.jqvmap-circle {
background-color: #3DC7BE;
border: 1px solid #000;
}
.weather ul li {
border: 2px solid #3DC7BE;
color: #3DC7BE;
}
.card-chat .chat-content .chat-item.chat-right .chat-details .chat-text {
background-color: #3DC7BE;
color: #fff;
}
.nav-tabs .nav-item .nav-link {
color: #3DC7BE;
}
.nav-pills .nav-item .nav-link {
color: #3DC7BE;
}
.swal-button.swal-button--confirm {
background-color: #3DC7BE;
}
.page-item .page-link {
color: #3DC7BE;
}
.page-item.active .page-link {
background-color: #3DC7BE;
border-color: #3DC7BE;
}
.btn-group .btn.active {
background-color: #3DC7BE;
color: #fff;
}
.media .media-right {
color: #3DC7BE;
}
.selectric-items li.selected,
.selectric-items li.highlighted {
background-color: #3DC7BE;
color: #fff;
}
.dropzone {
border: 2px dashed #3DC7BE;
}
.accordion .accordion-header[aria-expanded="true"] {
background-color: #3DC7BE;
color: #fff;
}
.bootstrap-tagsinput .tag {
background-color: #3DC7BE;
}

@ -0,0 +1,147 @@
html,body {
/* overflow-y: scroll; */
margin: 0;
}
.login-container .input{
display: inline-block;
height: 47px;
width: 85%;
}
.login-container .input input {
background: transparent;
border: 0px;
-webkit-appearance: none;
border-radius: 0px;
padding: 12px 5px 12px 0;
height: 47px;
}
.login-container .el-form-item {
border: 1px solid #DCDFE6;
background: #fff;
border-radius: 5px;
color: #454545;
}
.login-container .el-button--medium{
height: 50px;
line-height: 20px;
font-size: 22px;
}
.login-container .loginBox{
height: 100%;
width: 100%;
background: url('./../img/logingBg.png') no-repeat 100% 100%;
position: relative;
}
.login-container .loginBox .el-form-item__content{
line-height: initial;
}
.login-container form {
position: absolute;
left: 20%;
top: 50%;
width: 520px;
padding: 35px 35px 15px 35px;
margin: -200px 0 0 0;
background:#f5f5f5;
}
.login-container .tips {
font-size: 14px;
/* // color: #fff; */
margin-bottom: 10px;
/* span {
&:first-of-type {
margin-right: 16px;
}
} */
}
.login-container .svg-container {
padding: 6px 5px 6px 15px;
color: #889aa4;
vertical-align: middle;
width: 30px;
display: inline-block;
/* &_login {
font-size: 20px;
} */
}
.login-container .title-container {
position: relative;
}
.login-container .title-container .title {
font-size: 26px;
/* // font-weight: 400; */
color: #333;
margin: 0px auto 40px auto;
text-align: center;
font-weight: bold;
}
.login-container .title-container .set-language {
/* // color: #fff; */
position: absolute;
top: 5px;
right: 0px;
}
.login-container {
position: fixed;
height: 100%;
width: 100%;
background-color: #2d3a4b;
background: url('./../img/bg.jpg');
-moz-background-size: 100% 100%;
background-size: 100% 100%;
background-repeat: no-repeat;
}
.login-container .show-pwd {
position: absolute;
right: 10px;
top: 7px;
font-size: 16px;
color: #889aa4;
cursor: pointer;
user-select: none;
}
.login-container .thirdparty-button {
position: absolute;
right: 35px;
bottom: 28px;
}
.logoInfo{
padding-bottom:35px;
text-align: center;
}
.logoInfo span{
font-size: 22px;
padding: 0 10px;
display: inline-block;
}
.logoInfo .logo{
background: url(../img/loginLogo.png) no-repeat;
display:inline-block;
width: 200px;
height: 30px;
display: inline-block;
vertical-align: middle;
}
.tipInfo{font-size: 12px;}
.tipInfo span{
color: #66b1ff;
padding: 0 5px;
}
.tipInfo .el-checkbox{
margin: 0;
}
.svg-container span{
width: 22px;
height: 22px;
display: inline-block;
}
.svg-container .user{
background: url(../img/user.png) no-repeat 0 50%;
}
.svg-container .username{
background: url(../img/pwd.png) no-repeat 0 50%;
}

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.mokuai;
import org.springframework.stereotype.Repository;
@Repository
public interface mokuaiDao extends BaseMapper<mokuai> {
}

@ -0,0 +1,12 @@
package com.service;
import com.domain.mokuai;
import com.untils.PageResult;
public interface mokuaiService {
public PageResult SelectPage(mokuai mokuai, int size, int current);
public int insert(mokuai mokuai);
public int delete(int id);
public int edit(mokuai mokuai);
public mokuai findById(int id);
}

@ -0,0 +1,77 @@
@import "./iconfont.css";
/* 清除内外边距 */
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote,
dl, dt, dd, ul, ol, li,
pre,
fieldset, lengend, button, input, textarea,
th, td {
margin: 0;
padding: 0;
}
/* 设置默认字体 */
body,
button, input, select, textarea { /* for ie */
/*font: 12px/1 Tahoma, Helvetica, Arial, "宋体", sans-serif;*/
font: 12px/1.3 "Microsoft YaHei",Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif; /* 用 ascii 字符表示,使得在任何编码下都无问题 */
color: #333;
}
h1 { font-size: 18px; /* 18px / 12px = 1.5 */ }
h2 { font-size: 16px; }
h3 { font-size: 14px; }
h4, h5, h6 { font-size: 100%; }
address, cite, dfn, em, var, i{ font-style: normal; } /* 将斜体扶正 */
b, strong{ font-weight: normal; } /* 将粗体扶细 */
code, kbd, pre, samp, tt { font-family: "Courier New", Courier, monospace; } /* 统一等宽字体 */
small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */
/* 重置列表元素 */
ul, ol { list-style: none; }
/* 重置文本格式元素 */
a { text-decoration: none; color: #666;}
/* 重置表单元素 */
legend { color: #000; } /* for ie6 */
fieldset, img { border: none; }
button, input, select, textarea {
font-size: 100%; /* 使得表单元素在 ie 下能继承字体大小 */
}
/* 重置表格元素 */
table {
border-collapse: collapse;
border-spacing: 0;
}
/* 重置 hr */
hr {
border: none;
height: 1px;
}
.clearFix::after{
content:"";
display: block;
clear:both;
}
/* 让非ie浏览器默认也显示垂直滚动条防止因滚动条引起的闪烁 */
html { overflow-y: scroll; }
a:link:hover{
color : rgb(79, 76, 212) !important;
text-decoration: underline;
}
/* 清除浮动 */
.clearfix::after {
display: block;
height: 0;
content: "";
clear: both;
visibility: hidden;
}

@ -0,0 +1,350 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>心理测评系统</title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>管理员模块<small>题目管理</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>管理员模块</el-breadcrumb-item>
<el-breadcrumb-item>题目管理</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
<el-input placeholder="题目名称" v-model="pagination.queryString" style="width: 200px;" class="filter-item"></el-input>
<el-button @click="findPage()" class="dalfBut">查询</el-button>
<el-button type="primary" class="butT" @click="handleCreate()">新建</el-button>
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="xuhao" label="题号" align="center"></el-table-column>
<el-table-column prop="them" label="题目" align="center"></el-table-column>
<el-table-column prop="one" label="选项A" align="center"></el-table-column>
<el-table-column prop="two" label="选项B" align="center"></el-table-column>
<el-table-column prop="three" label="选项C" align="center"></el-table-column>
<el-table-column prop="four" label="选项D" align="center"></el-table-column>
<el-table-column prop="ok" label="正确答案" align="center"></el-table-column>
<el-table-column prop="fen" label="分数" align="center"></el-table-column>
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination-container">
<el-pagination
class="pagiantion"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pagination.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pagination.pageSize"
layout="total, sizes,prev, pager, next, jumper"
:total="pagination.total">
</el-pagination>
</div>
<!-- 新增标签弹层 -->
<div class="add-form">
<el-dialog title="新增题目" :visible.sync="dialogFormVisible">
<el-form ref="dataAddForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="题号" prop="xuhao">
<el-input v-model="formData.xuhao"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="题目" prop="them">
<el-input v-model="formData.them"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="A" prop="one">
<el-input v-model="formData.one"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="B" prop="two">
<el-input v-model="formData.two"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="C" prop="three">
<el-input v-model="formData.three"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="D" prop="four">
<el-input v-model="formData.four"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="正确答案" prop="ok">
<el-input v-model="formData.ok"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分数" prop="fen">
<el-input v-model="formData.fen" type="number"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button type="primary" @click="handleAdd()">确定</el-button>
</div>
</el-dialog>
</div>
<!-- 编辑标签弹层 -->
<div class="add-form">
<el-dialog title="修改题目" :visible.sync="dialogFormVisible4Edit">
<el-form ref="dataEditForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="题号" prop="xuhao">
<el-input v-model="formData.xuhao"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="题目" prop="them">
<el-input v-model="formData.them"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="A" prop="one">
<el-input v-model="formData.one"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="B" prop="two">
<el-input v-model="formData.two"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="C" prop="three">
<el-input v-model="formData.three"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="D" prop="four">
<el-input v-model="formData.four"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="正确答案" prop="ok">
<el-input v-model="formData.ok"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分数" prop="fen">
<el-input v-model="formData.fen" type="number"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4Edit = false">取消</el-button>
<el-button type="primary" @click="handleEdit()">确定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
xuhao: [{ required: true, message: '题号为必填项', trigger: 'blur' }],
them: [{ required: true, message: '题目为必填项', trigger: 'blur' }],
one:[{ required: true, message: '选项A为必填项', trigger: 'blur' }],
two:[{ required: true, message: '选项B为必填项', trigger: 'blur' }],
three:[{ required: true, message: '选项C为必填项', trigger: 'blur' }],
four:[{ required: true, message: '选项D为必填项', trigger: 'blur' }],
ok:[{ required: true, message: '正确答案为必填项', trigger: 'blur' }],
fen:[{ required: true, message: '分数为必填项', trigger: 'blur' }],
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/timu/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
let mokuaiId=localStorage.getItem("mokuaiId");
this.formData.mokuaiId=mokuaiId;
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/timu/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
//发送请求获取检查项信息
axios.get("/timu/findById/" + row.id).then((res)=>{
//设置编辑窗口属性dialogFormVisible4Edit为true表示显示
this.dialogFormVisible4Edit = true;
//为模型数据设置值基于VUE双向数据绑定回显到页面
this.formData = res.data;
});
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/timu/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let mokuaiId=localStorage.getItem("mokuaiId");
param="?them="+this.pagination.queryString+"&mokuaiId="+mokuaiId;//查询条件
//请求后台
axios.get("/timu/SelectPage/"+this.pagination.pageSize+"/"+this.pagination.currentPage+param).then((response)=> {
this.dataList = response.data.rows;
this.pagination.total = response.data.total;
});
},
}
})
</script>
</html>

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.timu;
import org.springframework.stereotype.Repository;
@Repository
public interface timuDao extends BaseMapper<timu> {
}

@ -0,0 +1,15 @@
package com.service;
import com.domain.timu;
import com.untils.PageResult;
import java.util.List;
public interface timuService {
public PageResult SelectPage(timu timu, int size, int current);
public int insert(timu timu);
public int delete(int id);
public int edit(timu timu);
public timu findById(int id);
public List<timu> selectAll();
}

@ -0,0 +1,22 @@
package com.service;
import com.domain.user;
import com.untils.PageResult;
import java.util.List;
public interface userService {
public PageResult SelectPage(user user, int size, int current);
public PageResult SelectPageStudent(user user, int size, int current);
public int insert(user user);
public int delete(int id);
public int edit(user user);
public user findById(int id);
public user login(user user);
public user selectByUserName(String username);
public List<user> selectAllByStudent();
public List<user> selectAll();
}

@ -0,0 +1,9 @@
package com.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.domain.ut;
import org.springframework.stereotype.Repository;
@Repository
public interface utDao extends BaseMapper<ut> {
}

@ -0,0 +1,27 @@
package com.service;
import com.domain.all;
import com.domain.allm;
import com.domain.ut;
import com.untils.PageResult;
import java.util.List;
public interface utService {
public PageResult SelectPage(ut ut, int size, int current);
public int insert(ut ut);
public int delete(int id);
public int edit(ut ut);
public ut findById(int id);
public all selectAll(int userId);
public List<allm> selectAllm(int userId);
public List<all> selectAll1();
//
public List<ut> selectDetails(int userId, int mokuaiId);
//
public List<all> pipei(int userId);
}

@ -0,0 +1,46 @@
.navbar.active {
background-color: #fff;
}
.navbar-bg {
background-color: #fff;
}
.navbar .nav-link {
color: #2C2E3E;
}
.navbar .nav-link:hover {
color: #3f4257;
}
.navbar .form-inline .form-control {
background-color: #f2f2f2;
}
.navbar .form-inline .btn {
background-color: #f2f2f2;
}
.main-sidebar {
background-color: #212330;
}
.main-sidebar .sidebar-brand {
background-color: #1f202e;
}
.main-sidebar .sidebar-brand a {
color: #fff;
}
.main-sidebar .sidebar-menu li.active a {
background-color: #1f202e;
color: #fff;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li a {
color: #868e96;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li.active a {
color: #fff;
}
.main-sidebar .sidebar-menu li a:hover {
background-color: #1f202e;
}
.main-sidebar .sidebar-menu li.menu-header {
color: #3f4257;
}
.main-sidebar .sidebar-user .sidebar-user-details .user-name {
color: #ededed;
}

@ -0,0 +1,195 @@
.bg-primary {
background-color: #39065A !important;
}
.text-primary {
color: #39065A !important;
}
a {
color: #39065A;
}
a:hover {
color: #c9253d;
}
.btn-primary {
background-color: #39065A;
border-color: transparent !important;
}
.btn-primary:focus,
.btn-primary:focus:active,
.btn-primary:active,
.btn-primary:hover {
background-color: #c9253d !important;
}
.btn-primary.disabled, .btn-primary:disabled {
background-color: #39065A;
border-color: #39065A;
}
.btn-outline-primary {
color: #39065A;
background-color: transparent;
background-image: none;
border-color: #39065A;
}
.btn-outline-primary:hover {
color: #fff;
background-color: #39065A;
border-color: #39065A;
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
color: #39065A;
background-color: transparent;
}
.btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
color: #fff;
background-color: #39065A;
border-color: #39065A;
}
.btn-link {
font-weight: 400;
color: #39065A;
background-color: transparent;
}
.btn-link:hover {
color: #c9253d;
}
.dropdown-item.active, .dropdown-item:active {
color: #fff;
background-color: #39065A;
}
.custom-control-input:checked ~ .custom-control-label::before {
color: #fff;
background-color: #39065A;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: #39065A;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
background-color: #39065A;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
background-color: #39065A;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #fff;
background-color: #39065A;
}
.page-link {
color: #39065A;
background-color: #fff;
border: 1px solid #ededed;
}
.page-item.active .page-link {
color: #fff;
background-color: #39065A;
border-color: #39065A;
}
.page-link:focus, .page-link:hover {
color: #c9253d;
}
.badge-primary {
color: #fff;
background-color: #39065A;
}
.progress-bar {
color: #fff;
background-color: #39065A;
}
.list-group-item.active {
color: #fff;
background-color: #39065A;
border-color: #39065A;
}
.bg-primary {
background-color: #39065A !important;
}
.border-primary {
border-color: #39065A !important;
}
.text-primary {
color: #39065A !important;
}
.navbar.active {
background-color: #39065A;
}
.navbar-bg {
background-color: #39065A;
}
.form-control:focus {
border-color: #39065A;
}
.main-sidebar .sidebar-menu li.active a {
background-color: #f9f9f9;
color: #39065A;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li a:hover {
color: #39065A;
}
.main-sidebar .sidebar-menu li ul.menu-dropdown li.active a {
color: #39065A;
}
.alert.alert-primary {
background-color: #39065A;
}
.card.card-primary {
border-top: 2px solid #39065A;
}
.fc button.fc-state-active {
background-color: #39065A;
color: #fff;
}
.jqvmap-circle {
background-color: #39065A;
border: 1px solid #000;
}
.weather ul li {
border: 2px solid #39065A;
color: #39065A;
}
.card-chat .chat-content .chat-item.chat-right .chat-details .chat-text {
background-color: #39065A;
color: #fff;
}
.nav-tabs .nav-item .nav-link {
color: #39065A;
}
.nav-pills .nav-item .nav-link {
color: #39065A;
}
.swal-button.swal-button--confirm {
background-color: #39065A;
}
.page-item .page-link {
color: #39065A;
}
.page-item.active .page-link {
background-color: #39065A;
border-color: #39065A;
}
.btn-group .btn.active {
background-color: #39065A;
color: #fff;
}
.media .media-right {
color: #39065A;
}
.selectric-items li.selected,
.selectric-items li.highlighted {
background-color: #39065A;
color: #fff;
}
.dropzone {
border: 2px dashed #39065A;
}
.accordion .accordion-header[aria-expanded="true"] {
background-color: #39065A;
color: #fff;
}
.bootstrap-tagsinput .tag {
background-color: #39065A;
}

@ -0,0 +1,96 @@
.demo-settings {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 2002;
}
.demo-settings .demo-settings-toggle {
transition: all .5s;
-webkit-transition: all .5s;
-o-transition: all .5s;
-moz-transition: all .5s;
width: 50px;
height: 50px;
border-radius: 50%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
-ms-border-radius: 50%;
-o-border-radius: 50%;
background-color: #F73F52;
color: #fff;
box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
text-align: center;
line-height: 60px;
cursor: pointer;
}
.demo-settings .demo-settings-toggle i {
font-size: 24px;
}
.demo-settings .demo-settings-options {
transition: all .5s;
-webkit-transition: all .5s;
-o-transition: all .5s;
-moz-transition: all .5s;
transition-delay: .3s;
-webkit-transition-delay: .3s;
-o-transition-delay: .3s;
-moz-transition-delay: .3s;
z-index: -1;
position: absolute;
left: -170px;
top: 0;
height: 50px;
width: 50px;
background-color: #fff;
box-shadow: 0 0 40px rgba(0, 0, 0, 0.05);
border-radius: 30px;
visibility: hidden;
opacity: 0;
}
.demo-settings .demo-settings-options ul {
padding: 0;
margin: 0;
width: 100%;
display: inline-block;
margin-left: 20px;
}
.demo-settings .demo-settings-options ul li {
width: 20px;
height: 20px;
background-color: #000;
margin-right: 10px;
margin-top: 15px;
border-radius: 3px;
display: inline-block;
cursor: pointer;
opacity: 0;
transition: all .5s;
-webkit-transition: all .5s;
-o-transition: all .5s;
-moz-transition: all .5s;
}
.demo-settings .demo-settings-options ul li:hover {
opacity: .8;
}
.demo-settings.active .demo-settings-toggle {
margin: 5px;
box-shadow: none;
line-height: 50px;
width: 40px;
height: 40px;
transform: rotate(90deg);
}
.demo-settings.active .demo-settings-options {
visibility: visible;
opacity: 1;
width: 220px;
}
.demo-settings.active .demo-settings-options ul li {
opacity: 1;
transition-delay: .3s;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
}
/*# sourceMappingURL=demo.css.map */

@ -0,0 +1,120 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
<link rel="stylesheet" href="../dist/modules/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../dist/modules/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="../dist/modules/fontawesome/web-fonts-with-css/css/fontawesome-all.min.css">
<link rel="stylesheet" href="../dist/css/demo.css">
<link rel="stylesheet" href="../dist/css/style.css">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css" type="text/css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css" type="text/css">
<link rel="stylesheet" href="../css/style.css" type="text/css">
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
</head>
<body >
<div id="app">
<section class="section">
<div class="container mt-5">
<div class="row">
<div class="col-12 col-sm-8 offset-sm-2 col-md-6 offset-md-3 col-lg-6 offset-lg-3 col-xl-4 offset-xl-4">
<div class="login-brand">
心理测评
</div>
<div class="card card-primary">
<div class="card-header"><h4>注册</h4></div>
<div class="card-body">
<div class="needs-validation" novalidate="">
<div class="form-group">
<label for="name">账号</label>
<input id="name" type="text" class="form-control" v-model="username" tabindex="1" required autofocus>
<div class="invalid-feedback">
Please fill in your email
</div>
</div>
<div class="form-group">
<label for="password" class="d-block">密码
</label>
<input id="password" type="password" class="form-control" v-model="password" tabindex="2" required>
<div class="invalid-feedback">
please fill in your password
</div>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block" tabindex="4" @click="add()">
注册
</button>
<label for="password" class="d-block">
<div class="float-right">
<a href="login.html">
前往登录?
</a>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</body>
</html>
<script>
var vue = new Vue({
el: '#app',
data: {
formData:{},
username:"",
password:"",
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
idCard: [{ required: true, message: '身份证必填项', trigger: 'blur' }],
},
}
,methods:{
add()
{
if(this.username.trim()==""||this.password.trim()=="")
{
alert("请输入用户名和密码");
return
}
this.formData.username=this.username;
this.formData.password=this.password;
this.formData.type=1;
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
this.$message({
message: "注册成功",
type: 'success'
});
})
}
}
});
</script>

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>管理员模块<small>用户管理</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>管理员模块</el-breadcrumb-item>
<el-breadcrumb-item>用户管理</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
<el-input placeholder="用户名" v-model="pagination.queryString" style="width: 200px;" class="filter-item"></el-input>
<el-button @click="findPage()" class="dalfBut">查询</el-button>
<el-button type="primary" class="butT" @click="handleCreate()">新建</el-button>
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="username" label="用户名" align="center"></el-table-column>
<el-table-column prop="password" label="密码" align="center"></el-table-column>
<el-table-column label="角色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.type == '0' ? '管理员' : '用户'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination-container">
<el-pagination
class="pagiantion"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pagination.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pagination.pageSize"
layout="total, sizes,prev, pager, next, jumper"
:total="pagination.total">
</el-pagination>
</div>
<!-- 新增标签弹层 -->
<div class="add-form">
<el-dialog title="新增用户" :visible.sync="dialogFormVisible">
<el-form ref="dataAddForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="角色" prop="type">
<el-select v-model="formData.type" placeholder="请选择角色">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button type="primary" @click="handleAdd()">确定</el-button>
</div>
</el-dialog>
</div>
<!-- 编辑标签弹层 -->
<div class="add-form">
<el-dialog title="编辑用户" :visible.sync="dialogFormVisible4Edit">
<el-form ref="dataEditForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="角色" prop="type">
<el-select v-model="formData.type" placeholder="请选择角色">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4Edit = false">取消</el-button>
<el-button type="primary" @click="handleEdit()">确定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
type:[{ required: true, message: '角色为必选项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/user/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
this.formData.status="拉黑";
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
//发送请求获取检查项信息
axios.get("/user/findById/" + row.id).then((res)=>{
//设置编辑窗口属性dialogFormVisible4Edit为true表示显示
this.dialogFormVisible4Edit = true;
//为模型数据设置值基于VUE双向数据绑定回显到页面
this.formData = res.data;
});
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/user/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
//分页参数
// var param = {
// // currentPage:this.pagination.currentPage,//页码
// // pageSize:this.pagination.pageSize,//每页显示的记录数
// username:this.pagination.queryString//查询条件
// };
param="?username="+this.pagination.queryString;//查询条件
//请求后台
axios.get("/user/SelectPage/"+this.pagination.pageSize+"/"+this.pagination.currentPage+param).then((response)=> {
this.dataList = response.data.rows;
this.dataList.forEach(function (e) {
e.h="拉黑";
})
this.pagination.total = response.data.total;
});
},
c(row)
{
axios.get("/user/findById/" + row.id).then((res)=>{
this.formData=res.data;
if(this.formData.status=="拉黑")
{
this.formData.status="已拉黑"
}
else
{
this.formData.status="拉黑"
}
axios.put("/user/Update",this.formData).then((response)=> {
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
});
}
}
})
</script>
</html>

@ -0,0 +1,227 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>火车票销售系统</title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>个人模块<small>账号管理</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>个人模块</el-breadcrumb-item>
<el-breadcrumb-item>账号管理</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="username" label="用户名" align="center"></el-table-column>
<el-table-column prop="password" label="密码" align="center"></el-table-column>
<el-table-column label="角色" align="center">
<template slot-scope="scope">
<!-- <span>{{ scope.row.type == '0' ? '管理员' : '学生'}}</span>-->
<span>{{ scope.row.type == '0' ? '管理员' : '用户'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
<!-- 编辑标签弹层 -->
<div class="add-form">
<el-dialog title="修改" :visible.sync="dialogFormVisible4Edit">
<el-form ref="dataEditForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4Edit = false">取消</el-button>
<el-button type="primary" @click="handleEdit()">确定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
type:[{ required: true, message: '角色为必选项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/user/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
//发送请求获取检查项信息
axios.get("/user/findById/" + row.id).then((res)=>{
//设置编辑窗口属性dialogFormVisible4Edit为true表示显示
this.dialogFormVisible4Edit = true;
//为模型数据设置值基于VUE双向数据绑定回显到页面
this.formData = res.data;
});
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/user/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let userId=localStorage.getItem("userId");
this.dataList=[];
axios.get("/user/findById/" + userId).then((res)=>{
this.formData = res.data;
this.dataList.push(this.formData);
});
}
}
})
</script>
</html>

@ -0,0 +1,142 @@
package com.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("ut")
public class ut {
@TableId(type= IdType.AUTO)
private int id;
@TableField("userId")
private int userId;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getDa() {
return da;
}
public void setDa(String da) {
this.da = da;
}
@TableField("xuhao")
private int xuhao;
@TableField("them")
private String them;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getXuhao() {
return xuhao;
}
public void setXuhao(int xuhao) {
this.xuhao = xuhao;
}
public String getThem() {
return them;
}
public void setThem(String them) {
this.them = them;
}
public String getOne() {
return one;
}
public void setOne(String one) {
this.one = one;
}
public String getTwo() {
return two;
}
public void setTwo(String two) {
this.two = two;
}
public String getThree() {
return three;
}
public void setThree(String three) {
this.three = three;
}
public String getFour() {
return four;
}
public void setFour(String four) {
this.four = four;
}
public String getOk() {
return ok;
}
public void setOk(String ok) {
this.ok = ok;
}
@TableField("one")
private String one;
@TableField("two")
private String two;
public double getFen() {
return fen;
}
public void setFen(double fen) {
this.fen = fen;
}
@TableField("three")
private String three;
@TableField("four")
private String four;
@TableField("ok")
private String ok;
public int getMokuaiId() {
return mokuaiId;
}
public void setMokuaiId(int mokuaiId) {
this.mokuaiId = mokuaiId;
}
@TableField("da")
private String da;
@TableField("fen")
private double fen;
@TableField("mokuaiId")
private int mokuaiId;
}

@ -0,0 +1,234 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>用户模块<small>评测成绩</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>用户模块</el-breadcrumb-item>
<el-breadcrumb-item>评测成绩</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="fen" label="分数" align="center"></el-table-column>
<el-table-column prop="guo" label="结果" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">详情</el-button>
<el-button type="primary" size="mini" @click="handleUpdate1(scope.row)">匹配</el-button>
<el-button type="primary" size="mini" @click="handleUpdate2(scope.row)">定位医院</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
type:[{ required: true, message: '角色为必选项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/user/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
this.formData.status="拉黑";
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/user/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
localStorage.setItem("userId",row.userId);
window.parent.document.getElementById("f").src="allm.html";
},
handleUpdate1(row) {
localStorage.setItem("userId",row.userId);
window.parent.document.getElementById("f").src="pipei.html";
},
handleUpdate2(row) {
localStorage.setItem("userId",row.userId);
window.parent.document.getElementById("f").src="map.html";
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/user/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
let userId=localStorage.getItem("userId");
//请求后台
axios.get("/ut/selectAll/"+userId).then((response)=> {
this.dataList = response.data;e
});
},
c(row)
{
axios.get("/user/findById/" + row.id).then((res)=>{
this.formData=res.data;
if(this.formData.status=="拉黑")
{
this.formData.status="已拉黑"
}
else
{
this.formData.status="拉黑"
}
axios.put("/user/Update",this.formData).then((response)=> {
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
});
}
}
})
</script>
</html>

@ -0,0 +1,296 @@
<!DOCTYPE html>
<html>
<head>
<!-- 页面meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>火车票销售系统</title>
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../css/style.css">
</head>
<body class="hold-transition">
<div id="app">
<div class="content-header">
<h1>管理员模块<small>测评分析</small></h1>
<el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>管理员模块</el-breadcrumb-item>
<el-breadcrumb-item>测评分析</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="app-container">
<div class="box">
<div class="filter-container">
<el-button type="primary" class="butT" @click="handleCreate()">新建</el-button>
</div>
<el-table size="small" current-row-key="id" :data="dataList" stripe highlight-current-row>
<el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="start" label="起始分数" align="center"></el-table-column>
<el-table-column prop="end" label="结束分数" align="center"></el-table-column>
<el-table-column prop="guo" label="结论" align="center"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增标签弹层 -->
<div class="add-form">
<el-dialog title="新增" :visible.sync="dialogFormVisible">
<el-form ref="dataAddForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="起始分数" prop="start">
<el-input v-model="formData.start"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束分数" prop="end">
<el-input v-model="formData.end"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="结论" prop="guo">
<el-input v-model="formData.guo"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button type="primary" @click="handleAdd()">确定</el-button>
</div>
</el-dialog>
</div>
<!-- 编辑标签弹层 -->
<div class="add-form">
<el-dialog title="编辑" :visible.sync="dialogFormVisible4Edit">
<el-form ref="dataEditForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="起始分数" prop="start">
<el-input v-model="formData.start"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束分数" prop="end">
<el-input v-model="formData.end"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="结论" prop="guo">
<el-input v-model="formData.guo"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible4Edit = false">取消</el-button>
<el-button type="primary" @click="handleEdit()">确定</el-button>
</div>
</el-dialog>
</div>
</div>
</div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:10,//每页显示的记录数
total:0,//总记录数
queryString:""//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
start: [{ required: true, message: '起始分数为必填项', trigger: 'blur' }],
end: [{ required: true, message: '结束分数为必填项', trigger: 'blur' }],
guo:[{ required: true, message: '结论为必填项', trigger: 'blur' }],
idCard:[{ required: true, message: '身份证号必填项', trigger: 'blur' }]
},
options: [{
value: 1,
label: '用户'
},
{
value: 0,
label: '管理员'
}]
},
//钩子函数VUE对象初始化完成后自动执行
created(){
this.findPage();
},
methods:{
//编辑
handleEdit() {
//表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,发送请求
axios.put("/fenduan/Update",this.formData).then((response)=> {
this.dialogFormVisible4Edit = false;
this.$message({
message: "修改成功",
type: 'success'
});
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
}else{
//表单校验失败
this.$message.error("表单数据校验失败");
return false;
}
});
},
//添加
handleAdd () {
//校验表单输入项是否合法
this.$refs['dataAddForm'].validate((valid) => {
if (valid) {
this.formData.status="拉黑";
//表单数据校验通过发送ajax请求将表单数据提交到后台
axios.post("/fenduan/Save",this.formData).then((response)=> {
//隐藏新增窗口
this.dialogFormVisible = false;
this.$message({
message: "添加成功",
type: 'success'
});
}).finally(()=> {
this.findPage();
});
} else {
this.$message.error("表单数据校验失败");
return false;
}
});
},
// 重置表单
resetForm() {
this.formData = {};
},
// 弹出添加窗口
handleCreate() {
this.resetForm();
this.dialogFormVisible = true;
},
// 弹出编辑窗口
handleUpdate(row) {
//发送请求获取检查项信息
axios.get("/fenduan/findById/" + row.id).then((res)=>{
//设置编辑窗口属性dialogFormVisible4Edit为true表示显示
this.dialogFormVisible4Edit = true;
//为模型数据设置值基于VUE双向数据绑定回显到页面
this.formData = res.data;
});
},
//切换页码
handleCurrentChange(currentPage) {
//currentPage为切换后的页码
this.pagination.currentPage = currentPage;
this.findPage();
},
//切换每页显示条数
handleSizeChange(pageSize){
this.pagination.pageSize =pageSize;
this.findPage();
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.delete("/fenduan/Delete/" + row.id).then((res)=> {
this.$message({
message: "删除成功",
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
});
});
},
//分页查询
findPage() {
axios.get("/fenduan/selectAll").then((response)=> {
this.dataList = response.data
});
},
c(row)
{
axios.get("/user/findById/" + row.id).then((res)=>{
this.formData=res.data;
if(this.formData.status=="拉黑")
{
this.formData.status="已拉黑"
}
else
{
this.formData.status="拉黑"
}
axios.put("/user/Update",this.formData).then((response)=> {
}).finally(()=> {
//重新发送请求查询分页数据
this.findPage();
});
});
}
}
})
</script>
</html>

@ -0,0 +1,48 @@
package com.controller;
import com.domain.fenduan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/fenduan")
public class fenduanController {
@Autowired
public com.service.fenduanService fenduanService;
@PostMapping("/Save")
public int Save(@RequestBody fenduan fenduan)
{
return fenduanService.insert(fenduan);
}
@DeleteMapping("/Delete/{id}")
public int Delete(@PathVariable Integer id)
{
return fenduanService.delete(id);
}
@GetMapping("/findById/{id}")
public fenduan findById(@PathVariable Integer id)
{
return fenduanService.findById(id);
}
@PutMapping("/Update")
public int Update(@RequestBody fenduan fenduan)
{
return fenduanService.edit(fenduan);
}
@GetMapping("/selectAll")
public List<fenduan> selectAll()
{
return fenduanService.selectAll();
}
}

@ -0,0 +1,31 @@
package com.controller;
import com.domain.liaotian;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/liaotian")
public class liaotianController {
@Autowired
public com.service.liaotianService liaotianService;
@PostMapping("/Save")
public int Save(@RequestBody liaotian liaotian)
{
int a=55;
return liaotianService.insert(liaotian);
}
@PostMapping("/Select")
public String Select(@RequestBody liaotian liaotian)
{
return liaotianService.select(liaotian);
}
}

@ -0,0 +1,136 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no" name="viewport">
<title>登录</title>
<link rel="stylesheet" href="../dist/modules/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../dist/modules/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="../dist/modules/fontawesome/web-fonts-with-css/css/fontawesome-all.min.css">
<link rel="stylesheet" href="../dist/css/demo.css">
<link rel="stylesheet" href="../dist/css/style.css">
<!-- 引入样式 -->
<link rel="stylesheet" href="../plugins/elementui/index.css" type="text/css">
<link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css" type="text/css">
<link rel="stylesheet" href="../css/style.css" type="text/css">
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
</head>
<body>
<div id="app">
<section class="section">
<div class="container mt-5">
<div class="row">
<div class="col-12 col-sm-8 offset-sm-2 col-md-6 offset-md-3 col-lg-6 offset-lg-3 col-xl-4 offset-xl-4">
<div class="login-brand">
心理测评
</div>
<div class="card card-primary">
<div class="card-header"><h4>登录</h4></div>
<div class="card-body">
<div class="needs-validation" novalidate="">
<div class="form-group">
<label for="name">账号</label>
<input id="name" type="text" class="form-control" v-model="username" tabindex="1" required autofocus>
<div class="invalid-feedback">
Please fill in your email
</div>
</div>
<div class="form-group">
<label for="password" class="d-block">密码
</label>
<input id="password" type="password" class="form-control" v-model="password" tabindex="2" required>
<div class="invalid-feedback">
please fill in your password
</div>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block" tabindex="4" @click="add()">
登录
</button>
<label for="password" class="d-block">
<div class="float-right">
<a href="regist.html">
前往注册?
</a>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</body>
</html>
<script>
var vue = new Vue({
el: '#app',
data: {
username:"",
password:"",
formData:{},
rules: {//校验规则
username: [{ required: true, message: '用户名为必填项', trigger: 'blur' }],
password: [{ required: true, message: '密码为必填项', trigger: 'blur' }],
idCard: [{ required: true, message: '身份证必填项', trigger: 'blur' }],
},
}
,methods:{
add()
{
if(this.username.trim()==""||this.password.trim()=="")
{
alert("请输入用户名和密码");
return
}
$.ajax({
url:"/login",
type:"POST",
async:false,
dataType:"json",
data:{
username:this.username,
password:this.password
},
success: function (res) {
if(res=="登录成功")
{
window.location.href="main.html";
return;
}
else
{
alert("用户名或者密码错误");
}
}
})
}
}
});
</script>

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!--1.js文件 -->
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=R0U20dyNltV5fTgeMauQYOgNTt5Ux1hB"></script>
</head>
<body>
<!--2.容器-->
<div id="container" style="width:1200px;height:400px;"></div>
<!--3.插入地图显示-->
<script>
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
</script>
</body>
</html>

@ -0,0 +1,50 @@
package com.controller;
import com.domain.mokuai;
import com.untils.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/mokuai")
public class mokuaiController {
@Autowired
public com.service.mokuaiService mokuaiService;
@PostMapping("/Save")
public int Save(@RequestBody mokuai mokuai)
{
return mokuaiService.insert(mokuai);
}
@DeleteMapping("/Delete/{id}")
public int Delete(@PathVariable Integer id)
{
return mokuaiService.delete(id);
}
@GetMapping("/SelectPage/{size}/{current}")
public PageResult selectPage(@PathVariable Integer size, @PathVariable Integer current, mokuai mokuai)
{
return mokuaiService.SelectPage(mokuai,size,current);
}
@GetMapping("/findById/{id}")
public mokuai findById(@PathVariable Integer id)
{
return mokuaiService.findById(id);
}
@PutMapping("/Update")
public int Update(@RequestBody mokuai mokuai)
{
return mokuaiService.edit(mokuai);
}
}

@ -0,0 +1,582 @@
html,body {
/* overflow-y: scroll; */
margin: 0;
}
a {
color: #3c8dbc;
text-decoration:none;
}
/* new style */
.skin-purple .main-sidebar {
background: #fff;
}
.skin-purple .main-header .logo:hover {
background: #0abdfe;
}
.skin-purple .main-header .navbar .sidebar-toggle:hover {
/* background: #0abdfe; */
}
.skin-purple .main-header {
min-height: 70px;
padding: 0;
}
.skin-purple .main-header .logo {
height: 50px;
/* background: #0abdfe; */
float: left;
padding: 20px 0 0 15px;
/* width: 230px; */
}
.skin-purple .main-header .navbar {
height: 70px;
background: linear-gradient(to right, #0abdfe, #67f0e0);
/* margin-left: 230px; */
}
.winfo{margin-left: 230px;}
.skin-purple .main-header .sidebar-toggle {
display: inline-block;
padding: 24px 15px;
color: #fff;
}
.skin-purple .main-sidebar {
padding-top: 75px;
}
.sidebar-menu > li {
line-height: 1.8
}
.skin-purple .sidebar-menu > li > a {
font-size: 16px;
color: #666
}
.skin-purple .sidebar-menu>li:hover>a,
.skin-purple .sidebar-menu>li.active>a {
background: transparent;
color: #666;
border-left-color: transparent
}
.skin-purple .treeview-menu>li>a:hover {
color: #fff
}
.skin-purple .sidebar-menu>li>.treeview-menu {
background: #fff;
}
.sidebar-menu .treeview-menu > li > a {
font-size: 16px;
padding-left: 35px;
color: #999
}
.sidebar-menu .treeview-menu > li:hover {
background: #0abdfe;
}
@media (min-width: 768px) {
.skin-purple .navbar-nav>li>a
{
padding-top: 25px;
padding-bottom: 25px;
}
}
.modal-body .nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover {
color: #0abdfe
}
.modal-body .nav-tabs>li>a {
color: #555
}
.bg-olive {
background-color: #0abdfe !important;
}
.dataTable .btn[class*='bg-']:hover {
box-shadow: none
}
.btn-primary {
background: #0abdfe;
border-color: #0abdfe;
}
.box-body .nav>li>a {
color: #666
}
.box-body .nav>li.active>a {
color: #0abdfe;
}
/* tab 1*/
.double {
line-height: 58px;
}
.title .glyphicon{
padding: 3px;
font-size: 13px;
border-radius: 8px;
color: #fff;
}
.data span.arrowup {
color: #d88918;
}
.data span.arrowdown {
color: #6bb10a;
}
.item-blue .glyphicon{
background-color: #39a9ea;
}
.item-green {
line-height: 58px;
}
.item-green .glyphicon{
background-color: #6bb10a;
line-height: 12px;
}
.item-orange .glyphicon{
background-color:#d88918;
}
.item-red .glyphicon{
background-color: #f14f4f;
}
.chart .chart-box {
margin: 10px;
}
/* 数据表格label */
.content-wrapper .data-type {
/*width: 90%;*/
margin: 10px 5px;
border:1px solid #d4d4d4;
border-radius: 2px;
}
.data-type .title,
.data-type .data {
padding: 3px 12px;
border-top: 1px solid #d4d4d4;
overflow: hidden;
height: 42px;
}
.data-type .title {
line-height: 34px;
border-right: 1px solid #d4d4d4;
}
.data-type .data:last-child{
border-right: 0;
}
.data-type .title{
text-align: center;
background: #ececec;
}
.data-type .data .line{
vertical-align: middle;
overflow: hidden;
padding-bottom: 10px;
padding-top: 10px;
}
/* label行高度 */
.data-type .data > label {
line-height:36px;
}
.data-type .data > .form-group {
line-height:36px;
}
.data-type .data.text {
line-height:36px;
}
/* label行分隔符 */
.data-type .data.border-right {
border-right: 1px solid #d4d4d4;
}
/* 表格双倍高度 */
.data-type .title.rowHeight2x,
.data-type .data.rowHeight2x {
height:84px;
}
.data-type .title.rowHeight2x ,
.data-type .data.rowHeight2x.text {
line-height:78px;
}
/*.data-type .data.rowHeight2x > label {
line-height:78px;
}*/
.data-type .title.editer,
.data-type .data.editer {
height:320px;
}
.data-type .title.editer {
line-height:300px;
}
/*清除parding*/
.padding-clear {
padding-right: 0px;
padding-left: 0px;
}
/* 文件上传 */
/*a upload */
.a-upload {
padding: 4px 10px;
height: 35px;
line-height: 25px;
position: relative;
cursor: pointer;
color: #888;
background: #fafafa;
border: 1px solid #ddd;
border-radius: 4px;
overflow: hidden;
display: inline-block;
*display: inline;
*zoom: 1
}
.a-upload input {
position: absolute;
font-size: 100px;
right: 0;
top: 0;
opacity: 0;
filter: alpha(opacity=0);
cursor: pointer
}
.a-upload:hover {
color: #444;
background: #eee;
border-color: #ccc;
text-decoration: none
}
/* 医疗 */
.search-box {
display: inline-block
}
.input-sm {
height: 32px;
}
.btn-create {
margin-left: 10px;
background-color: #0abdfe;
border-color: #0abdfe;
color: #fff;
}
.btn-create:hover,
.btn-create:active,
.btn-create:focus
{
color: #fff;
}
.pagination {
margin: 0
}
.medical-modal {
position:absolute;
top:0%;
left:0%;
display:none;
background:rgba(0,0,0,0.3);
width:100%;
height:100%;
position:fixed;
z-index:9999
}
.medical-modal .content {
position: absolute;
left: 35%;
top: 25%;
border-radius: 8px;
width: 30%;
height: 40%;
background-color: #fff;
}
.pageitems, .jump {
margin-left: 15px;
display: inline-block;
}
.jumppage {
width: 30px;
text-align: center
}
@media (min-width: 768px) {
.subscribe .modal-dialog {
width: 900px;
margin: 30px auto;
}
}
.checklist {
margin-top: 10px;
}
.checklist .input-group {
margin-bottom: 10px;
}
.modal-page {
margin-top: 20px;
font-size: 12px;
}
.modal-page .form-control {
font-size: 12px;
padding: 0;
height: 26px;
}
.table-check {
margin: 0;
display: inline-block;
margin-right: 4px;
}
.daterange {
margin:10px 10px 0;
}
.daterange .input-group .form-control {
width: 20%;
}
.chart-title {
font-size: 16px;
font-weight: normal;
text-align: center;
}
.diaocha {
line-height: 2
}
.diaocha h5{
color: #f98d45;
background: #f5f7f9;
line-height: 2;
padding-left: 15px;
}
.diaocha div {
padding: 0 20px;
border-bottom: 1px solid #dce1e7;
}
.diaocha div h5 {
color: #555;
background: transparent;
padding-left: 0;
}
.diaocha label {
font-weight: normal;
}
.diaocha .form-group {
margin-left: 0;
margin-right: 0;
}
.diaocha .options label {
margin-right: 10px;
}
.tizhi button{
margin-right: 15px;
}
.innerform {
margin-top: 20px;
}
.fa-search {
cursor: pointer
}
.line {
margin-top: 10px;
}
input[type=radio]:focus {
outline: none
}
input[type="radio"]{
appearance: none;
-webkit-appearance: none;
outline: none;
display:none
}
label input[type="radio"] {
content: "\a0";
display: inline-block;
vertical-align: middle;
font-size: 16px;
width: 15px;
height: 15px;
margin-right: .4em;
border-radius: 50%;
border: 1px solid #c7c6c6;
line-height: 1;
margin-top: -1px;
}
label input[type="radio"]:checked {
border: 3px solid #0abdfe;
}
.right-menu {
float: right;
padding: 18px 30px 0 0;
color: #fff;
}
.el-dropdown{color: #fff;}
.avatar-wrapper img{width: 30px;height: 30px;border-radius: 15px;vertical-align: middle}
.el-popper[x-placement^=bottom]{margin-top: 30px;}
.el-dropdown-menu__item--divided{margin: 0;border:0 none;border-bottom: 1px solid #ebeef5}
.help{
padding: 0 10px;
}
.help .fa{ margin-right: 5px;}
.el-main{
background: #ecf0f5;
}
.el-menu{border: 0 none;}
.main{
height: 100vh;
min-width: 800px;
min-height: 600px;
overflow: hidden;
}
.main aside{
overflow: visible;
height: 100%;
}
.main aside.isClossTab{
width: 100%;
height: 60px;
cursor: pointer;
font-size: 25px;
text-align: center;
line-height: 60px;
font-weight: bold;
border-right: 1px solid #807c7c;
box-sizing: border-box;
}
.main aside .menu{
width: 100%;
border-right:0;
}
.el-menu .fa{
vertical-align: middle;
margin-right: 5px;
width: 24px;
text-align: center;
font-size: 18px;
}
.el-menu-item a{
color: #303133
}
.el-menu-item:hover,.el-menu-item.is-active {
color: #fff;
background: #0abdfe;
}
.el-menu-item:hover a,.el-menu-item.is-active a{
color: #fff;
}
.el-submenu__title:hover{background: none;}
.main-footer {
background: #fff;
padding: 15px 0;
color: #444;
}
/* title */
.content-header {
position: relative;
padding: 15px 15px 0 15px;
/* margin-top: 70px; */
}
.content-header > h1 {
margin: 0;
font-size: 24px;
font-weight: normal;
}
.content-header > h1 > small {
font-size: 15px;
display: inline-block;
padding-left: 4px;
font-weight: 300;
}
.content-header > .breadcrumb {
float: right;
background: transparent;
margin-top: 0;
margin-bottom: 0;
font-size: 12px;
padding: 7px 5px;
position: absolute;
top: 20px;
right: 10px;
border-radius: 2px;
}
/* */
.app-container{
background: #fff;
margin: 15px 30px 15px 15px;
}
.pagiantion{
text-align: right;
padding: 15px;
}
.box {
position: relative;
border-radius: 3px;
background: #ffffff;
border-top: 3px solid #3c8dbc;
padding: 10px;
margin-bottom: 20px;
width: 100%;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}
.filter-container{
padding:10px 0 15px 0;
}
.main-container{margin-top: 70px;}
.filter-container .el-button,.filter-container .el-input__inner{
padding: 0 15px;
height: 34px;
line-height: 34px;
}
.el-aside{overflow: hidden;}
.el-submenu .el-menu-item a{
display: block;
height: 50px;
}
.el-menu--collapse .el-submenu__icon-arrow{ display: none}
/* .el-container{position: relative;} */
/* foot */
.el-footer{
position: absolute;
left: 180px;
right: 0px;
bottom: -80px;
}
.boxMain .el-upload--text{
position:static;
}
.boxMain >div{
display: inline-block;
}
.excelTitle{
text-align: center;
overflow: hidden;
line-height: 40px;
}
.excelTitle .el-button{
float: left;
}
.excelTime{
padding: 10px 0;
text-align: right;
}
.exceTable{
width: 100%;
border-right: 1px solid #e6e6e6;
border-bottom: 1px solid #e6e6e6;
font-size: 14px;
color: #333;
}
.exceTable tr,.exceTable td{
border-left: 1px solid #e6e6e6;
border-top: 1px solid #e6e6e6;
height: 40px;
line-height: 40px;
padding: 0 10px;
}
.exceTable .headBody{
text-align: center;
font-weight: 700;
font-size: 14px;
}
.tabletrBg{
background: #fcfcfc;
text-align: right;
}
.textCenter{
text-align: center
}
.checkScrol{
height: 277px;
overflow-y:scroll; ;
}

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>桌面</title>
</head>
<body>
<table style="margin: 0 auto">
<tr>
<td>
<h1>欢迎来到<span style="color:aquamarine">心理测评</span>系统</h1>
</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,60 @@
package com.controller;
import com.domain.timu;
import com.service.timuService;
import com.untils.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/timu")
public class timuController {
@Autowired
public com.service.timuService timuService;
@PostMapping("/Save")
public int Save(@RequestBody timu timu)
{
return timuService.insert(timu);
}
@DeleteMapping("/Delete/{id}")
public int Delete(@PathVariable Integer id)
{
return timuService.delete(id);
}
@GetMapping("/SelectPage/{size}/{current}")
public PageResult selectPage(@PathVariable Integer size, @PathVariable Integer current, timu timu)
{
return timuService.SelectPage(timu,size,current);
}
@GetMapping("/findById/{id}")
public timu findById(@PathVariable Integer id)
{
return timuService.findById(id);
}
@PutMapping("/Update")
public int Update(@RequestBody timu timu)
{
return timuService.edit(timu);
}
@GetMapping("/selectAll")
public List<timu> selectAll()
{
return timuService.selectAll();
}
}

@ -0,0 +1,104 @@
package com.controller;
import com.domain.user;
import com.service.userService;
import com.untils.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class userController {
@Autowired
public userService userService;
@PostMapping("/Save")
public int Save(@RequestBody user user)
{
return userService.insert(user);
}
@DeleteMapping("/Delete/{id}")
public int Delete(@PathVariable Integer id)
{
return userService.delete(id);
}
@PutMapping("/Update")
public int Update(@RequestBody user user)
{
return userService.edit(user);
}
@GetMapping("/SelectPage/{size}/{current}")
public PageResult selectPage(@PathVariable Integer size, @PathVariable Integer current, user user)
{
return userService.SelectPage(user,size,current);
}
@GetMapping("/SelectPageStudent/{size}/{current}")
public PageResult selectPageStudent(@PathVariable Integer size, @PathVariable Integer current, user user)
{
return userService.SelectPageStudent(user,size,current);
}
@GetMapping("/findById/{id}")
public user findById(@PathVariable Integer id)
{
return userService.findById(id);
}
@PostMapping("/login")
public Boolean login(@RequestBody user user)
{
user user1= userService.login(user);
if (user1==null)
{
return false;
}
else
{
return true;
}
}
//获取当前登录用户的用户名
@GetMapping("/getUsername")
public String getUsername(){
org.springframework.security.core.userdetails.User user =
(org.springframework.security.core.userdetails.User)
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return user.getUsername();
}
@GetMapping("/getByUserName")
public int getByUserName(String username){
return userService.selectByUserName(username).getType();
}
@GetMapping("/getByUserId")
public int getByUserId(String username){
return userService.selectByUserName(username).getId();
}
@GetMapping("/SelectAll")
public List<user> SelectAll(){
return userService.selectAll();
}
}

@ -0,0 +1,120 @@
package com.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.domain.all;
import com.domain.allm;
import com.domain.ut;
import com.untils.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/ut")
public class utController {
@Autowired
public com.service.utService utService;
@Autowired
private com.dao.utDao utDao;
@PostMapping("/Save")
public int Save(@RequestBody List<ut> uts)
{
QueryWrapper<ut> queryWrapper = new QueryWrapper<com.domain.ut>();
queryWrapper.eq("userId",uts.get(0).getUserId());
utDao.delete(queryWrapper);
for (ut item:uts)
{
utService.insert(item);
}
return 1;
}
@DeleteMapping("/Delete/{id}")
public int Delete(@PathVariable Integer id)
{
return utService.delete(id);
}
@GetMapping("/SelectPage/{size}/{current}")
public PageResult selectPage(@PathVariable Integer size, @PathVariable Integer current, ut ut)
{
return utService.SelectPage(ut,size,current);
}
@GetMapping("/findById/{id}")
public ut findById(@PathVariable Integer id)
{
return utService.findById(id);
}
@PutMapping("/Update")
public int Update(@RequestBody ut ut)
{
return utService.edit(ut);
}
@GetMapping("/selectAll/{userId}")
public List<all> selectAll(@PathVariable int userId)
{
List<all> list=new ArrayList<>();
all a=utService.selectAll(userId);
list.add(a);
return list;
}
@GetMapping("/selectAllm/{userId}")
public List<allm> selectAllm(@PathVariable int userId)
{
return utService.selectAllm(userId);
}
@GetMapping("/selectAll1")
public List<all> selectAll1()
{
return utService.selectAll1();
}
//
@GetMapping("/selectDetails/{userId}/{mokuaiId}")
public List<ut> selectDetails(@PathVariable int userId,@PathVariable int mokuaiId) {
return utService.selectDetails(userId,mokuaiId);
}
@GetMapping("/pi/{userId}")
public List<all> pi(@PathVariable int userId)
{
return utService.pipei(userId);
}
}
Loading…
Cancel
Save