From 99411967019bbf0d7b0b971eae0db2c2c58025f0 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 30 八月 2025 16:27:47 +0800
Subject: [PATCH] 修改任务状态
---
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 221 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 154 insertions(+), 67 deletions(-)
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index 796ed9e..d26ea4c 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -43,21 +43,25 @@
Select,
MenuItem
-
} from '@mui/material';
+
+import { DataGrid, useGridApiRef, GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF, getGridDateOperators, useGridApiContext } from '@mui/x-data-grid';
+import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
+import { LocalizationProvider, DatePicker, DateTimePicker } from '@mui/x-date-pickers';
import DialogCloseButton from "../../components/DialogCloseButton";
import StatusSelectInput from "../../components/StatusSelectInput";
-import ConfirmButton from "../../components/ConfirmButton";
-import AsnWareModal from "./AsnWareModal";
-import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
-import SaveIcon from '@mui/icons-material/Save';
-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 { DemoContainer } from '@mui/x-date-pickers/internals/demo';
import DictionarySelect from "../../components/DictionarySelect";
+import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
+import ConfirmButton from "../../components/ConfirmButton";
+import { Add, Edit, Delete } from '@mui/icons-material';
import DictSelect from "../../components/DictSelect";
+import SaveIcon from '@mui/icons-material/Save';
+import AsnWareModal from "./AsnWareModal";
+import request from '@/utils/request';
+import _, { set } from 'lodash';
import "./asnOrder.css";
+
const AsnOrderModal = (props) => {
const { open, setOpen, asnId, billReload } = props;
@@ -102,7 +106,6 @@
...prevData,
[name]: value
}));
- console.log(formData);
};
const resetData = () => {
@@ -119,7 +122,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]);
@@ -184,7 +187,7 @@
}
const requestGetBody = async () => {
- const res = await request.post(`/asnOrderItem/page`, { asnId });
+ const res = await request.post(`/asnOrderItem/page`, { orderId: asnId });
if (res?.data?.code === 200) {
setTableData(res.data.data.records)
} else {
@@ -197,7 +200,12 @@
const handleDeleteItem = () => {
- const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId));
+ if (selectedRows.length === 0) {
+ notify('璇烽�夋嫨瑕佸垹闄ょ殑琛�', {type: 'warning'});
+ return;
+ }
+
+ const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.id));
setTableData(newTableData);
}
@@ -210,7 +218,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 +240,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>
@@ -292,9 +301,7 @@
</Button>
</Toolbar>
</DialogActions>
-
</Dialog>
-
<AsnWareModal
open={createDialog}
setOpen={setCreateDialog}
@@ -306,6 +313,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([{}])
@@ -321,7 +348,6 @@
} = await request.post("companys/page", parmas);
if (code === 200) {
setFormData(data.records)
- console.log(data.records)
} else {
notify(msg);
}
@@ -347,7 +373,6 @@
value: selectedSupplier.id,
});
}
-
}
}
@@ -365,6 +390,52 @@
);
};
+
+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([{}])
useEffect(() => {
@@ -379,7 +450,6 @@
} = await request.post("companys/page", parmas);
if (code === 200) {
setFormData(data.records)
- console.log(data.records)
} else {
notify(msg);
}
@@ -451,17 +521,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') + "*",
@@ -473,27 +543,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',
@@ -503,22 +578,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 = {
@@ -533,7 +614,6 @@
</IconButton>
</Tooltip>
),
-
}
let cdata = useRef([]);
@@ -554,11 +634,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 {
@@ -566,17 +656,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) =>
@@ -590,8 +678,7 @@
};
-
- const handleSelectionChange = (ids) => {
+ const handleSelectionChange = (ids) => {
setSelectedRows(ids)
};
@@ -606,7 +693,7 @@
rows={tabelData}
columns={columns}
disableRowSelectionOnClick
- getRowId={(row) => row.matnrId}
+ getRowId={(row) => row.id}
disableColumnFilter
disableColumnSelector
disableColumnSorting
@@ -619,7 +706,7 @@
},
},
}}
- pageSizeOptions={[10, 25, 50, 100]}
+ pageSizeOptions={[15, 25, 50, 100]}
editMode="row"
checkboxSelection
onRowSelectionModelChange={handleSelectionChange}
--
Gitblit v1.9.1