feature:用户登录完善

This commit is contained in:
fangyunong 2025-07-11 21:15:05 +08:00
parent 77a6853df0
commit a255866bd4
5 changed files with 65 additions and 17 deletions

View File

@ -1,9 +1,10 @@
import http from "@/utils/request"; import http from "@/utils/request";
import type { UserInfo } from "@/store/user";
// 获取用户信息 // 获取用户信息
export const getUserInfo = () => { export const getUserInfo = (): Promise<UserInfo> => {
return http({ return http({
url:'/api/v1/UserControllers/My', url: "/api/v1/UserControllers/My",
method:'GET' method: "GET",
}) });
}; };

View File

@ -1,6 +1,6 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
export const useAppStore = defineStore('User', () => { export const useAppStore = defineStore('App', () => {
//左侧菜单相关 //左侧菜单相关
const menuApp = reactive({ const menuApp = reactive({

42
src/store/user.ts Normal file
View File

@ -0,0 +1,42 @@
import { defineStore } from "pinia";
export interface UserInfo {
birthday?: undefined | string | Date; // Adjust the type based on what you expect
config?: undefined | any; // Replace 'any' with a more specific type if possible
description?: undefined | string;
email: string;
id: string;
jobCode?: undefined | string;
jobName?: undefined | string;
menuName?: undefined | string;
sex: string;
userName: string;
}
export const useUserStore = defineStore(
"User",
() => {
//用户信息
const userInfo = reactive<UserInfo>({
birthday: void 0,
config: void 0,
description: void 0,
email: "",
id: "",
jobCode: void 0,
jobName: void 0,
menuName: void 0,
sex: "",
userName: "",
});
// 赋值
const setUserInfo = (data: UserInfo) => {
Object.assign(userInfo, data);
};
return {
userInfo,
setUserInfo
};
},
{ persist: true }
);

View File

@ -8,17 +8,19 @@
import { removeToken, setToken } from '@/utils/auth'; import { removeToken, setToken } from '@/utils/auth';
import { useMessage } from 'naive-ui'; import { useMessage } from 'naive-ui';
import { getUserInfo } from '@/api/userApi'; import { getUserInfo } from '@/api/userApi';
import { useUserStore } from '@/store/user';
import type { UserInfo } from '@/store/user';
const router = useRouter(); const router = useRouter();
const message = useMessage(); const message = useMessage();
const userStore = useUserStore();
const init = async () => { const init = async () => {
try { try {
const route = useRoute(); const route = useRoute();
const token = route.query.token as string; // token const token = route.query.token as string; // token
console.log('Token:', token); console.log('Token:', token);
setToken(token) setToken(token)
// const result = await getUserInfo(); const result = await getUserInfo();
// console.log(result, 'result'); //userInfostore userStore.setUserInfo(result);
//TODO
message.success('登录成功!'); message.success('登录成功!');
router.push('/layout'); router.push('/layout');
} catch (error) { } catch (error) {

View File

@ -2,7 +2,7 @@
<div class="main__container table"> <div class="main__container table">
<header class="table-header"> <header class="table-header">
<n-input-group style="width:440px"> <n-input-group style="width:440px">
<n-input :style="{ width: '50%' }" placeholder="请输入用户名称" v-model="roleName" /> <n-input :style="{ width: '50%' }" placeholder="请输入用户名称" v-model:value="roleName" />
<n-button strong secondary type="primary"> <n-button strong secondary type="primary">
搜索 搜索
<template #icon> <template #icon>
@ -31,17 +31,17 @@ import { DataTableColumns, NButton, useMessage } from 'naive-ui';
const message = useMessage(); const message = useMessage();
const tableMainRef = ref<HTMLElement | null>(null); const tableMainRef = ref<HTMLElement | null>(null);
const roleName = ref(''); const roleName = ref('admin');
const pagination = reactive<PageController>({ const pagination = reactive<PageController>({
pageSize: 10, pageSize: 10,
page: 1, page: 1,
}); });
// //
interface RowData{ interface RowData {
name:string name: string
sex:'female' | 'male' | 'unknown', sex: 'female' | 'male' | 'unknown',
address:string address: string
} }
// render - // render -
function createColumns({ function createColumns({
@ -93,10 +93,13 @@ const data = Array.from({ length: 10 }).map((_, index) => ({
})); }));
const init = async () => { const init = async () => {
try { try {
const result = await getUserList(pagination); const result = await getUserList({
...pagination,
roleName: roleName.value
});
console.log(result, 'result'); console.log(result, 'result');
} catch (error) { } catch (error) {
message.error(error.message);
} }
} }
onMounted(() => { onMounted(() => {