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