|
|
@@ -60,6 +60,19 @@ const runAPI = "/api/monitor/job/run";
|
|
|
export default function Job() {
|
|
|
const { push } = useRouter();
|
|
|
|
|
|
+ // 添加用于控制删除确认模态框的状态
|
|
|
+ const [deleteModalVisible, setDeleteModalVisible] = useState(false);
|
|
|
+ const [deleteJobId, setDeleteJobId] = useState<string | number | null>(null);
|
|
|
+
|
|
|
+ // 添加用于控制切换状态确认模态框的状态
|
|
|
+ const [statusModalVisible, setStatusModalVisible] = useState(false);
|
|
|
+ const [statusChecked, setStatusChecked] = useState<boolean>(true);
|
|
|
+ const [statusRecord, setStatusRecord] = useState<any>(null);
|
|
|
+
|
|
|
+ // 添加用于控制执行任务确认模态框的状态
|
|
|
+ const [runModalVisible, setRunModalVisible] = useState(false);
|
|
|
+ const [runRecord, setRunRecord] = useState<any>(null);
|
|
|
+
|
|
|
//表格列定义
|
|
|
const columns: ProColumns[] = [
|
|
|
{
|
|
|
@@ -279,20 +292,10 @@ export default function Job() {
|
|
|
//展示切换任务状态对话框
|
|
|
const showSwitchJobStatusModal = (checked: boolean, record: any) => {
|
|
|
setRowStatusMap({ ...rowStatusMap, [record.jobId]: checked });
|
|
|
-
|
|
|
- Modal.confirm({
|
|
|
- title: "系统提示",
|
|
|
- icon: <ExclamationCircleFilled />,
|
|
|
- content: `确认要${checked ? "启用" : "停用"}"${record.jobName}"任务吗?`,
|
|
|
- onOk() {
|
|
|
- executeSwitchStatus(checked, record.jobId, () => {
|
|
|
- setRowStatusMap({ ...rowStatusMap, [record.jobId]: !checked });
|
|
|
- });
|
|
|
- },
|
|
|
- onCancel() {
|
|
|
- setRowStatusMap({ ...rowStatusMap, [record.jobId]: !checked });
|
|
|
- },
|
|
|
- });
|
|
|
+
|
|
|
+ setStatusChecked(checked);
|
|
|
+ setStatusRecord(record);
|
|
|
+ setStatusModalVisible(true);
|
|
|
};
|
|
|
|
|
|
//确认变更任务状态
|
|
|
@@ -323,6 +326,26 @@ export default function Job() {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ //确定切换状态
|
|
|
+ const confirmSwitchStatus = () => {
|
|
|
+ if (!statusRecord) return;
|
|
|
+
|
|
|
+ executeSwitchStatus(statusChecked, statusRecord.jobId, () => {
|
|
|
+ setRowStatusMap({ ...rowStatusMap, [statusRecord.jobId]: !statusChecked });
|
|
|
+ });
|
|
|
+ setStatusModalVisible(false);
|
|
|
+ setStatusRecord(null);
|
|
|
+ };
|
|
|
+
|
|
|
+ //取消切换状态
|
|
|
+ const cancelSwitchStatus = () => {
|
|
|
+ if (!statusRecord) return;
|
|
|
+
|
|
|
+ setRowStatusMap({ ...rowStatusMap, [statusRecord.jobId]: !statusChecked });
|
|
|
+ setStatusModalVisible(false);
|
|
|
+ setStatusRecord(null);
|
|
|
+ };
|
|
|
+
|
|
|
//是否展示修改对话框
|
|
|
const [isShowModifyDataModal, setIsShowModifyDataModal] = useState(false);
|
|
|
|
|
|
@@ -401,22 +424,16 @@ export default function Job() {
|
|
|
|
|
|
//点击删除按钮,展示删除确认框
|
|
|
const onClickDeleteRow = (record?: any) => {
|
|
|
- const jobId =
|
|
|
- record != undefined ? record.jobId : selectedRowKeys.join(",");
|
|
|
- Modal.confirm({
|
|
|
- title: "系统提示",
|
|
|
- icon: <ExclamationCircleFilled />,
|
|
|
- content: `确定删除任务编号为“${jobId}”的数据项?`,
|
|
|
- onOk() {
|
|
|
- executeDeleteRow(jobId);
|
|
|
- },
|
|
|
- onCancel() {},
|
|
|
- });
|
|
|
+ const jobId = record !== undefined ? record.jobId : selectedRowKeys.join(",");
|
|
|
+ setDeleteJobId(jobId);
|
|
|
+ setDeleteModalVisible(true);
|
|
|
};
|
|
|
|
|
|
//确定删除选中的数据
|
|
|
- const executeDeleteRow = async (jobId: any) => {
|
|
|
- const body = await fetchApi(`${deleteAPI}/${jobId}`, push, {
|
|
|
+ const executeDeleteRow = async () => {
|
|
|
+ if (deleteJobId === null) return;
|
|
|
+
|
|
|
+ const body = await fetchApi(`${deleteAPI}/${deleteJobId}`, push, {
|
|
|
method: "DELETE",
|
|
|
});
|
|
|
if (body !== undefined) {
|
|
|
@@ -437,6 +454,8 @@ export default function Job() {
|
|
|
message.error(body.msg);
|
|
|
}
|
|
|
}
|
|
|
+ setDeleteModalVisible(false);
|
|
|
+ setDeleteJobId(null);
|
|
|
};
|
|
|
|
|
|
//4.导出
|
|
|
@@ -555,15 +574,8 @@ export default function Job() {
|
|
|
|
|
|
//执行任务一次
|
|
|
const showRunOnceModal = (record: any) => {
|
|
|
- Modal.confirm({
|
|
|
- title: "系统提示",
|
|
|
- icon: <ExclamationCircleFilled />,
|
|
|
- content: `确定要立即执行一次任务“${record.jobName}”吗?`,
|
|
|
- onOk() {
|
|
|
- executeJob(record);
|
|
|
- },
|
|
|
- onCancel() {},
|
|
|
- });
|
|
|
+ setRunRecord(record);
|
|
|
+ setRunModalVisible(true);
|
|
|
};
|
|
|
|
|
|
//执行任务
|
|
|
@@ -588,6 +600,14 @@ export default function Job() {
|
|
|
message.error(body.msg);
|
|
|
}
|
|
|
}
|
|
|
+ setRunModalVisible(false);
|
|
|
+ setRunRecord(null);
|
|
|
+ };
|
|
|
+
|
|
|
+ //取消执行任务
|
|
|
+ const cancelRunJob = () => {
|
|
|
+ setRunModalVisible(false);
|
|
|
+ setRunRecord(null);
|
|
|
};
|
|
|
|
|
|
//是否展示任务详情框
|
|
|
@@ -1057,6 +1077,60 @@ export default function Job() {
|
|
|
</ProDescriptions>
|
|
|
</Modal>
|
|
|
)}
|
|
|
+
|
|
|
+ {/* 删除确认模态框 */}
|
|
|
+ <Modal
|
|
|
+ title={
|
|
|
+ <div style={{ display: 'flex', alignItems: 'center' }}>
|
|
|
+ <ExclamationCircleFilled style={{ color: '#faad14', marginRight: 8 }} />
|
|
|
+ <span>系统提示</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ open={deleteModalVisible}
|
|
|
+ onOk={executeDeleteRow}
|
|
|
+ onCancel={() => {
|
|
|
+ setDeleteModalVisible(false);
|
|
|
+ setDeleteJobId(null);
|
|
|
+ }}
|
|
|
+ okText="确认"
|
|
|
+ cancelText="取消"
|
|
|
+ >
|
|
|
+ <p>{`确定删除任务编号为“${deleteJobId}”的数据项?`}</p>
|
|
|
+ </Modal>
|
|
|
+
|
|
|
+ {/* 切换状态确认模态框 */}
|
|
|
+ <Modal
|
|
|
+ title={
|
|
|
+ <div style={{ display: 'flex', alignItems: 'center' }}>
|
|
|
+ <ExclamationCircleFilled style={{ color: '#faad14', marginRight: 8 }} />
|
|
|
+ <span>系统提示</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ open={statusModalVisible}
|
|
|
+ onOk={confirmSwitchStatus}
|
|
|
+ onCancel={cancelSwitchStatus}
|
|
|
+ okText="确认"
|
|
|
+ cancelText="取消"
|
|
|
+ >
|
|
|
+ <p>{`确认要${statusChecked ? "启用" : "停用"}"${statusRecord?.jobName}"任务吗?`}</p>
|
|
|
+ </Modal>
|
|
|
+
|
|
|
+ {/* 执行任务确认模态框 */}
|
|
|
+ <Modal
|
|
|
+ title={
|
|
|
+ <div style={{ display: 'flex', alignItems: 'center' }}>
|
|
|
+ <ExclamationCircleFilled style={{ color: '#faad14', marginRight: 8 }} />
|
|
|
+ <span>系统提示</span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ open={runModalVisible}
|
|
|
+ onOk={() => executeJob(runRecord)}
|
|
|
+ onCancel={cancelRunJob}
|
|
|
+ okText="确认"
|
|
|
+ cancelText="取消"
|
|
|
+ >
|
|
|
+ <p>{`确定要立即执行一次任务“${runRecord?.jobName}”吗?`}</p>
|
|
|
+ </Modal>
|
|
|
</PageContainer>
|
|
|
);
|
|
|
}
|