Kaynağa Gözat

refactor(web): 管理端列表页表格改自适应高度布局

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg 3 gün önce
ebeveyn
işleme
0c39b698d3
100 değiştirilmiş dosya ile 533 ekleme ve 213 silme
  1. 86 0
      cfc-web/src/styles/admin-tokens.css
  2. 3 1
      cfc-web/src/views/Children.vue
  3. 3 1
      cfc-web/src/views/Dashboard.vue
  4. 12 5
      cfc-web/src/views/Families.vue
  5. 8 4
      cfc-web/src/views/GuideFamilyTask.vue
  6. 5 2
      cfc-web/src/views/GuidePackages.vue
  7. 3 1
      cfc-web/src/views/OperationLogs.vue
  8. 3 1
      cfc-web/src/views/Points.vue
  9. 9 5
      cfc-web/src/views/Rewards.vue
  10. 4 2
      cfc-web/src/views/TaskTemplates.vue
  11. 5 2
      cfc-web/src/views/Tasks.vue
  12. 3 1
      cfc-web/src/views/TeacherConsult.vue
  13. 3 1
      cfc-web/src/views/TeacherDashboard.vue
  14. 5 1
      cfc-web/src/views/Users.vue
  15. 22 6
      cfc-web/src/views/Wishes.vue
  16. 7 2
      cfc-web/src/views/admin/Activities.vue
  17. 3 3
      cfc-web/src/views/admin/ActivityRegistrationReview.vue
  18. 3 1
      cfc-web/src/views/admin/ActivityReview.vue
  19. 5 4
      cfc-web/src/views/admin/ArticleCategory.vue
  20. 4 3
      cfc-web/src/views/admin/ArticleManage.vue
  21. 2 2
      cfc-web/src/views/admin/Assessment.vue
  22. 3 1
      cfc-web/src/views/admin/AssessmentAssign.vue
  23. 3 1
      cfc-web/src/views/admin/AssessmentOrders.vue
  24. 3 1
      cfc-web/src/views/admin/AssessmentPlanRules.vue
  25. 3 1
      cfc-web/src/views/admin/AssessmentProducts.vue
  26. 3 1
      cfc-web/src/views/admin/BadgeManage.vue
  27. 5 4
      cfc-web/src/views/admin/BaziConfigs.vue
  28. 5 3
      cfc-web/src/views/admin/BloodTypeConfigs.vue
  29. 3 1
      cfc-web/src/views/admin/ButlerAssignments.vue
  30. 6 2
      cfc-web/src/views/admin/CfValueManage.vue
  31. 3 1
      cfc-web/src/views/admin/ChallengeScoreConfig.vue
  32. 3 1
      cfc-web/src/views/admin/CommentReview.vue
  33. 3 3
      cfc-web/src/views/admin/CouponGrantLog.vue
  34. 3 3
      cfc-web/src/views/admin/CouponManagement.vue
  35. 3 1
      cfc-web/src/views/admin/DanExecution.vue
  36. 3 1
      cfc-web/src/views/admin/DanSettlement.vue
  37. 3 1
      cfc-web/src/views/admin/Dashboard.vue
  38. 3 3
      cfc-web/src/views/admin/DiscountRuleManagement.vue
  39. 5 4
      cfc-web/src/views/admin/EcomSupplierManage.vue
  40. 3 1
      cfc-web/src/views/admin/EmotionAlertManage.vue
  41. 3 1
      cfc-web/src/views/admin/EnergyBehaviorConfig.vue
  42. 3 1
      cfc-web/src/views/admin/EnergyRuleManagement.vue
  43. 3 1
      cfc-web/src/views/admin/EnergySandbox.vue
  44. 5 4
      cfc-web/src/views/admin/FamilyEarnings.vue
  45. 3 3
      cfc-web/src/views/admin/FamilyEarningsWithdraw.vue
  46. 3 1
      cfc-web/src/views/admin/FileManage.vue
  47. 4 2
      cfc-web/src/views/admin/Foods.vue
  48. 3 1
      cfc-web/src/views/admin/GrowthTaskManagement.vue
  49. 3 1
      cfc-web/src/views/admin/GuidePopupConfig.vue
  50. 3 1
      cfc-web/src/views/admin/GuidePopupStats.vue
  51. 3 1
      cfc-web/src/views/admin/HealthCheckinManage.vue
  52. 5 2
      cfc-web/src/views/admin/HealthPlanManage.vue
  53. 12 5
      cfc-web/src/views/admin/HealthReportEdit.vue
  54. 3 1
      cfc-web/src/views/admin/HealthReportReassign.vue
  55. 3 3
      cfc-web/src/views/admin/HomeBannerManage.vue
  56. 3 1
      cfc-web/src/views/admin/InnatePortraitConfig.vue
  57. 27 6
      cfc-web/src/views/admin/InventoryManage.vue
  58. 3 1
      cfc-web/src/views/admin/KnowledgeTag.vue
  59. 12 4
      cfc-web/src/views/admin/LangGraphAdmin.vue
  60. 3 1
      cfc-web/src/views/admin/MbtiProfiles.vue
  61. 10 9
      cfc-web/src/views/admin/MembershipCenter.vue
  62. 3 3
      cfc-web/src/views/admin/MenuManage.vue
  63. 3 3
      cfc-web/src/views/admin/NoticeManage.vue
  64. 3 1
      cfc-web/src/views/admin/NotificationTemplateManage.vue
  65. 3 1
      cfc-web/src/views/admin/NumSoulDetailConfig.vue
  66. 8 4
      cfc-web/src/views/admin/NutritionProducts.vue
  67. 1 1
      cfc-web/src/views/admin/OrderManage.vue
  68. 3 3
      cfc-web/src/views/admin/PendingRefund.vue
  69. 3 1
      cfc-web/src/views/admin/PeriodicServiceConfig.vue
  70. 3 1
      cfc-web/src/views/admin/PlanManagement.vue
  71. 3 3
      cfc-web/src/views/admin/PointsLog.vue
  72. 3 1
      cfc-web/src/views/admin/ProblemDomainManage.vue
  73. 7 3
      cfc-web/src/views/admin/ProductManage.vue
  74. 3 1
      cfc-web/src/views/admin/ProductPpointManage.vue
  75. 3 1
      cfc-web/src/views/admin/ProductProfitRate.vue
  76. 3 1
      cfc-web/src/views/admin/ProfileManagement.vue
  77. 8 4
      cfc-web/src/views/admin/PromotionManagement.vue
  78. 3 1
      cfc-web/src/views/admin/PurchaseManagement.vue
  79. 5 4
      cfc-web/src/views/admin/Recipes.vue
  80. 3 3
      cfc-web/src/views/admin/RecommendationRules.vue
  81. 3 1
      cfc-web/src/views/admin/ReportAutoLearn.vue
  82. 8 4
      cfc-web/src/views/admin/ReportCollectorTrainer.vue
  83. 3 1
      cfc-web/src/views/admin/ReportManagement.vue
  84. 5 2
      cfc-web/src/views/admin/ReportParserImport.vue
  85. 3 1
      cfc-web/src/views/admin/ReportTemplateManage.vue
  86. 5 2
      cfc-web/src/views/admin/ReportTypeManagement.vue
  87. 5 2
      cfc-web/src/views/admin/ReportUnknownCluster.vue
  88. 5 4
      cfc-web/src/views/admin/SeasonalFoods.vue
  89. 3 3
      cfc-web/src/views/admin/SubscriptionManagement.vue
  90. 3 3
      cfc-web/src/views/admin/SupplierProductManage.vue
  91. 3 1
      cfc-web/src/views/admin/SurveyTemplates.vue
  92. 3 1
      cfc-web/src/views/admin/SysConfig.vue
  93. 5 2
      cfc-web/src/views/admin/SystemPromptManagement.vue
  94. 8 4
      cfc-web/src/views/admin/UnifiedHealthReports.vue
  95. 3 1
      cfc-web/src/views/admin/VectorKnowledgeBase.vue
  96. 3 1
      cfc-web/src/views/admin/VirtualGoodsConfig.vue
  97. 3 1
      cfc-web/src/views/admin/VirtualTeamDetail.vue
  98. 3 1
      cfc-web/src/views/admin/VirtualTeamList.vue
  99. 5 4
      cfc-web/src/views/admin/ZodiacConfigs.vue
  100. 2 2
      cfc-web/src/views/admin/components/ProductPicker.vue

+ 86 - 0
cfc-web/src/styles/admin-tokens.css

@@ -581,3 +581,89 @@
 .admin-page .text-muted { color: var(--adm-text-45); }
 .admin-page .text-muted { color: var(--adm-text-45); }
 .admin-page .adm-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
 .admin-page .adm-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
 .admin-page > .header { flex-shrink: 0; }
 .admin-page > .header { flex-shrink: 0; }
+
+/* ==== 弹性填充链增强(自动填充,兼容任意层级卡片/标签页嵌套) ==== */
+/* 让 admin-page / page-container 内任意层级的卡片成为弹性填充容器(覆盖 Layout.vue 的直接子级选择器) */
+.admin-page .el-card.el-card,
+.page-container .el-card.el-card {
+  flex: 1 1 auto;
+  display: flex;
+  flex-direction: column;
+  min-height: 0;
+}
+.admin-page .el-card__body.el-card__body,
+.page-container .el-card__body.el-card__body {
+  flex: 1 1 auto;
+  display: flex;
+  flex-direction: column;
+  min-height: 0;
+}
+
+/* adm-table-wrap 全局化:表格容器弹性撑满,仅表格自身滚动 */
+.adm-table-wrap {
+  flex: 1 1 auto;
+  min-height: 0;
+  display: flex;
+  flex-direction: column;
+}
+.adm-table-wrap > .el-table {
+  flex: 1 1 auto;
+  min-height: 0;
+  height: 100%;
+}
+
+/* 标签页场景:让 el-tabs 内容区成为弹性填充容器 */
+.admin-page .el-tabs,
+.page-container .el-tabs {
+  flex: 1 1 auto;
+  display: flex;
+  flex-direction: column;
+  min-height: 0;
+}
+.admin-page .el-tabs__content,
+.page-container .el-tabs__content {
+  flex: 1 1 auto;
+  min-height: 0;
+  display: flex;
+  flex-direction: column;
+}
+.admin-page .el-tab-pane,
+.page-container .el-tab-pane {
+  flex: 1 1 auto;
+  min-height: 0;
+  display: flex;
+  flex-direction: column;
+}
+
+/* 兜底:未包裹的 el-table 若直接为卡片 body 子级也填充 */
+.admin-page .el-card__body > .el-table,
+.page-container .el-card__body > .el-table,
+.admin-page .el-tab-pane > .el-table,
+.page-container .el-tab-pane > .el-table {
+  flex: 1 1 auto;
+  min-height: 0;
+}
+
+/* 防止页面级横向滚动:限定内部横向溢出由表格自身处理 */
+.admin-page,
+.page-container {
+  overflow-x: hidden;
+}
+
+/* ==== 弹性填充链 :has 全自动传播(兼容任意层级嵌套 + 自定义根 class) ==== */
+/* 仅作用于真正含有填充表格容器的祖先,对话框(portal 在 main-wrapper 之外且不带 wrap)不受影响 */
+/* 1) 页面根容器:含有填充表格的页面根直接撑满 main-wrapper */
+.main-wrapper > *:has(.adm-table-wrap) {
+  flex: 1 1 auto;
+  display: flex;
+  flex-direction: column;
+  min-height: 0;
+}
+/* 2) 表格容器内任意祖先容器:自动成为弹性列,确保表格撑满且不产生多余滚动条
+      排除横向栅格(.el-row/.el-col),避免误把横向布局翻转为纵向 */
+.main-wrapper *:has(.adm-table-wrap):not(.el-row):not(.el-col) {
+  display: flex;
+  flex-direction: column;
+  flex: 1 1 auto;
+  min-height: 0;
+}

+ 3 - 1
cfc-web/src/views/Children.vue

@@ -39,7 +39,8 @@
         </el-form>
         </el-form>
 
 
         <!-- 孩子列表 -->
         <!-- 孩子列表 -->
-        <el-table :data="tableData" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                <div class="adm-table-wrap">
+<el-table :data="tableData" border v-loading="loading" style="width: 100%" height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -102,6 +103,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         </el-table>
         </el-table>
+        </div>
 
 
         <!-- 分页 -->
         <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 3 - 1
cfc-web/src/views/Dashboard.vue

@@ -142,7 +142,8 @@
                 查看全部 →
                 查看全部 →
               </el-button>
               </el-button>
             </div>
             </div>
-            <el-table :data="recentTasks" size="small" class="custom-table">
+                        <div class="adm-table-wrap">
+<el-table :data="recentTasks" size="small" class="custom-table" height="100%">
               <el-table-column prop="title" label="任务名称" min-width="180"></el-table-column>
               <el-table-column prop="title" label="任务名称" min-width="180"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="status" label="状态" width="100">
               <el-table-column prop="status" label="状态" width="100">
@@ -162,6 +163,7 @@
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            </div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
 
 

+ 12 - 5
cfc-web/src/views/Families.vue

@@ -31,12 +31,13 @@
         </el-form>
         </el-form>
 
 
         <!-- 家庭列表 -->
         <!-- 家庭列表 -->
-        <el-table
+                <div class="adm-table-wrap">
+<el-table
           :data="tableData"
           :data="tableData"
           border
           border
           v-loading="loading"
           v-loading="loading"
           style="width: 100%"
           style="width: 100%"
-          :max-height="tableHeight"
+          height="100%"
         >
         >
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
@@ -78,7 +79,10 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
+        
+        
         </el-table>
         </el-table>
+        </div>
 
 
         <!-- 分页 -->
         <!-- 分页 -->
       <el-pagination
       <el-pagination
@@ -165,8 +169,9 @@
               </el-button>
               </el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
         <el-empty v-else description="暂无成员" :image-size="60"></el-empty>
         <el-empty v-else description="暂无成员" :image-size="60"></el-empty>
+      
+      </el-table>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
 
 
@@ -242,7 +247,6 @@
         <el-table-column prop="usedAt" label="使用时间" width="160">
         <el-table-column prop="usedAt" label="使用时间" width="160">
           <template slot-scope="scope">{{ formatTime(scope.row.usedAt) }}</template>
           <template slot-scope="scope">{{ formatTime(scope.row.usedAt) }}</template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <el-pagination
       <el-pagination
         style="margin-top: 12px; text-align: right"
         style="margin-top: 12px; text-align: right"
         @size-change="onCouponSizeChange"
         @size-change="onCouponSizeChange"
@@ -281,7 +285,6 @@
         <el-table-column prop="usedAt" label="使用时间" width="160">
         <el-table-column prop="usedAt" label="使用时间" width="160">
           <template slot-scope="scope">{{ formatTime(scope.row.usedAt) }}</template>
           <template slot-scope="scope">{{ formatTime(scope.row.usedAt) }}</template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <el-pagination
       <el-pagination
         style="margin-top: 12px; text-align: right"
         style="margin-top: 12px; text-align: right"
         @size-change="onUsageSizeChange"
         @size-change="onUsageSizeChange"
@@ -293,6 +296,10 @@
         layout="total, sizes, prev, pager, next"
         layout="total, sizes, prev, pager, next"
       ></el-pagination>
       ></el-pagination>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 8 - 4
cfc-web/src/views/GuideFamilyTask.vue

@@ -70,7 +70,8 @@
       </div>
       </div>
 
 
       <!-- 孩子列表 -->
       <!-- 孩子列表 -->
-      <el-table :max-height="tableHeight" v-if="familyOverview && !searchForm.memberId" :data="familyOverview.children" border>
+            <div class="adm-table-wrap">
+<el-table height="100%" v-if="familyOverview && !searchForm.memberId" :data="familyOverview.children" border>
         <el-table-column prop="childName" label="孩子姓名" width="120"></el-table-column>
         <el-table-column prop="childName" label="孩子姓名" width="120"></el-table-column>
         <el-table-column prop="totalPoints" label="总积分" width="100"></el-table-column>
         <el-table-column prop="totalPoints" label="总积分" width="100"></el-table-column>
         <el-table-column prop="streakDays" label="连续打卡" width="100">
         <el-table-column prop="streakDays" label="连续打卡" width="100">
@@ -89,9 +90,11 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 任务列表 -->
       <!-- 任务列表 -->
-      <el-table v-if="searchForm.memberId" :data="tasks" border v-loading="taskLoading" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table v-if="searchForm.memberId" :data="tasks" border v-loading="taskLoading" height="100%">
         <template slot="empty">
         <template slot="empty">
           <div class="empty-table-state">
           <div class="empty-table-state">
             <i class="el-icon-tickets" style="font-size: 48px; color: #ccc; margin-bottom: 16px;"></i>
             <i class="el-icon-tickets" style="font-size: 48px; color: #ccc; margin-bottom: 16px;"></i>
@@ -156,7 +159,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination
@@ -216,8 +218,10 @@
         <el-button type="primary" @click="submitEditTask" :loading="editLoading">保存</el-button>
         <el-button type="primary" @click="submitEditTask" :loading="editLoading">保存</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 5 - 2
cfc-web/src/views/GuidePackages.vue

@@ -26,7 +26,8 @@
       </el-form>
       </el-form>
 
 
       <!-- 任务模板列表 -->
       <!-- 任务模板列表 -->
-      <el-table :max-height="tableHeight" :data="tableData" border v-loading="loading">
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="tableData" border v-loading="loading">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -95,6 +96,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 编辑弹窗 -->
     <!-- 编辑弹窗 -->
@@ -165,7 +167,6 @@
             <el-button size="mini" @click="handleDeleteItem(row, $index)">删除</el-button>
             <el-button size="mini" @click="handleDeleteItem(row, $index)">删除</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <div slot="footer">
       <div slot="footer">
         <el-button @click="itemsDialogVisible = false">关闭</el-button>
         <el-button @click="itemsDialogVisible = false">关闭</el-button>
       </div>
       </div>
@@ -212,6 +213,8 @@
         <el-button type="primary" @click="copyShareCode">复制分享码</el-button>
         <el-button type="primary" @click="copyShareCode">复制分享码</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 3 - 1
cfc-web/src/views/OperationLogs.vue

@@ -35,7 +35,8 @@
 
 
     <!-- 日志列表 -->
     <!-- 日志列表 -->
     <el-card>
     <el-card>
-      <el-table :max-height="tableHeight" :data="logs" v-loading="loading" stripe>
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="logs" v-loading="loading" stripe>
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -100,6 +101,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 3 - 1
cfc-web/src/views/Points.vue

@@ -41,7 +41,8 @@
       </el-form>
       </el-form>
 
 
       <!-- 积分流水列表 -->
       <!-- 积分流水列表 -->
-      <el-table :data="tableData" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="tableData" border v-loading="loading" style="width: 100%" height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -94,6 +95,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 9 - 5
cfc-web/src/views/Rewards.vue

@@ -61,7 +61,6 @@
                   {{ formatDate(scope.row.createdAt) }}
                   {{ formatDate(scope.row.createdAt) }}
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-            </el-table>
             <el-pagination
             <el-pagination
               style="margin-top: 15px; text-align: right"
               style="margin-top: 15px; text-align: right"
               @current-change="loadFamilies"
               @current-change="loadFamilies"
@@ -72,7 +71,8 @@
             ></el-pagination>
             ></el-pagination>
           </el-dialog>
           </el-dialog>
 
 
-          <el-table :data="tableData" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                    <div class="adm-table-wrap">
+<el-table :data="tableData" border v-loading="loading" style="width: 100%" height="100%">
              <el-table-column prop="id" label="ID" width="80">
              <el-table-column prop="id" label="ID" width="80">
                <template slot="header">
                <template slot="header">
                  <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
                  <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -140,6 +140,7 @@
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </el-table>
           </el-table>
+          </div>
 
 
           <el-pagination
           <el-pagination
             style="margin-top: 20px; text-align: right"
             style="margin-top: 20px; text-align: right"
@@ -158,7 +159,8 @@
           <el-button type="primary" size="small" style="margin-bottom: 15px" @click="showCreateTemplate">
           <el-button type="primary" size="small" style="margin-bottom: 15px" @click="showCreateTemplate">
             新建模板
             新建模板
           </el-button>
           </el-button>
-          <el-table :data="templates" border v-loading="loadingTemplates" style="width: 100%" :max-height="tableHeight">
+                    <div class="adm-table-wrap">
+<el-table :data="templates" border v-loading="loadingTemplates" style="width: 100%" height="100%">
             <el-table-column prop="id" label="ID" width="80"></el-table-column>
             <el-table-column prop="id" label="ID" width="80"></el-table-column>
             <el-table-column prop="title" label="模板名称" min-width="200"></el-table-column>
             <el-table-column prop="title" label="模板名称" min-width="200"></el-table-column>
             <el-table-column prop="pointsRequired" label="所需积分" width="120">
             <el-table-column prop="pointsRequired" label="所需积分" width="120">
@@ -177,7 +179,6 @@
                 <el-button size="mini" @click="handleDeleteTemplate(row)">删除</el-button>
                 <el-button size="mini" @click="handleDeleteTemplate(row)">删除</el-button>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-          </el-table>
         </el-tab-pane>
         </el-tab-pane>
       </el-tabs>
       </el-tabs>
     </el-card>
     </el-card>
@@ -206,8 +207,11 @@
         <el-button type="primary" @click="handleCreateTemplate" :loading="creating">确定</el-button>
         <el-button type="primary" @click="handleCreateTemplate" :loading="creating">确定</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</el-table>
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 4 - 2
cfc-web/src/views/TaskTemplates.vue

@@ -54,12 +54,13 @@
       </el-form>
       </el-form>
 
 
       <!-- 模板列表 -->
       <!-- 模板列表 -->
-      <el-table
+            <div class="adm-table-wrap">
+<el-table
         :data="tableData"
         :data="tableData"
         border
         border
         v-loading="loading"
         v-loading="loading"
         style="width: 100%"
         style="width: 100%"
-        :max-height="tableHeight"
+        height="100%"
       >
       >
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
@@ -176,6 +177,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 5 - 2
cfc-web/src/views/Tasks.vue

@@ -67,7 +67,6 @@
               {{ formatDate(scope.row.createdAt) }}
               {{ formatDate(scope.row.createdAt) }}
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
         <el-pagination
         <el-pagination
           style="margin-top: 15px; text-align: right"
           style="margin-top: 15px; text-align: right"
           @current-change="loadFamilies"
           @current-change="loadFamilies"
@@ -95,7 +94,8 @@
       </el-row>
       </el-row>
 
 
       <!-- 任务列表 -->
       <!-- 任务列表 -->
-      <el-table :data="tableData" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="tableData" border v-loading="loading" style="width: 100%" height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -170,6 +170,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination
@@ -198,6 +199,8 @@
         <el-button type="primary" @click="confirmReview(true)">通过</el-button>
         <el-button type="primary" @click="confirmReview(true)">通过</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 3 - 1
cfc-web/src/views/TeacherConsult.vue

@@ -20,7 +20,8 @@
       </el-form>
       </el-form>
 
 
       <!-- 咨询列表 -->
       <!-- 咨询列表 -->
-      <el-table :max-height="tableHeight" :data="messages" border v-loading="loading">
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="messages" border v-loading="loading">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -60,6 +61,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 3 - 1
cfc-web/src/views/TeacherDashboard.vue

@@ -186,7 +186,8 @@
             <span class="td-card-title">最近订单</span>
             <span class="td-card-title">最近订单</span>
             <el-button type="text" @click="$router.push('/teacher-orders')">查看全部 <i class="el-icon-arrow-right"></i></el-button>
             <el-button type="text" @click="$router.push('/teacher-orders')">查看全部 <i class="el-icon-arrow-right"></i></el-button>
           </div>
           </div>
-          <el-table :data="recentOrders" stripe style="width: 100%" class="td-orders-table">
+                    <div class="adm-table-wrap">
+<el-table :data="recentOrders" stripe style="width: 100%" class="td-orders-table" height="100%">
             <el-table-column prop="orderNo" label="订单号" width="200">
             <el-table-column prop="orderNo" label="订单号" width="200">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <span class="td-order-no">{{ scope.row.orderNo }}</span>
                 <span class="td-order-no">{{ scope.row.orderNo }}</span>
@@ -214,6 +215,7 @@
             </el-table-column>
             </el-table-column>
             <el-table-column prop="createdAt" label="时间" width="160"></el-table-column>
             <el-table-column prop="createdAt" label="时间" width="160"></el-table-column>
           </el-table>
           </el-table>
+          </div>
         </el-card>
         </el-card>
       </el-col>
       </el-col>
     </el-row>
     </el-row>

+ 5 - 1
cfc-web/src/views/Users.vue

@@ -64,12 +64,13 @@
       </el-form>
       </el-form>
 
 
       <!-- 用户列表 -->
       <!-- 用户列表 -->
+<div class="adm-table-wrap">
 <el-table 
 <el-table 
         :data="tableData" 
         :data="tableData" 
         border 
         border 
         v-loading="loading"
         v-loading="loading"
         style="width: 100%"
         style="width: 100%"
-        :max-height="tableHeight"
+        height="100%"
       >
       >
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
@@ -139,7 +140,10 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
+      
+      
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 22 - 6
cfc-web/src/views/Wishes.vue

@@ -48,7 +48,8 @@
           <!-- 待定价列表 -->
           <!-- 待定价列表 -->
           <div v-if="draftWishes.length > 0" class="wish-section">
           <div v-if="draftWishes.length > 0" class="wish-section">
             <div class="section-title">📝 待定价</div>
             <div class="section-title">📝 待定价</div>
-<el-table style="width: 100%" :max-height="tableHeight" :data="draftWishes" border v-loading="loading">
+<div class="adm-table-wrap">
+<el-table style="width: 100%" height="100%" :data="draftWishes" border v-loading="loading">
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
@@ -72,12 +73,14 @@
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            </div>
           </div>
           </div>
 
 
           <!-- 待审批兑换列表 -->
           <!-- 待审批兑换列表 -->
           <div v-if="pendingExchangeWishes.length > 0" class="wish-section">
           <div v-if="pendingExchangeWishes.length > 0" class="wish-section">
             <div class="section-title">⏳ 待审批兑换</div>
             <div class="section-title">⏳ 待审批兑换</div>
-            <el-table :data="pendingExchangeWishes" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                        <div class="adm-table-wrap">
+<el-table :data="pendingExchangeWishes" border v-loading="loading" style="width: 100%" height="100%">
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
@@ -105,12 +108,14 @@
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            </div>
           </div>
           </div>
 
 
           <!-- 待兑现列表 -->
           <!-- 待兑现列表 -->
           <div v-if="approvedWishes.length > 0" class="wish-section">
           <div v-if="approvedWishes.length > 0" class="wish-section">
             <div class="section-title">📦 待兑现</div>
             <div class="section-title">📦 待兑现</div>
-            <el-table :data="approvedWishes" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                        <div class="adm-table-wrap">
+<el-table :data="approvedWishes" border v-loading="loading" style="width: 100%" height="100%">
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
@@ -130,12 +135,14 @@
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            </div>
           </div>
           </div>
 
 
           <!-- 待收货列表 -->
           <!-- 待收货列表 -->
           <div v-if="exchangingWishes.length > 0" class="wish-section">
           <div v-if="exchangingWishes.length > 0" class="wish-section">
             <div class="section-title">🎁 待收货确认</div>
             <div class="section-title">🎁 待收货确认</div>
-            <el-table :data="exchangingWishes" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                        <div class="adm-table-wrap">
+<el-table :data="exchangingWishes" border v-loading="loading" style="width: 100%" height="100%">
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="childName" label="孩子" width="100"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
               <el-table-column prop="title" label="心愿名称" min-width="200"></el-table-column>
@@ -150,6 +157,7 @@
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
+            </div>
           </div>
           </div>
 
 
           <!-- 空状态 -->
           <!-- 空状态 -->
@@ -201,7 +209,6 @@
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="id" label="ID" width="80"></el-table-column>
               <el-table-column prop="name" label="家庭名称" min-width="150"></el-table-column>
               <el-table-column prop="name" label="家庭名称" min-width="150"></el-table-column>
               <el-table-column prop="inviteCode" label="邀请码" width="120"></el-table-column>
               <el-table-column prop="inviteCode" label="邀请码" width="120"></el-table-column>
-            </el-table>
             <el-pagination
             <el-pagination
               style="margin-top: 15px; text-align: right"
               style="margin-top: 15px; text-align: right"
               @current-change="loadFamilies"
               @current-change="loadFamilies"
@@ -212,7 +219,8 @@
             ></el-pagination>
             ></el-pagination>
           </el-dialog>
           </el-dialog>
 
 
-          <el-table :data="tableData" border v-loading="loading" style="width: 100%" :max-height="tableHeight">
+                    <div class="adm-table-wrap">
+<el-table :data="tableData" border v-loading="loading" style="width: 100%" height="100%">
             <el-table-column prop="id" label="ID" width="80">
             <el-table-column prop="id" label="ID" width="80">
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -271,6 +279,12 @@
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </el-table>
           </el-table>
+          </div>
+          <
+          <
+          <
+          <
+          <
 
 
           <el-pagination
           <el-pagination
             style="margin-top: 20px; text-align: right"
             style="margin-top: 20px; text-align: right"
@@ -301,6 +315,8 @@
         <el-button type="primary" @click="submitPrice" :loading="submitting">确定</el-button>
         <el-button type="primary" @click="submitPrice" :loading="submitting">确定</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 7 - 2
cfc-web/src/views/admin/Activities.vue

@@ -57,7 +57,8 @@
         <el-button type="primary" size="mini" @click="handleSearch">查询</el-button>
         <el-button type="primary" size="mini" @click="handleSearch">查询</el-button>
         <el-button size="mini" @click="resetSearch">重置</el-button>
         <el-button size="mini" @click="resetSearch">重置</el-button>
       </div>
       </div>
-        <el-table :data="activities" v-loading="loading" border stripe style="min-width:900px;" :max-height="tableHeight">
+                <div class="adm-table-wrap">
+<el-table :data="activities" v-loading="loading" border stripe style="min-width:900px;" height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -134,7 +135,10 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
+        
+        
         </el-table>
         </el-table>
+        </div>
       <el-pagination
       <el-pagination
         v-if="total > 0"
         v-if="total > 0"
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"
@@ -177,9 +181,10 @@
             <span v-else style="color: #999;">已处理</span>
             <span v-else style="color: #999;">已处理</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <p v-if="!registrations.length && !regLoading" style="text-align:center;color:#999;">暂无报名记录</p>
       <p v-if="!registrations.length && !regLoading" style="text-align:center;color:#999;">暂无报名记录</p>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 3 - 3
cfc-web/src/views/admin/ActivityRegistrationReview.vue

@@ -16,8 +16,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap-sm">
-      <el-table :max-height="tableHeight" :data="filteredList" v-loading="loading" border stripe>
+    <div class="adm-table-wrap">
+      <el-table height="100%" :data="filteredList" v-loading="loading" border stripe>
       <el-table-column prop="id" label="ID" width="60">
       <el-table-column prop="id" label="ID" width="60">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -58,7 +58,7 @@
           <span v-else style="color: #999;">已处理</span>
           <span v-else style="color: #999;">已处理</span>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <el-dialog title="拒绝原因" :visible.sync="rejectDialogVisible" width="400px">
     <el-dialog title="拒绝原因" :visible.sync="rejectDialogVisible" width="400px">

+ 3 - 1
cfc-web/src/views/admin/ActivityReview.vue

@@ -23,7 +23,8 @@
           <el-button size="mini" @click="resetSearch">重置</el-button>
           <el-button size="mini" @click="resetSearch">重置</el-button>
         </div>
         </div>
       </div>
       </div>
-        <el-table :data="pendingActivities" v-loading="loading" border stripe style="min-width:900px;" :max-height="tableHeight">
+                <div class="adm-table-wrap">
+<el-table :data="pendingActivities" v-loading="loading" border stripe style="min-width:900px;" height="100%">
       <el-table-column prop="id" label="ID" width="80">
       <el-table-column prop="id" label="ID" width="80">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -70,6 +71,7 @@
           </template>
           </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
     <el-pagination
     <el-pagination
         v-if="total > 0"
         v-if="total > 0"
         @current-change="handlePageChange"
         @current-change="handlePageChange"

+ 5 - 4
cfc-web/src/views/admin/ArticleCategory.vue

@@ -8,8 +8,8 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 新增分类</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 新增分类</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap-sm">
-      <el-table :data="filteredData" v-loading="loading" border stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+      <el-table :data="filteredData" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -56,7 +56,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table></div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑分类' : '新增分类'" width="500px" :close-on-click-modal="false">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑分类' : '新增分类'" width="500px" :close-on-click-modal="false">
@@ -93,8 +92,10 @@
         <el-button @click="handleClose">关闭</el-button>
         <el-button @click="handleClose">关闭</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import {
 import {

+ 4 - 3
cfc-web/src/views/admin/ArticleManage.vue

@@ -55,8 +55,8 @@
         <el-button type="primary" icon="el-icon-search" @click="loadList">搜索</el-button>
         <el-button type="primary" icon="el-icon-search" @click="loadList">搜索</el-button>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-lg">
-        <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+        <el-table :data="list" v-loading="loading" border stripe height="100%">
           <el-table-column prop="id" label="ID" width="70">
           <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -270,7 +270,6 @@
             {{ formatTime(row.last_read_at) }}
             {{ formatTime(row.last_read_at) }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <el-pagination
       <el-pagination
         v-if="readRecordTotal > 0"
         v-if="readRecordTotal > 0"
         layout="total, prev, pager, next"
         layout="total, prev, pager, next"
@@ -280,6 +279,8 @@
         @current-change="onReadRecordPageChange"
         @current-change="onReadRecordPageChange"
         style="margin-top: 16px; text-align: right;"
         style="margin-top: 16px; text-align: right;"
       />
       />
+    
+    </el-table>
     </div>
     </div>
     <span slot="footer">
     <span slot="footer">
       <el-button @click="readRecordVisible = false">关闭</el-button>
       <el-button @click="readRecordVisible = false">关闭</el-button>

+ 2 - 2
cfc-web/src/views/admin/Assessment.vue

@@ -27,8 +27,8 @@
           <el-button type="primary" size="small" @click="showCreateDialog">添加资料</el-button>
           <el-button type="primary" size="small" @click="showCreateDialog">添加资料</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap-sm">
-      <el-table :max-height="tableHeight" :data="filteredData" border stripe>
+      <div class="adm-table-wrap">
+      <el-table height="100%" :data="filteredData" border stripe>
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="title" label="标题" />
         <el-table-column prop="title" label="标题" />
         <el-table-column prop="content" label="内容" show-overflow-tooltip />
         <el-table-column prop="content" label="内容" show-overflow-tooltip />

+ 3 - 1
cfc-web/src/views/admin/AssessmentAssign.vue

@@ -6,7 +6,8 @@
         <el-button type="primary" size="small" icon="el-icon-refresh" @click="loadList">刷新</el-button>
         <el-button type="primary" size="small" icon="el-icon-refresh" @click="loadList">刷新</el-button>
       </div>
       </div>
 
 
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe empty-text="暂无可分配记录">
+                <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe empty-text="暂无可分配记录">
           <el-table-column prop="id" label="ID" width="70">
           <el-table-column prop="id" label="ID" width="70">
             <template slot="header">
             <template slot="header">
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -44,6 +45,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
 
 
       <el-pagination
       <el-pagination
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 3 - 1
cfc-web/src/views/admin/AssessmentOrders.vue

@@ -25,7 +25,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe empty-text="暂无测评预约">
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe empty-text="暂无测评预约">
         <el-table-column label="用户" width="110">
         <el-table-column label="用户" width="110">
           <template slot-scope="{ row }">{{ row.userName || '-' }}</template>
           <template slot-scope="{ row }">{{ row.userName || '-' }}</template>
         </el-table-column>
         </el-table-column>
@@ -73,6 +74,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 3 - 1
cfc-web/src/views/admin/AssessmentPlanRules.vue

@@ -5,7 +5,8 @@
       <el-button type="primary" @click="showDialog(null)">新增规则</el-button>
       <el-button type="primary" @click="showDialog(null)">新增规则</el-button>
     </div>
     </div>
 
 
-    <el-table :data="rules" border stripe style="width: 100%" :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="rules" border stripe style="width: 100%" height="100%">
       <el-table-column prop="dimension" label="维度" width="120" />
       <el-table-column prop="dimension" label="维度" width="120" />
       <el-table-column label="分数区间" width="140">
       <el-table-column label="分数区间" width="140">
         <template slot-scope="{ row }">{{ row.scoreMin }} - {{ row.scoreMax }}</template>
         <template slot-scope="{ row }">{{ row.scoreMin }} - {{ row.scoreMax }}</template>
@@ -25,6 +26,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-dialog title="规则编辑" :visible.sync="dialogVisible" width="500px">
     <el-dialog title="规则编辑" :visible.sync="dialogVisible" width="500px">
       <el-form :model="form" label-width="100px">
       <el-form :model="form" label-width="100px">

+ 3 - 1
cfc-web/src/views/admin/AssessmentProducts.vue

@@ -26,7 +26,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -69,6 +70,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <div class="pagination-wrap">
       <div class="pagination-wrap">
         <el-pagination
         <el-pagination

+ 3 - 1
cfc-web/src/views/admin/BadgeManage.vue

@@ -25,7 +25,8 @@
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
 
 
-      <el-table :data="list" border stripe v-loading="loading" empty-text="暂无数据" style="width:100%" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="list" border stripe v-loading="loading" empty-text="暂无数据" style="width:100%" height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -76,6 +77,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 新增/编辑弹窗 -->
     <!-- 新增/编辑弹窗 -->

+ 5 - 4
cfc-web/src/views/admin/BaziConfigs.vue

@@ -8,8 +8,8 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap">
-      <el-table :data="filteredData" stripe :max-height="tableHeight"
+      <div class="adm-table-wrap">
+      <el-table :data="filteredData" stripe height="100%"
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -63,7 +63,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table></div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑八字配置' : '添加八字配置'" width="500px">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑八字配置' : '添加八字配置'" width="500px">
@@ -124,8 +123,10 @@
         <el-button @click="handleClose">关闭</el-button>
         <el-button @click="handleClose">关闭</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 5 - 3
cfc-web/src/views/admin/BloodTypeConfigs.vue

@@ -8,7 +8,7 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap"><el-table :data="filteredData" stripe :max-height="tableHeight">
+      <div class="adm-table-wrap"><el-table :data="filteredData" stripe height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -47,7 +47,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-    </el-table></div>
   </el-card>
   </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑血型配置' : '添加血型配置'" width="500px">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑血型配置' : '添加血型配置'" width="500px">
@@ -95,8 +94,11 @@
         <el-button @click="handleClose">关闭</el-button>
         <el-button @click="handleClose">关闭</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 3 - 1
cfc-web/src/views/admin/ButlerAssignments.vue

@@ -4,7 +4,8 @@
       <div slot="header">
       <div slot="header">
         <span>管家分配管理</span>
         <span>管家分配管理</span>
       </div>
       </div>
-      <el-table v-loading="loading" :data="records" border stripe>
+            <div class="adm-table-wrap">
+<el-table v-loading="loading" :data="records" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -45,6 +46,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
       <el-pagination
       <el-pagination
         style="margin-top: 16px; text-align: right;"
         style="margin-top: 16px; text-align: right;"
         layout="total, prev, pager, next"
         layout="total, prev, pager, next"

+ 6 - 2
cfc-web/src/views/admin/CfValueManage.vue

@@ -10,7 +10,8 @@
 
 
     <el-tabs v-model="activeTab">
     <el-tabs v-model="activeTab">
       <el-tab-pane label="余额列表" name="balances">
       <el-tab-pane label="余额列表" name="balances">
-        <el-table :data="balanceList" v-loading="loadingBalance" border stripe>
+                <div class="adm-table-wrap">
+<el-table :data="balanceList" v-loading="loadingBalance" border stripe height="100%">
           <el-table-column prop="id" label="ID" width="70">
           <el-table-column prop="id" label="ID" width="70">
             <template slot="header">
             <template slot="header">
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -55,6 +56,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
         <el-pagination v-if="balanceTotal > 0" :current-page="balancePage" :page-size="balanceSize" :total="balanceTotal" layout="prev, pager, next" @current-change="pageBalances" />
         <el-pagination v-if="balanceTotal > 0" :current-page="balancePage" :page-size="balanceSize" :total="balanceTotal" layout="prev, pager, next" @current-change="pageBalances" />
       </el-tab-pane>
       </el-tab-pane>
 
 
@@ -63,7 +65,8 @@
           <el-input v-model="logUserId" placeholder="用户ID" style="width: 200px;" clearable @keyup.enter.native="searchLogs" />
           <el-input v-model="logUserId" placeholder="用户ID" style="width: 200px;" clearable @keyup.enter.native="searchLogs" />
           <el-button type="primary" @click="searchLogs">查询流水</el-button>
           <el-button type="primary" @click="searchLogs">查询流水</el-button>
         </div>
         </div>
-        <el-table :data="logList" v-loading="loadingLog" border stripe>
+                <div class="adm-table-wrap">
+<el-table :data="logList" v-loading="loadingLog" border stripe height="100%">
           <el-table-column prop="id" label="ID" width="70">
           <el-table-column prop="id" label="ID" width="70">
             <template slot="header">
             <template slot="header">
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -108,6 +111,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
         <el-pagination v-if="logTotal > 0" :current-page="logPage" :page-size="logSize" :total="logTotal" layout="prev, pager, next" @current-change="pageLogs" />
         <el-pagination v-if="logTotal > 0" :current-page="logPage" :page-size="logSize" :total="logTotal" layout="prev, pager, next" @current-change="pageLogs" />
       </el-tab-pane>
       </el-tab-pane>
     </el-tabs>
     </el-tabs>

+ 3 - 1
cfc-web/src/views/admin/ChallengeScoreConfig.vue

@@ -5,7 +5,8 @@
       <div class="header-tip">家庭挑战 发起/同意/拒绝 的方向性关系评分与能量增减(可正可负)</div>
       <div class="header-tip">家庭挑战 发起/同意/拒绝 的方向性关系评分与能量增减(可正可负)</div>
     </div>
     </div>
 
 
-    <el-table :data="matrix" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table :data="matrix" v-loading="loading" border stripe height="100%">
       <el-table-column label="动作" width="120">
       <el-table-column label="动作" width="120">
         <template slot-scope="{ row }">
         <template slot-scope="{ row }">
           <el-tag size="mini" :type="row.action === 'reject' ? 'danger' : 'success'">{{ actionLabel(row.action) }}</el-tag>
           <el-tag size="mini" :type="row.action === 'reject' ? 'danger' : 'success'">{{ actionLabel(row.action) }}</el-tag>
@@ -37,6 +38,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
     <div class="footer-tip">注:reject 的沟通方向由代码固定(拒绝人→发起人 +、发起人→拒绝人 -、已同意成员→拒绝人 -),此处的值为增减幅度。信任/亲近为单向扣减(发起人→拒绝人)。</div>
     <div class="footer-tip">注:reject 的沟通方向由代码固定(拒绝人→发起人 +、发起人→拒绝人 -、已同意成员→拒绝人 -),此处的值为增减幅度。信任/亲近为单向扣减(发起人→拒绝人)。</div>
   </div>
   </div>
 </template>
 </template>

+ 3 - 1
cfc-web/src/views/admin/CommentReview.vue

@@ -13,7 +13,8 @@
         <el-button type="primary" @click="loadList">查询</el-button>
         <el-button type="primary" @click="loadList">查询</el-button>
       </div>
       </div>
     </div>
     </div>
-    <el-table :data="list" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe height="100%">
       <el-table-column prop="id" label="ID" width="60">
       <el-table-column prop="id" label="ID" width="60">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -53,6 +54,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
     <el-pagination
     <el-pagination
       v-if="total > 0"
       v-if="total > 0"
       @current-change="handlePageChange"
       @current-change="handlePageChange"

+ 3 - 3
cfc-web/src/views/admin/CouponGrantLog.vue

@@ -10,8 +10,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-sm">
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+        <el-table height="100%" :data="list" v-loading="loading" border stripe>
           <el-table-column prop="id" label="ID" width="80">
           <el-table-column prop="id" label="ID" width="80">
             <template slot="header">
             <template slot="header">
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -53,7 +53,7 @@
               <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">发放时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
               <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">发放时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
 
 
       <el-pagination
       <el-pagination

+ 3 - 3
cfc-web/src/views/admin/CouponManagement.vue

@@ -20,8 +20,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-sm">
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+        <el-table height="100%" :data="list" v-loading="loading" border stripe>
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="name" label="名称" min-width="140" show-overflow-tooltip>
         <el-table-column prop="name" label="名称" min-width="140" show-overflow-tooltip>
           <template slot="header">
           <template slot="header">
@@ -91,7 +91,7 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
 
 
       <el-pagination
       <el-pagination

+ 3 - 1
cfc-web/src/views/admin/DanExecution.vue

@@ -14,7 +14,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe empty-text="暂无执行记录">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe empty-text="暂无执行记录" height="100%">
         <el-table-column label="ID" prop="id" width="80" />
         <el-table-column label="ID" prop="id" width="80" />
         <el-table-column label="订单ID" prop="assessmentOrderId" width="100" />
         <el-table-column label="订单ID" prop="assessmentOrderId" width="100" />
         <el-table-column label="家庭ID" prop="familyId" width="100" />
         <el-table-column label="家庭ID" prop="familyId" width="100" />
@@ -69,6 +70,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 3 - 1
cfc-web/src/views/admin/DanSettlement.vue

@@ -66,7 +66,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe empty-text="暂无结算记录">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe empty-text="暂无结算记录" height="100%">
         <el-table-column label="ID" prop="id" width="80" />
         <el-table-column label="ID" prop="id" width="80" />
         <el-table-column label="执行ID" prop="executionId" width="100" />
         <el-table-column label="执行ID" prop="executionId" width="100" />
         <el-table-column label="订单ID" prop="assessmentOrderId" width="100" />
         <el-table-column label="订单ID" prop="assessmentOrderId" width="100" />
@@ -133,6 +134,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 3 - 1
cfc-web/src/views/admin/Dashboard.vue

@@ -56,7 +56,8 @@
       <div slot="header" class="card-header">
       <div slot="header" class="card-header">
         <span><i class="el-icon-s-order"></i> 最近任务</span>
         <span><i class="el-icon-s-order"></i> 最近任务</span>
       </div>
       </div>
-      <el-table :data="recentTasks" border stripe empty-text="暂无任务" size="small">
+            <div class="adm-table-wrap">
+<el-table :data="recentTasks" border stripe empty-text="暂无任务" size="small" height="100%">
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="title" label="任务名称" min-width="160" show-overflow-tooltip />
         <el-table-column prop="title" label="任务名称" min-width="160" show-overflow-tooltip />
         <el-table-column prop="type" label="类型" width="80">
         <el-table-column prop="type" label="类型" width="80">
@@ -74,6 +75,7 @@
           <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
           <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
   </div>
   </div>
 </template>
 </template>

+ 3 - 3
cfc-web/src/views/admin/DiscountRuleManagement.vue

@@ -8,8 +8,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-sm">
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+        <el-table height="100%" :data="list" v-loading="loading" border stripe>
           <el-table-column prop="id" label="ID" width="70" />
           <el-table-column prop="id" label="ID" width="70" />
           <el-table-column prop="name" label="规则名称" min-width="140" show-overflow-tooltip />
           <el-table-column prop="name" label="规则名称" min-width="140" show-overflow-tooltip />
           <el-table-column label="类型" width="90">
           <el-table-column label="类型" width="90">
@@ -59,7 +59,7 @@
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
 
 
       <el-pagination
       <el-pagination

+ 5 - 4
cfc-web/src/views/admin/EcomSupplierManage.vue

@@ -8,8 +8,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap">
-    <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+    <div class="adm-table-wrap">
+    <el-table :data="list" v-loading="loading" border stripe height="100%">
       <el-table-column prop="id" label="ID" width="60">
       <el-table-column prop="id" label="ID" width="60">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -46,7 +46,6 @@
           <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
           <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-    </el-table></div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"
@@ -81,8 +80,10 @@
         <el-button type="primary" @click="handleSave" :loading="saving">保存</el-button>
         <el-button type="primary" @click="handleSave" :loading="saving">保存</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 3 - 1
cfc-web/src/views/admin/EmotionAlertManage.vue

@@ -9,7 +9,8 @@
         <el-radio-button label="true">已处理</el-radio-button>
         <el-radio-button label="true">已处理</el-radio-button>
       </el-radio-group>
       </el-radio-group>
       </div>
       </div>
-    <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe>
       <el-table-column prop="id" label="ID" width="70">
       <el-table-column prop="id" label="ID" width="70">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -75,6 +76,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"

+ 3 - 1
cfc-web/src/views/admin/EnergyBehaviorConfig.vue

@@ -12,7 +12,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-table :data="list" v-loading="loading" border stripe highlight-current-row>
+        <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe highlight-current-row height="100%">
       <el-table-column prop="behaviorCode" label="行为编码" width="160">
       <el-table-column prop="behaviorCode" label="行为编码" width="160">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('behaviorCode', $event)">行为编码<span v-if="sortIndex('behaviorCode') !== null" class="sort-index" :class="sortClass('behaviorCode') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('behaviorCode') }}</span>{{ sortIcon('behaviorCode') }}</span>
           <span class="sort-header" @click.stop="onSortClick('behaviorCode', $event)">行为编码<span v-if="sortIndex('behaviorCode') !== null" class="sort-index" :class="sortClass('behaviorCode') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('behaviorCode') }}</span>{{ sortIcon('behaviorCode') }}</span>
@@ -67,6 +68,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-dialog title="编辑能量行为配置" :visible.sync="dialogVisible" width="700px" :close-on-click-modal="false">
     <el-dialog title="编辑能量行为配置" :visible.sync="dialogVisible" width="700px" :close-on-click-modal="false">
       <el-form :model="form" label-width="110px" size="small">
       <el-form :model="form" label-width="110px" size="small">

+ 3 - 1
cfc-web/src/views/admin/EnergyRuleManagement.vue

@@ -11,7 +11,8 @@
         <el-button type="primary" icon="el-icon-plus" @click="showDialog(null)">新增规则</el-button>
         <el-button type="primary" icon="el-icon-plus" @click="showDialog(null)">新增规则</el-button>
       </div>
       </div>
       </div>
       </div>
-    <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe>
       <el-table-column prop="id" label="ID" width="60">
       <el-table-column prop="id" label="ID" width="60">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -71,6 +72,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"

+ 3 - 1
cfc-web/src/views/admin/EnergySandbox.vue

@@ -41,7 +41,8 @@
         <span>家庭成员数据</span>
         <span>家庭成员数据</span>
         <el-input v-model="memberKeyword" placeholder="搜索成员姓名..." prefix-icon="el-icon-search" size="small" clearable style="float: right; width: 200px;" />
         <el-input v-model="memberKeyword" placeholder="搜索成员姓名..." prefix-icon="el-icon-search" size="small" clearable style="float: right; width: 200px;" />
       </div>
       </div>
-      <el-table :data="filteredMembers" border style="width: 100%" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="filteredMembers" border style="width: 100%" height="100%">
         <el-table-column prop="memberType" label="成员类型" width="100"></el-table-column>
         <el-table-column prop="memberType" label="成员类型" width="100"></el-table-column>
         <el-table-column prop="name" label="姓名" width="120"></el-table-column>
         <el-table-column prop="name" label="姓名" width="120"></el-table-column>
         <el-table-column prop="bodyScore" label="身" width="80" align="center">
         <el-table-column prop="bodyScore" label="身" width="80" align="center">
@@ -78,6 +79,7 @@
           <span>暂无数据</span>
           <span>暂无数据</span>
         </template>
         </template>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
   </div>
   </div>
 </template>
 </template>

+ 5 - 4
cfc-web/src/views/admin/FamilyEarnings.vue

@@ -8,8 +8,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap">
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight" @row-click="showDetail">
+    <div class="adm-table-wrap">
+      <el-table :data="list" v-loading="loading" border stripe height="100%" @row-click="showDetail">
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">@dblclick.stop="onSortToggle('id')">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">@dblclick.stop="onSortToggle('id')">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -49,7 +49,7 @@
             <el-button size="mini" type="primary" @click.stop="showDetail(row)">详情</el-button>
             <el-button size="mini" type="primary" @click.stop="showDetail(row)">详情</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <!-- 家庭收益详情弹窗 -->
     <!-- 家庭收益详情弹窗 -->
@@ -92,7 +92,8 @@
               <span v-else>否</span>
               <span v-else>否</span>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      
+      </el-table>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
   </div>
   </div>

+ 3 - 3
cfc-web/src/views/admin/FamilyEarningsWithdraw.vue

@@ -14,8 +14,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap">
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+    <div class="adm-table-wrap">
+      <el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="familyId" label="家庭ID" width="90" />
         <el-table-column prop="familyId" label="家庭ID" width="90" />
         <el-table-column label="类型" width="100">
         <el-table-column label="类型" width="100">
@@ -41,7 +41,7 @@
             <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">@dblclick.stop="onSortToggle('createdAt')">创建时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
             <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">@dblclick.stop="onSortToggle('createdAt')">创建时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <el-pagination
     <el-pagination

+ 3 - 1
cfc-web/src/views/admin/FileManage.vue

@@ -52,7 +52,8 @@
         <el-button type="primary" @click="loadData">查询</el-button>
         <el-button type="primary" @click="loadData">查询</el-button>
       </div>
       </div>
 
 
-      <el-table :data="tableData" border stripe v-loading="loading" style="margin-top:16px">
+            <div class="adm-table-wrap">
+<el-table :data="tableData" border stripe v-loading="loading" style="margin-top:16px" height="100%">
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -115,6 +116,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="query.page" :page-size="query.pageSize" :total="total" layout="total, sizes, prev, pager, next, jumper" :page-sizes="[10, 20, 50, 100]" style="margin-top:16px"></el-pagination>
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="query.page" :page-size="query.pageSize" :total="total" layout="total, sizes, prev, pager, next, jumper" :page-sizes="[10, 20, 50, 100]" style="margin-top:16px"></el-pagination>
     </el-card>
     </el-card>

+ 4 - 2
cfc-web/src/views/admin/Foods.vue

@@ -42,14 +42,15 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table
+            <div class="adm-table-wrap">
+<el-table
         :data="list"
         :data="list"
         v-loading="loading"
         v-loading="loading"
         border
         border
         stripe
         stripe
         size="mini"
         size="mini"
         style="width: 100%"
         style="width: 100%"
-        :max-height="tableHeight"
+        height="100%"
       >
       >
         <el-table-column type="index" label="#" width="50" align="center" />
         <el-table-column type="index" label="#" width="50" align="center" />
         <el-table-column prop="name" label="名称" min-width="120" fixed :class-name="sortClass('name')">
         <el-table-column prop="name" label="名称" min-width="120" fixed :class-name="sortClass('name')">
@@ -157,6 +158,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <div class="pagination-wrap">
       <div class="pagination-wrap">
         <el-pagination
         <el-pagination

+ 3 - 1
cfc-web/src/views/admin/GrowthTaskManagement.vue

@@ -20,7 +20,8 @@
           <el-button type="primary" size="mini" @click="openCreate">创建任务</el-button>
           <el-button type="primary" size="mini" @click="openCreate">创建任务</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :max-height="tableHeight" :data="tasks" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="tasks" v-loading="loading" border stripe>
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">@dblclick.stop="onSortToggle('id')">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">@dblclick.stop="onSortToggle('id')">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -83,6 +84,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
       <el-pagination
       <el-pagination
         v-if="total > 0"
         v-if="total > 0"
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 3 - 1
cfc-web/src/views/admin/GuidePopupConfig.vue

@@ -19,7 +19,8 @@
           <el-button type="primary" @click="load">查询</el-button>
           <el-button type="primary" @click="load">查询</el-button>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
-      <el-table :data="list" v-loading="loading" border>
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border height="100%">
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="id" label="ID" width="60" />
         <el-table-column prop="slug" label="标识" width="160" />
         <el-table-column prop="slug" label="标识" width="160" />
         <el-table-column prop="title" label="标题" min-width="160" show-overflow-tooltip />
         <el-table-column prop="title" label="标题" min-width="160" show-overflow-tooltip />
@@ -42,6 +43,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-drawer :title="editing.id ? '编辑弹窗' : '新建弹窗'" :visible.sync="drawerVisible" size="60%">
     <el-drawer :title="editing.id ? '编辑弹窗' : '新建弹窗'" :visible.sync="drawerVisible" size="60%">

+ 3 - 1
cfc-web/src/views/admin/GuidePopupStats.vue

@@ -12,11 +12,13 @@
         <el-col :span="6"><el-card shadow="never"><div class="stat-num">{{ stats.totalClicks || 0 }}</div><div class="stat-label">总点击</div></el-card></el-col>
         <el-col :span="6"><el-card shadow="never"><div class="stat-num">{{ stats.totalClicks || 0 }}</div><div class="stat-label">总点击</div></el-card></el-col>
         <el-col :span="6"><el-card shadow="never"><div class="stat-num">{{ stats.completionRate || '0.0%' }}</div><div class="stat-label">完成率</div></el-card></el-col>
         <el-col :span="6"><el-card shadow="never"><div class="stat-num">{{ stats.completionRate || '0.0%' }}</div><div class="stat-label">完成率</div></el-card></el-col>
       </el-row>
       </el-row>
-      <el-table :data="trend" border style="margin-top:16px">
+            <div class="adm-table-wrap">
+<el-table :data="trend" border style="margin-top:16px" height="100%">
         <el-table-column prop="hour" label="时段" width="120" />
         <el-table-column prop="hour" label="时段" width="120" />
         <el-table-column prop="views" label="曝光" />
         <el-table-column prop="views" label="曝光" />
         <el-table-column prop="clicks" label="点击" />
         <el-table-column prop="clicks" label="点击" />
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
   </div>
   </div>
 </template>
 </template>

+ 3 - 1
cfc-web/src/views/admin/HealthCheckinManage.vue

@@ -25,7 +25,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe empty-text="暂无打卡记录" :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe empty-text="暂无打卡记录" height="100%">
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column label="孩子" width="100">
         <el-table-column label="孩子" width="100">
           <template slot-scope="{ row }">{{ row.childName || '-' }}</template>
           <template slot-scope="{ row }">{{ row.childName || '-' }}</template>
@@ -50,6 +51,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
   </div>
   </div>
 </template>
 </template>

+ 5 - 2
cfc-web/src/views/admin/HealthPlanManage.vue

@@ -14,7 +14,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-table :data="plans" border stripe style="width:100%" v-loading="loading" :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="plans" border stripe style="width:100%" v-loading="loading" height="100%">
       <el-table-column prop="id" label="方案ID" width="80" />
       <el-table-column prop="id" label="方案ID" width="80" />
       <el-table-column prop="familyName" label="家庭" width="140">
       <el-table-column prop="familyName" label="家庭" width="140">
         <template slot-scope="{ row }">{{ row.familyName || row.familyId }}</template>
         <template slot-scope="{ row }">{{ row.familyName || row.familyId }}</template>
@@ -61,6 +62,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       style="margin-top:16px;text-align:right"
       style="margin-top:16px;text-align:right"
@@ -114,7 +116,8 @@
               <el-tag :type="taskStatusType(row.status)" size="mini">{{ taskStatusLabel(row.status) }}</el-tag>
               <el-tag :type="taskStatusType(row.status)" size="mini">{{ taskStatusLabel(row.status) }}</el-tag>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      
+      </el-table>
       </div>
       </div>
       <div slot="footer">
       <div slot="footer">
         <el-button @click="detailVisible = false">关闭</el-button>
         <el-button @click="detailVisible = false">关闭</el-button>

+ 12 - 5
cfc-web/src/views/admin/HealthReportEdit.vue

@@ -72,7 +72,8 @@
           <el-button size="mini" @click="addIndicator">添加指标</el-button>
           <el-button size="mini" @click="addIndicator">添加指标</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :data="payload.indicators" border size="small" :max-height="400">
+            <div class="adm-table-wrap">
+<el-table :data="payload.indicators" border size="small" height="100%">
         <el-table-column type="index" label="#" width="50" />
         <el-table-column type="index" label="#" width="50" />
         <el-table-column label="分类" width="140">
         <el-table-column label="分类" width="140">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
@@ -122,6 +123,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-card v-loading="loading" class="edit-card" v-if="!loading && payload.gutFlora && payload.gutFlora.length">
     <el-card v-loading="loading" class="edit-card" v-if="!loading && payload.gutFlora && payload.gutFlora.length">
@@ -131,7 +133,8 @@
           <el-button size="mini" @click="addGutFlora">添加菌群</el-button>
           <el-button size="mini" @click="addGutFlora">添加菌群</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :data="payload.gutFlora" border size="small" :max-height="400">
+            <div class="adm-table-wrap">
+<el-table :data="payload.gutFlora" border size="small" height="100%">
         <el-table-column type="index" label="#" width="50" />
         <el-table-column type="index" label="#" width="50" />
         <el-table-column label="菌种名称" min-width="160">
         <el-table-column label="菌种名称" min-width="160">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
@@ -168,7 +171,6 @@
             <el-button size="mini" type="text" @click="removeGutFlora($index)">删除</el-button>
             <el-button size="mini" type="text" @click="removeGutFlora($index)">删除</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
     </el-card>
     </el-card>
 
 
     <el-card v-loading="loading" class="edit-card" v-if="!loading && payload.diseaseRisks && payload.diseaseRisks.length">
     <el-card v-loading="loading" class="edit-card" v-if="!loading && payload.diseaseRisks && payload.diseaseRisks.length">
@@ -178,7 +180,8 @@
           <el-button size="mini" @click="addDiseaseRisk">添加风险</el-button>
           <el-button size="mini" @click="addDiseaseRisk">添加风险</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :data="payload.diseaseRisks" border size="small">
+            <div class="adm-table-wrap">
+<el-table :data="payload.diseaseRisks" border size="small" height="100%">
         <el-table-column type="index" label="#" width="50" />
         <el-table-column type="index" label="#" width="50" />
         <el-table-column label="疾病名称" min-width="200">
         <el-table-column label="疾病名称" min-width="200">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
@@ -205,14 +208,18 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <div class="action-bar" v-if="!loading">
     <div class="action-bar" v-if="!loading">
       <el-button @click="goBack">取消</el-button>
       <el-button @click="goBack">取消</el-button>
       <el-button type="primary" :loading="saving" @click="handleSave">保存</el-button>
       <el-button type="primary" :loading="saving" @click="handleSave">保存</el-button>
     </div>
     </div>
+  
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import { getHealthReportDetail, editHealthReport } from '@/api/admin'
 import { getHealthReportDetail, editHealthReport } from '@/api/admin'

+ 3 - 1
cfc-web/src/views/admin/HealthReportReassign.vue

@@ -14,7 +14,8 @@
       </el-form-item>
       </el-form-item>
     </el-form>
     </el-form>
 
 
-    <el-table :data="reports" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table :data="reports" v-loading="loading" border stripe height="100%">
       <el-table-column prop="id" label="报告ID" width="100" />
       <el-table-column prop="id" label="报告ID" width="100" />
       <el-table-column prop="reportType" label="报告类型" width="120">
       <el-table-column prop="reportType" label="报告类型" width="120">
         <template slot-scope="{ row }">
         <template slot-scope="{ row }">
@@ -45,6 +46,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <!-- 重新分配弹窗 -->
     <!-- 重新分配弹窗 -->
     <el-dialog title="重新分配报告归属" :visible.sync="dialogVisible" width="480px" :close-on-click-modal="false">
     <el-dialog title="重新分配报告归属" :visible.sync="dialogVisible" width="480px" :close-on-click-modal="false">

+ 3 - 3
cfc-web/src/views/admin/HomeBannerManage.vue

@@ -23,8 +23,8 @@
         <el-button size="mini" @click="resetFilter">重置</el-button>
         <el-button size="mini" @click="resetFilter">重置</el-button>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-sm">
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+        <el-table height="100%" :data="list" v-loading="loading" border stripe>
           <el-table-column prop="id" label="ID" width="60" />
           <el-table-column prop="id" label="ID" width="60" />
           <el-table-column label="类型" width="80">
           <el-table-column label="类型" width="80">
             <template slot-scope="{ row }">
             <template slot-scope="{ row }">
@@ -83,7 +83,7 @@
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
 
 
       <div class="pagination-wrap" style="margin-top:16px;text-align:right;">
       <div class="pagination-wrap" style="margin-top:16px;text-align:right;">

+ 3 - 1
cfc-web/src/views/admin/InnatePortraitConfig.vue

@@ -5,7 +5,8 @@
         <span>先天画像来源权重配置</span>
         <span>先天画像来源权重配置</span>
         <el-button style="float: right" type="primary" size="small" @click="load">刷新</el-button>
         <el-button style="float: right" type="primary" size="small" @click="load">刷新</el-button>
       </div>
       </div>
-      <el-table :data="list" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="list" border stripe height="100%">
         <el-table-column prop="sourceName" label="来源" width="120" />
         <el-table-column prop="sourceName" label="来源" width="120" />
         <el-table-column label="权重" width="220">
         <el-table-column label="权重" width="220">
           <template slot-scope="scope">
           <template slot-scope="scope">
@@ -40,6 +41,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
       <div style="margin-top: 12px; color: #999; font-size: 12px">
       <div style="margin-top: 12px; color: #999; font-size: 12px">
         提示:权重按基点配置(2500=25%)。保存后自动清除所有成员先天分缓存并触发重算。启用来源权重之和不足100%时按比例归一化。
         提示:权重按基点配置(2500=25%)。保存后自动清除所有成员先天分缓存并触发重算。启用来源权重之和不足100%时按比例归一化。
       </div>
       </div>

+ 27 - 6
cfc-web/src/views/admin/InventoryManage.vue

@@ -22,7 +22,8 @@
             <el-date-picker v-model="txFilters.dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" style="width:260px;margin-right:8px;" />
             <el-date-picker v-model="txFilters.dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" style="width:260px;margin-right:8px;" />
             <el-button type="primary" size="mini" @click="loadTransactions">查询</el-button>
             <el-button type="primary" size="mini" @click="loadTransactions">查询</el-button>
           </div>
           </div>
-          <el-table :data="txList" v-loading="txLoading" border stripe max-height="500">
+                    <div class="adm-table-wrap">
+<el-table :data="txList" v-loading="txLoading" border stripe height="100%">
             <el-table-column prop="id" label="ID" width="60" />
             <el-table-column prop="id" label="ID" width="60" />
             <el-table-column label="商品" min-width="150">
             <el-table-column label="商品" min-width="150">
               <template slot-scope="{ row }">{{ row.productName || 'ID:' + row.productId }}</template>
               <template slot-scope="{ row }">{{ row.productName || 'ID:' + row.productId }}</template>
@@ -56,13 +57,17 @@
                 <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
+          
+          
           </el-table>
           </el-table>
+          </div>
           <el-pagination @size-change="txPageSize=$event;loadTransactions()" @current-change="txPage=$event;loadTransactions()" :current-page="txPage" :page-sizes="[10,20,50]" :page-size="txPageSize" :total="txTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
           <el-pagination @size-change="txPageSize=$event;loadTransactions()" @current-change="txPage=$event;loadTransactions()" :current-page="txPage" :page-sizes="[10,20,50]" :page-size="txPageSize" :total="txTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
         </el-tab-pane>
         </el-tab-pane>
 
 
         <!-- 入库单 -->
         <!-- 入库单 -->
         <el-tab-pane label="入库单" name="inbound">
         <el-tab-pane label="入库单" name="inbound">
-          <el-table :data="inboundList" v-loading="inboundLoading" border stripe max-height="500">
+                    <div class="adm-table-wrap">
+<el-table :data="inboundList" v-loading="inboundLoading" border stripe height="100%">
             <el-table-column prop="orderNo" label="入库单号" width="180">
             <el-table-column prop="orderNo" label="入库单号" width="180">
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('orderNo', $event)">入库单号<span v-if="sortIndex('orderNo') !== null" class="sort-index" :class="sortClass('orderNo') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('orderNo') }}</span>{{ sortIcon('orderNo') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('orderNo', $event)">入库单号<span v-if="sortIndex('orderNo') !== null" class="sort-index" :class="sortClass('orderNo') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('orderNo') }}</span>{{ sortIcon('orderNo') }}</span>
@@ -104,14 +109,18 @@
                 <el-button v-if="row.status === 'pending'" size="mini" type="danger" @click="handleCancelInbound(row)">取消</el-button>
                 <el-button v-if="row.status === 'pending'" size="mini" type="danger" @click="handleCancelInbound(row)">取消</el-button>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
+          
+          
           </el-table>
           </el-table>
+          </div>
           <el-pagination @size-change="inboundPageSize=$event;loadInboundOrders()" @current-change="inboundPage=$event;loadInboundOrders()" :current-page="inboundPage" :page-sizes="[10,20,50]" :page-size="inboundPageSize" :total="inboundTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
           <el-pagination @size-change="inboundPageSize=$event;loadInboundOrders()" @current-change="inboundPage=$event;loadInboundOrders()" :current-page="inboundPage" :page-sizes="[10,20,50]" :page-size="inboundPageSize" :total="inboundTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
         </el-tab-pane>
         </el-tab-pane>
 
 
         <!-- 库存预警 -->
         <!-- 库存预警 -->
         <el-tab-pane label="库存预警" name="alerts">
         <el-tab-pane label="库存预警" name="alerts">
           <el-button type="primary" size="mini" @click="loadAlerts" style="margin-bottom:12px;">刷新</el-button>
           <el-button type="primary" size="mini" @click="loadAlerts" style="margin-bottom:12px;">刷新</el-button>
-          <el-table :data="alertList" v-loading="alertLoading" border stripe max-height="500">
+                    <div class="adm-table-wrap">
+<el-table :data="alertList" v-loading="alertLoading" border stripe height="100%">
             <el-table-column prop="productName" label="商品名称" min-width="200" />
             <el-table-column prop="productName" label="商品名称" min-width="200" />
             <el-table-column prop="specs" label="SKU规格" width="150">
             <el-table-column prop="specs" label="SKU规格" width="150">
               <template slot-scope="{ row }">{{ row.specs || '-' }}</template>
               <template slot-scope="{ row }">{{ row.specs || '-' }}</template>
@@ -120,13 +129,17 @@
               <template slot-scope="{ row }"><span style="color:#f56c6c;font-weight:bold;">{{ row.currentStock }}</span></template>
               <template slot-scope="{ row }"><span style="color:#f56c6c;font-weight:bold;">{{ row.currentStock }}</span></template>
             </el-table-column>
             </el-table-column>
             <el-table-column prop="minStockAlert" label="预警下限" width="80" />
             <el-table-column prop="minStockAlert" label="预警下限" width="80" />
+          
+          
           </el-table>
           </el-table>
+          </div>
         </el-tab-pane>
         </el-tab-pane>
 
 
         <!-- 出库单 -->
         <!-- 出库单 -->
         <el-tab-pane label="出库单" name="outbound">
         <el-tab-pane label="出库单" name="outbound">
           <el-button type="primary" size="mini" @click="showCreateOutbound = true" style="margin-bottom:12px;">新建出库单</el-button>
           <el-button type="primary" size="mini" @click="showCreateOutbound = true" style="margin-bottom:12px;">新建出库单</el-button>
-          <el-table :data="outboundList" v-loading="outboundLoading" border stripe max-height="500">
+                    <div class="adm-table-wrap">
+<el-table :data="outboundList" v-loading="outboundLoading" border stripe height="100%">
             <el-table-column prop="id" label="ID" width="60">
             <el-table-column prop="id" label="ID" width="60">
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -148,14 +161,18 @@
                 <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
+          
+          
           </el-table>
           </el-table>
+          </div>
           <el-pagination @size-change="outboundPageSize=$event;loadOutboundList()" @current-change="outboundPage=$event;loadOutboundList()" :current-page="outboundPage" :page-sizes="[10,20,50]" :page-size="outboundPageSize" :total="outboundTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
           <el-pagination @size-change="outboundPageSize=$event;loadOutboundList()" @current-change="outboundPage=$event;loadOutboundList()" :current-page="outboundPage" :page-sizes="[10,20,50]" :page-size="outboundPageSize" :total="outboundTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
         </el-tab-pane>
         </el-tab-pane>
 
 
         <!-- 盘点记录 -->
         <!-- 盘点记录 -->
         <el-tab-pane label="盘点记录" name="counting">
         <el-tab-pane label="盘点记录" name="counting">
           <el-button type="primary" size="mini" @click="showCreateCounting = true" style="margin-bottom:12px;">新建盘点</el-button>
           <el-button type="primary" size="mini" @click="showCreateCounting = true" style="margin-bottom:12px;">新建盘点</el-button>
-          <el-table :data="countingList" v-loading="countingLoading" border stripe max-height="500">
+                    <div class="adm-table-wrap">
+<el-table :data="countingList" v-loading="countingLoading" border stripe height="100%">
             <el-table-column prop="id" label="ID" width="60">
             <el-table-column prop="id" label="ID" width="60">
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -192,7 +209,10 @@
                 <el-button v-if="row.status === 'pending'" size="mini" type="success" @click="handleConfirmCounting(row)">确认</el-button>
                 <el-button v-if="row.status === 'pending'" size="mini" type="success" @click="handleConfirmCounting(row)">确认</el-button>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
+          
+          
           </el-table>
           </el-table>
+          </div>
           <el-pagination @size-change="countingPageSize=$event;loadCountingRecords()" @current-change="countingPage=$event;loadCountingRecords()" :current-page="countingPage" :page-sizes="[10,20,50]" :page-size="countingPageSize" :total="countingTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
           <el-pagination @size-change="countingPageSize=$event;loadCountingRecords()" @current-change="countingPage=$event;loadCountingRecords()" :current-page="countingPage" :page-sizes="[10,20,50]" :page-size="countingPageSize" :total="countingTotal" layout="total, sizes, prev, pager, next, jumper" class="pagination-wrap" />
         </el-tab-pane>
         </el-tab-pane>
       </el-tabs>
       </el-tabs>
@@ -210,7 +230,6 @@
         <el-table-column prop="productId" label="商品ID" width="70" />
         <el-table-column prop="productId" label="商品ID" width="70" />
         <el-table-column prop="skuId" label="SKU ID" width="70" />
         <el-table-column prop="skuId" label="SKU ID" width="70" />
         <el-table-column prop="quantity" label="数量" width="70" />
         <el-table-column prop="quantity" label="数量" width="70" />
-      </el-table>
     </el-dialog>
     </el-dialog>
 
 
     <!-- 新建出库弹窗 -->
     <!-- 新建出库弹窗 -->
@@ -268,6 +287,8 @@
         <el-button type="primary" @click="handleCreateCounting">提交</el-button>
         <el-button type="primary" @click="handleCreateCounting">提交</el-button>
       </span>
       </span>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 3 - 1
cfc-web/src/views/admin/KnowledgeTag.vue

@@ -8,7 +8,8 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 新增标签</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 新增标签</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :max-height="tableHeight" :data="filteredTags" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="filteredTags" v-loading="loading" border stripe>
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -45,6 +46,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑标签' : '新增标签'" width="450px" :close-on-click-modal="false">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑标签' : '新增标签'" width="450px" :close-on-click-modal="false">

+ 12 - 4
cfc-web/src/views/admin/LangGraphAdmin.vue

@@ -44,7 +44,8 @@
       <el-tab-pane label="概览" name="overview">
       <el-tab-pane label="概览" name="overview">
         <div class="lg-panel">
         <div class="lg-panel">
           <div class="lg-panel-title">组件健康状态</div>
           <div class="lg-panel-title">组件健康状态</div>
-          <el-table :data="componentList" border stripe size="small" class="lg-table">
+                    <div class="adm-table-wrap">
+<el-table :data="componentList" border stripe size="small" class="lg-table" height="100%">
             <el-table-column prop="name" label="组件" width="140" />
             <el-table-column prop="name" label="组件" width="140" />
             <el-table-column prop="status" label="状态" width="100">
             <el-table-column prop="status" label="状态" width="100">
               <template slot-scope="{ row }">
               <template slot-scope="{ row }">
@@ -55,6 +56,7 @@
             </el-table-column>
             </el-table-column>
             <el-table-column prop="detail" label="详情" show-overflow-tooltip />
             <el-table-column prop="detail" label="详情" show-overflow-tooltip />
           </el-table>
           </el-table>
+          </div>
         </div>
         </div>
         <div class="lg-panel">
         <div class="lg-panel">
           <div class="lg-panel-title">服务配置</div>
           <div class="lg-panel-title">服务配置</div>
@@ -80,7 +82,8 @@
           <el-input v-model="apiFilter" placeholder="筛选路径或说明..." prefix-icon="el-icon-search" size="small" clearable style="width:280px" />
           <el-input v-model="apiFilter" placeholder="筛选路径或说明..." prefix-icon="el-icon-search" size="small" clearable style="width:280px" />
           <el-button size="small" @click="fetchSpec">刷新</el-button>
           <el-button size="small" @click="fetchSpec">刷新</el-button>
         </div>
         </div>
-        <el-table :data="filteredApiEndpoints" border stripe size="small" class="lg-table lg-table-full">
+                <div class="adm-table-wrap">
+<el-table :data="filteredApiEndpoints" border stripe size="small" class="lg-table lg-table-full" height="100%">
           <el-table-column prop="method" label="方法" width="80" fixed>
           <el-table-column prop="method" label="方法" width="80" fixed>
             <template slot-scope="{ row }">
             <template slot-scope="{ row }">
               <el-tag :type="row.method === 'GET' ? 'info' : 'primary'" size="mini">{{ row.method }}</el-tag>
               <el-tag :type="row.method === 'GET' ? 'info' : 'primary'" size="mini">{{ row.method }}</el-tag>
@@ -94,6 +97,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
       </el-tab-pane>
       </el-tab-pane>
 
 
       <el-tab-pane label="请求历史" name="logs">
       <el-tab-pane label="请求历史" name="logs">
@@ -106,7 +110,8 @@
           <el-tag size="small" type="info">共 {{ totalLogs }} 条</el-tag>
           <el-tag size="small" type="info">共 {{ totalLogs }} 条</el-tag>
           <el-button size="small" @click="fetchLogs" :loading="logLoading">刷新</el-button>
           <el-button size="small" @click="fetchLogs" :loading="logLoading">刷新</el-button>
         </div>
         </div>
-        <el-table :data="filteredLogs" border stripe size="small" class="lg-table lg-table-full">
+                <div class="adm-table-wrap">
+<el-table :data="filteredLogs" border stripe size="small" class="lg-table lg-table-full" height="100%">
           <el-table-column prop="ts" label="时间" width="70" fixed />
           <el-table-column prop="ts" label="时间" width="70" fixed />
           <el-table-column prop="method" label="方法" width="60">
           <el-table-column prop="method" label="方法" width="60">
             <template slot-scope="{ row }">
             <template slot-scope="{ row }">
@@ -131,7 +136,9 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
-        <el-table :data="logDetailRows" border stripe size="small" class="lg-table lg-table-full lg-detail-table" v-if="expandedLog">
+        </div>
+                <div class="adm-table-wrap">
+<el-table :data="logDetailRows" border stripe size="small" class="lg-table lg-table-full lg-detail-table" v-if="expandedLog" height="100%">
           <el-table-column label="时间" width="90"><template slot-scope="{ row }">{{ row.ts }}</template></el-table-column>
           <el-table-column label="时间" width="90"><template slot-scope="{ row }">{{ row.ts }}</template></el-table-column>
           <el-table-column label="方法" width="60"><template slot-scope="{ row }">{{ row.method }}</template></el-table-column>
           <el-table-column label="方法" width="60"><template slot-scope="{ row }">{{ row.method }}</template></el-table-column>
           <el-table-column label="路径"><template slot-scope="{ row }">{{ row.path }}</template></el-table-column>
           <el-table-column label="路径"><template slot-scope="{ row }">{{ row.path }}</template></el-table-column>
@@ -141,6 +148,7 @@
           <el-table-column label="请求体" min-width="200"><template slot-scope="{ row }"><pre class="detail-pre">{{ row.body || '(空)' }}</pre></template></el-table-column>
           <el-table-column label="请求体" min-width="200"><template slot-scope="{ row }"><pre class="detail-pre">{{ row.body || '(空)' }}</pre></template></el-table-column>
           <el-table-column label="响应体" min-width="200"><template slot-scope="{ row }"><pre class="detail-pre">{{ (row.response || '').substring(0, 2000) }}</pre></template></el-table-column>
           <el-table-column label="响应体" min-width="200"><template slot-scope="{ row }"><pre class="detail-pre">{{ (row.response || '').substring(0, 2000) }}</pre></template></el-table-column>
         </el-table>
         </el-table>
+        </div>
       </el-tab-pane>
       </el-tab-pane>
 
 
     </el-tabs>
     </el-tabs>

+ 3 - 1
cfc-web/src/views/admin/MbtiProfiles.vue

@@ -12,7 +12,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="list" border stripe v-loading="loading" size="mini" style="width:100%">
+            <div class="adm-table-wrap">
+<el-table :data="list" border stripe v-loading="loading" size="mini" style="width:100%" height="100%">
         <el-table-column prop="typeCode" label="类型代码" width="100" align="center" />
         <el-table-column prop="typeCode" label="类型代码" width="100" align="center" />
         <el-table-column prop="name" label="中文名称" width="120" align="center" />
         <el-table-column prop="name" label="中文名称" width="120" align="center" />
         <el-table-column prop="description" label="核心特质" show-overflow-tooltip />
         <el-table-column prop="description" label="核心特质" show-overflow-tooltip />
@@ -32,6 +33,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :title="form.id ? '编辑画像' : '新增画像'" :visible.sync="dialogVisible" width="680px" :close-on-click-modal="false">
     <el-dialog :title="form.id ? '编辑画像' : '新增画像'" :visible.sync="dialogVisible" width="680px" :close-on-click-modal="false">

+ 10 - 9
cfc-web/src/views/admin/MembershipCenter.vue

@@ -26,8 +26,8 @@
         
         
         <!-- Tab 1: 会员等级配置 -->
         <!-- Tab 1: 会员等级配置 -->
         <el-tab-pane label="会员等级配置" name="levels">
         <el-tab-pane label="会员等级配置" name="levels">
-          <div class="table-scroll-wrap-lg">
-            <el-table :data="safeLevels" v-loading="levelsLoading" border stripe size="small" empty-text="暂无等级配置">
+          <div class="adm-table-wrap">
+            <el-table :data="safeLevels" v-loading="levelsLoading" border stripe size="small" empty-text="暂无等级配置" height="100%">
               <el-table-column prop="levelCode" label="等级编码" width="110">
               <el-table-column prop="levelCode" label="等级编码" width="110">
                 <template slot-scope="{ row }">
                 <template slot-scope="{ row }">
                   <el-tag :type="levelTagType(row.levelCode)" size="small">{{ row.levelCode }}</el-tag>
                   <el-tag :type="levelTagType(row.levelCode)" size="small">{{ row.levelCode }}</el-tag>
@@ -75,14 +75,14 @@
                   <el-button size="mini" type="info" plain @click="handleViewFeatures(row)">权限</el-button>
                   <el-button size="mini" type="info" plain @click="handleViewFeatures(row)">权限</el-button>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-            </el-table>
+          </el-table>
           </div>
           </div>
         </el-tab-pane>
         </el-tab-pane>
 
 
         <!-- Tab 2: 升级记录 -->
         <!-- Tab 2: 升级记录 -->
         <el-tab-pane label="升级记录" name="records">
         <el-tab-pane label="升级记录" name="records">
-          <div class="table-scroll-wrap-lg">
-            <el-table :data="upgradeRecords" v-loading="recordsLoading" border stripe size="small" empty-text="暂无升级记录">
+          <div class="adm-table-wrap">
+            <el-table :data="upgradeRecords" v-loading="recordsLoading" border stripe size="small" empty-text="暂无升级记录" height="100%">
               <el-table-column prop="id" label="ID" width="60">
               <el-table-column prop="id" label="ID" width="60">
                 <template slot="header">
                 <template slot="header">
                   <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
                   <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -122,7 +122,7 @@
                   <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">创建时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
                   <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">创建时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-            </el-table>
+          </el-table>
           </div>
           </div>
           <div class="pagination-wrap" v-if="recordsTotal > 0">
           <div class="pagination-wrap" v-if="recordsTotal > 0">
             <el-pagination
             <el-pagination
@@ -150,8 +150,8 @@
             <el-button type="primary" size="small" icon="el-icon-search" @click="handleMaintainSearch" :loading="maintainSearching">搜索</el-button>
             <el-button type="primary" size="small" icon="el-icon-search" @click="handleMaintainSearch" :loading="maintainSearching">搜索</el-button>
             <span v-if="safeMaintainUsers.length" class="search-result-count">找到 {{ safeMaintainUsers.length }} 个用户</span>
             <span v-if="safeMaintainUsers.length" class="search-result-count">找到 {{ safeMaintainUsers.length }} 个用户</span>
           </div>
           </div>
-          <div v-if="safeMaintainUsers.length" class="table-scroll-wrap-sm">
-            <el-table :data="safeMaintainUsers" border stripe size="small">
+          <div v-if="safeMaintainUsers.length" class="adm-table-wrap">
+            <el-table :data="safeMaintainUsers" border stripe size="small" height="100%">
               <el-table-column prop="id" label="ID" width="70" />
               <el-table-column prop="id" label="ID" width="70" />
               <el-table-column prop="nickname" label="昵称" width="130" />
               <el-table-column prop="nickname" label="昵称" width="130" />
               <el-table-column prop="phone" label="手机号" width="130" />
               <el-table-column prop="phone" label="手机号" width="130" />
@@ -168,7 +168,8 @@
                   <el-button size="mini" type="warning" @click="openMaintainDialog(row)">维护</el-button>
                   <el-button size="mini" type="warning" @click="openMaintainDialog(row)">维护</el-button>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-            </el-table>
+          
+          </el-table>
           </div>
           </div>
           <div v-else-if="maintainSearched" class="empty-state">
           <div v-else-if="maintainSearched" class="empty-state">
             <i class="el-icon-user-solid"></i>
             <i class="el-icon-user-solid"></i>

+ 3 - 3
cfc-web/src/views/admin/MenuManage.vue

@@ -19,14 +19,14 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap">
+      <div class="adm-table-wrap">
         <el-table
         <el-table
           :data="filteredMenuTree"
           :data="filteredMenuTree"
           row-key="id"
           row-key="id"
           :tree-props="{ children: 'children' }"
           :tree-props="{ children: 'children' }"
           :default-expand-all="!searchKeyword"
           :default-expand-all="!searchKeyword"
           stripe
           stripe
-          :max-height="tableHeight"
+          height="100%"
           style="min-width: 1200px; width: 100%"
           style="min-width: 1200px; width: 100%"
         >
         >
           <el-table-column prop="displayName" label="菜单名称" min-width="220" show-overflow-tooltip>
           <el-table-column prop="displayName" label="菜单名称" min-width="220" show-overflow-tooltip>
@@ -61,10 +61,10 @@
               <el-button size="mini" type="success" @click="handleCreate(row.id)">+ 子菜单</el-button>
               <el-button size="mini" type="success" @click="handleCreate(row.id)">+ 子菜单</el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
         <div v-if="!filteredMenuTree.length" class="empty-state">
         <div v-if="!filteredMenuTree.length" class="empty-state">
           <el-empty description="暂无菜单数据"></el-empty>
           <el-empty description="暂无菜单数据"></el-empty>
         </div>
         </div>
+      </el-table>
       </div>
       </div>
     </el-card>
     </el-card>
 
 

+ 3 - 3
cfc-web/src/views/admin/NoticeManage.vue

@@ -6,8 +6,8 @@
         <el-button type="primary" size="small" @click="openCreate">+ 新建公告</el-button>
         <el-button type="primary" size="small" @click="openCreate">+ 新建公告</el-button>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap-lg">
-        <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+        <el-table :data="list" v-loading="loading" border stripe height="100%">
           <el-table-column prop="id" label="ID" width="70" />
           <el-table-column prop="id" label="ID" width="70" />
           <el-table-column label="类型" width="90">
           <el-table-column label="类型" width="90">
             <template slot-scope="{ row }">
             <template slot-scope="{ row }">
@@ -39,7 +39,7 @@
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
     </el-card>
     </el-card>
 
 

+ 3 - 1
cfc-web/src/views/admin/NotificationTemplateManage.vue

@@ -7,7 +7,8 @@
       </div>
       </div>
 
 
       <!-- 模板列表 -->
       <!-- 模板列表 -->
-      <el-table :data="list" border v-loading="loading">
+            <div class="adm-table-wrap">
+<el-table :data="list" border v-loading="loading" height="100%">
         <el-table-column prop="type" label="类型" width="160">
         <el-table-column prop="type" label="类型" width="160">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
             <el-tag size="small">{{ row.type }}</el-tag>
             <el-tag size="small">{{ row.type }}</el-tag>
@@ -58,6 +59,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 编辑弹窗 -->
     <!-- 编辑弹窗 -->

+ 3 - 1
cfc-web/src/views/admin/NumSoulDetailConfig.vue

@@ -13,7 +13,8 @@
           <el-button type="primary" size="small" style="margin-left: 8px" @click="showCreate">新增</el-button>
           <el-button type="primary" size="small" style="margin-left: 8px" @click="showCreate">新增</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :data="list" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="list" border stripe height="100%">
         <el-table-column prop="numberType" label="类型" width="110">
         <el-table-column prop="numberType" label="类型" width="110">
           <template slot-scope="scope">{{ typeLabel(scope.row.numberType) }}</template>
           <template slot-scope="scope">{{ typeLabel(scope.row.numberType) }}</template>
         </el-table-column>
         </el-table-column>
@@ -34,6 +35,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-dialog :title="form.id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="520px">
       <el-dialog :title="form.id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="520px">
         <el-form :model="form" label-width="100px">
         <el-form :model="form" label-width="100px">

+ 8 - 4
cfc-web/src/views/admin/NutritionProducts.vue

@@ -42,14 +42,15 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table
+            <div class="adm-table-wrap">
+<el-table
         :data="list"
         :data="list"
         v-loading="loading"
         v-loading="loading"
         border
         border
         stripe
         stripe
         size="mini"
         size="mini"
         style="width: 100%"
         style="width: 100%"
-        :max-height="tableHeight"
+        height="100%"
       >
       >
         <el-table-column type="index" label="#" width="50" align="center" />
         <el-table-column type="index" label="#" width="50" align="center" />
         <el-table-column label="图片" width="100" align="center">
         <el-table-column label="图片" width="100" align="center">
@@ -132,6 +133,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <div class="pagination-wrapper">
       <div class="pagination-wrapper">
@@ -210,7 +212,6 @@
             <template slot-scope="{ row }">{{ row.amountPerServing }} {{ row.unit }}</template>
             <template slot-scope="{ row }">{{ row.amountPerServing }} {{ row.unit }}</template>
           </el-table-column>
           </el-table-column>
           <el-table-column prop="purpose" label="功效" min-width="150" />
           <el-table-column prop="purpose" label="功效" min-width="150" />
-        </el-table>
         <div v-else class="no-data">暂无成份数据</div>
         <div v-else class="no-data">暂无成份数据</div>
 
 
         <el-divider content-position="left">平台价格</el-divider>
         <el-divider content-position="left">平台价格</el-divider>
@@ -232,7 +233,6 @@
               <span v-else class="no-data">-</span>
               <span v-else class="no-data">-</span>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
         <div v-else class="no-data">暂无平台价格数据</div>
         <div v-else class="no-data">暂无平台价格数据</div>
 
 
         <el-divider content-position="left">本平台关联商品</el-divider>
         <el-divider content-position="left">本平台关联商品</el-divider>
@@ -242,6 +242,10 @@
           <p>价格: ¥{{ (detailData.localProduct.price / 100).toFixed(2) }}</p>
           <p>价格: ¥{{ (detailData.localProduct.price / 100).toFixed(2) }}</p>
         </div>
         </div>
         <div v-else class="no-data">未关联本平台商品</div>
         <div v-else class="no-data">未关联本平台商品</div>
+      
+      </el-table>
+      
+      </el-table>
       </div>
       </div>
       <div v-else-if="detailLoading" style="text-align: center; padding: 40px;">
       <div v-else-if="detailLoading" style="text-align: center; padding: 40px;">
         <i class="el-icon-loading" style="font-size: 24px;"></i>
         <i class="el-icon-loading" style="font-size: 24px;"></i>

+ 1 - 1
cfc-web/src/views/admin/OrderManage.vue

@@ -91,7 +91,7 @@
           </el-dropdown>
           </el-dropdown>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
 <el-pagination
 <el-pagination

+ 3 - 3
cfc-web/src/views/admin/PendingRefund.vue

@@ -27,8 +27,8 @@
       />
       />
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap">
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+    <div class="adm-table-wrap">
+      <el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -101,7 +101,7 @@
             </el-button>
             </el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <div class="pagination-wrap">
     <div class="pagination-wrap">

+ 3 - 1
cfc-web/src/views/admin/PeriodicServiceConfig.vue

@@ -5,7 +5,8 @@
       <el-button type="primary" icon="el-icon-plus" @click="openDialog()">新增配置</el-button>
       <el-button type="primary" icon="el-icon-plus" @click="openDialog()">新增配置</el-button>
     </div>
     </div>
 
 
-    <el-table :data="list" v-loading="loading" border stripe style="width: 100%">
+        <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe style="width: 100%" height="100%">
       <el-table-column prop="id" label="ID" width="60">
       <el-table-column prop="id" label="ID" width="60">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -52,6 +53,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="500px" @closed="resetForm">
     <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="500px" @closed="resetForm">
       <el-form :model="form" label-width="120px" size="small">
       <el-form :model="form" label-width="120px" size="small">

+ 3 - 1
cfc-web/src/views/admin/PlanManagement.vue

@@ -16,7 +16,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-table :data="plans" border stripe style="width:100%" :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="plans" border stripe style="width:100%" height="100%">
       <el-table-column prop="id" label="方案ID" width="80">
       <el-table-column prop="id" label="方案ID" width="80">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">方案ID{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">方案ID{{ sortIcon('id') }}</span>
@@ -66,6 +67,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-dialog title="方案详情" :visible.sync="detailVisible" width="600px">
     <el-dialog title="方案详情" :visible.sync="detailVisible" width="600px">
       <el-form label-width="100px" v-if="currentPlan">
       <el-form label-width="100px" v-if="currentPlan">

+ 3 - 3
cfc-web/src/views/admin/PointsLog.vue

@@ -20,8 +20,8 @@
           <el-input v-model="filter.childKeyword" placeholder="搜索孩子 ID..." prefix-icon="el-icon-search" size="mini" clearable @keyup.enter.native="handleSearch" @clear="handleSearch" />
           <el-input v-model="filter.childKeyword" placeholder="搜索孩子 ID..." prefix-icon="el-icon-search" size="mini" clearable @keyup.enter.native="handleSearch" @clear="handleSearch" />
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap-sm">
-      <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+      <el-table height="100%" :data="list" v-loading="loading" border stripe>
         <el-table-column prop="createdAt" label="时间" width="160">
         <el-table-column prop="createdAt" label="时间" width="160">
           <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
           <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
           <template slot="header">
           <template slot="header">
@@ -79,7 +79,7 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <el-pagination
     <el-pagination

+ 3 - 1
cfc-web/src/views/admin/ProblemDomainManage.vue

@@ -6,7 +6,8 @@
         <el-button type="primary" size="mini" icon="el-icon-plus" @click="openCreate">新增问题域</el-button>
         <el-button type="primary" size="mini" icon="el-icon-plus" @click="openCreate">新增问题域</el-button>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -60,6 +61,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :title="form.id ? '编辑问题域' : '新增问题域'" :visible.sync="dialogVisible" width="700px" top="5vh">
     <el-dialog :title="form.id ? '编辑问题域' : '新增问题域'" :visible.sync="dialogVisible" width="700px" top="5vh">

+ 7 - 3
cfc-web/src/views/admin/ProductManage.vue

@@ -81,7 +81,8 @@
 
 
       <!-- 表格区:数值右对齐等宽、状态标准化标签、操作列降为文本按钮 -->
       <!-- 表格区:数值右对齐等宽、状态标准化标签、操作列降为文本按钮 -->
       <div class="pm-table-wrap">
       <div class="pm-table-wrap">
-        <el-table
+                <div class="adm-table-wrap">
+<el-table
           ref="table"
           ref="table"
           height="100%"
           height="100%"
           :data="list"
           :data="list"
@@ -210,6 +211,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
       </div>
       </div>
 
 
       <!-- 分页:右侧对齐,总数前置 -->
       <!-- 分页:右侧对齐,总数前置 -->
@@ -274,7 +276,8 @@
             <el-table-column prop="specs" label="规格" min-width="180" show-overflow-tooltip />
             <el-table-column prop="specs" label="规格" min-width="180" show-overflow-tooltip />
             <el-table-column prop="stock" label="库存" width="88" align="right" class-name="pm-num" />
             <el-table-column prop="stock" label="库存" width="88" align="right" class-name="pm-num" />
             <el-table-column prop="minStockAlert" label="预警下限" width="96" align="right" class-name="pm-num" />
             <el-table-column prop="minStockAlert" label="预警下限" width="96" align="right" class-name="pm-num" />
-          </el-table>
+        
+        </el-table>
         </div>
         </div>
 
 
         <div class="pm-section">
         <div class="pm-section">
@@ -300,7 +303,8 @@
             <el-table-column label="时间" width="160">
             <el-table-column label="时间" width="160">
               <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
               <template slot-scope="{ row }">{{ formatTime(row.createdAt) }}</template>
             </el-table-column>
             </el-table-column>
-          </el-table>
+        
+        </el-table>
         </div>
         </div>
       </div>
       </div>
       <span slot="footer">
       <span slot="footer">

+ 3 - 1
cfc-web/src/views/admin/ProductPpointManage.vue

@@ -18,7 +18,8 @@
         </el-tag>
         </el-tag>
       </div>
       </div>
     </div>
     </div>
-    <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe>
       <el-table-column prop="id" label="ID" width="70" />
       <el-table-column prop="id" label="ID" width="70" />
       <el-table-column label="商品图片" width="70">
       <el-table-column label="商品图片" width="70">
         <template slot-scope="{ row }">
         <template slot-scope="{ row }">
@@ -87,6 +88,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"

+ 3 - 1
cfc-web/src/views/admin/ProductProfitRate.vue

@@ -13,7 +13,8 @@
         <el-button type="primary" @click="loadList">查询</el-button>
         <el-button type="primary" @click="loadList">查询</el-button>
       </div>
       </div>
       </div>
       </div>
-    <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+        <div class="adm-table-wrap">
+<el-table height="100%" :data="list" v-loading="loading" border stripe>
       <el-table-column prop="id" label="ID" width="70">
       <el-table-column prop="id" label="ID" width="70">
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
           <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -75,6 +76,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"

+ 3 - 1
cfc-web/src/views/admin/ProfileManagement.vue

@@ -12,7 +12,8 @@
         <el-button size="mini" @click="resetSearch">重置</el-button>
         <el-button size="mini" @click="resetSearch">重置</el-button>
       </div>
       </div>
 
 
-      <el-table :data="list" v-loading="loading" border stripe style="min-width:800px;">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe style="min-width:800px;" height="100%">
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="name" label="姓名" width="100" />
         <el-table-column prop="name" label="姓名" width="100" />
         <el-table-column prop="age" label="年龄" width="70" />
         <el-table-column prop="age" label="年龄" width="70" />
@@ -46,6 +47,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         style="margin-top:16px;text-align:right;"
         style="margin-top:16px;text-align:right;"

+ 8 - 4
cfc-web/src/views/admin/PromotionManagement.vue

@@ -6,7 +6,8 @@
           <div style="margin-bottom: 16px">
           <div style="margin-bottom: 16px">
             <el-input v-model="milestoneKeyword" placeholder="搜索里程碑..." prefix-icon="el-icon-search" style="width:200px" clearable @keyup.enter.native="handleMilestoneSearch" @clear="handleMilestoneSearch" />
             <el-input v-model="milestoneKeyword" placeholder="搜索里程碑..." prefix-icon="el-icon-search" style="width:200px" clearable @keyup.enter.native="handleMilestoneSearch" @clear="handleMilestoneSearch" />
     </div>
     </div>
-    <el-table :data="filteredMilestones" v-loading="milestoneLoading" border stripe :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="filteredMilestones" v-loading="milestoneLoading" border stripe height="100%">
             <el-table-column prop="milestone" label="里程碑" min-width="180" show-overflow-tooltip>
             <el-table-column prop="milestone" label="里程碑" min-width="180" show-overflow-tooltip>
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('milestone', $event)">里程碑<span v-if="sortIndex('milestone') !== null" class="sort-index" :class="sortClass('milestone') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('milestone') }}</span>{{ sortIcon('milestone') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('milestone', $event)">里程碑<span v-if="sortIndex('milestone') !== null" class="sort-index" :class="sortClass('milestone') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('milestone') }}</span>{{ sortIcon('milestone') }}</span>
@@ -30,6 +31,7 @@
               </template>
               </template>
             </el-table-column>
             </el-table-column>
     </el-table>
     </el-table>
+    </div>
     </el-tab-pane>
     </el-tab-pane>
         <el-tab-pane label="排行榜" name="leaderboard">
         <el-tab-pane label="排行榜" name="leaderboard">
           <div style="margin-bottom: 16px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap">
           <div style="margin-bottom: 16px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap">
@@ -51,7 +53,8 @@
             <el-button type="primary" @click="handleSearch">搜索</el-button>
             <el-button type="primary" @click="handleSearch">搜索</el-button>
             <el-button @click="resetLeaderboard">重置</el-button>
             <el-button @click="resetLeaderboard">重置</el-button>
     </div>
     </div>
-    <el-table :data="leaderboardList" v-loading="leaderboardLoading" border stripe :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="leaderboardList" v-loading="leaderboardLoading" border stripe height="100%">
             <el-table-column label="排名" width="80" type="index" :index="leaderboardIndex" />
             <el-table-column label="排名" width="80" type="index" :index="leaderboardIndex" />
             <el-table-column label="头像" width="80">
             <el-table-column label="头像" width="80">
               <template slot-scope="{ row }">
               <template slot-scope="{ row }">
@@ -68,7 +71,6 @@
                 <span class="sort-header" @click.stop="onSortClick('referralCount', $event)">邀请数<span v-if="sortIndex('referralCount') !== null" class="sort-index" :class="sortClass('referralCount') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('referralCount') }}</span>{{ sortIcon('referralCount') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('referralCount', $event)">邀请数<span v-if="sortIndex('referralCount') !== null" class="sort-index" :class="sortClass('referralCount') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('referralCount') }}</span>{{ sortIcon('referralCount') }}</span>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-    </el-table>
     <el-pagination
     <el-pagination
             v-if="leaderboardTotal > leaderboardSize"
             v-if="leaderboardTotal > leaderboardSize"
             @current-change="onLeaderboardPageChange"
             @current-change="onLeaderboardPageChange"
@@ -99,8 +101,10 @@
         <el-button type="primary" @click="handleMilestoneSubmit" :loading="milestoneSubmitting">保存</el-button>
         <el-button type="primary" @click="handleMilestoneSubmit" :loading="milestoneSubmitting">保存</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 3 - 1
cfc-web/src/views/admin/PurchaseManagement.vue

@@ -52,7 +52,8 @@
       </el-form>
       </el-form>
 
 
       <!-- 列表 -->
       <!-- 列表 -->
-      <el-table :data="list" v-loading="loading" border stripe style="width: 100%;">
+            <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe style="width: 100%;" height="100%">
         <el-table-column prop="orderNo" label="订单号" width="180">
         <el-table-column prop="orderNo" label="订单号" width="180">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('orderNo', $event)">订单号<span v-if="sortIndex('orderNo') !== null" class="sort-index" :class="sortClass('orderNo') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('orderNo') }}</span>{{ sortIcon('orderNo') }}</span>
             <span class="sort-header" @click.stop="onSortClick('orderNo', $event)">订单号<span v-if="sortIndex('orderNo') !== null" class="sort-index" :class="sortClass('orderNo') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('orderNo') }}</span>{{ sortIcon('orderNo') }}</span>
@@ -114,6 +115,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <!-- 分页 -->
       <!-- 分页 -->
       <el-pagination
       <el-pagination

+ 5 - 4
cfc-web/src/views/admin/Recipes.vue

@@ -31,8 +31,8 @@
           <el-button type="primary" size="mini" @click="openCreate">新建食谱</el-button>
           <el-button type="primary" size="mini" @click="openCreate">新建食谱</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap-sm">
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+      <el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="80" />
         <el-table-column prop="id" label="ID" width="80" />
         <el-table-column prop="name" label="名称">
         <el-table-column prop="name" label="名称">
           <template slot="header">
           <template slot="header">
@@ -69,7 +69,6 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
 
 
-    </el-table></div>
     </el-card>
     </el-card>
     <el-dialog :title="editId ? '编辑食谱' : '新建食谱'" :visible.sync="dialogVisible" width="700px">
     <el-dialog :title="editId ? '编辑食谱' : '新建食谱'" :visible.sync="dialogVisible" width="700px">
       <el-form label-width="120px">
       <el-form label-width="120px">
@@ -120,8 +119,10 @@
         <el-button type="primary" :loading="submitting" @click="saveItem">保存</el-button>
         <el-button type="primary" :loading="submitting" @click="saveItem">保存</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 3 - 3
cfc-web/src/views/admin/RecommendationRules.vue

@@ -8,8 +8,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <div class="table-scroll-wrap">
-        <el-table :data="list" v-loading="loading" border stripe>
+      <div class="adm-table-wrap">
+        <el-table :data="list" v-loading="loading" border stripe height="100%">
           <el-table-column prop="ruleName" label="规则名称" min-width="140" show-overflow-tooltip />
           <el-table-column prop="ruleName" label="规则名称" min-width="140" show-overflow-tooltip />
           <el-table-column label="类型" width="100">
           <el-table-column label="类型" width="100">
             <template slot-scope="{ row }">
             <template slot-scope="{ row }">
@@ -82,7 +82,7 @@
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
               <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+      </el-table>
       </div>
       </div>
 
 
       <el-pagination
       <el-pagination

+ 3 - 1
cfc-web/src/views/admin/ReportAutoLearn.vue

@@ -10,7 +10,8 @@
 
 
       <el-alert title='自学习机制:当同一类型的未知报告积累到3份后,系统自动标记为"可生成"状态,管理员可在此生成报告类型和指纹规则。' type='info' :closable='false' show-icon style='margin-bottom: 16px;' />
       <el-alert title='自学习机制:当同一类型的未知报告积累到3份后,系统自动标记为"可生成"状态,管理员可在此生成报告类型和指纹规则。' type='info' :closable='false' show-icon style='margin-bottom: 16px;' />
 
 
-      <el-table :data="clusters" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="clusters" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -51,6 +52,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="detailVisible" title="聚类详情" width="750px">
     <el-dialog :visible.sync="detailVisible" title="聚类详情" width="750px">

+ 8 - 4
cfc-web/src/views/admin/ReportCollectorTrainer.vue

@@ -13,7 +13,8 @@
               <el-option label="已生成" value="generated" />
               <el-option label="已生成" value="generated" />
             </el-select>
             </el-select>
           </div>
           </div>
-          <el-table :data="clusters" v-loading="loading" border stripe :max-height="tableHeight" @row-click="selectCluster">
+                    <div class="adm-table-wrap">
+<el-table :data="clusters" v-loading="loading" border stripe height="100%" @row-click="selectCluster">
             <el-table-column prop="id" label="ID" width="50">
             <el-table-column prop="id" label="ID" width="50">
               <template slot="header">
               <template slot="header">
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
                 <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -40,6 +41,7 @@
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </el-table>
           </el-table>
+          </div>
         </el-card>
         </el-card>
       </el-col>
       </el-col>
 
 
@@ -51,7 +53,8 @@
             <el-tag :type="clusterStatusType(currentCluster.status)" size="small" style="margin-left:8px">{{ clusterStatusText(currentCluster.status) }}</el-tag>
             <el-tag :type="clusterStatusType(currentCluster.status)" size="small" style="margin-left:8px">{{ clusterStatusText(currentCluster.status) }}</el-tag>
           </div>
           </div>
 
 
-          <el-table :data="uploads" v-loading="uploadLoading" border stripe :max-height="300" @row-click="selectUpload">
+                    <div class="adm-table-wrap">
+<el-table :data="uploads" v-loading="uploadLoading" border stripe height="100%" @row-click="selectUpload">
             <el-table-column prop="id" label="ID" width="50" />
             <el-table-column prop="id" label="ID" width="50" />
             <el-table-column label="文件" min-width="200">
             <el-table-column label="文件" min-width="200">
               <template slot-scope="{ row }">
               <template slot-scope="{ row }">
@@ -67,7 +70,6 @@
                 <el-tag v-else size="small" type="info">未标注</el-tag>
                 <el-tag v-else size="small" type="info">未标注</el-tag>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-          </el-table>
         </el-card>
         </el-card>
         <el-card v-else>
         <el-card v-else>
           <div style="text-align:center;padding:80px;color:#bbb">
           <div style="text-align:center;padding:80px;color:#bbb">
@@ -125,8 +127,10 @@
         <el-button type="primary" :loading="savingAnnotation" @click="saveAnnotation">保存标注</el-button>
         <el-button type="primary" :loading="savingAnnotation" @click="saveAnnotation">保存标注</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import { getUnknownClusters, getClusterUploads, generateTypeFromCluster } from '@/api/reportParser'
 import { getUnknownClusters, getClusterUploads, generateTypeFromCluster } from '@/api/reportParser'

+ 3 - 1
cfc-web/src/views/admin/ReportManagement.vue

@@ -23,7 +23,8 @@
         <el-button @click="doSync">同步数据</el-button>
         <el-button @click="doSync">同步数据</el-button>
       </div>
       </div>
 
 
-      <el-table :data="tableData" border stripe v-loading="loading" style="margin-top:16px">
+            <div class="adm-table-wrap">
+<el-table :data="tableData" border stripe v-loading="loading" style="margin-top:16px" height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -74,6 +75,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         @size-change="handleSizeChange"
         @size-change="handleSizeChange"

+ 5 - 2
cfc-web/src/views/admin/ReportParserImport.vue

@@ -8,7 +8,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="imports" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="imports" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -44,6 +45,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 上传导入包对话框 -->
     <!-- 上传导入包对话框 -->
@@ -83,9 +85,10 @@
               <el-tag :type="row.isExclusion ? 'danger' : 'success'" size="mini">{{ row.isExclusion ? '排除' : '正向' }}</el-tag>
               <el-tag :type="row.isExclusion ? 'danger' : 'success'" size="mini">{{ row.isExclusion ? '排除' : '正向' }}</el-tag>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
         <h4>解析脚本</h4>
         <h4>解析脚本</h4>
         <pre class="script-preview">{{ previewData.parserScript }}</pre>
         <pre class="script-preview">{{ previewData.parserScript }}</pre>
+      
+      </el-table>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
   </div>
   </div>

+ 3 - 1
cfc-web/src/views/admin/ReportTemplateManage.vue

@@ -6,7 +6,8 @@
         <span>报告模板管理</span>
         <span>报告模板管理</span>
         <el-button size="small" type="primary" @click="openEditor(null)">+ 新增模板</el-button>
         <el-button size="small" type="primary" @click="openEditor(null)">+ 新增模板</el-button>
       </div>
       </div>
-      <el-table :data="templates" v-loading="loading" border stripe :max-height="tableHeight">
+            <div class="adm-table-wrap">
+<el-table :data="templates" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -40,6 +41,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- Tab 2: 模板编辑器 -->
     <!-- Tab 2: 模板编辑器 -->

+ 5 - 2
cfc-web/src/views/admin/ReportTypeManagement.vue

@@ -9,7 +9,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="filteredTypes" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="filteredTypes" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -78,6 +79,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 编辑/新增对话框 -->
     <!-- 编辑/新增对话框 -->
@@ -131,7 +133,6 @@
             <el-button size="mini" type="danger" @click="handleDeleteFp(row)">删除</el-button>
             <el-button size="mini" type="danger" @click="handleDeleteFp(row)">删除</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
 
 
       <el-dialog :visible.sync="fpFormVisible" title="新增指纹规则" width="450px" :append-to-body="true">
       <el-dialog :visible.sync="fpFormVisible" title="新增指纹规则" width="450px" :append-to-body="true">
         <el-form :model="fpForm" label-width="80px" size="small">
         <el-form :model="fpForm" label-width="80px" size="small">
@@ -155,6 +156,8 @@
         </div>
         </div>
       </el-dialog>
       </el-dialog>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 5 - 2
cfc-web/src/views/admin/ReportUnknownCluster.vue

@@ -13,7 +13,8 @@
         </div>
         </div>
       </div>
       </div>
 
 
-      <el-table :data="clusters" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="clusters" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="60">
         <el-table-column prop="id" label="ID" width="60">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -51,6 +52,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <!-- 详情对话框 -->
     <!-- 详情对话框 -->
@@ -74,9 +76,10 @@
           <el-table-column prop="id" label="ID" width="60" />
           <el-table-column prop="id" label="ID" width="60" />
           <el-table-column prop="fileUrl" label="文件" min-width="200" />
           <el-table-column prop="fileUrl" label="文件" min-width="200" />
           <el-table-column prop="uploadedAt" label="上传时间" width="180" />
           <el-table-column prop="uploadedAt" label="上传时间" width="180" />
-        </el-table>
       </template>
       </template>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 5 - 4
cfc-web/src/views/admin/SeasonalFoods.vue

@@ -16,8 +16,8 @@
           <el-button type="primary" size="mini" @click="openCreate">新增应季映射</el-button>
           <el-button type="primary" size="mini" @click="openCreate">新增应季映射</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap">
-      <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+      <el-table :data="list" v-loading="loading" border stripe height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID{{ sortIcon('id') }}</span>
@@ -50,7 +50,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table></div>
     </el-card>
     </el-card>
 
 
     <el-dialog title="新增应季映射" :visible.sync="dialogVisible" width="400px">
     <el-dialog title="新增应季映射" :visible.sync="dialogVisible" width="400px">
@@ -76,8 +75,10 @@
         <el-button type="primary" :loading="submitting" @click="saveItem">保存</el-button>
         <el-button type="primary" :loading="submitting" @click="saveItem">保存</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 3 - 3
cfc-web/src/views/admin/SubscriptionManagement.vue

@@ -19,8 +19,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap">
-      <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+    <div class="adm-table-wrap">
+      <el-table height="100%" :data="list" v-loading="loading" border stripe>
         <el-table-column prop="id" label="ID" width="70">
         <el-table-column prop="id" label="ID" width="70">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -82,7 +82,7 @@
             <el-button v-if="row.status === 'cancelled'" size="mini" type="success" @click="handleActivate(row)">重新激活</el-button>
             <el-button v-if="row.status === 'cancelled'" size="mini" type="success" @click="handleActivate(row)">重新激活</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <el-pagination
     <el-pagination

+ 3 - 3
cfc-web/src/views/admin/SupplierProductManage.vue

@@ -24,8 +24,8 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <div class="table-scroll-wrap-sm">
-        <el-table :max-height="tableHeight" :data="list" v-loading="loading" border stripe>
+    <div class="adm-table-wrap">
+        <el-table height="100%" :data="list" v-loading="loading" border stripe>
           <el-table-column prop="id" label="ID" width="70">
           <el-table-column prop="id" label="ID" width="70">
             <template slot="header">
             <template slot="header">
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
               <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -92,7 +92,7 @@
               </el-dropdown>
               </el-dropdown>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-        </el-table>
+    </el-table>
     </div>
     </div>
 
 
     <el-pagination
     <el-pagination

+ 3 - 1
cfc-web/src/views/admin/SurveyTemplates.vue

@@ -7,7 +7,8 @@
         <el-button type="success" size="mini" icon="el-icon-magic-stick" @click="openAiGenerate">AI生成调研</el-button>
         <el-button type="success" size="mini" icon="el-icon-magic-stick" @click="openAiGenerate">AI生成调研</el-button>
       </div>
       </div>
 
 
-      <el-table :data="templates" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table :data="templates" v-loading="loading" border stripe height="100%">
         <el-table-column prop="title" label="标题" min-width="150">
         <el-table-column prop="title" label="标题" min-width="150">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('title', $event)">标题<span v-if="sortIndex('title') !== null" class="sort-index" :class="sortClass('title') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('title') }}</span>{{ sortIcon('title') }}</span>
             <span class="sort-header" @click.stop="onSortClick('title', $event)">标题<span v-if="sortIndex('title') !== null" class="sort-index" :class="sortClass('title') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('title') }}</span>{{ sortIcon('title') }}</span>
@@ -59,6 +60,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog title="新增/编辑调研模板" :visible.sync="editDialogVisible" width="600px">
     <el-dialog title="新增/编辑调研模板" :visible.sync="editDialogVisible" width="600px">

+ 3 - 1
cfc-web/src/views/admin/SysConfig.vue

@@ -7,7 +7,8 @@
         <el-button type="primary" size="small" @click="addConfig" icon="el-icon-plus">新增配置</el-button>
         <el-button type="primary" size="small" @click="addConfig" icon="el-icon-plus">新增配置</el-button>
       </div>
       </div>
     </div>
     </div>
-    <el-table :data="list" v-loading="loading" border stripe :max-height="tableHeight">
+        <div class="adm-table-wrap">
+<el-table :data="list" v-loading="loading" border stripe height="100%">
       <el-table-column prop="configKey" label="配置键" min-width="200" show-overflow-tooltip>
       <el-table-column prop="configKey" label="配置键" min-width="200" show-overflow-tooltip>
         <template slot="header">
         <template slot="header">
           <span class="sort-header" @click.stop="onSortClick('configKey', $event)">配置键<span v-if="sortIndex('configKey') !== null" class="sort-index" :class="sortClass('configKey') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('configKey') }}</span>{{ sortIcon('configKey') }}</span>
           <span class="sort-header" @click.stop="onSortClick('configKey', $event)">配置键<span v-if="sortIndex('configKey') !== null" class="sort-index" :class="sortClass('configKey') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('configKey') }}</span>{{ sortIcon('configKey') }}</span>
@@ -34,6 +35,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
       @size-change="onSizeChange"
       @size-change="onSizeChange"

+ 5 - 2
cfc-web/src/views/admin/SystemPromptManagement.vue

@@ -15,7 +15,8 @@
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
 
 
-      <el-table :data="list" border stripe v-loading="loading" empty-text="暂无数据" style="width:100%">
+            <div class="adm-table-wrap">
+<el-table :data="list" border stripe v-loading="loading" empty-text="暂无数据" style="width:100%" height="100%">
         <el-table-column prop="promptKey" label="提示词键" width="160" />
         <el-table-column prop="promptKey" label="提示词键" width="160" />
         <el-table-column prop="title" label="标题" width="140" />
         <el-table-column prop="title" label="标题" width="140" />
         <el-table-column prop="content" label="内容" min-width="300" show-overflow-tooltip />
         <el-table-column prop="content" label="内容" min-width="300" show-overflow-tooltip />
@@ -42,6 +43,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         style="margin-top: 16px; text-align: right"
         style="margin-top: 16px; text-align: right"
@@ -121,11 +123,12 @@
             <span v-else style="color:#909399; font-size:12px;">当前版本</span>
             <span v-else style="color:#909399; font-size:12px;">当前版本</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table>
       <div slot="footer">
       <div slot="footer">
         <el-button size="small" @click="versionDialog.visible = false">关闭</el-button>
         <el-button size="small" @click="versionDialog.visible = false">关闭</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  
+  </el-table>
   </div>
   </div>
 </template>
 </template>
 
 

+ 8 - 4
cfc-web/src/views/admin/UnifiedHealthReports.vue

@@ -20,7 +20,8 @@
           <el-button type="danger" :disabled="selectedRows.length === 0" @click="handleBatchDelete">批量删除({{ selectedRows.length }})</el-button>
           <el-button type="danger" :disabled="selectedRows.length === 0" @click="handleBatchDelete">批量删除({{ selectedRows.length }})</el-button>
         </div>
         </div>
 
 
-        <el-table :data="reportList" v-loading="listLoading" border stripe :max-height="tableHeight" style="margin-top:16px"
+                <div class="adm-table-wrap">
+<el-table :data="reportList" v-loading="listLoading" border stripe height="100%" style="margin-top:16px"
           ref="listTable"
           ref="listTable"
           @selection-change="handleSelectionChange" @row-click="goEdit">
           @selection-change="handleSelectionChange" @row-click="goEdit">
           <el-table-column type="selection" width="48" :selectable="row => row && row.id ? true : false" />
           <el-table-column type="selection" width="48" :selectable="row => row && row.id ? true : false" />
@@ -85,6 +86,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
         </el-table>
         </el-table>
+        </div>
         <el-pagination v-if="listTotal > listSize" @current-change="onListPageChange" :current-page="listPage" :page-size="listSize" :total="listTotal" layout="total, prev, pager, next" style="margin-top:16px;text-align:right" />
         <el-pagination v-if="listTotal > listSize" @current-change="onListPageChange" :current-page="listPage" :page-size="listSize" :total="listTotal" layout="total, prev, pager, next" style="margin-top:16px;text-align:right" />
       </el-tab-pane>
       </el-tab-pane>
 
 
@@ -151,7 +153,8 @@
           <div slot="header" class="card-header">
           <div slot="header" class="card-header">
             <span class="card-title">📁 代上传历史记录</span>
             <span class="card-title">📁 代上传历史记录</span>
           </div>
           </div>
-          <el-table :data="proxyReportList" border stripe v-loading="proxyListLoading" :max-height="tableHeight">
+                    <div class="adm-table-wrap">
+<el-table :data="proxyReportList" border stripe v-loading="proxyListLoading" height="100%">
             <el-table-column prop="id" label="ID" width="60" />
             <el-table-column prop="id" label="ID" width="60" />
             <el-table-column label="报告对象" width="120">
             <el-table-column label="报告对象" width="120">
               <template slot-scope="{ row }">{{ row.subjectName || row.userName || '-' }}</template>
               <template slot-scope="{ row }">{{ row.subjectName || row.userName || '-' }}</template>
@@ -171,7 +174,6 @@
                 <el-button size="mini" type="text" @click="viewProxyReport(row)">查看</el-button>
                 <el-button size="mini" type="text" @click="viewProxyReport(row)">查看</el-button>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-          </el-table>
           <el-pagination @size-change="onProxySizeChange" @current-change="onProxyPageChange" :current-page="proxyPage" :page-size="proxySize" :total="proxyTotal" layout="total, prev, pager, next" class="pagination-wrap" />
           <el-pagination @size-change="onProxySizeChange" @current-change="onProxyPageChange" :current-page="proxyPage" :page-size="proxySize" :total="proxyTotal" layout="total, prev, pager, next" class="pagination-wrap" />
         </el-card>
         </el-card>
       </el-tab-pane>
       </el-tab-pane>
@@ -194,8 +196,10 @@
       </el-descriptions>
       </el-descriptions>
       <span slot="footer"><el-button @click="detailDialogVisible = false">关闭</el-button></span>
       <span slot="footer"><el-button @click="detailDialogVisible = false">关闭</el-button></span>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import axios from 'axios'
 import axios from 'axios'

+ 3 - 1
cfc-web/src/views/admin/VectorKnowledgeBase.vue

@@ -53,7 +53,8 @@
 
 
     <!-- 文档列表 -->
     <!-- 文档列表 -->
     <el-card class="kb-list">
     <el-card class="kb-list">
-      <el-table :data="documents" v-loading="listLoading" border stripe size="small">
+            <div class="adm-table-wrap">
+<el-table :data="documents" v-loading="listLoading" border stripe size="small" height="100%">
         <el-table-column prop="id" label="ID" width="200" show-overflow-tooltip />
         <el-table-column prop="id" label="ID" width="200" show-overflow-tooltip />
         <el-table-column prop="source" label="来源" width="120">
         <el-table-column prop="source" label="来源" width="120">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
@@ -73,6 +74,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
 
 
       <el-pagination
       <el-pagination
         style="margin-top: 16px; text-align: right"
         style="margin-top: 16px; text-align: right"

+ 3 - 1
cfc-web/src/views/admin/VirtualGoodsConfig.vue

@@ -16,7 +16,8 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 新增道具</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 新增道具</el-button>
         </div>
         </div>
       </div>
       </div>
-      <el-table :max-height="tableHeight" :data="filteredList" v-loading="loading" border stripe>
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="filteredList" v-loading="loading" border stripe>
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column prop="id" label="ID" width="70" />
         <el-table-column label="道具类型" width="120">
         <el-table-column label="道具类型" width="120">
           <template slot-scope="{ row }">
           <template slot-scope="{ row }">
@@ -49,6 +50,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑道具' : '新增道具'" width="480px" :close-on-click-modal="false">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑道具' : '新增道具'" width="480px" :close-on-click-modal="false">

+ 3 - 1
cfc-web/src/views/admin/VirtualTeamDetail.vue

@@ -20,7 +20,8 @@
       <div slot="header">
       <div slot="header">
         <span>成员列表</span>
         <span>成员列表</span>
       </div>
       </div>
-      <el-table :max-height="tableHeight" :data="members" stripe v-loading="membersLoading">
+            <div class="adm-table-wrap">
+<el-table height="100%" :data="members" stripe v-loading="membersLoading">
         <el-table-column prop="id" label="关系ID" width="80"></el-table-column>
         <el-table-column prop="id" label="关系ID" width="80"></el-table-column>
         <el-table-column label="用户昵称" width="140">
         <el-table-column label="用户昵称" width="140">
           <template slot-scope="scope">
           <template slot-scope="scope">
@@ -50,6 +51,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
+      </div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="addDialogVisible" title="添加成员" width="500px" :close-on-click-modal="false">
     <el-dialog :visible.sync="addDialogVisible" title="添加成员" width="500px" :close-on-click-modal="false">

+ 3 - 1
cfc-web/src/views/admin/VirtualTeamList.vue

@@ -20,7 +20,8 @@
         <el-button size="small" type="primary" @click="loadData">查询</el-button>
         <el-button size="small" type="primary" @click="loadData">查询</el-button>
     </div>
     </div>
 
 
-    <el-table :max-height="tableHeight" :data="pagedData" stripe v-loading="loading">
+        <div class="adm-table-wrap">
+<el-table height="100%" :data="pagedData" stripe v-loading="loading">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -79,6 +80,7 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
     </el-table>
     </el-table>
+    </div>
 
 
     <el-pagination
     <el-pagination
         v-if="filteredData.length > pageSize"
         v-if="filteredData.length > pageSize"

+ 5 - 4
cfc-web/src/views/admin/ZodiacConfigs.vue

@@ -8,8 +8,8 @@
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
           <el-button type="primary" size="small" @click="handleCreate">+ 添加配置</el-button>
         </div>
         </div>
       </div>
       </div>
-      <div class="table-scroll-wrap">
-      <el-table :data="filteredData" stripe :max-height="tableHeight">
+      <div class="adm-table-wrap">
+      <el-table :data="filteredData" stripe height="100%">
         <el-table-column prop="id" label="ID" width="80">
         <el-table-column prop="id" label="ID" width="80">
           <template slot="header">
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
             <span class="sort-header" @click.stop="onSortClick('id', $event)">ID<span v-if="sortIndex('id') !== null" class="sort-index" :class="sortClass('id') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('id') }}</span>{{ sortIcon('id') }}</span>
@@ -58,7 +58,6 @@
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-      </el-table></div>
     </el-card>
     </el-card>
 
 
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑星座配置' : '添加星座配置'" width="600px">
     <el-dialog :visible.sync="dialogVisible" :title="isEdit ? '编辑星座配置' : '添加星座配置'" width="600px">
@@ -118,8 +117,10 @@
         <el-button @click="handleClose">关闭</el-button>
         <el-button @click="handleClose">关闭</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+  </el-table>
   </div>
   </div>
-</template>
+
+</div></template>
 
 
 <script>
 <script>
 import SortMixin from '@/mixins/SortMixin'
 import SortMixin from '@/mixins/SortMixin'

+ 2 - 2
cfc-web/src/views/admin/components/ProductPicker.vue

@@ -28,7 +28,6 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column prop="stock" label="库存" width="80" />
       <el-table-column prop="stock" label="库存" width="80" />
-    </el-table>
 
 
     <el-pagination
     <el-pagination
       v-if="total > pageSize"
       v-if="total > pageSize"
@@ -45,7 +44,8 @@
       <el-button type="primary" :disabled="!selectedProduct" @click="confirm">确认选择</el-button>
       <el-button type="primary" :disabled="!selectedProduct" @click="confirm">确认选择</el-button>
     </span>
     </span>
   </el-dialog>
   </el-dialog>
-</template>
+
+</el-table></template>
 
 
 <script>
 <script>
 import { linkedProductList } from '@/api/admin'
 import { linkedProductList } from '@/api/admin'

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor