feat: 支持注册带入昵称
This commit is contained in:
@@ -8,12 +8,12 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 账号
|
/// 账号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string UserName { get; set; } = string.Empty;
|
public string UserName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 密码
|
/// 密码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Password { get; set; } = string.Empty;
|
public string Password { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 唯一标识码
|
/// 唯一标识码
|
||||||
@@ -29,5 +29,11 @@
|
|||||||
/// 验证码
|
/// 验证码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Code { get; set; }
|
public string? Code { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 昵称
|
||||||
|
/// </summary>
|
||||||
|
public string? Nick{ get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ namespace Yi.Framework.Rbac.Application.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
//注册领域逻辑
|
//注册领域逻辑
|
||||||
await _accountManager.RegisterAsync(input.UserName, input.Password, input.Phone);
|
await _accountManager.RegisterAsync(input.UserName, input.Password, input.Phone,input.Nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ namespace Yi.Framework.Rbac.Domain.Entities
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
public UserAggregateRoot(string userName, string password, long phone, string nick = "萌新")
|
public UserAggregateRoot(string userName, string password, long phone, string? nick = null)
|
||||||
{
|
{
|
||||||
UserName = userName;
|
UserName = userName;
|
||||||
EncryPassword.Password = password;
|
EncryPassword.Password = password;
|
||||||
Phone = phone;
|
Phone = phone;
|
||||||
Nick = nick+"-"+userName;
|
Nick =string.IsNullOrWhiteSpace(nick)?"萌新-"+userName:nick.Trim();
|
||||||
BuildPassword();
|
BuildPassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -271,9 +271,9 @@ namespace Yi.Framework.Rbac.Domain.Managers
|
|||||||
/// <param name="password"></param>
|
/// <param name="password"></param>
|
||||||
/// <param name="phone"></param>
|
/// <param name="phone"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task RegisterAsync(string userName, string password, long phone)
|
public async Task RegisterAsync(string userName, string password, long phone,string? nick)
|
||||||
{
|
{
|
||||||
var user = new UserAggregateRoot(userName, password, phone);
|
var user = new UserAggregateRoot(userName, password, phone,nick);
|
||||||
await _userManager.CreateAsync(user);
|
await _userManager.CreateAsync(user);
|
||||||
await _userManager.SetDefautRoleAsync(user.Id);
|
await _userManager.SetDefautRoleAsync(user.Id);
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace Yi.Framework.Rbac.Domain.Managers
|
|||||||
string CreateRefreshToken(Guid userId);
|
string CreateRefreshToken(Guid userId);
|
||||||
Task<string> GetTokenByUserIdAsync(Guid userId,Action<UserRoleMenuDto>? getUserInfo=null);
|
Task<string> GetTokenByUserIdAsync(Guid userId,Action<UserRoleMenuDto>? getUserInfo=null);
|
||||||
Task LoginValidationAsync(string userName, string password, Action<UserAggregateRoot>? userAction = null);
|
Task LoginValidationAsync(string userName, string password, Action<UserAggregateRoot>? userAction = null);
|
||||||
Task RegisterAsync(string userName, string password, long phone);
|
Task RegisterAsync(string userName, string password, long phone,string? nick);
|
||||||
Task<bool> RestPasswordAsync(Guid userId, string password);
|
Task<bool> RestPasswordAsync(Guid userId, string password);
|
||||||
Task UpdatePasswordAsync(Guid userId, string newPassword, string oldPassword);
|
Task UpdatePasswordAsync(Guid userId, string newPassword, string oldPassword);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,8 +142,8 @@ align-items: flex-end;
|
|||||||
{
|
{
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
border: 0.8px solid #000;
|
border: 0.8px solid #000;
|
||||||
width: 100px;
|
width: 150px;
|
||||||
height: 30px;
|
height: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.div-bottom
|
.div-bottom
|
||||||
|
|||||||
BIN
Yi.Bbs.Vue3/src/assets/wechat/share.png
Normal file
BIN
Yi.Bbs.Vue3/src/assets/wechat/share.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
@@ -154,7 +154,12 @@ const noticeForNoReadCount = computed(() => {
|
|||||||
})
|
})
|
||||||
//加载初始化离线消息
|
//加载初始化离线消息
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchNoticeData();
|
//登录了才去判断消息通知
|
||||||
|
if (isLogin.value)
|
||||||
|
{
|
||||||
|
await fetchNoticeData();
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
const fetchNoticeData = async () => {
|
const fetchNoticeData = async () => {
|
||||||
const { data } = await getNoticeList({ maxResultCount: 20 });
|
const { data } = await getNoticeList({ maxResultCount: 20 });
|
||||||
|
|||||||
@@ -37,10 +37,13 @@ watch(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
//state 0 代表使用第三方登录
|
||||||
if (type.value === "0") {
|
if (type.value === "0") {
|
||||||
const { data } = await authOtherLogin({ code: val }, scheme.value);
|
const { data } = await authOtherLogin({ code: val }, scheme.value);
|
||||||
authData.value = data;
|
authData.value = data;
|
||||||
} else if (type.value === "1") {
|
}
|
||||||
|
//state 0 代表进行第三方绑定
|
||||||
|
else if (type.value === "1") {
|
||||||
const { data } = await authOtherBind({ code: val }, scheme.value);
|
const { data } = await authOtherBind({ code: val }, scheme.value);
|
||||||
authData.value = data;
|
authData.value = data;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@
|
|||||||
<el-form-item label="封面:" v-if="radio == 'discuss'">
|
<el-form-item label="封面:" v-if="radio == 'discuss'">
|
||||||
|
|
||||||
<el-image
|
<el-image
|
||||||
|
v-if="dialogImageUrl"
|
||||||
:src="getUrl"
|
:src="getUrl"
|
||||||
style="width: 178px; height: 178px"
|
style="width: 178px; height: 178px"
|
||||||
class="avatar"
|
class="avatar"
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<template>
|
<template>
|
||||||
404
|
404
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
<el-row :gutter="20" class="top-div">
|
<el-row :gutter="20" class="top-div">
|
||||||
<el-col :span="17">
|
<el-col :span="17">
|
||||||
<div class="chat-hub">
|
<div class="chat-hub">
|
||||||
<p @click="onClickToChatHub">点击前往-最新上线<span>《聊天室》 </span>,现已支持<span>Ai助手</span>,希望能帮助大家
|
<!-- <p @click="onClickToChatHub">点击前往-最新上线<span>《聊天室》 </span>,现已支持<span>Ai助手</span>,希望能帮助大家</p>-->
|
||||||
</p>
|
<p @click="onClickToWeChat">点击关注-最新上线<span>《意.Net官方微信公众号》 </span>,分享有<span>深度</span>的.Net知识,希望能帮助大家</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="scrollbar">
|
<div class="scrollbar">
|
||||||
<ScrollbarInfo/>
|
<ScrollbarInfo/>
|
||||||
@@ -188,6 +188,25 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
v-model="wechatDialogVisible"
|
||||||
|
title="意社区官方微信公众号"
|
||||||
|
width="800"
|
||||||
|
>
|
||||||
|
<div style="display: flex;justify-content: center;">
|
||||||
|
<img style="width: 585px; height: 186px" src="@/assets/wechat/share.png" alt=""/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="wechatDialogVisible = false">
|
||||||
|
已关注
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -402,6 +421,7 @@ const onClickAccessLog = async () => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wechatDialogVisible=ref(false)
|
||||||
//切换统计开关
|
//切换统计开关
|
||||||
const onClickWeekSwitch = async () => {
|
const onClickWeekSwitch = async () => {
|
||||||
if (weekQuery.accessLogType === "HomeClick") {
|
if (weekQuery.accessLogType === "HomeClick") {
|
||||||
@@ -413,6 +433,11 @@ const onClickWeekSwitch = async () => {
|
|||||||
const {data: weekData} = await getWeek(weekQuery);
|
const {data: weekData} = await getWeek(weekQuery);
|
||||||
weekList.value = weekData;
|
weekList.value = weekData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//打开微信公众号弹窗
|
||||||
|
const onClickToWeChat=()=>{
|
||||||
|
wechatDialogVisible.value=true;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.home-box {
|
.home-box {
|
||||||
|
|||||||
@@ -73,15 +73,25 @@
|
|||||||
:rules="registerRules"
|
:rules="registerRules"
|
||||||
>
|
>
|
||||||
<div class="input-content">
|
<div class="input-content">
|
||||||
<div class="input">
|
|
||||||
<p>用户名</p>
|
<div style="display: flex;justify-content: space-between;margin: 0">
|
||||||
|
<div class="input" style="width: 55%;margin: 0">
|
||||||
|
<p>*登录账号</p>
|
||||||
<el-form-item prop="userName">
|
<el-form-item prop="userName">
|
||||||
<input type="text" v-model.trim="registerForm.userName">
|
<input type="text" v-model.trim="registerForm.userName">
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input">
|
<div class="input" style="width: 35%;margin: 0">
|
||||||
<p>电话</p>
|
<p>昵称</p>
|
||||||
|
<el-form-item prop="userName">
|
||||||
|
<input type="text" v-model.trim="registerForm.nick">
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input" style="margin-top: 0">
|
||||||
|
<p>*电话</p>
|
||||||
<el-form-item prop="phone">
|
<el-form-item prop="phone">
|
||||||
<div class="phone-code">
|
<div class="phone-code">
|
||||||
<input class="phone-code-input" type="text" v-model.trim="registerForm.phone">
|
<input class="phone-code-input" type="text" v-model.trim="registerForm.phone">
|
||||||
@@ -90,19 +100,19 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<p>短信验证码</p>
|
<p>*短信验证码</p>
|
||||||
<el-form-item prop="code" >
|
<el-form-item prop="code" >
|
||||||
<input :disabled="!isDisabledCode" type="text" v-model.trim="registerForm.code">
|
<input :disabled="!isDisabledCode" type="text" v-model.trim="registerForm.code">
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<p>密码</p>
|
<p>*密码</p>
|
||||||
<el-form-item prop="password">
|
<el-form-item prop="password">
|
||||||
<input :disabled="!isDisabledCode" type="password" v-model.trim="registerForm.password">
|
<input :disabled="!isDisabledCode" type="password" v-model.trim="registerForm.password">
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<p>确认密码</p>
|
<p>*确认密码</p>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<input :disabled="!isDisabledCode" type="password" v-model.trim="passwordConfirm">
|
<input :disabled="!isDisabledCode" type="password" v-model.trim="passwordConfirm">
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -186,8 +196,12 @@ const registerForm = reactive({
|
|||||||
password: "",
|
password: "",
|
||||||
uuid: "",
|
uuid: "",
|
||||||
code: "",
|
code: "",
|
||||||
|
nick:""
|
||||||
});
|
});
|
||||||
const registerRules = reactive({
|
const registerRules = reactive({
|
||||||
|
nick: [
|
||||||
|
{ min: 2, message: "昵称需大于两位", trigger: "blur" },
|
||||||
|
],
|
||||||
userName: [
|
userName: [
|
||||||
{ required: true, message: "请输入用户名", trigger: "blur" },
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
||||||
{ min: 2, message: "用户名需大于两位", trigger: "blur" },
|
{ min: 2, message: "用户名需大于两位", trigger: "blur" },
|
||||||
@@ -297,7 +311,6 @@ window.addEventListener("message", async (e) => {
|
|||||||
console.log(authData, "传到登录页的值");
|
console.log(authData, "传到登录页的值");
|
||||||
if (authData) {
|
if (authData) {
|
||||||
await loginSuccess({ data: JSON.parse(authData) });
|
await loginSuccess({ data: JSON.parse(authData) });
|
||||||
window.close();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user