From 05951bf4f4eacc72552eb6763c640aa8b2067105 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 08 四月 2025 17:27:40 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 58 ++++++++++++++-----
rsf-admin/src/page/components/BillStatusField.jsx | 30 ++++++++++
rsf-admin/src/page/components/EditTopToolBar.jsx | 2
rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx | 7 +-
rsf-admin/src/page/components/ConfirmButton.jsx | 2
rsf-admin/src/config/MyDataProvider.js | 2
rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx | 13 +++
rsf-admin/src/i18n/zh.js | 4
rsf-admin/.env | 2
rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx | 2
rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx | 18 ++++-
rsf-admin/src/page/asnOrder/AsnOrderModal.jsx | 12 +++
12 files changed, 118 insertions(+), 34 deletions(-)
diff --git a/rsf-admin/.env b/rsf-admin/.env
index a3c69b2..a8ce658 100644
--- a/rsf-admin/.env
+++ b/rsf-admin/.env
@@ -1,3 +1,3 @@
-VITE_BASE_IP=127.0.0.1
+VITE_BASE_IP=192.168.4.24
# VITE_BASE_IP=47.76.147.249
VITE_BASE_PORT=8080
diff --git a/rsf-admin/src/config/MyDataProvider.js b/rsf-admin/src/config/MyDataProvider.js
index cfc312f..897d7ab 100644
--- a/rsf-admin/src/config/MyDataProvider.js
+++ b/rsf-admin/src/config/MyDataProvider.js
@@ -60,7 +60,6 @@
// create a record
create: async (resource, params) => {
- console.log("create", resource, params);
const res = await request.post(resource + "/save", params?.data);
const { code, msg, data } = res.data;
if (code === 200) {
@@ -75,7 +74,6 @@
// update a record based on a patch
update: async (resource, params) => {
- console.log("update", resource, params);
const res = await request.post(resource + "/update", {
id: params.id,
...params.data,
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index c19a91a..8b0c4ab 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -271,7 +271,7 @@
name: "鐗╂枡鍚嶇О",
code: "鐗╂枡缂栫爜",
shipperId: "璐т富鏍囪瘑",
- groupId: "鍒嗙粍鏍囪瘑",
+ groupId: "鐗╂枡鍒嗙粍",
rglarId: "鎵规瑙勫垯鏍囪瘑",
platCode: "ERP缂栫爜",
spec: "瑙勬牸",
@@ -557,7 +557,7 @@
asnCode: "涓诲崟缂栫爜",
platItemId: "erp鏍囪瘑",
poDetlId: "PO鍗曟爣璇�",
- poCode: "PO鍗曠紪鐮�",
+ poDetlCode: "PO鍗曠紪鐮�",
fieldsIndex: "瀛楁绱㈠紩",
matnrId: "鐗╂枡鏍囪瘑",
matnrCode: "鐗╂枡缂栫爜",
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
index c4da83b..561522a 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';
@@ -49,8 +51,9 @@
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': {
@@ -62,7 +65,10 @@
'& .column-name': {
},
'& .opt': {
- width: 300
+ width: 320
+ },
+ '& .status': {
+ width: 100
},
}));
@@ -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 = () => {
@@ -164,8 +167,7 @@
<TextField source="nickname" />
</ReferenceField>
<DateField source="createTime" label="common.field.createTime" showTime />
- <TextField source="exceStatus$" label="common.field.status" />
- {/* <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" width={300} >
{/* <Button label="toolbar.print" onClick={print}>
@@ -183,7 +185,8 @@
</Button> */}
<InspectionButton />
<CompleteButton />
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
+ {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
+ <CloseButton />
</WrapperField>
</StyledDatagrid>
</List>
@@ -301,8 +304,33 @@
return (
- <Button onClick={requestComplete} label={"toolbar.complete"} color="success">
+ record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="success">
<TaskIcon />
- </Button>
+ </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>)
)
}
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx
index 90e2269..e8fa4ac 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx
@@ -73,6 +73,7 @@
requestGetHead()
requestGetBody()
}
+ setDisabled(false)
}, [open])
const handleClose = (event, reason) => {
@@ -98,6 +99,14 @@
[name]: value
}));
};
+
+ const resetData = () => {
+ setFormData({
+ type: '',
+ wkType: '',
+ })
+ setTableData([])
+ }
const setFinally = () => {
const rows = tableRef.current.state.editRows;
@@ -126,6 +135,7 @@
setOpen(false);
refresh();
billReload?.current()
+ resetData()
} else {
notify(res.data.msg);
}
@@ -139,7 +149,7 @@
setOpen(false);
refresh();
billReload?.current()
-
+ resetData()
} else {
notify(res.data.msg);
}
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
index 61763e5..00c0a89 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
+++ b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
@@ -14,7 +14,7 @@
import debounce from 'lodash/debounce';
import { DataGrid } from '@mui/x-data-grid';
import PrintModal from './PrintModal';
-import { width } from "@mui/system";
+import PrintIcon from '@mui/icons-material/Print';
const AsnOrderPanel = ({ billReload }) => {
const record = useRecordContext();
if (!record) return null;
@@ -157,6 +157,7 @@
<DataGrid
+ sx={{ width: 'calc(100vw - 280px)' }}
size="small"
rows={rows}
columns={columns}
@@ -196,7 +197,7 @@
return (
<>
- <Button size="small" variant="contained" color="secondary" onClick={modalChange}>{translate("toolbar.batchPrint")}</Button>
+ <Button size="small" color="secondary" onClick={modalChange} startIcon={<PrintIcon />}>{translate("toolbar.batchPrint")}</Button>
<PrintModal
open={createDialog}
@@ -218,7 +219,7 @@
return (
<>
- <Button size="small" variant="contained" color="secondary" onClick={() => setCreateDialog(true)}>{translate("toolbar.print")}</Button>
+ <Button size="small" color="secondary" onClick={() => setCreateDialog(true)} startIcon={<PrintIcon />}>{translate("toolbar.print")}</Button>
<PrintModal
open={createDialog}
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
index ffec017..04ff032 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
@@ -74,7 +74,6 @@
const MatnrEdit = () => {
const translate = useTranslate();
const [value, setValue] = React.useState(0);
- const form = useForm();
const notify = useNotify();
const [dynamicFields, setDynamicFields] = useState([]);
@@ -268,7 +267,7 @@
{dynamicFields.map((item) => {
return (
<Grid key={item.id} item xs={6} display="flex" gap={1}>
- <TextInput
+ <DynamicFields
label={item.fieldsAlise}
source={item.fields}
validate={item.unique === 1 ? required() : false}
@@ -276,8 +275,6 @@
</Grid>
)
})}
-
-
</Grid>
@@ -367,3 +364,16 @@
}
export default MatnrEdit;
+
+const DynamicFields = (props) => {
+ const { ...parmas } = props;
+ const form = useFormContext();
+ const field = `extendFields.${parmas.source}`;
+ const value = form.getValues(field);
+ value && form.setValue(parmas.source, value);
+ return (
+ <TextInput
+ {...parmas}
+ />
+ )
+}
diff --git a/rsf-admin/src/page/components/BillStatusField.jsx b/rsf-admin/src/page/components/BillStatusField.jsx
new file mode 100644
index 0000000..b60ff1c
--- /dev/null
+++ b/rsf-admin/src/page/components/BillStatusField.jsx
@@ -0,0 +1,30 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import {
+ useRecordContext,
+} from 'react-admin';
+import { Box, Typography, Card, Stack } from '@mui/material';
+import { useTheme } from '@mui/material/styles';
+import CircleIcon from '@mui/icons-material/Circle';
+
+const BillStatusField = () => {
+ const record = useRecordContext();
+ const theme = useTheme();
+ const color = {
+ 0: '#BFBFBF',
+ 1: '#FFC53D',
+ 2: '#52C41A',
+ 3: '#595959',
+ 4: '#FF4D4F',
+ }
+ return (
+ <Typography
+ variant="body2"
+ sx={{ display: 'flex', alignItems: 'center' }}
+ >
+ <CircleIcon sx={{ fontSize: 10, color: color[record.exceStatus || 0], marginRight: '3px' }} /> {record.exceStatus$}
+ </Typography >
+ )
+
+}
+
+export default BillStatusField;
\ No newline at end of file
diff --git a/rsf-admin/src/page/components/ConfirmButton.jsx b/rsf-admin/src/page/components/ConfirmButton.jsx
index e39fe98..c315e7c 100644
--- a/rsf-admin/src/page/components/ConfirmButton.jsx
+++ b/rsf-admin/src/page/components/ConfirmButton.jsx
@@ -44,7 +44,7 @@
<DialogTitle>{translate('common.msg.confirm.tip')}</DialogTitle>
<DialogContent>
<DialogContentText>
- {translate('common.msg.confirm.desc')}
+ {data ? data : translate('common.msg.confirm.desc')}
</DialogContentText>
</DialogContent>
<DialogActions>
diff --git a/rsf-admin/src/page/components/EditTopToolBar.jsx b/rsf-admin/src/page/components/EditTopToolBar.jsx
index fbbdb38..8a5c8f6 100644
--- a/rsf-admin/src/page/components/EditTopToolBar.jsx
+++ b/rsf-admin/src/page/components/EditTopToolBar.jsx
@@ -9,7 +9,7 @@
const resource = useResourceContext();
const translate = useTranslate();
-
+
return (
<TopToolbar sx={{
marginTop: 1,
diff --git a/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx b/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx
index 80fac6f..d04c3e1 100644
--- a/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx
+++ b/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx
@@ -19,6 +19,8 @@
required,
useRecordContext,
DeleteButton,
+ useNotify,
+ useRedirect,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography } from '@mui/material';
@@ -30,11 +32,18 @@
import StatusSelectInput from "../../../components/StatusSelectInput";
const FormToolbar = () => {
- const { getValues } = useFormContext();
+ const form = useFormContext();
+ const redirect = useRedirect();
+ const notify = useNotify();
+ const onSuccess = (data) => {
+ const { dictTypeId, dictTypeCode } = data
+ notify(`淇敼鎴愬姛!`);
+ redirect(`/dictData?dictTypeId=${dictTypeId}&code=${dictTypeCode}`);
+ }
return (
<Toolbar sx={{ justifyContent: 'space-between' }}>
- <SaveButton />
+ <SaveButton type="button" mutationOptions={{ onSuccess }} />
<DeleteButton mutationMode="optimistic" />
</Toolbar>
)
diff --git a/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx b/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx
index 7af9d9d..5506184 100644
--- a/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx
+++ b/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx
@@ -62,8 +62,6 @@
const filters = [
<SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
<TextInput source="dictTypeId" label="table.field.dictData.dictTypeId" />,
<TextInput source="dictTypeCode" label="table.field.dictData.dictTypeCode" />,
--
Gitblit v1.9.1