refactor: 大规模代码整理与功能优化

1. 重构后端API路由、CRUD与模块结构,整合日志管理,移除废弃demo代码
2. 优化前端组件类型定义、样式与路由配置,修复权限判断逻辑
3. 调整默认排序规则、滚动条样式与工具类函数,更新依赖与配置文件
4. 修复多处类型不匹配与默认值问题,完善表单与菜单验证逻辑
This commit is contained in:
zhangtao
2026-06-17 01:56:31 +08:00
parent 17b3cd0a4c
commit 73f2823692
500 changed files with 40763 additions and 26616 deletions
@@ -0,0 +1,187 @@
import { request } from "@utils";
// ─── 平台订单 ──────────────────────────────────────────
const ORDER_API = "/platform/order";
const PAYMENT_API = "/platform/payment";
const REFUND_API = "/platform/refund";
const TENANT_ORDER_API = "/tenant/order";
const OrderAPI = {
// ─── 订单管理 ───
listOrders(query?: OrderPageQuery) {
return request<ApiResponse<{ items: OrderTable[]; total: number }>>({
url: `${ORDER_API}/list`,
method: "get",
params: query,
});
},
detailOrder(orderId: number) {
return request<ApiResponse<OrderTable>>({
url: `${ORDER_API}/detail/${orderId}`,
method: "get",
});
},
createOrder(body: OrderCreateForm) {
return request<ApiResponse<{ id: number; order_no: string }>>({
url: `${ORDER_API}/create`,
method: "post",
data: body,
});
},
cancelOrder(orderId: number) {
return request<ApiResponse<{ message: string }>>({
url: `${ORDER_API}/cancel/${orderId}`,
method: "post",
});
},
// ─── 支付操作 ───
payOrder(orderId: number, body?: { pay_method?: string }) {
return request<ApiResponse<{ pay_url?: string; qr_code?: string }>>({
url: `${PAYMENT_API}/pay/${orderId}`,
method: "post",
data: body,
});
},
queryPaymentStatus(orderId: number) {
return request<ApiResponse<{ status: number; message?: string }>>({
url: `${PAYMENT_API}/status/${orderId}`,
method: "get",
});
},
mockPaymentCallback(orderId: number) {
return request<ApiResponse>({
url: `${PAYMENT_API}/mock/callback`,
method: "post",
data: { order_id: orderId },
});
},
// ─── 支付记录 ───
listPaymentRecords(query?: PageQuery) {
return request<ApiResponse<{ items: PaymentRecordTable[]; total: number }>>({
url: `${PAYMENT_API}/record/list`,
method: "get",
params: query,
});
},
// ─── 退款管理 ───
listRefunds(query?: RefundPageQuery) {
return request<ApiResponse<{ items: RefundTable[]; total: number }>>({
url: `${REFUND_API}/list`,
method: "get",
params: query,
});
},
approveRefund(refundId: number) {
return request<ApiResponse<{ message: string }>>({
url: `${REFUND_API}/approve/${refundId}`,
method: "put",
});
},
rejectRefund(refundId: number, body: { reject_reason?: string }) {
return request<ApiResponse<{ message: string }>>({
url: `${REFUND_API}/reject/${refundId}`,
method: "put",
data: body,
});
},
// ─── 租户端 ───
tenantCreateOrder(body: {
tenant_id: number;
package_id?: number;
plugin_id?: number;
order_type: string;
pay_method?: string;
}) {
return request<ApiResponse<{ id: number; order_no: string }>>({
url: `${TENANT_ORDER_API}/create`,
method: "post",
data: body,
});
},
tenantApplyRefund(orderId: number, body: { reason: string }) {
return request<ApiResponse<{ id: number }>>({
url: `${TENANT_ORDER_API}/refund/apply/${orderId}`,
method: "post",
data: body,
});
},
};
export default OrderAPI;
// ─── Order 类型 ──────────────────────────────────────────
export interface OrderPageQuery extends PageQuery {
tenant_id?: number;
status?: number;
order_type?: string;
}
export interface OrderTable {
id: number;
order_no: string;
tenant_id: number;
package_id?: number;
plugin_id?: number;
order_type: string;
amount: number;
period_count: number;
status: number;
pay_method?: string;
pay_time?: string;
expire_time: string;
created_time?: string;
}
export interface OrderCreateForm {
tenant_id: number;
package_id?: number;
plugin_id?: number;
order_type: "new" | "renew" | "upgrade" | "downgrade" | "plugin";
pay_method?: string;
}
// ─── Payment 类型 ────────────────────────────────────────
export interface PaymentRecordTable {
id: number;
order_id: number;
transaction_id?: string;
pay_method: string;
amount: number;
status: number;
pay_time?: string;
created_time?: string;
}
// ─── Refund 类型 ─────────────────────────────────────────
export interface RefundPageQuery extends PageQuery {
status?: number;
}
export interface RefundTable {
id: number;
order_id: number;
refund_no: string;
amount: number;
reason: string;
status: number;
refund_transaction_id?: string;
reviewer_id?: number;
review_time?: string;
reject_reason?: string;
created_time?: string;
}