index.vue 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <div class="mainPage flex-v">
  3. <div class="system-header flex-h">
  4. <i class="iconfont icon-yinchenglogo"></i>
  5. <span>银城-城的空间</span>
  6. <div class="flex-item flex-h" style="overflow: visible;">
  7. <div class="flex-item"></div>
  8. <span class="characterMark">{{user.UserName}}</span>
  9. <div class="userIconBox">
  10. <a class="userIcon">
  11. <img :src="user.Headimgurl" class="centerLabel cover" alt="">
  12. </a>
  13. <ul class="userSet">
  14. <li @click="signout">登出</li>
  15. <li @click="editPassword">修改密码</li>
  16. </ul>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="flex-item flex-h">
  21. <div class="system-siderBar">
  22. <siderBar :menu="pageMenu"></siderBar>
  23. </div>
  24. <div class="flex-item flex-v">
  25. <div class="system-breadcrumb">
  26. <breadCrumb :list="breadCrumb"></breadCrumb>
  27. </div>
  28. <div class="flex-item">
  29. <div class="subPageBox">
  30. <router-view></router-view>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <el-dialog title="修改密码" :visible.sync="dialogFormVisible">
  36. <el-input
  37. placeholder="请输入旧密码"
  38. v-model="postData.oriPasswd"
  39. clearable>
  40. </el-input>
  41. <el-input style="margin-top:20px;"
  42. placeholder="请输入新密码"
  43. v-model="postData.newPasswd"
  44. clearable>
  45. </el-input>
  46. <div slot="footer" class="dialog-footer">
  47. <el-button @click="dialogFormVisible = false">取 消</el-button>
  48. <el-button type="primary" @click="submitPasswd">确 定</el-button>
  49. </div>
  50. </el-dialog>
  51. </div>
  52. </template>
  53. <script>
  54. import breadCrumb from '@/components/breadCrumb/index'
  55. import siderBar from '@/components/siderBar/index'
  56. import routerData from '@/router/router'
  57. import { mapState, mapMutations, mapActions } from 'vuex'
  58. export default {
  59. name: '',
  60. data () {
  61. return {
  62. dialogFormVisible: false,
  63. postData: {
  64. oriPasswd: '', // 旧密码
  65. newPasswd: '', // 新密码
  66. },
  67. }
  68. },
  69. computed: {
  70. ...mapState({
  71. breadCrumb: x => x.app.breadcrumb,
  72. pageMenu: x => x.app.menus,
  73. user: x => x.app.user,
  74. })
  75. },
  76. components: {
  77. breadCrumb,
  78. siderBar,
  79. },
  80. created () {
  81. this.updateSystemInfo()
  82. this.updateBread({ routerData, Url: this.$route.name })
  83. },
  84. methods: {
  85. submitPasswd () { // 修改密码
  86. var aData = {
  87. oriPasswd: this.md5(this.postData.oriPasswd),
  88. newPasswd: this.md5(this.postData.newPasswd)
  89. }
  90. this.$ajax(this.$api.system.editPassword.url, {
  91. method: this.$api.system.editPassword.method,
  92. urlData: { id: this.user.UserId },
  93. data: aData
  94. }).then(res => {
  95. this.$message({
  96. type: 'success',
  97. message: '操作成功!'
  98. })
  99. this.$router.push({ name: 'login' })
  100. })
  101. },
  102. editPassword () { // 修改密码
  103. this.dialogFormVisible = true
  104. },
  105. signout () { // 登出
  106. this.$ajax(this.$api.system.signout.url, {
  107. method: this.$api.system.signout.method,
  108. }).then(res => {
  109. this.$message({
  110. type: 'success',
  111. message: '操作成功!'
  112. })
  113. this.$router.push({ name: 'login' })
  114. })
  115. },
  116. ...mapMutations([
  117. 'updateBread'
  118. ]),
  119. ...mapActions([
  120. 'updateSystemInfo'
  121. ]),
  122. }
  123. }
  124. </script>
  125. <!-- Add "scoped" attribute to limit CSS to this component only -->
  126. <style lang="scss" scoped>
  127. @import "page.scss";
  128. </style>