docs(api): 添加产品动态时间线前端API文档
- 新增产品动态时间线接口文档,明确前端调用规范 - 定义接口请求参数、响应结构和字段语义说明 - 提供请求示例和错误码说明 - 添加左侧筛选项映射规则和时间格式说明 feat(product): 实现产品首页动态时间线功能 - 重构产品首页布局结构,采用档案横幅型设计 - 新增对象基础概述横幅模块 - 实现产品动态时间线面板组件 - 集成需求池管理概览和最近变化区域 - 添加扩展信息区预留模块位 chore(docs): 更新代理工作说明和前端测试策略 - 添加前端任务测试策略说明 - 更新代理工作流程规范 - 明确git操作执行边界 - 优化组件类型声明更新
This commit is contained in:
55
src/typings/api/product.d.ts
vendored
55
src/typings/api/product.d.ts
vendored
@@ -109,6 +109,61 @@ declare namespace Api {
|
||||
remark?: string | null;
|
||||
}
|
||||
|
||||
type ProductActivityType = 'status' | 'product' | 'member';
|
||||
|
||||
type ProductActivityActionType =
|
||||
| 'create'
|
||||
| 'change_manager'
|
||||
| 'pause'
|
||||
| 'resume'
|
||||
| 'archive'
|
||||
| 'abandon'
|
||||
| 'add_member'
|
||||
| 'update_member'
|
||||
| 'remove_member';
|
||||
|
||||
interface ProductActivityTimelinePageParams extends PageParams {
|
||||
/** 分类 */
|
||||
activityType?: ProductActivityType | null;
|
||||
/** 动作编码数组,多选时按重复 query 参数传递 */
|
||||
actionTypes?: ProductActivityActionType[] | null;
|
||||
/** 开始时间,格式 yyyy-MM-dd HH:mm:ss */
|
||||
startTime?: string | null;
|
||||
/** 结束时间,格式 yyyy-MM-dd HH:mm:ss */
|
||||
endTime?: string | null;
|
||||
}
|
||||
|
||||
interface ProductActivityTimelineItem {
|
||||
/** 动态唯一标识 */
|
||||
id: string;
|
||||
/** 动态类型 */
|
||||
type: ProductActivityType;
|
||||
/** 动作编码 */
|
||||
actionType: ProductActivityActionType;
|
||||
/** 动作中文名称 */
|
||||
actionName: string;
|
||||
/** 操作人用户 ID */
|
||||
operatorUserId?: string | null;
|
||||
/** 操作人名称 */
|
||||
operatorName: string;
|
||||
/** 目标用户 ID,成员类动态使用 */
|
||||
targetUserId?: string | null;
|
||||
/** 目标用户名称,成员类动态使用 */
|
||||
targetUserName?: string | null;
|
||||
/** 动态发生时间,毫秒时间戳 */
|
||||
occurredAt: number;
|
||||
/** 可直接展示的摘要文案 */
|
||||
summary: string;
|
||||
/** 原因说明 */
|
||||
reason?: string | null;
|
||||
/** 原状态编码 */
|
||||
fromStatus?: ProductStatusCode | null;
|
||||
/** 目标状态编码 */
|
||||
toStatus?: ProductStatusCode | null;
|
||||
/** 补充明细,当前为 JSON 字符串 */
|
||||
details?: string | null;
|
||||
}
|
||||
|
||||
type ProductSearchParams = CommonType.RecordNullable<
|
||||
Pick<PageParams, 'pageNo' | 'pageSize'> &
|
||||
Pick<Product, 'directionCode' | 'managerUserId' | 'statusCode'> & {
|
||||
|
||||
4
src/typings/components.d.ts
vendored
4
src/typings/components.d.ts
vendored
@@ -10,6 +10,7 @@ declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
AppProvider: typeof import('./../components/common/app-provider.vue')['default']
|
||||
BetterScroll: typeof import('./../components/custom/better-scroll.vue')['default']
|
||||
BusinessDateRangePicker: typeof import('./../components/custom/business-date-range-picker.vue')['default']
|
||||
BusinessFormDialog: typeof import('./../components/custom/business-form-dialog.vue')['default']
|
||||
BusinessFormDrawer: typeof import('./../components/custom/business-form-drawer.vue')['default']
|
||||
BusinessFormSection: typeof import('./../components/custom/business-form-section.vue')['default']
|
||||
@@ -29,12 +30,14 @@ declare module 'vue' {
|
||||
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
||||
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDatePickerPanel: typeof import('element-plus/es')['ElDatePickerPanel']
|
||||
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
||||
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
@@ -56,6 +59,7 @@ declare module 'vue' {
|
||||
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
|
||||
Reference in New Issue
Block a user