feature:用户登录完善
This commit is contained in:
parent
77a6853df0
commit
a255866bd4
@ -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",
|
||||||
})
|
});
|
||||||
};
|
};
|
||||||
|
@ -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
42
src/store/user.ts
Normal 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 }
|
||||||
|
);
|
@ -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'); //后面userInfo要存到store里面
|
userStore.setUserInfo(result);
|
||||||
//TODO
|
|
||||||
message.success('登录成功!');
|
message.success('登录成功!');
|
||||||
router.push('/layout');
|
router.push('/layout');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -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(() => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user