From c3e30a405f41d87a924bbd0aa48801d3d763f2c0 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期三, 26 三月 2025 08:58:00 +0800
Subject: [PATCH] fix:逻辑分区加字段

---
 rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatList.jsx   |    6 ++-
 rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatCreate.jsx |   46 +++++++++++++++++++----
 rsf-admin/src/page/components/ImportModal.jsx                |    4 +
 rsf-admin/src/i18n/zh.js                                     |    3 +
 rsf-admin/src/i18n/en.js                                     |    3 +
 rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatEdit.jsx   |   49 +++++++++++++++++++-----
 6 files changed, 90 insertions(+), 21 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index e6b9ca2..e767188 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -375,6 +375,9 @@
             locAreaMat: {
                 code: "code",
                 depict: "depict",
+                name: "name",
+                warehouseId: "warehouseId",
+                areaId: "areaId",
             },
             locAreaMatRela: {
                 areaId: "areaId",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 8358e70..446f610 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -375,6 +375,9 @@
             locAreaMat: {
                 code: "閫昏緫缂栫爜",
                 depict: "閫昏緫鎻忚堪",
+                name: "鍚嶇О",
+                warehouseId: "浠撳簱",
+                areaId: "搴撳尯",
             },
             locAreaMatRela: {
                 areaId: "搴撳尯",
diff --git a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatCreate.jsx b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatCreate.jsx
index 9f726dc..a4ef04a 100644
--- a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatCreate.jsx
+++ b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatCreate.jsx
@@ -52,6 +52,12 @@
         notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
     };
 
+
+    const [warehouseId, setWrehouseId] = useState();
+    const warehouseChange = (val) => {
+        setWrehouseId(val)
+    }
+
     return (
         <>
             <CreateBase
@@ -92,18 +98,42 @@
                                         autoFocus
                                     />
                                 </Grid>
-                                {/* <Grid item xs={6} display="flex" gap={1}>
-                                    <NumberInput
-                                        label="table.field.locAreaMat.warehouseId"
-                                        source="warehouseId"
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <TextInput
+                                        label="table.field.locAreaMat.name"
+                                        source="name"
+                                        parse={v => v}
+                                        autoFocus
                                     />
                                 </Grid>
                                 <Grid item xs={6} display="flex" gap={1}>
-                                    <NumberInput
-                                        label="table.field.locAreaMat.areaId"
+                                    <ReferenceInput
+                                        source="warehouseId"
+                                        reference="warehouse"
+                                    >
+                                        <AutocompleteInput
+                                            label="table.field.loc.warehouseId"
+                                            optionText="name"
+                                            validate={[required()]}
+                                            onChange={warehouseChange}
+                                            filterToQuery={(val) => ({ name: val })}
+                                        />
+                                    </ReferenceInput>
+                                </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <ReferenceInput
                                         source="areaId"
-                                    />
-                                </Grid> */}
+                                        reference="warehouseAreas"
+                                        filter={{ warehouseId }}
+                                    >
+                                        <AutocompleteInput
+                                            label="table.field.loc.areaId"
+                                            optionText="name"
+                                            validate={[required()]}
+                                            filterToQuery={(val) => ({ name: val })}
+                                        />
+                                    </ReferenceInput>
+                                </Grid>
                                 <Grid item xs={6} display="flex" gap={1}>
                                     <TextInput
                                         label="table.field.locAreaMat.depict"
diff --git a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatEdit.jsx b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatEdit.jsx
index 752dbfd..9b0c23f 100644
--- a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatEdit.jsx
@@ -43,6 +43,11 @@
 const LocAreaMatEdit = () => {
     const translate = useTranslate();
 
+    const [warehouseId, setWrehouseId] = useState();
+    const warehouseChange = (val) => {
+        setWrehouseId(val)
+    }
+
     return (
         <Edit
             redirect="list"
@@ -71,18 +76,42 @@
                                 autoFocus
                             />
                         </Stack>
-                        {/* <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.locAreaMat.warehouseId"
+                        <Grid item xs={6} display="flex" gap={1}>
+                            <TextInput
+                                label="table.field.locAreaMat.name"
+                                source="name"
+                                parse={v => v}
+                                autoFocus
+                            />
+                        </Grid>
+                        <Grid item xs={6} display="flex" gap={1}>
+                            <ReferenceInput
                                 source="warehouseId"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.locAreaMat.areaId"
+                                reference="warehouse"
+                            >
+                                <AutocompleteInput
+                                    label="table.field.loc.warehouseId"
+                                    optionText="name"
+                                    validate={[required()]}
+                                    onChange={warehouseChange}
+                                    filterToQuery={(val) => ({ name: val })}
+                                />
+                            </ReferenceInput>
+                        </Grid>
+                        <Grid item xs={6} display="flex" gap={1}>
+                            <ReferenceInput
                                 source="areaId"
-                            />
-                        </Stack> */}
+                                reference="warehouseAreas"
+                                filter={{ warehouseId }}
+                            >
+                                <AutocompleteInput
+                                    label="table.field.loc.areaId"
+                                    optionText="name"
+                                    validate={[required()]}
+                                    filterToQuery={(val) => ({ name: val })}
+                                />
+                            </ReferenceInput>
+                        </Grid>
                         <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locAreaMat.depict"
diff --git a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatList.jsx b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatList.jsx
index a27e68c..d7c816e 100644
--- a/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatList.jsx
+++ b/rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatList.jsx
@@ -119,8 +119,10 @@
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.locAreaMat.code" />
-                    {/* <NumberField source="warehouseId" label="table.field.locAreaMat.warehouseId" />
-                    <NumberField source="areaId" label="table.field.locAreaMat.areaId" /> */}
+                    <TextField source="name" label="table.field.locAreaMat.name" />
+                    <TextField source="warehouseId$" label="table.field.locAreaMat.warehouseId" />
+                    <TextField source="areaId$" label="table.field.locAreaMat.areaId" />
+
                     <TextField source="depict" label="table.field.locAreaMat.depict" />
 
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
diff --git a/rsf-admin/src/page/components/ImportModal.jsx b/rsf-admin/src/page/components/ImportModal.jsx
index 82d3557..ea75029 100644
--- a/rsf-admin/src/page/components/ImportModal.jsx
+++ b/rsf-admin/src/page/components/ImportModal.jsx
@@ -80,7 +80,9 @@
     };
 
     const downloadTemplate = async (type) => {
-        const res = await request.post(`/${value}/template/download`, {})
+        const res = await request.post(`/${value}/template/download`, {}, {
+            responseType: "blob",
+        })
         const url = window.URL.createObjectURL(
             new Blob([res.data], { type: res.headers["content-type"] }),
         );

--
Gitblit v1.9.1