Merge branch 'master-风控中心' into 'release_20220826'
8.26 风控中心 See merge request eshop/fe_service_ebtp_frontend!258
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
import React, { useEffect, useRef, useState } from 'react';
|
import React, { useEffect, useRef, useState } from 'react';
|
||||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload, Tooltip } from 'antd';
|
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload, Tooltip } from 'antd';
|
||||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl } from './service';
|
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl, beforeRiskControl } from './service';
|
||||||
import '@/assets/ld_style.less'
|
import '@/assets/ld_style.less'
|
||||||
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
||||||
import { getExperts } from '../BidDetailedManager/service';
|
import { getExperts } from '../BidDetailedManager/service';
|
||||||
@ -12,6 +12,7 @@ import { getProId, getProMethod, getRoomId, getSectionQuot, getSessionRoleData,
|
|||||||
import FileDown from '@/utils/Download';
|
import FileDown from '@/utils/Download';
|
||||||
import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
|
import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
|
||||||
import { btnAuthority } from '@/utils/authority';
|
import { btnAuthority } from '@/utils/authority';
|
||||||
|
import RiskPreventionSoft from '@/utils/RiskPreventionSoft';
|
||||||
|
|
||||||
const { TabPane } = Tabs;
|
const { TabPane } = Tabs;
|
||||||
const { Option } = Select;
|
const { Option } = Select;
|
||||||
@ -75,6 +76,11 @@ const Index: React.FC<{}> = () => {
|
|||||||
const proMethod = getProMethod();//获取采购方式
|
const proMethod = getProMethod();//获取采购方式
|
||||||
const [hightSorce, setHightSorce] = useState<any>(''); // 自动报价最高分
|
const [hightSorce, setHightSorce] = useState<any>(''); // 自动报价最高分
|
||||||
|
|
||||||
|
//风控弹窗 2022.8.17 zhoujianlong
|
||||||
|
const [riskVisible, setRiskVisible] = useState<boolean>(false);
|
||||||
|
//风控数据 2022.8.17 zhoujianlong
|
||||||
|
const [riskData, setRiskData] = useState<any[]>([]);
|
||||||
|
|
||||||
//获取数据的参数
|
//获取数据的参数
|
||||||
const [findScoreRecordData, setFindScoreRecordData] = useState<any>();
|
const [findScoreRecordData, setFindScoreRecordData] = useState<any>();
|
||||||
//所有人员详审表数据
|
//所有人员详审表数据
|
||||||
@ -1614,6 +1620,28 @@ const Index: React.FC<{}> = () => {
|
|||||||
|
|
||||||
}, [count]);
|
}, [count]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 风控中心校验
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
const verificationRiskControl = () => {
|
||||||
|
let submitData = {
|
||||||
|
reviewStatus: '2',
|
||||||
|
reviewTurnId: getURLInformation("turnId"),
|
||||||
|
reviewType: '2',
|
||||||
|
}
|
||||||
|
beforeRiskControl(submitData).then(res => {
|
||||||
|
if (res?.code == 200) {
|
||||||
|
if (res?.data.length > 0) {
|
||||||
|
setRiskData(res?.data);
|
||||||
|
setRiskVisible(true);
|
||||||
|
} else {
|
||||||
|
submitClick();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Spin spinning={spinVisible || submitLoading}>
|
<Spin spinning={spinVisible || submitLoading}>
|
||||||
@ -1720,7 +1748,7 @@ const Index: React.FC<{}> = () => {
|
|||||||
{reviewStatus == 2 || reviewStatus == 3 ? null : (
|
{reviewStatus == 2 || reviewStatus == 3 ? null : (
|
||||||
<div>
|
<div>
|
||||||
{tableDisplay == true ? (
|
{tableDisplay == true ? (
|
||||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="primary" size="small" className="fr ml10 mb10" onClick={submitClick} loading={submitLoading}>提交汇总</Button>
|
<Button hidden={btnAuthority(['ebtp-expert'])} type="primary" size="small" className="fr ml10 mb10" onClick={verificationRiskControl} loading={submitLoading}>提交汇总</Button>
|
||||||
) : null}
|
) : null}
|
||||||
<Button hidden={btnAuthority(['ebtp-expert'])} onClick={getLock} type="primary" size="small" className="fr mb10">评审解锁</Button>
|
<Button hidden={btnAuthority(['ebtp-expert'])} onClick={getLock} type="primary" size="small" className="fr mb10">评审解锁</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -1835,6 +1863,16 @@ const Index: React.FC<{}> = () => {
|
|||||||
modalVisible={checkVisible}
|
modalVisible={checkVisible}
|
||||||
values={checkData}
|
values={checkData}
|
||||||
/>
|
/>
|
||||||
|
{/**风控组件 */}
|
||||||
|
{riskVisible && <RiskPreventionSoft
|
||||||
|
modalVisible={riskVisible}
|
||||||
|
onCancel={() => {
|
||||||
|
setRiskVisible(false);
|
||||||
|
setRiskData([]);
|
||||||
|
}}
|
||||||
|
onSubmit={() => submitClick()}
|
||||||
|
data={riskData}
|
||||||
|
/>}
|
||||||
</Spin>
|
</Spin>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
@ -239,3 +239,14 @@ export function getOfferUrl(params: any) {
|
|||||||
params: params,
|
params: params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交前风险防控校验接口
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function beforeRiskControl(data: any) {
|
||||||
|
return request("/api/biz-service-ebtp-rsms/v1/riskcenter/getRemindSummary", {
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
import React, { useState, useEffect, useRef } from 'react';
|
import React, { useState, useEffect, useRef } from 'react';
|
||||||
import { Button, Table, Tabs, Space, Progress, Radio, Modal, Menu, Checkbox, Pagination, Input, message, Upload, Spin, Form, Collapse } from 'antd';
|
import { Button, Table, Tabs, Space, Progress, Radio, Modal, Menu, Checkbox, Pagination, Input, message, Upload, Spin, Form, Collapse } from 'antd';
|
||||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getMemberInfo, getEval, getUnlock, isStatus, checkShowData, getFile, submitSummary, submQualified } from './service';
|
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getMemberInfo, getEval, getUnlock, isStatus, checkShowData, getFile, submitSummary, submQualified, beforeRiskControl } from './service';
|
||||||
import '@/assets/ld_style.less'
|
import '@/assets/ld_style.less'
|
||||||
import BidPreliminarySpeed from './components/BidPreliminarySpeed';
|
import BidPreliminarySpeed from './components/BidPreliminarySpeed';
|
||||||
import BidPreliminarySummary from './components/BidPreliminarySummary';
|
import BidPreliminarySummary from './components/BidPreliminarySummary';
|
||||||
@ -12,6 +12,7 @@ import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
|
|||||||
import ExtendUpload from '@/utils/ExtendUpload';
|
import ExtendUpload from '@/utils/ExtendUpload';
|
||||||
import { btnAuthority } from '@/utils/authority';
|
import { btnAuthority } from '@/utils/authority';
|
||||||
import MACAddressPrompt from '../../BidControl/BidControlManager/components/MACAddressPrompt';
|
import MACAddressPrompt from '../../BidControl/BidControlManager/components/MACAddressPrompt';
|
||||||
|
import RiskPreventionSoft from '@/utils/RiskPreventionSoft';
|
||||||
|
|
||||||
const { TabPane } = Tabs;
|
const { TabPane } = Tabs;
|
||||||
const { SubMenu } = Menu;
|
const { SubMenu } = Menu;
|
||||||
@ -55,6 +56,10 @@ const Index: React.FC<{}> = () => {
|
|||||||
const [dateLength, setDateLength] = useState<any>([]); // tab签长度
|
const [dateLength, setDateLength] = useState<any>([]); // tab签长度
|
||||||
const [isModalVisible, setIsModalVisible] = useState(false); // 全局全部合格弹窗
|
const [isModalVisible, setIsModalVisible] = useState(false); // 全局全部合格弹窗
|
||||||
const [submitLoading, setSubmitLoading] = useState<boolean>(false); // 提交汇总loading
|
const [submitLoading, setSubmitLoading] = useState<boolean>(false); // 提交汇总loading
|
||||||
|
//风控弹窗 2022.8.17 zhoujianlong
|
||||||
|
const [riskVisible, setRiskVisible] = useState<boolean>(false);
|
||||||
|
//风控数据 2022.8.17 zhoujianlong
|
||||||
|
const [riskData, setRiskData] = useState<any[]>([]);
|
||||||
|
|
||||||
//获取数据的参数
|
//获取数据的参数
|
||||||
const [findScoreRecordData, setFindScoreRecordData] = useState<any>();
|
const [findScoreRecordData, setFindScoreRecordData] = useState<any>();
|
||||||
@ -879,6 +884,31 @@ const Index: React.FC<{}> = () => {
|
|||||||
})
|
})
|
||||||
}, [count]);
|
}, [count]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 风控中心校验
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
const verificationRiskControl = () => {
|
||||||
|
const remarkList = getRemarkList(ref.current);
|
||||||
|
console.log(remarkList);
|
||||||
|
let submitData = {
|
||||||
|
reviewStatus: '2',
|
||||||
|
reviewTurnId: getURLInformation("turnId"),
|
||||||
|
reviewType: '1',
|
||||||
|
remarkList: remarkList,
|
||||||
|
}
|
||||||
|
beforeRiskControl(submitData).then(res => {
|
||||||
|
if (res?.code == 200) {
|
||||||
|
if (res?.data.length > 0) {
|
||||||
|
setRiskData(res?.data);
|
||||||
|
setRiskVisible(true);
|
||||||
|
} else {
|
||||||
|
finalSubmit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Spin spinning={spinVisible || submitLoading}>
|
<Spin spinning={spinVisible || submitLoading}>
|
||||||
@ -905,7 +935,7 @@ const Index: React.FC<{}> = () => {
|
|||||||
{reviewStatus == 2 || reviewStatus == 3 ? null : (
|
{reviewStatus == 2 || reviewStatus == 3 ? null : (
|
||||||
<div>
|
<div>
|
||||||
{tableDisplay == true ? (
|
{tableDisplay == true ? (
|
||||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="primary" size="small" className="fr ml10 mb10" onClick={() => finalSubmit()} loading={submitLoading}>提交汇总</Button>
|
<Button hidden={btnAuthority(['ebtp-expert'])} type="primary" size="small" className="fr ml10 mb10" onClick={() => verificationRiskControl()} loading={submitLoading}>提交汇总</Button>
|
||||||
) : null}
|
) : null}
|
||||||
<Button hidden={btnAuthority(['ebtp-expert'])} onClick={getLock} type="primary" size="small" className="fr mb10">评审解锁</Button>
|
<Button hidden={btnAuthority(['ebtp-expert'])} onClick={getLock} type="primary" size="small" className="fr mb10">评审解锁</Button>
|
||||||
</div>
|
</div>
|
||||||
@ -1067,6 +1097,16 @@ const Index: React.FC<{}> = () => {
|
|||||||
<Modal title="全部合格" visible={isModalVisible} onOk={() => makeQualified()} onCancel={() => setIsModalVisible(false)}>
|
<Modal title="全部合格" visible={isModalVisible} onOk={() => makeQualified()} onCancel={() => setIsModalVisible(false)}>
|
||||||
<p>此操作会删除原有数据,是否继续?</p>
|
<p>此操作会删除原有数据,是否继续?</p>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
{/**风控组件 */}
|
||||||
|
{riskVisible && <RiskPreventionSoft
|
||||||
|
modalVisible={riskVisible}
|
||||||
|
onCancel={() => {
|
||||||
|
setRiskVisible(false);
|
||||||
|
setRiskData([]);
|
||||||
|
}}
|
||||||
|
onSubmit={() => finalSubmit()}
|
||||||
|
data={riskData}
|
||||||
|
/>}
|
||||||
</Spin>
|
</Spin>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
@ -189,3 +189,14 @@ export async function getFile(id: any) { // 查找是否有应答文件
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交前风险防控校验接口
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function beforeRiskControl(data: any) {
|
||||||
|
return request("/api/biz-service-ebtp-rsms/v1/riskcenter/getRemindEarlySummary", {
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
}
|
Reference in New Issue
Block a user