person.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <div>
  3. <div class="fl-left left-mg-xs">
  4. <el-upload
  5. :headers="{'x-token':token}"
  6. :on-success="handleAvatarSuccess"
  7. :show-file-list="false"
  8. action="api/user/uploadHeaderImg"
  9. class="avatar-uploader"
  10. name="headerImg"
  11. >
  12. <img :src="userInfo.headerImg" class="avatar" v-if="userInfo.headerImg" />
  13. <i class="el-icon-plus avatar-uploader-icon" v-else></i>
  14. </el-upload>
  15. <!-- <el-avatar :size="120" :src="userInfo.headerImg" shape="square"></el-avatar> -->
  16. </div>
  17. <div class="fl-left left-mg-lg">
  18. <div>用户ID:{{userInfo.uuid}}</div>
  19. <div>用户昵称:{{userInfo.nickName}}</div>
  20. <div>用户组:{{userInfo.authority&&userInfo.authority.authorityName}}</div>
  21. </div>
  22. </div>
  23. </template>
  24. <script>
  25. import { mapGetters, mapMutations } from 'vuex'
  26. export default {
  27. name: 'Person',
  28. computed: {
  29. ...mapGetters('user', ['userInfo', 'token'])
  30. },
  31. methods:{
  32. ...mapMutations('user',['ResetUserInfo']),
  33. handleAvatarSuccess(res){
  34. this.ResetUserInfo({headerImg:res.data.user.headerImg})
  35. }
  36. }
  37. }
  38. </script>
  39. <style lang="scss">
  40. .avatar-uploader .el-upload {
  41. border: 1px dashed #d9d9d9;
  42. border-radius: 6px;
  43. cursor: pointer;
  44. position: relative;
  45. overflow: hidden;
  46. }
  47. .avatar-uploader .el-upload:hover {
  48. border-color: #409eff;
  49. }
  50. .avatar-uploader-icon {
  51. font-size: 28px;
  52. color: #8c939d;
  53. width: 178px;
  54. height: 178px;
  55. line-height: 178px;
  56. text-align: center;
  57. }
  58. .avatar {
  59. width: 178px;
  60. height: 178px;
  61. display: block;
  62. }
  63. </style>