请确认您输入的网址是否正确,或者点击下方按钮返回首页。
diff --git a/src/views/vehicle/vehicle-info/index.vue b/src/views/vehicle/vehicle-info/index.vue
new file mode 100644
index 00000000..219c54dd
--- /dev/null
+++ b/src/views/vehicle/vehicle-info/index.vue
@@ -0,0 +1,574 @@
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/svgo/svgo.config.cjs b/svgo/svgo.config.cjs
new file mode 100644
index 00000000..fdf6d82d
--- /dev/null
+++ b/svgo/svgo.config.cjs
@@ -0,0 +1,47 @@
+// svgo.config.cjs
+module.exports = {
+ plugins: [
+ // 预设:包含一组常用的默认优化插件
+ "preset-default",
+
+ // 移除或自定义默认预设中的特定插件行为
+ {
+ name: "removeViewBox",
+ active: false, // 如果你的项目需要保留 viewBox,可以禁用此插件
+ },
+ {
+ name: "removeDimensions",
+ params: {
+ removeWidth: true,
+ removeHeight: true,
+ },
+ },
+ {
+ name: "removeAttrs",
+ params: {
+ attrs: "(fill|stroke)", // 移除所有 fill 和 stroke 属性
+ },
+ },
+ // 显式添加或配置常用插件
+ "removeDoctype", // 移除 声明
+ "removeXMLProcInst", // 移除 XML 处理指令
+ "removeComments", // 移除注释
+ "removeMetadata", // 移除
元素
+ "removeTitle", // 移除 元素
+ "removeDesc", // 移除 元素(描述)
+ "removeUselessDefs", // 移除无用的 内容
+ "removeXMLNS", // 移除 xmlns 属性(如果不需要)
+ "removeEditorsNSData", // 移除编辑器生成的无用数据(如 Adobe Illustrator 的元数据)
+ "cleanupNumericValues", // 清理数值,如将 1.000 改为 1
+ "convertColors", // 将颜色值转换为最短形式(如 #ff0000 -> #f00)
+ "convertPathData", // 优化路径数据(合并路径、转换形状等)
+ "convertTransform", // 优化 transform 属性
+ "removeEmptyAttrs", // 移除空的属性
+ "removeEmptyContainers", // 移除空的容器元素(如 )
+ "mergePaths", // 合并相邻的路径
+ "removeHiddenElems", // 移除隐藏的元素(如 display:none)
+ "removeUnusedNS", // 移除未使用的命名空间
+ "sortAttrs", // 对属性进行排序(可选,对文件大小影响小,但可提高可读性)
+ "removeUnknownsAndDefaults", // 移除未知元素和默认值
+ ],
+};
diff --git "a/svgo/\344\275\277\347\224\250\350\257\264\346\230\216.md" "b/svgo/\344\275\277\347\224\250\350\257\264\346\230\216.md"
new file mode 100644
index 00000000..8d639148
--- /dev/null
+++ "b/svgo/\344\275\277\347\224\250\350\257\264\346\230\216.md"
@@ -0,0 +1,4 @@
+
+``` bash
+svgo --config svgo.config.cjs -f ./icons
+```
diff --git a/vite.config.ts b/vite.config.ts
index 15bca5f8..f8d4fa5e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -48,7 +48,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
changeOrigin: true,
// 代理目标地址:https://api.youlai.tech
target: env.VITE_APP_API_URL,
- rewrite: (path: string) => path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
+ //rewrite: (path: string) => path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
},
},
},
--
Gitee
From 6f6c57e66b43f06d8d44019f7711b87ce7d92f56 Mon Sep 17 00:00:00 2001
From: liqianliang <1012083552@qq.com>
Date: Fri, 3 Oct 2025 23:44:33 +0800
Subject: [PATCH 5/7] =?UTF-8?q?wip:=20:construction:=20apijson=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/system/request-api.ts | 119 ++++++++
src/api/vehicle/vehicle-info-api.ts | 12 -
src/api/vehicle/vehicle-info-apijson.ts | 212 ++++++++++++++
src/apiJson/system/RequestAPIJSON.ts | 125 +++++++++
src/types/api-json.d.ts | 12 +-
src/utils/apijson.ts | 97 ++++++-
src/views/system/request/index.vue | 336 +++++++++++++++++++++++
src/views/vehicle/vehicle-info/index.vue | 4 +-
8 files changed, 888 insertions(+), 29 deletions(-)
create mode 100644 src/api/system/request-api.ts
create mode 100644 src/api/vehicle/vehicle-info-apijson.ts
create mode 100644 src/apiJson/system/RequestAPIJSON.ts
create mode 100644 src/views/system/request/index.vue
diff --git a/src/api/system/request-api.ts b/src/api/system/request-api.ts
new file mode 100644
index 00000000..6b52971a
--- /dev/null
+++ b/src/api/system/request-api.ts
@@ -0,0 +1,119 @@
+import request from "@/utils/request";
+
+const REQUEST_BASE_URL = "/api/v1/request";
+
+const RequestAPI = {
+ /** 获取apijson校验配置分页数据 */
+ getPage(queryParams?: RequestPageQuery) {
+ return request>({
+ url: `${REQUEST_BASE_URL}/page`,
+ method: "get",
+ params: queryParams,
+ });
+ },
+ /**
+ * 获取apijson校验配置表单数据
+ *
+ * @param id apijson校验配置ID
+ * @returns apijson校验配置表单数据
+ */
+ getFormData(id: number) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${id}/form`,
+ method: "get",
+ });
+ },
+
+ /**
+ * 添加apijson校验配置
+ *
+ * @param data apijson校验配置表单数据
+ */
+ create(data: RequestForm) {
+ return request({
+ url: `${REQUEST_BASE_URL}`,
+ method: "post",
+ data,
+ });
+ },
+
+ /**
+ * 更新apijson校验配置
+ *
+ * @param id apijson校验配置ID
+ * @param data apijson校验配置表单数据
+ */
+ update(id: string, data: RequestForm) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${id}`,
+ method: "put",
+ data,
+ });
+ },
+
+ /**
+ * 批量删除apijson校验配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson校验配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${ids}`,
+ method: "delete",
+ });
+ },
+};
+
+export default RequestAPI;
+
+/** apijson校验配置分页查询参数 */
+export interface RequestPageQuery extends PageQuery {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+}
+
+/** apijson校验配置表单对象 */
+export interface RequestForm {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
+
+/** apijson校验配置分页对象 */
+export interface RequestPageVO {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
diff --git a/src/api/vehicle/vehicle-info-api.ts b/src/api/vehicle/vehicle-info-api.ts
index 4f2060f0..5f2c89e0 100644
--- a/src/api/vehicle/vehicle-info-api.ts
+++ b/src/api/vehicle/vehicle-info-api.ts
@@ -14,18 +14,6 @@ const VehicleInfoAPI = {
});
},
- /** 获取车辆基本信息分页数据 */
- getPageApiJson(queryParams?: VehicleInfoPageQuery) {
- return request>({
- url: `${APIJSON_BASE_URL}/json/get`,
- method: "post",
- data: apiJsonGetParams(
- "VehicleInfo",
- apiJsonOmit(queryParams, "pageNum", "pageSize"),
- apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
- ),
- });
- },
/**
* 获取车辆基本信息表单数据
*
diff --git a/src/api/vehicle/vehicle-info-apijson.ts b/src/api/vehicle/vehicle-info-apijson.ts
new file mode 100644
index 00000000..0be1e639
--- /dev/null
+++ b/src/api/vehicle/vehicle-info-apijson.ts
@@ -0,0 +1,212 @@
+import {
+ apiJsonDeleteTableParams,
+ apiJsonGetOneTableParams,
+ apiJsonPageQuery,
+} from "@/utils/apijson";
+import request from "@/utils/request";
+import { apiJsonOmit } from "../../utils/apijson";
+
+const VEHICLEINFO_BASE_URL = "/api/v1/vehicle-info";
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "VehicleInfo";
+const VehicleInfoAPI = {
+ /** 获取车辆基本信息分页数据 */
+ getPage(queryParams?: VehicleInfoPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取车辆基本信息表单数据
+ *
+ * @param id 车辆基本信息ID
+ * @returns 车辆基本信息表单数据
+ */
+ getFormData(id: number) {
+ return request({
+ url: `${VEHICLEINFO_BASE_URL}/${id}/form`,
+ method: "get",
+ });
+ },
+
+ /**
+ * 添加车辆基本信息
+ *
+ * @param data 车辆基本信息表单数据
+ */
+ create(data: VehicleInfoForm) {
+ return request({
+ url: `${VEHICLEINFO_BASE_URL}`,
+ method: "post",
+ data,
+ });
+ },
+
+ /**
+ * 更新车辆基本信息
+ *
+ * @param id 车辆基本信息ID
+ * @param data 车辆基本信息表单数据
+ */
+ update(id: string, data: VehicleInfoForm) {
+ return request({
+ url: `${VEHICLEINFO_BASE_URL}/${id}`,
+ method: "put",
+ data,
+ });
+ },
+
+ /**
+ * 批量删除车辆基本信息,多个以英文逗号(,)分割
+ *
+ * @param ids 车辆基本信息ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "delete",
+ data: apiJsonDeleteTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ ""
+ ),
+ });
+ },
+};
+
+export default VehicleInfoAPI;
+
+/** 车辆基本信息分页查询参数 */
+export interface VehicleInfoPageQuery extends PageQuery {}
+
+/** 车辆基本信息表单对象 */
+export interface VehicleInfoForm {
+ /** 主键ID */
+ id?: number;
+ /** 车辆唯一编号(内部系统编号) */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型:手动、自动、手自一体 */
+ gearboxType?: string;
+ /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ status?: string;
+ /** 所属部门ID(无外键约束) */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID(无外键约束) */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
+
+/** 车辆基本信息分页对象 */
+export interface VehicleInfoPageVO {
+ /** 主键ID */
+ id?: number;
+ /** 车辆唯一编号(内部系统编号) */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型:手动、自动、手自一体 */
+ gearboxType?: string;
+ /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ status?: string;
+ /** 所属部门ID(无外键约束) */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID(无外键约束) */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
diff --git a/src/apiJson/system/RequestAPIJSON.ts b/src/apiJson/system/RequestAPIJSON.ts
new file mode 100644
index 00000000..a86d864c
--- /dev/null
+++ b/src/apiJson/system/RequestAPIJSON.ts
@@ -0,0 +1,125 @@
+import { apiJsonGetOneTableParams, apiJsonOmit, apiJsonPageQuery } from "@/utils/apijson";
+import request from "@/utils/request";
+
+const REQUEST_BASE_URL = "/api/v1/request";
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "Request";
+const RequestAPI = {
+ /** 获取apijson校验配置分页数据 */
+ getPage(queryParams?: RequestPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取apijson校验配置表单数据
+ *
+ * @param id apijson校验配置ID
+ * @returns apijson校验配置表单数据
+ */
+ getFormData(id: number) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${id}/form`,
+ method: "get",
+ });
+ },
+
+ /**
+ * 添加apijson校验配置
+ *
+ * @param data apijson校验配置表单数据
+ */
+ create(data: RequestForm) {
+ return request({
+ url: `${REQUEST_BASE_URL}`,
+ method: "post",
+ data,
+ });
+ },
+
+ /**
+ * 更新apijson校验配置
+ *
+ * @param id apijson校验配置ID
+ * @param data apijson校验配置表单数据
+ */
+ update(id: string, data: RequestForm) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${id}`,
+ method: "put",
+ data,
+ });
+ },
+
+ /**
+ * 批量删除apijson校验配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson校验配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${REQUEST_BASE_URL}/${ids}`,
+ method: "delete",
+ });
+ },
+};
+
+export default RequestAPI;
+
+/** apijson校验配置分页查询参数 */
+export interface RequestPageQuery extends PageQuery {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+}
+
+/** apijson校验配置表单对象 */
+export interface RequestForm {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
+
+/** apijson校验配置分页对象 */
+export interface RequestPageVO {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
diff --git a/src/types/api-json.d.ts b/src/types/api-json.d.ts
index 54b924f2..82365912 100644
--- a/src/types/api-json.d.ts
+++ b/src/types/api-json.d.ts
@@ -13,7 +13,7 @@ declare global {
/**
* 表查询条件
*/
- interface ApiJsonGetTableParams {
+ interface ApiJsonTableParams {
[key: string]: string | number | Array | undefined | null;
/**
* 字段过滤, "id,date,content:text"
@@ -40,7 +40,7 @@ declare global {
/**
* {表名: 查询条件}
*/
- [key: string]: ApiJsonGetTableParams | any;
+ [key: string]: ApiJsonTableParams | any;
query?: ApiJsonGetQueryType;
tag?: string;
page?: number;
@@ -55,6 +55,14 @@ declare global {
"total@"?: "/[]/total";
}
+ /**
+ * 删除
+ */
+ interface ApiJsonPutParams {
+ [key: string]: ApiJsonTableParams;
+ tag: string;
+ }
+
interface ApiJsonPageQueryResult {
code: number;
msg: string;
diff --git a/src/utils/apijson.ts b/src/utils/apijson.ts
index 382ef689..a29d2db9 100644
--- a/src/utils/apijson.ts
+++ b/src/utils/apijson.ts
@@ -1,4 +1,28 @@
import { ApiCodeEnum, ApiJsonCodeEnum } from "@/enums";
+import { table } from "console";
+
+// 工具类型:将单个 snake_case 字符串转为 camelCase
+type SnakeToCamel = S extends `${infer T}_${infer U}`
+ ? `${T}${Capitalize}`
+ : S;
+
+// 将对象第一层的 key 从 snake_case 转为 camelCase
+type ToCamelCase = {
+ [K in keyof T as SnakeToCamel]: T[K];
+};
+
+// 实现函数(仅处理第一层)
+function keysToCamelCase>(obj: T): ToCamelCase {
+ const result = {} as any;
+ for (const key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ // 转换 key: snake_case -> camelCase
+ const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
+ result[camelKey] = obj[key]; // 直接赋值,不递归
+ }
+ }
+ return result;
+}
/**
* apijson 分页
@@ -46,9 +70,38 @@ export function apiJsonOmit(
return result;
}
-export function apiJsonGetParams(
+/**
+ * ApiJsonResponse 转换为 ApiResponse
+ * @param res
+ * @returns
+ */
+export function apiJsonResponseToApiResponse(res: ApiJsonResponse): ApiResponse {
+ const code = res.code === ApiJsonCodeEnum.SUCCESS ? ApiCodeEnum.SUCCESS : ApiCodeEnum.ERROR;
+ const data = res["[]"] as { [key: string]: ApiJsonTableParams }[];
+ const list = data.map((e) => keysToCamelCase(Object.values(e)[0]));
+ return {
+ code,
+ data: {
+ list,
+ total: res.listInfo?.total,
+ page: res.listInfo?.page,
+ count: res.listInfo?.count,
+ },
+ msg: res.msg,
+ };
+}
+
+/**
+ * 单表查询,拼接get请求表参数
+ * @param tableName
+ * @param params
+ * @param pager
+ * @param query
+ * @returns
+ */
+export function apiJsonGetOneTableParams(
tableName: string,
- params: ApiJsonGetTableParams,
+ params: ApiJsonTableParams,
pager: ApiJsonPageQuery | undefined = undefined,
query: ApiJsonGetQueryType | undefined = 2
): ApiJsonGetParams {
@@ -63,18 +116,36 @@ export function apiJsonGetParams(
};
}
-export function apiJsonResponseToApiResponse(res: ApiJsonResponse): ApiResponse {
- const code = res.code === ApiJsonCodeEnum.SUCCESS ? ApiCodeEnum.SUCCESS : ApiCodeEnum.ERROR;
- const data = res["[]"] as any[];
- const list = data.map((e) => Object.values(e)[0]);
+/**
+ * 多表查询,拼接get请求参数
+ * @param tables
+ * @param pager
+ * @param query
+ * @returns
+ */
+export function apiJsonGetTableParams(
+ tables: ApiJsonTableParams,
+ pager: ApiJsonPageQuery | undefined = undefined,
+ query: ApiJsonGetQueryType | undefined = 2
+): ApiJsonGetParams {
return {
- code,
- data: {
- list,
- total: res.listInfo?.total,
- page: res.listInfo?.page,
- count: res.listInfo?.count,
+ "[]": {
+ ...tables,
+ query,
+ page: pager?.page,
+ count: pager?.count,
},
- msg: res.msg,
+ "total@": "/[]/total",
};
}
+
+export function apiJsonDeleteTableParams(
+ tableName: string,
+ params: ApiJsonTableParams,
+ tag: string
+): ApiJsonPutParams {
+ return {
+ [tableName]: params,
+ tag,
+ } as ApiJsonPutParams;
+}
diff --git a/src/views/system/request/index.vue b/src/views/system/request/index.vue
new file mode 100644
index 00000000..72e9480d
--- /dev/null
+++ b/src/views/system/request/index.vue
@@ -0,0 +1,336 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/vehicle/vehicle-info/index.vue b/src/views/vehicle/vehicle-info/index.vue
index 219c54dd..cabfb32f 100644
--- a/src/views/vehicle/vehicle-info/index.vue
+++ b/src/views/vehicle/vehicle-info/index.vue
@@ -419,7 +419,7 @@ import VehicleInfoAPI, {
VehicleInfoPageVO,
VehicleInfoForm,
VehicleInfoPageQuery,
-} from "@/api/vehicle/vehicle-info-api";
+} from "@/api/vehicle/vehicle-info-apijson";
const queryFormRef = ref();
const dataFormRef = ref();
@@ -469,7 +469,7 @@ const rules = reactive({
/** 查询车辆基本信息 */
function handleQuery() {
loading.value = true;
- VehicleInfoAPI.getPageApiJson(queryParams)
+ VehicleInfoAPI.getPage(queryParams)
.then((data) => {
console.log(data);
pageData.value = data.list;
--
Gitee
From 2355d0bf5c19dd314808bbf325305b08fe4675d8 Mon Sep 17 00:00:00 2001
From: liqianliang <1012083552@qq.com>
Date: Sat, 4 Oct 2025 19:24:13 +0800
Subject: [PATCH 6/7] =?UTF-8?q?wip:=20:construction:=20apijson=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.vscode/settings.json | 5 +-
src/api/system/access-api.ts | 134 ++++++
src/api/system/request-api.ts | 2 -
src/api/vehicle/vehicle-info-api.ts | 26 +-
src/apiJson3/system/AccessAPIJSON.ts | 161 +++++++
.../system/RequestAPIJSON.ts | 52 ++-
src/apiJson3/system/vehicle-info-apijson.ts | 224 ++++++++++
src/apiJson3/vehicle/vehicle-info-apijson.ts | 239 +++++++++++
src/apijson/system/access-apijson.ts | 166 ++++++++
src/apijson/system/request-apijson.ts | 149 +++++++
.../vehicle/vehicle-info-apijson.ts | 65 +--
src/types/api-json.d.ts | 4 +
src/utils/apijson.ts | 30 +-
src/views/system/access/index.vue | 396 ++++++++++++++++++
src/views/system/request/index.vue | 49 ++-
src/views/vehicle/vehicle-info/index.vue | 117 +++---
16 files changed, 1682 insertions(+), 137 deletions(-)
create mode 100644 src/api/system/access-api.ts
create mode 100644 src/apiJson3/system/AccessAPIJSON.ts
rename src/{apiJson => apiJson3}/system/RequestAPIJSON.ts (70%)
create mode 100644 src/apiJson3/system/vehicle-info-apijson.ts
create mode 100644 src/apiJson3/vehicle/vehicle-info-apijson.ts
create mode 100644 src/apijson/system/access-apijson.ts
create mode 100644 src/apijson/system/request-apijson.ts
rename src/{api => apijson}/vehicle/vehicle-info-apijson.ts (80%)
create mode 100644 src/views/system/access/index.vue
diff --git a/.vscode/settings.json b/.vscode/settings.json
index b622da8c..d05ee60e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -70,5 +70,8 @@
"i18n-ally.keystyle": "nested",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[markdown]": {
+ "editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
}
-}
+}
\ No newline at end of file
diff --git a/src/api/system/access-api.ts b/src/api/system/access-api.ts
new file mode 100644
index 00000000..64de2a35
--- /dev/null
+++ b/src/api/system/access-api.ts
@@ -0,0 +1,134 @@
+import request from "@/utils/request";
+
+const ACCESS_BASE_URL = "/api/v1/access";
+
+const AccessAPI = {
+ /** 获取apijson权限配置分页数据 */
+ getPage(queryParams?: AccessPageQuery) {
+ return request>({
+ url: `${ACCESS_BASE_URL}/page`,
+ method: "get",
+ params: queryParams,
+ });
+ },
+ /**
+ * 获取apijson权限配置表单数据
+ *
+ * @param id apijson权限配置ID
+ * @returns apijson权限配置表单数据
+ */
+ getFormData(id: number) {
+ return request({
+ url: `${ACCESS_BASE_URL}/${id}/form`,
+ method: "get",
+ });
+ },
+
+ /**
+ * 添加apijson权限配置
+ *
+ * @param data apijson权限配置表单数据
+ */
+ create(data: AccessForm) {
+ return request({
+ url: `${ACCESS_BASE_URL}`,
+ method: "post",
+ data,
+ });
+ },
+
+ /**
+ * 更新apijson权限配置
+ *
+ * @param id apijson权限配置ID
+ * @param data apijson权限配置表单数据
+ */
+ update(id: string, data: AccessForm) {
+ return request({
+ url: `${ACCESS_BASE_URL}/${id}`,
+ method: "put",
+ data,
+ });
+ },
+
+ /**
+ * 批量删除apijson权限配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson权限配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${ACCESS_BASE_URL}/${ids}`,
+ method: "delete",
+ });
+ },
+};
+
+export default AccessAPI;
+
+/** apijson权限配置分页查询参数 */
+export interface AccessPageQuery extends PageQuery {
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+}
+
+/** apijson权限配置表单对象 */
+export interface AccessForm {
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
+
+/** apijson权限配置分页对象 */
+export interface AccessPageVO {
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
diff --git a/src/api/system/request-api.ts b/src/api/system/request-api.ts
index 6b52971a..5c3c6213 100644
--- a/src/api/system/request-api.ts
+++ b/src/api/system/request-api.ts
@@ -80,8 +80,6 @@ export interface RequestPageQuery extends PageQuery {
/** apijson校验配置表单对象 */
export interface RequestForm {
- /** 唯一标识 */
- id?: number;
/** 调试 */
debug?: number;
/** 版本 */
diff --git a/src/api/vehicle/vehicle-info-api.ts b/src/api/vehicle/vehicle-info-api.ts
index 5f2c89e0..73bd7df1 100644
--- a/src/api/vehicle/vehicle-info-api.ts
+++ b/src/api/vehicle/vehicle-info-api.ts
@@ -1,9 +1,7 @@
-import { apiJsonGetParams, apiJsonPageQuery } from "@/utils/apijson";
import request from "@/utils/request";
-import { apiJsonOmit } from "../../utils/apijson";
const VEHICLEINFO_BASE_URL = "/api/v1/vehicle-info";
-const APIJSON_BASE_URL = "/api";
+
const VehicleInfoAPI = {
/** 获取车辆基本信息分页数据 */
getPage(queryParams?: VehicleInfoPageQuery) {
@@ -13,7 +11,6 @@ const VehicleInfoAPI = {
params: queryParams,
});
},
-
/**
* 获取车辆基本信息表单数据
*
@@ -70,12 +67,15 @@ const VehicleInfoAPI = {
export default VehicleInfoAPI;
/** 车辆基本信息分页查询参数 */
-export interface VehicleInfoPageQuery extends PageQuery {}
+export interface VehicleInfoPageQuery extends PageQuery {
+ /** 车辆唯一编号(内部系统编号) */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+}
/** 车辆基本信息表单对象 */
export interface VehicleInfoForm {
- /** 主键ID */
- id?: number;
/** 车辆唯一编号(内部系统编号) */
vehicleId?: string;
/** 车牌号 */
@@ -102,7 +102,7 @@ export interface VehicleInfoForm {
registrationDate?: Date;
/** 首次上牌日期 */
firstRegistrationDate?: Date;
- /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ /** 燃料类型 */
fuelType?: string;
/** 排量(L) */
displacement?: number;
@@ -114,9 +114,9 @@ export interface VehicleInfoForm {
tonnage?: number;
/** 颜色 */
color?: string;
- /** 变速箱类型:手动、自动、手自一体 */
+ /** 变速箱类型 */
gearboxType?: string;
- /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ /** 车辆状态 */
status?: string;
/** 所属部门ID(无外键约束) */
ownerDeptId?: number;
@@ -164,7 +164,7 @@ export interface VehicleInfoPageVO {
registrationDate?: Date;
/** 首次上牌日期 */
firstRegistrationDate?: Date;
- /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ /** 燃料类型 */
fuelType?: string;
/** 排量(L) */
displacement?: number;
@@ -176,9 +176,9 @@ export interface VehicleInfoPageVO {
tonnage?: number;
/** 颜色 */
color?: string;
- /** 变速箱类型:手动、自动、手自一体 */
+ /** 变速箱类型 */
gearboxType?: string;
- /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ /** 车辆状态 */
status?: string;
/** 所属部门ID(无外键约束) */
ownerDeptId?: number;
diff --git a/src/apiJson3/system/AccessAPIJSON.ts b/src/apiJson3/system/AccessAPIJSON.ts
new file mode 100644
index 00000000..6e0b31ea
--- /dev/null
+++ b/src/apiJson3/system/AccessAPIJSON.ts
@@ -0,0 +1,161 @@
+import request from "@/utils/request";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
+
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "Access";
+
+const AccessAPI = {
+ /** 获取apijson权限配置分页数据 */
+ getPage(queryParams?: AccessPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取apijson权限配置表单数据
+ *
+ * @param id apijson权限配置ID
+ * @returns apijson权限配置表单数据
+ */
+ getFormData(id: number) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
+ });
+ },
+
+ /**
+ * 添加apijson权限配置
+ *
+ * @param data apijson权限配置表单数据
+ */
+ create(data: AccessForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/post`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 更新apijson权限配置
+ *
+ * @param id apijson权限配置ID
+ * @param data apijson权限配置表单数据
+ */
+ update(id: string, data: AccessForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 批量删除apijson权限配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson权限配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+};
+
+export default AccessAPI;
+
+/** apijson权限配置分页查询参数 */
+export interface AccessPageQuery extends PageQuery {}
+
+/** apijson权限配置表单对象 */
+export interface AccessForm {
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
+
+/** apijson权限配置分页对象 */
+export interface AccessPageVO {
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
diff --git a/src/apiJson/system/RequestAPIJSON.ts b/src/apiJson3/system/RequestAPIJSON.ts
similarity index 70%
rename from src/apiJson/system/RequestAPIJSON.ts
rename to src/apiJson3/system/RequestAPIJSON.ts
index a86d864c..97d844da 100644
--- a/src/apiJson/system/RequestAPIJSON.ts
+++ b/src/apiJson3/system/RequestAPIJSON.ts
@@ -1,4 +1,9 @@
-import { apiJsonGetOneTableParams, apiJsonOmit, apiJsonPageQuery } from "@/utils/apijson";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
import request from "@/utils/request";
const REQUEST_BASE_URL = "/api/v1/request";
@@ -24,9 +29,10 @@ const RequestAPI = {
* @returns apijson校验配置表单数据
*/
getFormData(id: number) {
- return request({
- url: `${REQUEST_BASE_URL}/${id}/form`,
- method: "get",
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
});
},
@@ -37,9 +43,15 @@ const RequestAPI = {
*/
create(data: RequestForm) {
return request({
- url: `${REQUEST_BASE_URL}`,
+ url: `${APIJSON_BASE_URL}/json/post`,
method: "post",
- data,
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
});
},
@@ -51,9 +63,16 @@ const RequestAPI = {
*/
update(id: string, data: RequestForm) {
return request({
- url: `${REQUEST_BASE_URL}/${id}`,
- method: "put",
- data,
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
});
},
@@ -64,8 +83,15 @@ const RequestAPI = {
*/
deleteByIds(ids: string) {
return request({
- url: `${REQUEST_BASE_URL}/${ids}`,
- method: "delete",
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
});
},
};
@@ -97,7 +123,7 @@ export interface RequestForm {
/** 标签 */
tag?: string;
/** 校验结构JSON */
- structure?: string;
+ structure?: object;
/** 详细说明 */
detail?: string;
/** 创建日期 */
@@ -117,7 +143,7 @@ export interface RequestPageVO {
/** 标签 */
tag?: string;
/** 校验结构JSON */
- structure?: string;
+ structure?: object;
/** 详细说明 */
detail?: string;
/** 创建日期 */
diff --git a/src/apiJson3/system/vehicle-info-apijson.ts b/src/apiJson3/system/vehicle-info-apijson.ts
new file mode 100644
index 00000000..046ea7e1
--- /dev/null
+++ b/src/apiJson3/system/vehicle-info-apijson.ts
@@ -0,0 +1,224 @@
+import request from "@/utils/request";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
+
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "VehicleInfo";
+
+const VehicleInfoAPI = {
+ /** 获取车辆基本信息分页数据 */
+ getPage(queryParams?: VehicleInfoPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取车辆基本信息表单数据
+ *
+ * @param id 车辆基本信息ID
+ * @returns 车辆基本信息表单数据
+ */
+ getFormData(id: number) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
+ });
+ },
+
+ /**
+ * 添加车辆基本信息
+ *
+ * @param data 车辆基本信息表单数据
+ */
+ create(data: VehicleInfoForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/post`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 更新车辆基本信息
+ *
+ * @param id 车辆基本信息ID
+ * @param data 车辆基本信息表单数据
+ */
+ update(id: string, data: VehicleInfoForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 批量删除车辆基本信息,多个以英文逗号(,)分割
+ *
+ * @param ids 车辆基本信息ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+};
+
+export default VehicleInfoAPI;
+
+/** 车辆基本信息分页查询参数 */
+export interface VehicleInfoPageQuery extends PageQuery {}
+
+/** 车辆基本信息表单对象 */
+export interface VehicleInfoForm {
+ /** 车辆唯一编号 */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型 */
+ gearboxType?: string;
+ /** 车辆状态 */
+ status?: string;
+ /** 所属部门ID */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
+
+/** 车辆基本信息分页对象 */
+export interface VehicleInfoPageVO {
+ /** 主键ID */
+ id?: number;
+ /** 车辆唯一编号 */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型 */
+ gearboxType?: string;
+ /** 车辆状态 */
+ status?: string;
+ /** 所属部门ID */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
diff --git a/src/apiJson3/vehicle/vehicle-info-apijson.ts b/src/apiJson3/vehicle/vehicle-info-apijson.ts
new file mode 100644
index 00000000..004ed332
--- /dev/null
+++ b/src/apiJson3/vehicle/vehicle-info-apijson.ts
@@ -0,0 +1,239 @@
+import request from "@/utils/request";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
+
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "VehicleInfo";
+
+const VehicleInfoAPI = {
+ /** 获取车辆基本信息分页数据 */
+ getPage(queryParams?: VehicleInfoPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取车辆基本信息表单数据
+ *
+ * @param id 车辆基本信息ID
+ * @returns 车辆基本信息表单数据
+ */
+ getFormData(id: number) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
+ });
+ },
+
+ /**
+ * 添加车辆基本信息
+ *
+ * @param data 车辆基本信息表单数据
+ */
+ create(data: VehicleInfoForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/post`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 更新车辆基本信息
+ *
+ * @param id 车辆基本信息ID
+ * @param data 车辆基本信息表单数据
+ */
+ update(id: string, data: VehicleInfoForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 批量删除车辆基本信息,多个以英文逗号(,)分割
+ *
+ * @param ids 车辆基本信息ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+};
+
+export default VehicleInfoAPI;
+
+/** 车辆基本信息分页查询参数 */
+export interface VehicleInfoPageQuery extends PageQuery {
+ /** 车辆唯一编号 */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 核定载客数 */
+ seats?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型 */
+ gearboxType?: string;
+ /** 车辆状态 */
+ status?: string;
+}
+
+/** 车辆基本信息表单对象 */
+export interface VehicleInfoForm {
+ /** 车辆唯一编号 */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型 */
+ gearboxType?: string;
+ /** 车辆状态 */
+ status?: string;
+ /** 所属部门ID */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
+
+/** 车辆基本信息分页对象 */
+export interface VehicleInfoPageVO {
+ /** 主键ID */
+ id?: number;
+ /** 车辆唯一编号 */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+ /** 车辆识别代号(VIN) */
+ vin?: string;
+ /** 品牌 */
+ brand?: string;
+ /** 车型 */
+ model?: string;
+ /** 车系 */
+ series?: string;
+ /** 发动机型号 */
+ engineModel?: string;
+ /** 发动机号 */
+ engineNumber?: string;
+ /** 购置日期 */
+ purchaseDate?: Date;
+ /** 购置价格 */
+ purchasePrice?: number;
+ /** 购自单位/个人 */
+ purchaseFrom?: string;
+ /** 注册日期 */
+ registrationDate?: Date;
+ /** 首次上牌日期 */
+ firstRegistrationDate?: Date;
+ /** 燃料类型 */
+ fuelType?: string;
+ /** 排量(L) */
+ displacement?: number;
+ /** 功率(kW) */
+ power?: number;
+ /** 核定载客数 */
+ seats?: number;
+ /** 核定载质量(吨) */
+ tonnage?: number;
+ /** 颜色 */
+ color?: string;
+ /** 变速箱类型 */
+ gearboxType?: string;
+ /** 车辆状态 */
+ status?: string;
+ /** 所属部门ID */
+ ownerDeptId?: number;
+ /** 当前驾驶人ID */
+ currentDriverId?: number;
+ /** 创建时间 */
+ createdAt?: Date;
+ /** 更新时间 */
+ updatedAt?: Date;
+ /** 扩展字段1 */
+ extendedField1?: string;
+ /** 扩展字段2 */
+ extendedField2?: string;
+ /** 扩展字段3 */
+ extendedField3?: string;
+}
diff --git a/src/apijson/system/access-apijson.ts b/src/apijson/system/access-apijson.ts
new file mode 100644
index 00000000..29ed9201
--- /dev/null
+++ b/src/apijson/system/access-apijson.ts
@@ -0,0 +1,166 @@
+import request from "@/utils/request";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
+
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "Access";
+
+const AccessAPI = {
+ /** 获取apijson权限配置分页数据 */
+ getPage(queryParams?: AccessPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取apijson权限配置表单数据
+ *
+ * @param id apijson权限配置ID
+ * @returns apijson权限配置表单数据
+ */
+ getFormData(id: number) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
+ });
+ },
+
+ /**
+ * 添加apijson权限配置
+ *
+ * @param data apijson权限配置表单数据
+ */
+ create(data: AccessForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/post`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 更新apijson权限配置
+ *
+ * @param id apijson权限配置ID
+ * @param data apijson权限配置表单数据
+ */
+ update(id: string, data: AccessForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 批量删除apijson权限配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson权限配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+};
+
+export default AccessAPI;
+
+/** apijson权限配置分页查询参数 */
+export interface AccessPageQuery extends PageQuery {
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+}
+
+/** apijson权限配置表单对象 */
+export interface AccessForm {
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
+
+/** apijson权限配置分页对象 */
+export interface AccessPageVO {
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 数据库名/模式 */
+ schema?: string;
+ /** 实际表名 */
+ name?: string;
+ /** 表别名 */
+ alias?: string;
+ /** 允许 get 的角色列表 */
+ get?: string;
+ /** 允许 head 的角色列表 */
+ head?: string;
+ /** 允许 gets 的角色列表 */
+ gets?: string;
+ /** 允许 heads 的角色列表 */
+ heads?: string;
+ /** 允许 post 的角色列表 */
+ post?: string;
+ /** 允许 put 的角色列表 */
+ put?: string;
+ /** 允许 delete 的角色列表 */
+ delete?: string;
+ /** 创建时间 */
+ date?: Date;
+ detail?: string;
+}
diff --git a/src/apijson/system/request-apijson.ts b/src/apijson/system/request-apijson.ts
new file mode 100644
index 00000000..62a0d48c
--- /dev/null
+++ b/src/apijson/system/request-apijson.ts
@@ -0,0 +1,149 @@
+import request from "@/utils/request";
+import {
+ apiJsonGetOneTableParams,
+ apiJsonOmit,
+ apiJsonPageQuery,
+ apiJsonPostTableParams,
+} from "@/utils/apijson";
+
+const APIJSON_BASE_URL = "/api";
+const TABLE_NAME = "Request";
+
+const RequestAPI = {
+ /** 获取apijson校验配置分页数据 */
+ getPage(queryParams?: RequestPageQuery) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(
+ TABLE_NAME,
+ apiJsonOmit(queryParams, "pageNum", "pageSize"),
+ apiJsonPageQuery(queryParams?.pageNum, queryParams?.pageSize)
+ ),
+ });
+ },
+ /**
+ * 获取apijson校验配置表单数据
+ *
+ * @param id apijson校验配置ID
+ * @returns apijson校验配置表单数据
+ */
+ getFormData(id: number) {
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
+ });
+ },
+
+ /**
+ * 添加apijson校验配置
+ *
+ * @param data apijson校验配置表单数据
+ */
+ create(data: RequestForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/post`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 更新apijson校验配置
+ *
+ * @param id apijson校验配置ID
+ * @param data apijson校验配置表单数据
+ */
+ update(id: string, data: RequestForm) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+
+ /**
+ * 批量删除apijson校验配置,多个以英文逗号(,)分割
+ *
+ * @param ids apijson校验配置ID字符串,多个以英文逗号(,)分割
+ */
+ deleteByIds(ids: string) {
+ return request({
+ url: `${APIJSON_BASE_URL}/json/delete`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ "id{}": ids.split(","),
+ },
+ TABLE_NAME
+ ),
+ });
+ },
+};
+
+export default RequestAPI;
+
+/** apijson校验配置分页查询参数 */
+export interface RequestPageQuery extends PageQuery {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+}
+
+/** apijson校验配置表单对象 */
+export interface RequestForm {
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
+
+/** apijson校验配置分页对象 */
+export interface RequestPageVO {
+ /** 唯一标识 */
+ id?: number;
+ /** 调试 */
+ debug?: number;
+ /** 版本 */
+ version?: number;
+ /** 请求方式 */
+ method?: string;
+ /** 标签 */
+ tag?: string;
+ /** 校验结构JSON */
+ structure?: string;
+ /** 详细说明 */
+ detail?: string;
+ /** 创建日期 */
+ date?: Date;
+}
diff --git a/src/api/vehicle/vehicle-info-apijson.ts b/src/apijson/vehicle/vehicle-info-apijson.ts
similarity index 80%
rename from src/api/vehicle/vehicle-info-apijson.ts
rename to src/apijson/vehicle/vehicle-info-apijson.ts
index 0be1e639..151ef99a 100644
--- a/src/api/vehicle/vehicle-info-apijson.ts
+++ b/src/apijson/vehicle/vehicle-info-apijson.ts
@@ -1,14 +1,14 @@
+import request from "@/utils/request";
import {
- apiJsonDeleteTableParams,
apiJsonGetOneTableParams,
+ apiJsonOmit,
apiJsonPageQuery,
+ apiJsonPostTableParams,
} from "@/utils/apijson";
-import request from "@/utils/request";
-import { apiJsonOmit } from "../../utils/apijson";
-const VEHICLEINFO_BASE_URL = "/api/v1/vehicle-info";
const APIJSON_BASE_URL = "/api";
const TABLE_NAME = "VehicleInfo";
+
const VehicleInfoAPI = {
/** 获取车辆基本信息分页数据 */
getPage(queryParams?: VehicleInfoPageQuery) {
@@ -29,9 +29,10 @@ const VehicleInfoAPI = {
* @returns 车辆基本信息表单数据
*/
getFormData(id: number) {
- return request({
- url: `${VEHICLEINFO_BASE_URL}/${id}/form`,
- method: "get",
+ return request>({
+ url: `${APIJSON_BASE_URL}/json/get`,
+ method: "post",
+ data: apiJsonGetOneTableParams(TABLE_NAME, { id }, apiJsonPageQuery(1, 1)),
});
},
@@ -42,9 +43,15 @@ const VehicleInfoAPI = {
*/
create(data: VehicleInfoForm) {
return request({
- url: `${VEHICLEINFO_BASE_URL}`,
+ url: `${APIJSON_BASE_URL}/json/post`,
method: "post",
- data,
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
});
},
@@ -56,9 +63,16 @@ const VehicleInfoAPI = {
*/
update(id: string, data: VehicleInfoForm) {
return request({
- url: `${VEHICLEINFO_BASE_URL}/${id}`,
- method: "put",
- data,
+ url: `${APIJSON_BASE_URL}/json/put`,
+ method: "post",
+ data: apiJsonPostTableParams(
+ TABLE_NAME,
+ {
+ id,
+ ...(data as ApiJsonTableParams),
+ },
+ TABLE_NAME
+ ),
});
},
@@ -70,13 +84,13 @@ const VehicleInfoAPI = {
deleteByIds(ids: string) {
return request({
url: `${APIJSON_BASE_URL}/json/delete`,
- method: "delete",
- data: apiJsonDeleteTableParams(
+ method: "post",
+ data: apiJsonPostTableParams(
TABLE_NAME,
{
"id{}": ids.split(","),
},
- ""
+ TABLE_NAME
),
});
},
@@ -85,12 +99,15 @@ const VehicleInfoAPI = {
export default VehicleInfoAPI;
/** 车辆基本信息分页查询参数 */
-export interface VehicleInfoPageQuery extends PageQuery {}
+export interface VehicleInfoPageQuery extends PageQuery {
+ /** 车辆唯一编号(内部系统编号) */
+ vehicleId?: string;
+ /** 车牌号 */
+ licensePlate?: string;
+}
/** 车辆基本信息表单对象 */
export interface VehicleInfoForm {
- /** 主键ID */
- id?: number;
/** 车辆唯一编号(内部系统编号) */
vehicleId?: string;
/** 车牌号 */
@@ -117,7 +134,7 @@ export interface VehicleInfoForm {
registrationDate?: Date;
/** 首次上牌日期 */
firstRegistrationDate?: Date;
- /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ /** 燃料类型 */
fuelType?: string;
/** 排量(L) */
displacement?: number;
@@ -129,9 +146,9 @@ export interface VehicleInfoForm {
tonnage?: number;
/** 颜色 */
color?: string;
- /** 变速箱类型:手动、自动、手自一体 */
+ /** 变速箱类型 */
gearboxType?: string;
- /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ /** 车辆状态 */
status?: string;
/** 所属部门ID(无外键约束) */
ownerDeptId?: number;
@@ -179,7 +196,7 @@ export interface VehicleInfoPageVO {
registrationDate?: Date;
/** 首次上牌日期 */
firstRegistrationDate?: Date;
- /** 燃料类型:汽油、柴油、电、混动、氢能源 */
+ /** 燃料类型 */
fuelType?: string;
/** 排量(L) */
displacement?: number;
@@ -191,9 +208,9 @@ export interface VehicleInfoPageVO {
tonnage?: number;
/** 颜色 */
color?: string;
- /** 变速箱类型:手动、自动、手自一体 */
+ /** 变速箱类型 */
gearboxType?: string;
- /** 车辆状态:在用、停用、维修中、已报废、已转卖 */
+ /** 车辆状态 */
status?: string;
/** 所属部门ID(无外键约束) */
ownerDeptId?: number;
diff --git a/src/types/api-json.d.ts b/src/types/api-json.d.ts
index 82365912..7baf68a3 100644
--- a/src/types/api-json.d.ts
+++ b/src/types/api-json.d.ts
@@ -20,6 +20,10 @@ declare global {
* 别名写法:content:time
*/
"@column"?: string;
+ /**
+ * 排序, "date-,id,content+"
+ */
+ "@order"?: string;
}
/**
diff --git a/src/utils/apijson.ts b/src/utils/apijson.ts
index a29d2db9..01b2a6c4 100644
--- a/src/utils/apijson.ts
+++ b/src/utils/apijson.ts
@@ -1,5 +1,6 @@
import { ApiCodeEnum, ApiJsonCodeEnum } from "@/enums";
import { table } from "console";
+import request from "@/utils/request";
// 工具类型:将单个 snake_case 字符串转为 camelCase
type SnakeToCamel = S extends `${infer T}_${infer U}`
@@ -24,6 +25,25 @@ function keysToCamelCase>(obj: T): ToCamelCase
return result;
}
+// 工具函数:将 camelCase 转换为 snake_case
+function camelToSnake(str: string): string {
+ return str.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
+}
+
+// 非递归版本:将 camelCase 转换为 snake_case
+function camelToSnakeKeys(obj: T): { [key: string]: any } {
+ const result: { [key: string]: any } = {};
+
+ for (const key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ const snakeKey = camelToSnake(key);
+ result[snakeKey] = obj[key]; // 直接赋值,不做递归处理
+ }
+ }
+
+ return result;
+}
+
/**
* apijson 分页
* @param page 当前页
@@ -78,7 +98,7 @@ export function apiJsonOmit(
export function apiJsonResponseToApiResponse(res: ApiJsonResponse): ApiResponse {
const code = res.code === ApiJsonCodeEnum.SUCCESS ? ApiCodeEnum.SUCCESS : ApiCodeEnum.ERROR;
const data = res["[]"] as { [key: string]: ApiJsonTableParams }[];
- const list = data.map((e) => keysToCamelCase(Object.values(e)[0]));
+ const list = data ? data.map((e) => keysToCamelCase(Object.values(e)[0])) : [];
return {
code,
data: {
@@ -107,7 +127,7 @@ export function apiJsonGetOneTableParams(
): ApiJsonGetParams {
return {
"[]": {
- [tableName]: params,
+ [tableName]: camelToSnakeKeys(params),
query,
page: pager?.page,
count: pager?.count,
@@ -130,7 +150,7 @@ export function apiJsonGetTableParams(
): ApiJsonGetParams {
return {
"[]": {
- ...tables,
+ ...camelToSnakeKeys(tables),
query,
page: pager?.page,
count: pager?.count,
@@ -139,13 +159,13 @@ export function apiJsonGetTableParams(
};
}
-export function apiJsonDeleteTableParams(
+export function apiJsonPostTableParams(
tableName: string,
params: ApiJsonTableParams,
tag: string
): ApiJsonPutParams {
return {
- [tableName]: params,
+ [tableName]: camelToSnakeKeys(params),
tag,
} as ApiJsonPutParams;
}
diff --git a/src/views/system/access/index.vue b/src/views/system/access/index.vue
new file mode 100644
index 00000000..72000e18
--- /dev/null
+++ b/src/views/system/access/index.vue
@@ -0,0 +1,396 @@
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 新增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/request/index.vue b/src/views/system/request/index.vue
index 72e9480d..917d67b6 100644
--- a/src/views/system/request/index.vue
+++ b/src/views/system/request/index.vue
@@ -30,7 +30,6 @@