|
@@ -29,6 +29,7 @@ let contentOprObj = {
|
|
|
sheet.bind(EVENTS.ClipboardPasting, me.onClipboardPasting);
|
|
|
sheet.bind(EVENTS.ClipboardPasted, me.onClipboardPasted);
|
|
|
sheet.bind(EVENTS.SelectionChanged, me.onSelectionChanged);
|
|
|
+ workBook.bind(EVENTS.RangeChanged, me.onRangeChanged);
|
|
|
me.bindTools();
|
|
|
},
|
|
|
bindTools: function () {
|
|
@@ -202,6 +203,24 @@ let contentOprObj = {
|
|
|
args.sheet.setValue(args.row, args.col, 0);
|
|
|
}
|
|
|
},
|
|
|
+ onRangeChanged: function (sender, args) {
|
|
|
+ let me = contentOprObj;
|
|
|
+ let rangeCell = isDef(args.changedCells[0]) ? args.changedCells[0] : null;
|
|
|
+ if(!rangeCell){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let rangeData = isDef(me.currentCache[rangeCell.row]) ? me.currentCache[rangeCell.row] : null;
|
|
|
+ if(!rangeData){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(rangeCell.col === 0){//工作内容
|
|
|
+ me.updateContent(rangeData, '');
|
|
|
+ }
|
|
|
+ else if(rangeCell.col === 1){//输出
|
|
|
+ rangeData.isChecked = false;
|
|
|
+ me.save();
|
|
|
+ }
|
|
|
+ },
|
|
|
//复制粘贴
|
|
|
onClipboardPasting: function (sender, args) {
|
|
|
if(projectInfoObj.projectInfo.property.lockBills){
|
|
@@ -232,6 +251,7 @@ let contentOprObj = {
|
|
|
initSelection: function (row) {
|
|
|
let me = contentOprObj;
|
|
|
let disObj = {jobAdd: false, jobInsert: true, jobDel: true, jobUp: true, jobDown: true};
|
|
|
+ disObj.jobAdd = !pageCCOprObj.canAddType();
|
|
|
if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
disObj.jobAdd = true;
|
|
|
disObj.jobInsert = true;
|
|
@@ -286,7 +306,7 @@ let contentOprObj = {
|
|
|
//控制允许右键菜单在哪个位置出现
|
|
|
let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.workBook);
|
|
|
let sheet = me.workBook.getSheet(0);
|
|
|
- let addDis = pageCCOprObj.isBillsType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
+ let addDis = pageCCOprObj.canAddType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
if(target.hitTestType === 3){//在表格内&& typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
|
|
|
//清单锁定,不可用
|
|
|
if(projectInfoObj.projectInfo.property.lockBills){
|
|
@@ -581,27 +601,32 @@ let characterOprObj = {
|
|
|
},
|
|
|
updateCharacter: function (item, character, value) {
|
|
|
let me = characterOprObj;
|
|
|
- if(character){
|
|
|
+ if(character !== null){
|
|
|
item.character = character;
|
|
|
}
|
|
|
- if(value){
|
|
|
- let isExist = false;
|
|
|
- for(let i = 0, len = item.eigenvalue.length; i < len; i++){
|
|
|
- if(item.eigenvalue[i].value === value){
|
|
|
- isExist = true;
|
|
|
- break;
|
|
|
+ if(value !== null){
|
|
|
+ if(value !== ''){
|
|
|
+ let isExist = false;
|
|
|
+ for(let i = 0, len = item.eigenvalue.length; i < len; i++){
|
|
|
+ if(item.eigenvalue[i].value === value){
|
|
|
+ isExist = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //不存在,新增进eigenvalue,自动打勾输出
|
|
|
+ if(!isExist){
|
|
|
+ //更新selected
|
|
|
+ me.insertValue(item, value);
|
|
|
+ item.isChecked = true;
|
|
|
+ }
|
|
|
+ //存在,选择特征值,自动打勾输出
|
|
|
+ else{
|
|
|
+ me.changeSelected(item, value);
|
|
|
+ item.isChecked = true;
|
|
|
}
|
|
|
}
|
|
|
- //不存在,新增进eigenvalue,自动打勾输出
|
|
|
- if(!isExist){
|
|
|
- //更新selected
|
|
|
- me.insertValue(item, value);
|
|
|
- item.isChecked = true;
|
|
|
- }
|
|
|
- //存在,选择特征值,自动打勾输出
|
|
|
- else{
|
|
|
- me.changeSelected(item, value);
|
|
|
- item.isChecked = true;
|
|
|
+ else {
|
|
|
+ me.unsetSelected(item);
|
|
|
}
|
|
|
}
|
|
|
me.save();
|
|
@@ -633,33 +658,15 @@ let characterOprObj = {
|
|
|
onEditEnded: function (sender, args) {
|
|
|
let me = characterOprObj, characterTxt;
|
|
|
let preObj = me.currentCache.length > 0 ? me.currentCache[me.currentCache.length - 1] : null;
|
|
|
- if(args.editingText && args.editingText.toString().trim().length > 0){
|
|
|
- //更新
|
|
|
- if(args.row < me.currentCache.length){
|
|
|
- let thisCha = me.currentCache[args.row];
|
|
|
- if(args.col === 0){//特征
|
|
|
- me.updateCharacter(thisCha, args.editingText, null);
|
|
|
- }
|
|
|
- else if(args.col === 1){//特征值
|
|
|
- me.updateCharacter(thisCha, null, args.editingText);
|
|
|
- }
|
|
|
- }
|
|
|
- /*//新增
|
|
|
- else{
|
|
|
- if(args.col === 0){//特征
|
|
|
- me.insertCharacter(args.editingText, null);
|
|
|
- }
|
|
|
- else if(args.col === 1){//特征值
|
|
|
- me.insertCharacter(null, args.editingText);
|
|
|
- }
|
|
|
- }*/
|
|
|
- }
|
|
|
- else{//恢复
|
|
|
- if(args.col === 0){
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentCache.length > args.row ? me.currentCache[args.row].character + '' : '');
|
|
|
+ args.editingText = args.editingText ? args.editingText : '';
|
|
|
+ //更新
|
|
|
+ if(args.row < me.currentCache.length){
|
|
|
+ let thisCha = me.currentCache[args.row];
|
|
|
+ if(args.col === 0){//特征
|
|
|
+ me.updateCharacter(thisCha, args.editingText, null);
|
|
|
}
|
|
|
- else if(args.col === 1){
|
|
|
- args.sheet.setValue(args.row, args.col, me.currentSelectedValue ? me.currentSelectedValue + '' : '');
|
|
|
+ else if(args.col === 1){//特征值
|
|
|
+ me.updateCharacter(thisCha, null, args.editingText);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -696,13 +703,23 @@ let characterOprObj = {
|
|
|
if(!rangeData){
|
|
|
return;
|
|
|
}
|
|
|
- if(rangeCell.col === 1){//特征值
|
|
|
+ if(rangeCell.col === 0){//特征
|
|
|
+ me.updateCharacter(rangeData, '', null);
|
|
|
+ }
|
|
|
+ else if(rangeCell.col === 1){//特征值
|
|
|
+ me.updateCharacter(rangeData, null, '');
|
|
|
+ }
|
|
|
+ else if(rangeCell.col === 2){
|
|
|
+ rangeData.isChecked = false;
|
|
|
+ me.save();
|
|
|
+ }
|
|
|
+ /*if(rangeCell.col === 1){//特征值
|
|
|
rangeData.isChecked = false;
|
|
|
for(let value of rangeData.eigenvalue){
|
|
|
value.isSelected = false;
|
|
|
}
|
|
|
- }
|
|
|
- me.save();
|
|
|
+ }*/
|
|
|
+ //me.save();
|
|
|
},
|
|
|
//复选框控制输出
|
|
|
onButtonClicked: function (sender, args) {
|
|
@@ -731,12 +748,9 @@ let characterOprObj = {
|
|
|
}
|
|
|
},
|
|
|
initSelection: function (row) {
|
|
|
- console.log('enter');
|
|
|
let me = characterOprObj;
|
|
|
let disObj = {itemAdd: false, itemInsert: true, itemDel: true, itemUp: true, itemDown: true};
|
|
|
- if(projectObj.project.mainTree.selected.sourceType !== projectObj.project.Bills.getSourceType()){
|
|
|
- disObj.itemAdd = true;
|
|
|
- }
|
|
|
+ disObj.itemAdd = !pageCCOprObj.canAddType();
|
|
|
//清单锁定,不可用
|
|
|
if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
disObj.itemAdd = true;
|
|
@@ -780,7 +794,7 @@ let characterOprObj = {
|
|
|
//控制允许右键菜单在哪个位置出现
|
|
|
let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.workBook);
|
|
|
let sheet = me.workBook.getSheet(0);
|
|
|
- let addDis = pageCCOprObj.isBillsType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
+ let addDis = pageCCOprObj.canAddType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
if(target.hitTestType === 3){//在表格内 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
|
|
|
//清单锁定,则不可用
|
|
|
if(projectInfoObj.projectInfo.property.lockBills){
|
|
@@ -866,11 +880,12 @@ let pageCCOprObj = {
|
|
|
item.serialNo = count++;
|
|
|
}
|
|
|
},
|
|
|
- //获得造价书当前焦点行的类型:清单、定额
|
|
|
- isBillsType: function () {
|
|
|
+ //可以添加的类型:分项、补项、清单
|
|
|
+ canAddType: function () {
|
|
|
let rst = false;
|
|
|
let selectedNode = projectObj.mainController.tree.selected;
|
|
|
- if(selectedNode && selectedNode.sourceType === projectObj.project.Bills.getSourceType()){//为清单
|
|
|
+ if(selectedNode && selectedNode.sourceType === projectObj.project.Bills.getSourceType() &&
|
|
|
+ (selectedNode.data.type === billType.FX || selectedNode.data.type === billType.BX || selectedNode.data.type === billType.BILL)){//为清单
|
|
|
rst = true
|
|
|
}
|
|
|
return rst;
|