西藏巴青项目

牦牛存栏数据填报前端技术方案.md 4.7KB

牦牛存栏数据填报 — 前端技术方案

依据:同目录 牦牛存栏数据填报功能需求.md牦牛存栏数据填报技术方案.md;布局对齐 dataModel/grassland/index.vue(双 el-card + 分页表格);字段 小驼峰


1. 页面与路由

说明
Vue 路径 ruoyi-ui/src/views/dataModel/yakHerdInventory/index.vue
组件名 YakHerdInventory
菜单配置 组件路径:dataModel/yakHerdInventory/index
权限前缀 dataModel:yakHerdInventory:list\|query\|add\|edit\|remove\|import\|export

2. API 模块

说明
文件 ruoyi-ui/src/api/dataModel/yakHerdInventory.js
Base /dataModel/yakHerdInventory
方法 HTTP 说明
listYakHerdInventory GET /list 分页列表
getYakHerdInventory GET /{id} 详情
addYakHerdInventory POST / 新增
updateYakHerdInventory PUT / 修改
delYakHerdInventory DELETE /{ids} 删除
listYakHerdInventoryYearOptions GET /yearOptions
listYakHerdInventoryMonthOptions GET /monthOptions
listYakHerdInventoryTownOptions GET /townOptions
listYakHerdInventoryVillageTree GET /villageTree 县→乡镇→村
importYakHerdInventory POST /importDatafile + statYear + statMonth
exportYakHerdInventory GET /exportstatYear + statMonthblob

模板下载:downloadYakHerdInventoryTemplate()GET + blob),勿用若依全局 this.download()(固定 POST)。


3. 页面结构

  1. 筛选区:所属年份、所属月份、所属乡镇、所属村(Treeselect);搜索、重置、新增、导入、导出。
  2. 列表区:所属年份、所属月份、所属乡镇、所属村、村居数、牧户数、存栏数、公牛/母牛存栏数;空值展示
  3. 操作列:查看、修改、删除。
  4. 新增/编辑弹窗:年份、月份、所属村(必填);明细录入字段(INPUT_COUNT_FIELDS);不展示派生合计;新增默认当前年月。
  5. 查看弹窗:全字段只读(含派生合计、审计信息)。
  6. 导入弹窗:选填报年月(默认当前)→ 上传 .xlsx → 展示 insert/fail/warn。
  7. 导出弹窗:选所属年月(默认当前)、可选所属乡镇(与列表一致,可清空;不选则全部乡镇)→ 下载 {年}年{月}月牦牛存栏数据.xlsx

4. 业务规则(前端)

规则 实现
年份 / 月份 /yearOptions/monthOptions;展示 {month}月
村树 /villageTreevue-treeselectdisable-branch-nodesappend-to-body
列表筛选 statYearstatMonthtownDeptIdvillageDeptId;进入页不默认年月
提交体 villageDeptId 与明细;不传乡镇(后端反推)
派生字段 仅详情 DERIVED_COUNT_FIELDS 展示
唯一性 同年同月同村重复由后端拦截
导入 FormData 含年月;成功后 $alert 摘要
删除 $modal.confirm 后删除

录入字段INPUT_COUNT_FIELDS):villageCountherdsmanHouseholdCountbreedingBullCountbullCastratedCountcowYoungCountcowAdultCountmilkingCowCountfertileCowCountsheepTotalmilkingSheepCountinsuredYakCount

派生字段DERIVED_COUNT_FIELDS):bullTotalcowTotaldairyTotalyakTotalgrandTotalyakSheepTotal


5. 国际化

说明
语言包 dataModel.yakHerdInventorydataModel.common
文件 lang/zh/dataModel.jslang/bo/dataModel.js
Mixin dataModelLocaleMixindmNs = 'yakHerdInventory'

6. 联调说明

  1. 部署后端并执行 sql/biz_yak_herd_inventory.sql(或村唯一键迁移脚本)。
  2. 菜单组件 dataModel/yakHerdInventory/index
  3. 验证:村树选村、CRUD、导入全量覆盖、导出合计行、详情含派生字段、双语。

7. 文件清单

类型 路径
页面 ruoyi-ui/src/views/dataModel/yakHerdInventory/index.vue
API ruoyi-ui/src/api/dataModel/yakHerdInventory.js
Mixin ruoyi-ui/src/mixins/dataModelLocaleMixin.js
i18n ruoyi-ui/src/lang/zh/dataModel.jslang/bo/dataModel.js

8. 修订记录

版本 说明
1.0 初版:列表/CRUD/详情/导入;汉藏 i18n
1.1 按年月填报:列表月份筛选;导入/导出
1.2 按村填报:Treeselect 村树;列表乡镇+村;表单仅明细;详情含派生合计;字段对齐新模板