| rsf-admin/src/page/basicInfo/deviceSite/DeviceSiteEdit.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| rsf-admin/src/page/components/WarehouseSelect.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| rsf-admin/src/page/orders/config/orderItemColumns.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
rsf-admin/src/page/basicInfo/deviceSite/DeviceSiteEdit.jsx
@@ -29,6 +29,7 @@ import MemoInput from "../../components/MemoInput"; import StatusSelectInput from "../../components/StatusSelectInput"; import DictionarySelect from "../../components/DictionarySelect"; import WarehouseSelect from "../../components/WarehouseSelect"; const FormToolbar = () => { const { getValues } = useFormContext(); @@ -69,13 +70,13 @@ label={translate("table.field.deviceSite.type")} name="type" validate={[required()]} dictTypeCode="sys_task_type" dictTypeCode="sys_task_type" multiple perPage={REFERENCE_INPUT_PAGESIZE} pagination={true} sort={{ field: 'id', order: 'ASC' }} filter={{ active: true }} /> /> </Stack> <Stack direction='row' gap={2}> <TextInput @@ -128,15 +129,17 @@ /> </Stack> <Stack direction='row' gap={2}> <NumberInput label="table.field.deviceSite.areaIdStart" source="areaIdStart" <WarehouseSelect label={translate("table.field.deviceSite.areaIdStart")} name="areaIdStart" validate={[required()]} /> </Stack> <Stack direction='row' gap={2}> <NumberInput label="table.field.deviceSite.areaIdEnd" source="areaIdEnd" <WarehouseSelect label={translate("table.field.deviceSite.areaIdEnd")} name="areaIdEnd" validate={[required()]} /> </Stack> rsf-admin/src/page/components/WarehouseSelect.jsx
@@ -2,14 +2,29 @@ import { useTranslate, useNotify, required } from 'react-admin'; import { useController } from 'react-hook-form'; import request from '@/utils/request'; import { Select, MenuItem, FormControl, InputLabel } from '@mui/material'; const WarehouseSelect = (props) => { const { dictTypeCode, label, value, onChange, ...params } = props; const { dictTypeCode, label, name, validate, ...params } = props; const translate = useTranslate(); const notify = useNotify(); const [list, setList] = useState([]); // 使用 useController 与 react-hook-form 集成 const { field, fieldState } = useController({ name: name, rules: validate ? { validate: (value) => { for (const rule of validate) { const result = rule(value); if (result) return result; } return true; } } : undefined }); useEffect(() => { http(); @@ -31,19 +46,16 @@ const handleChange = (event) => { const selectedValue = event.target.value; console.log(event); if (onChange) { onChange(event); } field.onChange(selectedValue); }; const validValue = list.some(item => item.id === value) ? value : ''; const validValue = list.some(item => item.id === field.value) ? field.value : ''; return ( <FormControl required fullWidth> <InputLabel id="demo-select-small-label">{label}</InputLabel> <FormControl required fullWidth error={!!fieldState.error}> <InputLabel id={`${name}-label`}>{label}</InputLabel> <Select labelId="demo-select-small-label" labelId={`${name}-label`} value={validValue} variant="filled" onChange={handleChange} rsf-admin/src/page/orders/config/orderItemColumns.jsx
@@ -58,6 +58,7 @@ key={el.fields} source={`extendFields.[${el.fields}]`} label={el.fieldsAlise} sortable={false} /> )); };