verou
2025-04-08 e05481bd5cc560f3287ceb60f1f771329e27ae4d
rsf-admin/src/page/asnOrder/AsnOrderList.jsx
@@ -41,6 +41,8 @@
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
import MyExportButton from '../components/MyExportButton';
import BillStatusField from '../components/BillStatusField';
import ConfirmButton from '../components/ConfirmButton';
import PageDrawer from "../components/PageDrawer";
import MyField from "../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
@@ -48,6 +50,8 @@
import ConstructionIcon from "@mui/icons-material/Construction";
import FileDownloadIcon from '@mui/icons-material/FileDownload';
import EditIcon from '@mui/icons-material/Edit';
import TaskIcon from '@mui/icons-material/Task';
import CloseIcon from '@mui/icons-material/Close';
import request from '@/utils/request';
@@ -61,13 +65,15 @@
  '& .column-name': {
  },
  '& .opt': {
    width: 200
    width: 320
  },
  '& .status': {
    width: 90
  },
}));
const filters = [
  <SearchInput source="condition" alwaysOn />,
  <TextInput source="code" label="table.field.asnOrder.code" />,
  <TextInput source="poCode" label="table.field.asnOrder.poCode" />,
  <NumberInput source="poId" label="table.field.asnOrder.poId" />,
@@ -102,6 +108,7 @@
  const [createDialog, setCreateDialog] = useState(false);
  const [drawerVal, setDrawerVal] = useState(false);
  const [modalType, setmodalType] = useState(0);
  const billReload = useRef();
  const navigate = useNavigate();
  const assign = (record) => {
@@ -139,7 +146,7 @@
          preferenceKey='asnOrder'
          bulkActionButtons={<> <InspectionsButton /><BulkDeleteButton mutationMode={OPERATE_MODE} /></>}
          rowClick={() => false}
          expand={<AsnOrderPanel />}
          expand={<AsnOrderPanel billReload={billReload} />}
          expandSingle={true}
          omit={['id', 'createTime', 'createBy', 'memo', 'poId']}
        >
@@ -163,9 +170,9 @@
            <TextField source="nickname" />
          </ReferenceField>
          <DateField source="createTime" label="common.field.createTime" showTime />
          <BooleanField source="statusBool" label="common.field.status" sortable={false} />
          <BillStatusField cellClassName="status" source="exceStatus" label="common.field.status" />
          <TextField source="memo" label="common.field.memo" sortable={false} />
          <WrapperField cellClassName="opt" label="common.field.opt" >
          <WrapperField cellClassName="opt" label="common.field.opt" width={300} >
            {/* <Button label="toolbar.print" onClick={print}>
              <FileDownloadIcon />
            </Button> */}
@@ -180,7 +187,9 @@
            >
            </Button> */}
            <InspectionButton />
            <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
            <CompleteButton />
            {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
            <CloseButton />
          </WrapperField>
        </StyledDatagrid>
      </List>
@@ -188,6 +197,7 @@
        open={createDialog}
        setOpen={setCreateDialog}
        asnId={modalType}
        billReload={billReload}
      />
      <PageDrawer
        title='AsnOrder Detail'
@@ -279,3 +289,51 @@
    </Button>
  )
}
const CompleteButton = () => {
  const record = useRecordContext();
  const notify = useNotify();
  const refresh = useRefresh();
  const requestComplete = async () => {
    const { data: { code, data, msg } } = await request.post(`/asnOrder/complete/${record.id}`);
    if (code === 200) {
      notify(msg);
      refresh()
    } else {
      notify(msg);
    }
  }
  return (
    record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="success">
      <TaskIcon />
    </Button> : <ConfirmButton label={"toolbar.complete"} color="success" data={'当前收货数量小于计划数量,是否确认完成'} startIcon={<TaskIcon />} onConfirm={requestComplete} />)
  )
}
const CloseButton = () => {
  const record = useRecordContext();
  const notify = useNotify();
  const refresh = useRefresh();
  const requestClose = async () => {
    const { data: { code, data, msg } } = await request.post(`/asnOrder/close/${record.id}`);
    if (code === 200) {
      notify(msg);
      refresh()
    } else {
      notify(msg);
    }
  }
  return (
    (<Button onClick={requestClose} label={"toolbar.close"} color="error">
      <CloseIcon />
    </Button>)
  )
}