From 669fe984048785873c20fbd0ce8abb3cd52c1fce Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 29 四月 2025 15:22:24 +0800 Subject: [PATCH] 新增出库单优化 --- rsf-admin/src/page/task/TaskList.jsx | 118 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 66 insertions(+), 52 deletions(-) diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx index 64b1462..84fd054 100644 --- a/rsf-admin/src/page/task/TaskList.jsx +++ b/rsf-admin/src/page/task/TaskList.jsx @@ -1,39 +1,31 @@ import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; import { useNavigate } from 'react-router-dom'; +import request from '@/utils/request'; + import { List, DatagridConfigurable, SearchInput, TopToolbar, SelectColumnsButton, - EditButton, FilterButton, - CreateButton, - ExportButton, BulkDeleteButton, WrapperField, useRecordContext, useTranslate, useNotify, - useListContext, - FunctionField, + useRefresh, TextField, NumberField, DateField, BooleanField, - ReferenceField, TextInput, - DateTimeInput, DateInput, SelectInput, NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, Button, } from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; +import { Box, Typography, Card, Stack, Drawer } from '@mui/material'; import { styled } from '@mui/material/styles'; import TaskCreate from "./TaskCreate"; import TaskPanel from "./TaskPanel"; @@ -59,14 +51,14 @@ '& .column-name': { }, '& .opt': { - width: 200 + width: 248 }, })); const filters = [ <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, + <DateInput label='common.time.after' source="timeStart" />, + <DateInput label='common.time.before' source="timeEnd" />, <TextInput source="taskCode" label="table.field.task.taskCode" />, <NumberInput source="taskStatus" label="table.field.task.taskStatus" />, <NumberInput source="taskType" label="table.field.task.taskType" />, @@ -94,11 +86,9 @@ />, ] -const TaskList = () => { +const TaskList = (props) => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); - return ( <Box display="flex"> <List @@ -111,22 +101,19 @@ marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} title={"menu.task"} - // empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + empty={false} filters={filters} - sort={{ field: "create_time", order: "desc" }} + sort={{ field: "sort", order: "desc" }} actions={( <TopToolbar> <FilterButton /> - {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} <SelectColumnsButton preferenceKey='task' /> - {/* <MyExportButton /> */} </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} > <StyledDatagrid preferenceKey='task' - // bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} bulkActionButtons={ <> <BulkResortButton /> @@ -134,10 +121,10 @@ <BulkDeleteButton mutationMode={OPERATE_MODE} /> </> } - rowClick={(id, resource, record) => false} - // expand={() => <TaskPanel />} - // expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'sort']} + rowClick={'edit'} + expand={false} + expandSingle={true} + omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'sort']} > <NumberField source="id" /> <TextField source="taskCode" label="table.field.task.taskCode" /> @@ -153,28 +140,19 @@ <TextField source="expDesc" label="table.field.task.expDesc" /> <NumberField source="sort" label="table.field.task.sort" /> <TextField source="expCode" label="table.field.task.expCode" /> - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> + <TextField source="updateBy$" label="common.field.updateBy" /> + <TextField source="createBy$" label="common.field.createBy" /> <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} /> + {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */} <TextField source="memo" label="common.field.memo" sortable={false} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> */} + <WrapperField cellClassName="opt" label="common.field.opt" onClick={(e) => e.stopPropagation()} > <DoneButton sx={{ padding: '1px', fontSize: '.75rem' }} ></DoneButton> <CancelButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> <SetTopButton sx={{ padding: '1px', fontSize: '.75rem' }} ></SetTopButton> </WrapperField> </StyledDatagrid> </List> - {/* <TaskCreate - open={createDialog} - setOpen={setCreateDialog} - /> */} <PageDrawer title='Task Detail' drawerVal={drawerVal} @@ -186,17 +164,31 @@ } export default TaskList; + + /** * 瀹屾垚鎿嶄綔 * @returns */ -const DoneButton = () => { +const DoneButton = (props) => { const record = useRecordContext(); - const clickComplete = () => { - completeTask([record]) + const notify = useNotify(); + const refresh = useRefresh(); + const clickComplete = (event) => { + event.stopPropagation(); + completeTask(record) }; //瀹屾垚浠诲姟 - const completeTask = async (row) => { } + const completeTask = async (row) => { + console.log(row.id); + const { data: { code, data, msg } } = await request.post(`task/complete/` + row.id); + if (code === 200) { + notify(msg); + refresh(); + } else { + notify(msg); + } + } return ( <Button onClick={clickComplete} @@ -212,11 +204,23 @@ */ const CancelButton = () => { const record = useRecordContext(); - const clickCancel = () => { - cancleTask([record]) + const notify = useNotify(); + const refresh = useRefresh(); + const clickCancel = (event) => { + event.stopPropagation(); + cancleTask(record) }; //鍙栨秷浠诲姟 - const cancleTask = async (row) => {} + const cancleTask = async (row) => { + console.log(row); + const { data: { code, data, msg } } = await request.post(`/task/remove/` + row.id); + if (code === 200) { + notify(msg); + refresh(); + } else { + notify(msg); + } + } return ( <Button onClick={clickCancel} @@ -231,11 +235,22 @@ */ const SetTopButton = () => { const record = useRecordContext(); - const clickTop = () => { - topTask([record]) + const notify = useNotify(); + const refresh = useRefresh(); + const clickTop = (event) => { + event.stopPropagation(); + topTask(record) }; //缃《浠诲姟 - const topTask = async (row) => { } + const topTask = async (row) => { + const { data: { code, data, msg } } = await request.post(`/task/top/` + row.id); + if (code === 200) { + notify(msg); + refresh(); + } else { + notify(msg); + } + } return ( <Button onClick={clickTop} @@ -255,7 +270,7 @@ cancleTask([record]) }; //鍙栨秷浠诲姟 - const cancleTask = async (row) => {} + const cancleTask = async (row) => { } return ( <Button onClick={clickCancel} @@ -283,5 +298,4 @@ <SwapVertIcon /> </Button> ) - } \ No newline at end of file -- Gitblit v1.9.1