From c87c4fe5aa3987d61b10d57208232a94eec83d7c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 04 六月 2024 11:58:18 +0800
Subject: [PATCH] 班级学员管理

---
 src/layout/components/Navbar.vue |  477 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 354 insertions(+), 123 deletions(-)

diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 5fd5250..3a59aa2 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,145 +1,376 @@
 <template>
-  <div class="navbar">
-    <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
-
-    <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
-
-    <div class="right-menu">
-      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
-        <div class="avatar-wrapper">
-          <span>{{userName}}</span>
-          <i class="el-icon-caret-bottom" />
+  <div>
+    <div class="h">
+      <div class="h-title">
+        <img
+          src="@/assets/img/logo.jpg"
+          alt=""
+        >
+        <p>姹熻タ璇煶瑙嗛鍩硅绯荤粺</p>
+      </div>
+      <div class="h-list">
+        <div
+          class="h-list-con"
+          :class="titleNum == 1 ? ' h-list-con-act ' : ''"
+          @click="handleTitleNum(1)"
+        >
+          绯荤粺棣栭〉
         </div>
-        <el-dropdown-menu slot="dropdown">
-          <router-link to="/profile/index">
-            <el-dropdown-item>涓汉淇℃伅</el-dropdown-item>
-          </router-link>
-          <router-link to="/">
-            <el-dropdown-item>涓婚〉</el-dropdown-item>
-          </router-link>
-          <el-dropdown-item  @click.native="logout"  divided>閫�鍑�</el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
+        <div
+          class="h-list-con"
+          :class="titleNum == 2 ? ' h-list-con-act ' : ''"
+          @click="handleTitleNum(2)"
+        >
+          鑰冭瘯
+        </div>
+        <div
+          class="h-list-con"
+          :class="titleNum == 3 ? ' h-list-con-act ' : ''"
+          @click="handleTitleNum(3)"
+        >
+          鏁欏
+        </div>
+        <div
+          class="h-list-con"
+          :class="titleNum == 4 ? ' h-list-con-act ' : ''"
+          @click="handleTitleNum(4)"
+        >
+          搴旂敤绠$悊
+        </div>
+      </div>
+      <div
+        style="width:210px; display:flex; align-items:center"
+        class="op"
+      >
+        <div>
+          <svg
+            t="1651734628449"
+            class="icon"
+            viewBox="0 0 1024 1024"
+            version="1.1"
+            xmlns="http://www.w3.org/2000/svg"
+            p-id="2227"
+            width="24"
+            height="24"
+          >
+            <path
+              d="M236.539274 477.852272c17.253966 0 31.233352-13.980409 31.233352-31.233352 0-110.680798 64.816215-197.723224 173.372629-232.82058 14.792914-4.77884 23.811312-19.713994 21.168112-35.026748-0.426719-2.480494-0.64059-4.900613-0.64059-7.197936 0-24.614607 22.683628-44.63457 50.561559-44.63457 27.858488 0 50.53086 20.018939 50.53086 44.63457 0 2.379187-0.203638 4.727675-0.599657 7.005554-2.745531 15.535835 6.537903 30.674627 21.615297 35.290761 110.202914 33.714869 173.402305 118.550023 173.402305 232.748948 0 17.253966 13.980409 31.233352 31.234375 31.233352s31.233352-13.980409 31.233352-31.233352c0-133.414569-72.349795-238.259452-194.876386-284.724717-5.174859-54.537104-53.673433-97.422843-112.541169-97.422843-59.062164 0-107.691721 43.149752-112.623034 97.921193-120.482025 47.999201-194.306404 154.959258-194.306404 284.226367C205.305923 463.871863 219.285309 477.852272 236.539274 477.852272z"
+              p-id="2228"
+              fill="#707070"
+            ></path>
+            <path
+              d="M819.911812 602.309842l0-55.889915c0-17.253966-13.980409-31.233352-31.233352-31.233352s-31.234375 13.980409-31.234375 31.233352l0 67.988464c0 7.80885 2.928702 15.34243 8.204869 21.097504 40.10951 43.780109 86.381369 99.497085 95.105055 116.89329-0.315178 10.827603-3.345188 13.552667-32.586163 13.552667L196.820668 765.951853c-26.983561 0-31.671327-7.259334-32.484855-13.735839 9.17087-17.701151 55.381331-73.072249 95.449909-116.669186 5.306866-5.765307 8.245801-13.30912 8.245801-21.137413l0-67.988464c0-17.253966-13.980409-31.233352-31.233352-31.233352s-31.233352 13.980409-31.233352 31.233352l0 55.848982C101.69617 716.315362 101.69617 737.829352 101.69617 748.300844c0 38.727023 24.991184 80.117712 95.124498 80.117712l631.347179 0c23.5166 0 95.094822 0 95.094822-80.117712C923.262668 737.788419 923.262668 716.202799 819.911812 602.309842z"
+              p-id="2229"
+              fill="#707070"
+            ></path>
+            <path
+              d="M400.99993 366.001835c-17.253966 0-31.233352 13.980409-31.233352 31.234375l0 30.470989c0 17.253966 13.980409 31.234375 31.233352 31.234375s31.234375-13.980409 31.234375-31.234375l0-30.470989C432.234305 379.982244 418.253896 366.001835 400.99993 366.001835z"
+              p-id="2230"
+              fill="#707070"
+            ></path>
+            <path
+              d="M623.957885 366.001835c-17.253966 0-31.234375 13.980409-31.234375 31.234375l0 30.470989c0 17.253966 13.980409 31.234375 31.234375 31.234375 17.253966 0 31.233352-13.980409 31.233352-31.234375l0-30.470989C655.19226 379.982244 641.21185 366.001835 623.957885 366.001835z"
+              p-id="2231"
+              fill="#707070"
+            ></path>
+            <path
+              d="M512.170892 598.435605c43.963281 0 75.105558-30.318516 86.574774-48.223305 9.222035-14.396895 5.03262-33.358759-9.242502-42.763966-14.305821-9.405207-33.593096-5.38873-43.159986 8.764618-0.132006 0.193405-13.614066 19.754926-34.172287 19.754926-19.989263 0-32.43369-18.117636-33.267685-19.378349-9.181103-14.407128-28.285207-18.809391-42.834574-9.750061-14.650675 9.099239-19.155269 28.356838-10.044774 43.007513C437.238272 567.892985 467.99374 598.435605 512.170892 598.435605z"
+              p-id="2232"
+              fill="#707070"
+            ></path>
+            <path
+              d="M601.661066 856.999498c-15.179724-8.225335-34.131355-2.593058-42.346457 12.576433-9.292644 17.142425-27.248597 27.79709-46.871517 27.79709-19.530822 0-37.476543-10.67513-46.830585-27.848255-8.256034-15.149025-27.217898-20.741393-42.366923-12.495592-15.149025 8.256034-20.741393 27.217898-12.495592 42.366923 20.304442 37.283138 59.275012 60.444651 101.6931 60.444651 42.560328 0 81.561597-23.180955 101.794407-60.494793C622.453624 884.176464 616.821347 865.224834 601.661066 856.999498z"
+              p-id="2233"
+              fill="#707070"
+            ></path>
+          </svg>
+        </div>
+        <div style="margin:0 30px;">
+          <svg
+            t="1651734671187"
+            class="icon"
+            viewBox="0 0 1024 1024"
+            version="1.1"
+            xmlns="http://www.w3.org/2000/svg"
+            p-id="3098"
+            width="24"
+            height="24"
+          >
+            <path
+              d="M511.175727 63.057151c-248.402463 0-449.734888 201.352891-449.734888 449.734888 0 248.387114 201.332425 449.740004 449.734888 449.740004 248.366647 0 449.738981-201.352891 449.738981-449.740004C960.914708 264.410042 759.542374 63.057151 511.175727 63.057151L511.175727 63.057151zM511.175727 925.048337c-227.684606 0-412.257322-184.564529-412.257322-412.256298 0-227.688699 184.573739-412.255275 412.257322-412.255275 227.687676 0 412.260391 184.566576 412.260391 412.255275C923.436118 740.482785 738.863403 925.048337 511.175727 925.048337L511.175727 925.048337zM511.175727 925.048337"
+              p-id="3099"
+              fill="#707070"
+            ></path>
+            <path
+              d="M477.49565 650.367371c-0.225127-7.990998-0.336668-13.950733-0.336668-17.922185 0-23.479761 3.347235-43.725874 9.984399-60.796668 4.874007-12.869099 12.757558-25.806759 23.588231-38.904055 7.938809-9.531074 22.288632-23.477714 42.989093-41.745776 20.703531-18.257829 34.196847-32.835849 40.384779-43.664475 6.183839-10.835789 9.29776-22.686698 9.29776-35.55989 0-23.252587-9.072633-43.72792-27.219945-61.309344-18.150382-17.581424-40.439014-26.423813-66.808592-26.423813-25.464975 0-46.734394 7.995091-63.805188 23.928992-17.068747 15.933901-28.242228 40.832987-33.573653 74.747401l-61.479213-7.313569c5.559623-45.428655 22.0062-80.195483 49.341778-104.355743 27.335578-24.159236 63.520709-36.238342 108.4899-36.238342 47.642067 0 85.638449 12.985756 113.998357 38.903032 28.354791 25.919323 42.533722 57.284681 42.533722 94.0357 0 21.264303-4.989641 40.886199-14.97404 58.809407-9.979282 17.921161-29.489638 39.755446-58.468646 65.448618-19.452028 17.353227-32.212656 30.05655-38.168298 38.280862-5.958712 8.224312-10.437723 17.58654-13.331633 28.247344-2.888793 10.662851-4.536316 27.897374-4.988618 51.836599l-57.45455 0L477.494627 650.367371 477.49565 650.367371z"
+              p-id="3100"
+              fill="#707070"
+            ></path>
+            <path
+              d="M473.811748 770.316254 473.811748 702.21011 541.923008 702.21011 541.923008 770.316254 473.811748 770.316254 473.811748 770.316254Z"
+              p-id="3101"
+              fill="#707070"
+            ></path>
+          </svg>
+        </div>
+        <!-- <div @click="handleSetting">
+          <img
+            src="https://img1.baidu.com/it/u=272523489,3471024224&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"
+            style="width:24px;height:24px; border-radius:20px;"
+            alt=""
+          >
+        </div> -->
+        <el-dropdown
+          trigger="click"
+          placement="top"
+        >
+          <div>
+            <img
+              :src="avatar"
+              style="width:24px;height:24px; border-radius:20px;"
+              alt=""
+            >
+          </div>
+          <template #dropdown>
+            <el-dropdown-menu>
+              <el-dropdown-item>
+                <div
+                  class="setting-con"
+                  @click="getMine('/mine')"
+                >
+                  涓汉璁剧疆
+                </div>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <div
+                  class="setting-con"
+                  @click="getMine('/study-particulars')"
+                >
+                  瀛︿範妗f
+                </div>
+              </el-dropdown-item>
+              <el-dropdown-item>
+                <div
+                  class="setting-con"
+                  @click="() => checkCloseDialog = true"
+                >
+                  閫�鍑虹郴缁�
+                </div>
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </template>
+        </el-dropdown>
+      </div>
+
+      <!-- <div
+        class="setting"
+        :style="`height:${settingHeight}px`"
+        v-show="settingHeight !== 0"
+      >
+        <div
+          class="setting-con"
+          @click="getMine"
+        >
+          涓汉璁剧疆
+        </div>
+        <div
+          class="setting-con"
+          @click="() => checkCloseDialog = true"
+        >
+          閫�鍑虹郴缁�
+        </div>
+      </div> -->
     </div>
+    <s-dialog
+      v-model="checkCloseDialog"
+      style="z-index:2"
+      title="纭畾鍏抽棴绯荤粺锛�"
+      width="200px"
+    >
+      <div style="display:flex; justify-content:space-between; padding:10px 10px;">
+        <el-button
+          colorType="default"
+          size="small"
+          @click="() => checkCloseDialog = false"
+        >鍙栨秷</el-button>
+        <el-button
+          colorType="deepBlue"
+          size="small"
+          @click="closeSystem"
+        >纭畾</el-button>
+      </div>
+    </s-dialog>
   </div>
 </template>
 
 <script>
-import { mapGetters, mapMutations } from 'vuex'
-import loginApi from '@/api/login'
-import Breadcrumb from '@/components/Breadcrumb'
-import Hamburger from '@/components/Hamburger'
-
+import { mapGetters } from "vuex";
+// 娉ㄩ噴鍚庡彲娴忚鍣ㄦ祴璇�
+// import { app, ipcRenderer } from "electron";
 export default {
-  components: {
-    Breadcrumb,
-    Hamburger
-  },
-  computed: {
-    ...mapGetters([
-      'sidebar',
-      'device',
-      'userName'
-    ])
+  data () {
+    return {
+      // titleNum:1,
+      settingHeight: 0,
+      checkCloseDialog: false,
+      // 澶村儚
+      avatar: require("../../assets/img/avatarIcon.png"),
+    };
   },
   methods: {
-    toggleSideBar () {
-      this.$store.dispatch('app/toggleSideBar')
+    handleTitleNum(num) {
+      switch (num) {
+        case 1:
+          this.$router.push("/");
+          break;
+        case 2:
+          this.$router.push("/exam");
+          break;
+        case 3:
+          this.$router.push("/teach");
+          break;
+        case 4:
+          this.$router.push("/manage");
+        default:
+          break;
+      }
     },
-    logout () {
-      let _this = this
-      loginApi.logout().then(function (result) {
-        if (result && result.code === 1) {
-          _this.clearLogin()
-          _this.$router.push({ path: '/login' })
+    handleSetting() {
+      clearInterval(this.st);
+      this.t = setInterval(() => {
+        this.settingHeight += 2;
+        if (this.settingHeight >= 80) {
+          this.settingHeight = 80;
+          window.addEventListener("click", this.handleClick);
+          clearInterval(this.t);
         }
-      })
+      }, 1);
     },
-    ...mapMutations('user', ['clearLogin'])
-  }
-}
+    handleClick(e) {
+      if (e.target.className !== "setting-con" && this.settingHeight == 80) {
+        this.settinghidden();
+      }
+    },
+    settinghidden() {
+      document.removeEventListener("click", this.handleClick);
+      clearInterval(this.t);
+      this.st = setInterval(() => {
+        this.settingHeight -= 2;
+        if (this.settingHeight <= 0) {
+          this.settingHeight = 0;
+          clearInterval(this.st);
+        }
+      }, 1);
+    },
+    closeSystem() {
+      // _app.destroy()
+      //娉ㄩ噴鍚庡彲娴忚鍣ㄦ祴璇�
+      // ipcRenderer.send("closeWindow");
+      // app.quit();
+    },
+    // 涓汉璁剧疆
+    getMine(i) {
+      this.$router.push(i);
+    },
+  },
+  computed: {
+    ...mapGetters({
+      titleNum: "GET_HEADER_NUM",
+      userInfo: "userInfo",
+    }),
+  },
+  created() {
+    // this.titleNum = this.$store.getters.getHeader
+  },
+  mounted() {
+    console.log(this.$store);
+    // 璁剧疆澶村儚
+    this.avatar = this.userInfo.avatar ? this.userInfo.avatar : this.avatar;
+  },
+};
 </script>
 
-<style lang="scss" scoped>
-.navbar {
-  height: 50px;
+<style scoped lang="scss">
+.h {
+  width: 100vw;
+  background: white;
+  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.2);
+  height: 75px;
+  display: flex;
+  justify-content: space-between;
+  position: fixed;
+  z-index: 999;
+  &-title {
+    display: flex;
+    align-items: center;
+    margin-left: 50px;
+
+    & img {
+      width: 50px;
+      height: 50px;
+    }
+  }
+
+  &-list {
+    // margin:0 auto;
+    display: flex;
+
+    &-con {
+      // width:
+      font-size: 20px;
+      line-height: 70px;
+      font-weight: 500;
+      color: #aaa;
+      margin: 0 50px;
+      cursor: pointer;
+
+      &-act {
+        border-bottom: 5px solid rgba(16, 71, 247, 1);
+
+        color: rgba(16, 71, 247, 1);
+      }
+    }
+  }
+}
+
+.setting {
+  position: absolute;
+  right: 69px;
+  top: 55px;
+  box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.1);
+  height: 80px;
   overflow: hidden;
-  position: relative;
-  background: #fff;
-  box-shadow: 0 1px 4px rgba(0,21,41,.08);
 
-  .hamburger-container {
-    line-height: 46px;
-    height: 100%;
-    float: left;
+  // &-con {
+  // width: 80px;
+  // height: 30px;
+
+  // background: white;
+  // cursor: pointer;
+  // text-align: center;
+  // line-height: 30px;
+  // padding: 5px 2px;
+
+  // &:hover {
+  //   background: rgb(240, 240, 240);
+  // }
+  // }
+}
+
+.op {
+  & div {
     cursor: pointer;
-    transition: background .3s;
-    -webkit-tap-highlight-color:transparent;
-
-    &:hover {
-      background: rgba(0, 0, 0, .025)
-    }
   }
+}
 
-  .breadcrumb-container {
-    float: left;
-  }
-
-  .errLog-container {
-    display: inline-block;
-    vertical-align: top;
-  }
-
-  .right-menu {
-    float: right;
-    height: 100%;
-    line-height: 50px;
-
-    &:focus {
-      outline: none;
-    }
-
-    .right-menu-item {
-      display: inline-block;
-      padding: 0 8px;
-      height: 100%;
-      font-size: 18px;
-      color: #5a5e66;
-      vertical-align: text-bottom;
-
-      &.hover-effect {
-        cursor: pointer;
-        transition: background .3s;
-
-        &:hover {
-          background: rgba(0, 0, 0, .025)
-        }
-      }
-    }
-
-    .avatar-container {
-      margin-right: 30px;
-
-      .avatar-wrapper {
-        margin-top: 5px;
-        position: relative;
-
-        .user-avatar {
-          cursor: pointer;
-          width: 40px;
-          height: 40px;
-          border-radius: 10px;
-        }
-
-        .el-icon-caret-bottom {
-          cursor: pointer;
-          position: absolute;
-          right: -20px;
-          top: 25px;
-          font-size: 12px;
-        }
-      }
-    }
-  }
+// 涓嬫媺妗嗘牱寮�
+.example-showcase .el-dropdown + .el-dropdown {
+  margin-left: 15px;
+}
+.example-showcase .el-dropdown-link {
+  cursor: pointer;
+  color: var(--el-color-primary);
+  display: flex;
+  align-items: center;
 }
 </style>

--
Gitblit v1.8.0