skyouc
2025-04-09 2bf88e36a2fa93d7818dd2984414c3b5d43aea2a
#修改
1. 任务档列表样式修改
2. 任务档Edit样式修改
4个文件已修改
262 ■■■■■ 已修改文件
rsf-admin/src/page/purchase/PurchaseList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskEdit.jsx 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskList.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/taskItem/TaskItemList.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/purchase/PurchaseList.jsx
@@ -123,7 +123,7 @@
        <StyledDatagrid
          preferenceKey='purchase'
          bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
          rowClick={(id, resource, record) => false}
          rowClick={'edit'}
          expand={() => <PurchasePanel />}
          expandSingle={true}
          omit={['id', 'createTime', 'createBy', 'memo']}
rsf-admin/src/page/task/TaskEdit.jsx
@@ -2,180 +2,120 @@
import {
    Edit,
    SimpleForm,
    FormDataConsumer,
    useTranslate,
    TextInput,
    NumberInput,
    BooleanInput,
    DateInput,
    SelectInput,
    ReferenceInput,
    ReferenceArrayInput,
    AutocompleteInput,
    SaveButton,
    Toolbar,
    Labeled,
    NumberField,
    required,
    useRecordContext,
    DeleteButton,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography } from '@mui/material';
import { useWatch, useFormContext, useForm } from "react-hook-form";
import { Stack, Grid, Box, Typography, Card } from '@mui/material';
import * as Common from '@/utils/common';
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";
import TaskItemList from "./TaskItemList";
const FormToolbar = () => {
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'space-between' }}>
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            <DeleteButton mutationMode="optimistic" />
            {/* <DeleteButton mutationMode="optimistic" /> */}
        </Toolbar>
    )
}
const TaskEdit = () => {
    const translate = useTranslate();
    return (
        <Edit
            redirect="list"
            mutationMode={EDIT_MODE}
            actions={<CustomerTopToolBar />}
            aside={<EditBaseAside />}
        >
            <SimpleForm
                shouldUnregister
                warnWhenUnsavedChanges
                toolbar={<FormToolbar />}
                mode="onTouched"
                defaultValues={{}}
            // validate={(values) => { }}
        <>
            <Edit
                redirect="list"
                mutationMode={EDIT_MODE}
                actions={<CustomerTopToolBar />}
                aside={<EditBaseAside />}
            >
                <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.task.taskCode"
                                source="taskCode"
                                parse={v => v}
                                autoFocus
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.task.taskStatus"
                                source="taskStatus"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.task.taskType"
                                source="taskType"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.orgLoc"
                                source="orgLoc"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.orgSite"
                                source="orgSite"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.targLoc"
                                source="targLoc"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.targSite"
                                source="targSite"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.barcode"
                                source="barcode"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.robotCode"
                                source="robotCode"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.task.exceStatus"
                                source="exceStatus"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.expDesc"
                                source="expDesc"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.task.sort"
                                source="sort"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.task.expCode"
                                source="expCode"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <DateInput
                                label="table.field.task.startTime"
                                source="startTime"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <DateInput
                                label="table.field.task.endTime"
                                source="endTime"
                            />
                        </Stack>
                <SimpleForm
                    shouldUnregister
                    warnWhenUnsavedChanges
                    toolbar={<FormToolbar />}
                    mode="onTouched"
                    defaultValues={{}}
                >
                    <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                        <Grid item xs={24} md={16}>
                            <Typography variant="h6" gutterBottom>
                                {translate('common.edit.title.main')}
                            </Typography>
                            <Stack direction='row' gap={2}>
                                <TextInput
                                    label="table.field.task.taskCode"
                                    source="taskCode"
                                    readOnly
                                    parse={v => v}
                                    autoFocus
                                />
                                <TextInput
                                    label="table.field.task.taskStatus"
                                    readOnly
                                    source="taskStatus$"
                                />
                                <TextInput
                                    label="table.field.task.taskType"
                                    source="taskType$"
                                    readOnly
                                />
                                <TextInput
                                    label="table.field.task.orgLoc"
                                    source="orgLoc"
                                    readOnly
                                    parse={v => v}
                                />
                                <TextInput
                                    label="table.field.task.targLoc"
                                    source="targLoc"
                                    readOnly
                                    parse={v => v}
                                />
                                <TextInput
                                    label="table.field.task.orgSite"
                                    source="orgSite"
                                    readOnly
                                    parse={v => v}
                                />
                            </Stack>
                            <Stack direction='row' gap={2}>
                                <TextInput
                                    label="table.field.task.targSite"
                                    source="targSite"
                                    readOnly
                                    parse={v => v}
                                />
                                <TextInput
                                    label="table.field.task.barcode"
                                    source="barcode"
                                    readOnly
                                    parse={v => v}
                                />
                                <NumberInput
                                    label="table.field.task.sort"
                                    source="sort"
                                />
                            </Stack>
                        </Grid>
                    </Grid>
                    <Grid item xs={12} md={4}>
                        <Typography variant="h6" gutterBottom>
                            {translate('common.edit.title.common')}
                        </Typography>
                        <StatusSelectInput />
                        <Box mt="2em" />
                        <MemoInput />
                    </Grid>
                </SimpleForm>
            </Edit >
            <Card sx={{ marginTop: '1em', }}>
                <Grid item xs={24} md={16} sx={{ margin: '1em' }}>
                    <Typography variant="h6" gutterBottom >
                        {translate('common.edit.title.common')}
                    </Typography>
                    <TaskItemList />
                </Grid>
            </SimpleForm>
        </Edit >
            </Card>
        </>
    )
}
rsf-admin/src/page/task/TaskList.jsx
@@ -37,7 +37,7 @@
    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";
@@ -63,7 +63,7 @@
    '& .column-name': {
    },
    '& .opt': {
        width: 200
        width: 248
    },
}));
@@ -135,10 +135,10 @@
                            <BulkDeleteButton mutationMode={OPERATE_MODE} />
                        </>
                    }
                    rowClick={false}
                    expand={() => <TaskPanel/>}
                    rowClick={'edit'}
                    expand={false}
                    expandSingle={true}
                    omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'sort']}
                    omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'sort']}
                >
                    <NumberField source="id" />
                    <TextField source="taskCode" label="table.field.task.taskCode" />
@@ -158,7 +158,7 @@
                    <TextField source="createBy$" label="common.field.createBy"/>
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <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">
                        <DoneButton sx={{ padding: '1px', fontSize: '.75rem' }} ></DoneButton>
@@ -178,6 +178,8 @@
}
export default TaskList;
/**
 * 完成操作
 * @returns 
rsf-admin/src/page/taskItem/TaskItemList.jsx
@@ -38,6 +38,8 @@
import MyField from "../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
import MyCreateButton from "../components/MyCreateButton";
import TaskItemCreate from "../task/TaskItemCreate";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
    '& .css-1vooibu-MuiSvgIcon-root': {
@@ -104,7 +106,7 @@
                actions={(
                    <TopToolbar>
                        <FilterButton />
                        {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                        <SelectColumnsButton preferenceKey='taskItem' />
                        {/* <MyExportButton /> */}
                    </TopToolbar>
@@ -132,7 +134,6 @@
                    <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>
@@ -145,6 +146,9 @@
                    <TextField source="memo" label="common.field.memo" sortable={false} />
                </StyledDatagrid>
            </List>
            <TaskItemCreate
                open={createDialog}
                setOpen={setCreateDialog} />
            <PageDrawer
                title='TaskItem Detail'
                drawerVal={drawerVal}