import { ProList } from "@ant-design/pro-components"; import { EditOutlined, CheckOutlined } from "@ant-design/icons"; import type { IApiResponseDictData, IPreferenceListResponse, IPreferenceRequest, IPreferenceResponse, } from "../../api/Dict"; import { Button, Input, Space, Tag } from "antd"; import { get, put } from "../../request"; import type { IWbw } from "../template/Wbw/WbwWord"; import WbwFactorsEditor from "../template/Wbw/WbwFactorsEditor"; import { useEffect, useState } from "react"; import WbwLookup from "../template/Wbw/WbwLookup"; import Lookup from "./Lookup"; import WbwParentEditor from "../template/Wbw/WbwParentEditor"; import User from "../auth/User"; import DictConfidence from "./DictConfidence"; export const setValue = async (id: string, value: number) => { const url = `/v2/dict-preference/${id}`; const values: IPreferenceRequest = { confidence: value, }; console.debug("api request", url, values); const result = await put( url, values ); return result; }; interface IOkButton { data: IApiResponseDictData; onChange?: (data: IApiResponseDictData) => void; } const OkButton = ({ data, onChange }: IOkButton) => { const [loading, setLoading] = useState(false); return ( ); }; const toWbw = (data: IApiResponseDictData): IWbw => { return { book: 1, para: 1, sn: [1], word: { value: data.word, status: 5 }, real: { value: data.word, status: 5 }, factors: { value: data.factors ?? "", status: 5 }, parent: { value: data.parent ?? "", status: 5 }, confidence: data.confidence ?? 0, }; }; interface IFactorsEditorWidget { data: IApiResponseDictData; } const FactorsEditor = ({ data }: IFactorsEditorWidget) => { const [wbw, setWbw] = useState(toWbw(data)); const [input, setInput] = useState(data.factors); const [type, setType] = useState(false); useEffect(() => setWbw(toWbw(data)), [data]); const upload = async (value: string) => { const url = `/v2/dict-preference/${data.id}`; const values: IPreferenceRequest = { factors: value, confidence: 100, }; console.debug("api request", url, data); const result = await put( url, values ); console.info("api response", result); setWbw(toWbw(result.data)); setInput(result.data.factors); return result; }; return type ? (
) => { setInput(event.target.value); }} />
) : ( => { const result = upload(e ?? ""); return result; }} />