#
vincentlu
10 天以前 75f3cd29a2006eb70bfc8cb47e3e4d780fc75b0b
#
4个文件已修改
80 ■■■■■ 已修改文件
zy-acs-flow/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/sta/StaCreate.jsx 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/sta/StaPanel.jsx 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/en.js
@@ -281,6 +281,7 @@
                staType: "station type",
                code: "code",
                offset: "offset",
                angle: 'angle',
                autoing: "autoing",
                loading: "loading",
                inEnable: "in enable",
zy-acs-flow/src/i18n/zh.js
@@ -281,6 +281,7 @@
                staType: "站点类型",
                code: "地面码",
                offset: "偏移量",
                angle: '作业角度',
                autoing: "自动",
                loading: "载货",
                inEnable: "可入",
zy-acs-flow/src/page/sta/StaCreate.jsx
@@ -160,6 +160,13 @@
                                        validate={required()}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <NumberInput
                                        label="table.field.sta.angle"
                                        source="angle"
                                        validate={required()}
                                    />
                                </Grid>
                                {/* <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.sta.autoing"
@@ -195,7 +202,7 @@
                                        parse={v => v}
                                    />
                                </Grid> */}
                                <Grid item xs={6} display="flex" gap={1}>
                                {/* <Grid item xs={6} display="flex" gap={1}>
                                    <ReferenceInput
                                        source="staSts"
                                        reference="staSts"
@@ -207,7 +214,7 @@
                                            validate={required()}
                                        />
                                    </ReferenceInput>
                                </Grid>
                                </Grid> */}
                                <Grid item xs={6} display="flex" gap={1}>
                                    <StatusSelectInput />
zy-acs-flow/src/page/sta/StaPanel.jsx
@@ -13,6 +13,10 @@
    Divider,
    CircularProgress,
    Stack,
    FormControl,
    InputLabel,
    Select,
    MenuItem,
} from '@mui/material';
import {
    useTranslate,
@@ -42,12 +46,16 @@
];
const RESERVE_COLUMN_COUNT = 11;
const RESERVE_TYPE_OPTIONS = ['IN', 'OUT'];
const RESERVE_STATE_OPTIONS = ['reserved', 'waiting', 'confirmed', 'canceled', 'timeout'];
const StaPanel = () => {
    const record = useRecordContext();
    const translate = useTranslate();
    const dataProvider = useDataProvider();
    const [reserves, setReserves] = useState([]);
    const [isReservesLoading, setIsReservesLoading] = useState(false);
    const [typeFilter, setTypeFilter] = useState('');
    const [stateFilter, setStateFilter] = useState('');
    const taskIds = useMemo(() => extractIds(reserves, 'taskId'), [reserves]);
    const segmentIds = useMemo(() => extractIds(reserves, 'segmentId'), [reserves]);
    const agvIds = useMemo(() => extractIds(reserves, 'agvId'), [reserves]);
@@ -68,6 +76,19 @@
        () => createLabelMap(agvRecords, (item) => item.uuid),
        [agvRecords]
    );
    const filteredReserves = useMemo(() => {
        if (!typeFilter && !stateFilter) {
            return reserves;
        }
        return reserves.filter((reserve) => {
            const matchesType =
                !typeFilter || normalizeValueKey(reserve?.type) === normalizeValueKey(typeFilter);
            const matchesState =
                !stateFilter || normalizeValueKey(reserve?.state) === normalizeValueKey(stateFilter);
            return matchesType && matchesState;
        });
    }, [reserves, typeFilter, stateFilter]);
    useEffect(() => {
        if (!record?.id) {
@@ -151,6 +172,48 @@
                        <Typography variant="subtitle1" gutterBottom>
                            {translate('menu.staReserve')}
                        </Typography>
                        <Stack direction={{ xs: 'column', sm: 'row' }} spacing={2} mb={2}>
                            <FormControl size="small" sx={{ minWidth: 160 }}>
                                <InputLabel id="sta-panel-reserve-type-label">
                                    {translate('table.field.staReserve.type')}
                                </InputLabel>
                                <Select
                                    labelId="sta-panel-reserve-type-label"
                                    value={typeFilter}
                                    label={translate('table.field.staReserve.type')}
                                    onChange={(event) => setTypeFilter(event.target.value)}
                                >
                                    <MenuItem value="">
                                        {translate('common.action.reset')}
                                    </MenuItem>
                                    {RESERVE_TYPE_OPTIONS.map((option) => (
                                        <MenuItem key={option} value={option}>
                                            {formatReserveType(option, translate)}
                                        </MenuItem>
                                    ))}
                                </Select>
                            </FormControl>
                            <FormControl size="small" sx={{ minWidth: 160 }}>
                                <InputLabel id="sta-panel-reserve-state-label">
                                    {translate('table.field.staReserve.state')}
                                </InputLabel>
                                <Select
                                    labelId="sta-panel-reserve-state-label"
                                    value={stateFilter}
                                    label={translate('table.field.staReserve.state')}
                                    onChange={(event) => setStateFilter(event.target.value)}
                                >
                                    <MenuItem value="">
                                        {translate('common.action.reset')}
                                    </MenuItem>
                                    {RESERVE_STATE_OPTIONS.map((option) => (
                                        <MenuItem key={option} value={option}>
                                            {formatReserveState(option, translate)}
                                        </MenuItem>
                                    ))}
                                </Select>
                            </FormControl>
                        </Stack>
                        <Table size="small">
                            <TableHead>
                                <TableRow>
@@ -180,7 +243,7 @@
                                        </TableCell>
                                    </TableRow>
                                )}
                                {!isReservesLoading && reserves.length === 0 && (
                                {!isReservesLoading && filteredReserves.length === 0 && (
                                    <TableRow>
                                        <TableCell colSpan={RESERVE_COLUMN_COUNT}>
                                            <Typography variant="body2" color="textSecondary">
@@ -189,7 +252,7 @@
                                        </TableCell>
                                    </TableRow>
                                )}
                                {reserves.map((reserve) => (
                                {filteredReserves.map((reserve) => (
                                    <TableRow key={reserve.id}>
                                        <TableCell>{reserve.uuid || '-'}</TableCell>
                                        <TableCell>{getReferenceLabel(taskLabelMap, reserve.taskId)}</TableCell>