From a6bfc69000697e8f9bb4ec32c95039d293220b25 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 30 Jun 2026 08:58:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AB=99=E7=82=B9=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=89=E7=AB=99=E7=82=B9=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E5=8F=98=E6=9B=B4(=E5=AE=A1=E6=A0=B8)=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../par/api/controller/AdminController.java | 7 ++ .../com/par/core/service/SiteService.java | 3 + .../core/service/impl/SiteServiceImpl.java | 6 ++ web/src/api/index.js | 1 + web/src/views/Sites.vue | 66 ++++++++++++++++++- 5 files changed, 82 insertions(+), 1 deletion(-) 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 2cf5a49..8bf03c4 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 @@ -289,6 +289,13 @@ public class AdminController { return ApiResponse.success(); } + @GetMapping("/sites/{siteId}/submissions") + public ApiResponse> listSiteSubmissions( + @PathVariable("siteId") String siteId, HttpServletRequest request) { + checkAdmin(request); + return ApiResponse.success(siteService.listSubmissionsBySite(siteId)); + } + private void checkAdmin(HttpServletRequest request) { TrustLevel level = (TrustLevel) request.getAttribute("trustLevel"); if (level == null || level != TrustLevel.ADMIN) { diff --git a/par-core/src/main/java/com/par/core/service/SiteService.java b/par-core/src/main/java/com/par/core/service/SiteService.java index cd3eb59..5c8896a 100644 --- a/par-core/src/main/java/com/par/core/service/SiteService.java +++ b/par-core/src/main/java/com/par/core/service/SiteService.java @@ -55,4 +55,7 @@ public interface SiteService { /** 拒绝提交 */ void rejectSubmission(Long submissionId, Long reviewerId); + + /** 查看站点的变更(审核)记录 */ + List listSubmissionsBySite(String siteId); } diff --git a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java index 51c686a..05f7bbe 100644 --- a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java @@ -251,6 +251,12 @@ public class SiteServiceImpl implements SiteService { log.info("站点审核拒绝: siteId={} submissionId={}", sub.getSiteId(), submissionId); } + @Override + public List listSubmissionsBySite(String siteId) { + return submissionMapper.selectBySiteId(siteId).stream() + .map(this::toSubmissionDTO).collect(Collectors.toList()); + } + private SiteSubmissionDTO toSubmissionDTO(SiteSubmission sub) { SiteSubmissionDTO dto = new SiteSubmissionDTO(); dto.setId(sub.getId()); diff --git a/web/src/api/index.js b/web/src/api/index.js index e7d2a17..95a973e 100644 --- a/web/src/api/index.js +++ b/web/src/api/index.js @@ -39,6 +39,7 @@ export default { pendingSubmissions: () => api.get('/admin/sites/pending'), approveSubmission: (id) => api.post(`/admin/submissions/${id}/approve`), rejectSubmission: (id) => api.post(`/admin/submissions/${id}/reject`), + submissionsBySite: (siteId) => api.get(`/admin/sites/${siteId}/submissions`), }, configs: { list: () => api.get('/configs'), diff --git a/web/src/views/Sites.vue b/web/src/views/Sites.vue index bdaf5e3..5a56fc9 100644 --- a/web/src/views/Sites.vue +++ b/web/src/views/Sites.vue @@ -62,10 +62,11 @@ - + @@ -108,6 +109,43 @@ 关闭 + + + + + + + + + + + + + + + + + + + + + + + @@ -132,6 +170,32 @@ const siteTypes = [ ] // 配置查看 +const historyVisible = ref(false) +const historyLoading = ref(false) +const historyList = ref([]) +const historySiteId = ref('') + +const tagForStatus = (s) => { + if (s === '正常') return 'success' + if (s === '关停') return 'danger' + return 'warning' +} + +const handleViewHistory = async (row) => { + historySiteId.value = row.siteId + historyList.value = [] + historyVisible.value = true + historyLoading.value = true + try { + const res = await api.sites.submissionsBySite(row.siteId) + historyList.value = res.data || [] + } catch (e) { + ElMessage.error('获取变更记录失败') + } finally { + historyLoading.value = false + } +} + const configVisible = ref(false) const configLoading = ref(false) const configError = ref('')