浏览代码

published loading

uat
Jason Chuang 20 小时前
父节点
当前提交
14612a0f10
共有 1 个文件被更改,包括 38 次插入7 次删除
  1. +38
    -7
      src/pages/PublicNotice/Search_GLD/DataGrid.js

+ 38
- 7
src/pages/PublicNotice/Search_GLD/DataGrid.js 查看文件

@@ -8,6 +8,7 @@ import {
Stack, Stack,
Dialog, DialogTitle, DialogContent, DialogActions, Dialog, DialogTitle, DialogContent, DialogActions,
} from '@mui/material'; } from '@mui/material';
import LoadingButton from '@mui/lab/LoadingButton';
import { GET_PUBLIC_NOTICE_LIST, SET_PUBLIC_NOTICE_STATUS_PUBLISH_BULK } from "utils/ApiPathConst"; import { GET_PUBLIC_NOTICE_LIST, SET_PUBLIC_NOTICE_STATUS_PUBLISH_BULK } from "utils/ApiPathConst";
import * as HttpUtils from "utils/HttpUtils"; import * as HttpUtils from "utils/HttpUtils";
import * as DateUtils from "utils/DateUtils"; import * as DateUtils from "utils/DateUtils";
@@ -29,6 +30,7 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
const [selectedRowItems, setSelectedRowItems] = React.useState([]); const [selectedRowItems, setSelectedRowItems] = React.useState([]);
const [isConfirmPopUp, setIsConfirmPopUp] = React.useState(false); const [isConfirmPopUp, setIsConfirmPopUp] = React.useState(false);
const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); const [isWarningPopUp, setIsWarningPopUp] = React.useState(false);
const [publishLoading, setPublishLoading] = React.useState(false);


const [reload, setReload] = React.useState(new Date()); const [reload, setReload] = React.useState(new Date());


@@ -39,6 +41,12 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
set_searchCriteria(searchCriteria); set_searchCriteria(searchCriteria);
}, [searchCriteria]); }, [searchCriteria]);


React.useEffect(() => {
if (!isConfirmPopUp) {
setPublishLoading(false);
}
}, [isConfirmPopUp]);



function genIssueNo(params) { function genIssueNo(params) {
const issueNo = params.row.issueYear + " Vol. " + FormatUtils.zeroPad(params.row.issueVolume, 3) + ", No. " + FormatUtils.zeroPad(params.row.issueNo, 2) + ", " + DateUtils.dateFormat(params.row.issueDate, "D MMM YYYY (ddd)") const issueNo = params.row.issueYear + " Vol. " + FormatUtils.zeroPad(params.row.issueVolume, 3) + ", No. " + FormatUtils.zeroPad(params.row.issueNo, 2) + ", " + DateUtils.dateFormat(params.row.issueDate, "D MMM YYYY (ddd)")
@@ -158,26 +166,36 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
} }


const doPublish = () => { const doPublish = () => {
setIsConfirmPopUp(false);
if (publishLoading) return;

let appIdList = []; let appIdList = [];
const datas = rows?.filter((row) => const datas = rows?.filter((row) =>
selectedRowItems.includes(row.id) selectedRowItems.includes(row.id)
); );
// console.log(datas)
for (var i = 0; i < datas?.length; i++) { for (var i = 0; i < datas?.length; i++) {
appIdList.push(datas[i].id); appIdList.push(datas[i].id);
} }
if (appIdList.length < 1) { if (appIdList.length < 1) {
setIsConfirmPopUp(false);
setIsWarningPopUp(true); setIsWarningPopUp(true);
} else { } else {
setPublishLoading(true);
HttpUtils.post({ HttpUtils.post({
url: SET_PUBLIC_NOTICE_STATUS_PUBLISH_BULK, url: SET_PUBLIC_NOTICE_STATUS_PUBLISH_BULK,
params: { params: {
ids: appIdList ids: appIdList
}, },
onSuccess: () => { onSuccess: () => {
setPublishLoading(false);
setIsConfirmPopUp(false);
setReload(new Date()); setReload(new Date());
notifyActionSuccess("Action Success!") notifyActionSuccess("Action Success!")
},
onFail: () => {
setPublishLoading(false);
},
onError: () => {
setPublishLoading(false);
} }
}); });
} }
@@ -190,6 +208,7 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
<Grid container direction="row" justifyContent="flex-start" alignItems="center" sx={{ p: 1 }} > <Grid container direction="row" justifyContent="flex-start" alignItems="center" sx={{ p: 1 }} >
<Button <Button
variant="contained" variant="contained"
disabled={publishLoading}
onClick={() => setIsConfirmPopUp(true)} onClick={() => setIsConfirmPopUp(true)}
> >
Published Published
@@ -228,7 +247,10 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
<div> <div>
<Dialog <Dialog
open={isConfirmPopUp} open={isConfirmPopUp}
onClose={() => setIsConfirmPopUp(false)}
onClose={() => {
if (publishLoading) return;
setIsConfirmPopUp(false);
}}
PaperProps={{ PaperProps={{
sx: { sx: {
minWidth: '40vw', minWidth: '40vw',
@@ -248,15 +270,24 @@ export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnRea
</Stack> </Stack>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<Button onClick={() => setIsConfirmPopUp(false)} aria-label={intl.formatMessage({ id: 'close' })}>
<Button
onClick={() => setIsConfirmPopUp(false)}
disabled={publishLoading}
aria-label={intl.formatMessage({ id: 'close' })}
>
<Typography variant="h5"> <Typography variant="h5">
<FormattedMessage id="close" /> <FormattedMessage id="close" />
</Typography></Button> </Typography></Button>


<Button onClick={() => doPublish()} aria-label={intl.formatMessage({ id: 'confirm' })}>
<Typography variant="h5">
<LoadingButton
onClick={() => doPublish()}
loading={publishLoading}
aria-label={intl.formatMessage({ id: 'confirm' })}
>
<Typography variant="h5" component="span">
<FormattedMessage id="confirm" /> <FormattedMessage id="confirm" />
</Typography></Button>
</Typography>
</LoadingButton>
</DialogActions> </DialogActions>
</Dialog> </Dialog>
</div> </div>


正在加载...
取消
保存