Compare commits
2 Commits
7b4fb72cdc
...
1df9ee3cf2
| Author | SHA1 | Date |
|---|---|---|
|
|
1df9ee3cf2 | |
|
|
eff089c7ad |
|
|
@ -94,7 +94,7 @@ async def create_share_handler(data: dict):
|
|||
|
||||
return {
|
||||
"id": share["id"],
|
||||
"shareUrl": f"/#/share/{share['id']}",
|
||||
"shareUrl": f"/chat-ui/share/{share['id']}",
|
||||
"expiresAt": share["expiresAt"],
|
||||
}
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ async def create_share_handler(data: dict):
|
|||
conv_snapshot = {
|
||||
"id": conv["id"],
|
||||
"title": conv["title"],
|
||||
"messages": conv.get("messages", [])[:100], # 限制消息数量
|
||||
"messages": conv.get("messages", []),
|
||||
"createdAt": conv["createdAt"],
|
||||
"updatedAt": conv["updatedAt"],
|
||||
}
|
||||
|
|
@ -139,7 +139,7 @@ async def create_share_handler(data: dict):
|
|||
# 返回分享信息
|
||||
return {
|
||||
"id": share["id"],
|
||||
"shareUrl": f"/#/share/{share['id']}",
|
||||
"shareUrl": f"/chat-ui/share/{share['id']}",
|
||||
"expiresAt": share["expiresAt"],
|
||||
}
|
||||
|
||||
|
|
@ -227,4 +227,4 @@ async def verify_share_handler(share_id: str, data: dict):
|
|||
"viewCount": view_count,
|
||||
"hasPassword": bool(share["passwordHash"]),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ describe('分享 API 测试', () => {
|
|||
it('应该成功创建分享', async () => {
|
||||
const mockResponse: ShareCreateResponse = {
|
||||
id: 'share-123',
|
||||
shareUrl: 'https://example.com/#/share/share-123',
|
||||
shareUrl: 'https://example.com/chat-ui/share/share-123',
|
||||
expiresAt: Date.now() + 7 * 24 * 60 * 60 * 1000,
|
||||
}
|
||||
|
||||
|
|
@ -147,4 +147,4 @@ describe('分享 API 测试', () => {
|
|||
expect(result.share).toBeUndefined()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@
|
|||
message.role === 'assistant' &&
|
||||
!message.isStreaming &&
|
||||
!message.isError &&
|
||||
!readonly &&
|
||||
!isMessageSelectMode
|
||||
"
|
||||
:content="message.content.text || ''"
|
||||
|
|
@ -223,12 +224,14 @@ const props = withDefaults(
|
|||
isNew?: boolean;
|
||||
isMessageSelectMode?: boolean;
|
||||
isSelected?: boolean;
|
||||
readonly?: boolean;
|
||||
}>(),
|
||||
{
|
||||
showTimestamp: true,
|
||||
compact: false,
|
||||
isMessageSelectMode: false,
|
||||
isSelected: false,
|
||||
readonly: false,
|
||||
},
|
||||
);
|
||||
const { copy } = useClipboard({ legacy: true });
|
||||
|
|
@ -488,7 +491,7 @@ setCustomComponents("playground-demo", {
|
|||
|
||||
// markstream-vue 样式覆盖
|
||||
.text-content {
|
||||
:deep(p) {
|
||||
:deep(p) {
|
||||
margin: 0 0 12px;
|
||||
|
||||
&:last-child {
|
||||
|
|
@ -664,15 +667,16 @@ setCustomComponents("playground-demo", {
|
|||
}
|
||||
}
|
||||
|
||||
.images-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
||||
gap: 8px;
|
||||
.images-flex {
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 7px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.image-item {
|
||||
position: relative;
|
||||
width: 130px;
|
||||
aspect-ratio: 1;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -191,8 +191,8 @@ async function handleCreateShare() {
|
|||
// 关闭当前模态框,打开结果模态框
|
||||
handleClose()
|
||||
|
||||
// 前端生成分享 URL
|
||||
const shareUrl = `${window.location.origin}/chat-ui/share/${result.id}`
|
||||
// 优先使用后端返回的路径,避免前后端各自拼接导致不一致
|
||||
const shareUrl = new URL(result.shareUrl, window.location.origin).toString()
|
||||
|
||||
// 存储分享信息并打开结果模态框
|
||||
settingsStore.setShareResult({
|
||||
|
|
@ -576,4 +576,4 @@ watch(show, (newVal: boolean) => {
|
|||
transform: scale(0.95);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router'
|
|||
import HomeView from '@/views/HomeView.vue'
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory('/chat-ui/'),
|
||||
history: createWebHistory('/'),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@
|
|||
:key="message.id"
|
||||
:message="message"
|
||||
:show-timestamp="true"
|
||||
:readonly="true"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
|
|
@ -562,4 +563,4 @@ onMounted(() => {
|
|||
padding: 20px 0;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue