import NodeTableComponent, { DataTemplateInterface, } from "../NodeTableComponent/NodeTableComponent"; import { invoke } from "@tauri-apps/api/core"; import { Select, Space } from "antd"; import { useEffect, useMemo, useState } from "react"; // 写一个组件,用于展示位枚举值 interface BitEnumComponentProps { value: number; enum: { [key: number]: { enum_name: string; // 枚举值名称 description?: string; // 枚举值描述 }; }; onChange?: (value: any, options: any) => void; } const BitEnumComponent = (props: BitEnumComponentProps) => { const formatOptions = useMemo(() => { const options = Object.entries(props.enum).map(([key, value]) => { return { label: value.enum_name, value: key, title: value.description, }; }); return options; }, [props.enum, props.value]); const formatValue = useMemo(() => { const value = []; for (const key in props.enum) { if (props.value & parseInt(key)) { value.push(key); } } return value; }, [props.value]); const handleChange = (value: number[], options) => { // 如果props.onChange存在,那么调用 props.onChange?.(value, options); // TODO: 做一些自己的事 }; return ( <>