2
0
visuddhinanda 1 жил өмнө
parent
commit
def479e351

+ 60 - 30
dashboard-v4/dashboard/src/components/task/TaskBuilderChapter.tsx

@@ -1,4 +1,13 @@
-import { Button, Divider, message, Modal, Steps } from "antd";
+import {
+  Button,
+  Divider,
+  Input,
+  message,
+  Modal,
+  Space,
+  Steps,
+  Typography,
+} from "antd";
 
 
 import { useState } from "react";
 import { useState } from "react";
 import Workflow from "./Workflow";
 import Workflow from "./Workflow";
@@ -20,6 +29,7 @@ import {
   ITokenCreateResponse,
   ITokenCreateResponse,
   ITokenData,
   ITokenData,
 } from "../api/token";
 } from "../api/token";
+const { Text } = Typography;
 
 
 interface IModal {
 interface IModal {
   studioName?: string;
   studioName?: string;
@@ -81,40 +91,59 @@ const TaskBuilderChapter = ({
   const [tokens, setTokens] = useState<ITokenData[]>();
   const [tokens, setTokens] = useState<ITokenData[]>();
   const [messages, setMessages] = useState<string[]>([]);
   const [messages, setMessages] = useState<string[]>([]);
   const [prop, setProp] = useState<IProp[]>();
   const [prop, setProp] = useState<IProp[]>();
+  const [title, setTitle] = useState<string>();
 
 
   const steps = [
   const steps = [
     {
     {
       title: "章节选择",
       title: "章节选择",
       content: (
       content: (
-        <ChapterToc
-          book={book}
-          para={para}
-          onData={(data: IChapterToc[]) => {
-            setChapter(data);
-            //获取channel token
-            let payload: IPayload[] = [];
-            channels?.forEach((channel) => {
-              data.forEach((chapter) => {
-                payload.push({
-                  res_id: channel,
-                  res_type: "channel",
-                  book: chapter.book,
-                  para_start: chapter.paragraph,
-                  para_end: chapter.paragraph + chapter.chapter_len,
+        <div style={{ padding: 8 }}>
+          <Space key={1}>
+            <Text type="secondary">{"任务组标题"}</Text>
+            <Input
+              value={title}
+              onChange={(e) => {
+                setTitle(e.target.value);
+              }}
+            />
+          </Space>
+          <ChapterToc
+            key={2}
+            book={book}
+            para={para}
+            onData={(data: IChapterToc[]) => {
+              setChapter(data);
+              if (data.length > 0) {
+                if (!title && data[0].text) {
+                  setTitle(data[0].text);
+                }
+              }
+              //获取channel token
+              let payload: IPayload[] = [];
+              channels?.forEach((channel) => {
+                data.forEach((chapter) => {
+                  payload.push({
+                    res_id: channel,
+                    res_type: "channel",
+                    book: chapter.book,
+                    para_start: chapter.paragraph,
+                    para_end: chapter.paragraph + chapter.chapter_len,
+                    power: "edit",
+                  });
                 });
                 });
               });
               });
-            });
-            const url = "/v2/access-token";
-            const values = { payload: payload };
-            console.info("api request", url, values);
-            post<ITokenCreate, ITokenCreateResponse>(url, values).then(
-              (json) => {
-                console.info("api response", json);
-                setTokens(json.data.rows);
-              }
-            );
-          }}
-        />
+              const url = "/v2/access-token";
+              const values = { payload: payload };
+              console.info("api request", url, values);
+              post<ITokenCreate, ITokenCreateResponse>(url, values).then(
+                (json) => {
+                  console.info("api response", json);
+                  setTokens(json.data.rows);
+                }
+              );
+            }}
+          />
+        </div>
       ),
       ),
     },
     },
     {
     {
@@ -132,6 +161,7 @@ const TaskBuilderChapter = ({
         <div>
         <div>
           <TaskBuilderProp
           <TaskBuilderProp
             workflow={workflow}
             workflow={workflow}
+            channelsId={channels}
             onChange={(data: IProp[] | undefined) => setProp(data)}
             onChange={(data: IProp[] | undefined) => setProp(data)}
           />
           />
         </div>
         </div>
@@ -194,7 +224,7 @@ const TaskBuilderChapter = ({
                 data: chapter.map((item, id) => {
                 data: chapter.map((item, id) => {
                   return {
                   return {
                     id: item.paragraph.toString(),
                     id: item.paragraph.toString(),
-                    title: item.text ?? "",
+                    title: id === 0 && title ? title : item.text ?? "",
                     type: "instance",
                     type: "instance",
                     parent_id: item.parent.toString(),
                     parent_id: item.parent.toString(),
                     res_id: `${item.book}-${item.paragraph}`,
                     res_id: `${item.book}-${item.paragraph}`,
@@ -239,7 +269,7 @@ const TaskBuilderChapter = ({
                               searchValue,
                               searchValue,
                               replaceValue
                               replaceValue
                             );
                             );
-                          } else if (value.type === "string") {
+                          } else {
                             //替换book
                             //替换book
                             if (project.resId) {
                             if (project.resId) {
                               const [book, paragraph] =
                               const [book, paragraph] =