From b051f008e007a335948cd8f3b78c1f7629a4d6ac Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期一, 31 八月 2026 13:00:05 +0800
Subject: [PATCH] fix: 菜单高亮间歇性失效根因(el-menu 同路由导航回滚 activeIndex)——default-active 绑定路由+select 后宏任务纠正;feat: 修改密码(用户自改)+ admin 重置他人密码为 123456

---
 traffic-audit-web/src/views/UserManage.vue |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/traffic-audit-web/src/views/UserManage.vue b/traffic-audit-web/src/views/UserManage.vue
index 6f9cc03..4c2651a 100644
--- a/traffic-audit-web/src/views/UserManage.vue
+++ b/traffic-audit-web/src/views/UserManage.vue
@@ -1,9 +1,9 @@
 <template>
-  <el-container>
-    <el-header>浜ら�氱粺璁℃姤琛ㄥ鏍哥郴缁� - 鐢ㄦ埛绠$悊</el-header>
+  <el-container direction="vertical">
+    <app-header title="浜ら�氱粺璁℃姤琛ㄥ鏍哥郴缁� - 鐢ㄦ埛绠$悊"></app-header>
     <el-container>
       <el-aside width="200px">
-        <el-menu router :default-active="activeMenu">
+        <el-menu ref="sideMenu" router :default-active="$route.path" @select="onMenuSelect">
           <el-menu-item index="/dashboard">宸ヤ綔鍙�</el-menu-item>
           <el-menu-item index="/import">鏁版嵁瀵煎叆</el-menu-item>
           <el-menu-item index="/data">鏁版嵁鏌ョ湅</el-menu-item>
@@ -12,7 +12,6 @@
           <el-menu-item index="/report">鎶ヨ〃鐢熸垚</el-menu-item>
           <el-menu-item index="/rules">瑙勫垯绠$悊</el-menu-item>
           <el-menu-item index="/users">鐢ㄦ埛绠$悊</el-menu-item>
-          <el-menu-item index="/login" @click="logout">閫�鍑虹櫥褰�</el-menu-item>
         </el-menu>
       </el-aside>
       <el-main>
@@ -44,6 +43,7 @@
               <el-table-column label="鎿嶄綔" width="140" align="center">
                 <template slot-scope="{ row }">
                   <el-button type="text" size="mini" @click="openEdit(row)">缂栬緫</el-button>
+                  <el-button v-if="isAdmin" type="text" size="mini" @click="resetPwd(row)">閲嶇疆瀵嗙爜</el-button>
                   <el-button type="text" size="mini" style="color:#f56c6c" @click="removeUser(row)">鍒犻櫎</el-button>
                 </template>
               </el-table-column>
@@ -89,6 +89,7 @@
 </template>
 <script>
 import api from '@/api'
+import AppHeader from '@/components/AppHeader.vue'
 const MODULE_OPTIONS = [
   { key: 'freight', label: '璐ц繍鎶ヨ〃' },
   { key: 'passenger', label: '鍏矾鏃呭鎶ヨ〃' },
@@ -97,10 +98,10 @@
   { key: 'cityPassenger', label: '鍩庡競瀹㈣繍鎶ヨ〃' }
 ]
 export default {
+  components: { AppHeader },
   name: 'UserManage',
   data() {
     return {
-      activeMenu: '/users',
       keyword: '',
       list: [],
       loading: false,
@@ -114,12 +115,13 @@
       }
     }
   },
+  computed: {
+    isAdmin() {
+      return sessionStorage.getItem('username') === 'admin'
+    }
+  },
   mounted() { this.loadList() },
   methods: {
-    logout() {
-      localStorage.removeItem('token'); localStorage.removeItem('username'); localStorage.removeItem('realName'); localStorage.removeItem('modules')
-      this.$router.push('/login')
-    },
     loadList() {
       this.loading = true
       api.get('/user/list', { params: { keyword: this.keyword } })
@@ -171,6 +173,12 @@
           .finally(() => { this.saving = false })
       })
     },
+    resetPwd(row) {
+      this.$confirm('纭畾灏嗙敤鎴枫��' + (row.realName || row.username) + '銆嶇殑瀵嗙爜閲嶇疆涓� 123456 鍚楋紵', '閲嶇疆瀵嗙爜', { type: 'warning' })
+        .then(() => api.post('/user/reset-password', { id: row.id }))
+        .then(() => { this.$message.success('宸查噸缃负 123456'); this.loadList() })
+        .catch(() => {})
+    },
     removeUser(row) {
       this.$confirm('纭畾鍒犻櫎鐢ㄦ埛銆�' + (row.realName || row.username) + '銆嶅悧锛�', '鍒犻櫎纭', { type: 'warning' })
         .then(() => api.post('/user/delete', null, { params: { id: row.id } }))

--
Gitblit v1.9.1