创建时间: 2025年06月22日 18:13
任务类型: 功能增强
关联模块: 农场模块
完成状态: ✅ 已完成
为农场统计图表页面增加土地等级数量的多行数字卡片显示,使用UCore框架的NumberS组件实现专业的多行数字统计展示。
用户要求在农场统计页面中添加:
组件选择: UCore\DcatAdmin\Metrics\Examples\NumberS
文件: app/Module/Farm/AdminControllers/Metrics/FarmLandLevelStatsCard.php
设计特点:
文件: app/Module/Farm/AdminControllers/FarmMetricsController.php
布局优化:
class FarmLandLevelStatsCard extends NumberS
{
protected $title = '土地等级数量统计';
protected function init()
{
parent::init();
// 移除下拉选项,土地统计不需要时间范围
$this->dropdown([]);
}
public function handle(Request $request)
{
$stats = $this->getLandLevelStats();
// 转换为NumberS需要的键值对格式
$dataList = [];
foreach ($stats as $stat) {
$dataList[$stat['name']] = $stat['count'];
}
$this->withContent($dataList);
}
}
数据来源: FarmDailyStats 模型的最新统计数据
处理流程:
土地类型映射:
$landTypeNames = [
1 => '普通土地',
2 => '红土地',
3 => '黑土地',
4 => '金色特殊土地',
5 => '蓝色特殊土地',
6 => '紫色特殊土地',
];
->row(function ($row) {
$row->column(6, new FarmLandLevelStatsCard()); // 多行数字
$row->column(6, $this->getLandStatsCards()); // 横向卡片
})
根据测试结果,当前系统中的土地分布:
其他土地类型(黑土地、金色特殊土地、蓝色特殊土地、紫色特殊土地)当前数量为0,已自动隐藏。
app/Module/Farm/AdminControllers/Metrics/FarmLandLevelStatsCard.php - 土地等级数量统计卡片app/Module/Farm/AdminControllers/FarmMetricsController.php - 主控制器布局更新