1
1 天以前 7518f9366927b0458a9b6392e907aaee0efa07a6
lsh#
3个文件已修改
1个文件已添加
96 ■■■■■ 已修改文件
rsf-admin/src/page/basicInfo/deviceSite/DeviceSiteEdit.jsx 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/components/BasStationSelect.jsx 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/deviceSite/DeviceSiteEdit.jsx
@@ -30,6 +30,8 @@
import StatusSelectInput from "../../components/StatusSelectInput";
import DictionarySelect from "../../components/DictionarySelect";
import WarehouseSelect from "../../components/WarehouseSelect";
import BasStationSelect from "../../components/BasStationSelect";
import BasStation from "@/page/basicInfo/basStation/index.jsx";
const FormToolbar = () => {
    const { getValues } = useFormContext();
@@ -115,10 +117,10 @@
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.deviceSite.deviceCode"
                                source="deviceCode"
                                parse={v => v}
                            <BasStationSelect
                                label={translate("table.field.deviceSite.deviceCode")}
                                name="deviceCode"
                                validate={[required()]}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
rsf-admin/src/page/components/BasStationSelect.jsx
New file
@@ -0,0 +1,76 @@
import { useState, useEffect } from 'react';
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 BasStationSelect = (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();
    }, [dictTypeCode]);
    const http = async () => {
        const res = await request.post('/basStation/page/v1', { current: 1, pageSize: 100 });
        if (res?.data?.code === 200) {
            setList(res.data.data.records.map((item) => {
                return {
                    id: item.id.toString(),
                    name: item.stationName
                };
            }));
        } else {
            notify(res.data.msg);
        }
    };
    const handleChange = (event) => {
        const selectedValue = event.target.value;
        field.onChange(selectedValue);
    };
    const validValue = list.some(item => item.id === field.value) ? field.value : '';
    return (
        <FormControl required fullWidth error={!!fieldState.error}>
            <InputLabel id={`${name}-label`}>{label}</InputLabel>
            <Select
                labelId={`${name}-label`}
                value={validValue}
                variant="filled"
                onChange={handleChange}
                size='small'
            >
                {list.map((item) => (
                    <MenuItem
                        key={item.id}
                        value={item.id}>
                        {item.name}
                    </MenuItem>
                ))}
            </Select>
        </FormControl>
    );
};
export default BasStationSelect;
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java
@@ -47,6 +47,14 @@
        return R.ok().add(page);
    }
    @PreAuthorize("hasAuthority('manager:warehouseAreas:list')")
    @PostMapping("/basStation/page/v1")
    public R pagev22(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<BasStation, BaseParam> pageParam = new PageParam<>(baseParam, BasStation.class);
        return R.ok().add(basStationService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('manager:basStation:list')")
    @PostMapping("/basStation/list")
    public R list(@RequestBody Map<String, Object> map) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java
@@ -84,7 +84,7 @@
    /**
     * 设备编号
     */
    @ApiModelProperty(value= "设备编号")
    @ApiModelProperty(value= "接驳位")
    private String deviceCode;
    /**