From 84fdac3d7913461c8f1e6d6ec5f22a11b395f922 Mon Sep 17 00:00:00 2001
From: DESKTOP-LMJ82IJ\Eno <creaycat@gmail.com>
Date: 星期四, 10 四月 2025 19:37:37 +0800
Subject: [PATCH] #新增 确认收货修改
---
rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 91 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 72 insertions(+), 19 deletions(-)
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
index 8862faa..ec50864 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
+++ b/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,8 +50,10 @@
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';
-
+import DictionarySelect from "../components/DictionarySelect";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -61,13 +65,15 @@
'& .column-name': {
},
'& .opt': {
- width: 200
+ width: 320
+ },
+ '& .status': {
+ width: 100
},
}));
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" />,
@@ -85,15 +91,12 @@
/>,
<TextInput label="common.field.memo" source="memo" />,
- <SelectInput
- label="common.field.status"
- source="status"
- choices={[
- { id: '1', name: 'common.enums.statusTrue' },
- { id: '0', name: 'common.enums.statusFalse' },
- ]}
- resettable
+ <DictionarySelect
+ label='common.field.status'
+ name="exceStatus"
+ dictTypeCode="sys_asn_exce_status"
/>,
+
]
const AsnOrderList = () => {
@@ -102,6 +105,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) => {
@@ -138,17 +142,17 @@
<StyledDatagrid
preferenceKey='asnOrder'
bulkActionButtons={<> <InspectionsButton /><BulkDeleteButton mutationMode={OPERATE_MODE} /></>}
- rowClick={(id, resource, record) => false}
- expand={(e) => <AsnOrderPanel key={Math.floor(Math.random() * 100)} />}
+ rowClick={() => false}
+ expand={<AsnOrderPanel billReload={billReload} />}
expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
+ omit={['id', 'createTime', 'createBy', 'memo', 'poId']}
>
<NumberField source="id" />
<TextField source="code" label="table.field.asnOrder.code" />
<TextField source="poCode" label="table.field.asnOrder.poCode" />
<NumberField source="poId" label="table.field.asnOrder.poId" />
- <TextField source="type" label="table.field.asnOrder.type" />
- <TextField source="wkType" label="table.field.asnOrder.wkType" />
+ <TextField source="type$" label="table.field.asnOrder.type" />
+ <TextField 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" />
@@ -163,9 +167,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 +184,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 +194,7 @@
open={createDialog}
setOpen={setCreateDialog}
asnId={modalType}
+ billReload={billReload}
/>
<PageDrawer
title='AsnOrder Detail'
@@ -279,3 +286,49 @@
</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 (
+ <ConfirmButton label={"toolbar.close"} color="error" data={'纭鏄惁鍏抽棴锛�'} startIcon={<CloseIcon />} onConfirm={requestClose} />
+ )
+}
--
Gitblit v1.9.1