fix: 土地环境页面表格列顺序与弹窗字段精简
- 种植/养殖环境表格列重排,土壤类型/负责人/状态前置,与详情Drawer索引对齐 - 筛选栏种植作物、动物种类改为自由文本输入 - 新增弹窗精简非必填字段(种植作物/状态/灌溉方式/动物种类/养殖方式等) - 移除种植作物搜索选择框及其JS逻辑 - 修正showPlotDetail/showBreedDetail的td取值索引 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,19 @@
|
||||
# 营养用餐管理端 CHANGELOG
|
||||
|
||||
## [2026-05-25]
|
||||
|
||||
### 修复 — 绿色种采 · 土地环境页面结构修正
|
||||
|
||||
- **`farm-land.html`** 土地环境
|
||||
- 种植环境表格列顺序调整:「土壤类型/负责人/地块状态」前置,「种植作物/灌溉方式」后移,与详情 Drawer 取值逻辑保持一致
|
||||
- 养殖环境表格列顺序调整:「负责人/养殖状态」前置,「动物种类/养殖方式」后移
|
||||
- 筛选栏「种植作物」由固定 select 改为自由文本输入框,「动物种类」同步调整
|
||||
- 新增地块弹窗精简字段:移除「种植作物(搜索选择框)」「地块状态」「灌溉方式」三项(由后续流程维护)
|
||||
- 新增养殖区弹窗精简字段:移除「动物种类」「养殖方式」「养殖状态」三项
|
||||
- 移除种植作物搜索选择框(search-select)及其 JS 初始化逻辑
|
||||
- 修正 `showPlotDetail` / `showBreedDetail` 函数中 td 索引,与调整后列顺序保持一致
|
||||
- 休耕/空置状态行的「种植作物」「灌溉方式」(或「动物种类」「养殖方式」)数据清空,避免显示旧的脏数据
|
||||
|
||||
## [2026-05-22]
|
||||
|
||||
### 增强 — 营养用餐模块多页面交互优化
|
||||
|
||||
@@ -221,9 +221,7 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>地块名称</label><input class="filter-input" placeholder="请输入地块名称"></div>
|
||||
<div class="filter-item"><label>种植作物</label>
|
||||
<select class="filter-select"><option>全部</option><option>菠菜</option><option>白菜</option><option>胡萝卜</option><option>香菇</option><option>四季豆</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>种植作物</label><input class="filter-input" placeholder="请输入种植作物"></div>
|
||||
<div class="filter-item"><label>地块状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>种植中</option><option>休耕中</option></select>
|
||||
</div>
|
||||
@@ -249,7 +247,7 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">地块编号</th><th rowspan="2">地块名称</th><th rowspan="2">面积(亩)</th><th rowspan="2">种植作物</th><th rowspan="2">灌溉方式</th><th rowspan="2">土壤类型</th><th rowspan="2">负责人</th><th rowspan="2">地块状态</th>
|
||||
<th rowspan="2">地块编号</th><th rowspan="2">地块名称</th><th rowspan="2">面积(亩)</th><th rowspan="2">土壤类型</th><th rowspan="2">负责人</th><th rowspan="2">地块状态</th><th rowspan="2">种植作物</th><th rowspan="2">灌溉方式</th>
|
||||
<th colspan="10">最新监测数据</th>
|
||||
<th rowspan="2">操作</th>
|
||||
</tr>
|
||||
@@ -260,16 +258,16 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>LAND-001</td><td>A区蔬菜基地</td><td>12.5</td><td>菠菜/白菜</td><td>滴灌</td><td>壤土</td><td>张三</td><td><span class="tag tag-green">种植中</span></td>
|
||||
<tr><td>LAND-001</td><td>A区蔬菜基地</td><td>12.5</td><td>壤土</td><td>张三</td><td><span class="tag tag-green">种植中</span></td><td>菠菜/白菜</td><td>滴灌</td>
|
||||
<td>17.2</td><td>72</td><td>6.8</td><td>142</td><td>38</td><td>186</td><td>0.02</td>
|
||||
<td><span class="tag tag-green">优</span></td><td>2026-04-22 10:05</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><a class="link" onclick="showPlotDetail(this)">详情</a><a class="link" onclick="openPlotModal('edit','LAND-001','A区蔬菜基地','12.5','菠菜/白菜','种植中')">编辑</a><a class="link" onclick="openAlarmLog('LAND-001','A区蔬菜基地','plant')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除地块 LAND-001?')){}">删除</a></td></tr>
|
||||
<tr><td>LAND-002</td><td>B区根茎基地</td><td>8.0</td><td>胡萝卜</td><td>喷灌</td><td>砂土</td><td>李四</td><td><span class="tag tag-green">种植中</span></td>
|
||||
<tr><td>LAND-002</td><td>B区根茎基地</td><td>8.0</td><td>砂土</td><td>李四</td><td><span class="tag tag-green">种植中</span></td><td>胡萝卜</td><td>喷灌</td>
|
||||
<td>18.4</td><td>65</td><td>7.1</td><td>128</td><td>42</td><td>210</td><td>0.01</td>
|
||||
<td><span class="tag tag-blue">良</span></td><td>2026-04-22 10:05</td><td><span class="tag tag-orange">中</span></td><td class="td-actions"><a class="link" onclick="showPlotDetail(this)">详情</a><a class="link" onclick="openPlotModal('edit','LAND-002','B区根茎基地','8.0','胡萝卜','种植中')">编辑</a><a class="link" onclick="openAlarmLog('LAND-002','B区根茎基地','plant')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除地块 LAND-002?')){}">删除</a></td></tr>
|
||||
<tr><td>LAND-003</td><td>C区菌菇大棚</td><td>3.2</td><td>香菇</td><td>滴灌</td><td>壤土</td><td>李四</td><td><span class="tag tag-green">种植中</span></td>
|
||||
<tr><td>LAND-003</td><td>C区菌菇大棚</td><td>3.2</td><td>壤土</td><td>李四</td><td><span class="tag tag-green">种植中</span></td><td>香菇</td><td>滴灌</td>
|
||||
<td>22.1</td><td>85</td><td>6.5</td><td>168</td><td>52</td><td>224</td><td>0.00</td>
|
||||
<td><span class="tag tag-green">优</span></td><td>2026-04-22 10:04</td><td><span class="tag tag-blue">低</span></td><td class="td-actions"><a class="link" onclick="showPlotDetail(this)">详情</a><a class="link" onclick="openPlotModal('edit','LAND-003','C区菌菇大棚','3.2','香菇','种植中')">编辑</a><a class="link" onclick="openAlarmLog('LAND-003','C区菌菇大棚','plant')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除地块 LAND-003?')){}">删除</a></td></tr>
|
||||
<tr><td>LAND-004</td><td>D区豆类基地</td><td>6.8</td><td>四季豆</td><td>漫灌</td><td>黏土</td><td>王五</td><td><span class="tag tag-gray">休耕中</span></td>
|
||||
<tr><td>LAND-004</td><td>D区豆类基地</td><td>6.8</td><td>黏土</td><td>王五</td><td><span class="tag tag-gray">休耕中</span></td><td></td><td></td>
|
||||
<td>16.8</td><td>58</td><td>6.9</td><td>96</td><td>28</td><td>158</td><td>0.03</td>
|
||||
<td><span class="tag tag-blue">良</span></td><td>2026-04-22 10:05</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><a class="link" onclick="showPlotDetail(this)">详情</a><a class="link" onclick="openPlotModal('edit','LAND-004','D区豆类基地','6.8','四季豆','休耕中')">编辑</a><a class="link" onclick="openAlarmLog('LAND-004','D区豆类基地','plant')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除地块 LAND-004?')){}">删除</a></td></tr>
|
||||
</tbody>
|
||||
@@ -294,9 +292,7 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>养殖区名称</label><input class="filter-input" placeholder="请输入养殖区名称"></div>
|
||||
<div class="filter-item"><label>动物种类</label>
|
||||
<select class="filter-select"><option>全部</option><option>猪</option><option>鸡</option><option>鸭</option><option>羊</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>动物种类</label><input class="filter-input" placeholder="请输入动物种类"></div>
|
||||
<div class="filter-item"><label>养殖状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>养殖中</option><option>空置</option></select>
|
||||
</div>
|
||||
@@ -322,7 +318,7 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">养殖区编号</th><th rowspan="2">养殖区名称</th><th rowspan="2">面积(㎡)</th><th rowspan="2">动物种类</th><th rowspan="2">养殖方式</th><th rowspan="2">负责人</th><th rowspan="2">养殖状态</th>
|
||||
<th rowspan="2">养殖区编号</th><th rowspan="2">养殖区名称</th><th rowspan="2">面积(㎡)</th><th rowspan="2">负责人</th><th rowspan="2">养殖状态</th><th rowspan="2">动物种类</th><th rowspan="2">养殖方式</th>
|
||||
<th colspan="10">最新监测数据</th>
|
||||
<th rowspan="2">操作</th>
|
||||
</tr>
|
||||
@@ -332,19 +328,19 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>BREED-A1</td><td>A1-猪舍</td><td>1,200</td><td>猪(杜洛克)</td><td>圈养</td><td>王建国</td><td><span class="tag tag-green">养殖中</span></td>
|
||||
<tr><td>BREED-A1</td><td>A1-猪舍</td><td>1,200</td><td>王建国</td><td><span class="tag tag-green">养殖中</span></td><td>猪(杜洛克)</td><td>圈养</td>
|
||||
<td>22.4</td><td>68</td><td>8.2</td><td>1,240</td><td>180</td>
|
||||
<td><span class="tag tag-green">正常</span></td><td><span class="tag tag-green">优</span></td><td><span class="tag tag-green">正常</span></td>
|
||||
<td>2026-04-22 10:05</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><a class="link" onclick="showBreedDetail(this)">详情</a><a class="link" onclick="openBreedModal('edit','BREED-A1','A1-猪舍','1200','猪','圈养','养殖中')">编辑</a><a class="link" onclick="openAlarmLog('BREED-A1','A1-猪舍','breed')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除养殖区 BREED-A1?')){}">删除</a></td></tr>
|
||||
<tr><td>BREED-B3</td><td>B3-鸡舍</td><td>860</td><td>鸡(黄羽鸡)</td><td>散养</td><td>李秀芳</td><td><span class="tag tag-green">养殖中</span></td>
|
||||
<tr><td>BREED-B3</td><td>B3-鸡舍</td><td>860</td><td>李秀芳</td><td><span class="tag tag-green">养殖中</span></td><td>鸡(黄羽鸡)</td><td>散养</td>
|
||||
<td>24.6</td><td>62</td><td>12.5</td><td>1,580</td><td>320</td>
|
||||
<td><span class="tag tag-green">正常</span></td><td><span class="tag tag-blue">良</span></td><td><span class="tag tag-green">正常</span></td>
|
||||
<td>2026-04-22 10:05</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><a class="link" onclick="showBreedDetail(this)">详情</a><a class="link" onclick="openBreedModal('edit','BREED-B3','B3-鸡舍','860','鸡','散养','养殖中')">编辑</a><a class="link" onclick="openAlarmLog('BREED-B3','B3-鸡舍','breed')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除养殖区 BREED-B3?')){}">删除</a></td></tr>
|
||||
<tr><td>BREED-C2</td><td>C2-鸭舍</td><td>640</td><td>鸭(麻鸭)</td><td>散养</td><td>陈大明</td><td><span class="tag tag-green">养殖中</span></td>
|
||||
<tr><td>BREED-C2</td><td>C2-鸭舍</td><td>640</td><td>陈大明</td><td><span class="tag tag-green">养殖中</span></td><td>鸭(麻鸭)</td><td>散养</td>
|
||||
<td>23.8</td><td>70</td><td>18.6</td><td>1,820</td><td>210</td>
|
||||
<td><span class="tag tag-orange">告警</span></td><td><span class="tag tag-blue">良</span></td><td><span class="tag tag-red">异常</span></td>
|
||||
<td>2026-04-22 10:04</td><td><span class="tag tag-red">高</span></td><td class="td-actions"><a class="link" onclick="showBreedDetail(this)">详情</a><a class="link" onclick="openBreedModal('edit','BREED-C2','C2-鸭舍','640','鸭','散养','养殖中')">编辑</a><a class="link" onclick="openAlarmLog('BREED-C2','C2-鸭舍','breed')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除养殖区 BREED-C2?')){}">删除</a></td></tr>
|
||||
<tr><td>BREED-D1</td><td>D1-羊舍</td><td>480</td><td>羊(湖羊)</td><td>圈养</td><td>赵志强</td><td><span class="tag tag-gray">空置</span></td>
|
||||
<tr><td>BREED-D1</td><td>D1-羊舍</td><td>480</td><td>赵志强</td><td><span class="tag tag-gray">空置</span></td><td></td><td></td>
|
||||
<td>20.2</td><td>55</td><td>6.4</td><td>860</td><td>150</td>
|
||||
<td><span class="tag tag-green">正常</span></td><td><span class="tag tag-green">优</span></td><td><span class="tag tag-green">正常</span></td>
|
||||
<td>2026-04-22 10:05</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><a class="link" onclick="showBreedDetail(this)">详情</a><a class="link" onclick="openBreedModal('edit','BREED-D1','D1-羊舍','480','羊','圈养','空置')">编辑</a><a class="link" onclick="openAlarmLog('BREED-D1','D1-羊舍','breed')">采集记录</a><a class="link" style="color:var(--danger)" onclick="if(confirm('确认删除养殖区 BREED-D1?')){}">删除</a></td></tr>
|
||||
@@ -374,18 +370,6 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<div class="form-item"><label>地块编号<span class="required">*</span></label><input id="plotId" type="text" placeholder="如 LAND-005"></div>
|
||||
<div class="form-item"><label>地块名称<span class="required">*</span></label><input id="plotName" type="text" placeholder="请输入地块名称"></div>
|
||||
<div class="form-item"><label>面积(亩)<span class="required">*</span></label><input id="plotArea" type="number" placeholder="请输入面积"></div>
|
||||
<div class="form-item"><label>种植作物<span class="required">*</span></label>
|
||||
<div class="search-select" id="plotCropSelect">
|
||||
<input id="plotCrop" type="text" placeholder="搜索或选择作物" autocomplete="off">
|
||||
<div class="search-select__dropdown" id="plotCropDropdown"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item"><label>地块状态<span class="required">*</span></label>
|
||||
<select id="plotStatus"><option>种植中</option><option>休耕中</option></select>
|
||||
</div>
|
||||
<div class="form-item"><label>灌溉方式</label>
|
||||
<select><option>滴灌</option><option>喷灌</option><option>漫灌</option></select>
|
||||
</div>
|
||||
<div class="form-item"><label>土壤类型</label>
|
||||
<select><option>壤土</option><option>砂土</option><option>黏土</option></select>
|
||||
</div>
|
||||
@@ -412,15 +396,6 @@ table thead .sub-header th{font-size:12px;font-weight:500;}
|
||||
<div class="form-item"><label>养殖区编号<span class="required">*</span></label><input id="breedId" type="text" placeholder="如 BREED-E1"></div>
|
||||
<div class="form-item"><label>养殖区名称<span class="required">*</span></label><input id="breedName" type="text" placeholder="请输入养殖区名称"></div>
|
||||
<div class="form-item"><label>面积(㎡)<span class="required">*</span></label><input id="breedArea" type="number" placeholder="请输入面积"></div>
|
||||
<div class="form-item"><label>动物种类<span class="required">*</span></label>
|
||||
<select id="breedAnimal"><option>猪</option><option>鸡</option><option>鸭</option><option>牛</option><option>羊</option></select>
|
||||
</div>
|
||||
<div class="form-item"><label>养殖方式<span class="required">*</span></label>
|
||||
<select id="breedMethod"><option>圈养</option><option>散养</option></select>
|
||||
</div>
|
||||
<div class="form-item"><label>养殖状态<span class="required">*</span></label>
|
||||
<select id="breedStatus"><option>养殖中</option><option>空置</option></select>
|
||||
</div>
|
||||
<div class="form-item"><label>通风系统</label>
|
||||
<select><option>自动</option><option>半自动</option><option>自然通风</option></select>
|
||||
</div>
|
||||
@@ -543,12 +518,10 @@ function openPlotModal(mode, id, name, area, crop, status){
|
||||
document.getElementById('plotId').value=id||'';
|
||||
document.getElementById('plotName').value=name||'';
|
||||
document.getElementById('plotArea').value=area||'';
|
||||
document.getElementById('plotCrop').value=crop||'';
|
||||
document.getElementById('plotStatus').value=status||'种植中';
|
||||
document.getElementById('plotId').readOnly=true;
|
||||
} else {
|
||||
document.getElementById('plotId').value='';document.getElementById('plotName').value='';
|
||||
document.getElementById('plotArea').value='';document.getElementById('plotCrop').value='';
|
||||
document.getElementById('plotArea').value='';
|
||||
document.getElementById('plotId').readOnly=false;
|
||||
}
|
||||
document.getElementById('plotModal').style.display='flex';
|
||||
@@ -563,9 +536,7 @@ function openBreedModal(mode, id, name, area, animal, method, status){
|
||||
document.getElementById('breedId').value=id||'';
|
||||
document.getElementById('breedName').value=name||'';
|
||||
document.getElementById('breedArea').value=area||'';
|
||||
document.getElementById('breedAnimal').value=animal||'猪';
|
||||
document.getElementById('breedMethod').value=method||'圈养';
|
||||
document.getElementById('breedStatus').value=status||'养殖中';
|
||||
document.getElementById('breedId').readOnly=true;
|
||||
} else {
|
||||
document.getElementById('breedId').value='';document.getElementById('breedName').value='';
|
||||
@@ -581,8 +552,8 @@ function showPlotDetail(el){
|
||||
var tr=el.closest('tr');
|
||||
var cells=tr.querySelectorAll('td');
|
||||
var id=cells[0].textContent, name=cells[1].textContent, area=cells[2].textContent;
|
||||
var crop=cells[3].textContent, irrigation=cells[4].textContent, soil=cells[5].textContent;
|
||||
var person=cells[6].textContent, status=cells[7].textContent;
|
||||
var soil=cells[3].textContent, person=cells[4].textContent;
|
||||
var status=cells[5].textContent, crop=cells[6].textContent, irrigation=cells[7].textContent;
|
||||
var temp=cells[8].textContent, hum=cells[9].textContent, ph=cells[10].textContent;
|
||||
var n=cells[11].textContent, p=cells[12].textContent, k=cells[13].textContent;
|
||||
var pest=cells[14].textContent, water=cells[15].textContent;
|
||||
@@ -631,8 +602,9 @@ function showBreedDetail(el){
|
||||
var tr=el.closest('tr');
|
||||
var cells=tr.querySelectorAll('td');
|
||||
var id=cells[0].textContent, name=cells[1].textContent, area=cells[2].textContent;
|
||||
var animal=cells[3].textContent, method=cells[4].textContent, person=cells[5].textContent;
|
||||
var status=cells[6].textContent, temp=cells[7].textContent, hum=cells[8].textContent;
|
||||
var person=cells[3].textContent, status=cells[4].textContent;
|
||||
var animal=cells[5].textContent, method=cells[6].textContent;
|
||||
var temp=cells[7].textContent, hum=cells[8].textContent;
|
||||
var nh3=cells[9].textContent, co2=cells[10].textContent, lux=cells[11].textContent;
|
||||
var vent=cells[12].textContent, water=cells[13].textContent, waste=cells[14].textContent;
|
||||
var time=cells[15].textContent, warn=cells[16].textContent;
|
||||
@@ -674,35 +646,6 @@ function showBreedDetail(el){
|
||||
}
|
||||
function closeBreedDetail(){document.getElementById('breedDetailDrawer').classList.remove('open');}
|
||||
|
||||
// --- 种植作物搜索选择框 ---
|
||||
(function(){
|
||||
var cropOptions=['菠菜','白菜','胡萝卜','香菇','四季豆','番茄','黄瓜','茄子','辣椒','西兰花','芹菜','生菜','土豆','红薯','玉米','小麦','水稻','大豆','花生','油菜'];
|
||||
var input=document.getElementById('plotCrop');
|
||||
var dropdown=document.getElementById('plotCropDropdown');
|
||||
function renderOptions(keyword){
|
||||
var filtered=keyword?cropOptions.filter(function(c){return c.indexOf(keyword)>-1;}):cropOptions;
|
||||
if(filtered.length===0){
|
||||
dropdown.innerHTML='<div class="search-select__empty">无匹配结果</div>';
|
||||
} else {
|
||||
dropdown.innerHTML=filtered.map(function(c){return '<div class="search-select__option">'+c+'</div>';}).join('');
|
||||
}
|
||||
dropdown.classList.add('show');
|
||||
}
|
||||
input.addEventListener('focus',function(){renderOptions(this.value);});
|
||||
input.addEventListener('input',function(){renderOptions(this.value);});
|
||||
dropdown.addEventListener('click',function(e){
|
||||
if(e.target.classList.contains('search-select__option')){
|
||||
input.value=e.target.textContent;
|
||||
dropdown.classList.remove('show');
|
||||
}
|
||||
});
|
||||
document.addEventListener('click',function(e){
|
||||
if(!document.getElementById('plotCropSelect').contains(e.target)){
|
||||
dropdown.classList.remove('show');
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
// --- 预警记录弹窗逻辑 ---
|
||||
var alarmData={
|
||||
'LAND-001':[],
|
||||
|
||||
Reference in New Issue
Block a user