From 8b4517ca6d41cef0da8b2c0d2e9f7311b9108f34 Mon Sep 17 00:00:00 2001
From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com>
Date: Wed, 1 Jul 2026 10:58:56 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=81=E8=AE=B8=E7=BB=99=E5=B7=B2?=
=?UTF-8?q?=E6=89=B9=E5=87=86=E9=85=8D=E7=BD=AE=E7=BB=91=E5=AE=9A=E8=84=9A?=
=?UTF-8?q?=E6=9C=AC=EF=BC=8CDTO=E5=8A=A0scriptStoragePath=EF=BC=8C?=
=?UTF-8?q?=E6=97=A0=E8=84=9A=E6=9C=AC=E6=97=B6=E6=98=BE=E7=A4=BA=E7=BC=96?=
=?UTF-8?q?=E8=BE=91=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/par/api/controller/AdminController.java | 8 ++++----
.../java/com/par/core/dto/SiteConfigDTO.java | 1 +
.../par/core/service/impl/ConfigServiceImpl.java | 1 +
web/src/views/AccessResultCheck.vue | 16 +++++++++-------
4 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/par-api/src/main/java/com/par/api/controller/AdminController.java b/par-api/src/main/java/com/par/api/controller/AdminController.java
index d662698..150e363 100644
--- a/par-api/src/main/java/com/par/api/controller/AdminController.java
+++ b/par-api/src/main/java/com/par/api/controller/AdminController.java
@@ -256,16 +256,16 @@ public class AdminController {
checkAdmin(request);
SiteConfig config = siteConfigMapper.selectById(configId);
if (config == null) return ApiResponse.error(404, "Config not found");
- if (config.getStatus() != ConfigStatus.PENDING) {
- return ApiResponse.error(400, "只能编辑待审核的配置");
- }
String script = payload.get("script");
if (script == null) return ApiResponse.error(400, "script is required");
String scriptPath = config.getScriptStoragePath();
if (scriptPath == null || scriptPath.isBlank()) {
- scriptPath = String.format("configs/%s/pending/%s.groovy", config.getSiteId(), config.getConfigHash().substring(0, 8));
+ String hash = config.getConfigHash() != null ? config.getConfigHash().substring(0, 8)
+ : Long.toHexString(System.currentTimeMillis());
+ scriptPath = String.format("configs/%s/%s/%s.groovy", config.getSiteId(),
+ config.getStatus() == ConfigStatus.PENDING ? "pending" : "approved", hash);
config.setScriptStoragePath(scriptPath);
}
storageService.store(scriptPath, script);
diff --git a/par-core/src/main/java/com/par/core/dto/SiteConfigDTO.java b/par-core/src/main/java/com/par/core/dto/SiteConfigDTO.java
index a6743d0..50485ed 100644
--- a/par-core/src/main/java/com/par/core/dto/SiteConfigDTO.java
+++ b/par-core/src/main/java/com/par/core/dto/SiteConfigDTO.java
@@ -15,6 +15,7 @@ public class SiteConfigDTO {
private String siteId;
private String version;
private String configHash;
+ private String scriptStoragePath;
private Long fileSize;
private String schemaVersion;
private ConfigStatus status;
diff --git a/par-core/src/main/java/com/par/core/service/impl/ConfigServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/ConfigServiceImpl.java
index aa3e9be..1654a2c 100644
--- a/par-core/src/main/java/com/par/core/service/impl/ConfigServiceImpl.java
+++ b/par-core/src/main/java/com/par/core/service/impl/ConfigServiceImpl.java
@@ -115,6 +115,7 @@ public class ConfigServiceImpl implements ConfigService {
dto.setSiteId(config.getSiteId());
dto.setVersion(config.getVersion());
dto.setConfigHash(config.getConfigHash());
+ dto.setScriptStoragePath(config.getScriptStoragePath());
dto.setFileSize(config.getFileSize());
dto.setSchemaVersion(config.getSchemaVersion());
dto.setStatus(config.getStatus());
diff --git a/web/src/views/AccessResultCheck.vue b/web/src/views/AccessResultCheck.vue
index 30c40b2..d05cce4 100644
--- a/web/src/views/AccessResultCheck.vue
+++ b/web/src/views/AccessResultCheck.vue
@@ -44,7 +44,8 @@
编辑
- 查看配置
+ 编辑脚本
+ 查看配置
@@ -74,14 +75,14 @@
关闭
-
-
+
+ 取消
+
{{ editing ? '保存JSON' : '编辑JSON' }}
- 取消
-
- 保存脚本
-
+
+
+ 保存脚本
@@ -193,6 +194,7 @@ const allResults = ref([])
const pageParsed = ref({})
const expandedSet = reactive(new Set())
+const hasScript = computed(() => !!selectedConfig.value?.scriptStoragePath)
const totalResults = computed(() => allResults.value.length)
// 始终从 allResults 按 URL 分组