diff --git a/app/admin/library/crud/Helper.php b/app/admin/library/crud/Helper.php index c5f1761..3ee53d9 100644 --- a/app/admin/library/crud/Helper.php +++ b/app/admin/library/crud/Helper.php @@ -845,8 +845,9 @@ class Helper return $itemJson; } - public static function formatObjectKey(string $keyName): string + public static function formatObjectKey(string|int $keyName): string { + $keyName = (string) $keyName; if (preg_match("/^[a-zA-Z_][a-zA-Z0-9_]+$/", $keyName)) { return $keyName; } diff --git a/app/admin/library/crud/stubs/mixins/controller/index.stub b/app/admin/library/crud/stubs/mixins/controller/index.stub index 6339ec1..2cfcd05 100644 --- a/app/admin/library/crud/stubs/mixins/controller/index.stub +++ b/app/admin/library/crud/stubs/mixins/controller/index.stub @@ -3,11 +3,16 @@ * 查看 * @throws Throwable */ - public function index(): void + public function index(\Webman\Http\Request $request): \support\Response { - // 如果是 select 则转发到 select 方法,若未重写该方法,其实还是继续执行 index - if ($this->request->param('select')) { - $this->select(); + $response = $this->initializeBackend($request); + if ($response !== null) { + return $response; + } + + if ($request->get('select') || $request->post('select')) { + $this->_select(); + return $this->success(); } /** @@ -24,7 +29,7 @@ ->order($order) ->paginate($limit); - $this->success('', [ + return $this->success('', [ 'list' => $res->items(), 'total' => $res->total(), 'remark' => get_route_remark(), diff --git a/app/admin/model/AdminLog.php b/app/admin/model/AdminLog.php index ecfac3e..3c40761 100644 --- a/app/admin/model/AdminLog.php +++ b/app/admin/model/AdminLog.php @@ -127,13 +127,14 @@ class AdminLog extends Model $useragent = strlen($useragent) > 255 ? substr($useragent, 0, 255) : $useragent; self::create([ - 'admin_id' => $adminId, - 'username' => $username, - 'url' => $url, - 'title' => $title, - 'data' => !is_scalar($data) ? json_encode($data, JSON_UNESCAPED_UNICODE) : $data, - 'ip' => $request->getRealIp(), - 'useragent' => $useragent, + 'admin_id' => $adminId, + 'username' => $username, + 'url' => $url, + 'title' => $title, + 'data' => !is_scalar($data) ? json_encode($data, JSON_UNESCAPED_UNICODE) : $data, + 'ip' => $request->getRealIp(), + 'useragent' => $useragent, + 'create_time' => time(), ]); } diff --git a/config/process.php b/config/process.php index 892dc82..ec14d25 100644 --- a/config/process.php +++ b/config/process.php @@ -21,7 +21,7 @@ global $argv; return [ 'webman' => [ 'handler' => Http::class, - 'listen' => 'http://0.0.0.0:8787', + 'listen' => 'http://0.0.0.0:6969', 'count' => cpu_count() * 4, 'user' => '', 'group' => '', diff --git a/web/.env.development b/web/.env.development index 73f4d6c..5ca9716 100644 --- a/web/.env.development +++ b/web/.env.development @@ -4,5 +4,8 @@ ENV = 'development' # base路径 VITE_BASE_PATH = './' -# 本地环境接口地址 - 用空字符串走同源,由 vite 代理到 8787,避免 CORS +# 本地环境接口地址 - 用空字符串走同源,由 vite 代理到后端,避免 CORS VITE_AXIOS_BASE_URL = '' + +# 开发时代理目标地址(后端服务器地址,端口改为 6969 时在此配置) +VITE_PROXY_TARGET = http://localhost:6969 diff --git a/web/vite.config.ts b/web/vite.config.ts index a881451..03f4b01 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -11,7 +11,7 @@ const pathResolve = (dir: string): any => { // https://vitejs.cn/config/ const viteConfig = ({ mode }: ConfigEnv): UserConfig => { - const { VITE_PORT, VITE_OPEN, VITE_BASE_PATH, VITE_OUT_DIR } = loadEnv(mode, process.cwd()) + const { VITE_PORT, VITE_OPEN, VITE_BASE_PATH, VITE_OUT_DIR, VITE_PROXY_TARGET } = loadEnv(mode, process.cwd()) const alias: Record = { '/@': pathResolve('./src/'), @@ -29,9 +29,9 @@ const viteConfig = ({ mode }: ConfigEnv): UserConfig => { open: VITE_OPEN != 'false', // 开发时把 /api、/admin、/install 代理到 webman,避免跨域 proxy: { - '/api': { target: 'http://localhost:8787', changeOrigin: true }, - '/admin': { target: 'http://localhost:8787', changeOrigin: true }, - '/install': { target: 'http://localhost:8787', changeOrigin: true }, + '/api': { target: VITE_PROXY_TARGET || 'http://localhost:6969', changeOrigin: true }, + '/admin': { target: VITE_PROXY_TARGET || 'http://localhost:6969', changeOrigin: true }, + '/install': { target: VITE_PROXY_TARGET || 'http://localhost:6969', changeOrigin: true }, }, }, build: {