评审规则设置

This commit is contained in:
jlzhangyx5
2025-06-11 14:39:30 +08:00
parent 300a9945cf
commit 380a850800
7 changed files with 127 additions and 54 deletions

View File

@ -33,6 +33,11 @@ export default {
changeOrigin: true, changeOrigin: true,
pathRewrite: { '/api/biz-service-ebtp-project': '' }, pathRewrite: { '/api/biz-service-ebtp-project': '' },
}, },
'/api/biz-service-ebtp-process': {
target: 'http://localhost:18011',
changeOrigin: true,
pathRewrite: { '/api/biz-service-ebtp-process': '' },
},
'/api/sys-manager-ebtp-project': { '/api/sys-manager-ebtp-project': {
target: 'http://localhost:18030', target: 'http://localhost:18030',
changeOrigin: true, changeOrigin: true,

View File

@ -66,7 +66,10 @@ const Promenu: React.FC<{}> = () => {
const open = Boolean(anchorEl); const open = Boolean(anchorEl);
useEffect(() => { useEffect(() => {
menuList({ defId: defId, projectId: projectId }).then(res => { //TODO zyx假数据-start
menuList({ defId: 'bid_qualification', projectId: '1920644626460389376' }).then(res => {
// menuList({ defId: defId, projectId: projectId }).then(res => {
//TODO zyx假数据-end
if (res.code === 200) { if (res.code === 200) {
let data = res.data; let data = res.data;
setData(data); setData(data);

View File

@ -397,7 +397,44 @@ const DetailedMain: React.FC<detailType> = (props) => {
} }
}} value={parseInt(record.effectiveType)}> }} value={parseInt(record.effectiveType)}>
<Radio className={styles.radioStyle} value={1}></Radio> <Radio className={styles.radioStyle} value={1}></Radio>
<Radio className={styles.radioStyle} value={2}><a className={styles.orange}></a></Radio> <Radio className={styles.radioStyle} value={2} >
<div style={{ float: "right" }}>
<div style={{ float: "left" }}>
{returnInput(record, 'removeMaxNumber', 1, parseInt(record.effectiveType), record.removeMaxNumber, 2)} <a className={styles.orange}></a>
</div>
<div style={{ float: "left", marginLeft: '100px' }}>
</div>
</div>
<div >
<div style={{ float: "left", marginLeft: '24px' }}>
{returnInput(record, 'removeMinNumber', 1, parseInt(record.effectiveType), record.removeMinNumber, 2)} <a className={styles.orange}></a>
</div>
</div>
</Radio>
<div style={{ clear: 'both' }} />
<Radio className={styles.radioStyle} value={6}>
<div style={{ float: "right" }}>
<div style={{ float: "left" , marginLeft: '-7px' }}>
{returnInput(record, 'includeLowPrice', 1, parseInt(record.effectiveType), record.includeLowPrice, 6)} {/*TODO zyx-获取币种*/}
</div>
<div style={{ float: "left", marginLeft: '2px' }}>
<Radio.Group
disabled={hideOffer || dis}
value={parseInt(record.effectiveType) == 6 ? parseInt(record.includeLowStatus) : null}
onChange={(event) => {
const value = event.target.value;
if (value != undefined) {
record.includeLowStatus = value;
reTable();
}
}}
>
<Radio className={styles.radioStyle} value={1} checked ></Radio>
</Radio.Group>
</div>
</div>
</Radio>
{/* <Radio className={styles.radioStyle} value={2}>去掉最高和最低各一家后的<a className={styles.orange}>报价</a></Radio>
<Radio className={styles.radioStyle} value={3}>去掉最两家高和最低各一家后的<a className={styles.orange}>报价</a></Radio> <Radio className={styles.radioStyle} value={3}>去掉最两家高和最低各一家后的<a className={styles.orange}>报价</a></Radio>
<Radio className={styles.radioStyle} value={4}>去掉最低一家后的<a className={styles.orange}>报价</a></Radio> <Radio className={styles.radioStyle} value={4}>去掉最低一家后的<a className={styles.orange}>报价</a></Radio>
<Radio className={styles.radioStyle} value={5}>去掉最高一家后的<a className={styles.orange}>报价</a></Radio> <Radio className={styles.radioStyle} value={5}>去掉最高一家后的<a className={styles.orange}>报价</a></Radio>
@ -444,7 +481,7 @@ const DetailedMain: React.FC<detailType> = (props) => {
</Radio.Group> </Radio.Group>
</div> </div>
</div> </div>
</Radio> </Radio> */}
<div style={{ clear: 'both' }} /> <div style={{ clear: 'both' }} />
<Radio className={styles.radioStyle} value={7}>{showNameT.pb}</Radio> <Radio className={styles.radioStyle} value={7}>{showNameT.pb}</Radio>
</Radio.Group> </Radio.Group>
@ -675,7 +712,7 @@ const DetailedMain: React.FC<detailType> = (props) => {
initialValue="请选择" initialValue="请选择"
rules={[{ required: true, message: '请选择类别' }]} rules={[{ required: true, message: '请选择类别' }]}
> >
<Select style={{ width: "80%" }}> <Select style={{ width: "80%" }} placeholder="请选择">
<Option value="商务" key="addCateKey1"></Option> <Option value="商务" key="addCateKey1"></Option>
<Option value="技术" key="addCateKey2"></Option> <Option value="技术" key="addCateKey2"></Option>
<Option value="服务" key="addCateKey3"></Option> <Option value="服务" key="addCateKey3"></Option>
@ -687,7 +724,7 @@ const DetailedMain: React.FC<detailType> = (props) => {
{({ getFieldValue }) => { {({ getFieldValue }) => {
const selectedType = getFieldValue('type'); const selectedType = getFieldValue('type');
return ( return (
selectedType !== '报价' && ( selectedType !== '报价' && selectedType!='请选择' && (
<Row> <Row>
<Col span={24}><FormItem <Col span={24}><FormItem
name="calculationMethod" name="calculationMethod"
@ -1063,9 +1100,12 @@ const DetailedMain: React.FC<detailType> = (props) => {
useEffect(() => { useEffect(() => {
if (show !== '1') { if (show !== '1') {
queryDetData(); queryDetData();
detailTem().then(res => { //TODO zyx 假数据-start
res?.code == 200 ? oidSet(res.data.documentCenterId) : null; oidSet("1673219453012992001");
}); // detailTem().then(res => {
// res?.code == 200 ? oidSet(res.data.documentCenterId) : null;
// });
//TODO zyx 假数据-end
} }
}, [show]); }, [show]);
@ -1256,6 +1296,8 @@ const DetailedMain: React.FC<detailType> = (props) => {
includeHighPrice: '', includeHighPrice: '',
includeLowStatus: 1,//最低价 含税不含税 includeLowStatus: 1,//最低价 含税不含税
includeLowPrice: '', includeLowPrice: '',
removeMaxNumber: '',
removeMinNumber: '',
}] }]
} }
let data1T: any = [...data1] let data1T: any = [...data1]
@ -1416,6 +1458,8 @@ const DetailedMain: React.FC<detailType> = (props) => {
case 'priceMultiplierSecond': now.priceMultiplierSecond = value; break; case 'priceMultiplierSecond': now.priceMultiplierSecond = value; break;
case 'lowScore': now.lowScore = value; break; case 'lowScore': now.lowScore = value; break;
case 'lowScoreSecond': now.lowScoreSecond = value; break; case 'lowScoreSecond': now.lowScoreSecond = value; break;
case 'removeMaxNumber': now.removeMaxNumber = value; break;
case 'removeMinNumber': now.removeMinNumber = value; break;
default: break; default: break;
} }
setData4(data); setData4(data);

View File

@ -240,37 +240,39 @@ export const getTreeDataOut = async (assessRoomId: any, turnSort: any) => {
let data: any = []; let data: any = [];
let rootT: any = []; let rootT: any = [];
let childT: any = []; let childT: any = [];
await getTree({ assessRoomId: assessRoomId, turnSort: turnSort }).then((res) => { //TODO zyx假数据-start
if (res.data != undefined) { // await getTree({ assessRoomId: assessRoomId, turnSort: turnSort }).then((res) => {
res.data.map((item: any, index: any) => { // if (res.data != undefined) {
const title1 = item.name; // res.data.map((item: any, index: any) => {
const key1 = item.id; // const title1 = item.name;
let children1: any = []; // const key1 = item.id;
if (item.children != undefined) { // let children1: any = [];
const children = item.children.map((item: any, index: any) => { // if (item.children != undefined) {
const title2 = item.name; // const children = item.children.map((item: any, index: any) => {
const key2 = item.id; // const title2 = item.name;
let children2: any = []; // const key2 = item.id;
if (item.children != undefined) { // let children2: any = [];
const children = item.children.map((item: any, index: any) => { // if (item.children != undefined) {
const title3 = item.name; // const children = item.children.map((item: any, index: any) => {
const key3 = item.id; // const title3 = item.name;
childT.push(key3) // const key3 = item.id;
return { title: title3, key: key3, pId: key2 } // childT.push(key3)
}); // return { title: title3, key: key3, pId: key2 }
children2 = children; // });
} // children2 = children;
childT.push(key2) // }
return { title: title2, key: key2, children: children2, pId: key1 } // childT.push(key2)
}); // return { title: title2, key: key2, children: children2, pId: key1 }
children1 = children; // });
} // children1 = children;
const first = { title: title1, key: key1, children: children1, pId: null } // }
rootT.push(key1) // const first = { title: title1, key: key1, children: children1, pId: null }
data.push(first); // rootT.push(key1)
}); // data.push(first);
} // });
}) // }
// })
//TODO zyx假数据-end
return { roots: rootT, childs: childT, treeData: data } return { roots: rootT, childs: childT, treeData: data }
} }
export default FileTree; export default FileTree;

View File

@ -33,17 +33,35 @@ const Config: React.FC<{}> = () => {
roomType = getURLInformation("roomType"); roomType = getURLInformation("roomType");
} }
//查评分办法和采购方式 //查评分办法和采购方式
getBizInfo(bizId).then((res) => { //TODO zyx假数据 start
// getBizInfo(bizId).then((res) => {
let methodT = false; let methodT = false;
if (res.code == 200) { // if (res.code == 200) {
const data = res.data; // const data = res.data;
const data = {
"createBy": "ex-wanghy623", "createDate": "2025-05-09 08:58:57",
"updateBy": "ex-wanghy623", "updateDate": null, "tenantId": "ebtp_mall", "tenantName": "ebtp_mall", "deleteFlag": "normal",
"lastUpdateTime": "2024-10-28 15:56:21", "id": "1920644626720436224", "projectId": "1920644626460389376",
"bidSectBizNum": "ZX36102410002138", "bidSectCode": 1, "bidSectName": "测试001", "bidSectContent": null, "bidSectTypeDict": null,
"bidSectContractPrice": 1000.00000, "contractPriceCurrencyDict": null, "selectionMethod": null, "reviewRules": null,
"priceUnitDict": null, "bidderQual": null, "quotationMethodDict": "quotation_method_2", "tenderOpeningTime": null,
"ptcpMode": null, "ptcpCount": null, "businessModule": 8, "status": 2, "attDatasetId": null, "checkMethodDict": null,
"chooseProcess": "choose_process_4", "reviewReportId": null, "sectionNumber": null, "evalMethodDict": "eval_method_2",
"procurementTypeDict": null, "miitSectionId": null, "monetaryUnit": null, "remarks": null, "parentSectionId": "1916736930678689792",
"projectPlanId": "1850785019690168356", "subprojectId": "1850783951401635842", "isAnnouncement": null, "priceCeiling": 800.00000,
"priceCeilingExplain": null, "isStructureQuote": "1", "structureQuoteModel": "003", "structureQuoteLimitType": "002",
"bidNumberIsDefinite": "1", "projBidRatioInfoVoList": [], "bidDefiniteNumber": "2", "structureNote": null,
"basePriceUnitLimit": null, "materialList": [], "purcModel": null, "preBidAnalysisFlag": 0, "quotePreResultFlag": "0"
};
//TODO zyx假数据 end
if (roomType == '2') { if (roomType == '2') {
data.evalMethodDict === 'eval_method_2' ? methodT = true : null;//评分办法 1最低价 2综合评估 data.evalMethodDict === 'eval_method_2' ? methodT = true : null;//评分办法 1最低价 2综合评估
} }
data.ptcpMode === 'ptcp_mode_2' ? methodT = true : null;//采购方式 1合格制 2有限数量制 data.ptcpMode === 'ptcp_mode_2' ? methodT = true : null;//采购方式 1合格制 2有限数量制
} // }
methodSet(methodT); methodSet(methodT);
}); // });
//TODO zyx假数据 end
}, []) }, [])
return ( return (

View File

@ -194,7 +194,7 @@ const List: React.FC<{}> = () => {
//查询已有配置的标段 //查询已有配置的标段
const getHaveConfigSections = async (evalMethod: any) => { const getHaveConfigSections = async (evalMethod: any) => {
let secs: any[] = [] let secs: any[] = []
await usePage({ projectId: getProId(), roomType: roomType, evalMethod: evalMethod }).then((res) => { await usePage({ projectId: proId, roomType: roomType, evalMethod: evalMethod }).then((res) => {
if (res.code == 200) { if (res.code == 200) {
const data = res.data; const data = res.data;
secs = [...data]; secs = [...data];
@ -205,7 +205,8 @@ const List: React.FC<{}> = () => {
} }
useEffect(() => { useEffect(() => {
//取项目id //取项目id
proIdSet(getProId()); //proIdSet(getProId());//TODO zyx-假数据
proIdSet("1920644626460389376");
// getHaveConfigSections(); // getHaveConfigSections();
}, []); }, []);
return ( return (
@ -220,7 +221,7 @@ const List: React.FC<{}> = () => {
// tableAlertRender={false} // tableAlertRender={false}
params={pageData} params={pageData}
request={(params) => request={(params) =>
getPage({ ...params, projectId: getProId(), roomType: roomType }).then((res) => { getPage({ ...params, projectId: proId, roomType: roomType }).then((res) => {
const result = { const result = {
data: res.data.records, data: res.data.records,
total: res.data.total, total: res.data.total,