From 725aa1819a9378d3c593d76bf8bb3627ab5330c1 Mon Sep 17 00:00:00 2001 From: xiayebo <364530740@qq.com> Date: Mon, 12 Jan 2026 11:41:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 8 +- openspec/project.md | 290 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 274 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index 04a9ed9..2650522 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,10 @@ src/manifest.json # 更新 uni-app 官方版本 # npx @dcloudio/uvm@latest -# src/pages.json \ No newline at end of file +# src/pages.json + +# AI +.kilocode +.kilocode/** +.opencode +.opencode/** diff --git a/openspec/project.md b/openspec/project.md index 991d783..3ca1880 100644 --- a/openspec/project.md +++ b/openspec/project.md @@ -1,15 +1,124 @@ # Project Context +## 项目背景 + +### 一、 银行端核心业务背景 + +银行端作为金融生态的核心资金与风控方,其业务背景建立在与政务、商家、保险及用户的紧密协作之上,通过数字化手段重构核心作业流程。 + +###### 1. 各端交互与协作生态 + +银行端通过数据与流程的互联互通,形成完整的金融生态闭环: + +* **与用户端 (农户/C端)**:**服务与被服务**。 + * **精准获客**: 结合线下走访与线上数据建立多维度画像。 + * **便捷用信**: 将信贷额度嵌入交易场景,实现“钱找人”的无感支付。 +* **与商家端 (企业/商户)**:**场景与验真**。 + * **贸易验真**: 交叉验证订单与物流数据,确保信贷资金流向真实贸易。 + * **受托支付**: 资金封闭运行,直接结算至商户,降低挪用风险。 +* **与保险端 (保险公司)**:**风险共担**。 + * **履约保证**: 引入保险增信,互通投保状态,构建“无保不贷”机制。 + * **风险联控**: 逾期信息同步,触发双向预警与理赔协同。 +* **与政务端 (政府监管)**:**合规与引导**。 + * **穿透监管**: 实时报送业务数据,接受全流程合规审计。 + * **政策协同**: 自动匹配贴息与补贴政策,实现普惠金融精准滴灌。 + +###### 2. 核心业务运作模式 + +银行端业务遵循“贷前调查、贷中审查、贷后管理”的标准化金融规范,并进行了数字化升级: + +* **贷前:网格化营销与建档** + * **目标**: 解决信息不对称,还原真实经营状况。 + * **模式**: 客户经理通过“拜访计划”进行网格化展业,现场采集影像与资产数据,实现数字化建档与初评。 +* **贷中:智能化审批与授信** + * **目标**: 提升审批效率,严控准入风险。 + * **模式**: 系统聚合多方数据进行自动化风控筛查,结合人工专业判断核定额度,一键激活场景化信用额度。 +* **贷后:信息聚合与数据支撑** + * **目标**: 为银行提供透明数据,支撑自主贷后管理。 + * **模式**: 平台作为“信息中介”,实时同步交易数据,聚合还款与经营概况,提供标准化报表辅助银行监测风险。 + +--- + +### 二、 商家端核心业务背景 + +商家端致力于打造“交易+金融”的双轮驱动模式,既是商品交易的履约方,也是普惠金融落地的关键场景方。 + +###### 1. 数字化经营与供应链管理 + +* **目标**: 实现商品与库存的精细化管理,构建可信的交易数据底座。 +* **场景**: 建立标准化的SKU体系,通过数字化进销存沉淀真实的经营流水,将“数据”转化为“资产”。 + +###### 2. 订单履约与受托支付 + +* **目标**: 规范交易流程,确保资金闭环安全。 +* **场景**: 严格执行标准履约流程,作为受托支付对象接收信贷资金,配合验证资金用途。 + +###### 3. 信用辅助与渠道协同 + +* **目标**: 激活供应链上下游信用,降低金融服务门槛。 +* **场景**: 依托核心企业信用推荐优质客户,并在结算环节协助核实交易真实性,完成资金闭环。 + +--- + +### 三、 保险端核心业务背景 + +保险端作为金融生态的“减震器”,通过专业的风险管理能力,为信贷资金提供安全屏障。 + +###### 1. 产品定制与承保准入 + +* **目标**: 精准识别承保标的,提供适配的风险保障。 +* **场景**: 针对不同客群定制差异化保险产品,对接信贷数据进行自动化核保,实现承保前置。 + +###### 2. 保单管理与风险共担 + +* **目标**: 动态评估风险敞口,确保资产安全。 +* **场景**: 全生命周期管理电子保单,与银行端实时交互风险数据,动态调整承保策略。 + +###### 3. 智能理赔与追偿协同 + +* **目标**: 快速响应出险事件,保障权益。 +* **场景**: 接收逾期信号自动触发理赔流程,赔付后与多方协同开展追偿,降低综合损失。 + +--- + +### 四、 政务端核心业务背景 + +政务端在生态中扮演“监管者”与“服务者”的双重角色,引导金融资源合规、高效服务实体经济。 + +###### 1. 区域金融监测与监管 + +* **目标**: 防范系统性风险,掌握宏观态势。 +* **场景**: 通过驾驶舱实时监控辖区信贷指标,设置红线自动预警违规行为。 + +###### 2. 政策扶持与精准滴灌 + +* **目标**: 提高财政资金效益。 +* **场景**: 数字化管理补贴资格白名单,基于真实交易数据自动核算并与信贷发放联动,确保政策红利直达。 + +###### 3. 信用体系建设与共享 + +* **目标**: 打破数据孤岛,构建社会信用。 +* **场景**: 归集政务数据丰富主体画像,输出公共信用评价结果,解决“征信白户”难题。 + +--- + ## Purpose -这是一个基于 unibest 模板开发的跨平台电商应用系统,包含三个主要端: +这是一个基于 unibest 模板开发的跨平台电商+金融生态应用系统,包含五个主要端: 1. **用户端**(C端):提供商品浏览、购物车、订单管理、会员服务、金融服务等功能 2. **商家端**(B端):提供商品管理、订单处理、财务管理、贷款协助、店铺设置等功能 -3. **银行端**(B端):提供客户管理、贷款审核、交易记录、提现管理等功能 +3. **银行端**(B端):提供客户管理、贷款审核、交易记录、提现管理、拜访计划等功能 +4. **政务端**(B端):提供银行管理、合规检查、风险预警、报表管理等功能 +5. **保险端**(B端):提供保单管理、理赔处理、合作银行管理等功能 项目支持多平台部署,包括 H5、iOS、Android 以及多个小程序平台(微信、支付宝、百度、字节、快手、QQ、钉钉、小红书等)。 +**多端架构特点:** +- 每个端独立配置 Tabbar 导航 +- 使用分包优化策略,减少首屏加载时间 +- 登录后根据角色自动切换到对应端 + ## Tech Stack ### 核心框架 @@ -30,9 +139,15 @@ - **vue-i18n** 9.1.9 - 国际化 ### HTTP 请求库(支持多种选择) -- **alova** 3.3.3 - 请求库(推荐) -- **简单封装的 http** - 轻量级请求方案 -- **vue-query** - 查询状态管理(用于自动生成接口) +- **alova** 3.3.3 - 请求库(推荐,支持 uni-app 适配器) +- **简单封装的 http** - 轻量级请求方案(`src/http/http.ts`) +- **vue-query** - 查询状态管理(用于自动生成接口,`src/http/vue-query.ts`) + +**HTTP 配置:** +- 统一的请求拦截器(`src/http/interceptor.ts`) +- 支持登录拦截和自动跳转 +- 支持请求/响应错误处理 +- 自动注入 Token(如已登录) ### 工具库 - **dayjs** 1.11.10 - 日期处理 @@ -48,6 +163,60 @@ - **Node.js** >= 20 - **pnpm** >= 9 +## Development Commands + +### 常用开发命令 +```bash +# H5 开发(默认) +pnpm dev + +# 微信小程序开发 +pnpm dev:mp + +# App 开发 +pnpm dev:app + +# 指定环境运行 +pnpm dev:test # 测试环境 +pnpm dev:prod # 生产环境 +``` + +### 打包构建命令 +```bash +# H5 打包 +pnpm build + +# 微信小程序打包 +pnpm build:mp + +# App 打包 +pnpm build:app +``` + +### 代码检查与类型检查 +```bash +# ESLint 检查 +pnpm lint + +# ESLint 自动修复 +pnpm lint:fix + +# TypeScript 类型检查 +pnpm type-check +``` + +### API 生成 +```bash +# 从 OpenAPI 规范生成 API 接口代码 +pnpm openapi +``` + +### 环境配置 +项目支持多环境配置: +- `.env.development` - 开发环境 +- `.env.test` - 测试环境 +- `.env.production` - 生产环境 + ## Project Conventions ### Code Style @@ -72,24 +241,34 @@ - `src/hooks` 目录下的 hooks 自动导入 - 组件自动导入(支持递归扫描子目录) +#### OpenAPI 集成 +- 使用 `openapi-ts-request` 从 OpenAPI 规范自动生成 API 接口代码 +- 生成的代码存放在 `src/service/` 目录(不应提交到版本控制) +- 支持自动生成 TypeScript 类型定义和请求函数 + ### Architecture Patterns #### 目录结构 ``` src/ -├── api/ # API 接口定义 -├── components/ # 公共组件 -├── hooks/ # 组合式函数 -├── http/ # HTTP 请求封装 -├── layouts/ # 布局组件 -├── mock/ # Mock 数据 -├── pages/ # 用户端页面 -├── pagesMerchant/# 商家端页面 -├── pagesBank/ # 银行端页面 -├── router/ # 路由配置 -├── service/ # 自动生成的服务接口 -├── static/ # 静态资源 -└── typings/ # 类型定义 +├── api/ # API 接口定义 +├── components/ # 公共组件 +├── hooks/ # 组合式函数 +├── http/ # HTTP 请求封装 +├── layouts/ # 布局组件 +├── mock/ # Mock 数据 +├── pages/ # 用户端页面(主包) +├── pagesMerchant/ # 商家端页面(分包) +├── pagesBank/ # 银行端页面(分包) +├── pagesGovernment/ # 政务端页面(分包) +├── pagesInsurance/ # 保险端页面(分包) +├── router/ # 路由配置 +├── service/ # 自动生成的服务接口 +├── static/ # 静态资源 +├── store/ # Pinia 状态管理 +├── tabbar/ # Tabbar 配置 +├── typings/ # 类型定义 +└── utils/ # 工具函数 ``` #### 路由策略 @@ -97,6 +276,24 @@ src/ - **Layout 布局**:支持多布局系统 - **分包优化**:使用 `@uni-ku/bundle-optimizer` 进行分包优化 - **异步导入**:支持模块和组件的异步跨包引用 +- **分包配置**:各端独立分包(pagesMerchant、pagesBank、pagesGovernment、pagesInsurance) +- **预下载规则**:登录后自动预下载所有分包 + +#### 多端 Tabbar 策略 +支持 4 种 Tabbar 策略(`TABBAR_STRATEGY_MAP`): +- `NO_TABBAR` (0):无 Tabbar +- `NATIVE_TABBAR` (1):完全原生 Tabbar +- `CUSTOM_TABBAR_WITH_CACHE` (2):有缓存自定义 Tabbar(当前配置) +- `CUSTOM_TABBAR_WITHOUT_CACHE` (3):无缓存自定义 Tabbar + +各端独立的 Tabbar 配置: +- `userTabbarList`:用户端(首页、分类、购物车、我的) +- `merchantTabbarList`:商家端(工作台、订单、商品、财务、我的) +- `bankTabbarList`:银行端(工作台、审核、客户、我的) +- `governmentTabbarList`:政务端(工作台、检查、报表、我的) +- `insuranceTabbarList`:保险端(工作台、保单、理赔、我的) + +通过 `getTabbarListByClientType()` 根据客户端类型动态切换 Tabbar。 #### 登录策略 支持两种登录策略(通过 `DEFAULT_NO_NEED_LOGIN` 配置): @@ -118,10 +315,11 @@ src/ ### Testing Strategy -当前项目未配置自动化测试框架。建议: -- 使用 Vitest 进行单元测试 -- 使用 @vue/test-utils 进行组件测试 -- 使用 Playwright 进行端到端测试 +当前项目未配置自动化测试框架。基于技术栈建议: +- **单元测试**:使用 Vitest 进行测试 +- **组件测试**:使用 @vue/test-utils 进行 Vue 组件测试 +- **端到端测试**:使用 Playwright 进行跨平台 E2E 测试 +- **小程序测试**:使用 miniprogram-simulate 进行微信小程序单元测试 ### Git Workflow @@ -168,12 +366,29 @@ src/ - **仪表盘**:数据统计 - **客户管理**:客户列表、客户详情、交易记录、提现记录 - **审核管理**:贷款审核列表、审核详情 +- **拜访管理**:拜访计划列表、创建拜访、拜访详情 +- **报表管理**:报表列表、报表下载 + +#### 政务端(B端) +- **仪表盘**:区域金融监测 +- **银行管理**:银行列表、银行详情 +- **合规检查**:检查列表、检查详情 +- **风险预警**:风险列表、风险详情 + +#### 保险端(B端) +- **仪表盘**:业务概览 +- **保单管理**:保单列表、保单详情 +- **理赔处理**:理赔列表、理赔详情 +- **合作银行**:合作银行列表 ### 关键概念 - **多端适配**:同一套代码适配 H5、App、小程序 -- **角色权限**:用户、商家、银行三种角色 +- **五端架构**:用户、商家、银行、政务、保险五个独立端 +- **角色权限**:根据登录角色自动切换对应端的 Tabbar 和页面 - **金融服务**:信用额度、贷款申请、结算、核销 - **会员体系**:会员卡、会员权益 +- **分包优化**:各端独立分包,登录后预下载 +- **Tabbar 策略**:支持原生和自定义 Tabbar,可配置缓存 ## Important Constraints @@ -194,6 +409,35 @@ src/ - **提交规范**:必须符合 Conventional Commits 规范 - **文件忽略**:自动生成的文件(如 `src/service/**`)不应提交 +## Deployment Architecture + +### 多平台部署流程 + +**H5 部署:** +1. 运行 `pnpm build` 构建生产版本 +2. 生成的文件位于 `dist/build/h5` +3. 部署到 Web 服务器(nginx、Apache 等) +4. 如非根目录部署,需在 `manifest.config.ts` 中配置 `h5.router.base` + +**小程序部署:** +1. 运行 `pnpm build:mp` 构建小程序 +2. 生成的文件位于 `dist/build/mp-weixin` +3. 使用微信开发者工具导入并上传 +4. 在微信公众平台提交审核 + +**App 部署:** +1. 运行 `pnpm build:app` 构建 App +2. 生成的文件位于 `dist/build/app` +3. 使用 HBuilderX 导入文件夹 +4. 选择"发行 - APP云打包" +5. (安卓和鸿蒙可直接用 HBuilderX 运行/发行) + +### 分包策略优化 +- 用户端(主包):核心页面和组件 +- 商家端、银行端、政务端、保险端:独立分包 +- 登录后自动预下载所有分包(`preloadRule`) +- 使用 `@uni-ku/bundle-optimizer` 进行体积优化 + ## External Dependencies ### 平台依赖