Browse Source

个人中心/头像样式

master
xuhuajiao 3 years ago
parent
commit
1ef6cc508a
  1. 6
      README.md
  2. 1
      src/assets/styles/index.scss
  3. 8
      src/assets/styles/yxk-admin.scss
  4. 35
      src/layout/components/Navbar.vue
  5. 10
      src/views/system/user/center.vue

6
README.md

@ -31,6 +31,7 @@
│ ├── utils # 全局公用方法 │ ├── utils # 全局公用方法
│ ├── views # views 所有页面 │ ├── views # views 所有页面
│ │ ├── archivesConfig # 档案配置 │ │ ├── archivesConfig # 档案配置
│ │ ├── category # 门类管理
│ │ ├── components # views内页面组件 │ │ ├── components # views内页面组件
│ │ ├── dashboard # 首页面板内容 │ │ ├── dashboard # 首页面板内容
│ │ ├── features # 错误页面 │ │ ├── features # 错误页面
@ -70,4 +71,9 @@ npm run build:stage
# 构建生产环境 # 构建生产环境
npm run build:prod npm run build:prod
#打包注意
router.js - mode改为'hash'
vue.config.js - publicPath: './'
.env.production - 地址改为真实的生产服务器地址
``` ```

1
src/assets/styles/index.scss

@ -129,6 +129,7 @@ ul{
} }
} }
//main-container全局样式 //main-container全局样式
.app-wrapper{ .app-wrapper{
background-color: $menuBg; background-color: $menuBg;

8
src/assets/styles/yxk-admin.scss

@ -726,4 +726,12 @@
background-size: contain; background-size: contain;
} }
} }
}
// 默认底图 - 暂时只有头像
.user-img-cover{
border-radius: 50%;
background: url(~@/assets/images/avatar.png) no-repeat #fff;
background-size: cover;
overflow: hidden;
} }

35
src/layout/components/Navbar.vue

@ -6,7 +6,7 @@
<logo v-if="showLogo" :collapse="isCollapse" /> <logo v-if="showLogo" :collapse="isCollapse" />
<div class="right-menu"> <div class="right-menu">
<template v-if="device!=='mobile'">
<!-- <template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" /> <search id="header-search" class="right-menu-item" />
<el-tooltip content="项目文档" effect="dark" placement="bottom"> <el-tooltip content="项目文档" effect="dark" placement="bottom">
@ -20,20 +20,21 @@
<el-tooltip content="布局设置" effect="dark" placement="bottom"> <el-tooltip content="布局设置" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" /> <size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip> </el-tooltip>
</template>
</template> -->
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click"> <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper"> <div class="avatar-wrapper">
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" class="user-avatar">
<div class="user-img-cover">
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" class="user-avatar" :onerror="defaultImg">
</div>
<i class="el-icon-caret-bottom" /> <i class="el-icon-caret-bottom" />
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<span style="display:block;" @click="show = true">
<!-- <span style="display:block;" @click="show = true">
<el-dropdown-item> <el-dropdown-item>
布局设置 布局设置
</el-dropdown-item> </el-dropdown-item>
</span>
</span> -->
<router-link to="/user/center"> <router-link to="/user/center">
<el-dropdown-item> <el-dropdown-item>
个人中心 个人中心
@ -55,25 +56,26 @@ import { mapGetters } from 'vuex'
import Logo from '@/layout/components/Sidebar/Logo' import Logo from '@/layout/components/Sidebar/Logo'
// import Breadcrumb from '@/components/Breadcrumb' // import Breadcrumb from '@/components/Breadcrumb'
// import Hamburger from '@/components/Hamburger' // import Hamburger from '@/components/Hamburger'
import Doc from '@/components/Doc'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
// import Doc from '@/components/Doc'
// import Screenfull from '@/components/Screenfull'
// import SizeSelect from '@/components/SizeSelect'
// import Search from '@/components/HeaderSearch'
import Avatar from '@/assets/images/avatar.png' import Avatar from '@/assets/images/avatar.png'
export default { export default {
components: { components: {
// Breadcrumb, // Breadcrumb,
// Hamburger, // Hamburger,
Screenfull,
SizeSelect,
Search,
Doc,
// Screenfull,
// SizeSelect,
// Search,
// Doc,
Logo Logo
}, },
data() { data() {
return { return {
Avatar: Avatar, Avatar: Avatar,
defaultImg: 'this.src="' + require('@/assets/images/avatar.png') + '"',
dialogVisible: false dialogVisible: false
} }
}, },
@ -187,7 +189,10 @@ export default {
.avatar-wrapper { .avatar-wrapper {
margin-top: 5px; margin-top: 5px;
position: relative; position: relative;
.user-img-cover{
width: 40px;
height: 40px;
}
.user-avatar { .user-avatar {
cursor: pointer; cursor: pointer;
width: 40px; width: 40px;

10
src/views/system/user/center.vue

@ -7,7 +7,9 @@
<div class="user-content"> <div class="user-content">
<h4 class="info-title">个人信息</h4> <h4 class="info-title">个人信息</h4>
<div class="el-upload"> <div class="el-upload">
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" title="点击上传头像" class="avatar" @click="toggleShow">
<div class="user-img-cover">
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" title="点击上传头像" class="avatar" :onerror="defaultImg" @click="toggleShow">
</div>
<myUpload <myUpload
v-model="show" v-model="show"
:headers="headers" :headers="headers"
@ -130,6 +132,7 @@ export default {
} }
} }
return { return {
defaultImg: 'this.src="' + require('@/assets/images/avatar.png') + '"',
show: false, show: false,
Avatar: Avatar, Avatar: Avatar,
activeIndex: 0, activeIndex: 0,
@ -222,6 +225,11 @@ export default {
border-radius: 50%; border-radius: 50%;
margin: 40px auto 60px auto; margin: 40px auto 60px auto;
overflow: hidden; overflow: hidden;
.user-img-cover{
width: 120px;
height: 120px;
line-height: 120px;
}
.avatar { .avatar {
width: 100%; width: 100%;
height: 100%; height: 100%;

Loading…
Cancel
Save