西藏巴青项目

入场隔离登记前端技术方案.md 4.0KB

入场隔离登记 — 前端技术方案

依据:入场隔离登记功能需求.md入场隔离登记技术方案.md;布局对齐 tradeMarket/supplier/index.vue(双 el-card);字段 小驼峰


1. 页面与路由

说明
Vue 路径 ruoyi-ui/src/views/tradeMarket/entryIsolation/index.vue
组件名 TradeMarketEntryIsolation
菜单配置 组件路径:tradeMarket/entryIsolation/index(「交易市场平台」目录下,手工配置)
权限前缀 tradeMarket:entryIsolation:list\|query\|add\|edit\|remove

2. API 模块

说明
文件 ruoyi-ui/src/api/tradeMarket/entryIsolation.js
Base /tradeMarket/entryIsolation
方法 HTTP 说明
listEntryIsolation GET /list
getEntryIsolation GET /{id}
addEntryIsolation POST /
updateEntryIsolation PUT /
delEntryIsolation DELETE /{ids}

关联接口(下拉数据)

方法 文件 说明
listSupplier supplier.js 供应商下拉/筛选
listIsolationPen isolationPen.js 分圈圈位下拉
getIsolationSetting isolationPen.js 新增默认隔离天数

3. 页面结构

  1. 筛选区:进场日期 daterangeentryDateStart/entryDateEnd;检疫证号模糊;供应商精确;搜索、重置、新增。
  2. 列表区:进场时间、供应商、检疫证号、数量、圈位分配表链接、隔离天数、解除日期、操作。
  3. 新增/编辑弹窗:主表字段 + 检疫证单文件上传 + 耳标文本(逗号分隔)+ 预计解除日期只读 + 分圈表格。
  4. 添加分圈子弹窗:圈位单选、耳标多选(排除已占用)、数量=已选耳标数。
  5. 查看弹窗:只读主表与分圈表;可进编辑。
  6. 圈位分配表弹窗:列表行快捷查看分圈明细。

4. 业务规则(前端)

规则 实现
进场日期区间 queryDateRange 绑定 daterange,查询拆为 entryDateStartentryDateEnd
耳标解析 parseEarTags:英文/中文逗号分隔、trim、去重;单段 1~32 字
R1 保存前 quantity === earTagList.length;失焦耳标时自动同步数量
R2~R5 validateConsistencyBeforeSubmit:分圈数量之和、耳标并集、跨圈重复、圈位不重复
预计解除日期 recalcExpectedReleaseDateDATE(entryTime) + isolationDays(自然日)
默认隔离天数 新增时 getIsolationSetting,无配置兜底 3
检疫证文件 /common/upload;后缀白名单;≤30MB;选填
分圈提交 penAllocList: [{ penId, earTagList }],不传子表 quantity
OCR 界面提示「即将上线」,不调用识别接口

5. 国际化

说明
语言包 tradeMarket.entryIsolationlang/zh/tradeMarket.jslang/bo/tradeMarket.js
Mixin tradeMarketLocaleMixintmNs = 'entryIsolation',方法 tmT / tmCommon

6. 联调说明

  1. 部署 BizEntryIsolationControllerbiz_entry_isolationbiz_entry_isolation_alloc 表。
  2. 预置供应商、隔离圈位及默认隔离天数配置。
  3. 菜单组件 tradeMarket/entryIsolation/index,权限与后端一致。
  4. 验证:日期区间筛选、新增分圈、R1~R5 前后端双重校验、修改全量覆盖分圈、逻辑删除、双语切换。

7. 文件清单

类型 路径
页面 ruoyi-ui/src/views/tradeMarket/entryIsolation/index.vue
API ruoyi-ui/src/api/tradeMarket/entryIsolation.js
Mixin ruoyi-ui/src/mixins/tradeMarketLocaleMixin.js(复用)
i18n ruoyi-ui/src/lang/zh/tradeMarket.jslang/bo/tradeMarket.jsentryIsolation 节点)

8. 修订记录

版本 说明
1.0 初版:双卡片 CRUD、分圈子弹窗、R1~R5 前端校验、检疫证上传、汉藏 i18n