Files
fe_service_ebtp_frontend/src/utils/FlowUtils.ts
2022-03-10 14:24:13 +08:00

284 lines
9.2 KiB
TypeScript

/*
* @Author:liqiang
* @Date: 2021-02-07 10:35:17
* @LastEditTime: 2021-04-02 16:35:09
* @Description: 根据流程不同显示不同名称
* @FilePath: \ebtp-cloud-frontend\src\utils\Flow.ts
*/
import { isEmpty } from "./CommonUtils";
import { getDefId } from "./session";
export const moduleName = {
//名称(招标、资审、招募)
name: 'name',
//标段名称
section: 'section',
//文件名称 (资审 招标 采购 招募 询价)
fileName: 'fileName',
//(投标 应答 资审投标)
response: 'response',
//费用名
cost: 'cost',
//开标 评审
review: 'review'
}
export const flowName = [
'',
'bid_prequalification',
'bid_qualification',
'bid_centralized_prequalification',
'bid_centralized_prequalification_bid',
'bid_invitation',
'comparison_one_prequalification',
'comparison_multi_prequalification',
'comparison_one',
'comparison_multi',
'recruit',
'recruit_multi',
'negotiation_competitive_public',
'negotiation_competitive_invite',
'negotiation_single',
'inquiry',
'auction',
];
//流程map
const flow = setFlowName();
/**
* 根据传入模块名获取流程名称
* @param name
*/
export function getFlowName(name: string) {
let defId = String(getDefId()),
data = flow.get(defId);
if (isEmpty(defId) || isEmpty(data)) {
return '';
}
return isEmpty(data[name]) ? "" : data[name];
}
export function getAllFlowNameByRoomType(bidMethodDict: any, roomType: any) {
if (bidMethodDict === 'procurement_mode_1' && roomType === '2') {
return getbidQualification();
} else if (bidMethodDict === 'procurement_mode_3' && roomType === '2') {
return getComparisonOne();
}
return getAllFlowName();
}
/**
* 获取招标后审名称
* @returns
*/
export function getbidQualification() {
let defId = flowName[2];
return flow.get(defId);
}
/**
* 获取比选后审名称
*/
export function getComparisonOne() {
let defId = String(getDefId());
switch (defId) {
//公开比选一阶段-资格预审
case "comparison_one_prequalification":
// 公开比选一阶段
case "comparison_one":
return flow.get("comparison_one");
//公开比选多阶段-资格预审
case "comparison_multi_prequalification":
//公开比选多阶段
case "comparison_multi":
return flow.get("comparison_multi");
default:
return {};
}
}
/**
* 获取流程所有数据名称
* @param name
*/
export function getAllFlowName() {
let defId = String(getDefId()),
data = flow.get(defId);
return isEmpty(data) ? {} : data;
}
/**
* 设置流程名称
*/
function setFlowName() {
let map = new Map();
for (let i = 1; i < flowName.length; i++) {
map.set(flowName[i], dependingOnTheProcess(i));
}
return map;
}
/**
* 根据流程不同显示不同名称
* -1- 公开招标-资格预审
* -2- 公开招标-资格后审
* -3- 公开招标-集中资格预审
* -4- 公开招标-集中资格预审招标
* -5- 邀请招标
* -6- 公开比选一阶段-资格预审
* -7- 公开比选多阶段-资格预审
* -8- 公开比选一阶段
* -9- 公开比选多阶段
* -10- 公开招募
* -11- 常态化招募
* -12- 竞争性谈判-公开参与
* -13- 竞争性谈判-邀请参与
* -14- 单一来源
* -15- 询价
* -16- 内拍
* @param i
*/
function dependingOnTheProcess(i: number) {
let data = {};
switch (i) {
//公开招标-资格预审
case 1:
data[moduleName.section] = '标段';
data[moduleName.fileName] = '资审';
data[moduleName.name] = '资审';
data[moduleName.response] = '投标';
data[moduleName.cost] = '标书费(元)';
data[moduleName.review] = '开标';
break;
//公开招标-资格后审
case 2:
data[moduleName.section] = '标段';
data[moduleName.fileName] = '招标';
data[moduleName.name] = '招标';
data[moduleName.response] = '投标';
data[moduleName.cost] = '标书费(元)';
data[moduleName.review] = '开标';
break;
//公开招标-集中资格预审
case 3:
data[moduleName.section] = '标段';
data[moduleName.fileName] = '资审';
data[moduleName.name] = '资审';
data[moduleName.response] = '投标';
data[moduleName.cost] = '标书费(元)';
data[moduleName.review] = '开标';
break;
//公开招标-集中资格预审招标
case 4:
data[moduleName.section] = '标段';
data[moduleName.fileName] = '资审';
data[moduleName.name] = '资审';
data[moduleName.response] = '投标';
data[moduleName.cost] = '标书费(元)';
data[moduleName.review] = '开标';
break;
//邀请招标
case 5:
data[moduleName.section] = '标段';
data[moduleName.fileName] = '招标';
data[moduleName.name] = '招标';
data[moduleName.response] = '投标';
data[moduleName.cost] = '标书费(元)';
data[moduleName.review] = '开标';
break;
//公开比选一阶段-资格预审
case 6:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '资审';
data[moduleName.name] = '资审';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开启';
break;
//公开比选多阶段-资格预审
case 7:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '资审';
data[moduleName.name] = '资审';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开始评审';
break;
//公开比选一阶段
case 8:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '采购';
data[moduleName.name] = '采购';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开启';
break;
//公开比选多阶段
case 9:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '采购';
data[moduleName.name] = '采购';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开始评审';
break;
// 公开招募
case 10:
data[moduleName.section] = '包件';
data[moduleName.fileName] = '招募';
data[moduleName.name] = '招募';
data[moduleName.response] = '应答';
data[moduleName.cost] = '招募文件费用(元)';
data[moduleName.review] = '开始评审';
break;
//常态化招募
case 11:
data[moduleName.section] = '包件';
data[moduleName.fileName] = '招募';
data[moduleName.name] = '招募';
data[moduleName.response] = '应答';
data[moduleName.cost] = '招募文件费用(元)';
data[moduleName.review] = '开始评审';
break;
//竞争性谈判-公开参与
case 12:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '采购';
data[moduleName.name] = '采购';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开始评审';
break;
//竞争性谈判-邀请参与
case 13:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '采购';
data[moduleName.name] = '采购';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '开始评审';
break;
//单一来源
case 14:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '采购';
data[moduleName.name] = '采购';
data[moduleName.response] = '应答';
data[moduleName.cost] = '采购文件费用(元)';
data[moduleName.review] = '评审';
break;
//询价
case 15:
data[moduleName.section] = '采购包';
data[moduleName.fileName] = '询价';
data[moduleName.name] = '询价';
data[moduleName.response] = '应答';
data[moduleName.cost] = '询价文件费用(元)';
data[moduleName.review] = '评审';
break;
//内拍
case 16:
break;
default:
}
return data;
}