|
|
@@ -25,6 +25,7 @@ import { TaskBuilderChapterModal } from "../task/TaskBuilderChapter";
|
|
|
import { useAppSelector } from "../../hooks";
|
|
|
import { currentUser } from "../../reducers/current-user";
|
|
|
import { ArticleTplModal } from "../template/Builder/ArticleTpl";
|
|
|
+import { IPayload, ITokenCreate, ITokenCreateResponse } from "../api/token";
|
|
|
|
|
|
interface IWidget {
|
|
|
type?: ArticleType;
|
|
|
@@ -71,6 +72,7 @@ const TypePaliWidget = ({
|
|
|
const [tplOpen, setTplOpen] = useState(false);
|
|
|
const user = useAppSelector(currentUser);
|
|
|
const channels = channelId?.split("_");
|
|
|
+ const _id = articleId?.split("-");
|
|
|
|
|
|
const srcDataMode = mode === "edit" || mode === "wbw" ? "edit" : "read";
|
|
|
|
|
|
@@ -236,6 +238,37 @@ const TypePaliWidget = ({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const getAccessToken = async () => {
|
|
|
+ if (!channels || !_id || _id.length < 2) {
|
|
|
+ console.error(
|
|
|
+ "channels or book or para is undefined",
|
|
|
+ channels,
|
|
|
+ book,
|
|
|
+ para
|
|
|
+ );
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ const _book = _id[0];
|
|
|
+ const _para = _id[1];
|
|
|
+ let payload: IPayload[] = [];
|
|
|
+ payload.push({
|
|
|
+ res_id: channels[0],
|
|
|
+ res_type: "channel",
|
|
|
+ book: parseInt(_book),
|
|
|
+ para_start: parseInt(_para),
|
|
|
+ para_end: parseInt(_para) + 100,
|
|
|
+ });
|
|
|
+ const url = "/v2/access-token";
|
|
|
+ const values = { payload: payload };
|
|
|
+ console.info("token api request", url, values);
|
|
|
+ const res = await post<ITokenCreate, ITokenCreateResponse>(url, values);
|
|
|
+ console.info("token api response", res);
|
|
|
+ if (res.ok) {
|
|
|
+ return res.data.rows[0].token;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ };
|
|
|
return (
|
|
|
<div>
|
|
|
{loading ? (
|
|
|
@@ -272,6 +305,10 @@ const TypePaliWidget = ({
|
|
|
key: "task",
|
|
|
label: "生成任务",
|
|
|
},
|
|
|
+ {
|
|
|
+ key: "token",
|
|
|
+ label: "获取访问密钥",
|
|
|
+ },
|
|
|
],
|
|
|
onClick: ({ key }) => {
|
|
|
switch (key) {
|
|
|
@@ -281,6 +318,12 @@ const TypePaliWidget = ({
|
|
|
case "tpl":
|
|
|
setTplOpen(true);
|
|
|
break;
|
|
|
+ case "token":
|
|
|
+ const token = getAccessToken();
|
|
|
+ if (typeof token === "string") {
|
|
|
+ alert(token);
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
},
|
|
|
}}
|