skyouc
2025-05-23 e42c5977ec786eb72af7294e3d3d8bcf4ae47413
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -56,7 +56,10 @@
import DictionarySelect from "../../components/DictionarySelect";
import ExitToAppIcon from '@mui/icons-material/ExitToApp';
import ImportButton from "../../components/ImportButton";
import PrintOutlinedIcon from '@mui/icons-material/PrintOutlined';
import OrderPrintPreview from "./OrderPrintPreview";
import CreateNewFolderOutlinedIcon from '@mui/icons-material/CreateNewFolderOutlined';
import AsnCreateByPoModal from "./AsnCreateByPoModal";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
  '& .css-1vooibu-MuiSvgIcon-root': {
    height: '.9em'
@@ -112,8 +115,13 @@
  const [createDialog, setCreateDialog] = useState(false);
  const [drawerVal, setDrawerVal] = useState(false);
  const [modalType, setmodalType] = useState(0);
  const [select, setSelect] = useState(0);
  const [poCreate, setPoCreate] = useState(false);
  const [printOrder, setPrintOrder] = useState(false);
  const [select, setSelect] = useState({});
  const invoiceRef = useRef();
  const billReload = useRef();
  const notify = useNotify();
  const refresh = useRefresh();
  const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_business_type')) || [];
  return (
    <Box display="flex">
@@ -128,16 +136,16 @@
          marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
        }}
        title={"menu.asnOrder"}
        empty={<EmptyData onClick={() => { setCreateDialog(true); setmodalType(0) }} />}
        empty={false}
        filters={filters}
        filter={{deleted: 0}}
        sort={{ field: "create_time", order: "desc" }}
        actions={(
          <TopToolbar>
            <FilterButton />
            <MyCreateButton onClick={() => { setCreateDialog(true); setmodalType(0) }} />
            <CreateByPoButton setPoCreate={setPoCreate}/>
            <SelectColumnsButton preferenceKey='asnOrder' />
            <ImportButton value={'asnOrderItem'}  />
            <ImportButton value={'asnOrderItem'} />
            <MyExportButton />
          </TopToolbar>
        )}
@@ -151,12 +159,10 @@
              <InspectionsButton />
              <MyExportButton />
              {/* <BtnBulkExport></BtnBulkExport> */}
              <BulkDeleteButton mutationMode={OPERATE_MODE}
              />
            </>}
          rowClick={false}
          expandSingle={true}
          omit={['id', 'createTime', 'createBy', 'memo', 'poId', 'rleStatus$']}
          omit={['id', 'createTime', 'createBy', 'memo', 'logisNo', 'poId', 'rleStatus$']}
        >
          <NumberField source="id" />
          <TextField source="code" label="table.field.asnOrder.code" />
@@ -166,9 +172,10 @@
          <TextField cellClassName="wkType" source="wkType$" label="table.field.asnOrder.wkType" />
          <NumberField source="anfme" label="table.field.asnOrder.anfme" />
          <NumberField source="qty" label="table.field.asnOrder.qty" />
          <TextField source="logisNo" label="table.field.asnOrder.logisNo" />
          <DateField source="arrTime" label="table.field.asnOrder.arrTime" showTime />
          <TextField source="rleStatus$" label="table.field.asnOrder.rleStatus" sortable={false} />
          <TextField source="logisNo" label="table.field.asnOrder.logisNo" />
          {/* <TextField source="ntyStatus$" label="table.field.asnOrder.ntyStatus" /> */}
          <TextField source="updateBy$" label="common.field.updateBy" />
          <DateField source="updateTime" label="common.field.updateTime" showTime />
          <TextField source="createBy$" label="common.field.createBy" />
@@ -180,7 +187,9 @@
            <MyButton setCreateDialog={setCreateDialog} setmodalType={setmodalType} />
            <InspectionButton />
            <CompleteButton />
            <CloseButton />
            <ODeleteButton />
            <PrintButton setPrintOrder={setPrintOrder} setSelect={setSelect} />
            {/* <CloseButton /> */}
          </WrapperField>
        </StyledDatagrid>
      </List>
@@ -189,6 +198,15 @@
        setOpen={setCreateDialog}
        asnId={modalType}
        billReload={billReload}
      />
      <OrderPrintPreview
        open={printOrder}
        setOpen={setPrintOrder}
        record={select}
      />
      <AsnCreateByPoModal
        open={poCreate}
        setOpen={setPoCreate}
      />
      <PageDrawer
        title='AsnOrder Detail'
@@ -201,6 +219,47 @@
}
export default AsnOrderList;
//按PO单新建
const CreateByPoButton = ({setPoCreate}) => {
  const record = useRecordContext();
  const createEvent = (event) => {
    event.stopPropagation();
    setPoCreate(true)
  }
  return (
    <Button label={"toolbar.poCreate"} onClick={createEvent}>
      <CreateNewFolderOutlinedIcon />
    </Button>
  )
}
//打印按钮
const PrintButton = ({ setPrintOrder, setSelect }) => {
  const record = useRecordContext();
  const printOrder = (event) => {
    event.stopPropagation();
    setPrintOrder(true)
    setSelect(record)
  }
  return (
    <Button label={"toolbar.print"} onClick={printOrder}>
      <PrintOutlinedIcon />
    </Button>
  )
}
const ODeleteButton = () => {
  const record = useRecordContext();
  return (
    record.exceStatus === 0 ? <DeleteButton mutationMode="pessimistic" /> : <></>
  )
}
const MyButton = ({ setCreateDialog, setmodalType }) => {
  const record = useRecordContext();
  const handleEditClick = (btn) => {
@@ -211,17 +270,20 @@
  };
  return (
    <Button
      color="primary"
      startIcon={<EditIcon />}
      onClick={(btn) => handleEditClick(btn)}
      sx={{ ml: 1 }}
      label={'ra.action.edit'}
    >
    </Button>
    record.exceStatus === 1 || record.exceStatus === 0 ?
      <Button
        color="primary"
        startIcon={<EditIcon />}
        onClick={(btn) => handleEditClick(btn)}
        sx={{ ml: 1 }}
        label={'ra.action.edit'}
      >
      </Button>
      : <></>
  )
}
//报检
const InspectionButton = () => {
  const record = useRecordContext();
  const notify = useNotify();
@@ -241,11 +303,8 @@
    }
  }
  return (
    <Button onClick={inspection} label={"toolbar.inspection"}>
      <ConstructionIcon />
    </Button>
    <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} />
  )
}
@@ -253,10 +312,11 @@
  const { selectedIds, onUnselectItems, data } = useListContext();
  const notify = useNotify();
  const refresh = useRefresh();
  const translate = useTranslate();
  const inspection = (btn) => {
    btn.stopPropagation();
    if (selectedIds.length === 0) {
      notify('请选择通知单');
      notify(translate("request.error.select_error_order"));
      return;
    } else {
      const rows = data.filter((item) => selectedIds.includes(item.id))
@@ -328,6 +388,7 @@
  )
}
//完成单据
const CompleteButton = () => {
  const record = useRecordContext();
  const notify = useNotify();
@@ -344,10 +405,10 @@
  }
  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} />)
    // record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="secondary">
    //   <TaskIcon />
    // </Button> : )
    record.exceStatus === 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></>
  )
@@ -369,6 +430,6 @@
  }
  return (
    <ConfirmButton label={"toolbar.close"} color="error" data={'确认是否关闭?'} startIcon={<CloseIcon />} onConfirm={requestClose} />
    <ConfirmButton label={"toolbar.close"} color="error" startIcon={<CloseIcon />} onConfirm={requestClose} />
  )
}