cc 2 săptămâni în urmă
părinte
comite
985e7ffaca

+ 12 - 8
ai-electron/frontend/src/ai/styles/ai.less

@@ -35,10 +35,11 @@
   --ai-sp-5: 24px;
   --ai-sp-6: 32px;
 
-  /* ---------- 圆角 ---------- */
+  /* ---------- 圆角(对齐分析页的两个值:外层卡片 12px、内部卡片与控件 8px,
+     见 src/trans/views/styles/trans-analysis-table-ui.less 的 @analysis-card-radius) ---------- */
   --ai-radius-sm: 4px;
-  --ai-radius: @border-radius-base;
-  --ai-radius-lg: 10px;
+  --ai-radius: 8px;
+  --ai-radius-lg: 12px;
 
   /* ---------- 阴影(克制,仅用于浮层) ---------- */
   --ai-shadow-sm: 0 1px 2px rgba(27, 31, 36, 0.06);
@@ -65,27 +66,30 @@
  * 布局基元
  * ------------------------------------------------------------------ */
 
-/* 页面外壳:撑满布局内容区(布局内容容器有确定像素高度,故 height:100% 可用),
-   做成一块整体面板 + 内部分隔线,避免"卡片套卡片" */
+/* 页面外壳=分析页的 .table-card:12px 圆角 + 描边。
+   与 .continuous-page 一样只反冲布局内容容器的左右 12px,留 2px 灰底 gutter(同 .content-panel);
+   顶部保留容器原有的 12px 内边距(与其他功能页一致),底部本来就贴齐 —— 都不能用负外边距去顶 */
 .ai-page {
   display: flex;
   flex-direction: column;
+  width: calc(100% + 20px);
   height: 100%;
   min-height: 0;
+  margin: 0 -10px;
   background: var(--ai-bg);
   border: 1px solid var(--ai-border);
-  border-radius: var(--ai-radius);
+  border-radius: var(--ai-radius-lg);
   overflow: hidden;
 }
 
-/* 顶部条:标题 + 操作,左右两端对齐 */
+/* 顶部条:标题 + 操作,左右两端对齐。横向内边距与模型/插件页的页签栏同档(8px),三页左边缘对齐 */
 .ai-topbar {
   display: flex;
   align-items: center;
   gap: var(--ai-sp-3);
   flex: 0 0 auto;
   height: var(--ai-header-h);
-  padding: 0 var(--ai-sp-4);
+  padding: 0 var(--ai-sp-2);
   background: var(--ai-bg);
   border-bottom: 1px solid var(--ai-border);
 

+ 11 - 10
ai-electron/frontend/src/ai/views/aiModel/index.vue

@@ -262,7 +262,7 @@
       :deep(.ant-tabs-nav) {
         flex: 0 0 auto;
         margin: 0;
-        padding: 0 var(--ai-sp-4);
+        padding: 0 var(--ai-sp-2);
         background: var(--ai-bg);
         border-bottom: 1px solid var(--ai-border);
 
@@ -279,13 +279,14 @@
       }
 
       :deep(.ant-tabs-extra-content) {
-        margin-left: var(--ai-sp-4);
+        margin-left: var(--ai-sp-3);
       }
 
+      /* 内容区内边距取分析页那一档(8px),左右与页签栏文字对齐 */
       :deep(.ant-tabs-content-holder) {
         flex: 1 1 auto;
         min-height: 0;
-        padding: var(--ai-sp-4) var(--ai-sp-5) var(--ai-sp-5);
+        padding: var(--ai-sp-2);
         overflow-y: auto;
         overscroll-behavior: contain;
       }
@@ -314,7 +315,7 @@
     }
 
     &__hint {
-      margin-bottom: var(--ai-sp-4);
+      margin-bottom: var(--ai-sp-2);
       padding: var(--ai-sp-3);
       font-size: 12.5px;
       line-height: 1.75;
@@ -328,11 +329,11 @@
       }
     }
 
-    /* 卡片网格:与插件页 / 案件管理页同一套语言,配色圆角全取 ai.less 的 token */
+    /* 卡片网格:间距取分析页那一档(8px);圆角比页面外壳(12px)低一档,用 --ai-radius(8px) */
     &__grid {
       display: grid;
       grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
-      gap: var(--ai-sp-4);
+      gap: var(--ai-sp-2);
     }
 
     &__card {
@@ -340,10 +341,10 @@
       flex-direction: column;
       gap: var(--ai-sp-2);
       min-width: 0;
-      padding: var(--ai-sp-4);
+      padding: var(--ai-sp-3);
       background: var(--ai-bg);
       border: 1px solid var(--ai-border);
-      border-radius: var(--ai-radius-lg);
+      border-radius: var(--ai-radius);
       transition:
         border-color 0.2s ease,
         box-shadow 0.2s ease,
@@ -378,14 +379,14 @@
     }
 
     &__empty {
-      padding: var(--ai-sp-6) var(--ai-sp-4);
+      padding: var(--ai-sp-4) var(--ai-sp-3);
       font-size: 12.5px;
       line-height: 1.7;
       text-align: center;
       color: var(--ai-text-2);
       background-color: var(--ai-bg-subtle);
       border: 1px dashed var(--ai-border);
-      border-radius: var(--ai-radius-lg);
+      border-radius: var(--ai-radius);
     }
 
     &__name {

+ 17 - 16
ai-electron/frontend/src/ai/views/aiPlugin/index.vue

@@ -867,7 +867,7 @@
       :deep(.ant-tabs-nav) {
         flex: 0 0 auto;
         margin: 0;
-        padding: 0 var(--ai-sp-4);
+        padding: 0 var(--ai-sp-2);
         background: var(--ai-bg);
         border-bottom: 1px solid var(--ai-border);
 
@@ -884,13 +884,14 @@
       }
 
       :deep(.ant-tabs-extra-content) {
-        margin-left: var(--ai-sp-4);
+        margin-left: var(--ai-sp-3);
       }
 
+      /* 内容区内边距取分析页那一档(8px),左右与页签栏文字对齐 */
       :deep(.ant-tabs-content-holder) {
         flex: 1 1 auto;
         min-height: 0;
-        padding: var(--ai-sp-4) var(--ai-sp-5) var(--ai-sp-5);
+        padding: var(--ai-sp-2);
         overflow-y: auto;
         overscroll-behavior: contain;
       }
@@ -907,7 +908,7 @@
     /* 浏览器环境下没有页签栏,提示条自己留出边距 */
     &__bridge-alert {
       flex: 0 0 auto;
-      margin: var(--ai-sp-5);
+      margin: var(--ai-sp-2);
     }
 
     &__tab-count {
@@ -925,7 +926,7 @@
     }
 
     &__hint {
-      margin-bottom: var(--ai-sp-4);
+      margin-bottom: var(--ai-sp-2);
       padding: var(--ai-sp-3);
       font-size: 12.5px;
       line-height: 1.75;
@@ -942,15 +943,14 @@
     &__ops {
       display: flex;
       gap: var(--ai-sp-2);
-      margin-bottom: var(--ai-sp-3);
+      margin-bottom: var(--ai-sp-2);
     }
 
-    /* 卡片网格:与案件管理页同一套「一行若干等宽卡片 + 悬浮抬起」的语言,
-       但配色/圆角/间距全部取 ai.less 的 token,暗色随变量自动生效 */
+    /* 卡片网格:间距取分析页那一档(8px);圆角比页面外壳(12px)低一档,用 --ai-radius(8px) */
     &__grid {
       display: grid;
       grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
-      gap: var(--ai-sp-4);
+      gap: var(--ai-sp-2);
     }
 
     &__card {
@@ -958,10 +958,10 @@
       flex-direction: column;
       gap: var(--ai-sp-2);
       min-width: 0;
-      padding: var(--ai-sp-4);
+      padding: var(--ai-sp-3);
       background: var(--ai-bg);
       border: 1px solid var(--ai-border);
-      border-radius: var(--ai-radius-lg);
+      border-radius: var(--ai-radius);
       transition:
         border-color 0.2s ease,
         box-shadow 0.2s ease,
@@ -1057,14 +1057,14 @@
     }
 
     &__empty {
-      padding: var(--ai-sp-6) var(--ai-sp-4);
+      padding: var(--ai-sp-4) var(--ai-sp-3);
       font-size: 12.5px;
       line-height: 1.7;
       text-align: center;
       color: var(--ai-text-2);
       background: var(--ai-bg-subtle);
       border: 1px dashed var(--ai-border);
-      border-radius: var(--ai-radius-lg);
+      border-radius: var(--ai-radius);
     }
 
     /* 卡片头里它是 flex item,不给 min-width:0 就会把右侧开关挤出去 */
@@ -1140,12 +1140,13 @@
       }
     }
 
+    /* 运行时页签里的分块面板:与卡片同档(8px 圆角 / 12px 内边距 / 8px 块间距) */
     &__panel {
-      margin-bottom: var(--ai-sp-4);
-      padding: var(--ai-sp-4);
+      margin-bottom: var(--ai-sp-2);
+      padding: var(--ai-sp-3);
       background: var(--ai-bg);
       border: 1px solid var(--ai-border);
-      border-radius: var(--ai-radius-sm);
+      border-radius: var(--ai-radius);
     }
 
     &__panel-title {

+ 1 - 0
ai-electron/frontend/src/trans/views/styles/trans-analysis-table-ui.less

@@ -366,6 +366,7 @@
 .night-page,
 .sensitive-page,
 .base-station-page,
+.ai-base-station-page,
 .behavior-spacetime-page,
 .cash-trans-page,
 .capital-flow-page,