diff --git a/src/lmx/UserService.java b/src/lmx/UserService.java new file mode 100644 index 0000000..179d46a --- /dev/null +++ b/src/lmx/UserService.java @@ -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 authorities = new ArrayList<>(); + /* //查询登录用户所拥有的角色 + List 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; + + + } +} diff --git a/src/lmx/WebSecurityConfig.java b/src/lmx/WebSecurityConfig.java new file mode 100644 index 0000000..2859f57 --- /dev/null +++ b/src/lmx/WebSecurityConfig.java @@ -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);// 同一用户 只允许一个在线 自动踢出在线用户 + + } + +} diff --git a/src/lmx/allDetails.html b/src/lmx/allDetails.html new file mode 100644 index 0000000..fd8760e --- /dev/null +++ b/src/lmx/allDetails.html @@ -0,0 +1,224 @@ + + + + + + + 心理测评系统 + + + + + + + + +
+
+

用户模块测试详情

+ + 首页 + 用户模块 + 测试详情 + +
+
+
+
+
+

{{item.xuhao}}:{{item.them}}

+ + A:{{item.one}} + B:{{item.two}} + C:{{item.three}} + D:{{item.four}} + +
+ 得分:{{item.fen}}分正确答案:{{item.ok}} + + + 正确性: + + + + +
+
+
+ +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/lmx/blue.css b/src/lmx/blue.css new file mode 100644 index 0000000..4448fdb --- /dev/null +++ b/src/lmx/blue.css @@ -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; +} diff --git a/src/lmx/liao.html b/src/lmx/liao.html new file mode 100644 index 0000000..3d38992 --- /dev/null +++ b/src/lmx/liao.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + +
+

交流

+
+ +
+ +
+ +
+ + 发送 + + +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/src/lmx/myConfig.java b/src/lmx/myConfig.java new file mode 100644 index 0000000..e93324a --- /dev/null +++ b/src/lmx/myConfig.java @@ -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; + } +} diff --git a/src/lmx/orderset(1).css b/src/lmx/orderset(1).css new file mode 100644 index 0000000..588c071 --- /dev/null +++ b/src/lmx/orderset(1).css @@ -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%; +} \ No newline at end of file diff --git a/src/lmx/user.java b/src/lmx/user.java new file mode 100644 index 0000000..701159e --- /dev/null +++ b/src/lmx/user.java @@ -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; + +} diff --git a/src/lmx/userLiao.html b/src/lmx/userLiao.html new file mode 100644 index 0000000..ba32802 --- /dev/null +++ b/src/lmx/userLiao.html @@ -0,0 +1,323 @@ + + + + + + + 聊天 + + + + + + + + +
+
+

聊天模块选择用户

+ + 首页 + 聊天模块 + 选择用户 + +
+
+
+
+ + 查询 + +
+ + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/swq/darksidebar.css b/src/swq/darksidebar.css new file mode 100644 index 0000000..2e2765f --- /dev/null +++ b/src/swq/darksidebar.css @@ -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; +} \ No newline at end of file diff --git a/src/swq/deeppurple.css b/src/swq/deeppurple.css new file mode 100644 index 0000000..c93cee4 --- /dev/null +++ b/src/swq/deeppurple.css @@ -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; +} diff --git a/src/swq/demo.css b/src/swq/demo.css new file mode 100644 index 0000000..0a1f4fe --- /dev/null +++ b/src/swq/demo.css @@ -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 */ diff --git a/src/swq/regist.html b/src/swq/regist.html new file mode 100644 index 0000000..029c801 --- /dev/null +++ b/src/swq/regist.html @@ -0,0 +1,120 @@ + + + + + 注册 + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + +
+

注册

+ +
+
+
+ + +
+ Please fill in your email +
+
+ +
+ + +
+ please fill in your password +
+
+ + + +
+ + +
+
+
+
+ +
+
+
+
+
+ + + diff --git a/src/swq/user.html b/src/swq/user.html new file mode 100644 index 0000000..3c191ad --- /dev/null +++ b/src/swq/user.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + +
+
+

管理员模块用户管理

+ + 首页 + 管理员模块 + 用户管理 + +
+
+
+
+ + 查询 + 新建 +
+ + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/swq/user1.html b/src/swq/user1.html new file mode 100644 index 0000000..a203e8c --- /dev/null +++ b/src/swq/user1.html @@ -0,0 +1,227 @@ + + + + + + + 火车票销售系统 + + + + + + + + +
+
+

个人模块账号管理

+ + 首页 + 个人模块 + 账号管理 + +
+
+
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/swq/ut.java b/src/swq/ut.java new file mode 100644 index 0000000..69b619c --- /dev/null +++ b/src/swq/ut.java @@ -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; + +}