|
@@ -12,6 +12,78 @@ var projectObj = {
|
|
|
subViewObj.saveComments(node);
|
|
|
}*/
|
|
|
},
|
|
|
+ treeSelectedChanged: function (node) {
|
|
|
+ let project = projectObj.project;
|
|
|
+ subViewObj.loadComments(node);
|
|
|
+ gljOprObj.showDataIfRationSelect(node);
|
|
|
+
|
|
|
+ // CSL.2017.07.25
|
|
|
+ if (SubActiveSheetNameIs('JSCX')) {
|
|
|
+ if (node.sourceType === project.Bills.getSourceType() || node.sourceType === project.Ration.getSourceType()) {
|
|
|
+ calcProgramObj.showData(node);
|
|
|
+ } else {
|
|
|
+ calcProgramObj.clearData();
|
|
|
+ };
|
|
|
+ };
|
|
|
+ //zhong 2017-9-1 特征及内容
|
|
|
+ if(pageCCOprObj.active){
|
|
|
+ pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];//mainSpread焦点单元格
|
|
|
+ if(node.sourceType === project.Bills.getSourceType()){
|
|
|
+ pageCCOprObj.setCacheAndShow(node);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ pageCCOprObj.clearData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ refreshBaseActn: function (tree) {
|
|
|
+ let setButtonValid = function (valid, btn) {
|
|
|
+ if (valid) {
|
|
|
+ btn.removeClass('disabled');
|
|
|
+ } else {
|
|
|
+ btn.addClass('disabled');
|
|
|
+ }
|
|
|
+ };
|
|
|
+ let selected = tree.selected, that = projectObj;
|
|
|
+ let canUpLevel = function (node) {
|
|
|
+ if (selected && selected.depth() > 0 && selected.canUpLevel()) {
|
|
|
+ if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
+ return (!selected.nextSibling) || (selected.children.length === 0) || (selected.source.children.length > 0);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ let canDownLevel = function (node) {
|
|
|
+ if (selected && selected.depth() > 0 && selected.canDownLevel()) {
|
|
|
+ if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
+ return (selected.preSibling.children.length === 0) || (selected.preSibling.source.children.length > 0);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ let canDelete = function (node) {
|
|
|
+ if (selected) {
|
|
|
+ if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
+ return !(selected.data.flagsIndex && selected.data.flagsIndex.fixed && selected.data.flagsIndex.fixed.flag > 0);
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ setButtonValid(canUpLevel(selected), $('#upLevel'));
|
|
|
+ setButtonValid(canDownLevel(selected), $('#downLevel'));
|
|
|
+ setButtonValid(selected && (selected.depth() > 0) && selected.canUpMove(), $('#upMove'));
|
|
|
+ setButtonValid(selected && (selected.depth() > 0) && selected.canDownMove(), $('#downMove'));
|
|
|
+ setButtonValid(canDelete(selected), $('#delete'));
|
|
|
+ },
|
|
|
checkCommonField: function (editingText, colSetting) {
|
|
|
let value;
|
|
|
if (colSetting.data.decimal) {
|
|
@@ -53,27 +125,93 @@ var projectObj = {
|
|
|
return this.checkCommonField(editingText, colSetting);
|
|
|
}
|
|
|
},
|
|
|
+ checkBusinessValidate: function (value, node, fieldName) {
|
|
|
+ let project = projectObj.project;
|
|
|
+ if (!project) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (node.sourceType !== project.VolumePrice.getSourceType() && fieldName === 'quantity') {
|
|
|
+ return project.quantity_detail.quantityEditChecking(value,node,fieldName);
|
|
|
+ } else if (fieldName === 'code') {
|
|
|
+ if (node.sourceType === project.Bills.getSourceType()) {
|
|
|
+ return project.Bills.CodeChecking(value, node);
|
|
|
+ } else if (node.sourceType === project.Ration.getSourceType()) {
|
|
|
+ return project.Ration.CodeChecking(value, node);
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ billsCodeEdited: function (value, node) {
|
|
|
+
|
|
|
+ },
|
|
|
+ updateAndReCalculate: function (node, fieldName, value) {
|
|
|
+ let project = projectObj.project, calc = new BillsCalcHelper(project), nodes = [];
|
|
|
+ let getNodes = function (node) {
|
|
|
+ let cur = node, nodes = [];
|
|
|
+ while (cur) {
|
|
|
+ nodes.push(cur);
|
|
|
+ cur = cur.parent;
|
|
|
+ }
|
|
|
+ return nodes;
|
|
|
+ }
|
|
|
+ if (node.sourceType === projectObj.project.Bills.getSourceType()) {
|
|
|
+ calcFees.setFee(node.data, fieldName, value);
|
|
|
+ calc.calcNode(node, true);
|
|
|
+ nodes = getNodes(node);
|
|
|
+ } else if (node.sourceType === projectObj.project.VolumePrice.getSourceType()) {
|
|
|
+ project.beginUpdate('VolumePrice_QuantityChange');
|
|
|
+ project.VolumePrice.updateField(node.source, fieldName, value, false);
|
|
|
+ calc.calcNode(node.parent, true);
|
|
|
+ nodes = getNodes(node.parent);
|
|
|
+ project.Bills.updateNodes(nodes, false);
|
|
|
+ project.endUpdate();
|
|
|
+ nodes.push(node);
|
|
|
+ } else if (node.sourceType === projectObj.project.Ration.getSourceType()) {
|
|
|
+ project.beginUpdate('Ration_QuantityChange');
|
|
|
+ calcFees.setFee(node.data, fieldName, value);
|
|
|
+ node.data.gljList = project.ration_glj.getGljArrByRation(node.data.ID);
|
|
|
+ // calcProgram.calculate的传参必须是cacheNode类型,故无法将计算放在Ration模块中。
|
|
|
+ project.calcProgram.calculate(node);
|
|
|
+ project.Ration.updateRation(node.source, false);
|
|
|
+ calc.calcNode(node.parent, true);
|
|
|
+ nodes = getNodes(node.parent);
|
|
|
+ project.Bills.updateNodes(nodes, false);
|
|
|
+ project.endUpdate();
|
|
|
+ nodes.push(node);
|
|
|
+ }
|
|
|
+ this.mainController.refreshTreeNode(nodes, false);
|
|
|
+ calc = null;
|
|
|
+ },
|
|
|
mainSpreadEditEnded: function (sender, info) {
|
|
|
let project = projectObj.project;
|
|
|
let node = project.mainTree.items[info.row];
|
|
|
let colSetting = projectObj.mainController.setting.cols[info.col];
|
|
|
let fieldName = projectObj.mainController.setting.cols[info.col].data.field;
|
|
|
+ // 检查输入类型等
|
|
|
let value = projectObj.checkSpreadEditingText(info.editingText, colSetting);
|
|
|
- let validate = project.quantity_detail.quantityEditChecking(value,node,fieldName);
|
|
|
|
|
|
- if (colSetting.data.wordWrap) {
|
|
|
- info.sheet.autoFitRow(info.row);
|
|
|
- }
|
|
|
- if (value && value != calcFees.getFee(node.data, fieldName)&&validate) {
|
|
|
- if (node.sourceType === project.Bills.getSourceType()) {
|
|
|
- project.Bills.updateField(node.source, fieldName, value);
|
|
|
- } else if (node.sourceType === project.Ration.getSourceType()) {
|
|
|
- project.Ration.updateField(node.source, fieldName, value);
|
|
|
- } else if (node.sourceType === project.VolumePrice.getSourceType()) {
|
|
|
- project.VolumePrice.updateField(node.source, fieldName, value);
|
|
|
+ if (value && value !== calcFees.getFee(node.data, fieldName)) {
|
|
|
+ if (fieldName === 'code') {
|
|
|
+
|
|
|
+ } else if (fieldName === 'quantity' && projectObj.checkBusinessValidate(value, node, fieldName)) {
|
|
|
+ projectObj.updateAndReCalculate(node, fieldName, value);
|
|
|
+ } else {
|
|
|
+ if (node.sourceType === project.Bills.getSourceType()) {
|
|
|
+ project.Bills.updateField(node.source, fieldName, value, true);
|
|
|
+ } else if (node.sourceType === project.Ration.getSourceType()) {
|
|
|
+ project.Ration.updateField(node.source, fieldName, value, true);
|
|
|
+ } else if (node.sourceType === project.VolumePrice.getSourceType()) {
|
|
|
+ project.VolumePrice.updateField(node.source, fieldName, value, true);
|
|
|
+ }
|
|
|
+ if (colSetting.data.wordWrap) {
|
|
|
+ info.sheet.autoFitRow(info.row);
|
|
|
+ }
|
|
|
+ projectObj.mainController.refreshTreeNode([node]);
|
|
|
}
|
|
|
}
|
|
|
- projectObj.mainController.refreshTreeNode([node]);
|
|
|
},
|
|
|
checkMainSpread: function () {
|
|
|
if (!this.mainSpread) {
|
|
@@ -115,89 +253,15 @@ var projectObj = {
|
|
|
col.data.formatter = MainTreeCol.getNumberFormatter(col.data.decimal);
|
|
|
}
|
|
|
});
|
|
|
- that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
|
|
|
- that.mainController.showTreeData();
|
|
|
- that.mainController.bind('refreshBaseActn', function (tree) {
|
|
|
- var setButtonValid = function (valid, btn) {
|
|
|
- if (valid) {
|
|
|
- btn.removeClass('disabled');
|
|
|
- } else {
|
|
|
- btn.addClass('disabled');
|
|
|
- }
|
|
|
- };
|
|
|
- let selected = tree.selected;
|
|
|
- let canUpLevel = function (node) {
|
|
|
- if (selected && selected.depth() > 0 && selected.canUpLevel()) {
|
|
|
- if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
- return (!selected.nextSibling) || (selected.children.length === 0) || (selected.source.children.length > 0);
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- };
|
|
|
- let canDownLevel = function (node) {
|
|
|
- if (selected && selected.depth() > 0 && selected.canDownLevel()) {
|
|
|
- if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
- return (selected.preSibling.children.length === 0) || (selected.preSibling.source.children.length > 0);
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- };
|
|
|
- let canDelete = function (node) {
|
|
|
- if (selected) {
|
|
|
- if (selected.sourceType === that.project.Bills.getSourceType()) {
|
|
|
- return !(selected.data.flagsIndex && selected.data.flagsIndex.fixed && selected.data.flagsIndex.fixed.flag > 0);
|
|
|
- } else {
|
|
|
- return true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- };
|
|
|
- setButtonValid(canUpLevel(selected), $('#upLevel'));
|
|
|
- setButtonValid(canDownLevel(selected), $('#downLevel'));
|
|
|
- setButtonValid(selected && (selected.depth() > 0) && selected.canUpMove(), $('#upMove'));
|
|
|
- setButtonValid(selected && (selected.depth() > 0) && selected.canDownMove(), $('#downMove'));
|
|
|
- setButtonValid(canDelete(selected), $('#delete'));
|
|
|
- });
|
|
|
-
|
|
|
- /* if(!projectObj.gljSpreed){
|
|
|
- projectObj.gljSpreed = gljView.buildSheet($("#gljSpread")[0]);
|
|
|
- that.loadGLJSpreadContextMenu();
|
|
|
- }*/
|
|
|
|
|
|
that.project.calcProgram = new CalcProgram(that.project);
|
|
|
that.project.calcProgram.compileAllTemps();
|
|
|
|
|
|
+ that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
|
|
|
+ that.mainController.showTreeData();
|
|
|
+ that.mainController.bind('refreshBaseActn', that.refreshBaseActn);
|
|
|
that.mainController.bind(TREE_SHEET_CONTROLLER.eventName.beforeTreeSelectedChange, that.beforeMainTreeSelectedChange);
|
|
|
- that.mainController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, function (node) {
|
|
|
- subViewObj.loadComments(node);
|
|
|
- gljOprObj.showDataIfRationSelect(node);
|
|
|
-
|
|
|
- // CSL.2017.07.25
|
|
|
- if (SubActiveSheetNameIs('JSCX')) {
|
|
|
- if (node.sourceType === that.project.Bills.getSourceType() || node.sourceType === that.project.Ration.getSourceType()) {
|
|
|
- calcProgramObj.showData(node);
|
|
|
- } else {
|
|
|
- calcProgramObj.clearData();
|
|
|
- };
|
|
|
- };
|
|
|
- //zhong 2017-9-1 特征及内容
|
|
|
- if(pageCCOprObj.active){
|
|
|
- pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];//mainSpread焦点单元格
|
|
|
- if(node.sourceType === that.project.Bills.getSourceType()){
|
|
|
- pageCCOprObj.setCacheAndShow(node);
|
|
|
- }
|
|
|
- else{
|
|
|
- pageCCOprObj.clearData();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ that.mainController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, that.treeSelectedChanged);
|
|
|
|
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.EditEnded, that.mainSpreadEditEnded);
|
|
|
|
|
@@ -323,7 +387,7 @@ var projectObj = {
|
|
|
cur = cur.parent;
|
|
|
}
|
|
|
this.mainController.refreshTreeNode(nodes, false);
|
|
|
- this.project.Bills.updateNodes(nodes);
|
|
|
+ this.project.Bills.updateNodes(nodes, true);
|
|
|
calc = null;
|
|
|
},
|
|
|
// 计算全部清单
|
|
@@ -421,4 +485,3 @@ $('#property_ok').click(function () {
|
|
|
projectObj.project.setCalcFlag(parseInt($("input[name='calcFlag']:checked").val()));
|
|
|
projectObj.calculateAll();
|
|
|
});
|
|
|
-
|