|  |  |  | 
|---|
|  |  |  | TextField, | 
|---|
|  |  |  | NumberField, | 
|---|
|  |  |  | DateField, | 
|---|
|  |  |  | useRefresh, | 
|---|
|  |  |  | BooleanField, | 
|---|
|  |  |  | ReferenceField, | 
|---|
|  |  |  | TextInput, | 
|---|
|  |  |  | Button, | 
|---|
|  |  |  | DateTimeInput, | 
|---|
|  |  |  | DateInput, | 
|---|
|  |  |  | SelectInput, | 
|---|
|  |  |  | 
|---|
|  |  |  | ReferenceArrayInput, | 
|---|
|  |  |  | AutocompleteInput, | 
|---|
|  |  |  | DeleteButton, | 
|---|
|  |  |  | useRedirect, | 
|---|
|  |  |  | } from 'react-admin'; | 
|---|
|  |  |  | import { Box, Typography, Card, Stack } from '@mui/material'; | 
|---|
|  |  |  | import { styled } from '@mui/material/styles'; | 
|---|
|  |  |  | import TransferCreate from "./TransferCreate.jsx"; | 
|---|
|  |  |  | import TransferPanel from "./TransferPanel.jsx"; | 
|---|
|  |  |  | import EmptyData from "../../components/EmptyData.jsx"; | 
|---|
|  |  |  | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting.js'; | 
|---|
|  |  |  | import MyCreateButton from "../../components/MyCreateButton.jsx"; | 
|---|
|  |  |  | import MyExportButton from '../../components/MyExportButton.jsx'; | 
|---|
|  |  |  | import PageDrawer from "../../components/PageDrawer.jsx"; | 
|---|
|  |  |  | import MyField from "../../components/MyField.jsx"; | 
|---|
|  |  |  | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting.js'; | 
|---|
|  |  |  | import BillStatusField from '../../components/BillStatusField'; | 
|---|
|  |  |  | import { Box, Typography, Card, Stack, } from '@mui/material'; | 
|---|
|  |  |  | import PageEditDrawer from "../../components/PageEditDrawer"; | 
|---|
|  |  |  | import ConfirmButton from '../../components/ConfirmButton'; | 
|---|
|  |  |  | import AddTaskIcon from '@mui/icons-material/AddTask'; | 
|---|
|  |  |  | import TransferOrders from "./TransferOrders.jsx"; | 
|---|
|  |  |  | import ManualCreate from "./ManualCreate.jsx"; | 
|---|
|  |  |  | import { styled } from '@mui/material/styles'; | 
|---|
|  |  |  | import * as Common from '@/utils/common.js'; | 
|---|
|  |  |  | import request from '@/utils/request'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ | 
|---|
|  |  |  | '& .css-1vooibu-MuiSvgIcon-root': { | 
|---|
|  |  |  | 
|---|
|  |  |  | <SearchInput source="condition" alwaysOn />, | 
|---|
|  |  |  | <DateInput label='common.time.after' source="timeStart" alwaysOn />, | 
|---|
|  |  |  | <DateInput label='common.time.before' source="timeEnd" alwaysOn />, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <TextInput source="code" label="table.field.transfer.code" />, | 
|---|
|  |  |  | <NumberInput source="type" label="table.field.transfer.type" />, | 
|---|
|  |  |  | <SelectInput source="source" label="table.field.transfer.source" | 
|---|
|  |  |  | choices={[ | 
|---|
|  |  |  | { id: 1, name: 'ERP系统' }, | 
|---|
|  |  |  | { id:  2, name: 'WMS系统生成' }, | 
|---|
|  |  |  | { id:  3, name: 'EXCEL导入 ' }, | 
|---|
|  |  |  | { id:  4, name: 'QMS系统' }, | 
|---|
|  |  |  | { id: 2, name: 'WMS系统生成' }, | 
|---|
|  |  |  | { id: 3, name: 'EXCEL导入 ' }, | 
|---|
|  |  |  | { id: 4, name: 'QMS系统' }, | 
|---|
|  |  |  | ]} | 
|---|
|  |  |  | />, | 
|---|
|  |  |  | <SelectInput source="exceStatus" label="table.field.transfer.exceStatus" | 
|---|
|  |  |  | choices={[ | 
|---|
|  |  |  | { id: 0, name: '未执行' }, | 
|---|
|  |  |  | { id:  1, name: '执行中' }, | 
|---|
|  |  |  | { id:  2, name: '执行完成' }, | 
|---|
|  |  |  | { id: 1, name: '执行中' }, | 
|---|
|  |  |  | { id: 2, name: '执行完成' }, | 
|---|
|  |  |  | ]} | 
|---|
|  |  |  | />, | 
|---|
|  |  |  | <NumberInput source="orgWareId" label="table.field.transfer.orgWareId" />, | 
|---|
|  |  |  | 
|---|
|  |  |  | <TextInput source="orgAreaName" label="table.field.transfer.orgAreaName" />, | 
|---|
|  |  |  | <NumberInput source="tarAreaId" label="table.field.transfer.tarAreaId" />, | 
|---|
|  |  |  | <TextInput source="tarAreaName" label="table.field.transfer.tarAreaName" />, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <TextInput label="common.field.memo" source="memo" />, | 
|---|
|  |  |  | <SelectInput | 
|---|
|  |  |  | label="common.field.status" | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const TransferList = () => { | 
|---|
|  |  |  | const translate = useTranslate(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const [createDialog, setCreateDialog] = useState(false); | 
|---|
|  |  |  | const [drawerVal, setDrawerVal] = useState(false); | 
|---|
|  |  |  | const [select, setSelect] = useState({}); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <Box display="flex"> | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <StyledDatagrid | 
|---|
|  |  |  | preferenceKey='transfer' | 
|---|
|  |  |  | bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} | 
|---|
|  |  |  | bulkActionButtons={false} | 
|---|
|  |  |  | rowClick={(id, resource, record) => false} | 
|---|
|  |  |  | expand={() => <TransferPanel />} | 
|---|
|  |  |  | expand={() => <TransferOrders />} | 
|---|
|  |  |  | expandSingle={true} | 
|---|
|  |  |  | omit={['id', 'createTime', 'createBy', 'memo']} | 
|---|
|  |  |  | omit={['id', 'createTime', 'createBy$', 'memo', 'orgWareId', 'tarWareId', 'orgAreaId', 'tarAreaId']} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <NumberField source="id" /> | 
|---|
|  |  |  | <TextField source="code" label="table.field.transfer.code" /> | 
|---|
|  |  |  | <NumberField source="type" label="table.field.transfer.type" /> | 
|---|
|  |  |  | <NumberField source="type$" label="table.field.transfer.type" /> | 
|---|
|  |  |  | <TextField source="source$" label="table.field.transfer.source" sortable={false} /> | 
|---|
|  |  |  | <TextField source="exceStatus$" label="table.field.transfer.exceStatus" sortable={false} /> | 
|---|
|  |  |  | <NumberField source="orgWareId" label="table.field.transfer.orgWareId" /> | 
|---|
|  |  |  | <TextField source="orgWareName" label="table.field.transfer.orgWareName" /> | 
|---|
|  |  |  | <NumberField source="tarWareId" label="table.field.transfer.tarWareId" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <TextField source="orgAreaName" label="table.field.transfer.orgAreaName" /> | 
|---|
|  |  |  | <NumberField source="tarAreaId" label="table.field.transfer.tarAreaId" /> | 
|---|
|  |  |  | <TextField source="tarAreaName" label="table.field.transfer.tarAreaName" /> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> | 
|---|
|  |  |  | <TextField source="nickname" /> | 
|---|
|  |  |  | </ReferenceField> | 
|---|
|  |  |  | <BillStatusField source="exceStatus$" cellClassName="status" label="table.field.transfer.exceStatus" sortable={false} /> | 
|---|
|  |  |  | <TextField source="updateBy$" label="common.field.updateBy" /> | 
|---|
|  |  |  | <DateField source="updateTime" label="common.field.updateTime" showTime /> | 
|---|
|  |  |  | <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> | 
|---|
|  |  |  | <TextField source="nickname" /> | 
|---|
|  |  |  | </ReferenceField> | 
|---|
|  |  |  | <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} /> | 
|---|
|  |  |  | <WrapperField cellClassName="opt" label="common.field.opt"> | 
|---|
|  |  |  | <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> | 
|---|
|  |  |  | <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} label="toolbar.detail"/> | 
|---|
|  |  |  | <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> | 
|---|
|  |  |  | <PublicButton setDrawerVal={setDrawerVal} drawerVal={drawerVal} setSelect={setSelect} /> | 
|---|
|  |  |  | </WrapperField> | 
|---|
|  |  |  | </StyledDatagrid> | 
|---|
|  |  |  | </List> | 
|---|
|  |  |  | <TransferCreate | 
|---|
|  |  |  | open={createDialog} | 
|---|
|  |  |  | setOpen={setCreateDialog} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <PageDrawer | 
|---|
|  |  |  | title='Transfer Detail' | 
|---|
|  |  |  | drawerVal={drawerVal} | 
|---|
|  |  |  | setDrawerVal={setDrawerVal} | 
|---|
|  |  |  | <PageEditDrawer | 
|---|
|  |  |  | title={"toolbar.createTransfer"} | 
|---|
|  |  |  | drawerVal={createDialog} | 
|---|
|  |  |  | setDrawerVal={setCreateDialog} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </PageDrawer> | 
|---|
|  |  |  | <ManualCreate setOpen={setCreateDialog} /> | 
|---|
|  |  |  | </PageEditDrawer> | 
|---|
|  |  |  | </Box> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default TransferList; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //下发执行 | 
|---|
|  |  |  | const PublicButton = ({ setDrawerVal, setSelect }) => { | 
|---|
|  |  |  | const record = useRecordContext(); | 
|---|
|  |  |  | const refresh = useRefresh(); | 
|---|
|  |  |  | const redirct = useRedirect(); | 
|---|
|  |  |  | const taskEvent = async () => { | 
|---|
|  |  |  | const { data: { code, data, msg } } = await request.post(`/transfer/pub/outStock`, record); | 
|---|
|  |  |  | if (code === 200) { | 
|---|
|  |  |  | notify(msg); | 
|---|
|  |  |  | redirct("/outStock"); | 
|---|
|  |  |  | refresh() | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | notify(msg); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | refresh(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | record?.exceStatus == 0 ? <ConfirmButton label={"toolbar.publicWorking"} startIcon={<AddTaskIcon />} onConfirm={taskEvent} size={"small"} /> : <></> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | } | 
|---|