From 6580deff14f23b8051edf26db58a3b9425ed5b77 Mon Sep 17 00:00:00 2001
From: he wei <858544502@qq.com>
Date: 星期四, 24 四月 2025 18:47:10 +0800
Subject: [PATCH] U 权限

---
 /dev/null                            |    0 
 src/views/system/user/index.vue      |   32 +++++-----
 src/views/system/user/baojiMager.vue |    4 
 src/router/modules/devices.js        |   12 ++--
 src/views/device/locks/addEdit.vue   |   38 +++++++++++-
 src/views/device/locks/index.vue     |    6 +
 src/router/modules/system.js         |    8 +-
 src/store/user.js                    |   20 +++++-
 src/utils/auth.js                    |   15 ++++-
 src/assets/images/login-bg.jpg       |    0 
 src/store/permission.js              |    3 
 src/styles/element/blue.scss         |    8 +-
 12 files changed, 100 insertions(+), 46 deletions(-)

diff --git a/src/assets/images/login-bg.jpg b/src/assets/images/login-bg.jpg
index c52b64d..2be13da 100644
--- a/src/assets/images/login-bg.jpg
+++ b/src/assets/images/login-bg.jpg
Binary files differ
diff --git a/src/assets/images/login-bg1.png b/src/assets/images/login-bg1.png
deleted file mode 100644
index d90d797..0000000
--- a/src/assets/images/login-bg1.png
+++ /dev/null
Binary files differ
diff --git a/src/router/modules/devices.js b/src/router/modules/devices.js
index 675d5dd..b782fef 100644
--- a/src/router/modules/devices.js
+++ b/src/router/modules/devices.js
@@ -28,12 +28,12 @@
       name: 'LockManage',
       meta: { title: '閿佸叿绠$悊', icon: 'lock-hdw', noCache: false }
     },
-    {
-      path: 'station',
-      component: () => import('@/views/device/station/index.vue'),
-      name: 'stationManage',
-      meta: { title: '鏈烘埧绠$悊', icon: 'lock-hdw', noCache: false }
-    },
+    // {
+    //   path: 'station',
+    //   component: () => import('@/views/device/station/index.vue'),
+    //   name: 'stationManage',
+    //   meta: { title: '鏈烘埧绠$悊', icon: 'lock-hdw', noCache: false }
+    // },
     {
       path: 'task',
       component: () => import('@/views/device/locks/task.vue'),
diff --git a/src/router/modules/system.js b/src/router/modules/system.js
index a4a6edb..e13d262 100644
--- a/src/router/modules/system.js
+++ b/src/router/modules/system.js
@@ -20,19 +20,19 @@
       path: 'power',
       component: () => import('@/views/system/user/powerMager.vue'),
       name: 'powerMager',
-      meta: { title: '鏉冮檺绠$悊', icon: 'people-hdw', noCache: false }
+      meta: { title: '鏉冮檺绠$悊', icon: 'people-hdw', noCache: false, roles: ['admin', 'manager'] }
     },
     {
       path: 'baoji',
       component: () => import('@/views/system/user/baojiMager.vue'),
       name: 'baojiMager',
-      meta: { title: '鍖呮満缁勭鐞�', icon: 'people-hdw', noCache: false }
+      meta: { title: '鍖呮満缁勭鐞�', icon: 'people-hdw', noCache: false, roles: ['admin', 'manager'] }
     },
     {
       path: 'user',
       component: () => import('@/views/system/user/index.vue'),
       name: 'UserManage',
-      meta: { title: '鐢ㄦ埛绠$悊', icon: 'people-hdw', noCache: false }
+      meta: { title: '鐢ㄦ埛绠$悊', icon: 'people-hdw', noCache: false, roles: ['admin', 'manager'] }
     },
     {
       path: 'face',
@@ -56,7 +56,7 @@
       path: 'mapSettings',
       component: () => import('@/views/system/mapSettings.vue'),
       name: 'mapSettings',
-      meta: { title: '鍦板浘閰嶇疆', icon: 'log-hdw', noCache: false }
+      meta: { title: '鍦板浘閰嶇疆', icon: 'log-hdw', noCache: false, roles: ['admin', 'manager'] }
     }
   ]
 };
diff --git a/src/store/permission.js b/src/store/permission.js
index f7a0c9f..9c11d0d 100644
--- a/src/store/permission.js
+++ b/src/store/permission.js
@@ -10,7 +10,7 @@
 function hasPermission(roles, route) {
   console.trace('hasPermission');
   console.log('hasPermission', roles, route, '=============');
-  
+  debugger;
   if (route.meta && route.meta.roles) {
     const rolesArr = route.meta.roles;
     return roles.some(role => rolesArr.includes(role));
@@ -51,6 +51,7 @@
   }
   function generateRoutes(roles) {
     let accessedRoutes;
+    debugger;
     if (roles.includes('admin')) {
       console.log('1', '=============');
       
diff --git a/src/store/user.js b/src/store/user.js
index 92ef5a2..aca73d1 100644
--- a/src/store/user.js
+++ b/src/store/user.js
@@ -52,8 +52,16 @@
           let role = response.data2.urole;
           uname.value = name;
           setUname(name);
-          token.value = 'admin';
-          setToken('admin');
+          let _token = 'someone';
+          debugger;
+          if (response.data2.uid && response.data2.uid <= 10000) {
+            _token = 'manager';
+            if (response.data2.uid <= 100) {
+              _token = 'admin';
+            }
+          }
+          token.value = _token;
+          setToken(_token);
           urole.value = role;
           setUrole(role);
           resolve(response);
@@ -71,15 +79,16 @@
   function getInfo() {
     return new Promise((resolve) => {
       const data = {
-        roles: ['admin'],
+        // roles: ['admin'],
+        roles: [token.value],
         introduction: 'I am a super administrator',
         avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
         // name: 'Super Admin'
-        name: getUname()
+        name: uname.value
       };
       const { roles: _roles, name, avatar: _avatar, introduction: _introduction } = data;
       roles.value = _roles;
-      uname.value = name;
+      // uname.value = name;
       avatar.value = _avatar;
       introduction.value = _introduction;
       
@@ -115,6 +124,7 @@
   }
 
   async function changeRoles(role) {
+    debugger;
     const _token = role + '-token';
 
     token.value = _token;
diff --git a/src/styles/element/blue.scss b/src/styles/element/blue.scss
index 447d050..9e2ccc1 100644
--- a/src/styles/element/blue.scss
+++ b/src/styles/element/blue.scss
@@ -181,12 +181,12 @@
   color: #fff;
 }
 
-.el-pagination.el-pagination button {
+.el-pagination.el-pagination.el-pagination button {
   background: transparent;
   color: #fff;
 }
-.el-pagination.el-pagination button.is-disabled,
-.el-pagination.el-pagination button:disabled {
+.el-pagination.el-pagination.el-pagination button.is-disabled,
+.el-pagination.el-pagination.el-pagination button:disabled {
   background-color: transparent;
   color: #fff;
   cursor: not-allowed;
@@ -197,7 +197,7 @@
   color: #0ff;
 }
 
-.el-pager.el-pager li {
+.el-pagination .el-pager.el-pager.el-pager li {
   background: transparent;
   color: #fff;
 }
diff --git a/src/utils/auth.js b/src/utils/auth.js
index e63a2aa..c476f97 100644
--- a/src/utils/auth.js
+++ b/src/utils/auth.js
@@ -1,13 +1,22 @@
 import Cookies from 'js-cookie';
+import formatPassword from '@/utils/formatPassword.js';
+import const_num from '@/utils/const/const_num.js';
+import RSA from '@/utils/RSA.js';
 
-const TokenKey = 'Admin-Token';
+const TokenKey = 'BAIDU_MAP_SN';
 
 export function getToken() {
-  return Cookies.get(TokenKey);
+  const key = const_num.privateKey;
+  const str = Cookies.get(TokenKey);
+  if (!str) return '';
+  let res = RSA.decrypt(str, key);
+  // console.log('res', res, '=============');
+  
+  return res.split('&&&&&&&&&&')[0];
 }
 
 export function setToken(token) {
-  return Cookies.set(TokenKey, token);
+  return Cookies.set(TokenKey, formatPassword(token));
 }
 
 export function removeToken() {
diff --git a/src/views/device/locks/addEdit.vue b/src/views/device/locks/addEdit.vue
index 12910a9..b3af0bf 100644
--- a/src/views/device/locks/addEdit.vue
+++ b/src/views/device/locks/addEdit.vue
@@ -85,6 +85,25 @@
 			trigger: ["change", "blur"],
 		},
 	],
+  lockIp: [
+    {
+      required: true,
+      message: "涓嶈兘涓虹┖",
+      trigger: ["change", "blur"],
+    },
+    {
+      validator: (rule, value, callback) => {
+        let reg = /^((25[0-5]|2[0-4][0-9]|1[0-9]{1,2}|[1-9]|[1-9][0-9]|0)\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{1,2}|[1-9]|[1-9][0-9]|0)$/;
+    
+        if (value && !reg.test(value)) {
+          callback(new Error("璇疯緭鍏ユ纭殑IP鍦板潃"));
+        } else {
+          callback();
+        }
+      },
+      trigger: ["change", "blur"],
+    }
+  ],
 	// 缁忓害
 	longitude: [
 		{
@@ -129,7 +148,9 @@
 	stationName1: stationName1.value,
 	stationName2: stationName2.value,
 	stationName3: stationName3.value,
-	stationName4: stationName4.value
+	stationName4: stationName4.value,
+  lockIp: '127.0.0.1',
+  stationId: '',
 });
 
 const layout = {
@@ -226,6 +247,7 @@
     stationName2: formLock.stationName2,
     stationName3: formLock.stationName3,
     stationName4: formLock.stationName4,
+    lockIp: formLock.lockIp,
 		longitude: formLock.longitude || 0,
 		latitude: formLock.latitude || 0,
 	};
@@ -268,8 +290,10 @@
     stationName2: formLock.stationName2,
     stationName3: formLock.stationName3,
     stationName4: formLock.stationName4,
+    lockIp: formLock.lockIp,
 		longitude: formLock.longitude || 0,
 		latitude: formLock.latitude || 0,
+    stationId: formLock.stationId
 	};
 	let loading = $loading();
 	updateLock(params)
@@ -417,6 +441,14 @@
     </el-row>
     <el-row :gutter="layout.gutter">
       <el-col :span="24">
+        <!-- Ip -->
+        <el-form-item label="鏈烘埧Ip" label-position="right" prop="lockIp">
+          <el-input v-model="formLock.lockIp" />
+        </el-form-item>
+      </el-col>
+    </el-row>
+    <el-row :gutter="layout.gutter">
+      <el-col :span="24">
         <!-- 鍦板潃 -->
         <el-form-item label="鍦板潃" label-position="right" prop="lockAddress">
           <el-input v-model="formLock.lockAddress" />
@@ -446,7 +478,7 @@
       <el-col :span="24">
         <!-- 閿佸叿瀹夎浣嶇疆 绫诲瀷 -->
         <el-form-item
-          label="閿佸叿瀹夎浣嶇疆绫诲瀷"
+          label="灞忔煖绫诲瀷"
           label-position="right"
           prop="screenBoxType"
         >
@@ -471,7 +503,7 @@
       <el-col :span="24">
         <!-- 閿佸叿瀹夎浣嶇疆 鍝佺墝 -->
         <el-form-item
-          label="閿佸叿瀹夎浣嶇疆鍝佺墝"
+          label="灞忔煖鍝佺墝"
           label-position="right"
           prop="screenBoxProduct"
         >
diff --git a/src/views/device/locks/index.vue b/src/views/device/locks/index.vue
index 0f686bb..77047e5 100644
--- a/src/views/device/locks/index.vue
+++ b/src/views/device/locks/index.vue
@@ -102,7 +102,7 @@
 					// v.type = { 1: '钃濈墮閿�', 2: 'ID閿�', 3: '瀹炰綋閿�' }[v.lockType];
 					v.modelStr = v.model == 1 ? '鍦ㄧ嚎妯″紡' : '绂荤嚎妯″紡';
 					v.blStateStr = v.blState == 0 ? '钃濈墮鍏抽棴' : '钃濈墮寮�鍚�';
-					v.ID = v.lockId % 10000000;
+					v.ID = v.lockId % 1000;
 					return v;
 				});
 				_total = total;
@@ -322,8 +322,10 @@
                   <el-table-column type="index" fixed="left" width="50" />
                   <el-table-column prop="type" label="绫诲瀷" width="180" />
                   <el-table-column prop="lockName" label="閿佸叿鍚嶇О" width="180" />
-                  <el-table-column prop="ID" label="閿両D" width="120" />
+                  <el-table-column prop="lockId" label="閿両D" width="120" />
+                  <el-table-column prop="ID" label="閿佸叿鍦板潃" width="120" />
                   <el-table-column prop="stationName" label="鏈烘埧" min-width="180" />
+                  <el-table-column prop="lockIp" label="鏈烘埧Ip" min-width="180" />
                   <el-table-column prop="modelStr" label="鎺у埗妯″紡" width="180" />
                   <el-table-column prop="onlineState" label="鍦ㄧ嚎鐘舵��" width="180" />
                   <!-- <el-table-column prop="state" label="瀹夎鐘舵��" width="180" /> -->
diff --git a/src/views/system/user/baojiMager.vue b/src/views/system/user/baojiMager.vue
index d48bdfd..3ab56f0 100644
--- a/src/views/system/user/baojiMager.vue
+++ b/src/views/system/user/baojiMager.vue
@@ -49,7 +49,7 @@
       <el-tabs v-model="activeName" type="border-card" class="flex-layout ">
         <el-tab-pane label="鍖呮満缁勭敤鎴�" name="baoji-group-user">
           <template #label>
-            <span><i class="el-icon-user-solid"></i> 鍖呮満缁勭敤鎴�</span>
+            <span><i class="el-icon-user-solid"></i> 绠$悊鐨勭敤鎴�</span>
           </template>
           <el-transfer
             v-model="user.value"
@@ -64,7 +64,7 @@
         </el-tab-pane>
         <el-tab-pane label="鍖呮満鏈烘埧" name="baoji-home">
           <template #label
-            ><span><i class="el-icon-s-home"></i> 鍖呮満鏈烘埧</span></template
+            ><span><i class="el-icon-s-home"></i> 绠$悊鐨勯攣鍏�</span></template
           >
           <el-transfer
             v-model="baoji.value"
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 4c312ce..589cfd0 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -8,7 +8,7 @@
 	import useElement from "@/hooks/useElement.js";
   import { useUserStore } from '@/store/user';
   const userStore = useUserStore();
-  const { uname } = storeToRefs(userStore);
+  const { uid, uname } = storeToRefs(userStore);
 
 	import {
 		getAllUser,
@@ -236,21 +236,21 @@
                         @click="resetSnIdfn(scope.row)">閲嶇疆瀵嗙爜</el-button>
                       <el-button type="danger" size="small" :disabled="scope.row.uname == uname"
                         @click="confirmRemove(scope.row)">鍒犻櫎</el-button>
-                      <!-- <el-button
-      												type="success"
-      												v-if="scope.row.uid > 1000"
-      												size="small"
-      												@click="improveRolefn(scope.row)"
-      												>鍔犲叆绠$悊鍛樼粍</el-button
-      											>
-      											<el-button
-      												type="danger"
-      												v-else
-      												:disabled="scope.row.uid == uid"
-      												size="small"
-      												@click="dropRolefn(scope.row)"
-      												>绉诲嚭绠$悊鍛樼粍</el-button
-      											> -->
+                      <el-button
+                        type="success"
+                        v-if="scope.row.uid > 10000"
+                        size="small"
+                        @click="improveRolefn(scope.row)"
+                        >鍔犲叆绠$悊鍛樼粍</el-button
+                      >
+                      <el-button
+                        type="danger"
+                        v-else
+                        :disabled="scope.row.uid == uid"
+                        size="small"
+                        @click="dropRolefn(scope.row)"
+                        >绉诲嚭绠$悊鍛樼粍</el-button
+                      >
                     </template>
                   </el-table-column>
                 </el-table>

--
Gitblit v1.9.1