Browse Source

登录注册

master
hanyuqing 3 months ago
parent
commit
1e3c7f0a9f
  1. 8
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
  2. 2
      ruoyi-admin/src/main/resources/application-druid.yml
  3. 267
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
  4. 10
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
  5. 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
  6. 4
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java
  7. 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  8. 8
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  9. 8
      ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
  10. 6
      ruoyi-system/src/main/resources/mapper/system/UsersMapper.xml
  11. 116
      ruoyi-ui/src/views/cesiumMap/index.vue
  12. 78
      ruoyi-ui/src/views/login.vue
  13. 1
      ruoyi-ui/src/views/register.vue
  14. 2
      ruoyi-ui/vue.config.js

8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java

@ -28,6 +28,14 @@ public class SysRegisterController extends BaseController
@PostMapping("/register") @PostMapping("/register")
public AjaxResult register(@RequestBody RegisterBody user) public AjaxResult register(@RequestBody RegisterBody user)
{ {
// 1. 先获取配置值并存入变量
String registerConfig = configService.selectConfigByKey("sys.account.registerUser");
// 2. 打印到控制台
System.out.println("获取到的 Value: [" + registerConfig + "]"); // 加括号能看出是否有空格
System.out.println("类型判断结果: " + "true".equals(registerConfig));
System.out.println("======================");
if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser"))))
{ {
return error("当前系统没有开启注册功能!"); return error("当前系统没有开启注册功能!");

2
ruoyi-admin/src/main/resources/application-druid.yml

@ -8,7 +8,7 @@ spring:
master: master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: A20040303ctw! password: 123456
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭

267
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@ -3,6 +3,7 @@ package com.ruoyi.common.core.domain.entity;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@ -19,318 +20,330 @@ import com.ruoyi.common.xss.Xss;
* *
* @author ruoyi * @author ruoyi
*/ */
public class SysUser extends BaseEntity public class SysUser extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 用户ID */ /**
* 用户ID
*/
@Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
private Long userId; private Long userId;
/** 部门ID */ /**
* 部门ID
*/
@Excel(name = "部门编号", type = Type.IMPORT) @Excel(name = "部门编号", type = Type.IMPORT)
private Long deptId; private Long deptId;
/** 用户账号 */ /**
* 用户账号
*/
@Excel(name = "登录名称") @Excel(name = "登录名称")
private String userName; private String userName;
/** 用户昵称 */ /**
* 用户昵称
*/
@Excel(name = "用户名称") @Excel(name = "用户名称")
private String nickName; private String nickName;
/** 用户邮箱 */ /**
* 用户邮箱
*/
@Excel(name = "用户邮箱") @Excel(name = "用户邮箱")
private String email; private String email;
/** 手机号码 */ /**
* 手机号码
*/
@Excel(name = "手机号码", cellType = ColumnType.TEXT) @Excel(name = "手机号码", cellType = ColumnType.TEXT)
private String phonenumber; private String phonenumber;
/** 用户性别 */ /**
* 用户性别
*/
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex; private String sex;
/** 用户头像 */ /**
* 用户头像
*/
private String avatar; private String avatar;
/** 密码 */ /**
* 密码
*/
private String password; private String password;
/** 账号状态(0正常 1停用) */ /**
* 账号状态0正常 1停用
*/
@Excel(name = "账号状态", readConverterExp = "0=正常,1=停用") @Excel(name = "账号状态", readConverterExp = "0=正常,1=停用")
private String status; private String status;
/** 删除标志(0代表存在 2代表删除) */ /**
* 删除标志0代表存在 2代表删除
*/
private String delFlag; private String delFlag;
/** 最后登录IP */ /**
* 最后登录IP
*/
@Excel(name = "最后登录IP", type = Type.EXPORT) @Excel(name = "最后登录IP", type = Type.EXPORT)
private String loginIp; private String loginIp;
/** 最后登录时间 */ /**
* 最后登录时间
*/
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
private Date loginDate; private Date loginDate;
/** 密码最后更新时间 */ /**
* 密码最后更新时间
*/
private Date pwdUpdateDate; private Date pwdUpdateDate;
/** 部门对象 */ /**
* 部门对象
*/
@Excels({ @Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
}) })
private SysDept dept; private SysDept dept;
/** 角色对象 */ /**
* 角色对象
*/
private List<SysRole> roles; private List<SysRole> roles;
/** 角色组 */ /**
* 角色组
*/
private Long[] roleIds; private Long[] roleIds;
/** 岗位组 */ /**
* 岗位组
*/
private Long[] postIds; private Long[] postIds;
/** 角色ID */ /**
* 角色ID
*/
private Long roleId; private Long roleId;
public SysUser() /**
{ * 权限等级
*/
@Excel(name = "权限等级", readConverterExp = "1=管理员,2=主持人,3=普通用户")
private String userLevel;
public SysUser() {
} }
public SysUser(Long userId) public SysUser(Long userId) {
{
this.userId = userId; this.userId = userId;
} }
public Long getUserId() public Long getUserId() {
{
return userId; return userId;
} }
public void setUserId(Long userId) public void setUserId(Long userId) {
{
this.userId = userId; this.userId = userId;
} }
public boolean isAdmin() public boolean isAdmin() {
{
return SecurityUtils.isAdmin(this.userId); return SecurityUtils.isAdmin(this.userId);
} }
public Long getDeptId() public Long getDeptId() {
{
return deptId; return deptId;
} }
public void setDeptId(Long deptId) public void setDeptId(Long deptId) {
{
this.deptId = deptId; this.deptId = deptId;
} }
@Xss(message = "用户昵称不能包含脚本字符") @Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
public String getNickName() public String getNickName() {
{
return nickName; return nickName;
} }
public void setNickName(String nickName) public void setNickName(String nickName) {
{
this.nickName = nickName; this.nickName = nickName;
} }
@Xss(message = "用户账号不能包含脚本字符") @Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空") @NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
public String getUserName() public String getUserName() {
{
return userName; return userName;
} }
public void setUserName(String userName) public void setUserName(String userName) {
{
this.userName = userName; this.userName = userName;
} }
@Email(message = "邮箱格式不正确") @Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
public String getEmail() public String getEmail() {
{
return email; return email;
} }
public void setEmail(String email) public void setEmail(String email) {
{
this.email = email; this.email = email;
} }
@Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
public String getPhonenumber() public String getPhonenumber() {
{
return phonenumber; return phonenumber;
} }
public void setPhonenumber(String phonenumber) public void setPhonenumber(String phonenumber) {
{
this.phonenumber = phonenumber; this.phonenumber = phonenumber;
} }
public String getSex() public String getSex() {
{
return sex; return sex;
} }
public void setSex(String sex) public void setSex(String sex) {
{
this.sex = sex; this.sex = sex;
} }
public String getAvatar() public String getAvatar() {
{
return avatar; return avatar;
} }
public void setAvatar(String avatar) public void setAvatar(String avatar) {
{
this.avatar = avatar; this.avatar = avatar;
} }
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String getPassword() public String getPassword() {
{
return password; return password;
} }
public void setPassword(String password) public void setPassword(String password) {
{
this.password = password; this.password = password;
} }
public String getStatus() public String getStatus() {
{
return status; return status;
} }
public void setStatus(String status) public void setStatus(String status) {
{
this.status = status; this.status = status;
} }
public String getDelFlag() public String getDelFlag() {
{
return delFlag; return delFlag;
} }
public void setDelFlag(String delFlag) public void setDelFlag(String delFlag) {
{
this.delFlag = delFlag; this.delFlag = delFlag;
} }
public String getLoginIp() public String getLoginIp() {
{
return loginIp; return loginIp;
} }
public void setLoginIp(String loginIp) public void setLoginIp(String loginIp) {
{
this.loginIp = loginIp; this.loginIp = loginIp;
} }
public Date getLoginDate() public Date getLoginDate() {
{
return loginDate; return loginDate;
} }
public void setLoginDate(Date loginDate) public void setLoginDate(Date loginDate) {
{
this.loginDate = loginDate; this.loginDate = loginDate;
} }
public Date getPwdUpdateDate() public Date getPwdUpdateDate() {
{
return pwdUpdateDate; return pwdUpdateDate;
} }
public void setPwdUpdateDate(Date pwdUpdateDate) public void setPwdUpdateDate(Date pwdUpdateDate) {
{
this.pwdUpdateDate = pwdUpdateDate; this.pwdUpdateDate = pwdUpdateDate;
} }
public SysDept getDept() public SysDept getDept() {
{
return dept; return dept;
} }
public void setDept(SysDept dept) public void setDept(SysDept dept) {
{
this.dept = dept; this.dept = dept;
} }
public List<SysRole> getRoles() public List<SysRole> getRoles() {
{
return roles; return roles;
} }
public void setRoles(List<SysRole> roles) public void setRoles(List<SysRole> roles) {
{
this.roles = roles; this.roles = roles;
} }
public Long[] getRoleIds() public Long[] getRoleIds() {
{
return roleIds; return roleIds;
} }
public void setRoleIds(Long[] roleIds) public void setRoleIds(Long[] roleIds) {
{
this.roleIds = roleIds; this.roleIds = roleIds;
} }
public Long[] getPostIds() public Long[] getPostIds() {
{
return postIds; return postIds;
} }
public void setPostIds(Long[] postIds) public void setPostIds(Long[] postIds) {
{
this.postIds = postIds; this.postIds = postIds;
} }
public Long getRoleId() public Long getRoleId() {
{
return roleId; return roleId;
} }
public void setRoleId(Long roleId) public void setRoleId(Long roleId) {
{
this.roleId = roleId; this.roleId = roleId;
} }
public String getUserLevel() {
return userLevel;
}
public void setUserLevel(String userLevel) {
this.userLevel = userLevel;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId()) .append("userId", getUserId())
.append("deptId", getDeptId()) .append("deptId", getDeptId())
.append("userName", getUserName()) .append("userName", getUserName())
.append("nickName", getNickName()) .append("nickName", getNickName())
.append("email", getEmail()) .append("email", getEmail())
.append("phonenumber", getPhonenumber()) .append("phonenumber", getPhonenumber())
.append("sex", getSex()) .append("sex", getSex())
.append("avatar", getAvatar()) .append("avatar", getAvatar())
.append("password", getPassword()) .append("password", getPassword())
.append("status", getStatus()) .append("status", getStatus())
.append("delFlag", getDelFlag()) .append("delFlag", getDelFlag())
.append("loginIp", getLoginIp()) .append("loginIp", getLoginIp())
.append("loginDate", getLoginDate()) .append("loginDate", getLoginDate())
.append("pwdUpdateDate", getPwdUpdateDate()) .append("pwdUpdateDate", getPwdUpdateDate())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.append("dept", getDept()) .append("dept", getDept())
.toString(); .append("userLevel", getUserLevel())
.toString()
;
} }
} }

10
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java

@ -7,5 +7,15 @@ package com.ruoyi.common.core.domain.model;
*/ */
public class RegisterBody extends LoginBody public class RegisterBody extends LoginBody
{ {
private String userLevel;
public String getUserLevel()
{
return userLevel;
}
public void setUserLevel(String role)
{
this.userLevel = userLevel;
}
} }

1
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java

@ -79,6 +79,7 @@ public class SysRegisterService
sysUser.setNickName(username); sysUser.setNickName(username);
sysUser.setPwdUpdateDate(DateUtils.getNowDate()); sysUser.setPwdUpdateDate(DateUtils.getNowDate());
sysUser.setPassword(SecurityUtils.encryptPassword(password)); sysUser.setPassword(SecurityUtils.encryptPassword(password));
sysUser.setUserLevel(registerBody.getUserLevel());
boolean regFlag = userService.registerUser(sysUser); boolean regFlag = userService.registerUser(sysUser);
if (!regFlag) if (!regFlag)
{ {

4
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UsersMapper.java

@ -1,6 +1,8 @@
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.Users; import com.ruoyi.system.domain.Users;
/** /**
@ -58,4 +60,6 @@ public interface UsersMapper
* @return 结果 * @return 结果
*/ */
public int deleteUsersByIds(Long[] ids); public int deleteUsersByIds(Long[] ids);
SysUser selectUserByUserName(String userName);
} }

1
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@ -3,6 +3,7 @@ package com.ruoyi.system.service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.Users;
/** /**
* 用户 业务层 * 用户 业务层

8
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@ -5,6 +5,9 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.validation.Validator; import javax.validation.Validator;
import com.ruoyi.system.domain.Users;
import com.ruoyi.system.mapper.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -23,11 +26,6 @@ import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;

8
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -24,6 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="userLevel" column="user_level" />
<association property="dept" javaType="SysDept" resultMap="deptResult" /> <association property="dept" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap> </resultMap>
@ -48,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark, select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,u.user_level,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
@ -58,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.user_level, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
@ -158,6 +159,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pwdUpdateDate != null">pwd_update_date,</if> <if test="pwdUpdateDate != null">pwd_update_date,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="userLevel != null and userLevel != ''">user_level,</if>
create_time create_time
)values( )values(
<if test="userId != null and userId != ''">#{userId},</if> <if test="userId != null and userId != ''">#{userId},</if>
@ -173,6 +175,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pwdUpdateDate != null">#{pwdUpdateDate},</if> <if test="pwdUpdateDate != null">#{pwdUpdateDate},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="userLevel != null and userLevel != ''">#{userLevel},</if>
sysdate() sysdate()
) )
</insert> </insert>
@ -192,6 +195,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="userLevel != null and userLevel != ''">user_level = #{userLevel},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where user_id = #{userId} where user_id = #{userId}

6
ruoyi-system/src/main/resources/mapper/system/UsersMapper.xml

@ -29,6 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id} where id = #{id}
</select> </select>
<select id="selectUserByUserName" parameterType="String" resultMap="com.ruoyi.system.mapper.UsersMapper.UsersResult">
select id, username, password, role
from users
where username = #{userName}
</select>
<insert id="insertUsers" parameterType="Users" useGeneratedKeys="true" keyProperty="id"> <insert id="insertUsers" parameterType="Users" useGeneratedKeys="true" keyProperty="id">
insert into users insert into users
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">

116
ruoyi-ui/src/views/cesiumMap/index.vue

@ -212,7 +212,8 @@ export default {
// //
drawingMode: null, // 'point', 'line', 'polygon', 'rectangle', 'circle' drawingMode: null, // 'point', 'line', 'polygon', 'rectangle', 'circle'
drawingHandler: null, drawingHandler: null,
tempEntity: null, tempEntity: null, //
tempPreviewEntity: null, //
drawingPoints: [], drawingPoints: [],
drawingStartPoint: null, drawingStartPoint: null,
isDrawing: false, isDrawing: false,
@ -462,20 +463,26 @@ export default {
stopDrawing() { stopDrawing() {
if (this.drawingHandler) { if (this.drawingHandler) {
this.drawingHandler.destroy() this.drawingHandler.destroy();
this.drawingHandler = null this.drawingHandler = null;
} }
if (this.tempEntity) { if (this.tempEntity) {
this.viewer.entities.remove(this.tempEntity) this.viewer.entities.remove(this.tempEntity);
this.tempEntity = null this.tempEntity = null;
} }
this.drawingPoints = [] //
this.drawingStartPoint = null if (this.tempPreviewEntity) {
this.isDrawing = false this.viewer.entities.remove(this.tempPreviewEntity);
this.tempPreviewEntity = null;
}
this.viewer.scene.canvas.style.cursor = 'default' this.drawingPoints = [];
this.drawingStartPoint = null;
this.isDrawing = false;
this.viewer.scene.canvas.style.cursor = 'default';
}, },
// ******************************************************************** // ********************************************************************
// //
@ -491,52 +498,95 @@ export default {
// 线 // 线
startLineDrawing() { startLineDrawing() {
this.drawingPoints = [];
// -
this.drawingHandler.setInputAction((click) => { this.drawingHandler.setInputAction((click) => {
const position = this.getClickPosition(click.position) const position = this.getClickPosition(click.position);
if (position) { if (position) {
this.drawingPoints.push(position) this.drawingPoints.push(position);
// 线 // 线
if (this.tempEntity) { if (this.drawingPoints.length === 1) {
this.viewer.entities.remove(this.tempEntity) const previewPositions = [position, position];
if (this.tempPreviewEntity) {
this.viewer.entities.remove(this.tempPreviewEntity);
}
this.tempPreviewEntity = this.viewer.entities.add({
polyline: {
positions: previewPositions,
width: this.defaultStyles.line.width,
material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color).withAlpha(0.5),
clampToGround: true
}
});
} }
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
if (this.drawingPoints.length > 1) { // - 线
this.tempEntity = this.viewer.entities.add({ this.drawingHandler.setInputAction((movement) => {
if (this.drawingPoints.length > 0) {
const mousePosition = this.getClickPosition(movement.endPosition);
if (mousePosition) {
// 线
const previewPositions = [...this.drawingPoints, mousePosition];
// 线
if (this.tempPreviewEntity) {
this.viewer.entities.remove(this.tempPreviewEntity);
}
// 线
this.tempPreviewEntity = this.viewer.entities.add({
polyline: { polyline: {
positions: this.drawingPoints, positions: previewPositions,
width: this.defaultStyles.line.width, width: this.defaultStyles.line.width,
material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color), material: Cesium.Color.fromCssColorString(this.defaultStyles.line.color).withAlpha(0.5), //
clampToGround: true clampToGround: true
} }
}) });
} }
} }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
// //
this.drawingHandler.setInputAction(() => { this.drawingHandler.setInputAction(() => {
if (this.drawingPoints.length > 1) { if (this.drawingPoints.length > 1) {
this.finishLineDrawing() this.finishLineDrawing();
} else { } else {
this.cancelDrawing() this.cancelDrawing();
} }
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK) }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
}, },
finishLineDrawing() { finishLineDrawing() {
const positions = [...this.drawingPoints] // 线线
const entity = this.addLineEntity(positions) if (this.drawingPoints.length > 1) {
// 线
if (this.tempPreviewEntity) {
this.viewer.entities.remove(this.tempPreviewEntity);
this.tempPreviewEntity = null;
}
// // 线
const length = this.calculateLineLength(positions) const entity = this.addLineEntity([...this.drawingPoints]);
this.measurementResult = {
distance: length,
type: 'line'
}
this.stopDrawing() //
return entity const length = this.calculateLineLength([...this.drawingPoints]);
this.measurementResult = {
distance: length,
type: 'line'
};
this.stopDrawing();
return entity;
} else {
this.cancelDrawing();
return null;
}
}, },
// //

78
ruoyi-ui/src/views/login.vue

@ -181,6 +181,7 @@
<script> <script>
import axios from 'axios'; import axios from 'axios';
import { register } from "@/api/login";
export default { export default {
name: 'Login', name: 'Login',
@ -210,52 +211,77 @@ export default {
toggleConfirmPwd() { toggleConfirmPwd() {
this.showConfirmPwd = !this.showConfirmPwd; this.showConfirmPwd = !this.showConfirmPwd;
}, },
handleLogin() { async handleLogin() {
if (this.isLogging) return; if (this.isLogging) return;
if (!this.form.username || !this.form.password) {
this.$message.error('请输入账号和密码');
return;
}
this.isLogging = true; this.isLogging = true;
// selectRoom
setTimeout(() => { try {
const loginBody = {
username: this.form.username,
password: this.form.password
};
await this.$store.dispatch("Login", loginBody);
this.$router.push('/selectRoom'); this.$router.push('/selectRoom');
} catch (error) {
// error msg
this.$message.error(error.msg || '登录失败');
} finally {
this.isLogging = false; this.isLogging = false;
}, 500); }
}, },
async handleRegister() { async handleRegister() {
if (this.isRegistering) return; if (this.isRegistering) return;
// // 1.
if (!this.form.username || !this.form.password || !this.form.confirmPassword) { if (!this.form.username || !this.form.password || !this.form.confirmPassword) {
alert('请填写所有必填字段'); this.$message.error('请填写所有必填字段');
return; return;
} }
if (this.form.password !== this.form.confirmPassword) { if (this.form.password !== this.form.confirmPassword) {
alert('两次输入的密码不一致'); this.$message.error('两次输入的密码不一致');
return; return;
} }
this.isRegistering = true; this.isRegistering = true;
try { // 2.
const response = await axios.post('http://localhost:3002/api/users/register', { const roleMap = {
username: this.form.username, 'admin': '1',
password: this.form.password, 'host': '2',
role: this.form.role 'user': '3'
}); };
// sys_user
const regData = {
username: this.form.username,
password: this.form.password,
userLevel: roleMap[this.form.role] || '3' // role
};
// 3. API
register(regData).then(res => {
this.isRegistering = false; this.isRegistering = false;
alert('注册成功,请登录'); this.$alert("<font color='red'>恭喜你,您的账号 " + regData.username + " 注册成功!</font>", '系统提示', {
this.switchTab('login'); dangerouslyUseHTMLString: true,
// type: 'success'
this.form = { }).then(() => {
username: '', this.switchTab('login');
password: '', //
confirmPassword: '', this.form = {
role: 'user' username: '',
}; password: '',
} catch (error) { confirmPassword: '',
role: 'user'
};
});
}).catch(() => {
this.isRegistering = false; this.isRegistering = false;
alert(error.response?.data?.message || '注册失败,请重试'); });
}
} }
} }
} }

1
ruoyi-ui/src/views/register.vue

@ -88,6 +88,7 @@ export default {
username: "", username: "",
password: "", password: "",
confirmPassword: "", confirmPassword: "",
userLevel: "3",
code: "", code: "",
uuid: "" uuid: ""
}, },

2
ruoyi-ui/vue.config.js

@ -10,7 +10,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
const baseUrl = 'http://192.168.50.30:8080' // 后端接口 const baseUrl = 'http://127.0.0.1:8080' // 后端接口
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口
// 定义 Cesium 源码路径 // 定义 Cesium 源码路径

Loading…
Cancel
Save