# 市场进栏登记 — 前端技术方案 > 依据:`市场进栏登记功能需求.md`、`市场进栏登记技术方案.md`;布局对齐 `tradeMarket/isolationPatrol/index.vue`(双 `el-card`);字段 **小驼峰**。 --- ## 1. 页面与路由 | 项 | 说明 | | --- | --- | | **Vue 路径** | `ruoyi-ui/src/views/tradeMarket/marketEntry/index.vue` | | **组件名** | `TradeMarketMarketEntry` | | **菜单配置** | 组件路径:`tradeMarket/marketEntry/index`(「交易市场平台」目录下,手工配置) | | **权限前缀** | `tradeMarket:marketEntry:list\|query\|add\|edit\|remove` | --- ## 2. API 模块 | 项 | 说明 | | --- | --- | | **文件** | `ruoyi-ui/src/api/tradeMarket/marketEntry.js` | | **Base** | `/tradeMarket/marketEntry` | | 方法 | HTTP | 说明 | | --- | --- | --- | | `listMarketEntry` | GET | `/list` | | `getMarketEntry` | GET | `/{id}` | | `addMarketEntry` | POST | `/` | | `updateMarketEntry` | PUT | `/` | | `delMarketEntry` | DELETE | `/{ids}` | | `listStallOptions` | GET | `/stallOptions` | | `listSupplierEarTags` | GET | `/supplierEarTags?supplierId=` | **关联接口(下拉数据)** | 方法 | 文件 | 说明 | | --- | --- | --- | | `listSupplier` | `supplier.js` | 供应商筛选/表单模糊搜索 | --- ## 3. 页面结构 1. **筛选区**:进栏日期 `daterange` → `entryDateStart`/`entryDateEnd`;栏位编号模糊;供应商精确;耳标号模糊;搜索、重置、新增。 2. **列表区**:进栏时间、栏位编号、供应商、耳标号、数量(头)、操作(查看/编辑/删除)。 3. **新增/编辑弹窗**:进栏时间、栏位下拉、供应商可搜、耳标多选、数量只读联动。 4. **查看弹窗**:只读全字段 + 审计信息;可进编辑、删除。 --- ## 4. 业务规则(前端) | 规则 | 实现 | | --- | --- | | 进栏日期区间 | `queryDateRange` 绑定 `daterange`,查询拆为 `entryDateStart`、`entryDateEnd`;开始晚于结束则提示不查 | | 进栏时间 | `validateEntryTime`:必填且 ≤ 当前时间;新增默认 `formatNow()` | | 栏位 | `listStallOptions`;`stallId` 提交,列表展示 `stallCode` | | 供应商 | 表单/筛选均 `listSupplier`;**更换供应商**时 `onSupplierChange` 清空耳标并重载 | | 耳标池 | 选定供应商后 `listSupplierEarTags`(**A−B**);编辑时 `mergeEarTagOptions` 合并已选耳标 | | 数量 | `syncQuantity`:`quantity = earTagList.length`;表单项 `disabled` | | R1~R6 | 前端校验必填、时间、耳标≥1、不重复、数量一致;占用/池外由后端 R4 拦截 | | 删除确认 | `confirmDelete` 含供应商、栏位、时间、头数 | --- ## 5. 国际化 | 项 | 说明 | | --- | --- | | **语言包** | `tradeMarket.marketEntry`(`lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js`) | | **Mixin** | `tradeMarketLocaleMixin`,`tmNs = 'marketEntry'`,`tmT` / `tmCommon` | --- ## 6. 联调说明 1. 部署 `BizMarketEntryController` 及 `biz_market_entry`、`biz_market_entry_ear_tag` 表。 2. 预置有效市场栏位、供应商;入场隔离登记(隔离已结束)提供耳标来源。 3. 菜单组件 `tradeMarket/marketEntry/index`,权限与后端一致。 4. 验证:日期区间筛选、栏位/耳标模糊、供应商精确、新增/修改/删除、耳标联动数量、双语切换。 --- ## 7. 文件清单 | 类型 | 路径 | | --- | --- | | 页面 | `ruoyi-ui/src/views/tradeMarket/marketEntry/index.vue` | | API | `ruoyi-ui/src/api/tradeMarket/marketEntry.js` | | Mixin | `ruoyi-ui/src/mixins/tradeMarketLocaleMixin.js`(复用) | | i18n | `ruoyi-ui/src/lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js`(`marketEntry` 节点) | --- ## 8. 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初版:列表+CRUD 弹窗、栏位/耳标接口、R1~R6 前端校验、数量联动、汉藏双语 |