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