skyouc
2025-07-24 bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3
rsf-admin/src/page/orders/wave/WaveList.jsx
@@ -1,5 +1,4 @@
import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
import { useNavigate } from 'react-router-dom';
import {
    List,
    DatagridConfigurable,
@@ -23,11 +22,13 @@
    NumberInput,
    useRefresh,
    useRedirect,
    AutocompleteInput,
    Button,
} from 'react-admin';
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_WAVE_AUTO_EXCE } from '@/config/setting';
import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined';
import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
import PauseIcon from '@mui/icons-material/Pause';
import StopCircleOutlinedIcon from '@mui/icons-material/StopCircleOutlined';
import StopOutlinedIcon from '@mui/icons-material/StopOutlined';
import { Box, Typography, Card, Stack, LinearProgress } from '@mui/material';
@@ -54,39 +55,7 @@
    },
}));
const filters = [
    <SearchInput source="condition" alwaysOn />,
    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
    <TextInput source="code" label="table.field.wave.code" />,
    <SelectInput source="type" label="table.field.wave.type"
        choices={[
            { id: 0, name: '手动' },
            { id: 1, name: '自动' },
        ]}
    />,
    <SelectInput source="exceStatus" label="table.field.wave.exceStatus"
        choices={[
            { id: 0, name: '初始化' },
            { id: 1, name: '生成任务' },
            { id: 2, name: '任务播种' },
            { id: 3, name: '完成' },
        ]}
    />,
    <NumberInput source="anfme" label="table.field.wave.anfme" />,
    <NumberInput source="qty" label="table.field.wave.qty" />,
    <NumberInput source="orderNum" label="table.field.wave.orderNum" />,
    <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 WaveList = () => {
    const translate = useTranslate();
@@ -95,6 +64,44 @@
    const [detailDialog, setDetailDialog] = useState(false);
    const [select, setSelectIds] = useState({});
    const [drawerVal, setDrawerVal] = useState(false);
    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_wave_exce_status')) || [];
    const filters = [
        <SearchInput source="condition" alwaysOn />,
        <DateInput label='common.time.after' source="timeStart" alwaysOn />,
        <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
        <TextInput source="code" label="table.field.wave.code" />,
        <AutocompleteInput
            choices={dicts}
            optionText="label"
            label="table.field.wave.exceStatus"
            source="exceStatus"
            format={value => value || '0'}
            optionValue="value"
            parse={v => v}
            alwaysOn
        />,
        <SelectInput source="type" label="table.field.wave.type"
            choices={[
                { id: 0, name: '手动' },
                { id: 1, name: '自动' },
            ]}
        />,
        <NumberInput source="anfme" label="table.field.wave.anfme" />,
        <NumberInput source="qty" label="table.field.wave.qty" />,
        <NumberInput source="orderNum" label="table.field.wave.orderNum" />,
        <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
        />,
    ]
    useEffect(() => {
        getConfig()
@@ -145,7 +152,7 @@
                    rowClick={(id, resource, record) => false}
                    expand={<WavePannel />}
                    expandSingle={true}
                    omit={['id', 'createTime', 'createBy', 'createBy$']}
                    omit={['id', 'createTime', 'createBy', 'createBy$','memo']}
                >
                    <NumberField source="id" />
                    <TextField source="code" label="table.field.wave.code" />
@@ -158,8 +165,9 @@
                    <TextField source="updateBy$" label="common.field.updateBy" />
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <TextField source="createBy$" label="common.field.createBy" />
                    <CustomProcess source="progress" label="table.field.wave.progress" />
                    <TextField source="memo" label="common.field.memo" sortable={false} />
                    <CustomProcess source="progress" />
                    <TextField source="exceStatus$" label="table.field.wave.exceStatus" sortable={false} />
                    <WrapperField cellClassName="opt" label="common.field.opt">
                        <PauseButton />
@@ -227,9 +235,8 @@
    const refresh = useRefresh()
    const notify = useNotify()
    const stopClick = async (event) => {
        event.stopPropagation()
        const { data: { code, data, msg } } = await request.post('', { val: true, flag: 'WaveAutoExce' });
    const stopClick = async () => {
        const { data: { code, data, msg } } = await request.post('/wave/stop/pub/' + record?.id);
        if (code === 200) {
            notify(msg);
        } else {
@@ -238,7 +245,7 @@
    }
    return (
        <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' />
        record?.exceStatus != 3 ? <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' /> : <></>
    )
}
@@ -290,7 +297,7 @@
        }
    }
    return (
        autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
        autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></>
    )
}
@@ -308,7 +315,7 @@
        refresh()
    }
    return (
        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<StopCircleOutlinedIcon />} /> : <></>
        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></>
    )
}
@@ -326,6 +333,6 @@
        refresh()
    }
    return (
        record?.exceStatus == 2 ? <Button label="toolbar.continuePub" onClick={continueClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
        record?.exceStatus == 2 ? <Button label="toolbar.continuePub" onClick={continueClick} startIcon={<PlayArrowOutlinedIcon />} /> : <></>
    )
}