verou
2025-04-03 0d42706148e164656334d3dbd284daf4f2bf1b30
feat:收货单完成
6个文件已修改
73 ■■■■ 已修改文件
rsf-admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/asnOrder/AsnOrderList.jsx 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/asnOrder/AsnOrderModal.jsx 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/qlyInspect/QlyInspectList.jsx 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/.env
@@ -1,3 +1,3 @@
VITE_BASE_IP=192.168.4.13
VITE_BASE_IP=192.168.4.24
# VITE_BASE_IP=47.76.147.249
VITE_BASE_PORT=8080
rsf-admin/src/page/asnOrder/AsnOrderList.jsx
@@ -48,6 +48,7 @@
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 request from '@/utils/request';
@@ -101,6 +102,7 @@
  const [createDialog, setCreateDialog] = useState(false);
  const [drawerVal, setDrawerVal] = useState(false);
  const [modalType, setmodalType] = useState(0);
  const [billReload, setBillReload] = useState(null);
  const navigate = useNavigate();
  const assign = (record) => {
@@ -138,7 +140,7 @@
          preferenceKey='asnOrder'
          bulkActionButtons={<> <InspectionsButton /><BulkDeleteButton mutationMode={OPERATE_MODE} /></>}
          rowClick={() => false}
          expand={<AsnOrderPanel />}
          expand={<AsnOrderPanel setBillReload={setBillReload} />}
          expandSingle={true}
          omit={['id', 'createTime', 'createBy', 'memo', 'poId']}
        >
@@ -179,6 +181,7 @@
            >
            </Button> */}
            <InspectionButton />
            <CompleteButton />
            <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
          </WrapperField>
        </StyledDatagrid>
@@ -187,6 +190,7 @@
        open={createDialog}
        setOpen={setCreateDialog}
        asnId={modalType}
        billReload={billReload}
      />
      <PageDrawer
        title='AsnOrder Detail'
@@ -278,3 +282,26 @@
    </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 (
    <Button onClick={requestComplete} label={"toolbar.complete"} color="success">
      <TaskIcon />
    </Button>
  )
}
rsf-admin/src/page/asnOrder/AsnOrderModal.jsx
@@ -57,7 +57,7 @@
import DictSelect from "../components/DictSelect";
const AsnOrderModal = (props) => {
    const { open, setOpen, asnId } = props;
    const { open, setOpen, asnId, billReload } = props;
    const translate = useTranslate();
    const notify = useNotify();
@@ -108,6 +108,7 @@
            const res = await request.post(`/asnOrder/items/save`, parmas);
            if (res?.data?.code === 200) {
                setOpen(false);
                billReload()
                refresh();
            } else {
                notify(res.data.msg);
@@ -121,6 +122,7 @@
            if (res?.data?.code === 200) {
                setOpen(false);
                refresh();
            } else {
                notify(res.data.msg);
            }
rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
@@ -15,7 +15,7 @@
import { DataGrid } from '@mui/x-data-grid';
import PrintModal from './PrintModal';
import { width } from "@mui/system";
const AsnOrderPanel = () => {
const AsnOrderPanel = ({ setBillReload }) => {
    const record = useRecordContext();
    if (!record) return null;
    const translate = useTranslate();
@@ -26,7 +26,13 @@
    useEffect(() => {
        debouncedHttp({ maktx });
        setBillReload(http)
    }, [asnId, maktx]);
    useEffect(() => {
        setBillReload(http)
    }, []);
    const http = async (parmas) => {
@@ -37,6 +43,7 @@
            notify(res.data.msg);
        }
    }
    const debouncedHttp = useMemo(() => debounce(http, 300), []);
@@ -104,7 +111,8 @@
        },
        {
            field: 'trackCode',
            headerName: translate('table.field.asnOrderItem.barcode')
            headerName: translate('table.field.asnOrderItem.barcode'),
            width: 150
        },
        {
            field: 'prodTime',
rsf-admin/src/page/qlyInspect/QlyInspectList.jsx
@@ -107,7 +107,13 @@
                    marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                }}
                title={"menu.qlyInspect"}
                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
                empty={<EmptyData
                    children={
                        <Box sx={{ gap: 2, display: 'flex' }}>
                            <AsnCreatButton isInit={true} />
                        </Box>
                    }
                    onClick={() => { }} />}
                filters={filters}
                sort={{ field: "create_time", order: "desc" }}
                actions={(
@@ -244,19 +250,23 @@
    )
}
const AsnCreatButton = () => {
const AsnCreatButton = ({ isInit }) => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"}>
                <AddIcon />
            </Button>
            {
                isInit ? <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"} variant="contained"
                    color="primary">
                    <AddIcon />
                </Button> : <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"} >
                    <AddIcon />
                </Button>
            }
            <AsnSelModal
                open={createDialog}
rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
@@ -127,7 +127,7 @@
                    preferenceKey='warehouseAreasItem'
                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
                    rowClick={(id, resource, record) => false}
                    omit={['id', 'createTime', 'createBy', 'memo']}
                    omit={['id', 'createTime', 'createBy', 'memo', 'areaId', 'matnrId']}
                >
                    <NumberField source="id" />
                    <NumberField source="areaId" label="table.field.warehouseAreasItem.areaId" />