|
|
@@ -1764,67 +1764,39 @@ $(function () {
|
|
|
});
|
|
|
|
|
|
let importJson = null;
|
|
|
-
|
|
|
- function showAlert(msg) {
|
|
|
+
|
|
|
+ function showAlert(msg, isHint) {
|
|
|
$("#showAlert").removeClass("alert-success");
|
|
|
- $("#showAlert").addClass("alert-danger");
|
|
|
+ if (isHint) $("#showAlert").addClass("alert-info");
|
|
|
+ else $("#showAlert").addClass("alert-danger");
|
|
|
$("#showAlert").text(msg);
|
|
|
$("#showAlert").show();
|
|
|
}
|
|
|
|
|
|
- function extactDatas(sheets) {
|
|
|
- debugger;
|
|
|
+ function getExcelData(sheets) {
|
|
|
+ const err = "当前Excel文件格式不正确,请参考导出Excel材料预算价文件!";
|
|
|
+ const sheet = sheets["材料预算价"];
|
|
|
+ if (!sheet) throw err;
|
|
|
+ const sheetData = sheet.data.dataTable;
|
|
|
+ if (!sheetData) throw err;
|
|
|
+ const isRightHead =
|
|
|
+ sheetData[0][0].value === "编号" &&
|
|
|
+ sheetData[0][1].value === "名称" &&
|
|
|
+ sheetData[0][2].value === "规格" &&
|
|
|
+ sheetData[0][3].value === "单位" &&
|
|
|
+ sheetData[0][4].value === "预算价";
|
|
|
+ if (!isRightHead) throw err;
|
|
|
+
|
|
|
let rst = [];
|
|
|
- let curSheetType = null;
|
|
|
- for (let sheetName in sheets) {
|
|
|
- let sheetData = sheets[sheetName];
|
|
|
- if (!sheetData.data.dataTable || sheetData.index !== 0) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- let sheetType = getFileType(sheetData);
|
|
|
- if (curSheetType !== null && sheetType !== curSheetType) {
|
|
|
- throw "excel文件中存在不同格式的表格。";
|
|
|
- }
|
|
|
- curSheetType = sheetType;
|
|
|
- let colMapping = getColMapping(sheetType);
|
|
|
- let datas = [];
|
|
|
- if (sheetType === fileType.gcl) {
|
|
|
- datas = extractGCLDatas(sheetData, colMapping);
|
|
|
- } else if (sheetType === fileType.qdsl) {
|
|
|
- datas = extractSLDatas(sheetData, colMapping);
|
|
|
- } else {
|
|
|
- const slSheetData = transformGCLExToSL(sheetData);
|
|
|
- datas = extractSLDatas(slSheetData, colMapping);
|
|
|
- }
|
|
|
- rst = rst.concat(datas);
|
|
|
- }
|
|
|
- //编号去除空格 清除多余数据 设置数据
|
|
|
- for (let data of rst) {
|
|
|
- if (data.code && typeof data.code === "string") {
|
|
|
- data.code = data.code.replace(/\s/g, "");
|
|
|
- }
|
|
|
- if (data.unit === "㎡") {
|
|
|
- data.unit = "m2";
|
|
|
- } else if (data.unit === "m³") {
|
|
|
- data.unit = "m3";
|
|
|
- }
|
|
|
- data.projectID = projectObj.project.ID();
|
|
|
- data.type = billType.BILL;
|
|
|
- delete data.parent;
|
|
|
- delete data.depth;
|
|
|
- }
|
|
|
- //将表根节点的ParentID设置成第100章至700章清单的ID
|
|
|
- let fixedBill = projectObj.project.Bills.tree.roots.find(
|
|
|
- (node) => node.data && node.data.flagsIndex && node.data.flagsIndex.fixed && node.data.flagsIndex.fixed.flag === fixedFlag.ONE_SEVEN_BILLS
|
|
|
- );
|
|
|
- let rootDatas = rst.filter((data) => data.ParentID === -1);
|
|
|
- for (let root of rootDatas) {
|
|
|
- root.ParentID = fixedBill.data.ID;
|
|
|
- }
|
|
|
- //清单 第100章 总则清单需要加上固定ID
|
|
|
- let oneHundredBills = rootDatas.find((data) => data.name && /第100章/.test(data.name));
|
|
|
- if (oneHundredBills) {
|
|
|
- oneHundredBills.flags = [{ flag: fixedFlag.ONE_HUNDRED_BILLS, fieldName: "fixed" }];
|
|
|
+ for (let row = 1; row < sheet.rowCount; row++) {
|
|
|
+ const rowData = {
|
|
|
+ code: sheetData[row][0].value,
|
|
|
+ name: sheetData[row][1].value,
|
|
|
+ specs: sheetData[row][2].value,
|
|
|
+ unit: sheetData[row][3].value,
|
|
|
+ unitPrice: sheetData[row][4].value,
|
|
|
+ };
|
|
|
+ rst.push(rowData);
|
|
|
}
|
|
|
return rst;
|
|
|
}
|
|
|
@@ -1881,10 +1853,13 @@ $(function () {
|
|
|
throw "项目数据出错";
|
|
|
}
|
|
|
|
|
|
- let importPriceData = extactDatas(importJson.sheets);
|
|
|
- if (importPriceData.length === 0) {
|
|
|
- throw "当前Excel文件格式不正确,请参考导出Excel材料预算价文件!";
|
|
|
+ let priceData = getExcelData(importJson.sheets);
|
|
|
+ if (priceData.length === 0) {
|
|
|
+ throw "当前Excel文件没有材料预算价!";
|
|
|
}
|
|
|
+
|
|
|
+ showAlert("正在导入预算价...", true);
|
|
|
+ //
|
|
|
} catch (err) {
|
|
|
console.log(err);
|
|
|
showAlert(err);
|