| | |
| | | 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' |
| | |
| | | <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" />, |
| | |
| | | actions={( |
| | | <TopToolbar> |
| | | <FilterButton /> |
| | | <MyCreateButton onClick={() => { setCreateDialog(true) }} /> |
| | | {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} |
| | | <SelectColumnsButton preferenceKey='staReserve' /> |
| | | <MyExportButton /> |
| | | </TopToolbar> |
| | |
| | | <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 /> |
| | |
| | | } |
| | | |
| | | 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(); |
| | | }; |