From c731084698d89c12c23180f57598d521abb97a23 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 12 五月 2025 14:15:32 +0800 Subject: [PATCH] 质检功能优化 --- rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 126 +++++++++++++++++++++++++++++++++--------- 1 files changed, 99 insertions(+), 27 deletions(-) diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx index 140bd65..177fce8 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; @@ -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> @@ -292,9 +297,7 @@ </Button> </Toolbar> </DialogActions> - </Dialog> - <AsnWareModal open={createDialog} setOpen={setCreateDialog} @@ -306,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([{}]) @@ -364,6 +387,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([{}]) @@ -451,28 +520,28 @@ 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: 'splrName', - // headerName: translate('table.field.asnOrderItem.splrName') + "*", + // field: 'splrCode', + // headerName: translate('table.field.asnOrderItem.splrCode') + "*", // minWidth: 100, // flex: 1, // editable: true, // renderEditCell: (params) => ( - // <SelectInputSplrNameEditCell {...params} /> + // <SelectInputSplrCodeEditCell {...params} /> // ), // headerClassName: "custom", // }, + { + field: 'splrName', + headerName: translate('table.field.asnOrderItem.splrName') + "*", + minWidth: 100, + flex: 1, + editable: true, + renderEditCell: (params) => ( + <SelectInputSplrNameEditCell {...params} /> + ), + headerClassName: "custom", + }, // { // field: 'packName', // headerName: translate('table.field.asnOrderItem.packName'), @@ -480,12 +549,7 @@ // flex: 1, // editable: true, // }, - // { - // field: 'poDetlId', - // headerName: translate('table.field.asnOrderItem.poDetlId'), - // minWidth: 100, - // flex: 1, - // }, + { field: 'platItemId', headerName: translate('table.field.asnOrderItem.platItemId') + "*", @@ -511,6 +575,15 @@ flex: 1, 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'), @@ -597,7 +670,6 @@ return newRow; }; - const handleSelectionChange = (ids) => { -- Gitblit v1.9.1