From be30a62a2dddf9ba36e69ade654513cbd7aa0c52 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 14 九月 2024 11:56:31 +0800
Subject: [PATCH] 机构切换

---
 src/views/class/index.vue                |    4 
 vue.config.js                            |    2 
 src/views/curriculum/index.vue           |    4 
 src/views/integral/index.vue             |    4 
 src/views/login/index.vue                |    4 
 src/layout/components/Navbar.vue         |  247 +++++++------
 src/views/student/index.vue              |  473 +++++++++++++------------
 src/views/comment/index.vue              |    4 
 README.md                                |    2 
 src/views/scheduleCourses/index.vue      |  278 +++++++-------
 .env.development                         |    2 
 src/views/rollCall/index.vue             |    6 
 src/views/student/components/create.vue  |    4 
 src/utils/graphql.js                     |    6 
 src/layout/components/Sidebar/index.vue  |    2 
 src/views/development/index.vue          |    4 
 src/views/student/components/details.vue |    2 
 src/views/work/index.vue                 |    4 
 18 files changed, 548 insertions(+), 504 deletions(-)

diff --git a/.env.development b/.env.development
index 0162bc9..46e640e 100644
--- a/.env.development
+++ b/.env.development
@@ -2,4 +2,4 @@
 ENV = 'development'
 
 # base api
-VUE_APP_BASE_API = 'https://www.9village.cn/dream_test'
+VUE_APP_BASE_API = '/dream_test'
diff --git a/README.md b/README.md
index 49586cb..f5f4252 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## dream_web
+## dream_test_web
 
 鍙綋寰暀鍔″悗鍙�
 
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 53ce25c..8774f9e 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,24 +1,44 @@
 <template>
-  <div class="navbar">
-    <hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
+    <div class="navbar">
+        <hamburger
+            :is-active="sidebar.opened"
+            class="hamburger-container"
+            @toggleClick="toggleSideBar"
+        />
 
-    <breadcrumb class="breadcrumb-container" />
-    <!-- 鍥哄畾鍙充笂瑙� -->
-    <h3 style="position: fixed; top: 0; font-size: 16px; color: #5a5e66; " :style="'right:' + orgCss() ">{{ getOrgName() }}</h3>
-    <div class="right-menu">
-      <el-dropdown class="avatar-container" trigger="click">
-        <div class="avatar-wrapper">
-          {{ '浣犲ソ锛�' + getUserName() }}
-          <i class="el-icon-caret-bottom"></i>
+        <breadcrumb class="breadcrumb-container" />
+        <!-- 鍥哄畾鍙充笂瑙� -->
+        <!-- <h3 style="position: fixed; top: 0; font-size: 16px; color: #5a5e66; " :style="'right:' + orgCss() ">{{ getOrgName() }}</h3> -->
+
+        <div class="right-menu">
+            <el-dropdown trigger="click" ref="eldrop" style="margin-right:20px">
+                <div class="avatar-wrapper" style="font-size:20px">
+                    {{ selectStaff.org.name }}
+                    <i class="el-icon-caret-bottom"></i>
+                </div>
+                <el-dropdown-menu slot="dropdown" align="center">
+                    <el-dropdown-item
+                        v-for="item in staffs"
+                        @click.native="changeStaff(item)"
+                        :key="item.id"
+                    >
+                        {{ item.org.name }}
+                    </el-dropdown-item>
+                </el-dropdown-menu>
+            </el-dropdown>
+            <el-dropdown class="avatar-container" trigger="click">
+                <div class="avatar-wrapper">
+                    {{ '鎮ㄥソ锛�' + getUserName() }}
+                    <i class="el-icon-caret-bottom"></i>
+                </div>
+                <el-dropdown-menu slot="dropdown" class="user-dropdown">
+                    <el-dropdown-item @click.native="logout">
+                        <span style="display: block">閫�鍑虹櫥褰�</span>
+                    </el-dropdown-item>
+                </el-dropdown-menu>
+            </el-dropdown>
         </div>
-        <el-dropdown-menu slot="dropdown" class="user-dropdown">
-          <el-dropdown-item @click.native="logout">
-            <span style="display:block;">閫�鍑虹櫥褰�</span>
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
     </div>
-  </div>
 </template>
 
 <script>
@@ -27,113 +47,124 @@
 import Hamburger from '@/components/Hamburger'
 
 export default {
-  components: {
-    Breadcrumb,
-    Hamburger
-  },
-  computed: {
-    ...mapGetters([
-      'sidebar',
-      'avatar'
-    ])
-  },
-  methods: {
-    orgCss() {
-      return JSON.parse(localStorage.getItem("user")).name.length * 20 + 100 + 'px';
+    data() {
+        return {
+            selectStaff: JSON.parse(localStorage.getItem("selectStaff")),
+            staffs: JSON.parse(localStorage.getItem("staffs"))
+        }
     },
-    getOrgName() {
-      return JSON.parse(localStorage.getItem("user")).staffs[0].org.name;
+    components: {
+        Breadcrumb,
+        Hamburger
     },
-    getUserName() {
-      return JSON.parse(localStorage.getItem("user")).name;
+    computed: {
+        ...mapGetters([
+            'sidebar',
+            'avatar'
+        ])
     },
-    toggleSideBar() {
-      this.$store.dispatch('app/toggleSideBar')
-    },
-    async logout() {
-      // await this.$store.dispatch('user/logout')
-      this.$router.push(`/login`)
+    methods: {
+        changeStaff(item) {
+            this.selectStaff = item
+            localStorage.setItem("selectStaff", JSON.stringify(item))
+            this.$router.go(0)
+        },
+        orgCss() {
+            return JSON.parse(localStorage.getItem("user")).name.length * 20 + 100 + 'px';
+        },
+        getOrgName() {
+            return JSON.parse(localStorage.getItem("user")).staffs[0].org.name;
+        },
+        getUserName() {
+            return JSON.parse(localStorage.getItem("user")).name;
+        },
+        toggleSideBar() {
+            this.$store.dispatch('app/toggleSideBar')
+        },
+        async logout() {
+            // await this.$store.dispatch('user/logout')
+            this.$router.push(`/login`)
+        }
     }
-  }
 }
 </script>
 
 <style lang="scss" scoped>
 .navbar {
-  height: 50px;
-  overflow: hidden;
-  position: relative;
-  background: #fff;
-  box-shadow: 0 1px 4px rgba(0,21,41,.08);
+    height: 50px;
+    overflow: hidden;
+    position: relative;
+    background: #fff;
+    box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
 
-  .hamburger-container {
-    line-height: 46px;
-    height: 100%;
-    float: left;
-    cursor: pointer;
-    transition: background .3s;
-    -webkit-tap-highlight-color:transparent;
-
-    &:hover {
-      background: rgba(0, 0, 0, .025)
-    }
-  }
-
-  .breadcrumb-container {
-    float: left;
-  }
-
-  .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 {
+    .hamburger-container {
+        line-height: 46px;
+        height: 100%;
+        float: left;
         cursor: pointer;
-        transition: background .3s;
+        transition: background 0.3s;
+        -webkit-tap-highlight-color: transparent;
 
         &:hover {
-          background: rgba(0, 0, 0, .025)
+            background: rgba(0, 0, 0, 0.025);
         }
-      }
     }
 
-    .avatar-container {
-      margin-right: 50px;
-
-      .avatar-wrapper {
-        margin-top: 5px;
-        position: relative;
-        cursor: pointer;
-
-        .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;
-        }
-      }
+    .breadcrumb-container {
+        float: left;
     }
-  }
+
+    .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 0.3s;
+
+                &:hover {
+                    background: rgba(0, 0, 0, 0.025);
+                }
+            }
+        }
+
+        .avatar-container {
+            margin-right: 50px;
+
+            .avatar-wrapper {
+                margin-top: 5px;
+                position: relative;
+                cursor: pointer;
+
+                .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;
+                }
+            }
+        }
+    }
 }
 </style>
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index ea7723a..3dae328 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -12,7 +12,7 @@
         :collapse-transition="false"
         mode="vertical"
       >
-        <sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path" />
+        <sidebar-item v-for="(route,index) in routes" :key="index" :item="route" :base-path="route.path" />
       </el-menu>
     </el-scrollbar>
   </div>
diff --git a/src/utils/graphql.js b/src/utils/graphql.js
index 0035dcd..319754f 100644
--- a/src/utils/graphql.js
+++ b/src/utils/graphql.js
@@ -6,8 +6,8 @@
 
 // export default apolloClient;
 // 瀹氫箟涓嶅悓璇锋眰鍦板潃
-const EFORMURI = "https://www.9village.cn/dream_test/graphql";
-const IOTURI = "https://www.9village.cn/dream_test" + "/graphql";
+const EFORMURI = "/dream_test/graphql";
+const IOTURI = "/dream_test/graphql";
 // import ApolloClient from 'apollo-boost' //寮曞叆apollo-boost鎻掍欢
 import { ApolloClient } from "apollo-client";
 import { createHttpLink } from "apollo-link-http";
@@ -23,7 +23,7 @@
     headers: {
       Authorization: JSON.parse(localStorage.getItem("user")).jwtToken,
       // Authorization:'eyJhbGciOiJIUzI1NiJ9.eyJleHBUaW1lIjoiMjAyNC8wNy8zMSAxODoxMSIsInVzZXJJZCI6NDQsImp0aSI6ImVlMDM3NmFjLWQ5OTAtNDRkZS05YTVmLTUxYjhjMjc0YWNiOSIsImlhdCI6MTcyMjQxMzUwMSwic3ViIjoieWNsIiwiZXhwIjoxNzIyNDIwNzAxfQ.bSd0qag44dwXeJQpvryYJXEtrQ03-8MmHQWhgILGXO4',
-      staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+      staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
       playerId:
         JSON.parse(localStorage.getItem("user")).players.length > 0
           ? JSON.parse(localStorage.getItem("user")).players[0].id
diff --git a/src/views/class/index.vue b/src/views/class/index.vue
index b3aeb84..ccaf192 100644
--- a/src/views/class/index.vue
+++ b/src/views/class/index.vue
@@ -104,7 +104,7 @@
       activeName: "all",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -158,7 +158,7 @@
         this.listLoading = true;
         let data = {
           itemType: "TEAM",
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/src/views/comment/index.vue b/src/views/comment/index.vue
index 004ad03..3eaefa3 100644
--- a/src/views/comment/index.vue
+++ b/src/views/comment/index.vue
@@ -129,7 +129,7 @@
       activeName: "comment",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -172,7 +172,7 @@
         this.listLoading = true;
         let data = {
           commentTypes: ["DIRECT_COMMENT"],
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/src/views/curriculum/index.vue b/src/views/curriculum/index.vue
index de71a49..99960f4 100644
--- a/src/views/curriculum/index.vue
+++ b/src/views/curriculum/index.vue
@@ -188,7 +188,7 @@
   methods: {
     getCourses() {
       let data = {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         day: this.getYMD(this.time),
       };
       getBySessionExistsOfDay(data).then((res) => {
@@ -197,7 +197,7 @@
           courseIds.push(i.id);
         });
         let params = {
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           beginDate: this.getYMD(this.time),
           endDate: this.getYMD(this.time),
           courseIds: courseIds,
diff --git a/src/views/development/index.vue b/src/views/development/index.vue
index 26bd43e..a656e7f 100644
--- a/src/views/development/index.vue
+++ b/src/views/development/index.vue
@@ -133,7 +133,7 @@
       activeName: "all",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -182,7 +182,7 @@
       } else if (this.activeName == "other") {
         this.listLoading = true;
         let data = {
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/src/views/integral/index.vue b/src/views/integral/index.vue
index 9104d43..e009c1f 100644
--- a/src/views/integral/index.vue
+++ b/src/views/integral/index.vue
@@ -132,7 +132,7 @@
       activeName: "student",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -175,7 +175,7 @@
         this.listLoading = true;
         let data = {
           types: ["NORMAL"],
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 10ac0b8..00c9d6f 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -88,7 +88,9 @@
             login({
                 code: code,
             }).then((res) => {
-                localStorage.setItem("user", JSON.stringify(res));
+                localStorage.setItem("user", JSON.stringify(res));                
+                localStorage.setItem("staffs", JSON.stringify(res.staffs));
+                localStorage.setItem("selectStaff", JSON.stringify(res.staffs[0]));
                 this.$router.push("/student");
             });
         },
diff --git a/src/views/rollCall/index.vue b/src/views/rollCall/index.vue
index 6f529cd..626a217 100644
--- a/src/views/rollCall/index.vue
+++ b/src/views/rollCall/index.vue
@@ -198,7 +198,7 @@
       activeName: "student",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -242,7 +242,7 @@
         this.listLoading = true;
         let data = {
           types: ["NORMAL"],
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
@@ -259,7 +259,7 @@
         this.listLoading = true;
         let data = {
           completeTypes: ["ROLL_CALL"],
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/src/views/scheduleCourses/index.vue b/src/views/scheduleCourses/index.vue
index 08aebe3..5bfb40b 100644
--- a/src/views/scheduleCourses/index.vue
+++ b/src/views/scheduleCourses/index.vue
@@ -1,151 +1,155 @@
 <template>
-  <div class="app-container">
-    <el-tabs v-model="activeName" @tab-click="fetchData">
-      <el-tab-pane label="鍏ㄩ儴" name="all" />
-      <el-tab-pane label="宸插仠鐢�" name="deactivated" />
-    </el-tabs>
-    <div style="display: flex; flex-direction: row-reverse">
-      <div style="width: 300px">
-        <el-input
-          placeholder="鎸夎绋嬪悕绉版悳绱�"
-          v-model="data.keyword"
-          class="input-with-select"
-          size="small"
-        >
-          <el-button
-            slot="append"
-            icon="el-icon-search"
-            @click="fetchData"
-          ></el-button>
-        </el-input>
-      </div>
+    <div class="app-container">
+        <el-tabs v-model="activeName" @tab-click="fetchData">
+            <el-tab-pane label="鍏ㄩ儴" name="all" />
+            <el-tab-pane label="宸插仠鐢�" name="deactivated" />
+        </el-tabs>
+        <div style="display: flex; flex-direction: row-reverse">
+            <div style="width: 300px">
+                <el-input
+                    placeholder="鎸夎绋嬪悕绉版悳绱�"
+                    v-model="data.keyword"
+                    class="input-with-select"
+                    size="small"
+                >
+                    <el-button
+                        slot="append"
+                        icon="el-icon-search"
+                        @click="fetchData"
+                    ></el-button>
+                </el-input>
+            </div>
+        </div>
+        <div style="height: calc(100vh - 248px)">
+            <el-table
+                v-loading="listLoading"
+                :data="list"
+                element-loading-text="Loading"
+                fit
+                height="100%"
+            >
+                <el-table-column label="璇剧▼鍚嶇О">
+                    <template slot-scope="scope">
+                        <el-link type="primary" :underline="false">{{
+                            scope.row.name
+                        }}</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鍋滅敤鏃堕棿"
+                    width="200"
+                    v-if="activeName == 'deactivated'"
+                >
+                    <template slot-scope="scope">
+                        {{ scope.row.modifyTime }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鎿嶄綔"
+                    width="200"
+                    v-if="activeName == 'deactivated'"
+                >
+                    <template slot-scope="">
+                        <el-link type="primary" :underline="false"
+                            >鎭㈠</el-link
+                        >
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+        <div>
+            <el-pagination
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :current-page="data.pageIn.index + 1"
+                :page-sizes="[10, 20, 30, 40]"
+                :page-size="data.pageIn.size"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="total"
+            >
+            </el-pagination>
+        </div>
     </div>
-    <div style="height: calc(100vh - 248px)">
-      <el-table
-        v-loading="listLoading"
-        :data="list"
-        element-loading-text="Loading"
-        fit
-        height="100%"
-      >
-        <el-table-column label="璇剧▼鍚嶇О">
-          <template slot-scope="scope">
-            <el-link type="primary" :underline="false">{{
-              scope.row.name
-            }}</el-link>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鍋滅敤鏃堕棿"
-          width="200"
-          v-if="activeName == 'deactivated'"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.modifyTime }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎿嶄綔"
-          width="200"
-          v-if="activeName == 'deactivated'"
-        >
-          <template slot-scope="">
-            <el-link type="primary" :underline="false">鎭㈠</el-link>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-    <div>
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="data.pageIn.index + 1"
-        :page-sizes="[10, 20, 30, 40]"
-        :page-size="data.pageIn.size"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="total"
-      >
-      </el-pagination>
-    </div>
-  </div>
 </template>
 
 <script>
 import { getCourse, getDeletedItem } from "@/api/scheduleCourses";
 
 export default {
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        published: "success",
-        draft: "gray",
-        deleted: "danger",
-      };
-      return statusMap[status];
-    },
-  },
-  data() {
-    return {
-      list: null,
-      listLoading: true,
-      activeName: "all",
-      total: 0,
-      data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
-        keyword: "",
-        pageIn: {
-          //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
-          index: 0, //蹇呴��
-          size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
-          sorts: {
-            name: "name", //鎺掑簭瀛楁鍚嶇О
-            direction: "ASC", //鎺掑簭鏂瑰悜
-          },
+    filters: {
+        statusFilter(status) {
+            const statusMap = {
+                published: "success",
+                draft: "gray",
+                deleted: "danger",
+            };
+            return statusMap[status];
         },
-        types: ["BOOKING_NONE", "BOOKING_TIME_STAFF", "BOOKING_TIME_PLACE"],
-      },
-    };
-  },
-  created() {
-    this.fetchData();
-  },
-  methods: {
-    handleSizeChange(val) {
-      this.data.pageIn.size = val;
-      this.fetchData("pageIn");
     },
-    handleCurrentChange(val) {
-      this.data.pageIn.index = val - 1;
-      this.fetchData("pageIn");
-    },
-    fetchData(_val) {
-      if (_val !== "pageIn") {
-        this.data.pageIn.index = 0;
-        this.data.pageIn.size = 10;
-      }
-      this.listLoading = true;
-      if (this.activeName == "all") {
-        this.listLoading = true;
-        getCourse(this.data).then((response) => {
-          this.list = response.data.findCourse.ls;
-          this.total = response.data.findCourse.pageOut.total;
-          this.listLoading = false;
-        });
-      } else if (this.activeName == "deactivated") {
-        this.listLoading = true;
-        let data = {
-          itemType: "COURSE",
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
-          keyword: this.data.keyword,
-          pageIn: { ...this.data.pageIn },
+    data() {
+        return {
+            list: null,
+            listLoading: true,
+            activeName: "all",
+            total: 0,
+            data: {
+                staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                keyword: "",
+                pageIn: {
+                    //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
+                    index: 0, //蹇呴��
+                    size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
+                    sorts: {
+                        name: "name", //鎺掑簭瀛楁鍚嶇О
+                        direction: "ASC", //鎺掑簭鏂瑰悜
+                    },
+                },
+                types: ["BOOKING_NONE", "BOOKING_TIME_STAFF", "BOOKING_TIME_PLACE"],
+            },
         };
-        getDeletedItem(data).then((response) => {
-          this.list = response.data.findDeletedItem.ls;
-          this.total = response.data.findDeletedItem.pageOut.total;
-          this.listLoading = false;
-        });
-      }
     },
-  },
+    created() {
+        this.fetchData();
+    },
+    methods: {
+        handleSizeChange(val) {
+            this.data.pageIn.size = val;
+            this.fetchData("pageIn");
+        },
+        handleCurrentChange(val) {
+            this.data.pageIn.index = val - 1;
+            this.fetchData("pageIn");
+        },
+        fetchData(_val) {
+
+            this.data.staffId = JSON.parse(localStorage.getItem("selectStaff")).id
+            if (_val !== "pageIn") {
+                this.data.pageIn.index = 0;
+                this.data.pageIn.size = 10;
+            }
+            this.listLoading = true;
+            if (this.activeName == "all") {
+                this.listLoading = true;
+                getCourse(this.data).then((response) => {
+                    this.list = response.data.findCourse.ls;
+                    this.total = response.data.findCourse.pageOut.total;
+                    this.listLoading = false;
+                });
+            } else if (this.activeName == "deactivated") {
+                this.listLoading = true;
+                let data = {
+                    itemType: "COURSE",
+                    staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                    keyword: this.data.keyword,
+                    pageIn: { ...this.data.pageIn },
+                };
+                getDeletedItem(data).then((response) => {
+                    this.list = response.data.findDeletedItem.ls;
+                    this.total = response.data.findDeletedItem.pageOut.total;
+                    this.listLoading = false;
+                });
+            }
+        },
+    },
 };
 </script>
diff --git a/src/views/student/components/create.vue b/src/views/student/components/create.vue
index 5a8c4a2..9c776a7 100644
--- a/src/views/student/components/create.vue
+++ b/src/views/student/components/create.vue
@@ -142,7 +142,7 @@
           id: "",
           name: "",
         },
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         visibility: true,
         voucherId: "", //璇惧寘/浼氬憳鍗�
       },
@@ -158,7 +158,7 @@
     },
     getSaleManList() {
       let data = {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           index: 0,
diff --git a/src/views/student/components/details.vue b/src/views/student/components/details.vue
index 6fd1646..298efcc 100644
--- a/src/views/student/components/details.vue
+++ b/src/views/student/components/details.vue
@@ -156,7 +156,7 @@
     },
     getSaleManList() {
       let data = {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           index: 0,
diff --git a/src/views/student/index.vue b/src/views/student/index.vue
index 49be9ef..e010ca1 100644
--- a/src/views/student/index.vue
+++ b/src/views/student/index.vue
@@ -1,120 +1,126 @@
 <template>
-  <div class="app-container">
-    <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="鍏ㄩ儴" name="all" />
-      <el-tab-pane label="寰呯画璐�" name="pendingFees" />
-      <el-tab-pane label="宸茶繃鏈�" name="expired" />
-      <el-tab-pane label="宸插仠鐢�" name="deactivated" />
-    </el-tabs>
-    <div style="display: flex; justify-content: space-between">
-      <!-- <el-button type="primary" size="small" @click="showCreate">鏂板缓瀛﹀憳</el-button> -->
-      <el-button type="primary" size="small" @click="handleExport">瀵煎嚭瀛﹀憳</el-button>
-      <div style="width: 500px">
-      <!-- <el-date-picker v-model="dateRange" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+    <div class="app-container">
+        <el-tabs v-model="activeName" @tab-click="handleClick">
+            <el-tab-pane label="鍏ㄩ儴" name="all" />
+            <el-tab-pane label="寰呯画璐�" name="pendingFees" />
+            <el-tab-pane label="宸茶繃鏈�" name="expired" />
+            <el-tab-pane label="宸插仠鐢�" name="deactivated" />
+        </el-tabs>
+        <div style="display: flex; justify-content: space-between">
+            <!-- <el-button type="primary" size="small" @click="showCreate">鏂板缓瀛﹀憳</el-button> -->
+            <el-button type="primary" size="small" @click="handleExport"
+                >瀵煎嚭瀛﹀憳</el-button
+            >
+            <div style="width: 500px">
+                <!-- <el-date-picker v-model="dateRange" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
         end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd" style="margin-right: 10px">
       </el-date-picker>
       <el-button type="primary" @click="handleExport2">瀵煎嚭璇惧寘</el-button> -->
-    </div>
-      <div style="width: 300px">
-        <el-input
-          placeholder="鎸夊鍚嶆悳绱�"
-          v-model="data.keyword"
-          class="input-with-select"
-          size="small"
-        >
-          <el-button
-            slot="append"
-            icon="el-icon-search"
-            @click="handleClick"
-          ></el-button>
-        </el-input>
-      </div>
-    </div>
-    <div style="height: calc(100vh - 248px)">
-      <el-table
-        v-loading="listLoading"
-        :data="list"
-        element-loading-text="Loading"
-        fit
-        height="100%"
-      >
-        <el-table-column label="濮撳悕" prop="">
-          <template slot-scope="scope">
-            <el-link
-            type="primary"
-            :underline="false"
-            @click="goDetails(scope.row)"
-            >{{ scope.row.name }}</el-link
-          >
-            <!-- <el-link type="primary" :underline="false">{{
+            </div>
+            <div style="width: 300px">
+                <el-input
+                    placeholder="鎸夊鍚嶆悳绱�"
+                    v-model="data.keyword"
+                    class="input-with-select"
+                    size="small"
+                >
+                    <el-button
+                        slot="append"
+                        icon="el-icon-search"
+                        @click="handleClick"
+                    ></el-button>
+                </el-input>
+            </div>
+        </div>
+        <div style="height: calc(100vh - 248px)">
+            <el-table
+                v-loading="listLoading"
+                :data="list"
+                element-loading-text="Loading"
+                fit
+                height="100%"
+            >
+                <el-table-column label="濮撳悕" prop="">
+                    <template slot-scope="scope">
+                        <el-link
+                            type="primary"
+                            :underline="false"
+                            @click="goDetails(scope.row)"
+                            >{{ scope.row.name }}</el-link
+                        >
+                        <!-- <el-link type="primary" :underline="false">{{
               scope.row.name
             }}</el-link> -->
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎬у埆"
-          width="80"
-          v-if="activeName !== 'deactivated'"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.gender == "FEMALE" ? "濂�" : "鐢�" }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎵嬫満鍙�"
-          width="200"
-          prop="mobile"
-          v-if="activeName !== 'deactivated'"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.mobile ? scope.row.mobile : "--" }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鏄惁缁戝畾寰俊"
-          width="200"
-          v-if="activeName !== 'deactivated'"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.user ? "鏄�" : "鍚�" }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎿嶄綔"
-          width="200"
-          v-if="activeName == 'deactivated'"
-        >
-          <template slot-scope="">
-            <el-link type="primary" :underline="false">鍒犻櫎</el-link>
-            &nbsp;&nbsp;&nbsp;&nbsp;
-            <el-link type="primary" :underline="false">鎭㈠</el-link>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鍋滅敤鏃堕棿"
-          width="200"
-          v-if="activeName == 'deactivated'"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.modifyTime }}
-          </template>
-        </el-table-column>
-      </el-table>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鎬у埆"
+                    width="80"
+                    v-if="activeName !== 'deactivated'"
+                >
+                    <template slot-scope="scope">
+                        {{ scope.row.gender == 'FEMALE' ? '濂�' : '鐢�' }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鎵嬫満鍙�"
+                    width="200"
+                    prop="mobile"
+                    v-if="activeName !== 'deactivated'"
+                >
+                    <template slot-scope="scope">
+                        {{ scope.row.mobile ? scope.row.mobile : '--' }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鏄惁缁戝畾寰俊"
+                    width="200"
+                    v-if="activeName !== 'deactivated'"
+                >
+                    <template slot-scope="scope">
+                        {{ scope.row.user ? '鏄�' : '鍚�' }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鎿嶄綔"
+                    width="200"
+                    v-if="activeName == 'deactivated'"
+                >
+                    <template slot-scope="">
+                        <el-link type="primary" :underline="false"
+                            >鍒犻櫎</el-link
+                        >
+                        &nbsp;&nbsp;&nbsp;&nbsp;
+                        <el-link type="primary" :underline="false"
+                            >鎭㈠</el-link
+                        >
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    label="鍋滅敤鏃堕棿"
+                    width="200"
+                    v-if="activeName == 'deactivated'"
+                >
+                    <template slot-scope="scope">
+                        {{ scope.row.modifyTime }}
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+        <div>
+            <el-pagination
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :current-page="data.pageIn.index + 1"
+                :page-sizes="[10, 20, 30, 40]"
+                :page-size="data.pageIn.size"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="total"
+            >
+            </el-pagination>
+        </div>
+        <StudentCreate ref="studentCreate" />
     </div>
-    <div>
-      <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="data.pageIn.index + 1"
-        :page-sizes="[10, 20, 30, 40]"
-        :page-size="data.pageIn.size"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="total"
-      >
-      </el-pagination>
-    </div>
-    <StudentCreate ref="studentCreate" />
-  </div>
 </template>
 
 <script>
@@ -123,135 +129,136 @@
 
 
 export default {
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        published: "success",
-        draft: "gray",
-        deleted: "danger",
-      };
-      return statusMap[status];
-    },
-  },
-  components: {
-    StudentCreate,
-  },
-  data() {
-    return {
-      dateRange: [],
-      list: null,
-      listLoading: true,
-      activeName: "all",
-      total: 0,
-      data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
-        keyword: "",
-        pageIn: {
-          //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
-          index: 0, //蹇呴��
-          size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
-          sorts: {
-            name: "name", //鎺掑簭瀛楁鍚嶇О
-            direction: "ASC", //鎺掑簭鏂瑰悜
-          },
+    filters: {
+        statusFilter(status) {
+            const statusMap = {
+                published: "success",
+                draft: "gray",
+                deleted: "danger",
+            };
+            return statusMap[status];
         },
-      },
-    };
-  },
-  created() {
-    // 鑾峰彇鍦板潃鏍廲ode
-    // let code = this.$route.query.code;
-    // if (code) {
-    //   if (localStorage.getItem("code")) {
-    //     if (code !== localStorage.getItem("code")) {
-    //       this.getUserDate(code);
-    //     }
-    //   } else {
-    //     this.getUserDate(code);
-    //   }
-    // } else {
-    //   if (!localStorage.getItem("user")) {
-    //     this.$router.push("/login");
-    //   }
-    // }
-    if (localStorage.getItem("user")) {
-      this.fetchData();
-    } else {
-      this.$router.push("/login");
-    }
-  },
-  methods: {
-    handleExport() {
-      this.download('exportPlayer?orgId=' + JSON.parse(localStorage.getItem("user")).staffs[0].org.id, {
-      }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
     },
-    handleExport2() {
-      if (this.dateRange.length == 0) {
-        this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
-        return;
-      }
-      this.download('exportReport?startDate=' + this.dateRange[0] + '&endDate=' + this.dateRange[1], {
-      }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
+    components: {
+        StudentCreate,
     },
-    fetchData() {
-      this.listLoading = true;
-      getData(this.data).then((response) => {
-        this.list = response.data.findPlayerByStaff.ls;
-        this.total = response.data.findPlayerByStaff.pageOut.total;
-        this.listLoading = false;
-      })
-    },
-    handleSizeChange(val) {
-      this.data.pageIn.size = val;
-      this.handleClick();
-    },
-    handleCurrentChange(val) {
-      this.data.pageIn.index = val - 1;
-      this.handleClick();
-    },
-    handleClick(tab, event) {
-      if (this.activeName == "pendingFees") {
-        this.listLoading = true;
-        getRenew(this.data).then((response) => {
-          this.list = response.data.findPlayerRenew.ls;
-          this.total = response.data.findPlayerRenew.pageOut.total;
-          this.listLoading = false;
-        });
-      } else if (this.activeName == "expired") {
-        this.listLoading = true;
-        getExpire(this.data).then((response) => {
-          this.list = response.data.findPlayerExpire.ls;
-          this.total = response.data.findPlayerExpire.pageOut.total;
-          this.listLoading = false;
-        });
-      } else if (this.activeName == "all") {
-        this.fetchData();
-      } else if (this.activeName == "deactivated") {
-        this.listLoading = true;
-        let data = {
-          itemType: "PLAYER",
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
-          keyword: this.data.keyword,
-          pageIn: { ...this.data.pageIn },
+    data() {
+        return {
+            dateRange: [],
+            list: null,
+            listLoading: true,
+            activeName: "all",
+            total: 0,
+            data: {
+                staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                keyword: "",
+                pageIn: {
+                    //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
+                    index: 0, //蹇呴��
+                    size: 10, //姣忛〉鐨勫ぇ灏忋�傞粯璁�20
+                    sorts: {
+                        name: "name", //鎺掑簭瀛楁鍚嶇О
+                        direction: "ASC", //鎺掑簭鏂瑰悜
+                    },
+                },
+            },
         };
-        getDeleted(data).then((response) => {
-          this.list = response.data.findDeletedItem.ls;
-          this.total = response.data.findDeletedItem.pageOut.total;
-          this.listLoading = false;
-        });
-      }
     },
-    goDetails(row) {
-      this.$router.push({
-        name: "StudentDetails",
-        query: {
-          id: row.id,
+    created() {
+        // 鑾峰彇鍦板潃鏍廲ode
+        // let code = this.$route.query.code;
+        // if (code) {
+        //   if (localStorage.getItem("code")) {
+        //     if (code !== localStorage.getItem("code")) {
+        //       this.getUserDate(code);
+        //     }
+        //   } else {
+        //     this.getUserDate(code);
+        //   }
+        // } else {
+        //   if (!localStorage.getItem("user")) {
+        //     this.$router.push("/login");
+        //   }
+        // }
+        if (localStorage.getItem("user")) {
+            this.fetchData();
+        } else {
+            this.$router.push("/login");
+        }
+    },
+    methods: {
+        handleExport() {
+            this.download('exportPlayer?orgId=' + JSON.parse(localStorage.getItem("user")).staffs[0].org.id, {
+            }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
         },
-      });
+        handleExport2() {
+            if (this.dateRange.length == 0) {
+                this.$message.warning("璇烽�夋嫨鏃ユ湡鑼冨洿");
+                return;
+            }
+            this.download('exportReport?startDate=' + this.dateRange[0] + '&endDate=' + this.dateRange[1], {
+            }, `瀵煎嚭_${new Date().getTime()}.xlsx`)
+        },
+        fetchData() {
+            this.listLoading = true;
+            getData(this.data).then((response) => {
+                this.list = response.data.findPlayerByStaff.ls;
+                this.total = response.data.findPlayerByStaff.pageOut.total;
+                this.listLoading = false;
+            })
+        },
+        handleSizeChange(val) {
+            this.data.pageIn.size = val;
+            this.handleClick();
+        },
+        handleCurrentChange(val) {
+            this.data.pageIn.index = val - 1;
+            this.handleClick();
+        },
+        handleClick(tab, event) {
+            this.data.staffId = JSON.parse(localStorage.getItem("selectStaff")).id
+            if (this.activeName == "pendingFees") {
+                this.listLoading = true;
+                getRenew(this.data).then((response) => {
+                    this.list = response.data.findPlayerRenew.ls;
+                    this.total = response.data.findPlayerRenew.pageOut.total;
+                    this.listLoading = false;
+                });
+            } else if (this.activeName == "expired") {
+                this.listLoading = true;
+                getExpire(this.data).then((response) => {
+                    this.list = response.data.findPlayerExpire.ls;
+                    this.total = response.data.findPlayerExpire.pageOut.total;
+                    this.listLoading = false;
+                });
+            } else if (this.activeName == "all") {
+                this.fetchData();
+            } else if (this.activeName == "deactivated") {
+                this.listLoading = true;
+                let data = {
+                    itemType: "PLAYER",
+                    staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
+                    keyword: this.data.keyword,
+                    pageIn: { ...this.data.pageIn },
+                };
+                getDeleted(data).then((response) => {
+                    this.list = response.data.findDeletedItem.ls;
+                    this.total = response.data.findDeletedItem.pageOut.total;
+                    this.listLoading = false;
+                });
+            }
+        },
+        goDetails(row) {
+            this.$router.push({
+                name: "StudentDetails",
+                query: {
+                    id: row.id,
+                },
+            });
+        },
+        showCreate() {
+            this.$refs.studentCreate.showDialog();
+        },
     },
-    showCreate() {
-      this.$refs.studentCreate.showDialog();
-    },
-  },
 };
 </script>
diff --git a/src/views/work/index.vue b/src/views/work/index.vue
index 90e2f7f..edd8024 100644
--- a/src/views/work/index.vue
+++ b/src/views/work/index.vue
@@ -149,7 +149,7 @@
       activeName: "work",
       total: 0,
       data: {
-        staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
         keyword: "",
         pageIn: {
           //鍙�夛紝濡傛灉鏄垎椤垫煡璇紝闇�瑕佸姞涓娿��
@@ -194,7 +194,7 @@
         this.listLoading = true;
         let data = {
           commentTypes: ["PLAYER_REPLY"],
-          staffId: JSON.parse(localStorage.getItem("user")).staffs[0].id,
+          staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
           keyword: this.data.keyword,
           pageIn: { ...this.data.pageIn },
         };
diff --git a/vue.config.js b/vue.config.js
index b94fa30..e37ff00 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -39,7 +39,7 @@
     proxy: {
       [process.env.VUE_APP_BASE_API]: {
         // 鍖归厤鎵�鏈変互 '/dev-api'寮�澶寸殑璇锋眰璺緞
-        target: "http://192.168.3.87:18081/dream", //绫讳技浜嶯ginx鍙嶅悜浠g悊
+        target: "http://localhost:18081/dream_test", //绫讳技浜嶯ginx鍙嶅悜浠g悊
         changeOrigin: true, // 鏀寔璺ㄥ煙
         pathRewrite: {
           // 閲嶅啓璺緞: 鍘绘帀璺緞涓紑澶寸殑'/dev-api'

--
Gitblit v1.8.0