From 01eb1a829bce01181fe2feb6aec00b657df62e3e Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 29 七月 2025 10:59:31 +0800 Subject: [PATCH] 调拔单功能优化 --- /dev/null | 158 --------------------------------------- rsf-admin/src/page/system/dicts/dictType/DictDataEdit.jsx | 12 ++ rsf-admin/src/page/system/dicts/dictType/DictDataCreate.jsx | 9 ++ rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx | 3 4 files changed, 21 insertions(+), 161 deletions(-) diff --git a/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx b/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx deleted file mode 100644 index 55f78a6..0000000 --- a/rsf-admin/src/page/system/dicts/dictData/DictDataEdit.jsx +++ /dev/null @@ -1,133 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - Edit, - SimpleForm, - FormDataConsumer, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - SaveButton, - Toolbar, - Labeled, - NumberField, - required, - useRecordContext, - DeleteButton, - useNotify, - useRedirect, - useEditContext, -} from 'react-admin'; -import { useWatch, useFormContext } from "react-hook-form"; -import { Stack, Grid, Box, Typography } from '@mui/material'; -import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; -import EditBaseAside from "../../../components/EditBaseAside"; -import CustomerTopToolBar from "../../../components/EditTopToolBar"; -import MemoInput from "../../../components/MemoInput"; -import StatusSelectInput from "../../../components/StatusSelectInput"; - -const FormToolbar = () => { - const form = useFormContext(); - const { record, isPending } = useEditContext(); - const redirect = useRedirect(); - return ( - <Toolbar sx={{ justifyContent: 'end' }}> - <SaveButton type="button" mutationOptions={{onSuccess:() => { - redirect('/dictType/' + record?.dictTypeId) - } }}/> - <DeleteButton mutationMode="optimistic" /> - </Toolbar> - ) -} - -const DictDataEdit = () => { - const translate = useTranslate(); - - return ( - <Edit - redirect="list" - resource="dictData" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar backPrevious={true} />} - aside={<EditBaseAside />} - > - <SimpleForm - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} - > - <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={12} md={8}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.dictData.dictTypeId" - source="dictTypeId" - readOnly - parse={v => v} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.dictData.dictTypeCode" - source="dictTypeCode" - readOnly - parse={v => v} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.dictData.value" - source="value" - parse={v => v} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.dictData.label" - source="label" - validate={required()} - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.dictData.sort" - source="sort" - /> - </Stack> - {/* <Stack direction='row' gap={2}> - <TextInput - label="table.field.dictData.color" - source="color" - parse={v => v} - /> - </Stack> */} - - </Grid> - <Grid item xs={12} md={4}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > - ) -} - -export default DictDataEdit; diff --git a/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx b/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx deleted file mode 100644 index 2b0b618..0000000 --- a/rsf-admin/src/page/system/dicts/dictData/DictDataList.jsx +++ /dev/null @@ -1,158 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; -import { useNavigate, useLocation } from 'react-router-dom'; -import { - List, - DatagridConfigurable, - SearchInput, - TopToolbar, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, - useTranslate, - useNotify, - useListContext, - FunctionField, - TextField, - NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, - useGetRecordId, - useGetPathForRecord, - useGetOne, -} from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import DictDataCreate from "./DictDataCreate"; -import EmptyData from "../../../components/EmptyData"; -import MyCreateButton from "../../../components/MyCreateButton"; -import MyExportButton from '../../../components/MyExportButton'; -import PageDrawer from "../../../components/PageDrawer"; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; - - -const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ - '& .css-1vooibu-MuiSvgIcon-root': { - height: '.9em' - }, - '& .RaDatagrid-row': { - cursor: 'auto' - }, - '& .column-name': { - }, - '& .opt': { - width: 200 - }, -})); - -const filters = [ - <SearchInput source="condition" alwaysOn />, - <TextInput source="dictTypeId" label="table.field.dictData.dictTypeId" />, - <TextInput source="dictTypeCode" label="table.field.dictData.dictTypeCode" />, - <TextInput source="value" label="table.field.dictData.value" />, - <TextInput source="label" label="table.field.dictData.label" />, - <NumberInput source="sort" label="table.field.dictData.sort" />, - // <TextInput source="color" label="table.field.dictData.color" />, - <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 - />, -] - -const DictDataList = () => { - const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); - const [drawerVal, setDrawerVal] = useState(false); - const dictId = useGetRecordId(); - const {data: dicts, isPending, error} = useGetOne('dictType', {id: dictId}); - - return ( - <> - <Box display="flex" > - <List - resource="dictData" - sx={{ - flexGrow: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, - }} - title={"menu.dictData"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} - filters={filters} - filter={{ dictTypeId: dictId }} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='dictData' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='dictData' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick="edit" - omit={['id', 'createTime', 'createBy', 'memo']} - > - <NumberField source="id" /> - <TextField source="dictTypeId" label="table.field.dictData.dictTypeId" /> - <TextField source="dictTypeCode" label="table.field.dictData.dictTypeCode" /> - <TextField source="value" label="table.field.dictData.value" /> - <TextField source="label" label="table.field.dictData.label" /> - <NumberField source="sort" label="table.field.dictData.sort" /> - <TextField source="updateBy$" label="common.field.updateBy" /> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <TextField source="createBy$" label="common.field.createBy" /> - <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} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> - <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} redirect={"/dictType/" + dictId} /> - </WrapperField> - </StyledDatagrid> - </List> - <DictDataCreate - open={createDialog} - record={dicts} - setOpen={setCreateDialog} - /> - <PageDrawer - title='DictData Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - </> - - ) -} - -export default DictDataList; diff --git a/rsf-admin/src/page/system/dicts/dictType/DictDataCreate.jsx b/rsf-admin/src/page/system/dicts/dictType/DictDataCreate.jsx index 058996b..10ddfcb 100644 --- a/rsf-admin/src/page/system/dicts/dictType/DictDataCreate.jsx +++ b/rsf-admin/src/page/system/dicts/dictType/DictDataCreate.jsx @@ -122,6 +122,15 @@ /> </Grid> <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.dictData.group" + validate={required()} + autoFocus + source="group" + parse={v => v} + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> <NumberInput label="table.field.dictData.sort" source="sort" diff --git a/rsf-admin/src/page/system/dicts/dictType/DictDataEdit.jsx b/rsf-admin/src/page/system/dicts/dictType/DictDataEdit.jsx index dcd06ee..8d34a23 100644 --- a/rsf-admin/src/page/system/dicts/dictType/DictDataEdit.jsx +++ b/rsf-admin/src/page/system/dicts/dictType/DictDataEdit.jsx @@ -58,8 +58,8 @@ setOpen(false); } }; - const {data, isPending, } = useGetOne('dictData', {id: record?.id}); - if (data == null || data == undefined) {return} + const { data, isPending, } = useGetOne('dictData', { id: record?.id }); + if (data == null || data == undefined) { return } return ( <> <Edit @@ -131,6 +131,14 @@ /> </Stack> <Stack direction='row' gap={2}> + <TextInput + label="table.field.dictData.group" + source="group" + validate={required()} + parse={v => v} + /> + </Stack> + <Stack direction='row' gap={2}> <NumberInput label="table.field.dictData.sort" source="sort" diff --git a/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx b/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx index 1216cf4..be3f508 100644 --- a/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx +++ b/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx @@ -125,13 +125,14 @@ setSelect(record) setEditDialog(true) }} - omit={['id', 'createTime', 'createBy$', 'memo','statusBool']} + omit={['id', 'createTime', 'createBy$', 'memo', 'statusBool']} > <NumberField source="id" /> <TextField source="dictTypeId" label="table.field.dictData.dictTypeId" /> <TextField source="dictTypeCode" label="table.field.dictData.dictTypeCode" /> <TextField source="value" label="table.field.dictData.value" /> <TextField source="label" label="table.field.dictData.label" /> + <TextField source="group" label="table.field.dictData.group" /> <NumberField source="sort" label="table.field.dictData.sort" /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> -- Gitblit v1.9.1