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

View File

@ -2276,8 +2276,8 @@ const MeetingDetail: React.FC = () => {
</div> </div>
<Switch <Switch
checked={sharePasswordEnabled} checked={sharePasswordEnabled}
checkedChildren={'\u5f00\u542f'} checkedChildren={'开启'}
unCheckedChildren={'\u5173\u95ed'} unCheckedChildren={'关闭'}
onChange={handleSharePasswordToggle} onChange={handleSharePasswordToggle}
/> />
</div> </div>
@ -2286,14 +2286,14 @@ const MeetingDetail: React.FC = () => {
<Input <Input
value={sharePasswordDraft} value={sharePasswordDraft}
maxLength={4} maxLength={4}
placeholder={'\u4f8b\u5982 A7K2'} placeholder={'例如 A7K2'}
onChange={(event) => setSharePasswordDraft(normalizeAccessPasswordInput(event.target.value))} onChange={(event) => setSharePasswordDraft(normalizeAccessPasswordInput(event.target.value))}
/> />
<Button onClick={handleRegenerateSharePassword}>{'\u91cd\u7f6e\u9ed8\u8ba4'}</Button> <Button onClick={handleRegenerateSharePassword}>{'重置默认'}</Button>
</div> </div>
) : null} ) : null}
<Button type="primary" loading={shareSaving} onClick={handleSaveShareAccess}> <Button type="primary" loading={shareSaving} onClick={handleSaveShareAccess}>
{'\u4fdd\u5b58\u5bc6\u7801\u8bbe\u7f6e'} {'保存密码设置'}
</Button> </Button>
</div> </div>
) : null} ) : null}
@ -2309,7 +2309,7 @@ const MeetingDetail: React.FC = () => {
/> />
</div> </div>
<div className="meeting-share-caption"> <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>
<div className="meeting-share-link-box"> <div className="meeting-share-link-box">
<LinkOutlined /> <LinkOutlined />
@ -2317,10 +2317,10 @@ const MeetingDetail: React.FC = () => {
</div> </div>
<div className="meeting-share-actions"> <div className="meeting-share-actions">
<Button size="small" icon={<CopyOutlined />} onClick={handleCopyPreviewLink}> <Button size="small" icon={<CopyOutlined />} onClick={handleCopyPreviewLink}>
{'\u590d\u5236\u94fe\u63a5'} {'复制链接'}
</Button> </Button>
<Button size="small" type="primary" ghost onClick={handleOpenPreview}> <Button size="small" type="primary" ghost onClick={handleOpenPreview}>
{'\u6253\u5f00\u9884\u89c8'} {'打开预览'}
</Button> </Button>
</div> </div>
</div> </div>