Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
| | |
| | | batchMix: '批量混放', |
| | | batchWarehouse: '批量仓库', |
| | | batchStockLevel: "批量ABC分类", |
| | | batchValidWarn: "批量预警", |
| | | batchFlagCheck: "批量免检", |
| | | }, |
| | | }; |
| | | |
| | |
| | | const notify = useNotify(); |
| | | |
| | | const [formData, setFormData] = useState({ |
| | | areaId: null, |
| | | areaMatId: null, |
| | | groupId: null, |
| | | matnrId: null, |
| | | }); |
| | |
| | | |
| | | const reset = () => { |
| | | setFormData({ |
| | | areaId: null, |
| | | areaMatId: null, |
| | | groupId: null, |
| | | matnrId: null, |
| | | }) |
| | |
| | | const handleSubmit = async () => { |
| | | const parmas = { |
| | | locId: selectedIds, |
| | | areaId: formData.areaId, |
| | | areaMatId: formData.areaMatId, |
| | | matnrId: formData.matnrId, |
| | | } |
| | | |
| | |
| | | <Grid container spacing={2}> |
| | | <Grid item xs={4}> |
| | | <ReferenceInput |
| | | source="areaId" |
| | | reference="warehouseAreas" |
| | | source="areaMatId" |
| | | reference="locAreaMat" |
| | | > |
| | | <AutocompleteInput |
| | | label="table.field.loc.areaId" |
| | | optionText="name" |
| | | onChange={(value) => handleChange(value, 'areaId')} |
| | | value={formData.areaId} |
| | | label="table.field.loc.locAreaId" |
| | | optionText="code" |
| | | onChange={(value) => handleChange(value, 'areaMatId')} |
| | | value={formData.areaMatId} |
| | | validate={required()} |
| | | filterToQuery={(val) => ({ name: val })} |
| | | filterToQuery={(val) => ({ code: val })} |
| | | /> |
| | | </ReferenceInput> |
| | | |
| | |
| | | <Card sx={{ p: 1 }}> |
| | | <div style={{ display: 'flex', justifyContent: 'space-between', paddingBottom: '3px', marginBottom: '3px', borderBottom: '1px dashed #d4d4d4' }}> |
| | | <div style={{ fontSize: '17px' }}>物料分组</div> |
| | | <div style={{ display: 'flex', alignItems: 'center', gap: '3px' }}> |
| | | {/* <div style={{ display: 'flex', alignItems: 'center', gap: '3px' }}> |
| | | <AddIcon color={'info'} sx={{ cursor: 'pointer' }} onClick={() => handleAdd()} /> |
| | | |
| | | <DeleteIcon color={'warning'} sx={{ cursor: 'pointer' }} onClick={() => handleDelete()} /> |
| | | </div> |
| | | </div> */} |
| | | </div> |
| | | |
| | | <RichTreeView |
| | |
| | | <Card sx={{ p: 1 }}> |
| | | <div style={{ display: 'flex', justifyContent: 'space-between', paddingBottom: '3px', marginBottom: '3px', borderBottom: '1px dashed #d4d4d4' }}> |
| | | <div style={{ fontSize: '17px' }}>库位类型</div> |
| | | <div style={{ display: 'flex', alignItems: 'center', gap: '3px' }}> |
| | | {/* <div style={{ display: 'flex', alignItems: 'center', gap: '3px' }}> |
| | | <AddIcon color={'info'} sx={{ cursor: 'pointer' }} onClick={() => handleAdd()} /> |
| | | |
| | | <DeleteIcon color={'warning'} sx={{ cursor: 'pointer' }} onClick={() => handleDelete()} /> |
| | | </div> |
| | | </div> */} |
| | | </div> |
| | | |
| | | <RichTreeView |
| | |
| | | const notify = useNotify(); |
| | | |
| | | const [formData, setFormData] = useState({ |
| | | areaId: null, |
| | | areaMatId: null, |
| | | groupId: null, |
| | | matnrId: null, |
| | | }); |
| | |
| | | |
| | | const reset = () => { |
| | | setFormData({ |
| | | areaId: null, |
| | | areaMatId: null, |
| | | groupId: null, |
| | | matnrId: null, |
| | | }) |
| | |
| | | const handleSubmit = async () => { |
| | | const parmas = { |
| | | typeId: selectedIds, |
| | | areaId: formData.areaId, |
| | | areaMatId: formData.areaMatId, |
| | | matnrId: formData.matnrId, |
| | | } |
| | | |
| | |
| | | <Grid container spacing={2}> |
| | | <Grid item xs={4}> |
| | | <ReferenceInput |
| | | source="areaId" |
| | | reference="warehouseAreas" |
| | | source="areaMatId" |
| | | reference="locAreaMat" |
| | | > |
| | | <AutocompleteInput |
| | | label="table.field.loc.areaId" |
| | | optionText="name" |
| | | onChange={(value) => handleChange(value, 'areaId')} |
| | | value={formData.areaId} |
| | | label="table.field.loc.locAreaId" |
| | | optionText="code" |
| | | onChange={(value) => handleChange(value, 'areaMatId')} |
| | | value={formData.areaMatId} |
| | | validate={required()} |
| | | filterToQuery={(val) => ({ name: val })} |
| | | filterToQuery={(val) => ({ code: val })} |
| | | /> |
| | | </ReferenceInput> |
| | | |
| | |
| | | const notify = useNotify(); |
| | | |
| | | const [formData, setFormData] = useState({ |
| | | areaMatId: null, |
| | | areaId: null, |
| | | locId: null, |
| | | }); |
| | |
| | | |
| | | const reset = () => { |
| | | setFormData({ |
| | | areaMatId: null, |
| | | areaId: null, |
| | | locId: null, |
| | | }) |
| | |
| | | const handleSubmit = async () => { |
| | | const parmas = { |
| | | matnrId: selectedIds, |
| | | areaMatId: formData.areaMatId, |
| | | areaId: formData.areaId, |
| | | locId: formData.locId, |
| | | } |
| | |
| | | <Grid container spacing={2}> |
| | | <Grid item xs={4}> |
| | | <ReferenceInput |
| | | source="areaMatId" |
| | | reference="locAreaMat" |
| | | > |
| | | <AutocompleteInput |
| | | label="table.field.loc.locAreaId" |
| | | optionText="code" |
| | | onChange={(value) => handleChange(value, 'areaMatId')} |
| | | value={formData.areaMatId} |
| | | validate={required()} |
| | | filterToQuery={(val) => ({ code: val })} |
| | | /> |
| | | </ReferenceInput> |
| | | </Grid> |
| | | |
| | | <Grid item xs={4}> |
| | | <ReferenceInput |
| | | source="areaId" |
| | | reference="warehouseAreas" |
| | | > |
| | |
| | | |
| | | |
| | | <Grid item xs={4}> |
| | | <ReferenceArrayInput source="locId" reference="loc" > |
| | | <ReferenceArrayInput source="locId" reference="loc" filter={{ areaId: formData.areaId }}> |
| | | <SelectArrayInput |
| | | label="table.field.locAreaMatRela.locId" |
| | | validate={required()} |
| | |
| | | preferenceKey='matnr' |
| | | bulkActionButtons={<> |
| | | <BatchGroupButton /> |
| | | <BatchWarnButton /> |
| | | <BatchFlagButton /> |
| | | <BatchStatusButton /> |
| | | <BatchLevelButton /> |
| | | <BindButton /> |
| | |
| | | ) |
| | | } |
| | | |
| | | const BatchWarnButton = () => { |
| | | const record = useRecordContext(); |
| | | const notify = useNotify(); |
| | | const refresh = useRefresh(); |
| | | |
| | | |
| | | const [createDialog, setCreateDialog] = useState(false); |
| | | |
| | | return ( |
| | | <> |
| | | <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchValidWarn"}> |
| | | <EditIcon /> |
| | | </Button> |
| | | |
| | | <BatchModal |
| | | open={createDialog} |
| | | setOpen={setCreateDialog} |
| | | fieldType={'validWarn'} |
| | | /> |
| | | </> |
| | | |
| | | ) |
| | | } |
| | | |
| | | const BatchFlagButton = () => { |
| | | const record = useRecordContext(); |
| | | const notify = useNotify(); |
| | | const refresh = useRefresh(); |
| | | |
| | | |
| | | const [createDialog, setCreateDialog] = useState(false); |
| | | |
| | | return ( |
| | | <> |
| | | <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchFlagCheck"}> |
| | | <EditIcon /> |
| | | </Button> |
| | | |
| | | <BatchModal |
| | | open={createDialog} |
| | | setOpen={setCreateDialog} |
| | | fieldType={'flagCheck'} |
| | | /> |
| | | </> |
| | | |
| | | ) |
| | | } |
| | | |
| | | const BatchGroupButton = () => { |
| | | const record = useRecordContext(); |
| | | const notify = useNotify(); |