#
vincentlu
2026-01-04 f14ae29680bed4616a9fc200af37c71c0645d0b3
#
1个文件已修改
56 ■■■■■ 已修改文件
zy-acs-flow/src/page/staReserve/StaReserveList.jsx 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/staReserve/StaReserveList.jsx
@@ -44,6 +44,19 @@
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
const TYPE_FILTER_CHOICES = [
    { id: 'IN', name: 'page.sta.enums.type.in' },
    { id: 'OUT', name: 'page.sta.enums.type.out' },
];
const STATE_FILTER_CHOICES = [
    { id: 'RESERVED', name: 'page.sta.enums.state.reserved' },
    { id: 'WAITING', name: 'page.sta.enums.state.waiting' },
    { id: 'CONFIRMED', name: 'page.sta.enums.state.confirmed' },
    { id: 'CANCELLED', name: 'page.sta.enums.state.canceled' },
    { id: 'TIMEOUT', name: 'page.sta.enums.state.timeout' },
];
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
    '& .css-1vooibu-MuiSvgIcon-root': {
        height: '.9em'
@@ -77,9 +90,9 @@
        <AutocompleteInput label="table.field.staReserve.agvId" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} />
    </ReferenceInput>,
    // <TextInput source="name" label="table.field.staReserve.name" />,
    <TextInput source="type" label="table.field.staReserve.type" />,
    <SelectInput source="type" label="table.field.staReserve.type" choices={TYPE_FILTER_CHOICES} alwaysOn />,
    <NumberInput source="qty" label="table.field.staReserve.qty" />,
    <TextInput source="state" label="table.field.staReserve.state" />,
    <SelectInput source="state" label="table.field.staReserve.state" choices={STATE_FILTER_CHOICES} alwaysOn />,
    <TextInput source="reason" label="table.field.staReserve.reason" />,
    <DateInput source="expireTime" label="table.field.staReserve.expireTime" />,
    <DateInput source="waitingAt" label="table.field.staReserve.waitingAt" />,
@@ -123,7 +136,7 @@
                actions={(
                    <TopToolbar>
                        <FilterButton />
                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                        {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
                        <SelectColumnsButton preferenceKey='staReserve' />
                        <MyExportButton />
                    </TopToolbar>
@@ -155,9 +168,15 @@
                        <TextField source="uuid" />
                    </ReferenceField>
                    <TextField source="name" label="table.field.staReserve.name" />
                    <TextField source="type" label="table.field.staReserve.type" />
                    <FunctionField
                        label="table.field.staReserve.type"
                        render={(record) => formatReserveType(record?.type, translate)}
                    />
                    <NumberField source="qty" label="table.field.staReserve.qty" />
                    <TextField source="state" label="table.field.staReserve.state" />
                    <FunctionField
                        label="table.field.staReserve.state"
                        render={(record) => formatReserveState(record?.state, translate)}
                    />
                    <TextField source="reason" label="table.field.staReserve.reason" />
                    <DateField source="expireTime" label="table.field.staReserve.expireTime" showTime />
                    <DateField source="waitingAt" label="table.field.staReserve.waitingAt" showTime />
@@ -196,3 +215,30 @@
}
export default StaReserveList;
const formatReserveType = (value, translate) =>
    formatReserveEnum(value, translate, 'type');
const formatReserveState = (value, translate) =>
    formatReserveEnum(value, translate, 'state', {
        cancelled: 'canceled',
    });
const formatReserveEnum = (value, translate, enumType, overrides = {}) => {
    const normalized = normalizeValueKey(value);
    if (!normalized) {
        return '-';
    }
    const translationKey = overrides[normalized] || normalized;
    return translate(`page.sta.enums.${enumType}.${translationKey}`, { _: value });
};
const normalizeValueKey = (value) => {
    if (typeof value === 'string') {
        return value.trim().toLowerCase();
    }
    if (value === undefined || value === null) {
        return '';
    }
    return String(value).trim().toLowerCase();
};