From 8d4a31e0433ca2f909b9585847793fafcd8f7838 Mon Sep 17 00:00:00 2001 From: chenhao Date: Tue, 16 Jun 2026 16:35:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E4=BC=9A=E8=AE=AE=E6=97=B6=E9=95=BF=E9=85=8D=E7=BD=AE=E5=92=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 `AndroidMeetingController` 和 `AndroidMeetingConfigVo` 中添加最小会议时长配置 - 优化 `ListTable` 组件的滚动样式和逻辑 - 更新 `devices/index.less` 和 `devices/index.tsx`,改进设备列表单元格样式和内容展示 --- .../com/imeeting/common/SysParamKeys.java | 4 +++ .../android/AndroidMeetingController.java | 1 + .../dto/android/AndroidMeetingConfigVo.java | 2 ++ .../components/shared/ListTable/ListTable.css | 28 +++++++++++++++++++ .../components/shared/ListTable/ListTable.tsx | 10 ++++++- frontend/src/pages/devices/index.less | 18 ++++++++++++ frontend/src/pages/devices/index.tsx | 13 ++++++--- 7 files changed, 71 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/com/imeeting/common/SysParamKeys.java b/backend/src/main/java/com/imeeting/common/SysParamKeys.java index 4fb8bf2..6c6cb55 100644 --- a/backend/src/main/java/com/imeeting/common/SysParamKeys.java +++ b/backend/src/main/java/com/imeeting/common/SysParamKeys.java @@ -22,6 +22,10 @@ public final class SysParamKeys { public static final String MEETING_MAX_PAUSE_DURATION = "meeting.max_pause_duration"; /** 单场会议最大时长,单位分钟。 */ public static final String MEETING_MAX_MEETING_DURATION = "meeting.max_meeting_duration"; + /** + * 单场会议最小时长,单位秒。 + */ + public static final String MEETING_MIN_MEETING_DURATION = "meeting.min_meeting_duration"; /** 会议音频传输丢包率配置值。 */ public static final String MEETING_PACKET_LOSS_RATE = "meeting.packet_loss_rate"; /** 安卓端是否启用音频分片上传。 */ diff --git a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java index 6d0d565..0d53836 100644 --- a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java +++ b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java @@ -453,6 +453,7 @@ public class AndroidMeetingController { resultVo.setModelsList(enabledModels); resultVo.setSummaryDegreeOfDetail(dictItemService.getItemsByTypeCode("summary_degree_detail")); resultVo.setMaxMeetingDuration(Integer.valueOf(paramService.getParamValue(SysParamKeys.MEETING_MAX_MEETING_DURATION,"30"))); + resultVo.setMinMeetingDuration(Integer.valueOf(paramService.getParamValue(SysParamKeys.MEETING_MIN_MEETING_DURATION, "10"))); resultVo.setMaxPauseDuration(Integer.valueOf(paramService.getParamValue(SysParamKeys.MEETING_MAX_PAUSE_DURATION,String.valueOf(60*4)))); BigDecimal bigDecimal = new BigDecimal(paramService.getParamValue(SysParamKeys.MEETING_MAX_PAUSE_DURATION, "99")); bigDecimal = bigDecimal.setScale(2, RoundingMode.HALF_UP); diff --git a/backend/src/main/java/com/imeeting/dto/android/AndroidMeetingConfigVo.java b/backend/src/main/java/com/imeeting/dto/android/AndroidMeetingConfigVo.java index c02723e..8c56a45 100644 --- a/backend/src/main/java/com/imeeting/dto/android/AndroidMeetingConfigVo.java +++ b/backend/src/main/java/com/imeeting/dto/android/AndroidMeetingConfigVo.java @@ -35,6 +35,8 @@ public class AndroidMeetingConfigVo { private Integer maxPauseDuration; @io.swagger.v3.oas.annotations.media.Schema(description = "最大会议时长,单位分钟") private Integer maxMeetingDuration; + @io.swagger.v3.oas.annotations.media.Schema(description = "最小会议时长,单位秒") + private Integer minMeetingDuration; @io.swagger.v3.oas.annotations.media.Schema(description = "允许的最大丢包率") private BigDecimal packetLossRate; @io.swagger.v3.oas.annotations.media.Schema(description = "是否启用音频分片上传") diff --git a/frontend/src/components/shared/ListTable/ListTable.css b/frontend/src/components/shared/ListTable/ListTable.css index 295ef03..cbde08f 100644 --- a/frontend/src/components/shared/ListTable/ListTable.css +++ b/frontend/src/components/shared/ListTable/ListTable.css @@ -47,3 +47,31 @@ color: var(--link-color); opacity: 0.8; } + +.list-table-container .list-table-table--y-scroll.ant-table-wrapper, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-spin-nested-loading, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-spin-container, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-container { + height: 100%; + min-height: 0; +} + +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-spin-container, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table, +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-container { + display: flex; + flex-direction: column; +} + +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-content { + flex: none; + min-height: auto; +} + +.list-table-container .list-table-table--y-scroll.ant-table-wrapper .ant-table-body { + flex: 1 1 auto; + min-height: 0; + max-height: var(--list-table-scroll-y) !important; + overflow-y: auto !important; +} diff --git a/frontend/src/components/shared/ListTable/ListTable.tsx b/frontend/src/components/shared/ListTable/ListTable.tsx index 94b2cd7..942c9b1 100644 --- a/frontend/src/components/shared/ListTable/ListTable.tsx +++ b/frontend/src/components/shared/ListTable/ListTable.tsx @@ -45,6 +45,7 @@ function ListTable>({ className = "", onChange, }: ListTableProps) { + const hasVerticalScroll = scroll?.y !== undefined; const rowSelection: TableProps["rowSelection"] = onSelectionChange ? { selectedRowKeys, @@ -101,9 +102,16 @@ function ListTable>({ ), }; + const wrapperStyle = hasVerticalScroll + ? ({ + ["--list-table-scroll-y" as string]: typeof scroll.y === "number" ? `${scroll.y}px` : scroll.y, + } as React.CSSProperties) + : undefined; + return ( -
+
( - +
-
-
{record.deviceName || t("devicesExt.unnamedDevice")}
-
{record.deviceCode}
+
+ + {record.deviceName || t("devicesExt.unnamedDevice")} + + + {record.deviceCode} +
)