|  | @@ -977,14 +977,53 @@ const billsGuidance = (function () {
 | 
	
		
			
				|  |  |              $.bootstrapLoading.end();
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 删除定额(嵌套删除自身及后代定额)
 | 
	
		
			
				|  |  | +    function delRations() {
 | 
	
		
			
				|  |  | +        const selected = bills.tree.selected.guidance.tree.selected;
 | 
	
		
			
				|  |  | +        if (!selected) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (selected.data.type === itemType.ration) {
 | 
	
		
			
				|  |  | +            del({ row: selected.serialNo(), col: 0, rowCount: 1, colCount: 1  });
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        const rations = selected.getPosterity().filter(item => item.data.type === itemType.ration);
 | 
	
		
			
				|  |  | +        if (!rations.length) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        const updateDatas = rations.map(item => ({ updateType: updateType.del, findData: { ID: item.data.ID } }));
 | 
	
		
			
				|  |  | +        const rationIDs = rations.map(r => r.data.ID);
 | 
	
		
			
				|  |  | +        $.bootstrapLoading.start();
 | 
	
		
			
				|  |  | +        updateGuideItems(updateDatas, function () {
 | 
	
		
			
				|  |  | +            const guideSheet = guideItem.workBook.getSheet(0);
 | 
	
		
			
				|  |  | +            const treeNodes = bills.tree.selected.guidance.tree.items.filter(item => !rationIDs.includes(item.data.ID));
 | 
	
		
			
				|  |  | +            const state = bills.tree.selected.guidance.tree.getExpState(treeNodes);
 | 
	
		
			
				|  |  | +            const treeData = treeNodes.map(item => item.data);
 | 
	
		
			
				|  |  | +            initTree(bills.tree.selected.guidance, guideSheet, guideItem.treeSetting, treeData);
 | 
	
		
			
				|  |  | +            bills.tree.selected.guidance.tree.setExpandedByState(bills.tree.selected.guidance.tree.items, state);
 | 
	
		
			
				|  |  | +            renderSheetFunc(guideSheet, function () {
 | 
	
		
			
				|  |  | +                TREE_SHEET_HELPER.refreshNodesVisible(bills.tree.selected.guidance.tree.roots, guideSheet, true);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            //设置底色
 | 
	
		
			
				|  |  | +            setNodesColor(guideSheet, bills.tree.selected.guidance.tree.items);
 | 
	
		
			
				|  |  | +            //项目指引初始焦点
 | 
	
		
			
				|  |  | +            guideItemInitSel(guideSheet.getActiveRowIndex() ? guideSheet.getActiveRowIndex() : 0);
 | 
	
		
			
				|  |  | +            $.bootstrapLoading.end();
 | 
	
		
			
				|  |  | +            guideItem.workBook.focus(true)
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      //项目指引删除操作
 | 
	
		
			
				|  |  |      //@return {void}
 | 
	
		
			
				|  |  | -    function del(){
 | 
	
		
			
				|  |  | +    function del(selArea = null){
 | 
	
		
			
				|  |  |          $.bootstrapLoading.start();
 | 
	
		
			
				|  |  |          let controller = bills.tree.selected.guidance.controller;
 | 
	
		
			
				|  |  |          let selNodes = [];
 | 
	
		
			
				|  |  |          let sheet = guideItem.workBook.getSheet(0);
 | 
	
		
			
				|  |  | -        let sel = sheet.getSelections()[0];
 | 
	
		
			
				|  |  | +        let sel = selArea ? selArea : sheet.getSelections()[0];
 | 
	
		
			
				|  |  |          if(sel){
 | 
	
		
			
				|  |  |              sel.row =  sel.row === -1 ? 0 : sel.row;
 | 
	
		
			
				|  |  |              for(let i = 0; i < sel.rowCount; i++){
 | 
	
	
		
			
				|  | @@ -1016,6 +1055,7 @@ const billsGuidance = (function () {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          updateGuideItems(updateDatas, function () {
 | 
	
		
			
				|  |  | +            console.log(blockNodes);
 | 
	
		
			
				|  |  |              controller.m_delete(blockNodes);
 | 
	
		
			
				|  |  |              guideItemInitSel(sheet.getActiveRowIndex());
 | 
	
		
			
				|  |  |              refreshBtn(bills.tree.selected.guidance.tree.selected);
 | 
	
	
		
			
				|  | @@ -1400,13 +1440,24 @@ const billsGuidance = (function () {
 | 
	
		
			
				|  |  |                                      let pasteNode = bills.tree.selected.guidance.tree.items[target.row];
 | 
	
		
			
				|  |  |                                      pasteBlock(pasteNode);
 | 
	
		
			
				|  |  |                                  }},
 | 
	
		
			
				|  |  | +                            "delRations": {
 | 
	
		
			
				|  |  | +                                name: '删除定额',
 | 
	
		
			
				|  |  | +                                disabled: function () {
 | 
	
		
			
				|  |  | +                                    let node = bills.tree.selected.guidance.tree.items[target.row];
 | 
	
		
			
				|  |  | +                                    return locked || !node
 | 
	
		
			
				|  |  | +                                },
 | 
	
		
			
				|  |  | +                                icon: "fa-remove",
 | 
	
		
			
				|  |  | +                                callback: function (key, opt) {
 | 
	
		
			
				|  |  | +                                    $('#delRationAlert').modal('show');
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            },
 | 
	
		
			
				|  |  |                              "del": {
 | 
	
		
			
				|  |  |                                  name: '删除',
 | 
	
		
			
				|  |  |                                  disabled: function () {
 | 
	
		
			
				|  |  |                                      let node = bills.tree.selected.guidance.tree.items[target.row];
 | 
	
		
			
				|  |  |                                      return locked || !node
 | 
	
		
			
				|  |  |                                  },
 | 
	
		
			
				|  |  | -                                icon: "fa-arrow-left",
 | 
	
		
			
				|  |  | +                                icon: "fa-remove",
 | 
	
		
			
				|  |  |                                  callback: function (key, opt) {
 | 
	
		
			
				|  |  |                                      $('#delAlert').modal('show');
 | 
	
		
			
				|  |  |                                  }
 | 
	
	
		
			
				|  | @@ -1452,6 +1503,10 @@ const billsGuidance = (function () {
 | 
	
		
			
				|  |  |              del();
 | 
	
		
			
				|  |  |              $('#delAlert').modal('hide');
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +        $('#delRationConfirm').click(function () {
 | 
	
		
			
				|  |  | +            delRations();
 | 
	
		
			
				|  |  | +            $('#delRationAlert').modal('hide');
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |          $('#del').click(function () {
 | 
	
		
			
				|  |  |              $('#delAlert').modal('show');
 | 
	
		
			
				|  |  |          });
 |