user.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div id="container">
  3. <div>
  4. <el-dropdown @command="handleCommand">
  5. <span class="el-dropdown-link">
  6. <el-icon :size="20" color="#fff">
  7. <UserFilled />
  8. </el-icon>
  9. <span style="padding: 0 6px;">
  10. {{ $store.state.userInfo.id == touristUserId ? "游客" : $store.state.userInfo.username}}
  11. </span>
  12. </span>
  13. <template #dropdown>
  14. <el-dropdown-menu>
  15. <el-dropdown-item command="login">登录</el-dropdown-item>
  16. <el-dropdown-item command="register">注册用户</el-dropdown-item>
  17. <el-dropdown-item command="upPassword">修改密码</el-dropdown-item>
  18. <el-dropdown-item command="logout">退出</el-dropdown-item>
  19. </el-dropdown-menu>
  20. </template>
  21. </el-dropdown>
  22. </div>
  23. <el-dialog v-model="dialogLoginVisible" width="500">
  24. <Login :close="closeLoginDialog" />
  25. </el-dialog>
  26. </div>
  27. </template>
  28. <script>
  29. import Login from "@/components/login/login.vue";
  30. import encrypt‌ from "@/utils/encrypt‌";
  31. export default {
  32. components: {
  33. Login,
  34. },
  35. data() {
  36. return {
  37. touristUserId:systemConfig.touristUserId,
  38. dialogLoginVisible: false,
  39. };
  40. },
  41. mounted() {},
  42. methods: {
  43. closeLoginDialog() {
  44. console.log("closeLoginDialog");
  45. this.dialogLoginVisible = false;
  46. },
  47. handleCommand(command) {
  48. if (command == "login") {
  49. this.dialogLoginVisible = true;
  50. } else if(command == "register"){
  51. } else if(command == "upPassword"){
  52. } else {
  53. encrypt‌().then(() => {
  54. this.$message({
  55. type: "success",
  56. message: "退出成功",
  57. });
  58. }).catch((err) => {
  59. this.$message({
  60. type: "error",
  61. message: err,
  62. });
  63. });
  64. }
  65. },
  66. },
  67. };
  68. </script>
  69. <style lang="less" scoped>
  70. .container{
  71. padding: 0;
  72. margin: 0;
  73. }
  74. .el-dropdown-link {
  75. cursor: pointer;
  76. color: #fff;
  77. display: flex;
  78. align-items: center;
  79. border: 0;
  80. }
  81. .el-dropdown,.el-dropdown * {
  82. outline: none !important; /* 确保下拉触发器没有轮廓 */
  83. }
  84. </style>