|
|
@@ -669,18 +669,18 @@ $(document).ready(function() {
|
|
|
const preNode = tree.getPreSiblingNode(first);
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
|
|
|
- setObjEnable($('#insert'), valid && first && first.level > 1);
|
|
|
- setObjEnable($('#delete'), valid && first && sameParent && !(first.level === 1 && first.node_type));
|
|
|
- setObjEnable($('#up-move'), valid && first && sameParent && first.level > 1 && preNode);
|
|
|
- setObjEnable($('#down-move'), valid && first && sameParent && first.level > 1 && !tree.isLastSibling(last));
|
|
|
+ setObjEnable($('#insert'), valid && first && !first._invalid && first.level > 1);
|
|
|
+ setObjEnable($('#delete'), valid && first && !first._invalid && sameParent && !(first.level === 1 && first.node_type));
|
|
|
+ setObjEnable($('#up-move'), valid && first && !first._invalid && sameParent && first.level > 1 && preNode);
|
|
|
+ setObjEnable($('#down-move'), valid && first && !first._invalid && sameParent && first.level > 1 && !tree.isLastSibling(last));
|
|
|
if (checkTzMeasureType()) {
|
|
|
const posRange = last ? pos.getLedgerPos(last.id) : [];
|
|
|
- setObjEnable($('#up-level'), valid && first && sameParent && tree.getParent(first) && first.level > 2 && ((!posRange || posRange.length === 0) || tree.isLastSibling(last)));
|
|
|
+ setObjEnable($('#up-level'), valid && first && !first._invalid && sameParent && tree.getParent(first) && first.level > 2 && ((!posRange || posRange.length === 0) || tree.isLastSibling(last)));
|
|
|
const preNodePosRange = preNode ? pos.getLedgerPos(preNode.id) : [];
|
|
|
- setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0));
|
|
|
+ setObjEnable($('#down-level'), valid && first && !first._invalid && sameParent && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0));
|
|
|
} else {
|
|
|
- setObjEnable($('#up-level'), valid && first && sameParent && first.level > 2 && tree.getParent(first));
|
|
|
- setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode);
|
|
|
+ setObjEnable($('#up-level'), valid && first && !first._invalid && sameParent && first.level > 2 && tree.getParent(first));
|
|
|
+ setObjEnable($('#down-level'), valid && first && !first._invalid && sameParent && first.level > 1 && preNode);
|
|
|
}
|
|
|
setObjEnable($('#cut'), valid);
|
|
|
setObjEnable($('#paste'), valid);
|
|
|
@@ -752,10 +752,12 @@ $(document).ready(function() {
|
|
|
if (!tree) { return; }
|
|
|
|
|
|
const node = sheet.zh_tree.nodes[row];
|
|
|
- if (!node) { return; }
|
|
|
+ if (!node) return;
|
|
|
+ if (node._invalid && !node._insertValid) return;
|
|
|
|
|
|
+ const postType = (node._invalid && node._insertValid) ? 'add-child' : 'add';
|
|
|
postData(window.location.pathname + '/update', {
|
|
|
- postType: 'add',
|
|
|
+ postType,
|
|
|
postData: {
|
|
|
id: tree.getNodeKey(node),
|
|
|
count: count,
|
|
|
@@ -1380,7 +1382,7 @@ $(document).ready(function() {
|
|
|
const tree = info.sheet.zh_tree;
|
|
|
const col = info.sheet.zh_setting.cols[info.col];
|
|
|
const node = info.sheet.zh_tree.nodes[info.row];
|
|
|
- if (!node) {
|
|
|
+ if (!node || node._invalid) {
|
|
|
info.cancel = true;
|
|
|
return;
|
|
|
}
|
|
|
@@ -1472,7 +1474,7 @@ $(document).ready(function() {
|
|
|
batchReplace: function(orgInfo, newInfo) {
|
|
|
const updateData = [];
|
|
|
for (const d of ledgerTree.nodes) {
|
|
|
- if (!d.b_code) continue;
|
|
|
+ if (!d.b_code || d._invalid) continue;
|
|
|
const checkInfo = { code: d.b_code || '', name: d.name || '', unit: d.unit || '', unit_price: d.unit_price || 0 };
|
|
|
if (_.isMatch(checkInfo, orgInfo)) {
|
|
|
const data = ledgerTree.getNodeKeyData(d);
|
|
|
@@ -1728,12 +1730,16 @@ $(document).ready(function() {
|
|
|
},
|
|
|
disabled: function (key, opt) {
|
|
|
const sheet = ledgerSpread.getActiveSheet();
|
|
|
+ if (sheet.zh_setting.readOnly) return true;
|
|
|
+
|
|
|
const selection = sheet.getSelections();
|
|
|
const sel = selection ? selection[0] : sheet.getSelections()[0];
|
|
|
const row = sel ? sel.row : -1;
|
|
|
const tree = sheet.zh_tree;
|
|
|
if (!tree) return true;
|
|
|
const first = sheet.zh_tree.nodes[row];
|
|
|
+ if (!first || first.level <= 1) return true;
|
|
|
+
|
|
|
let last = first, sameParent = true;
|
|
|
if (sel.rowCount > 1) {
|
|
|
for (let r = 1; r < sel.rowCount; r++) {
|
|
|
@@ -1746,8 +1752,7 @@ $(document).ready(function() {
|
|
|
last = rNode;
|
|
|
}
|
|
|
}
|
|
|
- const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && first.level > 1);
|
|
|
+ return first._invalid ? !first._insertValid : false;
|
|
|
},
|
|
|
visible: function (key, opt) {
|
|
|
return !readOnly;
|
|
|
@@ -1780,7 +1785,7 @@ $(document).ready(function() {
|
|
|
}
|
|
|
}
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && sameParent && !(first.level === 1 && first.node_type));
|
|
|
+ return !(valid && first && !first._invalid && sameParent && !(first.level === 1 && first.node_type));
|
|
|
},
|
|
|
visible: function (key, opt) {
|
|
|
return !readOnly;
|
|
|
@@ -1808,12 +1813,16 @@ $(document).ready(function() {
|
|
|
},
|
|
|
disabled: function (key, opt) {
|
|
|
const sheet = ledgerSpread.getActiveSheet();
|
|
|
+ if (sheet.zh_setting.readOnly) return true;
|
|
|
+
|
|
|
const selection = sheet.getSelections();
|
|
|
const sel = selection ? selection[0] : sheet.getSelections()[0];
|
|
|
const row = sel ? sel.row : -1;
|
|
|
const tree = sheet.zh_tree;
|
|
|
if (!tree) return true;
|
|
|
const first = sheet.zh_tree.nodes[row];
|
|
|
+ if (!first || first.level <= 1) return true;
|
|
|
+
|
|
|
let last = first, sameParent = true;
|
|
|
if (sel.rowCount > 1) {
|
|
|
for (let r = 1; r < sel.rowCount; r++) {
|
|
|
@@ -1826,8 +1835,7 @@ $(document).ready(function() {
|
|
|
last = rNode;
|
|
|
}
|
|
|
}
|
|
|
- const valid = !sheet.zh_setting.readOnly;
|
|
|
- return !(valid && first && first.level > 1);
|
|
|
+ return first._invalid ? !first._insertValid : false;
|
|
|
},
|
|
|
visible: function (key, opt) {
|
|
|
return !readOnly;
|
|
|
@@ -1842,15 +1850,13 @@ $(document).ready(function() {
|
|
|
const selection = sheet.getSelections();
|
|
|
const row = selection[0].row;
|
|
|
const select = ledgerTree.nodes[row];
|
|
|
- if (select) {
|
|
|
- if (select.code && select.code !== '') {
|
|
|
- return !ledgerTree.isLeafXmj(select);
|
|
|
- } else {
|
|
|
- const parent = ledgerTree.getParent(select);
|
|
|
- return !(parent && ledgerTree.isLeafXmj(parent));
|
|
|
- }
|
|
|
+ if (!select || select._invalid) return true;
|
|
|
+
|
|
|
+ if (select.code && select.code !== '') {
|
|
|
+ return !ledgerTree.isLeafXmj(select);
|
|
|
} else {
|
|
|
- return true;
|
|
|
+ const parent = ledgerTree.getParent(select);
|
|
|
+ return !(parent && ledgerTree.isLeafXmj(parent));
|
|
|
}
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
@@ -2018,7 +2024,10 @@ $(document).ready(function() {
|
|
|
icon: 'fa-sort-numeric-asc',
|
|
|
disabled: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
|
|
|
- return !node || !node.code || !node.children || node.children === 0 || node.code.length < 3;
|
|
|
+ if (!node) return true;
|
|
|
+ if (node._invalid && !node._insertValid) return true;
|
|
|
+
|
|
|
+ return !node.code || !node.children || node.children === 0 || node.code.length < 3;
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
treeOperationObj.sortCode(ledgerSpread.getActiveSheet());
|
|
|
@@ -2037,6 +2046,9 @@ $(document).ready(function() {
|
|
|
treeCalc.calculateAll(ledgerTree);
|
|
|
SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
|
|
|
});
|
|
|
+ },
|
|
|
+ disabled: function(key, opt) {
|
|
|
+ return tender.isAssUser;
|
|
|
}
|
|
|
};
|
|
|
billsContextMenuOptions.items.applySgfh2Deal = {
|
|
|
@@ -2048,6 +2060,9 @@ $(document).ready(function() {
|
|
|
treeCalc.calculateAll(ledgerTree);
|
|
|
SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
|
|
|
});
|
|
|
+ },
|
|
|
+ disabled: function(key, opt) {
|
|
|
+ return tender.isAssUser;
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
@@ -2068,7 +2083,7 @@ $(document).ready(function() {
|
|
|
name: '导入分项清单Excel',
|
|
|
icon: 'fa-file-excel-o',
|
|
|
disabled: function (key, opt) {
|
|
|
- return readOnly;
|
|
|
+ return readOnly || tender.isAssUser;
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
importExcel.doImport({
|
|
|
@@ -2108,7 +2123,7 @@ $(document).ready(function() {
|
|
|
icon: 'fa-file-excel-o',
|
|
|
disabled: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
|
|
|
- return readOnly || !node
|
|
|
+ return readOnly || !node || !node._invalid
|
|
|
|| (node.children && node.children.length > 0)
|
|
|
|| (!_.isNil(node.b_code) && node.b_code !== '');
|
|
|
},
|
|
|
@@ -2146,7 +2161,7 @@ $(document).ready(function() {
|
|
|
icon: 'fa-link',
|
|
|
disabled: function (key, opt) {
|
|
|
const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
|
|
|
- return readOnly || !node
|
|
|
+ return readOnly || !node || !node._invalid
|
|
|
|| (node.children && node.children.length > 0)
|
|
|
|| !ledgerTree.isLeafXmj(node);
|
|
|
},
|
|
|
@@ -2743,6 +2758,7 @@ $(document).ready(function() {
|
|
|
selectionChanged: function (e, info) {
|
|
|
posOperationObj.loadExprToInput();
|
|
|
posOperationObj.refreshOperationValid(posSpread.getActiveSheet());
|
|
|
+ posCalcDetail.loadCurDetailData();
|
|
|
},
|
|
|
addPegs: function (pegs) {
|
|
|
if (!pegs || pegs.length <= 0) return;
|
|
|
@@ -3280,6 +3296,10 @@ $(document).ready(function() {
|
|
|
|
|
|
postData(window.location.pathname + '/load', {}, function (data) {
|
|
|
ledgerTree.loadDatas(data.bills);
|
|
|
+ if (tender.assLedger) {
|
|
|
+ const assIds = ledgerTree.nodes.filter(x => { return tender.assLedger.indexOf(x.id) >= 0; }).map(x => { return x.ledger_id; });
|
|
|
+ ledgerTree.loadAssData(assIds);
|
|
|
+ }
|
|
|
treeCalc.calculateAll(ledgerTree);
|
|
|
checkShowLast(data.bills.length);
|
|
|
pos.loadDatas(data.pos);
|
|
|
@@ -3501,6 +3521,7 @@ $(document).ready(function() {
|
|
|
selectedBackColor: '#fffacd',
|
|
|
readOnly: true,
|
|
|
},
|
|
|
+ skipFilter: true,
|
|
|
locate: function(cur) {
|
|
|
if (!cur.lid) return;
|
|
|
|
|
|
@@ -5132,6 +5153,35 @@ $(document).ready(function() {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ $('#ledger-ass').click(function() {
|
|
|
+ TreeAss.init({
|
|
|
+ spreadSetting: {
|
|
|
+ cols: [
|
|
|
+ { title: '项目节编号', colSpan: '1', rowSpan: '1', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree', readOnly: true },
|
|
|
+ { title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 225, formatter: '@', readOnly: true },
|
|
|
+ ],
|
|
|
+ emptyRows: 0,
|
|
|
+ headRows: 1,
|
|
|
+ headRowHeight: [32],
|
|
|
+ defaultRowHeight: 21,
|
|
|
+ headerFont: '12px 微软雅黑',
|
|
|
+ font: '12px 微软雅黑',
|
|
|
+ },
|
|
|
+ loadUrl: 'ass/load',
|
|
|
+ saveUrl: 'ass/save',
|
|
|
+ type: 'ledger',
|
|
|
+ rela_id: '',
|
|
|
+ keyField: 'id',
|
|
|
+ filterUser: [tender.user_id],
|
|
|
+ });
|
|
|
+ TreeAss.show(ledgerTree.nodes.filter(x => { return !x.b_code; }).map(x => {
|
|
|
+ return {
|
|
|
+ id: x.id, tree_id: x.ledger_id, tree_pid: x.ledger_pid, order: x.order, level: x.level, is_leaf: x.is_leaf, full_path: x.full_path,
|
|
|
+ code: x.code, name: x.name,
|
|
|
+ }
|
|
|
+ }));
|
|
|
+ });
|
|
|
+
|
|
|
// 切换附件里节点和所有附件
|
|
|
$('#fujian .nav-link').on('click', function () {
|
|
|
const tabPanel = $(this).attr('fujian-content');
|
|
|
@@ -5522,6 +5572,7 @@ $(document).ready(function() {
|
|
|
$('#binddskuser').modal('show');
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
});
|
|
|
// 生成当前节点列表
|
|
|
function getNodeList(node) {
|