+
-
-
-
示例数据
@@ -83,7 +69,6 @@ import { fetchProjectOverview } from "../../api/overview";
import { fetchSites } from "../../api/sites";
import StateEmpty from "../../components/StateEmpty.vue";
import StateLoading from "../../components/StateLoading.vue";
-import KpiCard from "../../components/KpiCard.vue";
import CenterProgressRow from "./project-overview/CenterProgressRow.vue";
import EnrollmentBarChart, { type EnrollmentBarItem } from "./project-overview/EnrollmentBarChart.vue";
import { adaptProjectOverview, type CenterOverview, type ProjectOverviewViewModel } from "./project-overview/overview.adapter";
@@ -99,35 +84,6 @@ const updatedAtLabel = ref(displayDateTime(new Date()));
const preferApi = String(import.meta.env.VITE_USE_OVERVIEW_API || "").toLowerCase() === "true";
const centers = computed(() => overview.value?.centers || []);
-const kpiItems = computed(() => {
- const summary = overview.value?.summary;
- const totalTarget = summary?.total_target ?? 0;
- const totalActual = summary?.total_actual ?? 0;
- const activeCenters = centers.value.filter((item) => item.is_active !== false).length;
- return [
- {
- key: "target",
- title: "总入组目标",
- value: totalTarget,
- subtext: "项目整体计划",
- type: "primary" as const,
- },
- {
- key: "actual",
- title: "当前入组",
- value: totalActual,
- subtext: `达成率 ${totalTarget > 0 ? Math.round((totalActual / totalTarget) * 100) : 0}%`,
- type: "success" as const,
- },
- {
- key: "centers",
- title: "活跃中心",
- value: activeCenters,
- subtext: `中心总数 ${centers.value.length}`,
- type: "info" as const,
- },
- ];
-});
const buildFallbackCentersFromSites = (siteList: any[]): CenterOverview[] =>
siteList.map((site: any) => ({
@@ -252,12 +208,6 @@ watch(
gap: 0;
}
-.kpi-grid {
- display: grid;
- gap: 12px;
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
-}
-
.demo-tag {
border-color: var(--ctms-border-color);
color: var(--ctms-text-secondary);
diff --git a/frontend/src/views/ia/RiskIssueMonitoringVisits.vue b/frontend/src/views/ia/RiskIssueMonitoringVisits.vue
index b3728bdf..232758f9 100644
--- a/frontend/src/views/ia/RiskIssueMonitoringVisits.vue
+++ b/frontend/src/views/ia/RiskIssueMonitoringVisits.vue
@@ -1,8 +1,8 @@
-
-
-
-
+
-
-
+
-
+
@@ -47,7 +47,7 @@
-
+
-
+
-
-
+
+
+
@@ -33,8 +33,8 @@
-
@@ -162,21 +162,16 @@ onMounted(load);
flex-direction: column;
}
-.table-section {
- padding-top: 12px;
- padding-bottom: 12px;
-}
-
.filter-form {
display: flex;
width: 100%;
flex-wrap: wrap;
- gap: 0;
+ gap: 8px;
}
.filter-item-form {
margin-bottom: 0;
- margin-right: 12px;
+ margin-right: 0;
}
.filter-input-comp {
@@ -191,4 +186,8 @@ onMounted(load);
margin-bottom: 0;
margin-right: 0;
}
+
+.risk-table :deep(.el-table__inner-wrapper::before) {
+ display: none;
+}
diff --git a/frontend/src/views/ia/RiskIssueSae.vue b/frontend/src/views/ia/RiskIssueSae.vue
index 94ef9a6f..e148eb01 100644
--- a/frontend/src/views/ia/RiskIssueSae.vue
+++ b/frontend/src/views/ia/RiskIssueSae.vue
@@ -1,7 +1,7 @@
-
-
+
+
@@ -54,7 +54,7 @@
-
+
-
-
+
+
+
@@ -51,8 +51,8 @@
-
@@ -219,21 +219,16 @@ onMounted(load);
flex-direction: column;
}
-.table-section {
- padding-top: 12px;
- padding-bottom: 12px;
-}
-
.filter-form {
display: flex;
width: 100%;
flex-wrap: wrap;
- gap: 0;
+ gap: 8px;
}
.filter-item-form {
margin-bottom: 0;
- margin-right: 12px;
+ margin-right: 0;
}
.filter-input-comp {
@@ -248,4 +243,8 @@ onMounted(load);
margin-bottom: 0;
margin-right: 0;
}
+
+.risk-table :deep(.el-table__inner-wrapper::before) {
+ display: none;
+}
diff --git a/frontend/src/views/ia/StartupFeasibilityEthics.vue b/frontend/src/views/ia/StartupFeasibilityEthics.vue
index 651148ca..860e034c 100644
--- a/frontend/src/views/ia/StartupFeasibilityEthics.vue
+++ b/frontend/src/views/ia/StartupFeasibilityEthics.vue
@@ -1,9 +1,9 @@
-
-
+
+
{{ displayDate(scope.row.onset_date) }}
@@ -82,7 +82,7 @@
-
+
-
+
+
-
+
-
{{ TEXT.modules.startupFeasibilityEthics.feasibilityTab }}
@@ -63,7 +63,7 @@
+
@@ -312,7 +312,15 @@ onMounted(() => {
}
.ctms-tab-content {
- padding: 12px;
+ gap: 0;
+}
+
+.ctms-tab-content .ctms-section-header {
+ margin-bottom: 0;
+}
+
+.ctms-table :deep(.el-table__inner-wrapper::before) {
+ display: none;
}
diff --git a/frontend/src/views/ia/StartupMeetingAuth.vue b/frontend/src/views/ia/StartupMeetingAuth.vue
index c15e7e9d..f8463e19 100644
--- a/frontend/src/views/ia/StartupMeetingAuth.vue
+++ b/frontend/src/views/ia/StartupMeetingAuth.vue
@@ -1,12 +1,12 @@
-
{{ TEXT.modules.startupFeasibilityEthics.ethicsTab }}
@@ -126,7 +126,7 @@
-
+
+
-
+
@@ -166,6 +166,10 @@ onMounted(() => {
gap: 0;
}
+.kickoff-table :deep(.el-table__inner-wrapper::before) {
+ display: none;
+}
+
diff --git a/frontend/src/views/startup/EthicsDetail.vue b/frontend/src/views/startup/EthicsDetail.vue
index 158575a9..51517993 100644
--- a/frontend/src/views/startup/EthicsDetail.vue
+++ b/frontend/src/views/startup/EthicsDetail.vue
@@ -26,7 +26,7 @@
-
+
{
});
+
+
+