From bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 24 七月 2025 15:00:44 +0800 Subject: [PATCH] 新增调拔单功能 盘点功能优化 --- rsf-admin/src/page/task/TaskItemList.jsx | 131 +++++++++++++++++++++++++++++++------------ 1 files changed, 94 insertions(+), 37 deletions(-) diff --git a/rsf-admin/src/page/task/TaskItemList.jsx b/rsf-admin/src/page/task/TaskItemList.jsx index 67ae0ab..76e19e7 100644 --- a/rsf-admin/src/page/task/TaskItemList.jsx +++ b/rsf-admin/src/page/task/TaskItemList.jsx @@ -14,18 +14,22 @@ BooleanField, ReferenceField, TextInput, + useRefresh, DateInput, + useNotify, SelectInput, + useListContext, NumberInput, useGetRecordId, } from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; +import { Box, Typography, Card, Stack, LinearProgress } from '@mui/material'; import { styled } from '@mui/material/styles'; import PageDrawer from "../components/PageDrawer"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import MyCreateButton from "../components/MyCreateButton"; import TaskItemCreate from "./TaskItemCreate"; - +import request from '@/utils/request'; + const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { height: '.9em' @@ -43,8 +47,8 @@ const filters = [ <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" />, - <DateInput label='common.time.before' source="timeEnd" />, + <DateInput label='common.time.after' source="timeStart" />, + <DateInput label='common.time.before' source="timeEnd" />, <NumberInput source="taskId" label="table.field.taskItem.taskId" />, <NumberInput source="orderId" label="table.field.taskItem.orderId" />, <NumberInput source="orderType" label="table.field.taskItem.orderType" />, @@ -54,6 +58,9 @@ <TextInput source="matnrCode" label="table.field.taskItem.matnrCode" />, <TextInput source="unit" label="table.field.taskItem.unit" />, <NumberInput source="anfme" label="table.field.taskItem.anfme" />, + <TextInput source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />, + <TextInput source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" />, + <TextInput source="projectCode" label="table.field.asnOrderItem.projectCode" />, <TextInput source="batch" label="table.field.taskItem.batch" />, <TextInput source="spec" label="table.field.taskItem.spec" />, <TextInput source="model" label="table.field.taskItem.model" />, @@ -91,7 +98,7 @@ empty={false} pagination={false} filters={filters} - filter={{taskId: recordId}} + filter={{ taskId: recordId }} sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> @@ -103,38 +110,7 @@ )} perPage={DEFAULT_PAGE_SIZE} > - <StyledDatagrid - preferenceKey='taskItem' - bulkActionButtons={false} - rowClick={(id, resource, record) => false} - // expand={() => <TaskItemPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId']} - > - <NumberField source="id" /> - <NumberField source="taskId" label="table.field.taskItem.taskId" /> - <NumberField source="orderId" label="table.field.taskItem.orderId" /> - <NumberField source="orderType$" label="table.field.taskItem.orderType" /> - <NumberField source="orderItemId" label="table.field.taskItem.orderItemId" /> - <NumberField source="matnrId" label="table.field.taskItem.matnrId" /> - <TextField source="maktx" label="table.field.taskItem.maktx" /> - <TextField source="matnrCode" label="table.field.taskItem.matnrCode" /> - <TextField source="unit" label="table.field.taskItem.unit" /> - <NumberField source="anfme" label="table.field.taskItem.anfme" /> - <TextField source="batch" label="table.field.taskItem.batch" /> - <TextField source="spec" label="table.field.taskItem.spec" /> - <TextField source="model" label="table.field.taskItem.model" /> - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="createTime" label="common.field.createTime" showTime /> - <BooleanField source="statusBool" label="common.field.status" sortable={false} /> - <TextField source="memo" label="common.field.memo" sortable={false} /> - </StyledDatagrid> + <DynamicFields /> </List> <TaskItemCreate open={createDialog} @@ -150,3 +126,84 @@ } export default TaskItemList; + + +const DynamicFields = (props) => { + const translate = useTranslate(); + const notify = useNotify(); + const [columns, setColumns] = useState([]); + const { isLoading } = useListContext(); + const refresh = useRefresh(); + useEffect(() => { + getDynamicFields(); + }, []); + + const getDynamicFields = async () => { + const { data: { code, data, msg }, } = await request.get("/fields/enable/list"); + if (code == 200) { + const arr = [ + <NumberField source="id" />, + <NumberField source="taskId" label="table.field.taskItem.taskId" />, + <NumberField source="orderId" label="table.field.taskItem.orderId" />, + <NumberField source="orderType$" label="table.field.taskItem.orderType" />, + <NumberField source="wkType$" label="table.field.taskItem.wkType" />, + <NumberField source="orderItemId" label="table.field.taskItem.orderItemId" />, + <NumberField source="matnrId" label="table.field.taskItem.matnrId" />, + <TextField source="maktx" label="table.field.taskItem.maktx" />, + <TextField source="matnrCode" label="table.field.taskItem.matnrCode" />, + <TextField source="unit" label="table.field.taskItem.unit" />, + <NumberField source="anfme" label="table.field.taskItem.anfme" />, + <TextField source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />, + <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" />, + <TextField source="projectCode" label="table.field.asnOrderItem.projectCode" />, + <TextField source="batch" label="table.field.taskItem.batch" />, + <TextField source="isptResult$" label="table.field.taskItem.isptResult" />, + <TextField source="spec" label="table.field.taskItem.spec" />, + <TextField source="model" label="table.field.taskItem.model" />, + ] + const fields = data.map(el => <TextField key={el.fields} source={`extendFields.[${el.fields}]`} label={el.fieldsAlise} />) + const lastArr = [ + <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> + <TextField source="nickname" /> + </ReferenceField>, + <DateField source="updateTime" label="common.field.updateTime" showTime />, + <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> + <TextField source="nickname" /> + </ReferenceField>, + <DateField source="createTime" label="common.field.createTime" showTime />, + <BooleanField source="statusBool" label="common.field.status" sortable={false} />, + <TextField source="memo" label="common.field.memo" sortable={false} />, + ] + setColumns([...arr, ...fields, ...lastArr]); + } else { + notify(msg); + } + } + + return ( + <Box sx={{ position: 'relative', minHeight: "60vh", }}> + {isLoading && ( + <LinearProgress + sx={{ + height: "2px", + position: 'absolute', + top: 0, + left: 0, + right: 0, + }} + /> + )} + {columns.length > 0 && + <StyledDatagrid + preferenceKey='taskItem' + bulkActionButtons={false} + rowClick={false} + // expand={() => <TaskItemPanel />} + expandSingle={true} + omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId', 'platWorkCode', 'projectCode','statusBool']} + > + {columns.map((column) => column)} + </StyledDatagrid>} + </Box> + ) +} -- Gitblit v1.9.1