From 93de208ac098cb65b34092f7ddd0935575c6b999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= Date: Thu, 23 Feb 2023 14:37:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=89=8D=E7=AB=AF=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=A4=B4=E5=83=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Identity/Dtos/Account/UpdateIconDto.cs | 13 +++++++++++++ .../ApplicationSwaggerDoc.xml | 7 +++++++ .../Identity/AccountService.cs | 15 +++++++++++++++ .../wwwroot/File/1628642335514562560 | Bin 0 -> 21934 bytes .../wwwroot/File/1628645021437792256 | Bin 0 -> 17030 bytes .../rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db | Bin 143360 -> 143360 bytes Yi.RuoYi.Vue3/src/api/file.js | 4 ++-- Yi.RuoYi.Vue3/src/api/system/user.js | 9 +++++++++ .../views/system/user/profile/userAvatar.vue | 11 ++++------- 9 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs create mode 100644 Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 create mode 100644 Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628645021437792256 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs new file mode 100644 index 00000000..c0e0e2a3 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs @@ -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; } + } +} diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml index 38916e3c..8ef4cb44 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml @@ -73,6 +73,13 @@ + + + 更新头像 + + + + Dept服务实现 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs index 399b23e5..8d08f302 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs @@ -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; } + + /// + /// 更新头像 + /// + /// + /// + public async Task UpdateIconAsync(UpdateIconDto input) + { + var entity = await _userRepository.GetByIdAsync(_currentUser.Id); + entity.Icon = input.Icon; + await _userRepository.UpdateAsync(entity); + + return true; + } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 new file mode 100644 index 0000000000000000000000000000000000000000..2d3f458dbae4fb829a59dfc0c49f70b099bd21d0 GIT binary patch literal 21934 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ⅈzr;gb*ns&gEL6RmP|h(h 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 WwxtcMUMwO>OEB*k_vu=+fB)Hf=3qVm literal 0 HcmV?d00001 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db index 578acc3bc08ef488c706cbfe11c49f571fea4f1c..7071674fe5260a1c78dcdac597c0a048f97b8e7f 100644 GIT binary patch delta 1060 zcmZp8z|ru4V}dke{X`jO#`=v3%k(*t8TgI)4s$1O<}(Q4R^@GsW0qv&U|YW8%=@@Fe& zK3zM(#MH#t(Ad<#z@e~EFF8M#fqC1Sx4$=Q+T37NX|zYO0B9@-V6#9NVu6vdv8kz{ ziK!XTe1plFHqy<9?Y1AbV|1J-!ol0dz<-^89e)ttH@;bXcD#>x+cpO(*v~)xfIbr&J4l591IP4b z?-}EGSU6=E_)K|nxGr(Z0FC3})NVFr;bSvo6c&_M)MsebGzOX}{pv)M0K>D{Tb@nZ z@MOoTC%bk%*}w2vJOu;TXM3Jj*@3`ex8z*5*EJ#CH*p!vw@QEUGXoXjB+e_r8zm%=lo^VQ8d&wHViSev@$fXGBDCJG&D0dwX^^lMS{E>?De<8tu|5R37Vb5$(|P|hDnUF!mUp)2{$ZTXyqRUe zIet-SRI%_dvoXSa#XS8vKa;EwJFgrA|1^FbzC(NwykB@bdF6od&B0rr$qJ_Zt{DEY(C(!fC1zz~QO41m!ALYZvHR!L5F0;Z~PoOYRJ!4qXsCegWdmgf2LP$VG_wEz delta 283 zcmZp8z|ru4V}dke`9v9K#`28`%k(*t82F9(4s$1M<}(Q4R%?uBmSp1)=9xnl{qShwZi>wqtahD8$bDh=Kn)|2qC4zHfZ9`0RKe zZ4Oj8!@K>_T}CCQ%`6X=^G{#>o-vYxi6@7F&y*(zD4W2uJ?9VO4Cd`D2N+-QPk+PD pB*DkZ`-Opj8ov(TA-)LSFF-|)c(;F%WfA}y;c$?D`cZu*YXC-eUN8Uv diff --git a/Yi.RuoYi.Vue3/src/api/file.js b/Yi.RuoYi.Vue3/src/api/file.js index 2dc681e9..d80d58e6 100644 --- a/Yi.RuoYi.Vue3/src/api/file.js +++ b/Yi.RuoYi.Vue3/src/api/file.js @@ -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 diff --git a/Yi.RuoYi.Vue3/src/api/system/user.js b/Yi.RuoYi.Vue3/src/api/system/user.js index d930f452..8302e52b 100644 --- a/Yi.RuoYi.Vue3/src/api/system/user.js +++ b/Yi.RuoYi.Vue3/src/api/system/user.js @@ -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) { diff --git a/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue b/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue index 7f1c4834..71b1a787 100644 --- a/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue +++ b/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue @@ -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; })