| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace App\Module\Mex\AdminActions;
- use App\Module\Mex\Models\MexConfig;
- use App\Module\Mex\Service\MexConfigService;
- use Dcat\Admin\Grid\BatchAction;
- use Illuminate\Http\Request;
- /**
- * 启用配置批量操作
- */
- class EnableConfigAction extends BatchAction
- {
- protected $title = '启用配置';
- /**
- * 处理批量操作
- *
- * @param Request $request
- * @return \Dcat\Admin\Actions\Response
- */
- public function handle(Request $request)
- {
- $keys = $this->getKey();
- if (empty($keys)) {
- return $this->response()->error('请选择要启用的配置项');
- }
- $successCount = 0;
- $failedKeys = [];
- $configs = MexConfig::whereIn('id', $keys)->get();
- foreach ($configs as $config) {
- if ($config->is_readonly) {
- $failedKeys[] = $config->key . '(只读)';
- continue;
- }
- if (MexConfigService::setEnabled($config->key, true)) {
- $successCount++;
- } else {
- $failedKeys[] = $config->key;
- }
- }
- $message = "成功启用 {$successCount} 个配置项";
- if (!empty($failedKeys)) {
- $message .= ",失败:" . implode(', ', $failedKeys);
- }
- return $this->response()
- ->success($message)
- ->refresh();
- }
- /**
- * 确认对话框
- *
- * @return string|array|void
- */
- public function confirm()
- {
- return ['确定要启用选中的配置项吗?', '启用后配置项将立即生效'];
- }
- }
|