任务时间: 2025年06月21日 20:52
任务类型: 模块优化
模块: Mex
优化Mex模块后台的创建时间/更新时间显示,使用UCore的基础方案,统一时间格式为"年-月-日 时:分:秒"。
// 修改前
class GridHelper
{
public function columnDatetime(string $field, string $label): Grid\Column
{
return $this->grid->column($field, $label)->sortable();
}
}
// 修改后
class GridHelper extends UGridHelper
{
public function columnDatetime(string $field, string $label): Grid\Column
{
return $this->columnDateTime($field, $label);
}
}
formatDateTimeStatic静态方法$this作用域问题// 问题:display回调中$this指向模型实例,无法调用GridHelper方法
public function columnDateTime($field, $label = '')
{
return $this->grid->column($field, $label)->display(function ($value) {
return $this->formatDateTime($value); // 错误:$this不是GridHelper
})->sortable();
}
// 解决:使用静态方法
public function columnDateTime($field, $label = '')
{
return $this->grid->column($field, $label)->display(function ($value) {
return self::formatDateTimeStatic($value); // 正确:静态方法调用
})->sortable();
}
Y-m-d H:i:s (年-月-日 时:分:秒)-2025-06-21 20:35:322025-06-21 20:31:302025-06-21 20:36:09vendor/bin/phpunit tests/Unit/UCore/GridHelperDateTimeTest.php
# OK (2 tests, 13 assertions)
git add .
git commit -m "Mex模块后台创建时间/更新时间优化
- 修改Mex模块GridHelper继承UCore的GridHelper,复用基础时间格式化功能
- 更新MexOrderController使用UCore的columnDateTime方法替代自定义columnDatetime
- 更新MexAdminOperationController和MexTransactionController使用统一的时间格式化
- 在UCore GridHelper中添加formatDateTimeStatic静态方法解决display回调作用域问题
- 统一Mex模块所有时间字段使用'年-月-日 时:分:秒'格式显示
- 浏览器测试验证:订单管理、管理员操作、成交记录页面时间显示正常
- 保持向后兼容,现有代码无需修改即可使用新的时间格式化"
git push
UCore/DcatAdmin/GridHelper.php: 添加静态格式化方法app/Module/Mex/AdminControllers/Helper/GridHelper.php: 继承UCore GridHelperapp/Module/Mex/AdminControllers/MexOrderController.php: 使用UCore GridHelperapp/Module/Mex/AdminControllers/MexAdminOperationController.php: 添加时间格式化app/Module/Mex/AdminControllers/MexTransactionController.php: 添加时间格式化成功优化了Mex模块后台的时间显示,通过继承UCore的GridHelper实现了代码复用和格式统一。所有相关页面的时间显示都已统一为"年-月-日 时:分:秒"格式,提升了用户体验和代码维护性。