修复用户管理无法显示头像问题

(cherry picked commit from <gitee.com//lxy0722/django-vue3-admin/commit/4a01e55143967f0a01d3509804d3ba146724928a>
This commit is contained in:
lxy
2025-01-06 20:06:24 +08:00
committed by lxy
parent 21be91a894
commit 2d69633660
4 changed files with 21 additions and 8 deletions

View File

@@ -2,6 +2,7 @@ import { defineStore } from 'pinia';
import { UserInfosStates } from './interface'; import { UserInfosStates } from './interface';
import { Session } from '/@/utils/storage'; import { Session } from '/@/utils/storage';
import { request } from '../utils/service'; import { request } from '../utils/service';
import { getBaseURL } from '../utils/baseUrl';
/** /**
* 用户信息 * 用户信息
* @methods setUserInfos 设置用户信息 * @methods setUserInfos 设置用户信息
@@ -72,7 +73,7 @@ export const useUserInfo = defineStore('userInfo', {
method: 'get', method: 'get',
}).then((res:any)=>{ }).then((res:any)=>{
this.userInfos.username = res.data.name; this.userInfos.username = res.data.name;
this.userInfos.avatar = res.data.avatar; this.userInfos.avatar = getBaseURL(res.data.avatar);
this.userInfos.name = res.data.name; this.userInfos.name = res.data.name;
this.userInfos.email = res.data.email; this.userInfos.email = res.data.email;
this.userInfos.mobile = res.data.mobile; this.userInfos.mobile = res.data.mobile;

View File

@@ -32,7 +32,7 @@
<el-col :xs="24" :sm="24" class="personal-item mb6"> <el-col :xs="24" :sm="24" class="personal-item mb6">
<div class="personal-item-label">角色</div> <div class="personal-item-label">角色</div>
<div class="personal-item-value"> <div class="personal-item-value">
<el-tag v-for="(item, index) in state.personalForm.role_info" :key="index">{{ item.name }}</el-tag> <el-tag v-for="(item, index) in state.personalForm.role_info" :key="index" style="margin-right: 5px;">{{ item.name }}</el-tag>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>

View File

@@ -257,10 +257,10 @@ export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps)
}), }),
column: { column: {
minWidth: 200, //最小列宽 minWidth: 200, //最小列宽
formatter({value,row,index}){ // formatter({value,row,index}){
const values = row.role_info.map((item:any) => item.name); // const values = row.role_info.map((item:any) => item.name);
return values.join(',') // return values.join(',')
} // }
}, },
form: { form: {
rules: [ rules: [
@@ -382,12 +382,13 @@ export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps)
}, },
avatar: { avatar: {
title: '头像', title: '头像',
type: 'avatar-cropper', type: 'avatar-uploader',
align: 'center',
form: { form: {
show: false, show: false,
}, },
column: { column: {
minWidth: 400, //最小列宽 minWidth: 100, //最小列宽
}, },
}, },
...commonCrudConfig({ ...commonCrudConfig({

View File

@@ -33,6 +33,15 @@
<template #actionbar-right> <template #actionbar-right>
<importExcel api="api/system/user/" v-auth="'user:Import'">导入</importExcel> <importExcel api="api/system/user/" v-auth="'user:Import'">导入</importExcel>
</template> </template>
<template #cell_avatar="scope">
<div v-if="scope.row.avatar" style="display: flex; justify-content: center; align-items: center;">
<el-image
style="width: 50px; height: 50px; border-radius: 50%; aspect-ratio: 1 /1 ; "
:src="getBaseURL(scope.row.avatar)"
:preview-src-list="[getBaseURL(scope.row.avatar)]"
:preview-teleported="true" />
</div>
</template>
</fs-crud> </fs-crud>
</el-card> </el-card>
</el-col> </el-col>
@@ -50,6 +59,8 @@ import {ref, onMounted, watch, toRaw, h} from 'vue';
import XEUtils from 'xe-utils'; import XEUtils from 'xe-utils';
import {getElementLabelLine} from 'element-tree-line'; import {getElementLabelLine} from 'element-tree-line';
import importExcel from '/@/components/importExcel/index.vue' import importExcel from '/@/components/importExcel/index.vue'
import {getBaseURL} from '/@/utils/baseUrl';
const ElementTreeLine = getElementLabelLine(h); const ElementTreeLine = getElementLabelLine(h);