feige
2024-12-08 e15df9a20c29044b10772e3587a00d0be03b281d
ruoyi-ui/src/layout/components/Navbar.vue
@@ -8,7 +8,7 @@
    <div class="right-menu">
      <template v-if="device!=='mobile'">
      <!--  <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,9 +16,9 @@
        <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:
      <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" />
@@ -28,10 +28,10 @@
        </el-tooltip>
      </template>
      <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">
@@ -74,34 +74,32 @@
  },
  data() {
    return {
      xm: {"张":"zhang.png","李":"李.png","曹":"曹.png","曾":"曾.png","赵":"赵.png",
         "陈":"陈.png","邓":"邓.png","范":"范.png","方":"方.png","冯":"冯.png",
        "郭":"郭.png","韩":"韩.png","何":"何.png","胡":"胡.png","黄":"黄.png",
        "蒋":"蒋.png","孔":"孔.png","赖":"赖.png","梁":"梁.png","林":"林.png",
        "马":"马.png","钱":"钱.png","秦":"秦.png","沈":"沈.png","史":"史.png",
        "孙":"孙.png","唐":"唐.png","王":"王.png","卫":"卫.png","吴":"吴.png",
        "肖":"肖.png","许":"许.png","薛":"薛.png","严":"严.png","杨":"杨.png",
       "姚":"姚.png","郑":"郑.png","周":"周.png","朱":"朱.png","庄":"庄.png",
     },
      greeting: "",
     ximg: "",
    };
  },
  mounted() {
    this.setGreeting();
  },
  computed: {
    ...mapGetters([
      'sidebar',
      'avatar',
      'device'
    ]),
   setGreeting() {
     const currentTime = new Date();
     const currentHour = currentTime.getHours();
     let name = this.$store.state.user.name
     if (currentHour < 12) {
       this.greeting = "早上好,"+name;
     } else if (currentHour < 14) {
       this.greeting = "中午好,"+name;
     } else if (currentHour < 18) {
       this.greeting = "下午好,"+name;
     } else {
       this.greeting = "晚上好,"+name;
     }
   },
    setting: {
      get() {
        return this.$store.state.settings.showSettings
@@ -120,9 +118,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: '确定',