refactor: 更新API接口与数据结构,统一分页返回格式
This commit is contained in:
@@ -1,39 +1,86 @@
|
||||
import request from "@/utils/request";
|
||||
import type {
|
||||
DictPageQuery,
|
||||
DictPageVo,
|
||||
DictForm,
|
||||
DictItemPageQuery,
|
||||
DictItemPageVo,
|
||||
DictTypeQueryParams,
|
||||
DictTypeItem,
|
||||
DictTypeForm,
|
||||
DictItemQueryParams,
|
||||
DictItem,
|
||||
DictItemForm,
|
||||
DictItemOption,
|
||||
OptionItem,
|
||||
} from "@/types/api";
|
||||
|
||||
const DICT_BASE_URL = "/api/v1/dicts";
|
||||
|
||||
type DictTagTypeCode = "N" | "P" | "S" | "W" | "I" | "D";
|
||||
|
||||
const decodeDictTagType = (code?: unknown): DictItemForm["tagType"] => {
|
||||
const val = String(code ?? "")
|
||||
.trim()
|
||||
.toUpperCase();
|
||||
switch (val as DictTagTypeCode) {
|
||||
case "P":
|
||||
return "primary";
|
||||
case "S":
|
||||
return "success";
|
||||
case "W":
|
||||
return "warning";
|
||||
case "I":
|
||||
return "info";
|
||||
case "D":
|
||||
return "danger";
|
||||
case "N":
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
const encodeDictTagType = (tagType?: unknown): DictTagTypeCode => {
|
||||
const val = String(tagType ?? "")
|
||||
.trim()
|
||||
.toLowerCase();
|
||||
switch (val) {
|
||||
case "primary":
|
||||
return "P";
|
||||
case "success":
|
||||
return "S";
|
||||
case "warning":
|
||||
return "W";
|
||||
case "info":
|
||||
return "I";
|
||||
case "danger":
|
||||
case "error":
|
||||
return "D";
|
||||
case "default":
|
||||
case "":
|
||||
default:
|
||||
return "N";
|
||||
}
|
||||
};
|
||||
|
||||
const DictAPI = {
|
||||
/** 字典分页列表 */
|
||||
getPage(queryParams: DictPageQuery) {
|
||||
return request<any, PageResult<DictPageVo[]>>({
|
||||
url: `${DICT_BASE_URL}/page`,
|
||||
getPage(queryParams: DictTypeQueryParams) {
|
||||
return request<any, PageResult<DictTypeItem>>({
|
||||
url: `${DICT_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
},
|
||||
/** 字典列表 */
|
||||
getList() {
|
||||
return request<any, OptionType[]>({ url: `${DICT_BASE_URL}`, method: "get" });
|
||||
return request<any, OptionItem[]>({ url: `${DICT_BASE_URL}/options`, method: "get" });
|
||||
},
|
||||
/** 字典表单数据 */
|
||||
getFormData(id: string) {
|
||||
return request<any, DictForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
|
||||
return request<any, DictTypeForm>({ url: `${DICT_BASE_URL}/${id}/form`, method: "get" });
|
||||
},
|
||||
/** 新增字典 */
|
||||
create(data: DictForm) {
|
||||
create(data: DictTypeForm) {
|
||||
return request({ url: `${DICT_BASE_URL}`, method: "post", data });
|
||||
},
|
||||
/** 修改字典 */
|
||||
update(id: string, data: DictForm) {
|
||||
update(id: string, data: DictTypeForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${id}`, method: "put", data });
|
||||
},
|
||||
/** 删除字典 */
|
||||
@@ -42,34 +89,62 @@ const DictAPI = {
|
||||
},
|
||||
|
||||
/** 获取字典项分页列表 */
|
||||
getDictItemPage(dictCode: string, queryParams: DictItemPageQuery) {
|
||||
return request<any, PageResult<DictItemPageVo[]>>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/page`,
|
||||
getDictItemPage(dictCode: string, queryParams: DictItemQueryParams) {
|
||||
return request<any, PageResult<DictItem>>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}).then((res) => ({
|
||||
...res,
|
||||
data: (res.data ?? []).map((item) => ({
|
||||
...item,
|
||||
tagType: decodeDictTagType((item as any).tagType),
|
||||
})),
|
||||
}));
|
||||
},
|
||||
/** 获取字典项列表 */
|
||||
getDictItems(dictCode: string) {
|
||||
return request<any, DictItemOption[]>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/options`,
|
||||
method: "get",
|
||||
});
|
||||
}).then((items) =>
|
||||
(items ?? []).map((item) => ({
|
||||
...item,
|
||||
tagType: decodeDictTagType((item as any).tagType),
|
||||
}))
|
||||
);
|
||||
},
|
||||
/** 新增字典项 */
|
||||
createDictItem(dictCode: string, data: DictItemForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${dictCode}/items`, method: "post", data });
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items`,
|
||||
method: "post",
|
||||
data: {
|
||||
...data,
|
||||
tagType: encodeDictTagType((data as any).tagType),
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 获取字典项表单数据 */
|
||||
getDictItemFormData(dictCode: string, id: string) {
|
||||
return request<any, DictItemForm>({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}).then((form) => ({
|
||||
...form,
|
||||
tagType: decodeDictTagType((form as any).tagType),
|
||||
}));
|
||||
},
|
||||
/** 修改字典项 */
|
||||
updateDictItem(dictCode: string, id: string, data: DictItemForm) {
|
||||
return request({ url: `${DICT_BASE_URL}/${dictCode}/items/${id}`, method: "put", data });
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${dictCode}/items/${id}`,
|
||||
method: "put",
|
||||
data: {
|
||||
...data,
|
||||
tagType: encodeDictTagType((data as any).tagType),
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 删除字典项 */
|
||||
deleteDictItems(dictCode: string, ids: string) {
|
||||
|
||||
Reference in New Issue
Block a user