Browse Source

去掉h5标题、补充注册页面

master
xsx 2 years ago
parent
commit
75c9a0744f
  1. 2
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  2. 2
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java
  3. 15
      im-uniapp/App.vue
  4. 2
      im-uniapp/pages.json
  5. 2
      im-uniapp/pages/group/group-member.vue
  6. 46
      im-uniapp/pages/login/login.vue
  7. 142
      im-uniapp/pages/register/register.vue

2
im-platform/src/main/java/com/bx/implatform/controller/LoginController.java

@ -22,7 +22,7 @@ public class LoginController {
@PostMapping("/login")
@Operation(summary = "用户登陆", description = "用户登陆")
public Result login(@Valid @RequestBody LoginDTO dto) {
public Result<LoginVO> login(@Valid @RequestBody LoginDTO dto) {
LoginVO vo = userService.login(dto);
return ResultUtils.success(vo);
}

2
im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

@ -108,7 +108,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public void register(RegisterDTO dto) {
User user = this.findUserByUserName(dto.getUserName());
if (null != user) {
if (Objects.isNull(user)) {
throw new GlobalException(ResultCode.USERNAME_ALREADY_REGISTER);
}
user = BeanUtils.copyProperties(dto, User.class);

15
im-uniapp/App.vue

@ -353,10 +353,16 @@
<style lang="scss">
@import "@/uni_modules/uview-plus/index.scss";
@import url('./static/icon/iconfont.css');
// #ifdef H5
uni-page-head {
display: none; // h5
}
// #endif
.tab-page {
// #ifdef H5
height: calc(100vh - 46px - 50px); // h5100vh
height: calc(100vh - 50px); // h5100vh
// #endif
// #ifndef H5
height: calc(100vh);
@ -365,12 +371,7 @@
}
.page {
// #ifdef H5
height: calc(100vh - 45px); // h5100vh
// #endif
// #ifndef H5
height: calc(100vh);
// #endif
background-color: #f8f8f8;
}
</style>

2
im-uniapp/pages.json

@ -10,6 +10,8 @@
"pages": [{
"path": "pages/login/login"
}, {
"path" : "pages/register/register"
},{
"path": "pages/chat/chat"
}, {
"path": "pages/friend/friend"

2
im-uniapp/pages/group/group-member.vue

@ -15,7 +15,7 @@
<view class="member-name">{{ member.aliasName}}</view>
<view class="member-kick">
<button type="warn" v-show="isOwner && !isSelf(member.userId)" size="mini"
<button type="warn" plain v-show="isOwner && !isSelf(member.userId)" size="mini"
@click.stop="onKickOut(member,idx)">移出群聊</button>
</view>
</view>

46
im-uniapp/pages/login/login.vue

@ -1,15 +1,19 @@
<template>
<view class="login-form">
<view class="login-title">欢迎登录</view>
<uni-forms style="margin-top: 100px;" :modelValue="loginForm" :rules="rules" validate-trigger="bind">
<view class="page login">
<view class="title">欢迎登录</view>
<uni-forms class="form" :modelValue="loginForm" :rules="rules" validate-trigger="bind">
<uni-forms-item name="userName">
<uni-easyinput type="text" v-model="loginForm.userName" prefix-icon="person" placeholder="用户名" />
<uni-easyinput type="text" v-model="loginForm.userName" prefix-icon="person" placeholder="用户名" />
</uni-forms-item>
<uni-forms-item name="password">
<uni-easyinput type="password" v-model="loginForm.password" prefix-icon="locked" placeholder="密码" />
</uni-forms-item>
<button @click="submit" type="primary">登录</button>
<button class="btn-submit" @click="submit" type="primary">登录</button>
</uni-forms>
<navigator class="nav-register" url="/pages/register/register" render-link="true"
hover-class="other-navigator-hover">
没有账号,前往注册
</navigator>
</view>
</template>
@ -49,7 +53,7 @@
console.log("登录成功,自动跳转到聊天页面...")
uni.setStorageSync("userName", this.loginForm.userName);
uni.setStorageSync("password", this.loginForm.password);
loginInfo.expireTime = new Date().getTime() + loginInfo.refreshTokenExpiresIn*1000;
loginInfo.expireTime = new Date().getTime() + loginInfo.refreshTokenExpiresIn * 1000;
uni.setStorageSync("loginInfo", loginInfo);
// App.vue
getApp().init()
@ -60,7 +64,7 @@
})
}
},
onLoad() {
this.loginForm.userName = uni.getStorageSync("userName");
this.loginForm.password = uni.getStorageSync("password");
@ -69,16 +73,34 @@
</script>
<style lang="scss" scoped>
.login-form {
margin: 50rpx;
.login {
.login-title {
margin-top: 100rpx;
margin-bottom: 100rpx;
.title {
padding-top: 150rpx;
padding-bottom: 100rpx;
color: royalblue;
text-align: center;
font-size: 60rpx;
font-weight: 600;
}
.form {
padding: 50rpx;
.btn-submit {
margin-top: 80rpx;
border-radius: 50rpx;
}
}
.nav-register {
position: fixed;
width: 100%;
bottom: 100rpx;
color: royalblue;
text-align: center;
font-size: 32rpx;
}
}
</style>

142
im-uniapp/pages/register/register.vue

@ -0,0 +1,142 @@
<template>
<view class="register">
<view class="title">用户注册</view>
<uni-forms class="form" :modelValue="dataForm" :rules="rules" validate-trigger="bind" label-width="80px">
<uni-forms-item name="userName" label="用户名">
<uni-easyinput type="text" v-model="dataForm.userName" placeholder="用户名" />
</uni-forms-item>
<uni-forms-item name="nickName" label="昵称">
<uni-easyinput type="text" v-model="dataForm.nickName" placeholder="昵称" />
</uni-forms-item>
<uni-forms-item name="password" label="密码">
<uni-easyinput type="password" v-model="dataForm.password" placeholder="密码" />
</uni-forms-item>
<uni-forms-item name="corfirmPassword" label="确认密码">
<uni-easyinput type="password" v-model="dataForm.corfirmPassword" placeholder="确认密码" />
</uni-forms-item>
<button class="btn-submit" @click="submit" type="warn">注册并登陆</button>
</uni-forms>
<navigator class="nav-login" url="/pages/login/login" render-link="true" hover-class="other-navigator-hover">
返回登陆页面
</navigator>
</view>
</template>
<script>
export default {
data() {
return {
dataForm: {
userName: '',
nickName: '',
password: '',
corfirmPassword: ''
},
rules: {
userName: {
rules: [{
required: true,
errorMessage: '请输入用户名',
}]
},
nickName: {
rules: [{
required: true,
errorMessage: '请输入昵称',
}]
},
password: {
rules: [{
required: true,
errorMessage: '请输入密码',
}]
},
corfirmPassword: {
rules: [{
required: true,
errorMessage: '请输入确认密码',
}, {
validateFunction: (rule, value, data, callback) => {
console.log("validateFunction")
if (data.password != value) {
callback('两次密码输入不一致')
}
return true;
}
}]
}
}
}
},
methods: {
submit() {
this.$http({
url: '/register',
data: this.dataForm,
method: 'POST'
}).then(() => {
uni.showToast({
title: "注册成功",
icon: 'none'
})
this.login();
})
},
login() {
const loginForm = {
terminal: this.$enums.TERMINAL_TYPE.APP,
userName: this.dataForm.userName,
password: this.dataForm.password
}
this.$http({
url: '/login',
data: loginForm,
method: 'POST'
}).then((loginInfo) => {
console.log("登录成功,自动跳转到聊天页面...")
uni.setStorageSync("userName", loginForm.userName);
uni.setStorageSync("password", loginForm.password);
loginInfo.expireTime = new Date().getTime() + loginInfo.refreshTokenExpiresIn * 1000;
uni.setStorageSync("loginInfo", loginInfo);
// App.vue
getApp().init()
//
uni.switchTab({
url: "/pages/chat/chat"
})
})
}
}
}
</script>
<style lang="scss" scoped>
.register {
.title {
padding-top: 150rpx;
padding-bottom: 100rpx;
color: royalblue;
text-align: center;
font-size: 60rpx;
font-weight: 600;
}
.form {
padding: 50rpx;
.btn-submit {
margin-top: 80rpx;
border-radius: 50rpx;
}
}
.nav-login {
position: fixed;
width: 100%;
bottom: 100rpx;
color: royalblue;
text-align: center;
font-size: 32rpx;
}
}
</style>
Loading…
Cancel
Save