|
|
@@ -46,7 +46,7 @@
|
|
|
- 溯源结论卡(以本批次综合溯源结论为主,不仅限于检测结果)
|
|
|
- 关键农事时间轴
|
|
|
- 实时监控画面展示
|
|
|
-- 当前环境状态展示
|
|
|
+- 种植环境记录展示
|
|
|
- 检测报告与合格证作为证明层保留
|
|
|
- 页面底部安心收口文案增强
|
|
|
|
|
|
@@ -537,13 +537,13 @@ timeline: [
|
|
|
time: '2026-03-18',
|
|
|
stage: 'care',
|
|
|
title: '生长期养护',
|
|
|
- desc: '已完成灌溉、营养管理等日常养护'
|
|
|
+ desc: '种植期间已持续开展灌溉、施肥等日常养护'
|
|
|
},
|
|
|
{
|
|
|
time: '2026-03-26',
|
|
|
stage: 'inspection',
|
|
|
title: '田间巡检',
|
|
|
- desc: '已完成长势检查与种植环境巡检'
|
|
|
+ desc: '种植期间已开展长势检查与环境巡检'
|
|
|
},
|
|
|
{
|
|
|
time: '2026-03-30',
|
|
|
@@ -566,6 +566,38 @@ timeline: [
|
|
|
]
|
|
|
```
|
|
|
|
|
|
+#### 4.5.9.1 节点时间取值规则
|
|
|
+种植过程记录统一按以下 6 个节点展示,且各节点时间来源需固定,避免前后端理解不一致:
|
|
|
+
|
|
|
+| 节点 | stage | 时间取值规则 |
|
|
|
+|---|---|---|
|
|
|
+| 开始种植 | `planting` | 取批次/种植周期的 `plantStartTime`,作为时间轴起点 |
|
|
|
+| 生长期养护 | `care` | 取当前批次中“养护类农事任务”的最早完成时间 |
|
|
|
+| 田间巡检 | `inspection` | 取当前批次中“巡检类农事任务”的最早完成时间 |
|
|
|
+| 成熟采收 | `harvest` | 取批次的 `produceDate` |
|
|
|
+| 安全检测 | `test` | 取检测报告中最早的 `reportDate` |
|
|
|
+| 包装出库 | `pack` | 取批次的 `packageDate` |
|
|
|
+
|
|
|
+说明:
|
|
|
+- 养护类与巡检类节点取“最早完成时间”,目的是表达该批次从何时进入该阶段,而不是最后一次任务发生时间
|
|
|
+- 时间轴模块表达的是“关键过程阶段”,不是任务流水记录
|
|
|
+- 若某一类任务不存在,则不应伪造该节点时间
|
|
|
+
|
|
|
+#### 4.5.9.2 节点文案口径说明
|
|
|
+为避免“时间取最早一次”与“文案像最近一次行为”之间的语义冲突,时间轴文案统一按“阶段表达”处理,不使用“最后一次完成”的表达方式。
|
|
|
+
|
|
|
+推荐文案如下:
|
|
|
+- 开始种植:`本批次产品进入种植管理阶段`
|
|
|
+- 生长期养护:`种植期间已持续开展灌溉、施肥等日常养护`
|
|
|
+- 田间巡检:`种植期间已开展长势检查与环境巡检`
|
|
|
+- 成熟采收:`本批次产品进入成熟采收阶段`
|
|
|
+- 安全检测:`已完成安全检测,相关结果可查`
|
|
|
+- 包装出库:`已完成包装整理,进入销售流通环节`
|
|
|
+
|
|
|
+说明:
|
|
|
+- “生长期养护”“田间巡检”属于阶段性节点,文案应强调“已持续开展 / 已开展”,不建议写成“最后一次已完成”
|
|
|
+- 这样可以保证时间轴既符合阶段表达逻辑,也符合用户阅读理解
|
|
|
+
|
|
|
#### 4.5.10 更多农事记录
|
|
|
主时间轴之外,建议保留“查看更多农事记录”入口。
|
|
|
|
|
|
@@ -599,7 +631,7 @@ timeline: [
|
|
|
##### 同阶段合并规则
|
|
|
- 同阶段出现多条记录时,不逐条展示
|
|
|
- 应合并为一个阶段节点,并提炼成一句消费者可理解的话术
|
|
|
-- 同阶段节点取“最能代表当前阶段”的时间点作为展示时间
|
|
|
+- 同阶段节点取该阶段对应任务的最早完成时间作为展示时间
|
|
|
|
|
|
##### 排序规则
|
|
|
- 主时间轴统一按时间升序排列
|
|
|
@@ -612,7 +644,7 @@ timeline: [
|
|
|
6. 包装出库
|
|
|
|
|
|
##### 缺失数据处理规则
|
|
|
-- 若无开始种植节点,可从最早一条有效农事记录开始展示
|
|
|
+- 若无开始种植节点,优先补齐批次字段 `plantStartTime`;在未补齐前可临时从最早一条有效农事记录开始展示
|
|
|
- 若无检测结果日期或可用检测记录,则不生成“安全检测”节点
|
|
|
- 若无包装时间,则不生成“包装出库”节点
|
|
|
- 主时间轴不强行为凑满 6 个节点而制造虚假节点
|
|
|
@@ -655,85 +687,195 @@ timeline: [
|
|
|
| `camera.status` | string | online / offline |
|
|
|
| `camera.desc` | string | 辅助说明 |
|
|
|
|
|
|
-### 4.7 模块七:当前环境状态(数据转结论)
|
|
|
+### 4.7 模块七:种植环境记录(历史背书优先)
|
|
|
|
|
|
#### 4.7.1 当前风险
|
|
|
-如果直接展示设备数据:
|
|
|
-- 温度 18℃
|
|
|
-- 湿度 65%
|
|
|
-- 土壤 PH 6.4
|
|
|
+如果把“当前实时环境数据”作为主表达,会存在明显问题:
|
|
|
+- 用户看到的是已采摘、已发货的产品
|
|
|
+- 当前实时环境并不能直接为历史种植过程背书
|
|
|
+- 容易让用户误解为“现在的环境”就是“当时的生长环境”
|
|
|
+
|
|
|
+因此,第二阶段环境模块不应以“当前实时数据”作为主展示逻辑,而应以:
|
|
|
+
|
|
|
+> 历史种植环境记录 + 当前环境摘要
|
|
|
|
|
|
-会显得冰冷、看不懂、技术化。
|
|
|
+的方式进行表达。
|
|
|
|
|
|
#### 4.7.2 正确策略
|
|
|
-环境模块必须遵循:
|
|
|
+> 先给历史环境结论,再用趋势图与摘要做佐证。
|
|
|
|
|
|
-> 先给结论,再给数据。
|
|
|
+其中:
|
|
|
+- 历史环境记录是主表达
|
|
|
+- 当前实时环境仅作为辅助参考
|
|
|
|
|
|
#### 4.7.3 推荐展示形式
|
|
|
标题:
|
|
|
-- 当前种植环境
|
|
|
-- 当前环境状态
|
|
|
+- 种植环境记录(推荐)
|
|
|
+- 生长环境记录
|
|
|
|
|
|
-主结论:
|
|
|
-- 当前环境稳定,适宜草莓生长
|
|
|
-- 当前种植环境良好,生长状态正常
|
|
|
+推荐默认使用:
|
|
|
+- `种植环境记录`
|
|
|
|
|
|
-辅助状态块:
|
|
|
-- 温度适宜
|
|
|
-- 湿度正常
|
|
|
-- 光照充足
|
|
|
-- 土壤墒情良好
|
|
|
+模块内部建议分为三层:
|
|
|
|
|
|
-#### 4.7.4 是否加入折线图
|
|
|
-结论:可以加,但不能让线图成为主角。
|
|
|
+##### 第一层:环境结论
|
|
|
+主结论示例:
|
|
|
+- 本批次种植期环境稳定,整体处于适宜生长区间
|
|
|
+- 种植期内环境指标整体平稳,处于适宜生长区间
|
|
|
|
|
|
-推荐方案:
|
|
|
-- 先做“环境结论 + 小趋势图”
|
|
|
-- 只做 1~2 张轻量趋势图
|
|
|
-- 不做大屏式复杂监控图表
|
|
|
+##### 第二层:核心趋势图(主视觉)
|
|
|
+以一张“土壤养分综合趋势图”作为主视觉,重点展示:
|
|
|
+- 氮(N)
|
|
|
+- 磷(P)
|
|
|
+- 钾(K)
|
|
|
+
|
|
|
+表达目标:
|
|
|
+- 体现土壤养分在种植周期内整体稳定
|
|
|
+- 体现养分管理较为均衡
|
|
|
+- 强化“这批产品是被持续管理出来的”感知
|
|
|
+
|
|
|
+##### 第三层:环境摘要(辅助信息)
|
|
|
+摘要项仅展示用户较容易理解、且对信任感有帮助的 4 项:
|
|
|
+- 气温
|
|
|
+- 湿度
|
|
|
+- 降雨量
|
|
|
+- 光照
|
|
|
+前端当前展示口径为:平均气温、平均湿度、累计降雨量、光照结论。
|
|
|
|
|
|
-优先图表:
|
|
|
-- 近 24 小时温度趋势
|
|
|
-- 近 24 小时湿度趋势
|
|
|
+不建议在主展示中加入:
|
|
|
+- 风速
|
|
|
+- 风向
|
|
|
+- 气压
|
|
|
|
|
|
-图表位置:
|
|
|
-环境结论下方,作为佐证信息,不抢视觉中心。
|
|
|
+因为这些数据对普通用户感知弱,容易增加理解负担,但对信任表达帮助有限。
|
|
|
+
|
|
|
+#### 4.7.4 是否加入曲线图
|
|
|
+结论:建议加入,但曲线图主角不再是温度/湿度,而是土壤养分(N/P/K)综合趋势。
|
|
|
+
|
|
|
+推荐方案:
|
|
|
+- 只做 1 张综合趋势图
|
|
|
+- 图中展示 N / P / K 三条趋势线
|
|
|
+- 横轴为种植周期时间
|
|
|
+- 纵轴为对应养分值
|
|
|
+- 如条件允许,可增加“适宜区间”浅色带作为辅助
|
|
|
+
|
|
|
+这样既能控制页面长度,又能明显提升专业感与可信度。
|
|
|
|
|
|
#### 4.7.5 视觉建议
|
|
|
-- 趋势图轻量化
|
|
|
-- 线条细
|
|
|
-- 不做重坐标轴
|
|
|
-- 不做多图叠加
|
|
|
-- 不要超过 2 张图
|
|
|
+- 土壤养分综合趋势图作为主视觉区域
|
|
|
+- 线条保持轻量、细腻,不做重数据大屏风格
|
|
|
+- N / P / K 三条线颜色需区分,但保持低饱和度
|
|
|
+- 可弱化坐标轴与网格线,避免技术感过强
|
|
|
+- 4 个环境摘要项作为辅助信息,位于趋势图下方或下一区域
|
|
|
+- 不建议同时展示多张环境曲线图,避免页面过长、注意力分散
|
|
|
|
|
|
#### 4.7.6 数据结构建议
|
|
|
```js
|
|
|
environment: {
|
|
|
- summary: '当前环境稳定,适宜草莓生长',
|
|
|
+ summary: '本批次种植期环境稳定,整体处于适宜生长区间',
|
|
|
+ chart: {
|
|
|
+ type: 'npk_trend',
|
|
|
+ sourceTable: 'weather_data_statistics',
|
|
|
+ values: {
|
|
|
+ n: [],
|
|
|
+ p: [],
|
|
|
+ k: []
|
|
|
+ }
|
|
|
+ },
|
|
|
items: [
|
|
|
- { label: '温度', value: '18℃', status: '适宜' },
|
|
|
- { label: '湿度', value: '65%', status: '正常' },
|
|
|
- { label: '光照', value: '充足', status: '正常' },
|
|
|
- { label: '土壤', value: '墒情良好', status: '正常' }
|
|
|
- ],
|
|
|
- charts: [
|
|
|
- { type: 'temperature', values: [] },
|
|
|
- { type: 'humidity', values: [] }
|
|
|
+ { label: '气温', value: '22.3℃', status: '种植期平均' },
|
|
|
+ { label: '湿度', value: '45%', status: '种植期平均' },
|
|
|
+ { label: '降雨量', value: '118mm', status: '种植期累计' },
|
|
|
+ { label: '光照', value: '充足', status: '表现稳定' }
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
#### 4.7.7 数据库 / 接口建议
|
|
|
-如果已有设备接口,无需改数据库,可由后端聚合后返回给溯源页接口。
|
|
|
-若无聚合接口,可新增:
|
|
|
+种植环境模块统一基于:
|
|
|
+- `weather_data_statistics`
|
|
|
+
|
|
|
+该表为聚合统计表,前端环境模块不直接读取原始设备时序数据。
|
|
|
+
|
|
|
+当前页面展示所需的数据包括:
|
|
|
+- 土壤养分趋势图:氮 / 磷 / 钾
|
|
|
+- 平均气温
|
|
|
+- 平均湿度
|
|
|
+- 累计降雨量
|
|
|
+- 光照结论
|
|
|
+
|
|
|
+建议后端在聚合接口中直接返回:
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|---|---|---|
|
|
|
-| `environmentSummary` | string | 环境结论文案 |
|
|
|
-| `environmentItems` | json | 环境状态卡 |
|
|
|
-| `environmentCharts` | json | 趋势图数据 |
|
|
|
+| `environmentSummary` | string | 种植环境结论文案 |
|
|
|
+| `environmentChart` | json | 土壤养分综合趋势图数据(N/P/K) |
|
|
|
+| `environmentItems` | json | 环境摘要项(平均气温/平均湿度/累计降雨量/光照结论) |
|
|
|
+| `environmentRaw` | json | 可选,返回聚合原始值用于排查,如平均光照值 |
|
|
|
+
|
|
|
+#### 4.7.8 统计时间范围规则
|
|
|
+种植环境数据的统计时间范围统一定义为:
|
|
|
+
|
|
|
+- 起点:开始种植时间(`plantStartTime`)
|
|
|
+- 终点:成熟采收时间(`harvestTime`)
|
|
|
+
|
|
|
+不使用包装出库时间作为环境统计结束时间。
|
|
|
+
|
|
|
+环境数据用于描述作物生长过程,作物在采收后已脱离生长环境,包装出库属于流通阶段,不应继续计入种植环境统计。
|
|
|
+
|
|
|
+#### 4.7.9 指标统计口径说明
|
|
|
+当前页面中的环境数据展示口径统一为:
|
|
|
+
|
|
|
+- 氮 / 磷 / 钾:种植期区间趋势
|
|
|
+- 气温:种植期平均
|
|
|
+- 湿度:种植期平均
|
|
|
+- 降雨量:种植期累计
|
|
|
+- 光照:种植期光照结论(非实时值)
|
|
|
+
|
|
|
+说明:
|
|
|
+- 前端展示的是“种植期统计结果”
|
|
|
+- 不是实时环境数据
|
|
|
+
|
|
|
+#### 4.7.10 光照结论映射规则
|
|
|
+当前光照展示为:
|
|
|
+
|
|
|
+- value:充足
|
|
|
+- status:表现稳定
|
|
|
+
|
|
|
+后端计算规则:
|
|
|
+
|
|
|
+- 数据来源:`weather_data_statistics` 日聚合表
|
|
|
+- 日口径:当日非 0 光照值平均(单位:lux)
|
|
|
+- 周期口径:种植期内日均值再平均,得到:`cycleLightAvg`
|
|
|
+
|
|
|
+结论映射(面向消费者的简化展示规则):
|
|
|
+
|
|
|
+- `cycleLightAvg < 8000 lux` → `lightLevel = 偏弱`,`lightStatus = 光照较弱`
|
|
|
+- `8000 ≤ cycleLightAvg < 20000 lux` → `lightLevel = 适宜`,`lightStatus = 整体平稳`
|
|
|
+- `20000 ≤ cycleLightAvg ≤ 50000 lux` → `lightLevel = 充足`,`lightStatus = 表现稳定`
|
|
|
+- `cycleLightAvg > 50000 lux` → `lightLevel = 充足`,`lightStatus = 光照偏强`
|
|
|
+
|
|
|
+对应关系说明:
|
|
|
+- 后端根据 `cycleLightAvg` 按 lux 阈值规则生成前端展示文案
|
|
|
+
|
|
|
+推荐返回结构示例:
|
|
|
+```json
|
|
|
+{
|
|
|
+ "cycleLightAvg": 24000,
|
|
|
+ "lightLevel": "充足",
|
|
|
+ "lightStatus": "表现稳定"
|
|
|
+}
|
|
|
+```
|
|
|
|
|
|
+前端展示对应关系:
|
|
|
+- `cycleLightAvg`:后端计算出的种植期平均光照值,仅用于排查或后台查看,可不直接展示给消费者
|
|
|
+- `lightLevel`:前端 `value` 展示值,对应“偏弱 / 适宜 / 充足”
|
|
|
+- `lightStatus`:前端 `status` 展示值,对应“表现稳定”等辅助描述
|
|
|
+
|
|
|
+- 本规则第一版采用基于 lux 的简化映射方式,展示语气更接近日常天气类表达,便于消费者理解
|
|
|
+- 阈值区间参考常见自然光照强度范围,属于面向消费者展示的“合理分档”,不强调农业专业术语,也不用于农业精细化控制
|
|
|
+- 后端应负责输出“平均光照数值 + 光照等级文案 + 状态文案”三层结果
|
|
|
+- 前端最终展示 `lightLevel` 与 `lightStatus`,不负责做 lux → 文案 的阈值判断
|
|
|
### 4.8 模块八:批次信息(后置)
|
|
|
|
|
|
#### 4.8.1 建议
|
|
|
@@ -743,7 +885,7 @@ environment: {
|
|
|
放在:
|
|
|
- 时间轴
|
|
|
- 实时画面
|
|
|
-- 环境状态
|
|
|
+- 种植环境记录
|
|
|
|
|
|
之后
|
|
|
|
|
|
@@ -804,7 +946,7 @@ environment: {
|
|
|
5. 农场信息
|
|
|
6. 关键农事时间轴
|
|
|
7. 种植现场实时画面
|
|
|
-8. 当前环境状态
|
|
|
+8. 种植环境记录
|
|
|
9. 批次信息
|
|
|
10. 检测报告
|
|
|
11. 合格证
|
|
|
@@ -851,7 +993,8 @@ environment: {
|
|
|
#### 新增字段:时间轴
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|---|---|---|
|
|
|
-| `timeline` | json/array | 关键时间轴节点 |
|
|
|
+| `timeline` | json/array | 关键时间轴节点(由批次信息、农事任务、检测报告、包装信息聚合生成) |
|
|
|
+| `plantStartTime` | datetime/date | 开始种植时间,作为种植过程记录时间轴起点 |
|
|
|
| `farmTasks` | json/array | 原始农事记录列表 |
|
|
|
|
|
|
#### 新增字段:实时监控
|
|
|
@@ -861,12 +1004,13 @@ environment: {
|
|
|
| `cameraCover` | string | 封面图 |
|
|
|
| `cameraStatus` | string | 在线状态 |
|
|
|
|
|
|
-#### 新增字段:环境状态
|
|
|
+#### 新增字段:种植环境记录
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|---|---|---|
|
|
|
-| `environmentSummary` | string | 环境结论 |
|
|
|
-| `environmentItems` | json | 状态项 |
|
|
|
-| `environmentCharts` | json | 趋势图数据 |
|
|
|
+| `environmentSummary` | string | 种植环境结论 |
|
|
|
+| `environmentItems` | json | 环境摘要项(平均气温/平均湿度/累计降雨量/光照结论) |
|
|
|
+| `environmentChart` | json | 土壤养分综合趋势图数据,来源于 `weather_data_statistics` |
|
|
|
+| `environmentRaw` | json | 可选,返回聚合原始值用于排查,如平均光照值 |
|
|
|
|
|
|
### 6.3 缺省数据与前端兜底策略
|
|
|
|
|
|
@@ -885,7 +1029,7 @@ environment: {
|
|
|
- 若 `camera.liveUrl` 为空但 `camera.coverImage` 有值,则展示封面图模式
|
|
|
- 若监控数据整体为空,则隐藏该模块
|
|
|
|
|
|
-#### 当前环境状态
|
|
|
+#### 种植环境记录
|
|
|
- 若仅有 summary,无具体 items / charts,则只展示结论文案
|
|
|
- 若 summary、items、charts 全为空,则隐藏该模块
|
|
|
|
|
|
@@ -935,9 +1079,12 @@ environment: {
|
|
|
| `camera_live_url` | varchar(500) | 实时视频流地址 |
|
|
|
| `camera_cover` | varchar(500) | 监控封面图 |
|
|
|
| `camera_status` | varchar(20) | 摄像头状态 |
|
|
|
-| `environment_summary` | varchar(500) | 环境总结 |
|
|
|
-| `environment_items` | text/json | 环境状态项 |
|
|
|
-| `environment_charts` | text/json | 环境趋势图数据 |
|
|
|
+| `environment_summary` | varchar(500) | 种植环境结论 |
|
|
|
+| `environment_items` | text/json | 环境摘要项(平均气温/平均湿度/累计降雨量/光照结论) |
|
|
|
+| `environment_chart` | text/json | 土壤养分综合趋势图数据,来源于 weather_data_statistics |
|
|
|
+| `environment_raw` | text/json | 可选,返回聚合原始值用于排查,如平均光照值 |
|
|
|
+| `plant_start_time` | datetime/date | 开始种植时间,作为环境统计起点 |
|
|
|
+| `harvest_time` | datetime/date | 成熟采收时间,作为环境统计终点 |
|
|
|
| `footer_statement` | varchar(500) | 页底收口文案,可选 |
|
|
|
|
|
|
### 7.3 农事记录表(优先复用)
|
|
|
@@ -976,12 +1123,11 @@ environment: {
|
|
|
|
|
|
#### P2
|
|
|
- 实时监控画面
|
|
|
-- 环境状态卡
|
|
|
+- 种植环境记录
|
|
|
|
|
|
#### P3
|
|
|
-- 小趋势图
|
|
|
+- 土壤养分综合趋势图
|
|
|
- 更多农事记录展开
|
|
|
-
|
|
|
### 8.2 前端实施策略
|
|
|
建议基于当前 `detail.vue`:
|
|
|
|
|
|
@@ -1013,7 +1159,7 @@ environment: {
|
|
|
1. 溯源结论卡
|
|
|
2. 时间轴聚合逻辑
|
|
|
3. 实时监控画面
|
|
|
-4. 当前环境状态
|
|
|
+4. 种植环境记录
|
|
|
5. 报告 / 合格证与第二阶段模块的顺序联调
|
|
|
|
|
|
#### 联调原则
|
|
|
@@ -1081,7 +1227,7 @@ environment: {
|
|
|
- 溯源结论字段
|
|
|
- 时间轴聚合逻辑
|
|
|
- 摄像头数据
|
|
|
-- 环境状态聚合
|
|
|
+- 种植环境记录聚合
|
|
|
|
|
|
##### 阶段五:前后端联调
|
|
|
目标:
|
|
|
@@ -1155,6 +1301,9 @@ environment: {
|
|
|
### 9.5 不要打破第一阶段视觉风格
|
|
|
第二阶段是在第一阶段上增强,而不是重做。
|
|
|
|
|
|
+### 9.6 不要让"当前实时环境"冒充"历史种植环境"
|
|
|
+环境模块若作为溯源背书,主表达必须优先使用历史记录或种植周期聚合结果,避免让用户误以为"当前天气"就是"当时环境"。
|
|
|
+
|
|
|
---
|
|
|
|
|
|
## 10. 验收标准
|
|
|
@@ -1183,7 +1332,7 @@ environment: {
|
|
|
- 时间轴节点不得伪造不存在的种植过程
|
|
|
- 未接入真实农事记录或系统节点时,不得以前端 mock 时间轴替代真实过程展示给用户
|
|
|
- 实时监控若为封面图或非实时模式,前端文案不得误导为“实时”
|
|
|
-- 环境状态结论必须与真实设备数据或后端聚合结论一致
|
|
|
+- 种植环境记录结论必须与真实设备数据或后端聚合结论一致
|
|
|
- 产地、批次、检测报告、合格证之间的批次关联必须一致
|
|
|
|
|
|
---
|
|
|
@@ -1230,7 +1379,7 @@ environment: {
|
|
|
|
|
|
### 第二批(强化真实感与差异化)
|
|
|
4. 种植现场实时画面
|
|
|
-5. 当前环境状态
|
|
|
+5. 种植环境记录
|
|
|
|
|
|
### 第三批(整体验收与细节增强)
|
|
|
6. 批次信息顺序调整
|
|
|
@@ -1332,6 +1481,36 @@ timeline: [
|
|
|
stage: 'planting',
|
|
|
title: '开始种植',
|
|
|
desc: '本批次产品进入种植管理阶段'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ time: '2026-03-18',
|
|
|
+ stage: 'care',
|
|
|
+ title: '生长期养护',
|
|
|
+ desc: '种植期间已持续开展灌溉、施肥等日常养护'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ time: '2026-03-26',
|
|
|
+ stage: 'inspection',
|
|
|
+ title: '田间巡检',
|
|
|
+ desc: '种植期间已开展长势检查与环境巡检'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ time: '2026-03-30',
|
|
|
+ stage: 'harvest',
|
|
|
+ title: '成熟采收',
|
|
|
+ desc: '本批次产品进入成熟采收阶段'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ time: '2026-03-31',
|
|
|
+ stage: 'test',
|
|
|
+ title: '安全检测',
|
|
|
+ desc: '已完成安全检测,相关结果可查'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ time: '2026-04-01',
|
|
|
+ stage: 'pack',
|
|
|
+ title: '包装出库',
|
|
|
+ desc: '已完成包装整理,进入销售流通环节'
|
|
|
}
|
|
|
]
|
|
|
```
|
|
|
@@ -1340,6 +1519,10 @@ timeline: [
|
|
|
- 前期可先用 mock timeline 数据做页面展示验证
|
|
|
- 后期联调时应由 `farmTasks + batch + report` 计算生成
|
|
|
- 真实接口场景下,若缺少真实时间轴数据,不得直接回退展示 mock timeline
|
|
|
+- `planting` 节点应明确取 `plantStartTime`
|
|
|
+- `care` 节点应取养护类任务的最早完成时间
|
|
|
+- `inspection` 节点应取巡检类任务的最早完成时间
|
|
|
+- 时间轴文案应采用“阶段表达”,不使用“最后一次任务完成”口径
|
|
|
- 若某些系统节点缺失,应按文档中的缺失规则隐藏或简化
|
|
|
|
|
|
#### 开发检查点
|
|
|
@@ -1347,6 +1530,10 @@ timeline: [
|
|
|
- 不允许逐条展示所有农事记录
|
|
|
- 必须有数量控制与排序控制
|
|
|
- 时间轴为空时应整体隐藏或显示简化版
|
|
|
+- `planting` 是否明确取 `plantStartTime`
|
|
|
+- `care` 是否取养护类任务的最早完成时间,而不是最后一次时间
|
|
|
+- `inspection` 是否取巡检类任务的最早完成时间,而不是最后一次时间
|
|
|
+- 时间轴文案是否采用“阶段表达”而不是“最近一次任务表达”
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -1383,40 +1570,68 @@ camera: {
|
|
|
|
|
|
---
|
|
|
|
|
|
-### 模块 F:当前环境状态
|
|
|
+### 模块 F:种植环境记录
|
|
|
|
|
|
#### 目标
|
|
|
-把设备数据转成用户可理解的环境结论。
|
|
|
+把环境数据转成“历史背书”,而不是简单展示当前实时数值。
|
|
|
|
|
|
#### 需完成内容
|
|
|
-- 新增环境状态卡
|
|
|
+- 新增种植环境记录卡
|
|
|
- 展示环境总结文案
|
|
|
-- 展示 4 个左右的状态项
|
|
|
-- 可预留 1–2 张轻量趋势图位置
|
|
|
+- 展示 1 张土壤养分综合趋势图
|
|
|
+- 展示 4 个环境摘要项(气温/湿度/降雨量/光照)
|
|
|
+- 可选展示“当前环境参考”作为辅助信息
|
|
|
|
|
|
#### 推荐前端数据结构
|
|
|
```js
|
|
|
environment: {
|
|
|
- summary: '当前环境稳定,适宜草莓生长',
|
|
|
+ summary: '本批次种植期环境稳定,整体处于适宜生长区间',
|
|
|
+ chart: {
|
|
|
+ type: 'npk_trend',
|
|
|
+ sourceTable: 'weather_data_statistics',
|
|
|
+ values: {
|
|
|
+ n: [],
|
|
|
+ p: [],
|
|
|
+ k: []
|
|
|
+ }
|
|
|
+ },
|
|
|
items: [
|
|
|
- { label: '温度', value: '18℃', status: '适宜' },
|
|
|
- { label: '湿度', value: '65%', status: '正常' },
|
|
|
- { label: '光照', value: '充足', status: '正常' },
|
|
|
- { label: '土壤', value: '墒情良好', status: '正常' }
|
|
|
- ],
|
|
|
- charts: []
|
|
|
+ { label: '气温', value: '22.3℃', status: '种植期平均' },
|
|
|
+ { label: '湿度', value: '45%', status: '种植期平均' },
|
|
|
+ { label: '降雨量', value: '118mm', status: '种植期累计' },
|
|
|
+ { label: '光照', value: '充足', status: '表现稳定' }
|
|
|
+ ]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
+#### 数据来源与统计规则
|
|
|
+- 数据来源:`weather_data_statistics`
|
|
|
+- 时间范围:`plantStartTime ~ harvestTime`
|
|
|
+
|
|
|
+当前展示口径:
|
|
|
+- 氮磷钾:趋势
|
|
|
+- 气温:平均
|
|
|
+- 湿度:平均
|
|
|
+- 降雨:累计
|
|
|
+- 光照:结论(后端返回)
|
|
|
+
|
|
|
+光照由后端计算,不由前端判断。
|
|
|
+后端建议同时返回平均光照数值(如 `cycleLightAvg`)以及映射后的展示文案(如 `lightLevel`、`lightStatus`),前端仅负责展示文案结果。
|
|
|
+光照文案整体表达风格应偏消费者理解口径,更接近日常天气描述,不需过多强调农业专业术语。
|
|
|
+
|
|
|
#### 前端实现建议
|
|
|
-- 第一版可先不接图表,先完成 summary + items
|
|
|
+- 第一版先完成 summary + 1 张土壤养分综合趋势图 + 4 个环境摘要项
|
|
|
+- 当前实时环境数据不作为主表达,只作为辅助参考信息
|
|
|
- 图表建议单独封装为轻趋势图子模块
|
|
|
-- 若仅有 summary,则只展示 summary
|
|
|
+- 若仅有 summary,无 chart / items,则只展示 summary
|
|
|
|
|
|
#### 开发检查点
|
|
|
-- 不要让数值成为主角
|
|
|
-- 环境模块首先要给结论
|
|
|
-- 趋势图是佐证,不是主表达
|
|
|
+- 是否表达的是“历史种植环境”
|
|
|
+- NPK 是否为主视觉
|
|
|
+- 是否只保留 4 个环境项(平均气温/平均湿度/累计降雨量/光照结论)
|
|
|
+- 数据是否来自 `weather_data_statistics`
|
|
|
+- 时间范围是否为种植 → 采收
|
|
|
+- 光照是否由后端返回结论
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -1522,9 +1737,12 @@ environment: {
|
|
|
- 是否不显技术化
|
|
|
- 封面图兜底是否自然
|
|
|
|
|
|
-### 环境状态验收
|
|
|
-- 是否先有环境结论
|
|
|
-- 状态块是否简洁
|
|
|
+### 种植环境记录验收
|
|
|
+- 是否先有“历史种植环境”结论
|
|
|
+- 土壤养分综合趋势图是否成为主视觉
|
|
|
+- 环境摘要是否控制为 4 项(平均气温/平均湿度/累计降雨量/光照结论)
|
|
|
+- 图表与摘要数据是否统一来源于 `weather_data_statistics`
|
|
|
+- 光照是否展示后端返回的结论值,而不是前端直接映射 lux
|
|
|
- 图表是否克制,不抢戏
|
|
|
|
|
|
### 页面完整性验收
|