From 0a961cda12ec39dc0e33fc9148f902a7bed7bd76 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 23 五月 2025 09:41:15 +0800
Subject: [PATCH] #
---
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 221 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 151 insertions(+), 70 deletions(-)
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index d001fde..1fdb77c 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -43,7 +43,6 @@
Select,
MenuItem
-
} from '@mui/material';
import DialogCloseButton from "../../components/DialogCloseButton";
import StatusSelectInput from "../../components/StatusSelectInput";
@@ -54,10 +53,15 @@
import request from '@/utils/request';
import { Add, Edit, Delete } from '@mui/icons-material';
import _, { set } from 'lodash';
-import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
+import { DataGrid, useGridApiRef, GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF, getGridDateOperators, useGridApiContext } from '@mui/x-data-grid';
+import { LocalizationProvider, DatePicker, DateTimePicker } from '@mui/x-date-pickers';
+import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import DictionarySelect from "../../components/DictionarySelect";
import DictSelect from "../../components/DictSelect";
import "./asnOrder.css";
+import { 'zhCN' as locale } from 'date-fns/locale';
+import { format, } from 'date-fns';
+import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
const AsnOrderModal = (props) => {
const { open, setOpen, asnId, billReload } = props;
@@ -119,7 +123,7 @@
const setFinally = () => {
const rows = tableRef.current.state.editRows;
for (const key in rows) {
- const find = tabelData.find(item => item.matnrId === +key);
+ const find = tabelData.find(item => item.id === +key);
find.anfme = rows[key].anfme.value;
}
setTableData([...tabelData]);
@@ -197,7 +201,7 @@
const handleDeleteItem = () => {
- const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId));
+ const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.id));
setTableData(newTableData);
}
@@ -210,7 +214,7 @@
aria-hidden
fullWidth
disableRestoreFocus
- maxWidth="lg" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
+ maxWidth="xl" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
>
<DialogTitle id="form-dialog-title" sx={{
position: 'sticky',
@@ -232,7 +236,8 @@
label={translate("table.field.asnOrder.type")}
value={formData.type}
onChange={(e) => handleChange(e.target.value, 'type')}
- dictTypeCode="sys_in_stock_type"
+ dictTypeCode="sys_order_type"
+ group='1'
required
/>
</Grid>
@@ -246,34 +251,29 @@
required
/>
</Grid>
- <Grid item md={3}>
+ <Grid item md={2}>
<TextField
label={translate("table.field.asnOrder.poCode")}
value={formData.poCode}
+ variant="filled"
onChange={(e) => handleChange(e.target.value, 'poCode')}
/>
</Grid>
- <Grid item md={3}>
+ <Grid item md={2}>
<TextField
label={translate("table.field.asnOrder.logisNo")}
value={formData.logisNo}
+ variant="filled"
onChange={(e) => handleChange(e.target.value, 'logisNo')}
/>
</Grid>
-
<Grid item md={3}>
- {/* <TextField
- label={translate("table.field.asnOrder.arrTime")}
- value={formData.arrTime}
- onChange={(e) => handleChange(e.target.value, 'arrTime')}
- /> */}
<DateInput
source="arrTime"
label="table.field.asnOrder.arrTime"
value={formData.arrTime}
onChange={(e) => handleChange(e.target.value, 'arrTime')}
/>
-
</Grid>
</Grid>
</Form>
@@ -297,9 +297,7 @@
</Button>
</Toolbar>
</DialogActions>
-
</Dialog>
-
<AsnWareModal
open={createDialog}
setOpen={setCreateDialog}
@@ -311,6 +309,26 @@
}
export default AsnOrderModal;
+
+
+const dateColumnType = {
+ ...GRID_DATE_COL_DEF,
+ resizable: false,
+ renderEditCell: (params) => {
+ return <GridEditDateCell {...params} />;
+ },
+ // filterOperators: getGridDateOperators(false).map((item) => ({
+ // ...item,
+ // InputComponent: GridFilterDateInput,
+ // InputComponentProps: { showTime: false },
+ // })),
+ // valueFormatter: (value) => {
+ // if (value) {
+ // return format(value, 'yyyy-MM-dd', { locale });
+ // }
+ // return '';
+ // },
+}
const SelectInputSplrNameEditCell = (params) => {
const [formData, setFormData] = useState([{}])
@@ -352,7 +370,6 @@
value: selectedSupplier.id,
});
}
-
}
}
@@ -369,6 +386,52 @@
</Select>
);
};
+
+
+const GridEditDateCell = ({ id, field, value, colDef, hasFocus }) => {
+ const apiRef = useGridApiContext();
+ const inputRef = React.useRef(null);
+ const Component = colDef.type === 'dateTime' ? DateTimePicker : DatePicker;
+
+ const handleChange = (newValue) => {
+ apiRef.current.setEditCellValue({ id, field, value: newValue });
+ };
+
+ // useEnhancedEffect(() => {
+ // if (hasFocus) {
+ // inputRef.current.focus();
+ // }
+ // }, [hasFocus]);
+
+ return (
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
+ <DemoContainer components={['DatePicker']}>
+ <DatePicker label="Basic date picker" />
+ </DemoContainer>
+ </LocalizationProvider>
+ // <Component
+ // value={value}
+ // autoFocus
+ // onChange={handleChange}
+ // slotProps={{
+ // textField: {
+ // inputRef,
+ // variant: 'standard',
+ // fullWidth: true,
+ // sx: {
+ // padding: '0 9px',
+ // justifyContent: 'center',
+ // },
+ // InputProps: {
+ // disableUnderline: true,
+ // sx: { fontSize: 'inherit' },
+ // },
+ // },
+ // }}
+ // />
+ );
+}
+
const SelectInputSplrCodeEditCell = (params) => {
const [formData, setFormData] = useState([{}])
@@ -434,17 +497,16 @@
const notify = useNotify();
const [columns, setColumns] = useState([
-
- {
- field: 'maktx',
- headerName: translate('table.field.asnOrderItem.maktx'),
- width: 250,
- editable: false,
- },
{
field: 'matnrCode',
headerName: translate('table.field.asnOrderItem.matnrCode'),
width: 130,
+ editable: false,
+ },
+ {
+ field: 'maktx',
+ headerName: translate('table.field.asnOrderItem.maktx'),
+ width: 250,
editable: false,
},
{
@@ -457,17 +519,17 @@
valueFormatter: (val) => val < 0 ? 0 : val,
headerClassName: "custom",
},
- {
- field: 'splrCode',
- headerName: translate('table.field.asnOrderItem.splrCode') + "*",
- minWidth: 100,
- flex: 1,
- editable: true,
- renderEditCell: (params) => (
- <SelectInputSplrCodeEditCell {...params} />
- ),
- headerClassName: "custom",
- },
+ // {
+ // field: 'splrCode',
+ // headerName: translate('table.field.asnOrderItem.splrCode') + "*",
+ // minWidth: 100,
+ // flex: 1,
+ // editable: true,
+ // renderEditCell: (params) => (
+ // <SelectInputSplrCodeEditCell {...params} />
+ // ),
+ // headerClassName: "custom",
+ // },
{
field: 'splrName',
headerName: translate('table.field.asnOrderItem.splrName') + "*",
@@ -479,27 +541,32 @@
),
headerClassName: "custom",
},
- // {
- // field: 'packName',
- // headerName: translate('table.field.asnOrderItem.packName'),
- // minWidth: 100,
- // flex: 1,
- // editable: true,
- // },
- // {
- // field: 'poDetlId',
- // headerName: translate('table.field.asnOrderItem.poDetlId'),
- // minWidth: 100,
- // flex: 1,
- // },
{
- field: 'poCode',
- headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
+ field: 'platItemId',
+ headerName: translate('table.field.asnOrderItem.platItemId') + "*",
minWidth: 100,
flex: 1,
editable: true,
headerClassName: "custom",
},
+ {
+ field: 'splrBatch',
+ headerName: translate('table.field.asnOrderItem.splrBatch'),
+ minWidth: 100,
+ flex: 1,
+ editable: true,
+ headerClassName: "custom",
+
+ },
+
+ // {
+ // field: 'poCode',
+ // headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
+ // minWidth: 100,
+ // flex: 1,
+ // editable: true,
+ // headerClassName: "custom",
+ // },
{
field: 'stockUnit',
@@ -509,22 +576,28 @@
editable: false,
},
// {
+ // field: 'prodTime',
+ // headerName: translate('table.field.asnOrderItem.prodTime'),
+ // minWidth: 200,
+ // flex: 1,
+ // ...dateColumnType,
+ // editable: true,
+ // headerClassName: "custom",
+ // },
+ // {
// field: 'purQty',
// headerName: translate('table.field.asnOrderItem.purQty'),
// minWidth: 100,
// flex: 1,
// editable: true,
// },
- {
- field: 'purUnit',
- headerName: translate('table.field.asnOrderItem.purUnit'),
- minWidth: 100,
- flex: 1,
- editable: false,
- },
-
-
-
+ // {
+ // field: 'purUnit',
+ // headerName: translate('table.field.asnOrderItem.purUnit'),
+ // minWidth: 100,
+ // flex: 1,
+ // editable: false,
+ // },
])
const action = {
@@ -539,7 +612,6 @@
</IconButton>
</Tooltip>
),
-
}
let cdata = useRef([]);
@@ -560,11 +632,21 @@
} = await request.get("/fields/enable/list");
if (code === 200) {
const cols = data.map(el => ({
- field: el.fields,
+ field: el.fields,
+ valueGetter: (value, row) => {
+ if (value != null && value != undefined) {
+ return value;
+ }
+ if (row.extendFields == null ||row.extendFields[el.fields] == null) {
+ return ''
+ } else {
+ return `${row.extendFields[el.fields] == null ? '' : row.extendFields[el.fields]}`;
+ }
+ },
headerName: el.fieldsAlise,
minWidth: 100,
flex: 1,
- editable: false
+ editable: true
}))
setColumns([...columns, ...cols, action])
} else {
@@ -572,17 +654,15 @@
}
}
-
-
const handleDelete = (row) => {
- const newData = _.filter(cdata.current, (item) => item.matnrId !== row.matnrId);
+ const newData = _.filter(cdata.current, (item) => item.id !== row.id);
setTableData(newData);
};
const processRowUpdate = (newRow, oldRow) => {
const rows = tabelData.map((r) =>
- r.matnrId === newRow.matnrId ? { ...newRow } : r
+ r.id === newRow.id ? { ...newRow } : r
)
setTableData(rows)
// setTableData((prevData) =>
@@ -596,8 +676,9 @@
};
-
const handleSelectionChange = (ids) => {
+ console.log(ids);
+
setSelectedRows(ids)
};
@@ -612,7 +693,7 @@
rows={tabelData}
columns={columns}
disableRowSelectionOnClick
- getRowId={(row) => row.matnrId}
+ getRowId={(row) => row.id}
disableColumnFilter
disableColumnSelector
disableColumnSorting
--
Gitblit v1.9.1