visuddhinanda 3 лет назад
Родитель
Сommit
830dcbddc1

+ 78 - 0
dashboard/src/components/studio/dict/DictEdit.tsx

@@ -0,0 +1,78 @@
+import { ProForm } from "@ant-design/pro-components";
+
+import { useIntl } from "react-intl";
+import { message } from "antd";
+
+import DictEditInner from "./DictEditInner";
+import { IDictFormData } from "./DictCreate";
+import { IApiResponseDict, IDictlDataRequest } from "../../api/Dict";
+import { get, put } from "../../../request";
+import { useEffect } from "react";
+
+type IWidgetDictEdit = {
+	wordId: number;
+};
+const Widget = (prop: IWidgetDictEdit) => {
+	const intl = useIntl();
+	useEffect(() => {});
+
+	return (
+		<>
+			<ProForm<IDictFormData>
+				onFinish={async (values: IDictFormData) => {
+					// TODO
+					console.log(values);
+					const request: IDictlDataRequest = {
+						id: values.id,
+						word: values.word,
+						type: values.type,
+						grammar: values.grammar,
+						mean: values.meaning,
+						parent: values.parent,
+						note: values.note,
+						factors: values.factors,
+						factormean: values.factormeaning,
+						language: values.lang,
+						confidence: values.confidence,
+					};
+					const res = await put<IDictlDataRequest, IApiResponseDict>(
+						`/v2/userdict/${prop.wordId}`,
+						request
+					);
+					console.log(res);
+					if (res.ok) {
+						message.success(
+							intl.formatMessage({ id: "flashes.success" })
+						);
+					} else {
+						message.success(res.message);
+					}
+				}}
+				formKey="dict_edit"
+				request={async () => {
+					const res: IApiResponseDict = await get(
+						`/v2/userdict/${prop.wordId}`
+					);
+					return {
+						id: res.data.id,
+						wordId: res.data.id,
+						word: res.data.word,
+						type: res.data.type,
+						grammar: res.data.grammar,
+						parent: res.data.parent,
+						meaning: res.data.mean,
+						note: res.data.note,
+						factors: res.data.factors,
+						factormeaning: res.data.factormean,
+						lang: res.data.language,
+						confidence: res.data.confidence,
+					};
+				}}
+			>
+				<DictEditInner />
+			</ProForm>
+		</>
+	);
+};
+
+export default Widget;

+ 17 - 3
dashboard/src/components/studio/dict/DictEditInner.tsx

@@ -4,13 +4,11 @@ import {
 	ProFormText,
 	ProFormTextArea,
 } from "@ant-design/pro-components";
-import { Layout } from "antd";
+
 import { useIntl } from "react-intl";
-import { message } from "antd";
 
 import LangSelect from "../LangSelect";
 import SelectCase from "../SelectCase";
-import Confidene from "../Confidence";
 import Confidence from "../Confidence";
 
 type IWidgetDictCreate = {
@@ -50,6 +48,22 @@ const Widget = (prop: IWidgetDictCreate) => {
 				<div>语法信息</div>
 				<SelectCase />
 			</ProForm.Group>
+			<ProForm.Group>
+				<ProFormText
+					width="md"
+					name="type"
+					label={intl.formatMessage({
+						id: "dict.fields.type.label",
+					})}
+				/>
+				<ProFormText
+					width="md"
+					name="grammar"
+					label={intl.formatMessage({
+						id: "dict.fields.grammar.label",
+					})}
+				/>
+			</ProForm.Group>
 			<ProForm.Group>
 				<ProFormText
 					width="md"