|
@@ -192,25 +192,26 @@ $(document).ready(() => {
|
|
|
if (col && col.type === 'Number') {
|
|
|
const data = SpreadJsObj.getSelectObject(sheet);
|
|
|
if (data) {
|
|
|
+ const settleFinish = data.settle_status === settleStatus.finish;
|
|
|
const exprInfo = getExprInfo(col.field);
|
|
|
if (exprInfo) {
|
|
|
$('#bills-expr').val(data[exprInfo.expr] ? data[exprInfo.expr] : data[col.field])
|
|
|
- .attr('field', col.field).attr('org', data[col.field]);
|
|
|
+ .attr('field', col.field).attr('org', data[col.field]).attr('readOnly', readOnly || cell.locked() || settleFinish);
|
|
|
} else {
|
|
|
- $('#bills-expr').val(data[col.field]).attr('field', col.field).attr('org', data[col.field]);
|
|
|
+ $('#bills-expr').val(data[col.field]).attr('field', col.field).attr('org', data[col.field]).attr('readOnly', readOnly || cell.locked() || settleFinish);
|
|
|
}
|
|
|
|
|
|
if (col.field.indexOf('dgn') >= 0) {
|
|
|
- $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (_.isString(data.b_code) && data.b_code !== ''));
|
|
|
+ $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (_.isString(data.b_code) && data.b_code !== '') || settleFinish);
|
|
|
} else if (col.field === 'unit_price') {
|
|
|
- $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (data.children && data.children.length > 0) || (_.isBoolean(data.used) && data.used === true));
|
|
|
+ $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (data.children && data.children.length > 0) || (_.isBoolean(data.used) && data.used === true) || settleFinish);
|
|
|
} else {
|
|
|
const nodePos = pos.getLedgerPos(data.id);
|
|
|
if (nodePos && nodePos.length > 0) {
|
|
|
$('#bills-expr').val('').attr('readOnly', true);
|
|
|
$('#bills-expr').removeAttr('data-row');
|
|
|
} else {
|
|
|
- $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (data.children && data.children.length > 0));
|
|
|
+ $('#bills-expr').attr('readOnly', readOnly || cell.locked() || (data.children && data.children.length > 0) || settleFinish);
|
|
|
}
|
|
|
}
|
|
|
$('#bills-expr').attr('data-row', sel.row);
|
|
@@ -276,7 +277,7 @@ $(document).ready(() => {
|
|
|
invalidAll();
|
|
|
return;
|
|
|
}
|
|
|
- let last = first, sameParent = true, nodeUsed = first.used;
|
|
|
+ let last = first, sameParent = true, nodeUsed = first.used, settleFinish = first.settle_status === settleStatus.finish;
|
|
|
if (sel.rowCount > 1 && first) {
|
|
|
for (let r = 1; r < sel.rowCount; r++) {
|
|
|
const rNode = tree.nodes[sel.row + r];
|
|
@@ -285,6 +286,7 @@ $(document).ready(() => {
|
|
|
break;
|
|
|
}
|
|
|
nodeUsed = nodeUsed || rNode.used;
|
|
|
+ settleFinish = settleFinish || rNode.settle_status === settleStatus.finish;
|
|
|
if (rNode.level > first.level) continue;
|
|
|
if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
|
|
|
sameParent = false;
|
|
@@ -296,16 +298,16 @@ $(document).ready(() => {
|
|
|
const preNode = tree.getPreSiblingNode(first);
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
|
|
|
- setObjEnable($('a[name=base-opr][type=add]'), valid && first && first.level > 1);
|
|
|
- setObjEnable($('a[name=base-opr][type=delete]'), valid && first && sameParent && first.level > 1 && !nodeUsed);
|
|
|
+ setObjEnable($('a[name=base-opr][type=add]'), valid && first && first.level > 1 && first.settle_status !== settleStatus.finish);
|
|
|
+ setObjEnable($('a[name=base-opr][type=delete]'), valid && first && sameParent && first.level > 1 && !nodeUsed && !settleFinish);
|
|
|
setObjEnable($('a[name=base-opr][type=up-move]'), valid && first && sameParent && first.level > 1 && preNode);
|
|
|
setObjEnable($('a[name=base-opr][type=down-move]'), valid && first && sameParent && first.level > 1 && !tree.isLastSibling(last));
|
|
|
const posRange = last ? pos.getLedgerPos(last.id) : [];
|
|
|
setObjEnable($('a[name=base-opr][type=up-level]'), valid && first && sameParent && tree.getParent(first)
|
|
|
- && first.level > 2 && ((!posRange || posRange.length === 0) || tree.isLastSibling(last)));
|
|
|
+ && first.level > 2 && ((!posRange || posRange.length === 0) || tree.isLastSibling(last)) && last.settle_status !== settleStatus.finish);
|
|
|
const preNodePosRange = preNode ? pos.getLedgerPos(preNode.id) : [];
|
|
|
setObjEnable($('a[name=base-opr][type=down-level]'), valid && first && sameParent
|
|
|
- && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0) && !preNode.used);
|
|
|
+ && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0) && !preNode.used && preNode.settle_status !== settleStatus.finish);
|
|
|
setObjEnable($('#cut'), valid);
|
|
|
setObjEnable($('#paste'), valid);
|
|
|
},
|
|
@@ -398,6 +400,10 @@ $(document).ready(() => {
|
|
|
toastr.warning('选中的节点已计量,不可删除');
|
|
|
return;
|
|
|
}
|
|
|
+ if (child.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('选中的节点已结算,不可删除');
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
} else if (type === 'up-level') {
|
|
|
const parent = tree.getParent(node);
|
|
@@ -408,6 +414,10 @@ $(document).ready(() => {
|
|
|
toastr.warning('选中的节点已计量,不可升级');
|
|
|
return;
|
|
|
}
|
|
|
+ if (lastSelect.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('选中的节点已结算,不可升级');
|
|
|
+ return;
|
|
|
+ }
|
|
|
// for (let i = index; i < children.length; i++) {
|
|
|
// const child = children[index];
|
|
|
// if (tree.checkNodeUsed(child, pos)) {
|
|
@@ -427,12 +437,25 @@ $(document).ready(() => {
|
|
|
toastr.warning('其前节点已计量,选中的节点不可降级');
|
|
|
return;
|
|
|
}
|
|
|
+ if (index > 0 && children[index-1].settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('其前节点已结算,选中的节点不可降级');
|
|
|
+ return;
|
|
|
+ }
|
|
|
for (let i = index; i < count; i++) {
|
|
|
const child = children[i+index];
|
|
|
if (tree.checkNodeUsed(child, pos)) {
|
|
|
toastr.warning('选中的节点已计量,不可降级');
|
|
|
return;
|
|
|
}
|
|
|
+ if (tree.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('选中的节点已结算,不可降级');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (type === 'add') {
|
|
|
+ if (node.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('选中的节点已结算,不可新增子项');
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -611,6 +634,7 @@ $(document).ready(() => {
|
|
|
gcl: {type: 'warning', msg: '工程量清单,不可粘贴项目节数量'},
|
|
|
posXmj: {type: 'warning', msg: '清单含有计量单元,不可粘贴项目节编号'},
|
|
|
// sameParent: {type: 'warning', msg: '仅可粘贴同层节点'},
|
|
|
+ settle: {type: 'warning', msg: '已结算节点,不可修改数量、单价、金额'},
|
|
|
};
|
|
|
const datas = [], filterNodes = [];
|
|
|
|
|
@@ -667,6 +691,10 @@ $(document).ready(() => {
|
|
|
toastMessageUniq (hint.usedUp);
|
|
|
continue;
|
|
|
}
|
|
|
+ if (colSetting.type === 'Number' && node.settle_status === settleStatus.finish) {
|
|
|
+ toastMessageUniq(hint.settle);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if (colSetting.type === 'Number') {
|
|
|
const num = _.toNumber(value);
|
|
|
if (num) {
|
|
@@ -810,6 +838,7 @@ $(document).ready(() => {
|
|
|
const col = sheet.zh_setting.cols[iCol];
|
|
|
const style = sheet.getStyle(iRow, iCol);
|
|
|
if (style.locked || (['dgn_qty1', 'dgn_qty2'].indexOf(col.field) >= 0 && node.b_code)) continue;
|
|
|
+ if (col.type === 'Number' && node.settle_status === settleStatus.finish) continue;
|
|
|
|
|
|
if (['dgn_qty1', 'dgn_qty2'].indexOf(col.field) < 0 && sheet.zh_tree.checkNodeUsed(node, pos)) {
|
|
|
toastr.warning('"' + (node.code || '') + (node.b_code || '') + ' ' + node.name +'"已计量,请勿修改');
|
|
@@ -837,6 +866,10 @@ $(document).ready(() => {
|
|
|
const self = this;
|
|
|
const sheet = spread.getActiveSheet();
|
|
|
const [tree, node] = this.getDefaultSelectInfo(spread.getActiveSheet());
|
|
|
+ if (node.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('选中的节点已结算,不可粘贴整块');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
postData(window.location.pathname + '/update', {
|
|
|
postType: 'paste-block',
|
|
@@ -881,7 +914,7 @@ $(document).ready(() => {
|
|
|
info.cancel = posRange && posRange.length > 0;
|
|
|
break;
|
|
|
case 'unit_price':
|
|
|
- info.cancel = (node.children && node.children.length > 0) || node.used;
|
|
|
+ info.cancel = (node.children && node.children.length > 0) || node.used || node.settle_status === settleStatus.finish;
|
|
|
break;
|
|
|
case 'sgfh_qty':
|
|
|
case 'sgfh_tp':
|
|
@@ -891,11 +924,11 @@ $(document).ready(() => {
|
|
|
case 'qtcl_tp':
|
|
|
case 'deal_qty':
|
|
|
case 'deal_tp':
|
|
|
- info.cancel = (node.children && node.children.length > 0);
|
|
|
+ info.cancel = (node.children && node.children.length > 0) || node.settle_status === settleStatus.finish;
|
|
|
break;
|
|
|
case 'dgn_qty1':
|
|
|
case 'dgn_qty2':
|
|
|
- info.cancel = !_.isEmpty(node.b_code);
|
|
|
+ info.cancel = !_.isEmpty(node.b_code) || node.settle_status === settleStatus.finish;
|
|
|
break;
|
|
|
}
|
|
|
},
|
|
@@ -1107,7 +1140,7 @@ $(document).ready(() => {
|
|
|
if (!tree) return true;
|
|
|
const first = sheet.zh_tree.nodes[row];
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && first.level > 1);
|
|
|
+ return !(valid && first && first.level > 1 && first.settle_status !== settleStatus.finish);
|
|
|
}
|
|
|
};
|
|
|
billsContextMenuOptions.items.delete = {
|
|
@@ -1124,7 +1157,7 @@ $(document).ready(() => {
|
|
|
const tree = sheet.zh_tree;
|
|
|
if (!tree) return true;
|
|
|
const first = sheet.zh_tree.nodes[row];
|
|
|
- let last = first, sameParent = true, nodeUsed = first.used;
|
|
|
+ let last = first, sameParent = true, nodeUsed = first.used, settleFinish = first.settle_status === settleStatus.finish;
|
|
|
if (sel.rowCount > 1 && first) {
|
|
|
for (let r = 1; r < sel.rowCount; r++) {
|
|
|
const rNode = tree.nodes[sel.row + r];
|
|
@@ -1133,6 +1166,7 @@ $(document).ready(() => {
|
|
|
break;
|
|
|
}
|
|
|
nodeUsed = nodeUsed || rNode.used;
|
|
|
+ settleFinish = settleFinish || rNode.settle_status === settleStatus.finish;
|
|
|
if (rNode.level > first.level) continue;
|
|
|
if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
|
|
|
sameParent = false;
|
|
@@ -1142,7 +1176,7 @@ $(document).ready(() => {
|
|
|
}
|
|
|
}
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && sameParent && !(first.level === 1 && first.node_type) && !nodeUsed);
|
|
|
+ return !(valid && first && sameParent && !(first.level === 1 && first.node_type) && !nodeUsed && !settleFinish);
|
|
|
}
|
|
|
};
|
|
|
billsContextMenuOptions.items.sprBase = '----';
|
|
@@ -1172,7 +1206,7 @@ $(document).ready(() => {
|
|
|
if (!tree) return true;
|
|
|
const first = sheet.zh_tree.nodes[row];
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && first.level > 1);
|
|
|
+ return !(valid && first && first.level > 1 && first.settle_status !== settleStatus.finish);
|
|
|
}
|
|
|
};
|
|
|
billsContextMenuOptions.items.batchInsertBillsPos = {
|
|
@@ -1183,10 +1217,10 @@ $(document).ready(() => {
|
|
|
const select = SpreadJsObj.getSelectObject(billsSheet);
|
|
|
if (select) {
|
|
|
if (select.code && select.code !== '') {
|
|
|
- return !billsTree.isLeafXmj(select);
|
|
|
+ return !billsTree.isLeafXmj(select) || select.settle_status === settleStatus.finish;
|
|
|
} else {
|
|
|
const parent = billsTree.getParent(select);
|
|
|
- return !(parent && billsTree.isLeafXmj(parent));
|
|
|
+ return !(parent && billsTree.isLeafXmj(parent)) || !(parent && parent.settle_status === settleStatus.finish);
|
|
|
}
|
|
|
} else {
|
|
|
return false;
|
|
@@ -1338,7 +1372,8 @@ $(document).ready(() => {
|
|
|
return readOnly
|
|
|
|| (node.children && node.children.length > 0)
|
|
|
|| (!_.isNil(node.b_code) && node.b_code !== '')
|
|
|
- || billsTree.checkNodeUsed(node, pos);
|
|
|
+ || billsTree.checkNodeUsed(node, pos)
|
|
|
+ || node.settle_status === settleStatus.finish;
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(billsSheet);
|
|
@@ -1388,7 +1423,7 @@ $(document).ready(() => {
|
|
|
icon: 'fa-link',
|
|
|
disabled: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(billsSheet);
|
|
|
- return readOnly || !node || !billsTree.isLeafXmj(node);
|
|
|
+ return readOnly || !node || !billsTree.isLeafXmj(node) || node.settle_status === settleStatus.finish;
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
tenderSelect.showSelect(SpreadJsObj.getSelectObject(billsSheet));
|
|
@@ -1473,7 +1508,7 @@ $(document).ready(() => {
|
|
|
? (data[exprInfo.expr] ? data[exprInfo.expr] : data[col.field])
|
|
|
: data[col.field];
|
|
|
$('#pos-expr').val(value).attr('field', col.field).attr('org', data[col.field])
|
|
|
- .attr('readOnly', readOnly || cell.locked()).attr('data-row', sel.row);
|
|
|
+ .attr('readOnly', readOnly || cell.locked() || data.settle_status === settleStatus.finish).attr('data-row', sel.row);
|
|
|
} else {
|
|
|
$('#pos-expr').val('').attr('readOnly', true);
|
|
|
$('#pos-expr').removeAttr('data-row');
|
|
@@ -1517,6 +1552,10 @@ $(document).ready(() => {
|
|
|
toastr.error('"' + posData.name + '"已计量,请勿删除');
|
|
|
return;
|
|
|
}
|
|
|
+ if (posData.settle_status) {
|
|
|
+ toastr.error('"' + posData.name + '"已结算,请勿删除');
|
|
|
+ return;
|
|
|
+ }
|
|
|
data.postData.push(sheet.zh_data[iRow + row].id);
|
|
|
}
|
|
|
}
|
|
@@ -1541,6 +1580,12 @@ $(document).ready(() => {
|
|
|
}
|
|
|
data.postData.push(nextUpdate);
|
|
|
|
|
|
+ } else if (type === 'add') {
|
|
|
+ const billsNode = SpreadJsObj.getSelectObject(billsSheet);
|
|
|
+ if (billsNode.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('清单已结算,不可新增计量单元');
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
if (data.postData.length > 0) {
|
|
|
postData(window.location.pathname + '/update', data, function (result) {
|
|
@@ -1575,6 +1620,9 @@ $(document).ready(() => {
|
|
|
info.sheet.getCell(info.row, info.col).text(node[exprInfo.expr]);
|
|
|
}
|
|
|
}
|
|
|
+ if (col.type === 'Number' && node.settle_status === settleStatus.finish) {
|
|
|
+ info.cancel = true;
|
|
|
+ }
|
|
|
},
|
|
|
/**
|
|
|
* 编辑单元格响应事件
|
|
@@ -1614,9 +1662,19 @@ $(document).ready(() => {
|
|
|
const order = (!sortData || sortData.length === 0) ? 1 : Math.max(sortData[sortData.length - 1].porder + 1, sortData.length + 1);
|
|
|
data.posPostType = 'add';
|
|
|
data.postData = { lid: node.id, porder: order };
|
|
|
+ if (node.settle_status === settleStatus.finish) {
|
|
|
+ toastr.error('已结算清单不可插入计量单元');
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ return;
|
|
|
+ }
|
|
|
} else {
|
|
|
data.posPostType = 'update';
|
|
|
data.postData = { id: posData.id };
|
|
|
+ if (col.type === 'Number' && posData.settle_status === settleStatus.finish) {
|
|
|
+ toastr.error('计量单元已结算,不可修改');
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
if (col.type === 'Number') {
|
|
|
const exprInfo = getExprInfo(col.field);
|
|
@@ -1707,6 +1765,10 @@ $(document).ready(() => {
|
|
|
const sortData = sheet.zh_data;
|
|
|
const row = selection[0].row;
|
|
|
const node = SpreadJsObj.getSelectObject(billsSheet);
|
|
|
+ if (node.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('清单已结算,不可新增计量单元');
|
|
|
+ return;
|
|
|
+ }
|
|
|
const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
const porder = select ? select.porder : sortData.length + 1;
|
|
|
const data = {
|
|
@@ -1741,6 +1803,10 @@ $(document).ready(() => {
|
|
|
toastr.error('"' + posData.name + '"已计量,请勿删除');
|
|
|
return;
|
|
|
}
|
|
|
+ if (posData.settle_status === settleStatus.finish) {
|
|
|
+ toastr.error(`"${posData.name}"已计量,请勿删除`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
data.postData.push(sortData[iRow + row].id);
|
|
|
}
|
|
|
}
|
|
@@ -1775,6 +1841,11 @@ $(document).ready(() => {
|
|
|
posSpreadObj.loadCurPosData();
|
|
|
return;
|
|
|
}
|
|
|
+ if (node.settle_status === settleStatus.finish) {
|
|
|
+ toastr.error('清单已结算,请勿修改计量单元数据');
|
|
|
+ posSpread.loadCurPosData();
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (!info.sheet.zh_setting) {
|
|
|
posSpreadObj.loadCurPosData();
|
|
|
return;
|
|
@@ -1784,6 +1855,7 @@ $(document).ready(() => {
|
|
|
const sortData = info.sheet.zh_data || [];
|
|
|
const hint = {
|
|
|
expr: {type: 'warning', msg: '粘贴了表达式非法,已过滤'},
|
|
|
+ settle: {type: 'warning', msg: '计量单元已结算,不可修改台账数据,已过滤'},
|
|
|
};
|
|
|
const lastOrder = sortData.length > 0 ? sortData[sortData.length - 1].porder + 1 : 1;
|
|
|
for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) {
|
|
@@ -1796,6 +1868,11 @@ $(document).ready(() => {
|
|
|
if (!colSetting) continue;
|
|
|
|
|
|
posData[colSetting.field] = trimInvalidChar(info.sheet.getText(curRow, curCol));
|
|
|
+ if (posData.id && colSetting.type === 'Number' && sortData[curRow].settle_status === settleStatus.finish) {
|
|
|
+ bPaste = false;
|
|
|
+ toastMessageUniq(hint.settle);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if (colSetting.type === 'Number') {
|
|
|
const num = _.toNumber(posData[colSetting.field]);
|
|
|
if (num) {
|
|
@@ -1920,7 +1997,7 @@ $(document).ready(() => {
|
|
|
icon: 'fa-plus',
|
|
|
disabled: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(billsSheet);
|
|
|
- return node && node.children && node.children.length > 0;
|
|
|
+ return node && node.children && node.children.length > 0 && node.settle_status !== settleStatus.finish;
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
posSpreadObj.insertPos(posSheet);
|
|
@@ -1932,7 +2009,12 @@ $(document).ready(() => {
|
|
|
disabled: function (key, opt) {
|
|
|
if (posSheet.zh_data) {
|
|
|
const selection = posSheet.getSelections();
|
|
|
- return posSheet.zh_data.length < selection[0].row + selection[0].rowCount;
|
|
|
+ let settleFinish = false;
|
|
|
+ for (let i = row; i < row + rowCount; i++) {
|
|
|
+ if (!posSheet.zh_data[i]) continue;
|
|
|
+ settleFinish = settleFinish || posSheet.zh_data[i].settle_status === settleStatus.finish;
|
|
|
+ }
|
|
|
+ return posSheet.zh_data.length < selection[0].row + selection[0].rowCount || settleFinish;
|
|
|
} else {
|
|
|
return true;
|
|
|
}
|
|
@@ -2014,6 +2096,10 @@ $(document).ready(() => {
|
|
|
toastr.warning('非最底层项目下,不应添加节点');
|
|
|
return;
|
|
|
}
|
|
|
+ if (mainNode.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('已结算节点下,不应添加签约清单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
postData(window.location.pathname + '/update', {
|
|
|
postType: 'add-deal',
|
|
@@ -2129,6 +2215,10 @@ $(document).ready(() => {
|
|
|
toastr.warning('非最底层项目下,不应添加变更清单');
|
|
|
return;
|
|
|
}
|
|
|
+ if (mainNode.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('已结算节点下,不应添加变更清单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
postData(window.location.pathname + '/update', {
|
|
|
postType: 'add-bg',
|
|
@@ -2585,6 +2675,19 @@ $(document).ready(() => {
|
|
|
toastr.warning('非最底层项目下,不应添加节点');
|
|
|
return;
|
|
|
}
|
|
|
+ if (mainNode.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('已结算节点下,不可添加工程量清单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const stdNodes = stdTree.getAllParents(stdNode);
|
|
|
+ for (const node of stdNodes) {
|
|
|
+ const parent = mainTree.datas.find(x => { return x.code === node.code && x.name === node.name; });
|
|
|
+ if (parent && parent.settle_status === settleStatus.finish) {
|
|
|
+ toastr.warning('项目节父项已结算,不可添加节点');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
postData(window.location.pathname + '/update', {
|