|
@@ -35,6 +35,7 @@ var projectObj = {
|
|
if($('#linkComments').hasClass('active')){
|
|
if($('#linkComments').hasClass('active')){
|
|
subViewObj.loadComments(node);
|
|
subViewObj.loadComments(node);
|
|
}
|
|
}
|
|
|
|
+ gljOprObj.mainTreeSelectedChange = true;
|
|
gljOprObj.showDataIfRationSelect(node);
|
|
gljOprObj.showDataIfRationSelect(node);
|
|
if (activeSubSheetIsCalcProgram())
|
|
if (activeSubSheetIsCalcProgram())
|
|
calcProgramObj.refreshCalcProgram(node, 3);
|
|
calcProgramObj.refreshCalcProgram(node, 3);
|
|
@@ -322,12 +323,12 @@ var projectObj = {
|
|
withinValidFixed = true;
|
|
withinValidFixed = true;
|
|
}
|
|
}
|
|
if(withinValidFixed && (node.data.type==billType.FX||node.data.type==billType.BX||(node.data.type==billType.BILL&&node.source.children.length==0))){//是分项、补项或者叶子清单的情况下才需要查找替换
|
|
if(withinValidFixed && (node.data.type==billType.FX||node.data.type==billType.BX||(node.data.type==billType.BILL&&node.source.children.length==0))){//是分项、补项或者叶子清单的情况下才需要查找替换
|
|
- if (value&&value.length === 9 && /^[\d]+$/.test(value)) {
|
|
|
|
|
|
+ if (value&&value.length === 9) {//&& /^[\d]+$/.test(value) 去掉全数字判断 07-31 zhang
|
|
stdMatchCode = value;
|
|
stdMatchCode = value;
|
|
formatCode = project.Bills.newFormatCode(stdMatchCode);
|
|
formatCode = project.Bills.newFormatCode(stdMatchCode);
|
|
searchStdBillsAndUpdate(stdMatchCode, formatCode);
|
|
searchStdBillsAndUpdate(stdMatchCode, formatCode);
|
|
return;
|
|
return;
|
|
- } else if (value&&value.length === 12 && /^[\d]+$/.test(value)) {
|
|
|
|
|
|
+ } else if (value&&value.length === 12 ) {//&& /^[\d]+$/.test(value) 去掉全数字判断 07-31 zhang
|
|
stdMatchCode = value.substr(0, 9);
|
|
stdMatchCode = value.substr(0, 9);
|
|
matchs = project.Bills.sameStdCode(stdMatchCode, node.data.code);
|
|
matchs = project.Bills.sameStdCode(stdMatchCode, node.data.code);
|
|
if (matchs.indexOf(value) === -1) {
|
|
if (matchs.indexOf(value) === -1) {
|
|
@@ -487,8 +488,7 @@ var projectObj = {
|
|
}
|
|
}
|
|
else if (node.sourceType === project.Ration.getSourceType()) {
|
|
else if (node.sourceType === project.Ration.getSourceType()) {
|
|
project.Ration.updateField(node.source, fieldName, value);
|
|
project.Ration.updateField(node.source, fieldName, value);
|
|
- };
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
if (colSetting.data.wordWrap) {
|
|
if (colSetting.data.wordWrap) {
|
|
this.mainSpread.getActiveSheet().autoFitRow(node.serialNo());
|
|
this.mainSpread.getActiveSheet().autoFitRow(node.serialNo());
|
|
}
|
|
}
|
|
@@ -583,6 +583,127 @@ var projectObj = {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ onClipboardPasting: function (sender, info){
|
|
|
|
+ info.cancel = true;
|
|
|
|
+
|
|
|
|
+ let rIdx = info.sheet.getActiveRowIndex();
|
|
|
|
+ let node = projectObj.project.mainTree.items[rIdx];
|
|
|
|
+ if (!node.parent){
|
|
|
|
+ hintBox.infoBox('系统提示','大项费用不允许粘贴!', 1);
|
|
|
|
+ return false;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ let colName = projectObj.project.projSetting.main_tree_col.cols[info.cellRange.col].data.field;
|
|
|
|
+ if (colName == 'code'){
|
|
|
|
+ function getNodeType(node) {
|
|
|
|
+ let t = null;
|
|
|
|
+ if (calcTools.isRationItem(node))
|
|
|
|
+ t = 1
|
|
|
|
+ else if (calcTools.isBill(node)){
|
|
|
|
+ if (calcTools.isBill_FB(node))
|
|
|
|
+ t = 2
|
|
|
|
+ else if (calcTools.isBill_FX(node) || calcTools.isBill_BX(node))
|
|
|
|
+ t = 3
|
|
|
|
+ else if (calcTools.isBill_BILL(node))
|
|
|
|
+ t = 4;
|
|
|
|
+ };
|
|
|
|
+ return t;
|
|
|
|
+ };
|
|
|
|
+ function getPasteTextArr(info) {
|
|
|
|
+ let copyText = info.pasteData.text.trim();
|
|
|
|
+ if (!copyText) return null;
|
|
|
|
+ let rows = copyText.split('\r\n');
|
|
|
|
+ let rstArr = [];
|
|
|
|
+ for (let row of rows) {
|
|
|
|
+ row = row.trim();
|
|
|
|
+ row = row.split('\t');
|
|
|
|
+ rstArr.push(row);
|
|
|
|
+ }
|
|
|
|
+ return rstArr;
|
|
|
|
+ };
|
|
|
|
+ function getPasteNodes(count, nodeType) {
|
|
|
|
+ let nodesArr = [];
|
|
|
|
+ let curNode = null;
|
|
|
|
+ for (let i = rIdx; i < rIdx + count; i++) {
|
|
|
|
+ curNode = projectObj.project.mainTree.items[i];
|
|
|
|
+ if (curNode && calcTools.isSameTypeNode(curNode, node)){
|
|
|
|
+ nodesArr.push(curNode);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ curNode = projectObj.project.mainTree.items[i - 1];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ if (nodesArr.length < count){
|
|
|
|
+ if (projectObj.project.mainTree.selected != curNode)
|
|
|
|
+ projectObj.project.mainTree.selected = curNode;
|
|
|
|
+
|
|
|
|
+ let add = count - nodesArr.length;
|
|
|
|
+ for (let i = 0; i < add; i++) {
|
|
|
|
+ switch (nodeType) {
|
|
|
|
+ case 1:
|
|
|
|
+ curNode = projectObj.project.Ration.addNewRation(null,rationType.ration,null,true);
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ curNode = ProjectController.addFB(projectObj.project, projectObj.mainController);
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ curNode = ProjectController.addFX(projectObj.project, projectObj.mainController);
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ curNode = ProjectController.addBills(projectObj.project, projectObj.mainController);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!curNode){
|
|
|
|
+ hintBox.infoBox('系统提示','插入新结点出错,粘贴失败!', 1);
|
|
|
|
+ return nodesArr;
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ nodesArr.push(curNode);
|
|
|
|
+ if (projectObj.project.mainTree.selected != curNode)
|
|
|
|
+ projectObj.project.mainTree.selected = curNode;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ return nodesArr;
|
|
|
|
+ };
|
|
|
|
+ function doPaste(datas, nodes, nodeType) {
|
|
|
|
+ if (nodeType == 1){ // 批量粘贴定额有严重的异步问题,这里要和清单分开处理
|
|
|
|
+ let updateRationCodes = [];
|
|
|
|
+ for (let i = 0; i < datas.length; i++) {
|
|
|
|
+ let ptNode = nodes[i];
|
|
|
|
+ let code = datas[i][0];
|
|
|
|
+ updateRationCodes.push({'node':ptNode, value:code});
|
|
|
|
+ }
|
|
|
|
+ projectObj.project.Ration.updateRationCodes(updateRationCodes);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ for (let i = 0; i < datas.length; i++) {
|
|
|
|
+ let ptNode = nodes[i];
|
|
|
|
+ let code = datas[i][0];
|
|
|
|
+ if (!(ptNode.data && ptNode.data.code && ptNode.data.code.sameText(code))){
|
|
|
|
+ projectObj.updateCode(ptNode, code);
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ projectObj.mainController.refreshTreeNode(nodes);
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ let tagType = getNodeType(node);
|
|
|
|
+ if (!tagType){
|
|
|
|
+ hintBox.infoBox('系统提示', '该树结点类型不支持从项目编码列粘贴!', 1);
|
|
|
|
+ return false;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ let datas = getPasteTextArr(info);
|
|
|
|
+ if (!datas) return;
|
|
|
|
+ let pasteNodes = getPasteNodes(datas.length, tagType);
|
|
|
|
+ doPaste(datas, pasteNodes, tagType);
|
|
|
|
+ };
|
|
|
|
+ },
|
|
mainSpreadEditEnded: function (sender, info) {
|
|
mainSpreadEditEnded: function (sender, info) {
|
|
console.log('enterEDEnd');
|
|
console.log('enterEDEnd');
|
|
let project = projectObj.project;
|
|
let project = projectObj.project;
|
|
@@ -748,6 +869,8 @@ var projectObj = {
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, that.onButtonClick);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, that.onButtonClick);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.CellDoubleClick, that.onCellDoubleClick);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.CellDoubleClick, that.onCellDoubleClick);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.ColumnWidthChanged, that.onColumnWidthChanged);
|
|
that.mainSpread.bind(GC.Spread.Sheets.Events.ColumnWidthChanged, that.onColumnWidthChanged);
|
|
|
|
+ that.mainSpread.bind(GC.Spread.Sheets.Events.ClipboardPasting, that.onClipboardPasting);
|
|
|
|
+
|
|
//let loadOtherStartTime = +new Date();
|
|
//let loadOtherStartTime = +new Date();
|
|
if(!projectReadOnly){
|
|
if(!projectReadOnly){
|
|
that.loadMainSpreadContextMenu();
|
|
that.loadMainSpreadContextMenu();
|