user.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div class="container">
  3. <el-avatar class="avatar" :size="40" :src="circleUrl" :icon="circleUrl == null ? 'el-icon-user-solid' : ''"></el-avatar>
  4. <el-dropdown @command="handleCommand">
  5. <span class="el-dropdown-link">
  6. {{ userName }}
  7. </span>
  8. <el-dropdown-menu slot="dropdown">
  9. <!-- <el-dropdown-item name="pwd">修改密码</el-dropdown-item> -->
  10. <!-- <el-dropdown-item>系统任务</el-dropdown-item>
  11. <el-dropdown-item>系统消息</el-dropdown-item> -->
  12. <el-dropdown-item command="clocs">退出系统</el-dropdown-item>
  13. </el-dropdown-menu>
  14. </el-dropdown>
  15. <dialog-drawer type="dialog" :visible="visible" title="修改密码" @close="visible = false">
  16. <template v-slot:content>
  17. <el-form ref="form" :rules="rules" :model="form" label-width="80px">
  18. <el-form-item label="原密码" prop="password">
  19. <el-input v-model="form.password"></el-input>
  20. </el-form-item>
  21. <el-form-item label="新密码" prop="newpassword">
  22. <el-input v-model="form.newpassword"></el-input>
  23. </el-form-item>
  24. <el-form-item>
  25. <el-button type="primary" @click="onSubmit">提交</el-button>
  26. </el-form-item>
  27. </el-form>
  28. </template>
  29. </dialog-drawer>
  30. </div>
  31. </template>
  32. <script>
  33. import dialogDrawer from '@naf/data/dialog -drawer'
  34. import { mapActions } from 'vuex'
  35. export default {
  36. components: {
  37. dialogDrawer
  38. },
  39. data () {
  40. return {
  41. menuitem: '',
  42. circleUrl: null,
  43. form: {},
  44. visible: false,
  45. rules: {
  46. password: [
  47. { required: true, message: '请输入原密码', trigger: 'blur' }
  48. ],
  49. newpassword: [
  50. { required: true, message: '请输入新密码', trigger: 'blur' }
  51. ]
  52. }
  53. }
  54. },
  55. computed: {
  56. userName () {
  57. const userName = sessionStorage.getItem('userName') || ''
  58. return userName
  59. }
  60. },
  61. methods: {
  62. ...mapActions(['editPwa']),
  63. handleCommand (command) {
  64. console.log(command)
  65. if (command === 'pwd') this.visible = true
  66. if (command === 'clocs') {
  67. localStorage.removeItem('itemId')
  68. this.$router.push('/login')
  69. }
  70. },
  71. async onSubmit () {
  72. const userName = sessionStorage.getItem('userName')
  73. const res = await this.editPwa({ ...this.form, userName })
  74. if (res.errcode === 0) {
  75. this.$message({
  76. message: '修改成功',
  77. type: 'success'
  78. })
  79. sessionStorage.clear()
  80. } else {
  81. this.$message.error(res.errmsg)
  82. }
  83. this.visible = false
  84. }
  85. },
  86. mounted () {}
  87. }
  88. </script>
  89. <style lang="less" scoped>
  90. .container {
  91. display: flex;
  92. .avatar {
  93. margin-top: 8%;
  94. margin-right: 5%;
  95. }
  96. .el-dropdown-link{
  97. color: #fff;
  98. line-height: 4em;
  99. }
  100. }
  101. </style>