|
@@ -2,42 +2,45 @@ import LuckyExcel from 'luckyexcel';
|
|
|
import { getToken } from '@/utils/utils';
|
|
|
|
|
|
const uploadExcelByUrl = (nodeType, versionId, projectName) => {
|
|
|
- const TEMPLATE_URL =
|
|
|
- 'https://water-service-test.oss-cn-hangzhou.aliyuncs.com/doc/contract/2023-06-29/ed0d5dcd-6ce0-40df-9d17-a1f69245dbb9.xlsx';
|
|
|
- const TEMPLATE_URL2 =
|
|
|
- 'https://water-service-test.oss-cn-hangzhou.aliyuncs.com/public/bom/ContractTemplate.xlsx';
|
|
|
+ const TEMPLATE_URL = 'https://gt-digitization.oss-cn-hangzhou.aliyuncs.com/public/bom/psr.xlsx';
|
|
|
|
|
|
- return new Promise((reslove, reject) => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
LuckyExcel.transformExcelToLuckyByUrl(
|
|
|
- nodeType == 3 ? TEMPLATE_URL : TEMPLATE_URL2,
|
|
|
+ TEMPLATE_URL,
|
|
|
'模板.xlsx',
|
|
|
async (exportJson, luckysheetfile) => {
|
|
|
let [record] = await getExcel(versionId);
|
|
|
|
|
|
let len = exportJson.sheets.length;
|
|
|
- const excelData = exportJson.sheets?.map(item => {
|
|
|
- return { ...item, order: Number(item.order) };
|
|
|
- });
|
|
|
+ const excelData = exportJson.sheets;
|
|
|
delete record.id;
|
|
|
- record.order = len;
|
|
|
record.index = len + '_' + Math.floor(Math.random() * 100);
|
|
|
record.status = '0';
|
|
|
- record.name = '投标成本';
|
|
|
- var sheets = [...excelData, record];
|
|
|
+ record.name = '清单';
|
|
|
+ // var sheets = [...excelData, record];
|
|
|
+ var res = [];
|
|
|
const category = getCategoryData(record);
|
|
|
// 处理Estimate表
|
|
|
- initEstimate(sheets[0], category);
|
|
|
+ // initEstimate(sheets[0], category);
|
|
|
|
|
|
// 处理psr预算
|
|
|
- // initPSR(sheets[1], category);
|
|
|
+ excelData[1].status = 1;
|
|
|
+ res.push(initPSR(excelData[1], category, projectName));
|
|
|
|
|
|
if (nodeType == 4) {
|
|
|
- // 处理psr预算
|
|
|
- // initPSR(sheets[2], category);
|
|
|
- // 处理毛利概算表
|
|
|
- initActual(sheets[3], category, projectName);
|
|
|
+ // 处理现金流
|
|
|
+ res.push(initActual(excelData[3], category, projectName));
|
|
|
}
|
|
|
- reslove(sheets);
|
|
|
+
|
|
|
+ res.push(record);
|
|
|
+
|
|
|
+ // 隐藏Estimate表
|
|
|
+ excelData[0].hide = 1;
|
|
|
+ excelData[0].status = 0;
|
|
|
+
|
|
|
+ res.push(excelData[0]);
|
|
|
+
|
|
|
+ resolve(res.map((item, index) => ({ ...item, order: index })));
|
|
|
}
|
|
|
);
|
|
|
});
|
|
@@ -133,12 +136,13 @@ function initActual(actual, category, projectName) {
|
|
|
// c=2 为名称列
|
|
|
let value = getCellValue(item.v);
|
|
|
// 判断该行是否为类型总列
|
|
|
- if (category.hasOwnProperty('value')) {
|
|
|
+ if (category.hasOwnProperty(value)) {
|
|
|
// 名称后第三列为预算列
|
|
|
celldata[i + 3].v.v = category[value];
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ return actual;
|
|
|
}
|
|
|
|
|
|
// 处理毛利概算表
|
|
@@ -176,16 +180,19 @@ function initEstimate(estimate, category) {
|
|
|
item.v.v = category['土建'];
|
|
|
}
|
|
|
});
|
|
|
+ return estimate;
|
|
|
}
|
|
|
|
|
|
// 处理PSR表预算
|
|
|
-function initPSR(psr, category) {
|
|
|
+function initPSR(psr, category, projectName) {
|
|
|
psr.celldata.forEach(item => {
|
|
|
- if (item.r == 39 && item.c == 3) {
|
|
|
+ if (item.r == 0 && item.c == 1) {
|
|
|
+ item.v.v = projectName;
|
|
|
+ } else if (item.r == 38 && item.c == 2) {
|
|
|
item.v.v = category['GT-UF膜'];
|
|
|
- } else if (item.r == 38 && item.c == 3) {
|
|
|
+ } else if (item.r == 37 && item.c == 2) {
|
|
|
item.v.v = category['原平制造'];
|
|
|
- } else if (item.r == 37 && item.c == 3) {
|
|
|
+ } else if (item.r == 36 && item.c == 2) {
|
|
|
item.v.v =
|
|
|
category['其它膜'] +
|
|
|
category['水泵'] +
|
|
@@ -199,14 +206,15 @@ function initPSR(psr, category) {
|
|
|
category['材料'] +
|
|
|
category['运输'] +
|
|
|
category['其它'];
|
|
|
- } else if (item.r == 40 && item.c == 3) {
|
|
|
+ } else if (item.r == 39 && item.c == 2) {
|
|
|
item.v.v = category['双胞胎硬件'];
|
|
|
- } else if (item.r == 41 && item.c == 3) {
|
|
|
+ } else if (item.r == 40 && item.c == 2) {
|
|
|
item.v.v = category['安装'];
|
|
|
- } else if (item.r == 42 && item.c == 3) {
|
|
|
+ } else if (item.r == 41 && item.c == 2) {
|
|
|
item.v.v = category['土建'];
|
|
|
}
|
|
|
});
|
|
|
+ return psr;
|
|
|
}
|
|
|
|
|
|
export default uploadExcelByUrl;
|