Merge branch 'master' of http://10.124.128.2:8888/eshop/fe_service_ebtp_frontend into 20220613-将PUT和DELETE请求更改成POST请求
This commit is contained in:
@ -0,0 +1,121 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Collapse, Table } from 'antd';
|
||||
import { getBidDocSmartCheckList } from '../service';
|
||||
import { getRoomId, getSessionRoleData } from '@/utils/session';
|
||||
|
||||
interface BidDocSmartCheckFormModalProps {
|
||||
modalVisible: boolean;
|
||||
values: any;
|
||||
onCancel: any;
|
||||
}
|
||||
|
||||
const BidDocSmartCheckFormModal: React.FC<BidDocSmartCheckFormModalProps> = (props) => {
|
||||
|
||||
const [bidDocSmartCheckList, setBidDocSmartCheckList] = useState([]);
|
||||
|
||||
//查看详情窗口record
|
||||
const [juryTableShow, setJuryTableShow] = useState<boolean>(true);
|
||||
|
||||
//是否显示法人及投标人名称对比结果;false-不显示结果,true-显示结果
|
||||
const [checkLegalAndNameResult, setCheckLegalAndNameResult] = useState<boolean>(true);
|
||||
|
||||
var roleId = getSessionRoleData().roleCode;
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
setJuryTableShow(false);
|
||||
getWarningList();
|
||||
if (roleId === "ebtp-expert") {
|
||||
setJuryTableShow(false);
|
||||
}
|
||||
}, [])
|
||||
|
||||
function callback(key: any) {
|
||||
//getSessionUserData.roleIds;
|
||||
}
|
||||
function visibleValue(key: any) {
|
||||
if (key) {
|
||||
return <span style={{ color: 'green' }}>√</span>;
|
||||
} else {
|
||||
return <span style={{ color: 'red' }}>×</span>;
|
||||
}
|
||||
}
|
||||
function visibleLegalAndNameValue(key: any) {
|
||||
//false-不显示结果,true-显示结果
|
||||
if (checkLegalAndNameResult) {
|
||||
if (key) {
|
||||
return <span style={{ color: 'green' }}>√</span>;
|
||||
} else {
|
||||
return <span style={{ color: 'red' }}>×</span>;
|
||||
}
|
||||
} else {
|
||||
return <span></span>;
|
||||
}
|
||||
}
|
||||
|
||||
const BidDocSmartCheckColumns = [
|
||||
{ title: '序号', dataIndex: 'num', width: 60, render: (text: any, record: any, index: any) => `${index + 1}` },
|
||||
{ title: '供应商名称', dataIndex: 'companyName', },
|
||||
{
|
||||
title: '供应商投标文件密封性检查', dataIndex: 'docTightnessCheck', render: (_: any, record: any) => {
|
||||
return visibleValue(record.docTightnessCheck);
|
||||
}
|
||||
},
|
||||
{ title: '供应商投标文件的完整性', dataIndex: 'docIntegrityCheck', render: (_: any, record: any) => {
|
||||
return visibleValue(record.docIntegrityCheck);
|
||||
}},
|
||||
{ title: 'Mac、IP地址校验', dataIndex: 'macIPCheck', render: (_: any, record: any) => {
|
||||
return visibleValue(record.macIPCheck);
|
||||
}},
|
||||
{ title: '投标保证金缴纳', dataIndex: 'ensureStatus', render: (_: any, record: any) => {
|
||||
return visibleValue(record.ensureStatus);
|
||||
}},
|
||||
{ title: '不同投标人间法定代表人、法定代表授权委托人对比', dataIndex: 'supplierLegalCheck', render: (_: any, record: any) => {
|
||||
return visibleLegalAndNameValue(record.supplierLegalCheck);
|
||||
}},
|
||||
{ title: '投标人名称与系统操作投标人名称', dataIndex: 'supplierNameCheck', render: (_: any, record: any) => {
|
||||
return visibleLegalAndNameValue(record.supplierNameCheck);
|
||||
}},
|
||||
];
|
||||
|
||||
|
||||
const ret = { "code": 200, "success": true, "message": "success", "data": []}
|
||||
const getWarningList = async () => {
|
||||
let roomId = getRoomId();//sessionStorage.getItem('roomId');//sessionStorage.getItem('roomId')
|
||||
|
||||
//投标文件智能审查
|
||||
await getBidDocSmartCheckList(roomId).then((res) => {
|
||||
if (res.success == true) {
|
||||
setCheckLegalAndNameResult(res?.data?.isCheckLegalAndName);
|
||||
if(res?.data?.isCheckOpen){
|
||||
setJuryTableShow(true);
|
||||
setBidDocSmartCheckList(res.data?.checkResults)
|
||||
}
|
||||
} else {
|
||||
setBidDocSmartCheckList(ret.data);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{juryTableShow ?
|
||||
<Collapse onChange={callback}>
|
||||
<Collapse.Panel header="投标文件智能审查" key="3">
|
||||
{<span style={{ color: 'red' }}>注:"√"为审查项智能审查通过,"×"为审查项智能审查存在风险</span>}
|
||||
{
|
||||
<Table
|
||||
columns={BidDocSmartCheckColumns}
|
||||
dataSource={bidDocSmartCheckList}
|
||||
pagination={false}//分页
|
||||
></Table>
|
||||
|
||||
}
|
||||
</Collapse.Panel>
|
||||
</Collapse>
|
||||
: null}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default BidDocSmartCheckFormModal;
|
@ -8,6 +8,7 @@ import ViewBlacklistFormModal from './components/ViewBlacklistFormModal';
|
||||
import ViewReviewResultFormModal from './components/ViewReviewResultFormModal';
|
||||
import ViewJuryScoringRemindFormModal from './components/ViewJuryScoringRemindFormModal';
|
||||
import ViewJuryScoringAnalysisFormModal from './components/ViewJuryScoringAnalysisFormModal';
|
||||
import BidDocSmartCheckFormModal from './components/BidDocSmartCheckFormModal';
|
||||
|
||||
function callback(key) {
|
||||
//getSessionUserData.roleIds;
|
||||
@ -90,6 +91,11 @@ const Sing: React.FC<{}> = () => {
|
||||
const [ViewJuryScoringAnalysisFormVisible, setViewJuryScoringAnalysisFormVisible] = useState<any>(false);
|
||||
//查看详情窗口record
|
||||
const [ViewJuryScoringAnalysisValues, setViewJuryScoringAnalysisValues] = useState<any>({});
|
||||
|
||||
//投标文件智能审查
|
||||
const [BidDocSmartCheckFormVisible, setBidDocSmartCheckFormVisible] = useState<any>(false);
|
||||
//查看详情窗口record
|
||||
const [BidDocSmartCheckValues, setBidDocSmartCheckValues] = useState<any>({});
|
||||
|
||||
|
||||
const getWarningList = async() => {
|
||||
@ -175,6 +181,19 @@ const Sing: React.FC<{}> = () => {
|
||||
</ViewJuryScoringAnalysisFormModal>
|
||||
) : null
|
||||
}
|
||||
{
|
||||
BidDocSmartCheckFormModal ? (
|
||||
<BidDocSmartCheckFormModal
|
||||
modalVisible={BidDocSmartCheckFormVisible}
|
||||
values={BidDocSmartCheckValues}
|
||||
onCancel={() => {
|
||||
setBidDocSmartCheckFormVisible(!BidDocSmartCheckFormVisible);
|
||||
setBidDocSmartCheckValues({});
|
||||
}}
|
||||
>
|
||||
</BidDocSmartCheckFormModal>
|
||||
) : null
|
||||
}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
@ -63,6 +63,13 @@ export async function getBlackList(projectId: any, assessRoomId: any) { //黑名
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export async function getBidDocSmartCheckList(assessRoomId: any) { //投标文件智能审查
|
||||
return request('/api/biz-service-ebtp-resps/v1/tfilewarning/getBidDocSmartCheck?assessRoomId='+`${assessRoomId}`, {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
export async function getDeviatedWarnList(assessRoomId: any) { // 偏离度提醒
|
||||
return request('/api/biz-service-ebtp-rsms/v1/bid/deviated/warn/findBidDeviatedWarnListByRoomId/' + `${assessRoomId}`, {
|
||||
method: 'get'
|
||||
|
@ -1,9 +1,9 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getEval, getFile, calculationPriceScore, saveOffer, getPage, getProjectById } from './service';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload, Tooltip } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getEval, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl } from './service';
|
||||
import '@/assets/ld_style.less'
|
||||
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
||||
import { getSessionUserData, getRoomId, getUserToken, getProMethod, getProId, getSectionQuot } from '@/utils/session';
|
||||
import { getSessionUserData, getRoomId, getUserToken, getProMethod, getProId, getSectionQuot, getSessionRoleData } from '@/utils/session';
|
||||
import FileDown from '@/utils/Download';
|
||||
import { getURLInformation } from '@/utils/CommonUtils';
|
||||
import { btnAuthority } from '@/utils/authority';
|
||||
@ -68,6 +68,8 @@ const Index: React.FC<{}> = () => {
|
||||
const modalHeight = (innerHeight * 96) / 100;
|
||||
//获取标段的标价类型 1-百分比 0-元
|
||||
const sectionQuot = getSectionQuot();
|
||||
//当前登录人角色
|
||||
const roleCode = getSessionRoleData()?.roleCode;
|
||||
let showNameT: any = { tbr: '', pb: '', tb: '' }//投标人供应商
|
||||
if (proMethod === 'procurement_mode_1' || proMethod === 'procurement_mode_2') {//招标
|
||||
showNameT = { tbr: '投标人', pb: '评标', tb: '投标' };
|
||||
@ -216,7 +218,7 @@ const Index: React.FC<{}> = () => {
|
||||
title: showNameT.tbr + '报价(元)',
|
||||
dataIndex: 'evaluatingContent',
|
||||
sorter: {
|
||||
compare: (a, b) => a.evaluatingContent - b.evaluatingContent,
|
||||
compare: (a: any, b: any) => a.evaluatingContent - b.evaluatingContent,
|
||||
multiple: 2,
|
||||
},
|
||||
},
|
||||
@ -439,22 +441,22 @@ const Index: React.FC<{}> = () => {
|
||||
bidEvalDetailDTOList = []
|
||||
})
|
||||
} else {
|
||||
let date = {
|
||||
bidEvalId: bidEvalId,
|
||||
reviewTurnId: reviewTurnId,
|
||||
category: typeCategory,
|
||||
assessRoomId: assessRoomId,
|
||||
reviewType: '2'
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if(res.data == 100){
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
}
|
||||
}
|
||||
})
|
||||
let date = {
|
||||
bidEvalId: bidEvalId,
|
||||
reviewTurnId: reviewTurnId,
|
||||
category: typeCategory,
|
||||
assessRoomId: assessRoomId,
|
||||
reviewType: '2'
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res.data == 100) {
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -919,13 +921,15 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
@ -934,7 +938,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled || endProgress} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled || endProgress} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
</div>
|
||||
@ -1021,8 +1028,15 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
await getProjectById(getProId()).then(response => {
|
||||
if (response?.code == 200 && response?.success == true) {
|
||||
const resData = response?.data
|
||||
window.open(`${REACT_APP_XUNJIA_REDIRECT}/inquiryoffer/ztbViewOffer.do?inquiry_no=${resData?.ebpProjectNumber}&offer_no=${offerId}`)
|
||||
const data = response?.data
|
||||
// window.open(`${REACT_APP_XUNJIA_REDIRECT}/inquiryoffer/ztbViewOffer.do?inquiry_no=${resData?.ebpProjectNumber}&offer_no=${offerId}`)
|
||||
const page = `quote-ztbIndex&inqueryNo=${data?.ebpProjectNumber}&offNo=${record?.offerOrderNo}`;
|
||||
const userId = roleCode == "ebtp-supplier" ? record.bidUserId : REACT_APP_XUNJIA_UID;
|
||||
getOfferUrl({ userId, page }).then(response => {
|
||||
if (response?.code == 200) {
|
||||
window.open(response?.data);
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -1237,7 +1251,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -1245,6 +1259,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
@ -99,7 +99,7 @@ export async function getEval(params: any) { // 获取页面接口数据
|
||||
}
|
||||
|
||||
export async function getFile(id: any) { // 查找是否有应答文件
|
||||
return request('/api/biz-service-ebtp-rsms/v1/review/config/detail/doc/list?detailId='+id, {
|
||||
return request('/api/biz-service-ebtp-rsms/v1/review/config/detail/doc/list?detailId=' + id, {
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
@ -136,8 +136,8 @@ export async function saveOffer(data: any) { // 自动报价保存
|
||||
* 查询已报名的供应商
|
||||
* @param params
|
||||
*/
|
||||
export async function getPage(params?: any) {
|
||||
return request(`/api/biz-service-ebtp-tender/v1/supplier_register/get_register/${params}`,{
|
||||
export async function getPage(params?: any) {
|
||||
return request(`/api/biz-service-ebtp-tender/v1/supplier_register/get_register/${params}`, {
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
@ -146,6 +146,17 @@ export async function saveOffer(data: any) { // 自动报价保存
|
||||
* 根据id查询项目信息
|
||||
* @param id
|
||||
*/
|
||||
export function getProjectById(id: any) {
|
||||
return request('/api/biz-service-ebtp-project/v1/projectRecord/' + id);
|
||||
}
|
||||
export function getProjectById(id: any) {
|
||||
return request('/api/biz-service-ebtp-project/v1/projectRecord/' + id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密后的查看报价详情跳转地址
|
||||
* @param params
|
||||
*/
|
||||
export function getOfferUrl(params: any) {
|
||||
return request('/api/biz-service-ebtp-extend/v1/singlePoint/getSsoUrlByPage', {
|
||||
method: 'GET',
|
||||
params: params,
|
||||
});
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
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 } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById } from './service';
|
||||
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 '@/assets/ld_style.less'
|
||||
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
||||
import { getExperts } from '../BidDetailedManager/service';
|
||||
@ -8,7 +8,7 @@ import ConsistencyCheck from './components/ConsistencyCheck';
|
||||
import BidDetailSummary from './components/BidDetailSummary';
|
||||
import BidDetailSpeed from './components/BidDetailSpeed';
|
||||
import { handleSubmit } from './utils';
|
||||
import { getProId, getProMethod, getRoomId, getSectionQuot, getSessionUserData, getUserToken } from '@/utils/session';
|
||||
import { getProId, getProMethod, getRoomId, getSectionQuot, getSessionRoleData, getSessionUserData, getUserToken } from '@/utils/session';
|
||||
import FileDown from '@/utils/Download';
|
||||
import { getURLInformation, isEmpty } from '@/utils/CommonUtils';
|
||||
import { btnAuthority } from '@/utils/authority';
|
||||
@ -90,6 +90,8 @@ const Index: React.FC<{}> = () => {
|
||||
const sectionQuot = getSectionQuot();
|
||||
const [isEndProgress, setIsEndProgress] = useState<boolean>(false); // 是否可编辑
|
||||
const [submitLoading, setSubmitLoading] = useState<boolean>(false); // 提交汇总loading
|
||||
//当前登录人角色
|
||||
const roleCode = getSessionRoleData()?.roleCode;
|
||||
let showNameT: any = { tbr: '', pb: '', tb: '' }//投标人供应商
|
||||
if (proMethod === 'procurement_mode_1' || proMethod === 'procurement_mode_2') {//招标
|
||||
showNameT = { tbr: '投标人', pb: '评标', tb: '投标' };
|
||||
@ -466,22 +468,22 @@ const Index: React.FC<{}> = () => {
|
||||
bidEvalDetailDTOList = []
|
||||
})
|
||||
} else {
|
||||
let date = {
|
||||
bidEvalId: bidEvalId,
|
||||
reviewTurnId: reviewTurnId,
|
||||
category: typeCategory,
|
||||
assessRoomId: assessRoomId,
|
||||
reviewType: '2'
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if(res.data == 100){
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
}
|
||||
}
|
||||
})
|
||||
let date = {
|
||||
bidEvalId: bidEvalId,
|
||||
reviewTurnId: reviewTurnId,
|
||||
category: typeCategory,
|
||||
assessRoomId: assessRoomId,
|
||||
reviewType: '2'
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if (res.data == 100) {
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -952,13 +954,15 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
@ -967,7 +971,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled || endProgress} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled || endProgress} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
</div>
|
||||
@ -1052,8 +1059,15 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
await getProjectById(getProId()).then(response => {
|
||||
if (response?.code == 200 && response?.success == true) {
|
||||
const resData = response?.data
|
||||
window.open(`${REACT_APP_XUNJIA_REDIRECT}/inquiryoffer/ztbViewOffer.do?inquiry_no=${resData?.ebpProjectNumber}&offer_no=${offerId}`)
|
||||
const data = response?.data
|
||||
// window.open(`${REACT_APP_XUNJIA_REDIRECT}/inquiryoffer/ztbViewOffer.do?inquiry_no=${resData?.ebpProjectNumber}&offer_no=${offerId}`)
|
||||
const page = `quote-ztbIndex&inqueryNo=${data?.ebpProjectNumber}&offNo=${record?.offerOrderNo}`;
|
||||
const userId = roleCode == "ebtp-supplier" ? record.bidUserId : REACT_APP_XUNJIA_UID;
|
||||
getOfferUrl({ userId, page }).then(response => {
|
||||
if (response?.code == 200) {
|
||||
window.open(response?.data);
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -1268,7 +1282,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -1276,6 +1290,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
@ -215,8 +215,8 @@ export async function saveOffer(data: any) { // 自动报价保存
|
||||
* 查询已报名的供应商
|
||||
* @param params
|
||||
*/
|
||||
export async function getPage(params?: any) {
|
||||
return request(`/api/biz-service-ebtp-tender/v1/supplier_register/get_register/${params}`,{
|
||||
export async function getPage(params?: any) {
|
||||
return request(`/api/biz-service-ebtp-tender/v1/supplier_register/get_register/${params}`, {
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
@ -225,6 +225,17 @@ export async function saveOffer(data: any) { // 自动报价保存
|
||||
* 根据id查询项目信息
|
||||
* @param id
|
||||
*/
|
||||
export function getProjectById(id: any) {
|
||||
return request('/api/biz-service-ebtp-project/v1/projectRecord/' + id);
|
||||
}
|
||||
export function getProjectById(id: any) {
|
||||
return request('/api/biz-service-ebtp-project/v1/projectRecord/' + id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密后的查看报价详情跳转地址
|
||||
* @param params
|
||||
*/
|
||||
export function getOfferUrl(params: any) {
|
||||
return request('/api/biz-service-ebtp-extend/v1/singlePoint/getSsoUrlByPage', {
|
||||
method: 'GET',
|
||||
params: params,
|
||||
});
|
||||
}
|
@ -123,6 +123,9 @@ const viewOfTenderDocuments: React.FC<{}> = () => {
|
||||
setSpinning(true);
|
||||
getFileNode({ tdocCatalogId: info.node.key, tendererId: tendererId, tdocId: tdocid }).then(res => {
|
||||
if (res?.code == 200) {
|
||||
for (const ite of res.data.tfileContentList) {
|
||||
ite["nodeName"] = info.node.title;
|
||||
}
|
||||
setZipListTable(res.data.tfileContentList);
|
||||
}
|
||||
setSpinning(false);
|
||||
@ -246,7 +249,7 @@ const viewOfTenderDocuments: React.FC<{}> = () => {
|
||||
/* message.error('程序出错,亲您稍后在世');*/
|
||||
};
|
||||
const downloadZip = (render: any) => {
|
||||
let fileName = render.fileName;
|
||||
let fileName = render.tendererName + '-' + render.nodeName;
|
||||
window.location.href = "/api/core-service-ebtp-updownload/v1/hulk/download?p=" + render.content + "&n=" + fileName;
|
||||
}
|
||||
|
||||
|
@ -147,6 +147,9 @@ const viewOfTenderDocumentsSecond: React.FC<{}> = () => {
|
||||
setSpinning(true);
|
||||
getFileNode({ tdocCatalogId: info.node.key, tendererId: tendererId, tdocId: tdocid }).then(res => {
|
||||
if (res.code == 200) {
|
||||
for (const ite of res.data.tfileContentList) {
|
||||
ite["nodeName"] = info.node.title;
|
||||
}
|
||||
setZipListTable(res.data.tfileContentList);
|
||||
}
|
||||
setSpinning(false);
|
||||
@ -270,7 +273,7 @@ const viewOfTenderDocumentsSecond: React.FC<{}> = () => {
|
||||
/* message.error('程序出错,亲您稍后在世');*/
|
||||
};
|
||||
const downloadZip = (render: any) => {
|
||||
let fileName = render.fileName;
|
||||
let fileName = render.tendererName + '-' + render.nodeName;
|
||||
window.location.href = "/api/core-service-ebtp-updownload/v1/hulk/download?p=" + render.content + "&n=" + fileName;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user