user.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. {{ name }}
  7. </span>
  8. <el-dropdown-menu slot="dropdown">
  9. <el-dropdown-item>修改密码</el-dropdown-item>
  10. <!-- <el-dropdown-item>系统任务</el-dropdown-item>
  11. <el-dropdown-item>系统消息</el-dropdown-item>
  12. <el-dropdown-item>退出系统</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. circleUrl: null,
  42. form: {},
  43. visible: false,
  44. rules: {
  45. password: [
  46. { required: true, message: '请输入原密码', trigger: 'blur' }
  47. ],
  48. newpassword: [
  49. { required: true, message: '请输入新密码', trigger: 'blur' }
  50. ]
  51. }
  52. }
  53. },
  54. computed: {
  55. name () {
  56. const name = sessionStorage.getItem('name') || ''
  57. return name
  58. }
  59. },
  60. methods: {
  61. ...mapActions(['editPwa']),
  62. handleCommand () {
  63. this.visible = true
  64. },
  65. async onSubmit () {
  66. const userName = sessionStorage.getItem('userName')
  67. const res = await this.editPwa({ ...this.form, userName })
  68. if (res.errcode === 0) {
  69. this.$message({
  70. message: '修改成功',
  71. type: 'success'
  72. })
  73. sessionStorage.clear()
  74. } else {
  75. this.$message.error(res.errmsg)
  76. }
  77. this.visible = false
  78. }
  79. },
  80. mounted () {}
  81. }
  82. </script>
  83. <style lang="less" scoped>
  84. .container {
  85. display: flex;
  86. .avatar {
  87. margin-top: 8%;
  88. margin-right: 5%;
  89. }
  90. .el-dropdown-link{
  91. color: #fff;
  92. line-height: 4em;
  93. }
  94. }
  95. </style>