grid->column($field, $label)->link(function ($value) { return admin_url("users/{$value}"); }); } /** * 商品ID列,带链接 */ public function columnItemId($field = 'item_id', $label = '商品ID') { return $this->grid->column($field, $label)->link(function ($value) { return admin_url("game-items/{$value}"); }); } /** * 订单ID列,带链接 */ public function columnOrderId($field, $label) { return $this->grid->column($field, $label)->link(function ($value) { return $value ? admin_url("mex-orders/{$value}") : '-'; }); } /** * 价格列,格式化显示 */ public function columnPrice($field = 'price', $label = '价格', $decimals = 5) { return $this->grid->column($field, $label)->display(function ($value) use ($decimals) { return number_format($value, $decimals); }); } /** * 金额列,格式化显示 */ public function columnAmount($field, $label, $decimals = 5) { return $this->grid->column($field, $label)->display(function ($value) use ($decimals) { return $value ? number_format($value, $decimals) : '-'; }); } /** * 数量列,格式化显示 */ public function columnQuantity($field = 'quantity', $label = '数量') { return $this->grid->column($field, $label)->display(function ($value) { return number_format($value); }); } /** * 平均价格计算列(根据金额和数量字段计算) */ public function columnAveragePrice($amountField, $quantityField, $label) { return $this->grid->column($label)->display(function () use ($amountField, $quantityField) { $amount = $this->{$amountField}; $quantity = $this->{$quantityField}; if ($quantity > 0) { $avgPrice = bcdiv($amount, $quantity, 5); return number_format($avgPrice, 5); } return '-'; }); } /** * 净值计算列(正值减去负值) */ public function columnNetValue($positiveField, $negativeField, $label, $decimals = 5) { return $this->grid->column($label)->display(function () use ($positiveField, $negativeField, $decimals) { $positive = $this->{$positiveField}; $negative = $this->{$negativeField}; if (is_numeric($positive) && is_numeric($negative)) { $net = bcsub($positive, $negative, $decimals); return number_format($net, $decimals); } return '-'; }); } }