This commit is contained in:
parent
9b44fd9343
commit
f77bd6cc62
|
|
@ -88,6 +88,7 @@ const BlogArticleWrapper = async ({ params }: { params: { slug: string, locale:
|
||||||
{/* <NavBack /> */}
|
{/* <NavBack /> */}
|
||||||
<DetailPageHeader
|
<DetailPageHeader
|
||||||
data={{
|
data={{
|
||||||
|
id: frontmatter.id,
|
||||||
icon: frontmatter.logo_url,
|
icon: frontmatter.logo_url,
|
||||||
name: frontmatter.p_name,
|
name: frontmatter.p_name,
|
||||||
category: frontmatter.tags,
|
category: frontmatter.tags,
|
||||||
|
|
|
||||||
|
|
@ -124,16 +124,39 @@ export function DetailPageHeader({ data }: { data: any }) {
|
||||||
const handleClick = async (source: "icon" | "info") => {
|
const handleClick = async (source: "icon" | "info") => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
setStatusText(source === "icon" ? "正在处理图标操作..." : "正在处理信息操作...");
|
setStatusText(source === "icon" ? "正在处理图标操作..." : "正在处理信息操作...");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fetch("/api/stub", {
|
// 从 localStorage 获取用户信息
|
||||||
|
const userData = JSON.parse(localStorage.getItem("UserData") || "null");
|
||||||
|
|
||||||
|
if (!userData || !userData.user_name) {
|
||||||
|
setStatusText("未登录,正在跳转登录页面...");
|
||||||
|
window.location.href = "/login";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const userName = userData.user_name;
|
||||||
|
|
||||||
|
// 从组件 props 里的 data 中取 id
|
||||||
|
const id = data?.id;
|
||||||
|
if (!id) {
|
||||||
|
setStatusText("数据缺失:找不到组件 ID");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await fetch("/api/v1/deploy/deploy", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({ source })
|
body: JSON.stringify({
|
||||||
|
id,
|
||||||
|
user_name: userName,
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||||
setStatusText(`操作成功:来自${source === "icon" ? "图标" : "信息区域"}`);
|
setStatusText(`操作成功:来自${source === "icon" ? "图标" : "信息区域"}`);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.error("请求出错:", err);
|
||||||
setStatusText("操作失败");
|
setStatusText("操作失败");
|
||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,7 @@ type Frontmatter = {
|
||||||
};
|
};
|
||||||
|
|
||||||
type AIFrontmatter = {
|
type AIFrontmatter = {
|
||||||
|
id:string;
|
||||||
p_name:string;
|
p_name:string;
|
||||||
title: string;
|
title: string;
|
||||||
date: string;
|
date: string;
|
||||||
|
|
@ -281,6 +282,7 @@ export const getPostContent = async (language: string, slug: string): Promise<AI
|
||||||
// Serialize the MDX content and parse the frontmatter
|
// Serialize the MDX content and parse the frontmatter
|
||||||
const serialized = await mdxSerialized({ rawMdx });
|
const serialized = await mdxSerialized({ rawMdx });
|
||||||
const frontmatter = serialized.frontmatter as AIFrontmatter;
|
const frontmatter = serialized.frontmatter as AIFrontmatter;
|
||||||
|
frontmatter.id = data.id
|
||||||
frontmatter.p_name = data.p_name
|
frontmatter.p_name = data.p_name
|
||||||
frontmatter.title = data.main_title
|
frontmatter.title = data.main_title
|
||||||
frontmatter.description = data.sub_title || data.main_title
|
frontmatter.description = data.sub_title || data.main_title
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue