vue3-element-plus-app-chu 0.0.25 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,15 +23,19 @@ pnpm dev:backend # 只启动后端(backend/ 目录,tsx watch)
23
23
  默认入口为数字人民币头寸预报(`/forecast`),侧边菜单可切换至其他数字人民币页面。
24
24
 
25
25
  - 列表页只保留筛选卡片和表格卡片;筛选条件压在一行,窗口过窄时才换行。
26
- - 新增、修改、详情不使用弹窗,分别对应 `/forecast/create`、`/forecast/:predRefNo/edit`、`/forecast/:predRefNo` 独立路由,页面顶部提供“返回列表”按钮;返回后列表的筛选和分页状态不变。
26
+ - 新增、修改、详情与列表共用 `/forecast` 入口,以当前页面状态切换完整视图,页面顶部提供“返回列表”按钮;返回后列表的筛选和分页状态不变。
27
27
  - 支持交易日期、客户、交易对手、机构、金额范围及业务代码筛选,分页、详情、新增、修改和批量删除。
28
- - 金额、账号及流水号使用字符串处理。业务状态与类型代码保留接口原值,待服务端提供字典后再接入中文选项。
28
+ - 金额、账号及流水号使用字符串处理。业务类型使用文档明确的中文选项,其余未提供字典的代码保留接口原值。
29
29
  - 导入、导出按钮保留在列表工具栏,文件由后端接口生成和解析,页面不再在前端拼装 CSV。
30
- - 模块目录与授权页面保持一致:`api.ts` 只放接口定义,`utils.ts` 放日期、金额、表单校验等共用工具,`typs.ts` 类型,`runtime.ts` 默认交易日期,`index.vue` 为入口,`components/` 放页面外壳和列表、新增修改、详情页面。接口定义只维护在各自模块下,不再集中到 `src/api`。
30
+ - 模块目录与授权页面保持一致:`api.ts` 放接口定义,`typs.ts` 放类型,`index.vue` 包含列表、表单、详情和页面内工具函数。默认交易日期通过共用的 `src/view/dcps/runtime.ts` 获取,接口定义只维护在各自模块下,不再集中到 `src/api`。
31
31
  - 新增、修改、详情页面每行四列展示,窗口变窄后依次降为三列、两列、一列。
32
32
 
33
33
  本地后端已接入 MongoDB 业务模拟,预报增删改查、核销、注资余额、匡算历史和参数均可持久化。JSON 响应统一为 `{ code, data, message }`,TAM 的 `head/body` 位于 `data` 中,前端公共请求层自动解包。服务端导入协议尚未实现时明确返回 `501`。完整运行说明见 [后端 README](backend/README.md)。
34
34
 
35
+ 数字人民币相关接口已按 2026-10-26 最新 Swagger 同步:新增预报的业务类型必填并使用 `201/202/203` 字典,移除 `predName`;核销预报方向使用 `1/2`,待核销查询包含状态 `1/3`,补充交易对手账号;流水增加业务类型筛选并改用 `tranStatus`;注资明细支持起止交易日期;授权页展示业务类型中文名称。匡算明细同步展示部分核销状态。部分核销的继续处理金额语义尚未定义,当前支持查询展示,操作仍沿用原有未核销/已核销流程。字段及本地实现说明见 [数字人民币接口摘录](docs/digital-rmb-apis.md)。
36
+
37
+ 2026-10-27 新增 `/TAM/0001/140504002` 实时流水查询。独立页面 `/flow-query` 改为调用该接口,按 `txnLists` 展示平台流水、交易金额、时间、收付款人、钱包及机构信息,支持分页和刷新。该接口的业务请求体为空,页面不再提交旧核销流水的日期、姓名、金额等筛选;核销页面继续使用 `/140502002`。新接口未声明的业务类型、方向和状态字典保留原值。
38
+
35
39
  ## 城银清头寸参数接口
36
40
 
37
41
  参数管理接口已支持持久化增删改查、关键词筛选和分页。数币页面位于 `src/view/dcps/parameters/`,使用 `moduleCode: '5'`;页面详情直接取表格行数据,不再请求详情接口。同一后端也支持城银清模块 `'3'`。参数名称全局唯一,修改和删除按名称定位;接口字段和示例见 [城银清头寸参数接口说明](docs/city-clearing-parameters-apis.md),Scalar 文档入口为后端 `/docs`。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue3-element-plus-app-chu",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
@@ -2,7 +2,7 @@
2
2
 
3
3
  `src/view/dcps` 下每个业务页面统一保持三个文件,不再拆分子组件、工具文件:
4
4
 
5
- 跨页面共用的运行时配置统一放在 `src/view/dcps/runtime.ts`,仅默认导出一个对象,包含 `date`(共用业务日期,格式为 `YYYYMMDD`)、`approverId`(工号)和 `approverName`(姓名)。日期在模块加载时按上海时区生成一次,预报、匡算、核销及授权查询的默认日期均使用同一个 `date`;授权日期范围的开始和结束默认都取该值。页面通过 `import dcpsRuntime from '../runtime'`(分组子页面为 `../../runtime`)引入,不再单独导出日期工具或模块配置。
5
+ 跨页面共用的运行时配置统一放在 `src/view/dcps/runtime.ts`,通过具名对象 `dcpsRuntime` 导出,包含 `date`(共用业务日期,格式为 `YYYYMMDD`)、`approverId`(工号)和 `approverName`(姓名)。日期在模块加载时按上海时区生成一次,预报、匡算、核销及授权查询的默认日期均使用同一个 `date`;授权日期范围的开始和结束默认都取该值。页面通过 `import { dcpsRuntime } from '../runtime'`(分组子页面为 `../../runtime`)引入,不再单独导出日期工具或模块配置。
6
6
 
7
7
  一级菜单为分组时,页面放在该分组目录下。例如“注资/预注资管理”的两个页面分别位于 `funding/injection/` 和 `funding/balance/`,各自保留下面三个文件。
8
8
 
@@ -14,6 +14,12 @@
14
14
 
15
15
  公共样式变量仍放在 `common.css`,由 `src/main.ts` 统一引入。
16
16
 
17
+ ## 当前接口契约
18
+
19
+ 数字人民币接口及递归引用模型以 `docs/digital-rmb.openapi.json` 的 2026-10-27 附件为准。预报新增移除 `predName`,`busiType` 为必填,字典为 `201` 兑回、`202` 兑出、`203` 付现。核销预报查询使用方向 `1/2`,待核销传 `verifyStatusList: ['1', '3']`,已核销传 `['2']`;预报管理和流水方向保持各自原协议。核销页流水查询增加 `busiType`,返回 `tranStatus`(`S/P/F`),核销状态支持 `3` 部分核销。注资明细支持 `txnDtStart`、`txnDtEnd` 单边或双边日期筛选。完整字段及本地业务限制见 `docs/digital-rmb-apis.md`。
20
+
21
+ 独立流水查询页面 `/flow-query` 使用新增的 `140504002`:业务请求体为空,公共请求头分页;读取 `txnLists` 和数字类型的 `totalCount`、`totalPage`,显示新模型的 16 个字符串字段。页面的 `api.ts`、`typs.ts` 独立维护该契约,不再复用核销页的 `140502002` 模型。业务类型、收支方向及交易状态未提供字典,按原值显示。
22
+
17
23
  ## 命名约定
18
24
 
19
25
  - 所有页面组件的 `defineOptions({ name })` 统一以 `Dcps` 开头(PascalCase)。
@@ -29,13 +35,11 @@
29
35
  | 路由路径 | 路由 name | 页面文件 | 页面形态 | 页面标题(meta.title) |
30
36
  | --- | --- | --- | --- | --- |
31
37
  | `/forecast` | `forecast` | `forecast/index.vue` | 列表 | 数字人民币头寸预报 |
32
- | `/forecast/create` | `forecast-create` | `forecast/index.vue` | 新增(`mode: 'create'`) | 新增数字人民币头寸预报 |
33
- | `/forecast/:predRefNo/edit` | `forecast-edit` | `forecast/index.vue` | 修改(`mode: 'edit'`) | 修改数字人民币头寸预报 |
34
- | `/forecast/:predRefNo` | `forecast-detail` | `forecast/index.vue` | 详情(`mode: 'detail'`) | 数字人民币头寸预报详情 |
35
38
  | `/estimation` | `estimation` | `estimation/index.vue` | 页面 | 数字人民币头寸匡算 |
36
39
  | `/funding` | `funding` | — | 重定向到 `injection` | 注资/预注资管理 |
37
40
  | `/funding/injection` | `injection` | `funding/injection/index.vue` | 页面 | 数字人民币注资明细查询 |
38
41
  | `/funding/balance` | `balance` | `funding/balance/index.vue` | 页面 | 数字人民币账户行余额查询申请 |
42
+ | `/flow-query` | `flow-query` | `flow-query/index.vue` | 页面 | 数字人民币流水查询 |
39
43
  | `/auth` | `auth` | `auth/index.vue` | 页面 | 数字人民币授权 |
40
44
  | `/write-off` | `write-off` | `write-off/index.vue` | 页面 | 数字人民币核销 |
41
45
  | `/parameters` | `parameters` | `parameters/index.vue` | 列表、详情、新增和修改弹窗 | 数字人民币参数管理 |
@@ -44,13 +48,13 @@
44
48
 
45
49
  补充说明:
46
50
 
47
- - 头寸预报的列表、新增、修改、详情共用 `forecast/index.vue`,通过路由 `props.mode` 切换页面形态;修改和详情通过 `props.predRefNo` 接收路由参数。
48
- - `forecast/index.vue` 顶部使用一个普通 `<script>` 块保存列表记录缓存,跳转修改或详情前暂存列表行,用于补齐详情接口未返回的字段。
51
+ - 头寸预报的列表、新增、修改、详情共用 `/forecast` 与 `forecast/index.vue`,通过当前组件的视图状态切换;修改和详情使用所选记录的 `predRefNo` 请求数据,返回列表保留筛选和分页。
52
+ - `forecast/index.vue` 顶部使用一个普通 `<script>` 块保存列表记录缓存,打开修改或详情前暂存列表行,用于补齐详情接口未返回的字段。
49
53
  - 侧边菜单配置在 `src/router/menus.ts`,其中 `name` 必须与对应路由的 `name` 保持一致;分组菜单通过 `children` 配置二级页面,页面的 `meta.menu` 指向自己的菜单项。
50
54
  - “注资/预注资管理”对应 `funding` 分组,包含注资明细查询和账户行余额查询申请两个页面;访问子页面时自动展开父菜单。旧地址 `/injection`、`/balance` 保留为对应页面的别名。
51
- - 数字人民币参数管理为末尾的独立菜单,页面文件为 `parameters/index.vue`、`parameters/api.ts`、`parameters/typs.ts`,接口与类型均独立定义在该目录,不再依赖或保留 `city-clearing/` 目录。页面复用“城银清算头寸管理-头寸参数”的列表、新增、修改、删除四个接口,详情直接取表格行数据,不再请求详情接口;`api.ts` 参照授权页面直接向 `@chic/http` 平铺传参,由 Axios 公共封装拆分为服务端所需的 `body`、`head` 等字段,不手动包装信封。页面查询调用只传 `keywords`、数字类型的 `pageIndex` 和 `pageSize`,`moduleCode: '5'` 由 API 内部固定添加,分页数字由封装层转换为字符串;新增传六个字符串表单字段,模块代码也由 API 固定添加。本次用户确认以 `paraName` 定位修改和删除:修改时锁定原参数名称、参数标志只读;删除向 API 传名称数组,由 API 转为平铺的 `sysParaList`。页面类型使用 `DigitalRmbParameter` 等独立类型,原始 Swagger 契约及 `docs/city-clearing-parameters*` 文档文件名保留。当前本地后端仍返回模拟结果,不保存参数。
55
+ - 数字人民币参数管理为末尾的独立菜单,页面文件为 `parameters/index.vue`、`parameters/api.ts`、`parameters/typs.ts`,接口与类型均独立定义在该目录,不再依赖或保留 `city-clearing/` 目录。页面复用“城银清算头寸管理-头寸参数”的列表、新增、修改、删除四个接口,详情直接取表格行数据,不再请求详情接口;`api.ts` 参照授权页面直接向 `@chic/http` 平铺传参,由 Axios 公共封装拆分为服务端所需的 `body`、`head` 等字段,不手动包装信封。页面查询调用只传 `keywords`、数字类型的 `pageIndex` 和 `pageSize`,`moduleCode: '5'` 由 API 内部固定添加,分页数字由封装层转换为字符串;新增传六个字符串表单字段,模块代码也由 API 固定添加。本次用户确认以 `paraName` 定位修改和删除:修改时锁定原参数名称、参数标志只读;删除向 API 传名称数组,由 API 转为平铺的 `sysParaList`。页面类型使用 `DigitalRmbParameter` 等独立类型,原始 Swagger 契约及 `docs/city-clearing-parameters*` 文档文件名保留。当前本地后端将业务模拟参数持久化至 MongoDB。
52
56
  - 数字人民币参数管理以数字人民币授权页面为布局参考,统一筛选区、填满剩余高度的表格以及包含摘要和分组字段的详情弹窗样式。
53
- - `src/layout/index.vue` 使用 `<KeepAlive include="DcpsForecastPage">` 缓存头寸预报页面;新增、修改、详情按路由 `key` 分别缓存,返回列表时自动重新查询。
57
+ - `src/layout/index.vue` 使用 `<KeepAlive include="DcpsForecastPage">` 缓存头寸预报页面;新增、修改、详情在同一实例内切换,返回列表时自动重新查询。
54
58
 
55
59
  ## 新增页面检查清单
56
60
 
@@ -34,6 +34,12 @@ const filterFields = [
34
34
  ] as const
35
35
  // 任务状态字典:01 待审批、02 已通过、03 已拒绝。
36
36
  const statusLabels: Record<string, string> = { '01': '待审批', '02': '已通过', '03': '已拒绝' }
37
+ // 业务类型按更新后的接口字典展示,未登记的代码保留原值。
38
+ const businessTypeLabels: Record<string, string> = { '201': '兑回', '202': '兑出', '203': '付现' }
39
+ const formatBusinessType = (value?: string) => {
40
+ const code = value?.trim() || ''
41
+ return code ? businessTypeLabels[code] || code : '—'
42
+ }
37
43
  // 审批按钮配置:value 为操作标识,label 为按钮文字,type 为按钮样式。
38
44
  const decisionActions = [
39
45
  { value: 'reject', label: '拒绝', type: 'danger' },
@@ -221,7 +227,7 @@ const tableColumns: ColumnOption[] = [
221
227
  { key: 'sequence', type: 'globalIndex', label: '序号', width: 80, align: 'center' },
222
228
  textColumn('platfSeqNo', '平台流水号', 190),
223
229
  textColumn('id', '任务ID', 180),
224
- textColumn('bizType', '业务类型', 140),
230
+ textColumn('bizType', '业务类型', 140, formatBusinessType),
225
231
  textColumn('collePayerName', '付款人名称', 160),
226
232
  textColumn('payeeName', '收款人名称', 160),
227
233
  {
@@ -254,6 +260,7 @@ const detailValues = computed(() => {
254
260
 
255
261
  return {
256
262
  ...task,
263
+ bizType: formatBusinessType(task.bizType),
257
264
  txnAmt: formatAmount(task.txnAmt),
258
265
  taskSts: formatStatus(task.taskSts),
259
266
  txnTm: formatDateTime(task.txnTm),
@@ -20,7 +20,7 @@ export interface AuthorizationQueryParams extends AuthorizationFilters {
20
20
  export interface AuthorizationTask {
21
21
  id?: string // 任务 ID。
22
22
  platfSeqNo?: string // 平台流水号,用于定位审批任务。
23
- bizType?: string // 业务类型。
23
+ bizType?: string // 业务类型:201 兑回、202 兑出、203 付现;未知代码保留原值。
24
24
  authoOrgName?: string // 授权机构名称。
25
25
  authoOrgNo?: string // 授权机构编号。
26
26
  collePayerName?: string // 付款人名称。
@@ -116,8 +116,8 @@ const calcGapAmount = (inAmt: string, outAmt: string, emptyAsZero = false): stri
116
116
  const payDirecLabels: Record<string, string> = { I: '来账', O: '往账' }
117
117
  /** 支付渠道:预报与流水的数字人民币分别为 8、5;其余渠道保留原文。 */
118
118
  const payChannelLabels: Record<string, string> = { '5': '数字人民币', '8': '数字人民币' }
119
- /** 核销状态字典:1 未核销、2 已核销。 */
120
- const verifyStatusLabels: Record<string, string> = { '1': '未核销', '2': '已核销' }
119
+ /** 与核销页面统一展示核销状态;部分核销记录仍可能出现在匡算明细中。 */
120
+ const verifyStatusLabels: Record<string, string> = { '1': '未核销', '2': '已核销', '3': '部分核销' }
121
121
  /** 业务类型字典:201 兑回、202 兑出、203 付现;与核销预报使用同一套枚举。 */
122
122
  const busiTypeLabels: Record<string, string> = { '201': '兑回', '202': '兑出', '203': '付现' }
123
123
 
@@ -1,15 +1,12 @@
1
1
  import baseHttpClient from '@chic/http'
2
2
  import type { FlowQueryParams } from './typs'
3
- import type { Tam140502002OutBody } from './typs'
4
3
 
5
4
  export default {
6
5
  /**
7
- * 分页查询数字人民币流水信息。
8
- * 接口:140502002 头寸核销-流水查询(/TAM/0001/140502002)。
9
- * @param params tranDate 交易日期(必填,YYYYMMDD);pageIndex、pageSize 分页;
10
- * orgName 我方机构,payerName/payeeName 付款人/收款人名称,
11
- * payDirec 收支方向,startTransAmt/endTransAmt 金额范围,verifyStatus 核销状态。
6
+ * 分页查询数字人民币实时流水(140504002)。
7
+ * 接口业务 body 为空,不声明日期、姓名、金额或核销状态筛选。
8
+ * @param params 公共分页参数,由请求层放入 head 并转换为字符串。
12
9
  */
13
10
  queryFlowApi: (params: FlowQueryParams) =>
14
- baseHttpClient.post<Tam140502002OutBody>('/TAM/0001/140502002', params),
11
+ baseHttpClient.post<any>('/TAM/0001/140504002', params),
15
12
  }