From f14ae29680bed4616a9fc200af37c71c0645d0b3 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期日, 04 一月 2026 18:03:42 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/staReserve/StaReserveList.jsx |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 5 deletions(-)

diff --git a/zy-acs-flow/src/page/staReserve/StaReserveList.jsx b/zy-acs-flow/src/page/staReserve/StaReserveList.jsx
index 2010d52..30cfa01 100644
--- a/zy-acs-flow/src/page/staReserve/StaReserveList.jsx
+++ b/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();
+};

--
Gitblit v1.9.1