31 lines
880 B
TypeScript
31 lines
880 B
TypeScript
import { Form, Select } from "antd";
|
|
import { FormDatas } from "./interface";
|
|
import { useEffect, useState } from "react";
|
|
import { base } from "@/service/base";
|
|
const { Option } = Select;
|
|
export const FormSelect = (v: FormDatas) => {
|
|
const [list, setList] = useState<any>([]);
|
|
useEffect(() => {
|
|
if (v.selectList && v.selectList.length > 0) {
|
|
setList(v.selectList);
|
|
} else {
|
|
base.get(`${v.selectUrl}/?size=50&offset=1`, "").then((res) => {
|
|
setList(res.data.record ?? []);
|
|
});
|
|
}
|
|
}, [v.selectUrl, v.selectList]);
|
|
return (
|
|
<Form.Item key={v.label} label={v.label} name={v.name} rules={v.rules}>
|
|
<Select placeholder="">
|
|
{list?.map((v: any) => {
|
|
return (
|
|
<Option key={v.id} value={v.id}>
|
|
{v.name}
|
|
</Option>
|
|
);
|
|
})}
|
|
</Select>
|
|
</Form.Item>
|
|
);
|
|
};
|