Browse Source

refactor(api/types): 统一API响应类型为Promise并添加基础实体类型

yz 1 month ago
parent
commit
0f2808378b

+ 0 - 41
src/api/announcement/category.js

@@ -14,47 +14,6 @@ import request from '@/router/axios';
  * @typedef {import('@/api/types/announcement').CategoryOperationResponse} CategoryOperationResponse
  */
 
-/**
- * 新增分类请求参数类型
- * @typedef {Object} AddCategoryParams
- * @property {number} createDept - 创建部门ID(必填)
- * @property {number} createUser - 创建用户ID(必填)
- * @property {string} name - 分类名称(必填,最大长度50)
- * @property {string} orgCode - 组织编码(必填)
- * @property {number} orgId - 组织ID(必填)
- * @property {string} orgName - 组织名称(必填)
- * @property {string} [remark=''] - 备注(可选,最大长度200)
- * @property {number} [sortOrder=0] - 排序(可选,默认0)
- */
-
-/**
- * 更新分类请求参数类型
- * @typedef {Object} UpdateCategoryParams
- * @property {number} id - 分类ID(必填)
- * @property {string} name - 分类名称(必填,最大长度50)
- * @property {string} [remark] - 备注(可选,最大长度200)
- * @property {number} [sortOrder] - 排序(可选)
- * @property {number} [createDept] - 创建部门ID
- * @property {number} [createUser] - 创建用户ID
- * @property {string} [orgCode] - 组织编码
- * @property {number} [orgId] - 组织ID
- * @property {string} [orgName] - 组织名称
- */
-
-/**
- * 通用API响应类型
- * @template T
- * @typedef {Object} ApiResponse
- * @property {number} code - 响应状态码
- * @property {boolean} success - 是否成功
- * @property {string} msg - 响应消息
- * @property {T} data - 响应数据
- */
-
-/**
- * @template T
- * @typedef {ApiResponse<T>} ApiResponseGeneric
- */
 
 /**
  * 获取分类列表

+ 1 - 9
src/api/announcement/index.js

@@ -139,15 +139,7 @@ export const getBrandList = () => {
   });
 };
 
-/**
- * 分类选项类型
- * @typedef {Object} CategoryOption
- * @property {string} id - 分类ID
- * @property {string} name - 分类名称
- * @property {number} sortOrder - 排序
- * @property {string} orgCode - 组织编码
- * @property {number} status - 状态(0-禁用 1-启用)
- */
+
 
 /**
  * 获取分类列表

+ 13 - 40
src/api/order/lead-detail.js

@@ -1,41 +1,14 @@
+// @ts-check
 import request from '@/router/axios'
 
 /**
- * 线索详细信息记录类型定义
- * @typedef {Object} LeadDetailRecord
- * @property {string} id - 详细信息ID
- * @property {string} createUser - 创建用户ID
- * @property {string} createDept - 创建部门ID
- * @property {string} createTime - 创建时间
- * @property {string} updateUser - 更新用户ID
- * @property {string} updateTime - 更新时间
- * @property {number} status - 状态
- * @property {number} isDeleted - 是否删除 0-未删除 1-已删除
- * @property {string|number} leadId - 线索ID
- * @property {string} detailText - 详细信息内容
- */
-
-/**
- * 线索详细信息查询参数类型定义
- * @typedef {Object} LeadDetailQueryParams
- * @property {string|number} leadId - 线索ID
- * @property {number} [size] - 每页大小
- * @property {number} [current] - 当前页码
- */
-
-/**
- * 线索详细信息新增参数类型定义
- * @typedef {Object} LeadDetailAddParams
- * @property {string|number} leadId - 线索ID
- * @property {string} detailText - 详细信息内容
- */
-
-/**
- * 线索详细信息更新参数类型定义
- * @typedef {Object} LeadDetailUpdateParams
- * @property {string|number} id - 详细信息ID
- * @property {string|number} leadId - 线索ID
- * @property {string} detailText - 详细信息内容
+ * @typedef {import('@/api/types/lead-detail').LeadDetailRecord} LeadDetailRecord
+ * @typedef {import('@/api/types/lead-detail').LeadDetailQueryParams} LeadDetailQueryParams
+ * @typedef {import('@/api/types/lead-detail').LeadDetailAddParams} LeadDetailAddParams
+ * @typedef {import('@/api/types/lead-detail').LeadDetailUpdateParams} LeadDetailUpdateParams
+ * @typedef {import('@/api/types/lead-detail').LeadDetailListResponse} LeadDetailListResponse
+ * @typedef {import('@/api/types/lead-detail').LeadDetailResponse} LeadDetailResponse
+ * @typedef {import('@/api/types/lead-detail').LeadDetailOperationResponse} LeadDetailOperationResponse
  */
 
 
@@ -45,7 +18,7 @@ import request from '@/router/axios'
  * @param {number} current - 当前页码
  * @param {number} size - 每页大小
  * @param {LeadDetailQueryParams} params - 查询参数
- * @returns {Promise<ApiResponse<PageResult<LeadDetailRecord>>>} 分页查询结果
+ * @returns {LeadDetailListResponse} 分页查询结果
  */
 export const getList = (current, size, params) => {
   return request({
@@ -62,7 +35,7 @@ export const getList = (current, size, params) => {
 /**
  * 获取线索详细信息详情
  * @param {string|number} detailId - 详细信息ID
- * @returns {Promise<ApiResponse<LeadDetailRecord>>} 详细信息详情
+ * @returns {LeadDetailResponse} 详细信息详情
  */
 export const getDetail = (detailId) => {
   return request({
@@ -74,7 +47,7 @@ export const getDetail = (detailId) => {
 /**
  * 新增线索详细信息
  * @param {LeadDetailAddParams} params - 新增参数
- * @returns {Promise<ApiResponse<boolean>>} 操作结果
+ * @returns {LeadDetailOperationResponse} 操作结果
  */
 export const add = (params) => {
   return request({
@@ -87,7 +60,7 @@ export const add = (params) => {
 /**
  * 修改线索详细信息
  * @param {LeadDetailUpdateParams} params - 修改参数
- * @returns {Promise<ApiResponse<boolean>>} 操作结果
+ * @returns {LeadDetailOperationResponse} 操作结果
  */
 export const update = (params) => {
   return request({
@@ -100,7 +73,7 @@ export const update = (params) => {
 /**
  * 删除线索详细信息
  * @param {string} ids - 要删除的ID列表,多个ID用逗号分隔
- * @returns {Promise<ApiResponse<boolean>>} 操作结果
+ * @returns {LeadDetailOperationResponse} 操作结果
  */
 export const remove = (ids) => {
   return request({

+ 8 - 8
src/api/types/announcement.d.ts

@@ -164,13 +164,13 @@ export interface BrandOption {
 /**
  * API响应类型定义
  */
-export type CategoryListResponse = AxiosResponse<ApiResponse<Array<CategoryItem>>>;
-export type CategoryDetailResponse = AxiosResponse<ApiResponse<CategoryItem>>;
-export type CategoryOperationResponse = AxiosResponse<ApiResponse<boolean>>;
+export type CategoryListResponse = Promise<ApiResponse<Array<CategoryItem>>>;
+export type CategoryDetailResponse = Promise<ApiResponse<CategoryItem>>;
+export type CategoryOperationResponse = Promise<ApiResponse<boolean>>;
 
-export type NoticeListResponse = AxiosResponse<ApiResponse<PageResult<NoticeRecord>>>;
-export type NoticeDetailResponse = AxiosResponse<ApiResponse<NoticeRecord>>;
-export type NoticeOperationResponse = AxiosResponse<ApiResponse<boolean>>;
+export type NoticeListResponse = Promise<ApiResponse<PageResult<NoticeRecord>>>;
+export type NoticeDetailResponse = Promise<ApiResponse<NoticeRecord>>;
+export type NoticeOperationResponse = Promise<ApiResponse<boolean>>;
 
-export type DealerListResponse = AxiosResponse<ApiResponse<Array<DealerOption>>>;
-export type BrandListResponse = AxiosResponse<ApiResponse<Array<BrandOption>>>;
+export type DealerListResponse = Promise<ApiResponse<Array<DealerOption>>>;
+export type BrandListResponse = Promise<ApiResponse<Array<BrandOption>>>;

+ 56 - 0
src/api/types/lead-detail.d.ts

@@ -0,0 +1,56 @@
+/**
+ * 线索详细信息相关类型定义
+ */
+
+/**
+ * 线索详细信息记录
+ */
+export interface LeadDetailRecord extends BaseEntity {
+  /** 详细信息ID */
+  id: string;
+  /** 线索ID */
+  leadId: string | number;
+  /** 详细信息内容 */
+  detailText: string;
+}
+
+/**
+ * 线索详细信息查询参数
+ */
+export interface LeadDetailQueryParams extends BaseQueryParams {
+  /** 线索ID */
+  leadId?: string | number;
+}
+
+/**
+ * 线索详细信息新增参数
+ */
+export interface LeadDetailAddParams {
+  /** 线索ID */
+  leadId: string | number;
+  /** 详细信息内容 */
+  detailText: string;
+}
+
+/**
+ * 线索详细信息更新参数
+ */
+export interface LeadDetailUpdateParams extends LeadDetailAddParams {
+  /** 详细信息ID */
+  id: string | number;
+}
+
+/**
+ * 线索详细信息列表响应
+ */
+export type LeadDetailListResponse = Promise<ApiResponse<PageResult<LeadDetailRecord>>>;
+
+/**
+ * 线索详细信息详情响应
+ */
+export type LeadDetailResponse = Promise<ApiResponse<LeadDetailRecord>>;
+
+/**
+ * 线索详细信息操作响应
+ */
+export type LeadDetailOperationResponse = Promise<ApiResponse<boolean>>;

+ 3 - 3
src/api/types/lead.d.ts

@@ -91,14 +91,14 @@ export interface LeadUpdateParams extends LeadAddParams {
 /**
  * 销售线索列表响应
  */
-export type LeadListResponse = AxiosResponse<ApiResponseData<PageResult<LeadRecord>>>;
+export type LeadListResponse = Promise<ApiResponse<PageResult<LeadRecord>>>;
 
 /**
  * 销售线索详情响应
  */
-export type LeadDetailResponse = AxiosResponse<ApiResponseData<LeadRecord>>;
+export type LeadDetailResponse = Promise<ApiResponse<LeadRecord>>;
 
 /**
  * 销售线索操作响应
  */
-export type LeadOperationResponse = AxiosResponse<ApiResponseData<boolean>>;
+export type LeadOperationResponse = Promise<ApiResponse<boolean>>;

+ 18 - 0
src/types/global.d.ts

@@ -67,6 +67,24 @@ declare global {
     [key: string]: any;
   }
 
+  // 基础实体类型
+  interface BaseEntity {
+    /** 创建用户ID */
+    createUser?: string;
+    /** 创建部门ID */
+    createDept?: string;
+    /** 创建时间 */
+    createTime?: string;
+    /** 更新用户ID */
+    updateUser?: string;
+    /** 更新时间 */
+    updateTime?: string;
+    /** 状态 */
+    status?: number;
+    /** 是否删除 0-未删除 1-已删除 */
+    isDeleted?: number;
+  }
+
   // 下拉选择器选项
   interface SelectOption<T = any> {
     label: string;