| @@ -6,8 +6,6 @@ export default async () => { | |||||
| target: 'browser', | target: 'browser', | ||||
| }), | }), | ||||
| }); | }); | ||||
| console.log(); | |||||
| return { | return { | ||||
| ...config, | ...config, | ||||
| testEnvironmentOptions: { | testEnvironmentOptions: { | ||||
| @@ -34,9 +34,7 @@ export async function getInitialState(): Promise<{ | |||||
| // console.log('getInitialState'); | // console.log('getInitialState'); | ||||
| const fetchUserInfo = async () => { | const fetchUserInfo = async () => { | ||||
| try { | try { | ||||
| const response = await getUserInfo({ | |||||
| skipErrorHandler: true, | |||||
| }); | |||||
| const response = await getUserInfo(); | |||||
| return { | return { | ||||
| ...response.user, | ...response.user, | ||||
| avatar: response.user.avatar || require('@/assets/img/avatar-default.png'), | avatar: response.user.avatar || require('@/assets/img/avatar-default.png'), | ||||
| @@ -45,7 +43,7 @@ export async function getInitialState(): Promise<{ | |||||
| roleNames: response.user.roles, | roleNames: response.user.roles, | ||||
| } as API.CurrentUser; | } as API.CurrentUser; | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); | |||||
| console.error(error); | |||||
| gotoLoginPage(); | gotoLoginPage(); | ||||
| } | } | ||||
| return undefined; | return undefined; | ||||
| @@ -63,7 +63,7 @@ const DictTag: React.FC<DictTagProps> = (props) => { | |||||
| } | } | ||||
| if (props.options) { | if (props.options) { | ||||
| if (!Array.isArray(props.options)) { | if (!Array.isArray(props.options)) { | ||||
| console.log('DictTag options is no array!'); | |||||
| // console.log('DictTag options is no array!'); | |||||
| return ''; | return ''; | ||||
| } | } | ||||
| for (const item of props.options) { | for (const item of props.options) { | ||||
| @@ -85,7 +85,7 @@ const DictTag: React.FC<DictTagProps> = (props) => { | |||||
| } | } | ||||
| if (props.options) { | if (props.options) { | ||||
| if (!Array.isArray(props.options)) { | if (!Array.isArray(props.options)) { | ||||
| console.log('DictTag options is no array!'); | |||||
| // console.log('DictTag options is no array!'); | |||||
| return 'default'; | return 'default'; | ||||
| } | } | ||||
| for (const item of props.options) { | for (const item of props.options) { | ||||
| @@ -15,7 +15,7 @@ const clearCache = () => { | |||||
| caches.delete(key); | caches.delete(key); | ||||
| }); | }); | ||||
| }) | }) | ||||
| .catch((e) => console.log(e)); | |||||
| .catch((e) => console.error(e)); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -94,7 +94,7 @@ function ExperimentComparison() { | |||||
| fixed: 'left', | fixed: 'left', | ||||
| selectedRowKeys, | selectedRowKeys, | ||||
| onChange: (selectedRowKeys: React.Key[], selectedRows: any[]) => { | onChange: (selectedRowKeys: React.Key[], selectedRows: any[]) => { | ||||
| console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); | |||||
| // console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); | |||||
| setSelectedRowKeys(selectedRowKeys); | setSelectedRowKeys(selectedRowKeys); | ||||
| }, | }, | ||||
| }; | }; | ||||
| @@ -76,7 +76,7 @@ function ExperimentText() { | |||||
| getExperimentInstance(); | getExperimentInstance(); | ||||
| } catch (error) { | } catch (error) { | ||||
| // JSON.parse 错误 | // JSON.parse 错误 | ||||
| console.log(error); | |||||
| console.error('JSON.parse error: ', error); | |||||
| } | } | ||||
| } | } | ||||
| }; | }; | ||||
| @@ -97,15 +97,15 @@ function ExperimentText() { | |||||
| // 绘制图 | // 绘制图 | ||||
| getGraphData(workflowData, true); | getGraphData(workflowData, true); | ||||
| // 如果状态是 Pending, 打开第一个节点 | |||||
| // 如果状态是 Running,打开第一个运行中的节点,如果没有运行中的节点,打开第一个节点 | |||||
| if (status === ExperimentStatus.Pending) { | if (status === ExperimentStatus.Pending) { | ||||
| // 如果状态是 Pending, 打开第一个节点 | |||||
| const node = workflowData.nodes[0]; | const node = workflowData.nodes[0]; | ||||
| if (node) { | if (node) { | ||||
| setExperimentNodeData(node); | setExperimentNodeData(node); | ||||
| openPropsDrawer(); | openPropsDrawer(); | ||||
| } | } | ||||
| } else if (status === ExperimentStatus.Running) { | } else if (status === ExperimentStatus.Running) { | ||||
| // 如果状态是 Running,打开第一个运行中的节点,如果没有运行中的节点,则打开第一个节点 | |||||
| const node = | const node = | ||||
| workflowData.nodes.find((item) => item.experimentStatus === ExperimentStatus.Running) ?? | workflowData.nodes.find((item) => item.experimentStatus === ExperimentStatus.Running) ?? | ||||
| workflowData.nodes[0]; | workflowData.nodes[0]; | ||||
| @@ -167,11 +167,11 @@ function ExperimentText() { | |||||
| evtSourceRef.current = null; | evtSourceRef.current = null; | ||||
| } | } | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); | |||||
| console.error('JSON.parse error: ', error); | |||||
| } | } | ||||
| }; | }; | ||||
| evtSource.onerror = (error) => { | evtSource.onerror = (error) => { | ||||
| console.log('sse error', error); | |||||
| console.error('SSE error: ', error); | |||||
| }; | }; | ||||
| evtSourceRef.current = evtSource; | evtSourceRef.current = evtSource; | ||||
| @@ -452,8 +452,10 @@ function ExperimentText() { | |||||
| graph.setItemState(e.item, 'hover', false); | graph.setItemState(e.item, 'hover', false); | ||||
| }); | }); | ||||
| graph.on('canvas:click', (e) => { | graph.on('canvas:click', (e) => { | ||||
| setExperimentNodeData(null); | |||||
| closePropsDrawer(); | closePropsDrawer(); | ||||
| setTimeout(() => { | |||||
| setExperimentNodeData(null); | |||||
| }, 200); | |||||
| }); | }); | ||||
| }; | }; | ||||
| @@ -134,7 +134,6 @@ function LogGroup({ | |||||
| // 建立 socket 连接 | // 建立 socket 连接 | ||||
| const setupSockect = () => { | const setupSockect = () => { | ||||
| let { host } = location; | let { host } = location; | ||||
| console.log('setupSockect'); | |||||
| if (process.env.NODE_ENV === 'development') { | if (process.env.NODE_ENV === 'development') { | ||||
| host = '172.20.32.181:31213'; | host = '172.20.32.181:31213'; | ||||
| @@ -144,11 +143,11 @@ function LogGroup({ | |||||
| ); | ); | ||||
| socket.addEventListener('open', () => { | socket.addEventListener('open', () => { | ||||
| console.log('WebSocket is open now.'); | |||||
| // console.log('WebSocket is open now.'); | |||||
| }); | }); | ||||
| socket.addEventListener('close', (event) => { | socket.addEventListener('close', (event) => { | ||||
| console.log('WebSocket is closed:', event); | |||||
| // console.log('WebSocket is closed:', event); | |||||
| if (event.code !== 1000 && retryRef.current > 0) { | if (event.code !== 1000 && retryRef.current > 0) { | ||||
| retryRef.current -= 1; | retryRef.current -= 1; | ||||
| setTimeout(() => { | setTimeout(() => { | ||||
| @@ -196,7 +195,7 @@ function LogGroup({ | |||||
| }, 100); | }, 100); | ||||
| } | } | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); | |||||
| console.error('JSON parse error: ', error); | |||||
| } | } | ||||
| }); | }); | ||||
| @@ -127,7 +127,7 @@ function Experiment() { | |||||
| } | } | ||||
| }); | }); | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); | |||||
| console.error('JSON parse error: ', error); | |||||
| } | } | ||||
| } | } | ||||
| }; | }; | ||||
| @@ -103,7 +103,7 @@ const EditPipeline = () => { | |||||
| setTimeout(() => { | setTimeout(() => { | ||||
| const data = graph.save(); | const data = graph.save(); | ||||
| console.log(data); | |||||
| // console.log(data); | |||||
| const errorNode = data.nodes.find((item) => item.formError === true); | const errorNode = data.nodes.find((item) => item.formError === true); | ||||
| if (errorNode) { | if (errorNode) { | ||||
| message.error(`【${errorNode.label}】节点必填项必须配置`); | message.error(`【${errorNode.label}】节点必填项必须配置`); | ||||
| @@ -46,7 +46,7 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete | |||||
| const control_strategy = JSON.stringify(fields.control_strategy); | const control_strategy = JSON.stringify(fields.control_strategy); | ||||
| const in_parameters = JSON.stringify(fields.in_parameters); | const in_parameters = JSON.stringify(fields.in_parameters); | ||||
| const out_parameters = JSON.stringify(fields.out_parameters); | const out_parameters = JSON.stringify(fields.out_parameters); | ||||
| console.log('getFieldsValue', fields); | |||||
| // console.log('getFieldsValue', fields); | |||||
| const res = { | const res = { | ||||
| ...stagingItem, | ...stagingItem, | ||||
| @@ -57,7 +57,7 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete | |||||
| formError: !!error, | formError: !!error, | ||||
| }; | }; | ||||
| console.log('res', res); | |||||
| // console.log('res', res); | |||||
| onFormChange(res); | onFormChange(res); | ||||
| } | } | ||||
| }; | }; | ||||
| @@ -79,7 +79,7 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete | |||||
| out_parameters: JSON.parse(model.out_parameters), | out_parameters: JSON.parse(model.out_parameters), | ||||
| control_strategy: JSON.parse(model.control_strategy), | control_strategy: JSON.parse(model.control_strategy), | ||||
| }; | }; | ||||
| console.log('model', nodeData); | |||||
| // console.log('model', nodeData); | |||||
| setStagingItem({ | setStagingItem({ | ||||
| ...nodeData, | ...nodeData, | ||||
| }); | }); | ||||
| @@ -91,7 +91,7 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete | |||||
| form.validateFields(); | form.validateFields(); | ||||
| } | } | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); | |||||
| console.error('JSON.parse error: ', error); | |||||
| } | } | ||||
| setOpen(true); | setOpen(true); | ||||
| @@ -71,9 +71,6 @@ const Pipeline = () => { | |||||
| }); | }); | ||||
| } | } | ||||
| }; | }; | ||||
| const onFinishFailed = (errorInfo) => { | |||||
| console.log('Failed:', errorInfo); | |||||
| }; | |||||
| const pageOption = useRef({ page: 1, size: 10 }); | const pageOption = useRef({ page: 1, size: 10 }); | ||||
| const paginationProps = { | const paginationProps = { | ||||
| showSizeChanger: true, | showSizeChanger: true, | ||||
| @@ -86,7 +83,7 @@ const Pipeline = () => { | |||||
| }; | }; | ||||
| // 当前页面切换 | // 当前页面切换 | ||||
| const paginationChange = async (current, size) => { | const paginationChange = async (current, size) => { | ||||
| console.log('page', current, size); | |||||
| // console.log('page', current, size); | |||||
| pageOption.current = { | pageOption.current = { | ||||
| page: current, | page: current, | ||||
| size: size, | size: size, | ||||
| @@ -176,7 +173,6 @@ const Pipeline = () => { | |||||
| okText: '确认', | okText: '确认', | ||||
| cancelText: '取消', | cancelText: '取消', | ||||
| onOk: () => { | onOk: () => { | ||||
| console.log(record); | |||||
| cloneWorkflow(record.id).then((ret) => { | cloneWorkflow(record.id).then((ret) => { | ||||
| if (ret.code === 200) { | if (ret.code === 200) { | ||||
| message.success('复制成功'); | message.success('复制成功'); | ||||
| @@ -214,7 +210,6 @@ const Pipeline = () => { | |||||
| title: '删除后,该流水线将不可恢复', | title: '删除后,该流水线将不可恢复', | ||||
| content: '是否确认删除?', | content: '是否确认删除?', | ||||
| onOk: () => { | onOk: () => { | ||||
| console.log(record); | |||||
| removeWorkflow(record.id).then((ret) => { | removeWorkflow(record.id).then((ret) => { | ||||
| if (ret.code === 200) { | if (ret.code === 200) { | ||||
| message.success('删除成功'); | message.success('删除成功'); | ||||
| @@ -276,7 +271,6 @@ const Pipeline = () => { | |||||
| remember: true, | remember: true, | ||||
| }} | }} | ||||
| onFinish={onFinish} | onFinish={onFinish} | ||||
| onFinishFailed={onFinishFailed} | |||||
| autoComplete="off" | autoComplete="off" | ||||
| > | > | ||||
| <Form.Item | <Form.Item | ||||
| @@ -21,7 +21,7 @@ const OperlogDetailForm: React.FC<OperlogFormProps> = (props) => { | |||||
| const intl = useIntl(); | const intl = useIntl(); | ||||
| const handleOk = () => { | const handleOk = () => { | ||||
| console.log('handle ok'); | |||||
| // console.log('handle ok'); | |||||
| }; | }; | ||||
| const handleCancel = () => { | const handleCancel = () => { | ||||
| props.onCancel(); | props.onCancel(); | ||||
| @@ -216,7 +216,7 @@ const DataScopeForm: React.FC<DataScopeFormProps> = (props) => { | |||||
| checkedKeys={deptIds} | checkedKeys={deptIds} | ||||
| defaultCheckedKeys={deptCheckedKeys} | defaultCheckedKeys={deptCheckedKeys} | ||||
| onCheck={(checkedKeys: any, checkInfo: any) => { | onCheck={(checkedKeys: any, checkInfo: any) => { | ||||
| console.log(checkedKeys, checkInfo); | |||||
| // console.log(checkedKeys, checkInfo); | |||||
| if (checkStrictly) { | if (checkStrictly) { | ||||
| return setDeptIds(checkedKeys.checked); | return setDeptIds(checkedKeys.checked); | ||||
| } else { | } else { | ||||
| @@ -210,12 +210,10 @@ const Login: React.FC = () => { | |||||
| setSessionToken(response.data?.access_token, response.data?.access_token, expireTime); | setSessionToken(response.data?.access_token, response.data?.access_token, expireTime); | ||||
| message.success(defaultLoginSuccessMessage); | message.success(defaultLoginSuccessMessage); | ||||
| await fetchUserInfo(); | await fetchUserInfo(); | ||||
| console.log('login ok'); | |||||
| const urlParams = new URL(window.location.href).searchParams; | const urlParams = new URL(window.location.href).searchParams; | ||||
| history.push(urlParams.get('redirect') || '/'); | history.push(urlParams.get('redirect') || '/'); | ||||
| return; | return; | ||||
| } else { | } else { | ||||
| console.log(response.msg); | |||||
| clearSessionToken(); | clearSessionToken(); | ||||
| // 如果失败去设置用户错误信息 | // 如果失败去设置用户错误信息 | ||||
| setUserLoginState({ ...response, type }); | setUserLoginState({ ...response, type }); | ||||
| @@ -3,14 +3,17 @@ | |||||
| * @Date: 2024-03-25 13:52:54 | * @Date: 2024-03-25 13:52:54 | ||||
| * @Description: 网络请求配置,详情请参考 https://umijs.org/docs/max/request | * @Description: 网络请求配置,详情请参考 https://umijs.org/docs/max/request | ||||
| */ | */ | ||||
| import type { AxiosRequestConfig, AxiosResponse, RequestConfig } from '@umijs/max'; | |||||
| import type { AxiosRequestConfig, AxiosResponse, RequestConfig, RequestOptions } from '@umijs/max'; | |||||
| import { message } from 'antd'; | import { message } from 'antd'; | ||||
| import { clearSessionToken, getAccessToken } from './access'; | import { clearSessionToken, getAccessToken } from './access'; | ||||
| import { setRemoteMenu } from './services/session'; | import { setRemoteMenu } from './services/session'; | ||||
| import { gotoLoginPage } from './utils/ui'; | import { gotoLoginPage } from './utils/ui'; | ||||
| // [antd: Notification] You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead. | // [antd: Notification] You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead. | ||||
| const popupError = (error: string) => { | |||||
| const popupError = (error: string, skipErrorHandler?: boolean = false) => { | |||||
| if (skipErrorHandler) { | |||||
| return; | |||||
| } | |||||
| // 直接调用 message.error 有时候不弹出来 | // 直接调用 message.error 有时候不弹出来 | ||||
| setTimeout(() => { | setTimeout(() => { | ||||
| message.error(error); | message.error(error); | ||||
| @@ -39,8 +42,8 @@ export const requestConfig: RequestConfig = { | |||||
| responseInterceptors: [ | responseInterceptors: [ | ||||
| [ | [ | ||||
| (response: AxiosResponse) => { | (response: AxiosResponse) => { | ||||
| const { status, data } = response || {}; | |||||
| // console.log(message, data); | |||||
| const { status, data, config } = response || {}; | |||||
| const skipErrorHandler = (config as RequestOptions)?.skipErrorHandler; | |||||
| if (status >= 200 && status < 300) { | if (status >= 200 && status < 300) { | ||||
| if (data && (data instanceof Blob || data.code === 200)) { | if (data && (data instanceof Blob || data.code === 200)) { | ||||
| return response; | return response; | ||||
| @@ -51,11 +54,11 @@ export const requestConfig: RequestConfig = { | |||||
| popupError('请重新登录'); | popupError('请重新登录'); | ||||
| return Promise.reject(response); | return Promise.reject(response); | ||||
| } else { | } else { | ||||
| popupError(data?.msg ?? '请求失败'); | |||||
| popupError(data?.msg ?? '请求失败', skipErrorHandler); | |||||
| return Promise.reject(response); | return Promise.reject(response); | ||||
| } | } | ||||
| } else { | } else { | ||||
| popupError('请求失败'); | |||||
| popupError('请求失败', skipErrorHandler); | |||||
| return Promise.reject(response); | return Promise.reject(response); | ||||
| } | } | ||||
| }, | }, | ||||
| @@ -51,6 +51,7 @@ export function getQueryByExperimentLog(data) { | |||||
| return request('/api/mmp/experimentIns/realTimeLog/', { | return request('/api/mmp/experimentIns/realTimeLog/', { | ||||
| method: 'POST', | method: 'POST', | ||||
| data, | data, | ||||
| skipErrorHandler: true, | |||||
| }); | }); | ||||
| } | } | ||||
| // 查询实例节点结果 | // 查询实例节点结果 | ||||
| @@ -148,8 +148,7 @@ export function getMatchMenuItem( | |||||
| } else { | } else { | ||||
| const paths = path.split('/'); | const paths = path.split('/'); | ||||
| if (paths.length >= 2 && paths[0] === item.path && paths[1] === 'index') { | if (paths.length >= 2 && paths[0] === item.path && paths[1] === 'index') { | ||||
| console.log(item); | |||||
| // console.log(item); | |||||
| items.push(item); | items.push(item); | ||||
| } | } | ||||
| } | } | ||||