From ba89a965c72ea342f64d314cff623367944658b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=BF=9C?= <2970639877@qq.com> Date: Thu, 12 Mar 2026 18:04:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/modules/account/client.ts | 32 ++ src/api/modules/{ => system}/menu.ts | 0 src/api/modules/{ => system}/role.ts | 0 src/api/types/account.d.ts | 55 +++ src/api/types/index.d.ts | 1 - src/api/types/menu.d.ts | 2 +- src/components/common/Dialog.vue | 10 +- src/components/common/Form.vue | 4 +- src/components/common/Search.vue | 7 +- src/views/account/client/index.vue | 400 ++++++++++++++++++--- src/views/account/client/options.ts | 69 ++-- src/views/account/client/rules.ts | 35 ++ src/views/account/client/types.ts | 47 +++ src/views/system/menuManagement/index.vue | 48 +-- src/views/system/menuManagement/options.ts | 3 +- src/views/system/menuManagement/rules.ts | 6 + src/views/system/roleManagement/index.vue | 37 +- 17 files changed, 607 insertions(+), 149 deletions(-) create mode 100644 src/api/modules/account/client.ts rename src/api/modules/{ => system}/menu.ts (100%) rename src/api/modules/{ => system}/role.ts (100%) create mode 100644 src/api/types/account.d.ts create mode 100644 src/views/account/client/rules.ts create mode 100644 src/views/account/client/types.ts diff --git a/src/api/modules/account/client.ts b/src/api/modules/account/client.ts new file mode 100644 index 0000000..1d6b8fc --- /dev/null +++ b/src/api/modules/account/client.ts @@ -0,0 +1,32 @@ +import { request } from '@/api'; +import type { accountSearchParams, accountListResponse, accountCreateParams } from '@/api/types/account' + +// 获取客户列表 +export async function getClientListApi(params: accountSearchParams): Promise { + return request.get('/user/getUserList', { ...params }) +} + +//获取代理列表 +export async function getAgentOptionsApi(){ + return request.get('/user/getParOptions') +} + +//获取手续费模板列表 +export async function getFeeTemplateOptionsApi(){ + return request.get('/user/getFeeSettingOptions') +} + +//获取风控模板列表 +export async function getRiskTemplateOptionsApi() { + return request.get('/user/getRiskControlOptions') +} + +// 添加客户 +export async function createClientApi(params: accountCreateParams): Promise { + return request.post('/user/createUser', params) +} + +// 更新客户 +export async function editClientApi(params: accountCreateParams): Promise { + return request.post('/user/editUser', params) +} diff --git a/src/api/modules/menu.ts b/src/api/modules/system/menu.ts similarity index 100% rename from src/api/modules/menu.ts rename to src/api/modules/system/menu.ts diff --git a/src/api/modules/role.ts b/src/api/modules/system/role.ts similarity index 100% rename from src/api/modules/role.ts rename to src/api/modules/system/role.ts diff --git a/src/api/types/account.d.ts b/src/api/types/account.d.ts new file mode 100644 index 0000000..00b63dd --- /dev/null +++ b/src/api/types/account.d.ts @@ -0,0 +1,55 @@ +/** + * @description 客户列表查询参数 + * @param {accountSearchParams} params - 查询参数类型 + * @response {accountListResponse} 客户列表响应类型 + * + */ +// 客户列表查询参数 +export interface accountSearchParams { + page?: number + page_size?: number + username?: string + status?: string | number + reg_start_time?: string + reg_end_time?: string +} + +// 定义列表项的类型 +interface UserItem { + id: number; + username: string; + par_uid: number; + created_at: string; // 时间字符串类型 + status: number; + parent: ParentUser; // 嵌套的父级用户对象 +} + +// 定义完整响应数据的类型 +interface UserResponse { + data: UserItem[]; // 数据是 UserItem 类型的数组 +} + +export interface accountListResponse { + data: UserItem[]; + total: number; + per_page: number; +} + +/** + * @description 客户创建类型 + * @param {accountCreateParams} params - 创建参数类型 + * @response {void} 无响应体 + */ +// 客户创建类型 +export interface accountCreateParams { + reg_type?: number + email?: string + mobile?: string + parent_id?: number | string + fee_setting_id?: number | string + risk_control_id?: number | string + user_id?: string; + username?: string; + is_levelup?: number; + status?: number; +} diff --git a/src/api/types/index.d.ts b/src/api/types/index.d.ts index 92287d6..9fcb04b 100644 --- a/src/api/types/index.d.ts +++ b/src/api/types/index.d.ts @@ -1,4 +1,3 @@ -// src/utils/request.types.ts import type { AxiosRequestConfig, AxiosResponse, diff --git a/src/api/types/menu.d.ts b/src/api/types/menu.d.ts index f91aba6..f7fb633 100644 --- a/src/api/types/menu.d.ts +++ b/src/api/types/menu.d.ts @@ -27,7 +27,7 @@ export interface MenuItem { parent_id: string; // 上级菜单ID(string类型,匹配后端) sort: string; // 排序(string类型) type: string; // 类型:1菜单2按钮(string类型) - status?: string; // 状态:1启用2禁用(可选,编辑时用) + status?: string | null; // 状态:1启用2禁用(可选,编辑时用) id?: string; // 菜单ID(仅编辑/删除时传) } diff --git a/src/components/common/Dialog.vue b/src/components/common/Dialog.vue index ba14d54..30eeff6 100644 --- a/src/components/common/Dialog.vue +++ b/src/components/common/Dialog.vue @@ -1,7 +1,6 @@ -