|
@@ -1,5 +1,5 @@
|
|
|
import { getTableHeadUtilityClass } from '@mui/material';
|
|
import { getTableHeadUtilityClass } from '@mui/material';
|
|
|
-import {copy, danxiangdinge_index, renameDingE, extractFuzhu} from './utils';
|
|
|
|
|
|
|
+import {copy, danxiangdinge_index, renameDingE, extractFuzhu, match_target} from './utils';
|
|
|
import { v4 as uuidv4 } from 'uuid';
|
|
import { v4 as uuidv4 } from 'uuid';
|
|
|
class Service{
|
|
class Service{
|
|
|
|
|
|
|
@@ -985,36 +985,63 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
updateDercj_(row, data, xuhao) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename
|
|
updateDercj_(row, data, xuhao) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename
|
|
|
console.log("data updated");
|
|
console.log("data updated");
|
|
|
//处理附注
|
|
//处理附注
|
|
|
|
|
+ let huan = false;//换
|
|
|
let qd = this.cache.filter(x=>x["children"].filter(y=>y['key']==row).length > 0)[0];
|
|
let qd = this.cache.filter(x=>x["children"].filter(y=>y['key']==row).length > 0)[0];
|
|
|
let de = qd["children"].filter(x=>x['key'] == row)[0];
|
|
let de = qd["children"].filter(x=>x['key'] == row)[0];
|
|
|
if (de.hasOwnProperty("rcjdg")) {
|
|
if (de.hasOwnProperty("rcjdg")) {
|
|
|
for (let i = 1; i < de['rcjdg'].length; i++) {
|
|
for (let i = 1; i < de['rcjdg'].length; i++) {
|
|
|
de['rcjdg'][i][5] = data[i][5];//更新单价
|
|
de['rcjdg'][i][5] = data[i][5];//更新单价
|
|
|
/****ToDo 更新其他字段 */
|
|
/****ToDo 更新其他字段 */
|
|
|
|
|
+ if (de['rcjdg'][i][2] == data[i][2]) {//更新名称
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ huan = true;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {
|
|
if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {
|
|
|
- for(let i = 0; i < de['fuzhu'].length; i++) {
|
|
|
|
|
- let selected = de['fuzhu'][i];
|
|
|
|
|
- //更新底稿含量
|
|
|
|
|
- if (selected[2] == '含量') {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ for(let j = 1; j < de['rcjdg'].length; j++) {
|
|
|
|
|
+ let origin = Number(de['rcjdg'][j][10]);
|
|
|
|
|
+ for(let i = 0; i < de['fuzhu'].length; i++) {
|
|
|
|
|
+ let selected = de['fuzhu'][i];
|
|
|
let target = selected[0];
|
|
let target = selected[0];
|
|
|
- for(let j = 1; j < de['rcjdg'].length; j++) {
|
|
|
|
|
- if (de['rcjdg'][j][1] == target) {
|
|
|
|
|
- let origin = de['rcjdg'][j][10];
|
|
|
|
|
- for(let k = 1; k < de['dercj'].length; k++) {
|
|
|
|
|
- if (de['dercj'][k][1] == target) {
|
|
|
|
|
- de['dercj'][k][5] = de['rcjdg'][j][5];
|
|
|
|
|
- de['dercj'][k][10] = selected[3];
|
|
|
|
|
- de['dercj'][k][11] = Number(de['dercj'][k][5]) * Number(selected[3]);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (match_target(de['rcjdg'][j][1], target)) {
|
|
|
|
|
+ if (selected[2] == '系数') {
|
|
|
|
|
+ origin = origin * Number(selected[3]);
|
|
|
|
|
+
|
|
|
|
|
+ } else if (selected[2] == '含量') {
|
|
|
|
|
+ origin = Number(selected[3]);
|
|
|
|
|
+ } else if (selected['调整']) {
|
|
|
|
|
+ origin = origin + Number(selected[3]);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw new Error('无法处理的附注'.concat(selected[2]));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ de['dercj'][j][2] = data[j][2];//名称
|
|
|
|
|
+ de['dercj'][j][5] = de['rcjdg'][j][5];
|
|
|
|
|
+ de['dercj'][j][10] = origin;
|
|
|
|
|
+ de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ } else if (de['fuzhuEnable'] && !de.hasOwnProperty('fuzhu')) {
|
|
|
|
|
+ for(let j = 1; j < de['rcjdg'].length; j++) {
|
|
|
|
|
+ let origin = Number(de['rcjdg'][j][10]);
|
|
|
|
|
+
|
|
|
|
|
+ de['dercj'][j][2] = data[j][2];//名称
|
|
|
|
|
+ de['dercj'][j][5] = de['rcjdg'][j][5];
|
|
|
|
|
+ de['dercj'][j][10] = origin;
|
|
|
|
|
+ de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ else {
|
|
|
//强行改含量
|
|
//强行改含量
|
|
|
de['dercj'] = copy(data);
|
|
de['dercj'] = copy(data);
|
|
|
}
|
|
}
|
|
@@ -1022,7 +1049,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
|
|
|
|
|
|
|
|
|
|
data = de['dercj'];
|
|
data = de['dercj'];
|
|
|
- } else {
|
|
|
|
|
|
|
+ } else {////单项定额没有底稿
|
|
|
//强行改含量
|
|
//强行改含量
|
|
|
de['dercj'] = copy(data);
|
|
de['dercj'] = copy(data);
|
|
|
data = de['dercj'];
|
|
data = de['dercj'];
|
|
@@ -1065,7 +1092,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
qd["children"][i]['管理费'] = 0;
|
|
qd["children"][i]['管理费'] = 0;
|
|
|
qd["children"][i]['利润'] = 0;
|
|
qd["children"][i]['利润'] = 0;
|
|
|
qd["children"][i]["dercj"] = copy(data);
|
|
qd["children"][i]["dercj"] = copy(data);
|
|
|
- qd["children"][i]['清单编码'] = renameDingE(oldname, xuhao);
|
|
|
|
|
|
|
+ qd["children"][i]['清单编码'] = renameDingE(oldname, xuhao, huan);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|