|
@@ -24,6 +24,7 @@ let contentOprObj = {
|
|
|
let sheet = workBook.getActiveSheet(), me = contentOprObj;
|
|
|
const EVENTS = GC.Spread.Sheets.Events;
|
|
|
workBook.bind(EVENTS.ButtonClicked, me.onButtonClicked);
|
|
|
+ sheet.bind(EVENTS.EditStarting, me.onEditStart);
|
|
|
sheet.bind(EVENTS.EditEnded, me.onEditEnded);
|
|
|
sheet.bind(EVENTS.ClipboardPasting, me.onClipboardPasting);
|
|
|
sheet.bind(EVENTS.ClipboardPasted, me.onClipboardPasted);
|
|
@@ -116,6 +117,7 @@ let contentOprObj = {
|
|
|
me.save(function () {
|
|
|
me.workBook.focus();
|
|
|
me.workBook.getSheet(0).setActiveCell(cell.row - 1, cell.col);
|
|
|
+ me.initSelection(cell.row - 1);
|
|
|
});
|
|
|
},
|
|
|
downMove: function (cell) {
|
|
@@ -130,6 +132,7 @@ let contentOprObj = {
|
|
|
me.save(function () {
|
|
|
me.workBook.focus();
|
|
|
me.workBook.getSheet(0).setActiveCell(cell.row + 1, cell.col);
|
|
|
+ me.initSelection(cell.row + 1);
|
|
|
});
|
|
|
},
|
|
|
deleteContent: function (rowIdx) {
|
|
@@ -160,6 +163,12 @@ let contentOprObj = {
|
|
|
const setting = projectObj.project.property.addRule !== undefined ? projectObj.project.property.addRule : getAddRuleSetting();
|
|
|
pageCCOprObj.setCharacterBySetting(selectedNode, setting, callback, contentOprObj);
|
|
|
},
|
|
|
+ onEditStart(sender, args){
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.cancel = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },
|
|
|
onEditEnded: function (sender, args) {
|
|
|
let me = contentOprObj;
|
|
|
if(me.setting.header[args.col].dataCode === 'isChecked'){
|
|
@@ -178,6 +187,10 @@ let contentOprObj = {
|
|
|
if(args.sheet.isEditing()){
|
|
|
args.sheet.endEdit(true);
|
|
|
}
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.sheet.setValue(args.row, args.col, 0);
|
|
|
+ return;
|
|
|
+ }
|
|
|
let isChecked = args.sheet.getValue(args.row, args.col);
|
|
|
if(me.currentCache.length > args.row){
|
|
|
me.currentCache[args.row].isChecked = isChecked;
|
|
@@ -191,6 +204,10 @@ let contentOprObj = {
|
|
|
},
|
|
|
//复制粘贴
|
|
|
onClipboardPasting: function (sender, args) {
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.cancel = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
if(args.cellRange.colCount > 1 || args.cellRange.col !== 0){
|
|
|
args.cancel = true;
|
|
|
}
|
|
@@ -211,21 +228,29 @@ let contentOprObj = {
|
|
|
if(args.newSelections && args.newSelections.length > 0){
|
|
|
me.initSelection(args.newSelections[0].row);
|
|
|
}
|
|
|
- me.initSelection(args.newSelections[0].row);
|
|
|
},
|
|
|
initSelection: function (row) {
|
|
|
let me = contentOprObj;
|
|
|
let disObj = {jobAdd: false, jobInsert: true, jobDel: true, jobUp: true, jobDown: true};
|
|
|
- if(row !== -1){
|
|
|
- //在表内
|
|
|
- if(row < me.currentCache.length){
|
|
|
- disObj.jobDel = false;
|
|
|
- disObj.jobInsert = false;
|
|
|
- if(row !== 0){
|
|
|
- disObj.jobUp = false;
|
|
|
- }
|
|
|
- if(row !== me.currentCache.length - 1){
|
|
|
- disObj.jobDown = false;
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ disObj.jobAdd = true;
|
|
|
+ disObj.jobInsert = true;
|
|
|
+ disObj.jobDel = true;
|
|
|
+ disObj.jobUp = true;
|
|
|
+ disObj.jobDown = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(row !== -1){
|
|
|
+ //在表内
|
|
|
+ if(row < me.currentCache.length){
|
|
|
+ disObj.jobDel = false;
|
|
|
+ disObj.jobInsert = false;
|
|
|
+ if(row !== 0){
|
|
|
+ disObj.jobUp = false;
|
|
|
+ }
|
|
|
+ if(row !== me.currentCache.length - 1){
|
|
|
+ disObj.jobDown = false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -263,46 +288,56 @@ let contentOprObj = {
|
|
|
let sheet = me.workBook.getSheet(0);
|
|
|
let addDis = pageCCOprObj.isBillsType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
if(target.hitTestType === 3){//在表格内&& typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
|
|
|
- if(typeof target.row !== 'undefined'){
|
|
|
- //控制按钮是否可用
|
|
|
- sheet.setActiveCell(target.row, target.col);
|
|
|
- if(!me.currentCache ||target.row >= me.currentCache.length){//右键定位在有数据的行,删除键才显示可用
|
|
|
- insertDis = true;
|
|
|
- delDis = true;
|
|
|
- downDis = true;
|
|
|
- upDis = true;
|
|
|
- }
|
|
|
- else{//有数据
|
|
|
- if(typeof target.col === 'undefined'){//定位不在表格内
|
|
|
+ //清单锁定,不可用
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ addDis = true;
|
|
|
+ insertDis = true;
|
|
|
+ delDis = true;
|
|
|
+ upDis = true;
|
|
|
+ downDis = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(typeof target.row !== 'undefined'){
|
|
|
+ //控制按钮是否可用
|
|
|
+ sheet.setActiveCell(target.row, target.col);
|
|
|
+ if(!me.currentCache ||target.row >= me.currentCache.length){//右键定位在有数据的行,删除键才显示可用
|
|
|
insertDis = true;
|
|
|
+ delDis = true;
|
|
|
downDis = true;
|
|
|
upDis = true;
|
|
|
- delDis = true;
|
|
|
}
|
|
|
- else{//定位在表格内
|
|
|
- if(target.row === me.currentCache.length -1){//定位在最后一行,不可下移
|
|
|
+ else{//有数据
|
|
|
+ if(typeof target.col === 'undefined'){//定位不在表格内
|
|
|
+ insertDis = true;
|
|
|
downDis = true;
|
|
|
- }
|
|
|
- if(target.row === 0){//定位在第一行,不可上移
|
|
|
upDis = true;
|
|
|
+ delDis = true;
|
|
|
+ }
|
|
|
+ else{//定位在表格内
|
|
|
+ if(target.row === me.currentCache.length -1){//定位在最后一行,不可下移
|
|
|
+ downDis = true;
|
|
|
+ }
|
|
|
+ if(target.row === 0){//定位在第一行,不可上移
|
|
|
+ upDis = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- insertDis = true;
|
|
|
- delDis = true;
|
|
|
- downDis = true;
|
|
|
- upDis = true;
|
|
|
+ else{
|
|
|
+ insertDis = true;
|
|
|
+ delDis = true;
|
|
|
+ downDis = true;
|
|
|
+ upDis = true;
|
|
|
+ }
|
|
|
}
|
|
|
me.refreshTools({jobAdd: addDis, jobInsert: insertDis, jobDel: delDis, jobUp: upDis, jobDown: downDis});
|
|
|
return {
|
|
|
callback: function(){},
|
|
|
items: {
|
|
|
- "insert": {name: "插入", disabled: insertDis, icon: "context-menu-icon context-menu-icon-add", callback: function (key, opt) {
|
|
|
+ "insert": {name: "插入", disabled: insertDis, icon: "fa-sign-in", callback: function (key, opt) {
|
|
|
me.insertContent(sheet, sheet.getActiveRowIndex(), '');
|
|
|
}},
|
|
|
- "add": {name: "添加", disabled: addDis, icon: "fa-sign-in", callback: function (key, opt) {
|
|
|
+ "add": {name: "添加", disabled: addDis, icon: "context-menu-icon context-menu-icon-add", callback: function (key, opt) {
|
|
|
me.insertContent(sheet, me.currentCache.length, '');
|
|
|
}},
|
|
|
"delete": {name: "删除", disabled: delDis, icon: "fa-remove", callback: function (key, opt) {
|
|
@@ -491,6 +526,7 @@ let characterOprObj = {
|
|
|
me.save(function () {
|
|
|
me.workBook.getSheet(0).setActiveCell(cell.row - 1, cell.col);
|
|
|
me.workBook.focus();
|
|
|
+ me.initSelection(cell.row - 1);
|
|
|
});
|
|
|
},
|
|
|
downMove: function (cell) {
|
|
@@ -505,6 +541,7 @@ let characterOprObj = {
|
|
|
me.save(function () {
|
|
|
me.workBook.getSheet(0).setActiveCell(cell.row + 1, cell.col);
|
|
|
me.workBook.focus();
|
|
|
+ me.initSelection(cell.row + 1);
|
|
|
});
|
|
|
},
|
|
|
deleteCharacter: function (rowIdx) {
|
|
@@ -585,6 +622,10 @@ let characterOprObj = {
|
|
|
},
|
|
|
onEditStart: function (sender, args) {
|
|
|
let me = characterOprObj;
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.cancel = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
if(args.col === 1){//改变选择的特征值
|
|
|
me.currentSelectedValue = me.currentCache.length > args.row ? me.getCurrentSelected(me.currentCache[args.row]) : null;
|
|
|
}
|
|
@@ -623,6 +664,9 @@ let characterOprObj = {
|
|
|
}
|
|
|
},
|
|
|
onClipboardPasting: function (sender, args) {
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.cancel = true;
|
|
|
+ }
|
|
|
if(args.cellRange.col + args.colCount - 1 > 1){
|
|
|
args.cancel = true;
|
|
|
}
|
|
@@ -666,6 +710,10 @@ let characterOprObj = {
|
|
|
if(args.sheet.isEditing()){
|
|
|
args.sheet.endEdit(true);
|
|
|
}
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ args.sheet.setValue(args.row, args.col, 0);
|
|
|
+ return;
|
|
|
+ }
|
|
|
let isChecked = args.sheet.getValue(args.row, args.col);
|
|
|
if(me.currentCache.length > args.row){
|
|
|
me.currentCache[args.row].isChecked = isChecked;
|
|
@@ -685,16 +733,26 @@ let characterOprObj = {
|
|
|
initSelection: function (row) {
|
|
|
let me = characterOprObj;
|
|
|
let disObj = {itemAdd: false, itemInsert: true, itemDel: true, itemUp: true, itemDown: true};
|
|
|
- if(row !== -1){
|
|
|
- //在表内
|
|
|
- if(row < me.currentCache.length){
|
|
|
- disObj.itemDel = false;
|
|
|
- disObj.itemInsert = false;
|
|
|
- if(row !== 0){
|
|
|
- disObj.itemUp = false;
|
|
|
- }
|
|
|
- if(row !== me.currentCache.length - 1){
|
|
|
- disObj.itemDown = false;
|
|
|
+ //清单锁定,不可用
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ disObj.itemAdd = true;
|
|
|
+ disObj.itemInsert = true;
|
|
|
+ disObj.itemDel = true;
|
|
|
+ disObj.itemUp = true;
|
|
|
+ disObj.itemDown = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(row !== -1){
|
|
|
+ //在表内
|
|
|
+ if(row < me.currentCache.length){
|
|
|
+ disObj.itemDel = false;
|
|
|
+ disObj.itemInsert = false;
|
|
|
+ if(row !== 0){
|
|
|
+ disObj.itemUp = false;
|
|
|
+ }
|
|
|
+ if(row !== me.currentCache.length - 1){
|
|
|
+ disObj.itemDown = false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -720,37 +778,47 @@ let characterOprObj = {
|
|
|
let sheet = me.workBook.getSheet(0);
|
|
|
let addDis = pageCCOprObj.isBillsType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
|
|
|
if(target.hitTestType === 3){//在表格内 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
|
|
|
- if(typeof target.row !== 'undefined'){
|
|
|
- //控制按钮是否可用
|
|
|
- sheet.setActiveCell(target.row, target.col);
|
|
|
- if(!me.currentCache ||target.row >= me.currentCache.length){//右键定位在有数据的行,删除键才显示可用
|
|
|
- insertDis = true;
|
|
|
- delDis = true;
|
|
|
- downDis = true;
|
|
|
- upDis = true;
|
|
|
- }
|
|
|
- else{//有数据
|
|
|
- if(typeof target.col === 'undefined'){//定位在表格外
|
|
|
+ //清单锁定,则不可用
|
|
|
+ if(projectInfoObj.projectInfo.property.lockBills){
|
|
|
+ addDis = true;
|
|
|
+ insertDis = true;
|
|
|
+ delDis = true;
|
|
|
+ upDis = true;
|
|
|
+ downDis = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(typeof target.row !== 'undefined'){
|
|
|
+ //控制按钮是否可用
|
|
|
+ sheet.setActiveCell(target.row, target.col);
|
|
|
+ if(!me.currentCache ||target.row >= me.currentCache.length){//右键定位在有数据的行,删除键才显示可用
|
|
|
insertDis = true;
|
|
|
+ delDis = true;
|
|
|
downDis = true;
|
|
|
upDis = true;
|
|
|
- delDis = true;
|
|
|
}
|
|
|
- else{
|
|
|
- if(target.row === me.currentCache.length -1){//定位在最后一行,不可下移
|
|
|
+ else{//有数据
|
|
|
+ if(typeof target.col === 'undefined'){//定位在表格外
|
|
|
+ insertDis = true;
|
|
|
downDis = true;
|
|
|
- }
|
|
|
- if(target.row === 0){//定位在第一行,不可上移
|
|
|
upDis = true;
|
|
|
+ delDis = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(target.row === me.currentCache.length -1){//定位在最后一行,不可下移
|
|
|
+ downDis = true;
|
|
|
+ }
|
|
|
+ if(target.row === 0){//定位在第一行,不可上移
|
|
|
+ upDis = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- insertDis = true;
|
|
|
- delDis = true;
|
|
|
- downDis = true;
|
|
|
- upDis = true;
|
|
|
+ else{
|
|
|
+ insertDis = true;
|
|
|
+ delDis = true;
|
|
|
+ downDis = true;
|
|
|
+ upDis = true;
|
|
|
+ }
|
|
|
}
|
|
|
me.refreshTools({itemAdd: addDis, itemInsert: insertDis, itemDel: delDis, itemUp: upDis, itemDown: downDis});
|
|
|
return {
|
|
@@ -874,8 +942,8 @@ let pageCCOprObj = {
|
|
|
sheet.autoFitRow(row);
|
|
|
}
|
|
|
}
|
|
|
- contentOprObj.initSelection(0);
|
|
|
- characterOprObj.initSelection(0);
|
|
|
+ contentOprObj.initSelection(contentOprObj.workBook.getSheet(0).getActiveRowIndex());
|
|
|
+ characterOprObj.initSelection(characterOprObj.workBook.getSheet(0).getActiveRowIndex());
|
|
|
sheet.resumeEvent();
|
|
|
sheet.resumePaint();
|
|
|
},
|
|
@@ -887,6 +955,16 @@ let pageCCOprObj = {
|
|
|
sheetCommonObj.cleanSheet(theCha.workBook.getSheet(0), theCha.setting, -1);
|
|
|
projectObj.mainSpread.focus(true);
|
|
|
},
|
|
|
+ //锁定/解锁清单后添加规则的改变
|
|
|
+ refreshRuleTools: function (lockBills) {
|
|
|
+ $('#use-to-current').removeClass('disabled');
|
|
|
+ $('#use-to-all').removeClass('disabled');
|
|
|
+ if(lockBills){
|
|
|
+ $('#use-to-current').addClass('disabled');
|
|
|
+ $('#use-to-all').addClass('disabled');
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
//更新特征及内容数据
|
|
|
updateCharacterContent: function (findSet, updateObj, txtObj, oprObj, callback) {
|
|
|
let me = pageCCOprObj, updateCol;
|