feige
2024-11-30 eef1cd4c6ffd669d43fd525918bda9ed3db7e25a
ruoyi-ui/src/layout/components/Navbar.vue
@@ -7,8 +7,8 @@
    <div class="right-menu">
      <template v-if="device!=='mobile'">
        <search id="header-search" class="right-menu-item" />
      <!--  <search id="header-search" class="right-menu-item" />
        <el-tooltip content="源码地址" effect="dark" placement="bottom">
          <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
        </el-tooltip>
@@ -16,7 +16,11 @@
        <el-tooltip content="文档地址" effect="dark" placement="bottom">
          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
        </el-tooltip>
 -->
    <el-tooltip  effect="dark" placement="bottom">
      <h1 class="right-menu-item hover-effect" style="text-align: center;display:
     block;line-height: 50px;">{{greeting}}</h1>
    </el-tooltip>
        <screenfull id="screenfull" class="right-menu-item hover-effect" />
        <el-tooltip content="布局大小" effect="dark" placement="bottom">
@@ -27,7 +31,7 @@
      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
        <div class="avatar-wrapper">
          <img :src="avatar" class="user-avatar">
          <img :src="ximg" class="user-avatar">
          <i class="el-icon-caret-bottom" />
        </div>
        <el-dropdown-menu slot="dropdown">
@@ -68,12 +72,25 @@
    RuoYiGit,
    RuoYiDoc
  },
  data() {
    return {
      xm: {"张":"zhang.png","李":"li.png"},
      greeting: "",
     ximg: "",
    };
  },
  mounted() {
    this.setGreeting();
  },
  computed: {
    ...mapGetters([
      'sidebar',
      'avatar',
      'device'
    ]),
    setting: {
      get() {
        return this.$store.state.settings.showSettings
@@ -92,9 +109,63 @@
    }
  },
  methods: {
     getLastName(fullname)
     {
        let hyphenated = ['欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫', '万俟', '闻人',
                          '夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳', '公冶',
                          '太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '城池', '司徒',
                          '鲜于', '司空', '汝嫣', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙',
                          '壤驷', '公良', '漆雕', '乐正', '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐',
                          '段干', '百里', '呼延', '东郭', '南门', '羊舌', '微生', '公户', '公玉', '公仪',
                          '梁丘', '公仲', '公上', '公门', '公山', '公坚', '左丘', '公伯', '西门', '公祖',
                          '第五', '公乘', '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑',
                          '即墨', '达奚', '褚师'];
          let hyset = new Set(hyphenated);
          let vLength = fullname.length;
          // 前为姓,后为名
          let lastname = '', firstname = '';
          if (vLength > 2){
              var preTwoWords = fullname.substr(0, 2);
              // 取命名的前两个字,看是否在复姓库中
              if (hyset.has(preTwoWords)){
                lastname = preTwoWords;
                firstname = fullname.substr(2);
              }else{
                lastname = fullname.substr(0, 1);
                  firstname = fullname.substr(1);
              }
          }else if (vLength === 2){
              // 全名只有两个字时,以前一个为姓,后一下为名
              lastname = fullname.substr(0, 1);
              firstname = fullname.substr(1);
          }else{
            lastname = fullname;
          }
         return lastname;
     },
     setGreeting() {
       const currentTime = new Date();
       const currentHour = currentTime.getHours();
       let name = this.$store.state.user.name
      let lnm = this.getLastName(name)
      if(this.xm[lnm]!=null)
         this.ximg = require("@/assets/images/"+this.xm[lnm])
      else
         this.ximg = require("@/assets/images/login_logo.png")
       if (currentHour < 12) {
         this.greeting = "早上好,"+name;
       } else if (currentHour < 14) {
         this.greeting = "中午好,"+name;
       } else if (currentHour < 18) {
         this.greeting = "下午好,"+name;
       } else {
         this.greeting = "晚上好,"+name;
       }
     },
    toggleSideBar() {
      this.$store.dispatch('app/toggleSideBar')
    },
    async logout() {
      this.$confirm('确定注销并退出系统吗?', '提示', {
        confirmButtonText: '确定',