评审规则设置

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,
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': {
target: 'http://localhost:18030',
changeOrigin: true,

View File

@ -66,7 +66,10 @@ const Promenu: React.FC<{}> = () => {
const open = Boolean(anchorEl);
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) {
let data = res.data;
setData(data);

View File

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

View File

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

View File

@ -246,7 +246,7 @@ const FirstMain: React.FC<FirstType> = (props) => {
onClick={showConfirm}
>
</Button>
</Button>
}
<FileTree

View File

@ -33,17 +33,35 @@ const Config: React.FC<{}> = () => {
roomType = getURLInformation("roomType");
}
//查评分办法和采购方式
getBizInfo(bizId).then((res) => {
let methodT = false;
if (res.code == 200) {
const data = res.data;
if (roomType == '2') {
data.evalMethodDict === 'eval_method_2' ? methodT = true : null;//评分办法 1最低价 2综合评估
}
data.ptcpMode === 'ptcp_mode_2' ? methodT = true : null;//采购方式 1合格制 2有限数量制
}
methodSet(methodT);
});
//TODO zyx假数据 start
// getBizInfo(bizId).then((res) => {
let methodT = false;
// if (res.code == 200) {
// 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') {
data.evalMethodDict === 'eval_method_2' ? methodT = true : null;//评分办法 1最低价 2综合评估
}
data.ptcpMode === 'ptcp_mode_2' ? methodT = true : null;//采购方式 1合格制 2有限数量制
// }
methodSet(methodT);
// });
//TODO zyx假数据 end
}, [])
return (

View File

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