Ver Fonte

初始密码支持自定义修改策略

RuoYi há 2 meses atrás
pai
commit
37c94666fb

+ 1 - 1
src/router/index.js

@@ -77,7 +77,7 @@ export const constantRoutes = [
     redirect: 'noredirect',
     children: [
       {
-        path: 'profile',
+        path: 'profile/:activeTab?',
         component: () => import('@/views/system/user/profile/index'),
         name: 'Profile',
         meta: { title: '个人中心', icon: 'user' }

+ 8 - 0
src/store/modules/user.js

@@ -1,3 +1,5 @@
+import router from '@/router'
+import { ElMessageBox, } from 'element-plus'
 import { login, logout, getInfo } from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import { isHttp, isEmpty } from "@/utils/validate"
@@ -51,6 +53,12 @@ const useUserStore = defineStore(
             this.name = user.userName
             this.nickName = user.nickName
             this.avatar = avatar
+            /* 初始密码提示 */
+            if(res.isDefaultModifyPwd) {
+              ElMessageBox.confirm('您的密码还是初始密码,请修改密码!',  '安全提示', {  confirmButtonText: '确定',  cancelButtonText: '取消',  type: 'warning' }).then(() => {
+                router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
+              }).catch(() => {})
+            }
             resolve(res)
           }).catch(error => {
             reject(error)

+ 10 - 3
src/views/system/user/profile/index.vue

@@ -48,7 +48,7 @@
                    <span>基本资料</span>
                  </div>
                </template>
-               <el-tabs v-model="activeTab">
+               <el-tabs v-model="selectedTab">
                   <el-tab-pane label="基本资料" name="userinfo">
                      <userInfo :user="state.user" />
                   </el-tab-pane>
@@ -68,7 +68,8 @@ import userInfo from "./userInfo"
 import resetPwd from "./resetPwd"
 import { getUserProfile } from "@/api/system/user"
 
-const activeTab = ref("userinfo")
+const route = useRoute()
+const selectedTab = ref("userinfo")
 const state = reactive({
   user: {},
   roleGroup: {},
@@ -83,5 +84,11 @@ function getUser() {
   })
 }
 
-getUser()
+onMounted(() => {
+  const activeTab = route.params && route.params.activeTab
+  if (activeTab) {
+    selectedTab.value = activeTab
+  }
+  getUser()
+})
 </script>