From ff18a8c103f1db8be2fcb22d69de3c32f745ff1d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 10 五月 2025 17:04:41 +0800
Subject: [PATCH] 质检信息修改 快速质检功能修改

---
 rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx  |    2 
 rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx    |   34 +-------
 rsf-admin/src/i18n/zh.js                                 |   11 +-
 rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx  |    4 -
 rsf-admin/src/i18n/en.js                                 |    5 +
 rsf-admin/.env                                           |    2 
 rsf-admin/src/page/orders/qlyInspect/QlyInspectEdit.jsx  |   11 --
 rsf-admin/src/page/orders/qlyInspect/QlyIsptItemList.jsx |  112 ++++++++++++++++++++-------
 8 files changed, 101 insertions(+), 80 deletions(-)

diff --git a/rsf-admin/.env b/rsf-admin/.env
index a3c69b2..a0bb09f 100644
--- a/rsf-admin/.env
+++ b/rsf-admin/.env
@@ -1,3 +1,3 @@
-VITE_BASE_IP=127.0.0.1
+VITE_BASE_IP=192.168.4.50
 # VITE_BASE_IP=47.76.147.249
 VITE_BASE_PORT=8080
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 792b9ea..56e1ae1 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -79,7 +79,9 @@
             inputPlaceholder: 'Use commas to separate',
             resend: 'RESEND',
             selected: 'selected',
-            batch: 'batch'
+            batch: 'batch',
+            batchSafe: 'Bulk Safe',
+            batchDef: 'Bulk Def',
         },
         msg: {
             confirm: {
@@ -471,6 +473,7 @@
                 rcptQty: "rcptQty",
                 dlyQty: "dlyQty",
                 disQty: "disQty",
+                anfme: 'anfme',
                 safeQty: "safeQty",
                 picPath: "picPath",
                 trackCode: "trackCode",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index a7becd9..df68657 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -79,7 +79,9 @@
             stockError: '娌℃湁搴撳瓨',
             resend: '閲嶅彂',
             selected: '椤归�変腑',
-            batch: '鎵归噺缂栬緫'
+            batch: '鎵归噺缂栬緫',
+            batchSafe: '鎵归噺鍚堟牸',
+            batchDef: '鎵归噺涓嶅悎鏍�',
         },
         msg: {
             confirm: {
@@ -471,15 +473,16 @@
                 matnrCode: "鐗╂枡缂栧彿",
                 maktx: "鐗╂枡鍚嶇О",
                 label: "鏍囩",
-                splrName: "渚涘簲鍟嗗悕绉�",
-                splrBatch: "渚涘簲鍟嗘壒娆�",
+                splrName: "渚涘簲鍟�",
+                splrBatch: "鎵规",
                 stockBatch: "搴撳瓨鎵规",
                 isptResult: '璐ㄦ缁撹',
                 isptStatus: '璐ㄦ鐘舵��',
-                rcptQty: "鏀惰揣鏁伴噺",
+                rcptQty: "鍙鏁伴噺",
                 dlyQty: "閫佽揣鏁伴噺",
                 disQty: "涓嶅悎鏁伴噺",
                 safeQty: "鍚堟牸鏁伴噺",
+                anfme: '鏁伴噺',
                 picPath: "鍥剧墖璺緞",
                 trackCode: "鏉″舰鐮�",
             },
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
index 1d0e843..71ff6c4 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -41,6 +41,8 @@
 import { styled } from '@mui/material/styles';
 import AsnOrderItemCreate from "./AsnOrderItemCreate";
 import PageDrawer from "../../components/PageDrawer";
+import DialogCloseButton from "../../components/DialogCloseButton";
+
 import request from '@/utils/request';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
 import AsnOrderItemEdit from "./AsnOrderItemEdit";
diff --git a/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx b/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx
index 2faa6ce..627a035 100644
--- a/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx
@@ -149,33 +149,15 @@
                 backgroundColor: 'background.paper',
                 zIndex: 1000
             }}>
-                鎵ц璐ㄦ
                 <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
                     <DialogCloseButton onClose={handleClose} />
                 </Box>
             </DialogTitle>
             <DialogContent sx={{ mt: 2 }}>
-                {/* <Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-                    <Grid container spacing={2}>
-                        <Grid item md={4}>
-                            <TextField
-                                label={translate('table.field.asnOrder.code')}
-                                name="code"
-                                value={formData.code}
-                                onChange={handleChange}
-                                size="small"
-                            />
-                        </Grid>
-                    </Grid>
-                </Box> */}
                 <Box sx={{ mt: 2 }}>
-                    {/* <Stack direction="row" spacing={2}>
-                        <Button variant="contained" onClick={handleSearch}>鎼滅储</Button>
-                    </Stack> */}
-
                     <Stack direction="row" spacing={2}>
-                        <Button variant="contained" onClick={batchQualified}>鎵归噺鍚堟牸</Button>
-                        <Button variant="contained" color="error" onClick={batchUnQualified}>鎵归噺涓嶅悎鏍�</Button>
+                        <Button variant="contained" onClick={batchQualified}>{translate('common.action.batchSafe')} </Button>
+                        <Button variant="contained" color="error" onClick={batchUnQualified}>{translate('common.action.batchDef')} </Button>
                     </Stack>
                 </Box>
                 <Box sx={{ mt: 2, height: 400, width: '100%' }}>
@@ -188,7 +170,7 @@
                 </Box>
             </DialogContent>
             <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
-                <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}>
+                <Box sx={{ width: '100%', display: 'flex', justifyContent: 'end' }}>
                     <Button onClick={handleSubmit} variant="contained" startIcon={<SaveIcon />}>
                         {translate('toolbar.confirm')}
                     </Button>
@@ -210,16 +192,14 @@
 
     };
 
-
-
     const [columns, setColumns] = useState([
         // { field: 'id', headerName: 'ID', width: 100 },
-        { field: 'maktx', headerName: translate('table.field.qlyIsptItem.maktx'), width: 300 },
         { field: 'matnrCode', headerName: translate('table.field.qlyIsptItem.matnrCode') },
+        { field: 'maktx', headerName: translate('table.field.qlyIsptItem.maktx'), width: 300 },
         { field: 'splrName', headerName: translate('table.field.qlyIsptItem.splrName') },
         { field: 'splrBatch', headerName: translate('table.field.qlyIsptItem.splrBatch') },
-        { field: 'stockBatch', headerName: translate('table.field.qlyIsptItem.stockBatch') },
-        { field: 'dlyQty', headerName: translate('table.field.qlyIsptItem.dlyQty') },
+        // { field: 'stockBatch', headerName: translate('table.field.qlyIsptItem.stockBatch') },
+        // { field: 'dlyQty', headerName: translate('table.field.qlyIsptItem.dlyQty') },
         { field: 'rcptQty', headerName: translate('table.field.qlyIsptItem.rcptQty') },
         {
             field: 'safeQty', headerName: translate('table.field.qlyIsptItem.safeQty'), editable: true, type: 'number',
@@ -245,8 +225,6 @@
             field: 'isptResult', headerName: translate('table.field.qlyIsptItem.isptResult'), width: 150, type: 'singleSelect',
             editable: true, valueOptions: [{ value: '1', label: '鍚堟牸' }, { value: '2', label: '涓嶅悎鏍�' }, { value: '3', label: '寰呭畾' }, { value: '4', label: '閮ㄥ垎鍚堟牸' }],
         },
-
-
     ])
 
     const processRowUpdate = (newRow, oldRow) => {
diff --git a/rsf-admin/src/page/orders/qlyInspect/QlyInspectEdit.jsx b/rsf-admin/src/page/orders/qlyInspect/QlyInspectEdit.jsx
index d33d9d9..830683e 100644
--- a/rsf-admin/src/page/orders/qlyInspect/QlyInspectEdit.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/QlyInspectEdit.jsx
@@ -102,17 +102,6 @@
                             </Stack>
                             <Stack direction='row' gap={2}>
                                 <NumberInput
-                                    label="table.field.qlyInspect.safeQty"
-                                    source="safeQty"
-                                    readOnly
-                                />
-                                <NumberInput
-                                    label="table.field.qlyInspect.dlyQty"
-                                    source="dlyQty"
-                                    readOnly
-
-                                />
-                                <NumberInput
                                     label="table.field.qlyInspect.rcptQty"
                                     source="rcptQty"
                                     readOnly
diff --git a/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx b/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
index 215bfbe..a2667dc 100644
--- a/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
@@ -137,9 +137,6 @@
                     <TextField source="wkType$" label="table.field.qlyInspect.wkType" />
                     <NumberField source="asnId" label="table.field.qlyInspect.asnId" />
                     <NumberField source="asnCode" label="table.field.qlyInspect.asnCode" />
-                    <NumberField source="safeQty" label="table.field.qlyInspect.safeQty" />
-                    <NumberField source="dlyQty" label="table.field.qlyInspect.dlyQty" />
-                    <NumberField source="rcptQty" label="table.field.qlyInspect.rcptQty" />
                     <NumberField source="isptQty" label="table.field.qlyInspect.isptQty" />
                     <TextField source="updateBy$" label="common.field.updateBy" />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
@@ -231,7 +228,6 @@
             notify(msg);
         }
     }
-
 
     return (
         <Button onClick={requestClose} label={"toolbar.close"}>
diff --git a/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemList.jsx b/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemList.jsx
index 6f5ffc2..fd1be19 100644
--- a/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemList.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/QlyIsptItemList.jsx
@@ -32,15 +32,17 @@
     AutocompleteInput,
     DeleteButton,
     useGetOne,
+    useRefresh,
     useGetRecordId,
 } from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
+import { Box, Typography, Card, Stack, LinearProgress } from '@mui/material';
 import { styled } from '@mui/material/styles';
 import QlyIsptItemCreate from "./QlyIsptItemCreate";
 import EmptyData from "../../components/EmptyData";
 import MyCreateButton from "../../components/MyCreateButton";
 import MyExportButton from '../../components/MyExportButton';
 import PageDrawer from "../../components/PageDrawer";
+import request from '@/utils/request';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
@@ -89,13 +91,13 @@
     const [drawerVal, setDrawerVal] = useState(false);
     const isptId = useGetRecordId();
     const { data: dicts, isPending, error } = useGetOne('qlyInspect', { id: isptId });
-    if (dicts == null) {return}
+    if (dicts == null) { return }
 
     return (
         <Box display="flex">
             <List
-            resource="qlyIsptItem"
-            filter={{ispectId: isptId}}
+                resource="qlyIsptItem"
+                filter={{ ispectId: isptId }}
                 sx={{
                     flexGrow: 1,
                     transition: (theme) =>
@@ -117,33 +119,7 @@
                 )}
                 perPage={DEFAULT_ITEM_PAGE_SIZE}
             >
-                <StyledDatagrid
-                    preferenceKey='qlyIsptItem'
-                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
-                    rowClick={false}
-                    omit={['id', 'createTime', 'createBy', 'memo', 'label', 'stockBatch','picPath',  'ispectId']}
-                >
-                    <NumberField source="id" />
-                    <NumberField source="ispectId" label="table.field.qlyIsptItem.ispectId" />
-                    <TextField source="matnrCode" label="table.field.qlyIsptItem.matnrCode" />
-                    <TextField source="maktx" label="table.field.qlyIsptItem.maktx" />
-                    <TextField source="label" label="table.field.qlyIsptItem.label" />
-                    <TextField source="splrBatch" label="table.field.qlyIsptItem.splrBatch" />
-                    <TextField source="stockBatch" label="table.field.qlyIsptItem.stockBatch" />
-                    <NumberField source="rcptQty" label="table.field.qlyIsptItem.rcptQty" />
-                    <NumberField source="dlyQty" label="table.field.qlyIsptItem.dlyQty" />
-                    <NumberField source="disQty" label="table.field.qlyIsptItem.disQty" />
-                    <NumberField source="safeQty" label="table.field.qlyIsptItem.safeQty" />
-                    <TextField source="splrName" label="table.field.qlyIsptItem.splrName" />
-                    <NumberField source="isptResult$" label="table.field.qlyIsptItem.isptResult" />
-                    <TextField source="picPath" label="table.field.qlyIsptItem.picPath" />
-                    <TextField source="updateBy$" label="common.field.updateBy"  />
-                    <DateField source="updateTime" label="common.field.updateTime" showTime />
-                    <TextField source="createBy$" label="common.field.createBy"  />
-                    <DateField source="createTime" label="common.field.createTime" showTime />
-                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
-                    <TextField source="memo" label="common.field.memo" sortable={false} />
-                </StyledDatagrid>
+               <DynamicFields />
             </List>
             <QlyIsptItemCreate
                 open={createDialog}
@@ -161,3 +137,77 @@
 }
 
 export default QlyIsptItemList;
+
+
+
+const DynamicFields = (props) => {
+    const translate = useTranslate();
+    const notify = useNotify();
+    const [columns, setColumns] = useState([]);
+    const { isLoading } = useListContext();
+    const refresh = useRefresh();
+    useEffect(() => {
+        getDynamicFields();
+    }, []);
+
+    const getDynamicFields = async () => {
+        const { data: { code, data, msg }, } = await request.get("/fields/enable/list");
+        if (code == 200) {
+            const arr = [
+                <NumberField source="id" />,
+                <NumberField source="ispectId" label="table.field.qlyIsptItem.ispectId" />,
+                <TextField source="matnrCode" label="table.field.qlyIsptItem.matnrCode" />,
+                <TextField source="maktx" label="table.field.qlyIsptItem.maktx" />,
+                <TextField source="label" label="table.field.qlyIsptItem.label" />,
+                <TextField source="splrBatch" label="table.field.qlyIsptItem.splrBatch" />,
+                <TextField source="stockBatch" label="table.field.qlyIsptItem.stockBatch" />,
+                <NumberField source="rcptQty" label="table.field.qlyIsptItem.rcptQty" />,
+                <NumberField source="dlyQty" label="table.field.qlyIsptItem.dlyQty" />,
+                <NumberField source="anfme" label="table.field.qlyIsptItem.anfme" />,
+                <TextField source="splrName" label="table.field.qlyIsptItem.splrName" />,
+                <NumberField source="isptResult$" label="table.field.qlyIsptItem.isptResult" />,
+            ]
+            const fields = data.map(el => <TextField key={el.fields} source={`extendFields.[${el.fields}]`} label={el.fieldsAlise} />)
+            const lastArr = [
+                <DateField source="updateTime" label="common.field.updateTime" showTime />,
+                <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
+                    <TextField source="nickname" />
+                </ReferenceField>,
+                <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
+                    <TextField source="nickname" />
+                </ReferenceField>,
+                <DateField source="createTime" label="common.field.createTime" showTime />,
+                <TextField source="memo" label="common.field.memo" sortable={false} />,
+            ]
+            setColumns([...arr, ...fields, ...lastArr]);
+        } else {
+            notify(msg);
+        }
+    }
+
+    return (
+        <Box sx={{ position: 'relative', minHeight: "60vh", }}>
+            {isLoading && (
+                <LinearProgress
+                    sx={{
+                        height: "2px",
+                        position: 'absolute',
+                        top: 0,
+                        left: 0,
+                        right: 0,
+                    }}
+                />
+            )}
+            {columns.length > 0 &&
+                <StyledDatagrid
+                    preferenceKey='qlyIsptItem'
+                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
+                    rowClick={false}
+                    omit={['id', 'createTime', 'createBy', 'memo', 'dlyQty', 'label', 'stockBatch', 'picPath', 'ispectId', 'statusBool']}
+
+                >
+                    {columns.map((column) => column)}
+                </StyledDatagrid>}
+        </Box>
+    )
+}
\ No newline at end of file

--
Gitblit v1.9.1