|
@@ -107,36 +107,45 @@ INTERFACE_EXPORT = (() => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const sectionNameMap = {
|
|
const sectionNameMap = {
|
|
|
- "清单 第100章 总则": true,
|
|
|
|
|
- "清单 第200章 路基": true,
|
|
|
|
|
- "清单 第300章 路面": true,
|
|
|
|
|
- "清单 第400章 桥梁、涵洞": true,
|
|
|
|
|
- "清单 第500章 隧道": true,
|
|
|
|
|
- "清单 第600章 安全设施及预埋管线": true,
|
|
|
|
|
- "清单 第700章 绿化及环境保护设施": true,
|
|
|
|
|
|
|
+ "清单第100章总则": true,
|
|
|
|
|
+ "清单第200章路基": true,
|
|
|
|
|
+ "清单第300章路面": true,
|
|
|
|
|
+ "清单第400章桥梁、涵洞": true,
|
|
|
|
|
+ "清单第500章隧道": true,
|
|
|
|
|
+ "清单第600章安全设施及预埋管线": true,
|
|
|
|
|
+ "清单第700章绿化及环境保护设施": true,
|
|
|
// "清单 第800章 机电工程": true,
|
|
// "清单 第800章 机电工程": true,
|
|
|
// "清单 第900章 附属区房建工程":true
|
|
// "清单 第900章 附属区房建工程":true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const ListCodeMap = {
|
|
const ListCodeMap = {
|
|
|
"第100章至700章清单":"1",
|
|
"第100章至700章清单":"1",
|
|
|
- "清单 第100章 总则": "一",
|
|
|
|
|
- "清单 第200章 路基": "二",
|
|
|
|
|
- "清单 第300章 路面": "三",
|
|
|
|
|
- "清单 第400章 桥梁、涵洞": "四",
|
|
|
|
|
- "清单 第500章 隧道": "五",
|
|
|
|
|
- "清单 第600章 安全设施及预埋管线": "六",
|
|
|
|
|
- "清单 第700章 绿化及环境保护设施": "七",
|
|
|
|
|
|
|
+ // "清单 第100章 总则": "一",
|
|
|
|
|
+ // "清单 第200章 路基": "二",
|
|
|
|
|
+ // "清单 第300章 路面": "三",
|
|
|
|
|
+ // "清单 第400章 桥梁、涵洞": "四",
|
|
|
|
|
+ // "清单 第500章 隧道": "五",
|
|
|
|
|
+ // "清单 第600章 安全设施及预埋管线": "六",
|
|
|
|
|
+ // "清单 第700章 绿化及环境保护设施": "七",
|
|
|
// "清单 第800章 机电工程": "八",
|
|
// "清单 第800章 机电工程": "八",
|
|
|
// "清单 第900章 附属区房建工程": "九",
|
|
// "清单 第900章 附属区房建工程": "九",
|
|
|
- "已包含在清单合计中的材料、工程设备、专业工程暂估价合计": "10",
|
|
|
|
|
- "清单合计减去材料、工程设备、专业工程暂估价合计": "11",
|
|
|
|
|
- "计日工合计": "12",
|
|
|
|
|
- "劳务": "12.1",
|
|
|
|
|
- "材料": "12.2",
|
|
|
|
|
- "机械": "12.3",
|
|
|
|
|
- "暂列金额(不含计日工总额)": "13",
|
|
|
|
|
- "投标报价": "14"
|
|
|
|
|
|
|
+ "清单第100章总则": "100",
|
|
|
|
|
+ "清单第200章路基": "200",
|
|
|
|
|
+ "清单第300章路面": "300",
|
|
|
|
|
+ "清单第400章桥梁、涵洞": "400",
|
|
|
|
|
+ "清单第500章隧道": "500",
|
|
|
|
|
+ "清单第600章安全设施及预埋管线": "600",
|
|
|
|
|
+ "清单第700章绿化及环境保护设施": "700",
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ "已包含在清单合计中的材料、工程设备、专业工程暂估价合计": "13",
|
|
|
|
|
+ "清单合计减去材料、工程设备、专业工程暂估价合计": "14",
|
|
|
|
|
+ "计日工合计": "15",
|
|
|
|
|
+ "劳务": "15.1",
|
|
|
|
|
+ "材料": "15.2",
|
|
|
|
|
+ "机械": "15.3",
|
|
|
|
|
+ "暂列金额(不含计日工总额)": "16",
|
|
|
|
|
+ "投标报价": "17"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -147,6 +156,10 @@ INTERFACE_EXPORT = (() => {
|
|
|
"04ACFZF":"3"
|
|
"04ACFZF":"3"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ const reg1 = new RegExp('\n', 'g'), reg2 = new RegExp('\r', 'g'),
|
|
|
|
|
+ reg3 = new RegExp(' ', 'g'), reg4 = new RegExp('\t', 'g')
|
|
|
|
|
+ ;
|
|
|
|
|
+
|
|
|
function getBasePrice(projectGLJID, tenderProject) {
|
|
function getBasePrice(projectGLJID, tenderProject) {
|
|
|
let glj = _.find(tenderProject.projectGLJ.datas.gljList, {
|
|
let glj = _.find(tenderProject.projectGLJ.datas.gljList, {
|
|
|
id: projectGLJID
|
|
id: projectGLJID
|
|
@@ -167,7 +180,41 @@ INTERFACE_EXPORT = (() => {
|
|
|
}
|
|
}
|
|
|
return rate
|
|
return rate
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ function _billStrFilter(billStr) {
|
|
|
|
|
+ let rst = billStr;
|
|
|
|
|
+ if (typeof billStr === 'string') {
|
|
|
|
|
+ rst = billStr.replace(reg1, '').replace(reg2, '').replace(reg3, '').replace(reg4, '');
|
|
|
|
|
+ }
|
|
|
|
|
+ return rst;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function _chkAdhocChapterBillCode(billStr) {
|
|
|
|
|
+ let rst = false;
|
|
|
|
|
+ rst = (typeof billStr === 'string' &&
|
|
|
|
|
+ (billStr.indexOf('800章') >= 0 || billStr.indexOf('900章') >= 0 || billStr.indexOf('1000章') >= 0 || billStr.indexOf('1100章') >= 0 || billStr.indexOf('1200章') >= 0 )
|
|
|
|
|
+ )
|
|
|
|
|
+ return rst;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function _extractAdhocChapter(billStr) {
|
|
|
|
|
+ let rst = '';
|
|
|
|
|
+ if (typeof billStr === 'string') {
|
|
|
|
|
+ if (billStr.indexOf('800章') >= 0) {
|
|
|
|
|
+ rst = '800';
|
|
|
|
|
+ } else if (billStr.indexOf('900章') >= 0) {
|
|
|
|
|
+ rst = '900';
|
|
|
|
|
+ } else if (billStr.indexOf('1000章') >= 0) {
|
|
|
|
|
+ rst = '1000';
|
|
|
|
|
+ } else if (billStr.indexOf('1100章') >= 0) {
|
|
|
|
|
+ rst = '1100';
|
|
|
|
|
+ } else if (billStr.indexOf('1200章') >= 0) {
|
|
|
|
|
+ rst = '1200';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return rst;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
function billNameChecking(bNode,projectName,fixedFlag) {
|
|
function billNameChecking(bNode,projectName,fixedFlag) {
|
|
|
let data = bNode.data;
|
|
let data = bNode.data;
|
|
|
let fail = null;
|
|
let fail = null;
|
|
@@ -203,14 +250,17 @@ INTERFACE_EXPORT = (() => {
|
|
|
pass = data.name == "投标报价";
|
|
pass = data.name == "投标报价";
|
|
|
break;
|
|
break;
|
|
|
case fixedFlag.ONE_HUNDRED_BILLS:
|
|
case fixedFlag.ONE_HUNDRED_BILLS:
|
|
|
- pass = data.name == "清单 第100章 总则";
|
|
|
|
|
|
|
+ // pass = data.name == "清单 第100章 总则";
|
|
|
|
|
+ pass = _billStrFilter(data.name) == "清单第100章总则";
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
if (bNode.parent) {
|
|
if (bNode.parent) {
|
|
|
const pdata = bNode.parent.data;
|
|
const pdata = bNode.parent.data;
|
|
|
if (pdata.flagsIndex && pdata.flagsIndex.fixed && pdata.flagsIndex.fixed.flag == fixedFlag.ONE_SEVEN_BILLS) {
|
|
if (pdata.flagsIndex && pdata.flagsIndex.fixed && pdata.flagsIndex.fixed.flag == fixedFlag.ONE_SEVEN_BILLS) {
|
|
|
- if (!sectionNameMap[data.name]) pass = false
|
|
|
|
|
|
|
+ if (!sectionNameMap[_billStrFilter(data.name)]) {
|
|
|
|
|
+ pass = _chkAdhocChapterBillCode(data.name);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1864,8 +1914,14 @@ INTERFACE_EXPORT = (() => {
|
|
|
let fail = billNameChecking(bNode,tenderProject.projectInfo.name,fixedFlag)
|
|
let fail = billNameChecking(bNode,tenderProject.projectInfo.name,fixedFlag)
|
|
|
//fail: { hint: '错误提示', type: '提示所属(基本就是单位工程名称)' }
|
|
//fail: { hint: '错误提示', type: '提示所属(基本就是单位工程名称)' }
|
|
|
let ListCode = "";
|
|
let ListCode = "";
|
|
|
- if (ListCodeMap[data.name]) ListCode = ListCodeMap[data.name];
|
|
|
|
|
- if (data.code && data.code != "") ListCode = data.code;
|
|
|
|
|
|
|
+ // if (ListCodeMap[data.name]) ListCode = ListCodeMap[data.name];
|
|
|
|
|
+ if (ListCodeMap[_billStrFilter(data.name)]) {
|
|
|
|
|
+ ListCode = ListCodeMap[_billStrFilter(data.name)];
|
|
|
|
|
+ } else if (_chkAdhocChapterBillCode(data.name)) {
|
|
|
|
|
+ ListCode = _extractAdhocChapter(data.name);
|
|
|
|
|
+ } else if (data.code && data.code != "") {
|
|
|
|
|
+ ListCode = data.code;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
let qtyFormula = data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "";
|
|
let qtyFormula = data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "";
|
|
|
//data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
|
|
//data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
|