Prechádzať zdrojové kódy

Merge pull request #2180 from visuddhinanda/agile

wbw句子支持删除
visuddhinanda 1 rok pred
rodič
commit
f8b5013325

+ 46 - 1
dashboard/src/components/template/WbwSent.tsx

@@ -4,7 +4,7 @@ import { MoreOutlined, ExclamationCircleOutlined } from "@ant-design/icons";
 
 import { useAppSelector } from "../../hooks";
 import { mode as _mode } from "../../reducers/article-mode";
-import { get, post } from "../../request";
+import { delete_, get, post } from "../../request";
 import { ArticleMode } from "../article/Article";
 import WbwWord, {
   IWbw,
@@ -30,6 +30,7 @@ import TimeShow from "../general/TimeShow";
 import moment from "moment";
 import { courseInfo } from "../../reducers/current-course";
 import { ISentenceWbwListResponse } from "../api/Corpus";
+import { IDeleteResponse } from "../api/Article";
 
 export const getWbwProgress = (data: IWbw[], answer?: IWbw[]) => {
   //计算完成度
@@ -774,6 +775,28 @@ export const WbwSentCtl = ({
     }
   });
 
+  const deleteWbw = () => {
+    const url = `/v2/wbw-sentence/${book}-${para}-${wordStart}-${wordEnd}?channel=${channelId}`;
+    console.info("api request", url);
+    setLoading(true);
+    delete_<IDeleteResponse>(url)
+      .then((json) => {
+        console.debug("api response", json);
+        if (json.ok) {
+          message.success(
+            intl.formatMessage(
+              { id: "message.delete.success" },
+              { count: json.data }
+            )
+          );
+        } else {
+          message.error(json.message);
+        }
+      })
+      .finally(() => setLoading(false))
+      .catch((e) => console.log("Oops errors!", e));
+  };
+
   return (
     <div style={{ width: "100%" }}>
       <div
@@ -828,6 +851,16 @@ export const WbwSentCtl = ({
                 }),
                 danger: true,
               },
+              {
+                type: "divider",
+              },
+              {
+                key: "delete",
+                label: intl.formatMessage({
+                  id: "buttons.delete.wbw.sentence",
+                }),
+                danger: true,
+              },
             ],
             onClick: ({ key }) => {
               console.log(`Click on item ${key}`);
@@ -870,6 +903,18 @@ export const WbwSentCtl = ({
                     },
                   });
                   break;
+                case "delete":
+                  modal.confirm({
+                    title: "清除逐词解析数据",
+                    icon: <ExclamationCircleOutlined />,
+                    content: "删除整句的逐词解析数据,此操作不可恢复",
+                    okText: "确认",
+                    cancelText: "取消",
+                    onOk: () => {
+                      deleteWbw();
+                    },
+                  });
+                  break;
               }
             },
           }}

+ 1 - 0
dashboard/src/locales/en-US/buttons.ts

@@ -93,6 +93,7 @@ const items = {
   "buttons.select.channel": "Select Channel",
   "buttons.set.display.mode": "Display Mode",
   "buttons.manage": "Manage",
+  "buttons.delete.wbw.sentence": "Delete Wbw",
 };
 
 export default items;

+ 1 - 0
dashboard/src/locales/en-US/message.ts

@@ -14,6 +14,7 @@ const items = {
   "message.password.reset": "please set new password",
   "message.get.token.fail": "get token fail",
   "message.confirm-password.validate.fail": "password validate fail",
+  "message.delete.success": "delete record {count}",
 };
 
 export default items;

+ 1 - 0
dashboard/src/locales/zh-Hans/buttons.ts

@@ -93,6 +93,7 @@ const items = {
   "buttons.select.channel": "选择版本风格",
   "buttons.set.display.mode": "显示模式",
   "buttons.manage": "管理",
+  "buttons.delete.wbw.sentence": "删除整句逐词解析",
 };
 
 export default items;

+ 1 - 0
dashboard/src/locales/zh-Hans/message.ts

@@ -14,6 +14,7 @@ const items = {
   "message.password.reset": "请设置新的密码",
   "message.get.token.fail": "获取token失败",
   "message.confirm-password.validate.fail": "两次密码不一致",
+  "message.delete.success": "成功删除{count}条数据",
 };
 
 export default items;