|
@@ -66,12 +66,32 @@ $(document).ready(() => {
|
|
|
pos.loadDatas(posData);
|
|
|
|
|
|
const billsTreeSpreadObj = {
|
|
|
+ getDefaultSelectInfo: function (sheet) {
|
|
|
+ const tree = sheet.zh_tree;
|
|
|
+ if (!tree) return;
|
|
|
+ const sel = sheet.getSelections()[0];
|
|
|
+ const node = sheet.zh_tree.nodes[sel.row];
|
|
|
+ if (!node) return;
|
|
|
+ let count = 1;
|
|
|
+ if (sel.rowCount > 1) {
|
|
|
+ for (let r = 1; r < sel.rowCount; r++) {
|
|
|
+ const rNode = sheet.zh_tree.nodes[sel.row + r];
|
|
|
+ if (rNode.level > node.level) continue;
|
|
|
+ if ((rNode.level < node.level) || (rNode.level === node.level && rNode.pid !== node.pid)) {
|
|
|
+ toast('请选择同一清单下的节点,进行该操作');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ count += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return [tree, node, count];
|
|
|
+ },
|
|
|
/**
|
|
|
* 刷新顶部按钮是否可用
|
|
|
* @param sheet
|
|
|
* @param selections
|
|
|
*/
|
|
|
- refreshOperationValid: function (sheet) {
|
|
|
+ refreshOperationValid: function (sheet, selection) {
|
|
|
const setObjEnable = function (obj, enable) {
|
|
|
if (enable) {
|
|
|
obj.removeClass('disabled');
|
|
@@ -79,23 +99,38 @@ $(document).ready(() => {
|
|
|
obj.addClass('disabled');
|
|
|
}
|
|
|
};
|
|
|
+ const sel = selection ? selection[0] : sheet.getSelections()[0];
|
|
|
+ const row = sel ? sel.row : -1;
|
|
|
const tree = sheet.zh_tree;
|
|
|
- const node = SpreadJsObj.getSelectObject(sheet);
|
|
|
- const preNode = tree.getPreSiblingNode(node);
|
|
|
+ if (!tree) return;
|
|
|
+ const first = sheet.zh_tree.nodes[row];
|
|
|
+ let last = first, sameParent = true;
|
|
|
+ if (sel.rowCount > 1) {
|
|
|
+ for (let r = 1; r < sel.rowCount; r++) {
|
|
|
+ const rNode = tree.nodes[sel.row + r];
|
|
|
+ if (rNode.level > first.level) continue;
|
|
|
+ if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
|
|
|
+ sameParent = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ last = rNode;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const preNode = tree.getPreSiblingNode(first);
|
|
|
const valid = !sheet.zh_setting.readOnly;
|
|
|
|
|
|
- setObjEnable($('a[type="add"]'), valid);
|
|
|
- setObjEnable($('a[type="delete"]'), valid && node);
|
|
|
- setObjEnable($('a[type="up-move"]'), valid && node && preNode);
|
|
|
- setObjEnable($('a[type="down-move"]'), valid && node && !tree.isLastSibling(node));
|
|
|
- if (isTz) {
|
|
|
- const posRange = node ? pos.getLedgerPos(node.id) : [];
|
|
|
- setObjEnable($('a[type="up-level"]'), valid && node && tree.getParent(node) && node.level > 2 && (!posRange || posRange.length === 0));
|
|
|
+ setObjEnable($('#insert'), valid && first && first.level > 1);
|
|
|
+ setObjEnable($('#delete'), valid && first && sameParent && first.level > 1);
|
|
|
+ setObjEnable($('#up-move'), valid && first && sameParent && first.level > 1 && preNode);
|
|
|
+ setObjEnable($('#down-move'), valid && first && 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));
|
|
|
const preNodePosRange = preNode ? pos.getLedgerPos(preNode.id) : [];
|
|
|
- setObjEnable($('a[type="down-level"]'), valid && node && preNode && (!preNodePosRange || preNodePosRange.length === 0));
|
|
|
+ setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0));
|
|
|
} else {
|
|
|
- setObjEnable($('#up-level'), valid && node && tree.getParent(node));
|
|
|
- setObjEnable($('#down-level'), valid && node && preNode);
|
|
|
+ setObjEnable($('#up-level'), valid && first && sameParent && first.level > 2 && tree.getParent(first));
|
|
|
+ setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode);
|
|
|
}
|
|
|
setObjEnable($('#cut'), valid);
|
|
|
setObjEnable($('#paste'), valid);
|