feat(prompt):返回h5预览地址

dev_na
chenhao 2026-08-04 16:51:27 +08:00
parent 3931143674
commit e3a37757ba
2 changed files with 13 additions and 9 deletions

View File

@ -1,5 +1,6 @@
package com.imeeting.controller.biz;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.imeeting.common.MeetingConstants;
import com.imeeting.common.SysParamKeys;
@ -221,13 +222,16 @@ public class MeetingController {
@Operation(summary = "获取会议分享配置")
@GetMapping("/share-config")
@PreAuthorize("isAuthenticated()")
public ApiResponse<Map<String, String>> getShareConfig() {
public ApiResponse<Map<String, String>> getShareConfig(@RequestParam(name = "meetingId", required = false) Long meetingId) {
String baseUrl = StringUtils.hasText(h5BaseUrl) ? h5BaseUrl.trim() : "";
if (baseUrl.endsWith("/")) {
baseUrl = baseUrl.substring(0, baseUrl.length() - 1);
}
Map<String, String> result = new HashMap<>();
result.put("h5BaseUrl", baseUrl);
if (meetingId != null) {
result.put("h5PreviewUrl", baseUrl + StrUtil.format("/meetings/{}/preview", meetingId));
}
return ApiResponse.ok(result);
}

View File

@ -2276,8 +2276,8 @@ const MeetingDetail: React.FC = () => {
</div>
<Switch
checked={sharePasswordEnabled}
checkedChildren={'\u5f00\u542f'}
unCheckedChildren={'\u5173\u95ed'}
checkedChildren={'开启'}
unCheckedChildren={'关闭'}
onChange={handleSharePasswordToggle}
/>
</div>
@ -2286,14 +2286,14 @@ const MeetingDetail: React.FC = () => {
<Input
value={sharePasswordDraft}
maxLength={4}
placeholder={'\u4f8b\u5982 A7K2'}
placeholder={'例如 A7K2'}
onChange={(event) => setSharePasswordDraft(normalizeAccessPasswordInput(event.target.value))}
/>
<Button onClick={handleRegenerateSharePassword}>{'\u91cd\u7f6e\u9ed8\u8ba4'}</Button>
<Button onClick={handleRegenerateSharePassword}>{'重置默认'}</Button>
</div>
) : null}
<Button type="primary" loading={shareSaving} onClick={handleSaveShareAccess}>
{'\u4fdd\u5b58\u5bc6\u7801\u8bbe\u7f6e'}
{'保存密码设置'}
</Button>
</div>
) : null}
@ -2309,7 +2309,7 @@ const MeetingDetail: React.FC = () => {
/>
</div>
<div className="meeting-share-caption">
{'\u4f7f\u7528\u624b\u673a\u626b\u7801\u540e\u5c06\u8df3\u8f6c\u5230\u4f1a\u8bae\u9884\u89c8\u9875\uff0c\u82e5\u5df2\u5f00\u542f\u5bc6\u7801\u9700\u624b\u52a8\u8f93\u5165\u3002'}
{'使用手机扫码后将跳转到会议预览页,若已开启密码需手动输入。'}
</div>
<div className="meeting-share-link-box">
<LinkOutlined />
@ -2317,10 +2317,10 @@ const MeetingDetail: React.FC = () => {
</div>
<div className="meeting-share-actions">
<Button size="small" icon={<CopyOutlined />} onClick={handleCopyPreviewLink}>
{'\u590d\u5236\u94fe\u63a5'}
{'复制链接'}
</Button>
<Button size="small" type="primary" ghost onClick={handleOpenPreview}>
{'\u6253\u5f00\u9884\u89c8'}
{'打开预览'}
</Button>
</div>
</div>