|
@@ -25,6 +25,7 @@ var projectObj = {
|
|
|
let project = projectObj.project;
|
|
|
let mainSheet = projectObj.mainController.sheet;
|
|
|
let init = true;
|
|
|
+ locateToCache(node);
|
|
|
//设置选中行底色和恢复前选中行底色
|
|
|
let refreshNodes = [node];
|
|
|
if(!project.mainTree.preSelected){
|
|
@@ -3586,5 +3587,59 @@ $('#menu_index_info').click(function () {
|
|
|
$('#tab_index').click();
|
|
|
});
|
|
|
|
|
|
+// 快速定位
|
|
|
+const FastLocateType = {
|
|
|
+ SUB_ENGINERRING: 'subEnginerring',
|
|
|
+ MEASURE: 'measure',
|
|
|
+ OTHER: 'other',
|
|
|
+};
|
|
|
+const locateCache = {
|
|
|
+ [FastLocateType.SUB_ENGINERRING]: null,
|
|
|
+ [FastLocateType.MEASURE]: null,
|
|
|
+ [FastLocateType.OTHER]: null,
|
|
|
+};
|
|
|
+
|
|
|
+// 变更焦点行时,将焦点节点存至对应部分的locateCache中,用于快速定位功能
|
|
|
+function locateToCache(node) {
|
|
|
+ if (!node) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (node.isBelongToFlags([fixedFlag.SUB_ENGINERRING])) {
|
|
|
+ locateCache[FastLocateType.SUB_ENGINERRING] = node;
|
|
|
+ } else if (node.isBelongToFlags([fixedFlag.MEASURE])) {
|
|
|
+ locateCache[FastLocateType.MEASURE] = node;
|
|
|
+ } else if (node.isBelongToFlags([fixedFlag.OTHER])) {
|
|
|
+ locateCache[FastLocateType.OTHER] = node;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// “分项”、“措施”、“其他”,用于快速定位至对应部分上次的焦点行
|
|
|
+function fastLocate(type) {
|
|
|
+ let locatedNode;
|
|
|
+ if (type === FastLocateType.SUB_ENGINERRING) {
|
|
|
+ locatedNode = locateCache[type] || projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.SUB_ENGINERRING);
|
|
|
+ } else if (type === FastLocateType.MEASURE) {
|
|
|
+ locatedNode = locateCache[type] || projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.MEASURE);
|
|
|
+ } else {
|
|
|
+ locatedNode = locateCache[type] || projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.OTHER);
|
|
|
+ }
|
|
|
+ if (locatedNode && locatedNode !== projectObj.project.mainTree.selected) {
|
|
|
+ const locateRow = locatedNode.serialNo();
|
|
|
+ const sheet = projectObj.mainController.sheet;
|
|
|
+ projectObj.loadFocusLocation(locateRow, sheet.getActiveColumnIndex());
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+$('#locate-sub').click(() => {
|
|
|
+ fastLocate(FastLocateType.SUB_ENGINERRING);
|
|
|
+});
|
|
|
+$('#locate-measure').click(() => {
|
|
|
+ fastLocate(FastLocateType.MEASURE);
|
|
|
+});
|
|
|
+$('#locate-other').click(() => {
|
|
|
+ fastLocate(FastLocateType.OTHER);
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
//导出接口
|
|
|
ExportView.exportListener();
|