...
|
...
|
@@ -36,9 +36,10 @@ export function PowerPoint() { |
|
|
const { msg, pptMessage } = query.state || {}; //获取路由参数
|
|
|
|
|
|
const localData: LocalData = getLocalData(accessStore.accessCode); //获取限制次数
|
|
|
const localDataRef = useRef(localData);
|
|
|
const getToken = async () => {
|
|
|
if (!accessStore.accessCode) {
|
|
|
return message.error("请先输入登录秘钥");
|
|
|
return navigate(Path.Auth);
|
|
|
}
|
|
|
const res = await fetch("/api/ppt/createApiToken", {
|
|
|
method: "POST",
|
...
|
...
|
@@ -55,7 +56,6 @@ export function PowerPoint() { |
|
|
}
|
|
|
return "";
|
|
|
};
|
|
|
|
|
|
useEffect(() => {
|
|
|
const initializeDocmee = async () => {
|
|
|
let token = localStorage.getItem("token");
|
...
|
...
|
@@ -64,13 +64,15 @@ export function PowerPoint() { |
|
|
token = await getToken();
|
|
|
if (!token) {
|
|
|
message.error("无效token请检查登录密码!");
|
|
|
return navigate(Path.Settings); // 跳转回聊天页
|
|
|
return navigate(Path.Auth);
|
|
|
}
|
|
|
localStorage.setItem("token", token);
|
|
|
}
|
|
|
|
|
|
if (!containerRef.current) {
|
|
|
throw new Error("Container element not found");
|
|
|
}
|
|
|
|
|
|
const docmee = new DocmeeUI({
|
|
|
container: containerRef.current,
|
|
|
page: "creator-v2",
|
...
|
...
|
@@ -83,19 +85,10 @@ export function PowerPoint() { |
|
|
subject: "Ai行业未来10年的发展预测",
|
|
|
},
|
|
|
});
|
|
|
if (msg) {
|
|
|
docmee.on("mounted", (msg: generateOutline) => {
|
|
|
if (localData.pptMaxUses == "0") {
|
|
|
message.error("你的免费次数已用完");
|
|
|
return false;
|
|
|
}
|
|
|
docmee.changeCreatorData({ text: pptMessage }, true);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
docmee.on("beforeGenerate", (msg: generateOutline) => {
|
|
|
//生成大纲事件
|
|
|
console.log(localData.pptMaxUses);
|
|
|
if (localData.pptMaxUses == "0") {
|
|
|
if (localDataRef.current.pptMaxUses == "0") {
|
|
|
message.error("你的免费次数已用完");
|
|
|
return false;
|
|
|
}
|
...
|
...
|
@@ -104,6 +97,16 @@ export function PowerPoint() { |
|
|
});
|
|
|
});
|
|
|
|
|
|
docmee.on("mounted", (str: string) => {
|
|
|
if (msg) {
|
|
|
if (localDataRef.current.pptMaxUses == "0") {
|
|
|
message.error("你的免费次数已用完");
|
|
|
return false;
|
|
|
}
|
|
|
docmee.changeCreatorData({ text: pptMessage }, true);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
docmee.on("charge", (msg: string) => {
|
|
|
//PPT生成后扣费
|
|
|
// 解析 pptMaxUses 为数字
|
...
|
...
|
@@ -121,21 +124,37 @@ export function PowerPoint() { |
|
|
|
|
|
docmee.on("error", async (msg: generateError) => {
|
|
|
//请求错误事件
|
|
|
console.log(msg);
|
|
|
if (msg.data.code == 98) {
|
|
|
// message.error('token失效,请重试')
|
|
|
const token = await getToken();
|
|
|
localStorage.setItem("token", token);
|
|
|
docmee.updateToken(token);
|
|
|
return;
|
|
|
if (msg) {
|
|
|
if (localDataRef.current.pptMaxUses == "0") {
|
|
|
message.error("你的免费次数已用完");
|
|
|
return false;
|
|
|
}
|
|
|
docmee.changeCreatorData({ text: pptMessage }, true);
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
message.error(
|
|
|
msg.data.code == 403 ? "请检查登录密码或网络" : msg.data.message,
|
|
|
);
|
|
|
});
|
|
|
return () => docmee.destroy();
|
|
|
};
|
|
|
initializeDocmee().catch(console.error);
|
|
|
}, [navigate, isMobileScreen, msg, pptMessage]);
|
|
|
initializeDocmee();
|
|
|
}, [
|
|
|
navigate,
|
|
|
isMobileScreen,
|
|
|
pptMessage,
|
|
|
config.theme,
|
|
|
accessStore.accessCode,
|
|
|
]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
localDataRef.current = localData;
|
|
|
}, [localData]);
|
|
|
|
|
|
return (
|
|
|
<>
|
...
|
...
|
|