头像上传功能、性别选择

This commit is contained in:
橙子
2022-10-13 23:55:21 +08:00
parent 3555b08fe8
commit 8456320884
119 changed files with 51 additions and 31 deletions

View File

@@ -36,7 +36,7 @@ const useUserStore = defineStore(
getInfo().then(response => {
const res=response.data;
const user = res.user
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
const avatar = (user.icon == "" || user.icon == null) ? defAva : import.meta.env.VITE_APP_BASE_API + "/file/"+user.icon;
if (res.roleCodes && res.roleCodes.length > 0) { // 验证返回的roles是否是一个非空数组
this.roles = res.roleCodes

View File

@@ -44,7 +44,7 @@
<el-button icon="RefreshRight" @click="rotateRight()"></el-button>
</el-col>
<el-col :lg="{span: 2, offset: 6}" :md="2">
<el-button type="primary" @click="uploadImg()"> </el-button>
<el-button type="primary" @click="uploadImg()">上传</el-button>
</el-col>
</el-row>
</el-dialog>
@@ -53,7 +53,8 @@
<script setup>
import "vue-cropper/dist/index.css";
import { VueCropper } from "vue-cropper";
import { uploadAvatar } from "@/api/system/user";
import { upload } from "@/api/file";
import { updateUserProfile } from "@/api/system/user";
import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
@@ -107,19 +108,32 @@ function beforeUpload(file) {
reader.onload = () => {
options.img = reader.result;
};
}
};
/** 上传图片 */
function uploadImg() {
proxy.$refs.cropper.getCropBlob(data => {
let formData = new FormData();
formData.append("avatarfile", data);
uploadAvatar(formData).then(response => {
formData.append("file", data);
upload("image",formData).then(response => {
open.value = false;
options.img = import.meta.env.VITE_APP_BASE_API + response.imgUrl;
options.img = import.meta.env.VITE_APP_BASE_API +"/file/"+response.data[0];
userStore.avatar = options.img;
proxy.$modal.msgSuccess("修改成功");
updateUserProfile({icon:response.data[0]}).then(response2=>{
proxy.$modal.msgSuccess("修改成功");
visible.value = false;
})
});
});
};

View File

@@ -11,8 +11,8 @@
</el-form-item>
<el-form-item label="性别">
<el-radio-group v-model="user.sex">
<el-radio label="0"></el-radio>
<el-radio label="1"></el-radio>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>