feat: 前端添加完善头像功能

This commit is contained in:
陈淳
2023-02-23 14:37:33 +08:00
parent 272466bbbf
commit 93de208ac0
9 changed files with 50 additions and 9 deletions

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.RBAC.Application.Contracts.Identity.Dtos.Account
{
public class UpdateIconDto
{
public string? Icon { get; set; }
}
}

View File

@@ -73,6 +73,13 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Yi.RBAC.Application.Identity.AccountService.UpdateIconAsync(Yi.RBAC.Application.Contracts.Identity.Dtos.Account.UpdateIconDto)">
<summary>
更新头像
</summary>
<param name="icon"></param>
<returns></returns>
</member>
<member name="T:Yi.RBAC.Application.Identity.DeptService">
<summary>
Dept服务实现

View File

@@ -28,6 +28,7 @@ using Yi.RBAC.Domain.Identity.Repositories;
using Yi.RBAC.Domain.Shared.Identity.ConstClasses;
using Yi.RBAC.Domain.Shared.Identity.Dtos;
using Yi.RBAC.Domain.Shared.Identity.Etos;
using System.Net.WebSockets;
namespace Yi.RBAC.Application.Identity
{
@@ -188,5 +189,19 @@ namespace Yi.RBAC.Application.Identity
await _accountManager.RestPasswordAsync(userId, input.Password);
return true;
}
/// <summary>
/// 更新头像
/// </summary>
/// <param name="icon"></param>
/// <returns></returns>
public async Task<bool> UpdateIconAsync(UpdateIconDto input)
{
var entity = await _userRepository.GetByIdAsync(_currentUser.Id);
entity.Icon = input.Icon;
await _userRepository.UpdateAsync(entity);
return true;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1,9 +1,9 @@
import request from '@/utils/request'
export function
upload(type,data){
upload(data){
return request({
url: `/file/upload/${type}`,
url: `/file`,
headers:{"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"},
method: 'POST',
data:data

View File

@@ -82,6 +82,15 @@ export function updateUserProfile(data) {
data: data
})
}
// 只修改用户头像
export function updateUserIcon(data) {
return request({
url: `/account/icon`,
method: 'put',
data:{icon:data}
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {

View File

@@ -54,7 +54,7 @@
import "vue-cropper/dist/index.css";
import { VueCropper } from "vue-cropper";
import { upload } from "@/api/file";
import { updateUserProfile } from "@/api/system/user";
import { updateUserIcon } from "@/api/system/user";
import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
@@ -116,14 +116,11 @@ function uploadImg() {
proxy.$refs.cropper.getCropBlob(data => {
let formData = new FormData();
formData.append("file", data);
upload("image",formData).then(response => {
upload(formData).then(response => {
open.value = false;
options.img = import.meta.env.VITE_APP_BASE_API +"/file/"+response.data[0];
options.img = import.meta.env.VITE_APP_BASE_API +"/file/"+response.data[0].id;
userStore.avatar = options.img;
updateUserProfile({icon:response.data[0]}).then(response2=>{
updateUserIcon(response.data[0].id).then(response2=>{
proxy.$modal.msgSuccess("修改成功");
visible.value = false;
})