125 lines
3.1 KiB
TypeScript
125 lines
3.1 KiB
TypeScript
|
export interface PeopleInfo {
|
||
|
id: number;
|
||
|
date: string;
|
||
|
name: string;
|
||
|
province: string;
|
||
|
city: string;
|
||
|
address: string;
|
||
|
zip: string;
|
||
|
}
|
||
|
export interface BasicPagination {
|
||
|
current: number;
|
||
|
pageSize: number;
|
||
|
defaultPageSize: number;
|
||
|
total: number;
|
||
|
defaultCurrent: number;
|
||
|
}
|
||
|
export interface PeopleState {
|
||
|
peopleList: PeopleInfo[];
|
||
|
showAddPeople: boolean;
|
||
|
showEditPeople: boolean;
|
||
|
situation: string;
|
||
|
pagination: BasicPagination;
|
||
|
currentForm: PeopleInfo;
|
||
|
}
|
||
|
export const usePeopleStore = defineStore('People', {
|
||
|
state: (): PeopleState => ({
|
||
|
peopleList: [],
|
||
|
showAddPeople: false,
|
||
|
showEditPeople: false,
|
||
|
situation: '',
|
||
|
pagination: {
|
||
|
current: 1,
|
||
|
pageSize: 10,
|
||
|
defaultPageSize: 10,
|
||
|
total: 0,
|
||
|
defaultCurrent: 1,
|
||
|
},
|
||
|
currentForm: {
|
||
|
id: 0,
|
||
|
date: '',
|
||
|
name: '',
|
||
|
province: '',
|
||
|
city: '',
|
||
|
address: '',
|
||
|
zip: '',
|
||
|
},
|
||
|
}),
|
||
|
actions: {
|
||
|
async getPeopleList() {
|
||
|
const { $http } = useNuxtApp();
|
||
|
try {
|
||
|
const res = await $http.GET<{ records: PeopleInfo[] }>(
|
||
|
'/userManager/page',
|
||
|
{
|
||
|
page: '' + this.pagination!.current,
|
||
|
size: '' + this.pagination!.pageSize,
|
||
|
situation: this.situation,
|
||
|
},
|
||
|
);
|
||
|
this.peopleList = res.data.records;
|
||
|
console.log(this.peopleList);
|
||
|
} catch (error) {
|
||
|
console.error('Error fetching people list:', error);
|
||
|
}
|
||
|
},
|
||
|
async getTotal() {
|
||
|
const { $http } = useNuxtApp();
|
||
|
try {
|
||
|
const res = await $http.GET<number>('/userManager/total', {
|
||
|
situation: this.situation,
|
||
|
});
|
||
|
this.pagination!.total = res.data;
|
||
|
if (
|
||
|
(this.pagination!.current - 1) * this.pagination!.pageSize >
|
||
|
this.pagination!.total
|
||
|
) {
|
||
|
this.pagination!.current = Math.ceil(
|
||
|
this.pagination!.total / this.pagination!.pageSize,
|
||
|
);
|
||
|
this.getPeopleList();
|
||
|
}
|
||
|
} catch {
|
||
|
return;
|
||
|
}
|
||
|
},
|
||
|
async addPeople() {
|
||
|
console.log('add');
|
||
|
const { $http } = useNuxtApp();
|
||
|
try {
|
||
|
await $http.POST('/userManager/addUser', this.currentForm);
|
||
|
this.getTotal();
|
||
|
this.getPeopleList();
|
||
|
} catch (error) {
|
||
|
await MessagePlugin.error('Error adding people:' + error);
|
||
|
}
|
||
|
this.showEditPeople = false;
|
||
|
this.showAddPeople = false;
|
||
|
},
|
||
|
|
||
|
async updatePeople() {
|
||
|
const { $http } = useNuxtApp();
|
||
|
try {
|
||
|
await $http.POST('/userManager/updateUser', this.currentForm);
|
||
|
this.getTotal();
|
||
|
this.getPeopleList();
|
||
|
} catch (error) {
|
||
|
await MessagePlugin.error('Error updating people:' + error);
|
||
|
}
|
||
|
this.showEditPeople = false;
|
||
|
this.showAddPeople = false;
|
||
|
},
|
||
|
|
||
|
async deletePeople(peopleId: number) {
|
||
|
const { $http } = useNuxtApp();
|
||
|
try {
|
||
|
await $http.GET('/userManager/deleteUser', { id: '' + peopleId });
|
||
|
this.getTotal();
|
||
|
this.getPeopleList();
|
||
|
} catch (error) {
|
||
|
await MessagePlugin.error('Error deleting people:' + error);
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
});
|