add field order

This commit is contained in:
ccmjga
2025-05-18 16:55:50 +08:00
parent 0226e329d4
commit 94a69d999b
11 changed files with 143 additions and 34 deletions

View File

@@ -0,0 +1,42 @@
import { computed, ref } from "vue";
export const useSort = () => {
const sortFields = ref<
{
field: string;
order: "asc" | "desc" | undefined;
}[]
>([]);
const getSortField = (field: string) => {
return sortFields.value.find((item) => item.field === field);
};
const sortBy = computed(() => {
return sortFields.value
.map((item) => `${item.field}:${item.order}`)
.join(",");
});
const handleSort = async (field: string) => {
if (sortFields.value?.find((item) => item.field === field)) {
sortFields.value = sortFields.value?.map((item) =>
item.field === field
? { ...item, order: item.order === "asc" ? "desc" : undefined }
: item,
);
} else {
sortFields.value.push({ field, order: "asc" });
}
sortFields.value = sortFields.value?.filter(
(item) => item.order !== undefined,
);
};
return {
sortFields,
sortBy,
handleSort,
getSortField,
};
};

View File

@@ -24,6 +24,7 @@ export const useUserQuery = () => {
},
page = 1,
size = 10,
sortBy = "id:desc",
) => {
const { data } = await client.GET("/iam/users", {
params: {
@@ -31,6 +32,7 @@ export const useUserQuery = () => {
pageRequestDto: {
page,
size,
sortBy,
},
userQueryDto: param,
},