json([ 'status' => 'success', 'message' => 'JSON生成成功' ]); } catch (\Exception $e) { return response()->json([ 'status' => 'error', 'message' => 'JSON生成失败: ' . $e->getMessage() ]); } } /** * 列表页 * * @return Grid */ protected function grid() { return Grid::make(new FundCurrencyRepository(), function (Grid $grid) { $helper = new GridHelper($grid, $this); // 检查配置表状态 $status = \App\Module\Fund\AdminControllers\Tools\RefreshCheckTool::checkSyncStatus(); if ($status['is_synced']) { admin_success('JSON配置表状态', $status['message']); } else { admin_warning('JSON配置表状态', $status['message']); } // 添加工具按钮 $grid->tools([ new SyncFundCurrencyJsonTool() ]); $helper->columnId(); $grid->column('identification', '货币标识')->sortable(); $grid->column('name', '货币名称')->sortable(); $grid->column('icon', '图标')->image('', 40, 40); $grid->column('display_attributes', '显示属性')->display(function ($value) { if (empty($value)) { return '-'; } if (is_string($value)) { $value = json_decode($value, true); } return json_encode($value, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }); $grid->column('data1', '额外数据')->display(function ($value) { if (empty($value)) { return '-'; } $data = json_decode($value, true); return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }); $grid->column('create_time', '创建时间')->display(function ($value) { return date('Y-m-d H:i:s', $value); })->sortable(); $grid->column('update_time', '更新时间')->display(function ($value) { return date('Y-m-d H:i:s', $value); })->sortable(); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->like('identification', '货币标识'); $filter->like('name', '货币名称'); }); }); } /** * 详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FundCurrencyRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); $show->field('id', 'ID'); $show->field('identification', '货币标识'); $show->field('name', '货币名称'); $show->field('icon', '图标')->image(); $show->field('display_attributes', '显示属性')->unescape()->as(function ($value) { if (empty($value)) { return '无'; } if (is_string($value)) { $value = json_decode($value, true); } $html = '
| 属性名 | 属性值 |
|---|---|
| ' . htmlspecialchars($key) . ' | '; $html .= '' . htmlspecialchars((string)$val) . ' | '; $html .= '