Skip to content

Commit 229cb08

Browse files
committed
feat:接入新的头像上传接口
1 parent 9ec6587 commit 229cb08

File tree

2 files changed

+40
-9
lines changed

2 files changed

+40
-9
lines changed

src/api/infra/file.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
import 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
// 删除文件
427
export function deleteFile(id) {
528
return request({

src/views/system/user/profile/userAvatar.vue

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
<script>
5656
import store from "@/store";
5757
import { 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
6061
export 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) {

0 commit comments

Comments
 (0)