ViewHeader.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div :class="classes">
  3. <div class="head-main">
  4. <!-- <div class="head-logo">
  5. <slot name="logo">
  6. <h1>美术阅卷系统</h1>
  7. </slot>
  8. </div> -->
  9. <div class="head-user">
  10. <Dropdown placement="bottom-end" transfer @on-click="menuClick">
  11. <span class="user-name"><Icon type="md-person" size="16" /> </span>
  12. <DropdownMenu slot="list">
  13. <DropdownItem>{{ username }}</DropdownItem>
  14. <DropdownItem
  15. v-if="showResetPwd"
  16. class="color-default-hover"
  17. divided
  18. name="toResetPwd"
  19. >修改密码</DropdownItem
  20. >
  21. <DropdownItem
  22. class="color-error-hover"
  23. divided
  24. name="logout"
  25. @click="logout"
  26. >
  27. 退出登录
  28. </DropdownItem>
  29. </DropdownMenu>
  30. </Dropdown>
  31. </div>
  32. <div class="head-nav" v-if="$slots.navSub">
  33. <slot name="navSub"></slot>
  34. </div>
  35. </div>
  36. <reset-pwd ref="ResetPwd" v-if="showResetPwd"></reset-pwd>
  37. </div>
  38. </template>
  39. <script>
  40. import ResetPwd from "../modules/login/ResetPwd";
  41. import { logout } from "@/api";
  42. export default {
  43. name: "view-header",
  44. components: { ResetPwd },
  45. props: {
  46. showResetPwd: {
  47. type: Boolean,
  48. default: true
  49. }
  50. },
  51. computed: {
  52. classes() {
  53. return ["view-header"];
  54. }
  55. },
  56. data() {
  57. return {
  58. username: this.$ls.get("user", { loginName: "" }).loginName
  59. };
  60. },
  61. methods: {
  62. menuClick(name) {
  63. if (!name) return;
  64. this[name]();
  65. },
  66. toResetPwd() {
  67. this.$refs.ResetPwd.open();
  68. },
  69. async logout() {
  70. await logout();
  71. this.$ls.clear();
  72. this.$router.push({ name: "Login" });
  73. }
  74. }
  75. };
  76. </script>