File tree Expand file tree Collapse file tree 2 files changed +40
-9
lines changed
views/system/user/profile Expand file tree Collapse file tree 2 files changed +40
-9
lines changed Original file line number Diff line number Diff line change 11import request from '@/utils/request'
22
3+ /**
4+ * 上传文件
5+ * @param {File } file 文件对象 (必填)
6+ * @param {string } directory 文件目录,例如:'user/avatar' 或 'document/temp' (可选)
7+ * @returns {Promise } 返回上传结果
8+ */
9+ export function uploadFile ( file , directory ) {
10+ const formData = new FormData ( )
11+ formData . append ( 'file' , file )
12+ if ( directory ) {
13+ formData . append ( 'directory' , directory )
14+ }
15+
16+ return request ( {
17+ url : '/infra/file/upload' ,
18+ method : 'post' ,
19+ data : formData ,
20+ headers : {
21+ 'Content-Type' : 'multipart/form-data'
22+ }
23+ } )
24+ }
25+
326// 删除文件
427export function deleteFile ( id ) {
528 return request ( {
Original file line number Diff line number Diff line change 5555<script >
5656import store from " @/store" ;
5757import { VueCropper } from " vue-cropper" ;
58- import { uploadAvatar } from " @/api/system/user" ;
58+ import { updateUserProfile } from " @/api/system/user" ;
59+ import { uploadFile } from " @/api/infra/file" ;
5960
6061export default {
6162 components: { VueCropper },
@@ -120,18 +121,25 @@ export default {
120121 }
121122 },
122123 // 上传图片
123- uploadImg () {
124- this .$refs .cropper .getCropBlob (data => {
125- let formData = new FormData ();
126- formData .append (" avatarFile" , data);
127- uploadAvatar (formData).then (resp => {
124+ async uploadImg () {
125+ try {
126+ this .$refs .cropper .getCropBlob (async (data ) => {
127+ // 先上传文件
128+ const response = await uploadFile (data, ' user/avatar' );
129+ const avatar = response .data ;
130+
131+ // 然后更新用户信息
132+ await updateUserProfile ({ avatar });
133+
128134 this .open = false ;
129- // this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
130- store .commit (' SET_AVATAR' , resp .data );
135+ store .commit (' SET_AVATAR' , avatar);
131136 this .$modal .msgSuccess (" 修改成功" );
132137 this .visible = false ;
133138 });
134- });
139+ } catch (error) {
140+ console .error (' 头像上传失败:' , error);
141+ this .$modal .msgError (" 头像上传失败,请重试" );
142+ }
135143 },
136144 // 实时预览
137145 realTime (data ) {
You can’t perform that action at this time.
0 commit comments