From 7537c484ee4a00ab6c94ac63261c52f5d3a4f7cb Mon Sep 17 00:00:00 2001 From: zhenhui <1276357500@qq.com> Date: Sat, 21 Mar 2026 11:18:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96CURD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/library/crud/Helper.php | 3 ++- web/src/views/backend/crud/design.vue | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/admin/library/crud/Helper.php b/app/admin/library/crud/Helper.php index c5f1761..ade96e5 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 = is_int($keyName) ? strval($keyName) : $keyName; if (preg_match("/^[a-zA-Z_][a-zA-Z0-9_]+$/", $keyName)) { return $keyName; } diff --git a/web/src/views/backend/crud/design.vue b/web/src/views/backend/crud/design.vue index 6a35bde..d0a0d00 100644 --- a/web/src/views/backend/crud/design.vue +++ b/web/src/views/backend/crud/design.vue @@ -95,7 +95,7 @@ :label-width="140" :block-help="t('crud.crud.For quick combination code generation location, please fill in the relative path')" :input-attr="{ - onChange: onTableChange, + onChange: (val) => onTableChange(val ?? state.table.generateRelativePath?.replace(/\\/g, '/') ?? state.table.name ?? ''), onInput: debouncedOnRelativePathInput, }" /> @@ -1396,6 +1396,16 @@ const loadData = () => { } state.table.isCommonModel = parseInt(res.data.table.isCommonModel) state.table.databaseConnection = res.data.table.databaseConnection ? res.data.table.databaseConnection : '' + // 复制设计时,根据接口返回刷新路径,确保与 getFileData 一致 + const tableName = state.table.name || state.table.generateRelativePath?.replace(/\\/g, '/') + if (tableName) { + getFileData(tableName, state.table.isCommonModel).then((fileRes) => { + state.table.modelFile = fileRes.data.modelFile + state.table.controllerFile = fileRes.data.controllerFile + state.table.validateFile = fileRes.data.validateFile + state.table.webViewsDir = fileRes.data.webViewsDir + }).catch(() => {}) + } }) .finally(() => { state.loading.init = false