|
@@ -158,7 +158,7 @@ const billsGuidance = (function () {
|
|
|
},
|
|
|
headers: [
|
|
|
{name: '项目指引', dataCode: 'name', width: 300, vAlign: 'center', hAlign: 'left', formatter: '@'},
|
|
|
- {name: '选择', dataCode: 'name', width: 50, vAlign: 'center', hAlign: 'center', formatter: '@'},
|
|
|
+ {name: '选择', dataCode: 'select', width: 50, vAlign: 'center', hAlign: 'center', formatter: '@'},
|
|
|
],
|
|
|
events: {
|
|
|
EditStarting: function (sender, args) {
|
|
@@ -172,11 +172,29 @@ const billsGuidance = (function () {
|
|
|
}
|
|
|
},
|
|
|
CellDoubleClick: function (sender, args) {
|
|
|
- if(guideItem.headers[args.col]['dataCode'] === 'name'){
|
|
|
- if(!bills.tree.selected){
|
|
|
- return;
|
|
|
+ if(!bills.tree.selected){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let node = bills.tree.selected.guidance.tree.selected;
|
|
|
+ if(!node){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(node.children.length === 0){
|
|
|
+ if(guideItem.headers[args.col]['dataCode'] === 'name'){
|
|
|
+ insertRations(getInsertRationData([args.row]));
|
|
|
}
|
|
|
- insertRations(getInsertRationData([args.row]));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ node.setExpanded(!node.expanded);
|
|
|
+ renderSheetFunc(args.sheet, function () {
|
|
|
+ let iCount = node.posterityCount(), i, child;
|
|
|
+ for (i = 0; i < iCount; i++) {
|
|
|
+ child = bills.tree.selected.guidance.tree.items[args.row + i + 1];
|
|
|
+ args.sheet.setRowVisible(args.row + i + 1, child.visible, args.sheetArea);
|
|
|
+ }
|
|
|
+ args.sheet.invalidateLayout();
|
|
|
+ });
|
|
|
+ args.sheet.repaint();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -449,6 +467,25 @@ const billsGuidance = (function () {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+ //展开至搜索出来点的节点
|
|
|
+ //@param {Array}nodes @return {void}
|
|
|
+ function expandSearchNodes(nodes){
|
|
|
+ let that = this;
|
|
|
+ let billsSheet = bills.workBook.getActiveSheet();
|
|
|
+ renderSheetFunc(billsSheet, function () {
|
|
|
+ function expParentNode(node){
|
|
|
+ if(node.parent && !node.parent.expanded){
|
|
|
+ node.parent.setExpanded(true);
|
|
|
+ expParentNode(node.parent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let node of nodes){
|
|
|
+ expParentNode(node);
|
|
|
+ }
|
|
|
+ TREE_SHEET_HELPER.refreshTreeNodeData(bills.treeSetting, billsSheet, bills.tree.roots, true);
|
|
|
+ TREE_SHEET_HELPER.refreshNodesVisible(bills.tree.roots, billsSheet, true);
|
|
|
+ });
|
|
|
+ }
|
|
|
//各按钮监听事件
|
|
|
//@return {void}
|
|
|
function bindBtn(){
|
|
@@ -460,6 +497,9 @@ const billsGuidance = (function () {
|
|
|
});
|
|
|
//更改清单指引库
|
|
|
$('#stdBillsGuidanceLibSelect').change(function () {
|
|
|
+ //关闭搜索窗口
|
|
|
+ $('#billsGuidanceSearchResult').hide();
|
|
|
+ billsLibObj.clearHighLight(bills.workBook);
|
|
|
libInitSel($(this).select().val());
|
|
|
//记住选项
|
|
|
sessionStorage.setItem('stdBillsGuidance', $(this).select().val());
|
|
@@ -486,6 +526,66 @@ const billsGuidance = (function () {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ //搜索
|
|
|
+ $('#stdBillsGuidanceSearch>span>button').click(function () {
|
|
|
+ let billsSheet = bills.workBook.getActiveSheet();
|
|
|
+ billsLibObj.clearHighLight(bills.workBook);
|
|
|
+ let keyword = $('#stdBillsGuidanceSearch>input').val();
|
|
|
+ if (!keyword || keyword === '') {
|
|
|
+ $('#billsGuidanceSearchResult').hide();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ let result = bills.tree.items.filter(function (item) {
|
|
|
+ let codeIs = item.data.code ? item.data.code.indexOf(keyword) !== -1 : false;
|
|
|
+ let nameIs = item.data.name ? item.data.name.indexOf(keyword) !== -1 : false;
|
|
|
+ return codeIs || nameIs;
|
|
|
+ });
|
|
|
+ result.sort(function (x, y) {
|
|
|
+ return x.serialNo() - y.serialNo();
|
|
|
+ });
|
|
|
+ if (result.length !== 0) {
|
|
|
+ //展开搜索出来的节点
|
|
|
+ expandSearchNodes(result);
|
|
|
+ //设置记住展开
|
|
|
+ sessionStorage.setItem('stdBillsGuidanceExpState', bills.tree.getExpState(bills.tree.items));
|
|
|
+
|
|
|
+ let sel = billsSheet.getSelections();
|
|
|
+ bills.controller.setTreeSelected(result[0]);
|
|
|
+ billsSheet.setSelection(result[0].serialNo(), sel[0].col, 1, 1);
|
|
|
+ billsInitSel(result[0].serialNo());
|
|
|
+
|
|
|
+ for (let node of result) {
|
|
|
+ billsSheet.getRange(node.serialNo(), -1, 1, -1).backColor('lemonChiffon');
|
|
|
+ }
|
|
|
+
|
|
|
+ $('#nextBillsGuidance').show();
|
|
|
+ $('#nextBillsGuidance').unbind('click');
|
|
|
+ $('#nextBillsGuidance').bind('click', function () {
|
|
|
+ let cur = bills.tree.selected, resultIndex = result.indexOf(cur), sel = billsSheet.getSelections();
|
|
|
+ if (resultIndex === result.length - 1) {
|
|
|
+ bills.controller.setTreeSelected(result[0]);
|
|
|
+ billsSheet.setSelection(result[0].serialNo(), sel[0].col, 1, 1);
|
|
|
+ billsInitSel(result[0].serialNo());
|
|
|
+ } else {
|
|
|
+ bills.controller.setTreeSelected(result[resultIndex + 1]);
|
|
|
+ billsSheet.setSelection(result[resultIndex + 1].serialNo(), sel[0].col, 1, 1);
|
|
|
+ billsInitSel(result[resultIndex + 1].serialNo());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ billsLibObj.clearHighLight(bills.workBook);
|
|
|
+ $('#nextBillsGuidance').hide();
|
|
|
+ }
|
|
|
+ $('#billsGuidanceSearchResultCount').text('搜索结果:' + result.length);
|
|
|
+ $('#billsGuidanceSearchResult').show();
|
|
|
+ });
|
|
|
+ // 关闭搜索结果
|
|
|
+ $('#closeSearchBillsGuidance').click(function () {
|
|
|
+ $('#billsGuidanceSearchResult').hide();
|
|
|
+ billsLibObj.clearHighLight(bills.workBook);
|
|
|
+ refreshWorkBook();
|
|
|
+ });
|
|
|
}
|
|
|
//刷新表
|
|
|
//@return {void}
|