فهرست منبع

meaning?: WbwElement<string>;

visuddhinanda 3 سال پیش
والد
کامیت
8304a02d6f

+ 2 - 2
dashboard/src/components/dict/MyCreate.tsx

@@ -60,7 +60,7 @@ const Widget = ({ word }: IWidget) => {
         mData.word = { value: value, status: 5 };
         break;
       case "meaning":
-        mData.meaning = { value: value.split("$"), status: 5 };
+        mData.meaning = { value: value, status: 5 };
         break;
       case "factors":
         mData.factors = { value: value, status: 5 };
@@ -154,7 +154,7 @@ const Widget = ({ word }: IWidget) => {
                 word: editWord.word.value,
                 type: editWord.type?.value,
                 grammar: editWord.grammar?.value,
-                mean: editWord.meaning?.value.join("$"),
+                mean: editWord.meaning?.value,
                 parent: editWord.parent?.value,
                 note: editWord.note?.value,
                 factors: editWord.factors?.value,

+ 1 - 1
dashboard/src/components/template/Wbw/WbwDetail.tsx

@@ -44,7 +44,7 @@ const Widget = ({ data, onClose, onSave, onCommentCountChange }: IWidget) => {
         mData.real = { value: value, status: 7 };
         break;
       case "meaning":
-        mData.meaning = { value: value.split("$"), status: 7 };
+        mData.meaning = { value: value, status: 7 };
         break;
       case "factors":
         mData.factors = { value: value, status: 7 };

+ 5 - 13
dashboard/src/components/template/Wbw/WbwDetailBasic.tsx

@@ -67,13 +67,12 @@ const Widget = ({
 }: IWidget) => {
   const [form] = Form.useForm();
   const intl = useIntl();
-  const [items, setItems] = useState<string[]>([]);
   const inlineDict = useAppSelector(_inlineDict);
   const [factorOptions, setFactorOptions] = useState<ValueType[]>([]);
   const [parentOptions, setParentOptions] = useState<ValueType[]>([]);
   const [factors, setFactors] = useState<string[]>([]);
   const [openCreate, setOpenCreate] = useState(false);
-  const [_meaning, setMeaning] = useState<string[] | undefined>(
+  const [_meaning, setMeaning] = useState<string | undefined>(
     data.meaning?.value
   );
 
@@ -146,11 +145,11 @@ const Widget = ({
         >
           <div style={{ display: "flex" }}>
             <Input
-              value={_meaning?.join(";")}
+              value={_meaning}
               allowClear
               onChange={(e) => {
                 console.log(e.target.value);
-                setMeaning(e.target.value.split(";"));
+                setMeaning(e.target.value);
               }}
             />
             <Popover
@@ -158,16 +157,9 @@ const Widget = ({
                 <WbwMeaningSelect
                   data={data}
                   onSelect={(meaning: string) => {
-                    const currMeanings = _meaning ? _meaning : [];
+                    const currMeanings = _meaning ? _meaning : "";
                     console.log(meaning);
-                    if (!items.includes(meaning)) {
-                      setItems([...items, meaning]);
-                    }
-                    if (!currMeanings.includes(meaning)) {
-                      currMeanings.push(meaning);
-                      console.log("it push", meaning);
-                    }
-                    setMeaning(currMeanings);
+                    setMeaning(meaning);
                     form.setFieldsValue({
                       meaning: currMeanings,
                     });

+ 5 - 2
dashboard/src/components/template/Wbw/WbwMeaning.tsx

@@ -6,6 +6,7 @@ import { PaliReal } from "../../../utils";
 import { IWbw, TWbwDisplayMode } from "./WbwWord";
 import WbwMeaningSelect from "./WbwMeaningSelect";
 import { ArticleMode } from "../../article/Article";
+import CaseFormula from "./CaseFormula";
 
 const { Text } = Typography;
 
@@ -27,8 +28,9 @@ const Widget = ({
   if (
     mode === "wbw" &&
     (typeof data.meaning === "undefined" ||
+      data.meaning.value === null ||
       data.meaning.value.length === 0 ||
-      data.meaning.value[0] === "")
+      data.meaning.value === "")
   ) {
     //空白的意思在逐词解析模式显示占位字符串
     meaning = (
@@ -49,7 +51,7 @@ const Widget = ({
   if (typeof data.real !== "undefined" && PaliReal(data.real.value) !== "") {
     //非标点符号
     return (
-      <div>
+      <div style={{ display: "flex", justifyContent: "space-between" }}>
         <Popover
           open={open}
           onOpenChange={handleOpenChange}
@@ -71,6 +73,7 @@ const Widget = ({
         >
           {meaning}
         </Popover>
+        <CaseFormula data={data} />
       </div>
     );
   } else {

+ 3 - 3
dashboard/src/components/template/Wbw/WbwWord.tsx

@@ -60,7 +60,7 @@ export interface IWbw {
   sn: number[];
   word: WbwElement<string>;
   real?: WbwElement<string>;
-  meaning?: WbwElement<string[]>;
+  meaning?: WbwElement<string>;
   type?: WbwElement<string>;
   grammar?: WbwElement<string>;
   style?: WbwElement<string>;
@@ -172,7 +172,7 @@ const WbwWordWidget = ({
           if (
             intervalRef.current === null &&
             wordData.real &&
-            wordData.real.value.length > 0
+            wordData.real.value?.length > 0
           ) {
             //开始计时,计时结束查字典
             intervalRef.current = window.setInterval(
@@ -216,7 +216,7 @@ const WbwWordWidget = ({
               onChange={(e: string) => {
                 console.log("meaning change", e);
                 const newData: IWbw = JSON.parse(JSON.stringify(wordData));
-                newData.meaning = { value: [e], status: 5 };
+                newData.meaning = { value: e, status: 5 };
                 setWordData(newData);
                 if (typeof onChange !== "undefined") {
                   onChange(newData);