Bladeren bron

no message

hzj18279462576@163.com 3 jaren geleden
bovenliggende
commit
8d7a0c64ce

+ 21 - 0
admin/package-lock.json

@@ -14657,6 +14657,11 @@
       "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
       "dev": true
     },
+    "shvl": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/shvl/-/shvl-2.0.3.tgz",
+      "integrity": "sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw=="
+    },
     "side-channel": {
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
@@ -16785,6 +16790,22 @@
       "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
       "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
     },
+    "vuex-persistedstate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz",
+      "integrity": "sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==",
+      "requires": {
+        "deepmerge": "^4.2.2",
+        "shvl": "^2.0.3"
+      },
+      "dependencies": {
+        "deepmerge": {
+          "version": "4.2.2",
+          "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz",
+          "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+        }
+      }
+    },
     "w3c-hr-time": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",

+ 1 - 0
admin/package.json

@@ -27,6 +27,7 @@
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",
     "vuex": "^3.6.2",
+    "vuex-persistedstate": "^4.1.0",
     "xlsx": "^0.18.5"
   },
   "devDependencies": {

+ 7 - 1
admin/src/layout/components/Navbar.vue

@@ -16,7 +16,7 @@
         >
         </el-avatar>
       </div>
-      <div class="name">名字</div>
+      <div class="name">{{ $store.state.user.userName }}</div>
       <div class="out" @click="outLogin">
         <IconSvg :W="16" :H="16" name="quit" />
         <div class="title">退出</div>
@@ -36,8 +36,14 @@ export default {
       time: moment().format("YYYY-M-D dddd HH:mm:ss"),
     };
   },
+  created() {
+    setInterval(this.showTimes, 30000);
+  },
   mounted() {},
   methods: {
+    showTimes() {
+      this.time = moment().format("YYYY-M-D dddd HH:mm:ss");
+    },
     informs() {
       this.$router
         .replace({ name: "Inform" })

+ 2 - 1
admin/src/store/getters.js

@@ -3,7 +3,8 @@ const getters = {
     device: (state) => state.app.device,
     token: (state) => state.user.token,
     avatar: (state) => state.user.avatar,
-    name: (state) => state.user.name,
+    userName: (state) => state.user.userName,
+    headImage: (state) => state.user.headImage,
     roles: (state) => state.user.roles,
     routes: (state) => state.permission.routes,
     buttons: (state) => state.user.buttons

+ 13 - 1
admin/src/store/index.js

@@ -3,6 +3,7 @@ import Vuex from 'vuex'
 import getters from './getters'
 import user from './modules/user'
 import inform from './modules/inform'
+import createPersistedState from "vuex-persistedstate"
 Vue.use(Vuex)
 
 const store = new Vuex.Store({
@@ -10,7 +11,18 @@ const store = new Vuex.Store({
         user,
         inform
     },
-    getters
+    getters,
+    plugins: [createPersistedState({
+        storage: window.sessionStorage,
+        reducer(val) {
+            console.log(val);
+            return { // 只储存state中的user 
+                inform: val.inform,
+                user: val.user
+            }
+        }
+    })]
 })
 
+
 export default store

+ 6 - 5
admin/src/store/modules/user.js

@@ -1,4 +1,3 @@
-import Cookies from 'js-cookie'
 import { login, logout, getInfo } from '@/api/acl/user'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import { resetRouter } from '@/router'
@@ -6,7 +5,8 @@ import api from '@/api/api'
 const getDefaultState = () => {
     return {
         token: '',
-        name: '',
+        userName: '',
+        headImage: '',
         avatar: '',
         roles: [],
         buttons: []
@@ -24,9 +24,9 @@ const mutations = {
     },
 
     SET_USERINFO: (state, userInfo) => {
-        state.name = userInfo.name
-        state.avatar = userInfo.avatar
-        state.buttons = userInfo.buttons
+        state.userName = userInfo.userName
+        state.headImage = userInfo.headImage
+        // state.buttons = userInfo.buttons
     },
 
     SET_ROLES: (state, roles) => {
@@ -44,6 +44,7 @@ const actions = {
                     console.log(response);
                     const { data } = response
                     commit('SET_TOKEN', data.token)
+                    commit('SET_USERINFO', data)
                     setToken(data.token)
                     resolve()
                 })

+ 37 - 8
admin/src/views/home/index.vue

@@ -1,5 +1,5 @@
 <template >
-  <el-card class="box-card" v-show="cardShow">
+  <el-card class="box-card">
     <div slot="header" class="clearfix">
       <div class="header-left">
         <span class="title">房态管理 </span>
@@ -31,6 +31,7 @@
               :visible.sync="dialogVisible"
               width="692px"
               append-to-body
+              custom-class="dialongAllRoom"
             >
               <div class="tree">
                 <div class="tree-left">
@@ -85,7 +86,11 @@
       </div>
     </div>
     <div class="home-body">
-      <div class="room-floor wrapper">
+      <div
+        class="room-floor wrapper"
+        v-loading="cardShow"
+        element-loading-text="获取房间信息中"
+      >
         <div class="scrollBlock" ref="scrollBlock">
           <div class="floor" v-for="(items, i) in Data" :key="i">
             <div class="header-title">
@@ -157,6 +162,7 @@
                 </el-popover>
                 <div class="tuifang" @click.stop="roomLock(item)">
                   <IconSvg :W="21" :H="21" name="tuifang" />
+
                   <el-dialog
                     title="门锁管理"
                     custom-class="lock"
@@ -164,6 +170,7 @@
                     :visible.sync="doorLock"
                     width="30%"
                     :before-close="lockClose"
+                    :destroy-on-close="true"
                   >
                     <div class="roomID" style="margin-top: 13px">
                       <div class="roomblock">
@@ -332,7 +339,7 @@ export default {
   name: "Home",
   data() {
     return {
-      cardShow: false,
+      cardShow: true,
       clickId: "",
       inquireValue: "", // 房间号
       switchOff: "关电",
@@ -484,13 +491,24 @@ export default {
     //     // this.API.room.roomPageGroup(augument).then((res) => {
     //     //   console.log(res);
     //     // });
+    //     // this.API.room
+    //     //   .roomPageGroup({ curPage: 1, pageSize: 20 })
+    //     //   .then((res) => {
+    //     //     console.log(res.data.list);
+    //     //   });
+    //     // this.API.room
+    //     //   .roomPageGroup({ curPage: 2, pageSize: 20 })
+    //     //   .then((res) => {
+    //     //     console.log(res.data.list);
+    //     //   });
     //     console.log("滚动到底部,触发"); //此处可以添加数据请求
     //     // 这这里可以写一些业务逻辑,请求数据等
     //   }
     // },
 
     roomList(Datas, resData) {
-      this.API.room.roomPageGroup({ pageSize: 1000 }).then((res) => {
+      this.cardShow = true; // 数据加载前
+      this.API.room.roomPageGroup({ curPage: 1, pageSize: 100 }).then((res) => {
         this.floorRoomDatas = [];
         console.log(res);
 
@@ -590,6 +608,7 @@ export default {
             items.room.forEach((item) => {
               this.roomData.forEach((i, index) => {
                 if (item.id == i.roomId) {
+                  item.doorLockShow = false;
                   // console.log(i);
                   let arr = {
                     id: i.roomId,
@@ -604,7 +623,7 @@ export default {
           });
           console.log(this.Data);
           this.DataClone = _.cloneDeep(this.Data);
-          this.cardShow = true;
+          this.cardShow = false;
         });
       });
     },
@@ -747,7 +766,7 @@ export default {
                 if (res.success) {
                   this.$message({
                     message: "关房成功",
-                    // type: "success",
+                    type: "success",
                   });
                   this.roomList(this.Data);
                   this.room = false;
@@ -878,7 +897,11 @@ export default {
 
     //门锁管理
     lockClose(done) {
-      this.doorLock = false;
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
     },
     // 下发密码
     sending(item) {
@@ -1425,7 +1448,13 @@ export default {
   box-shadow: 0px 3px 10px rgba(0, 97, 255, 0.2);
   border-radius: 8px;
 }
-
+.dialongAllRoom {
+  .el-dialog__footer {
+    .el-button--primary {
+      background: rgba(41, 109, 227, 1);
+    }
+  }
+}
 /deep/ .lock.el-dialog {
   box-shadow: none;
   margin: 350px 0 0 450px !important;