|
@@ -2,7 +2,8 @@
|
|
|
* Created by vian on 2017/4/12.
|
|
|
*/
|
|
|
var dbController = {
|
|
|
- insert: function(controller){
|
|
|
+ insert: function(controller, btn){
|
|
|
+ tools.btnClose(btn);
|
|
|
if(controller.tree.items.length === 0){
|
|
|
controller.tree.maxNodeID(0);
|
|
|
let newNodeId = controller.tree.newNodeID();
|
|
@@ -11,6 +12,7 @@ var dbController = {
|
|
|
controller.tree.selected.jobs = new Array();
|
|
|
controller.tree.selected.items = new Array();
|
|
|
controller.sheet.setTag(controller.tree.selected.serialNo(), 0, newNodeId);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
@@ -25,6 +27,7 @@ var dbController = {
|
|
|
controller.tree.selected.items = new Array();
|
|
|
controller.sheet.setTag(controller.tree.selected.serialNo(), 0, newNodeId);
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
@@ -38,12 +41,14 @@ var dbController = {
|
|
|
controller.tree.selected.items = new Array();
|
|
|
controller.sheet.setTag(controller.tree.selected.serialNo(), 0, newNodeId);
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- upLevel: function(controller){
|
|
|
+ upLevel: function(controller, btn){
|
|
|
+ tools.btnClose(btn);
|
|
|
var node = controller.tree.selected;
|
|
|
var ids = [];
|
|
|
var updateData = [];
|
|
@@ -91,13 +96,15 @@ var dbController = {
|
|
|
console.log(`enter upL`);
|
|
|
controller.upLevel();
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
//rechargeController.createRecharge(controller.tree.selected);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- downLevel: function(controller){
|
|
|
+ downLevel: function(controller, btn){
|
|
|
+ tools.btnClose(btn);
|
|
|
var node = controller.tree.selected;
|
|
|
var updateData = [];
|
|
|
if(node){
|
|
@@ -126,13 +133,15 @@ var dbController = {
|
|
|
billsAjax.downLevel(billsLibId, updateData, function(){
|
|
|
controller.downLevel();
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
//rechargeController.createRecharge(controller.tree.selected);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- delete: function(controller, totalJobs, totalItems){
|
|
|
+ delete: function(controller, btn, totalJobs, totalItems){
|
|
|
+ tools.btnClose(btn);
|
|
|
var node = controller.tree.selected;
|
|
|
var deleteIds = [];
|
|
|
var getDeleteIds = function(node){
|
|
@@ -178,11 +187,13 @@ var dbController = {
|
|
|
sheetDatas = tools.getsheetDatas(jobsSheet, 'jobs');
|
|
|
sheetItemsDatas = tools.getsheetDatas(itemsSheet, 'items');
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
//to solve refresh after deleted
|
|
|
});
|
|
|
},
|
|
|
|
|
|
- upMove: function(controller){
|
|
|
+ upMove: function(controller, btn){
|
|
|
+ tools.btnClose(btn);
|
|
|
var node = controller.tree.selected;
|
|
|
var updateData = [];
|
|
|
if(node){
|
|
@@ -207,12 +218,14 @@ var dbController = {
|
|
|
billsAjax.upMove(billsLibId, updateData, function(){
|
|
|
controller.upMove();
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- downMove: function(controller){
|
|
|
+ downMove: function(controller, btn){
|
|
|
+ tools.btnClose(btn);
|
|
|
var node = controller.tree.selected;
|
|
|
var updateData = [];
|
|
|
if(node){
|
|
@@ -240,6 +253,7 @@ var dbController = {
|
|
|
billsAjax.downMove(billsLibId, updateData);
|
|
|
controller.downMove();
|
|
|
sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ tools.btnAction(btn);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -253,10 +267,12 @@ var dbController = {
|
|
|
if(args.col === idx){
|
|
|
field = col.data.field;
|
|
|
node.data[field] = args.editingText;
|
|
|
+ sheetBillsDatas.datasIdx['rowIdx'+ args.row][field] = args.editingText;
|
|
|
+ console.log(sheetBillsDatas);
|
|
|
}
|
|
|
});
|
|
|
billsAjax.updateBills(billsLibId, updateId, field, args.editingText);
|
|
|
- sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
+ //sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
|
|
|
}
|
|
|
else {
|
|
|
args.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
|
|
@@ -401,6 +417,16 @@ var createObj = {
|
|
|
};
|
|
|
|
|
|
var tools = {
|
|
|
+ btnClose: function (btn) {
|
|
|
+ btn.css("opacity", "0.2");
|
|
|
+ btn.addClass("disabled");
|
|
|
+ btn.attr('doing', true);
|
|
|
+ },
|
|
|
+ btnAction: function (btn) {
|
|
|
+ btn.css("opacity", "");
|
|
|
+ btn.removeClass("disabled");
|
|
|
+ btn.removeAttr('doing');
|
|
|
+ },
|
|
|
isExist: function (totalArr, field, newData, orgData){
|
|
|
var isExist = false;
|
|
|
if(totalArr.length > 0){
|
|
@@ -447,9 +473,15 @@ var tools = {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ isEmptyObj: function(obj){
|
|
|
+ let t;
|
|
|
+ for(t in obj)
|
|
|
+ return !1;
|
|
|
+ return !0;
|
|
|
+ },
|
|
|
+
|
|
|
reSetCell: function(sheet, rowIdx, colIdx, value, id){
|
|
|
if(value && colIdx!== null){
|
|
|
- console.log(`enterResetCell`);
|
|
|
sheet.getCell(rowIdx, colIdx, GC.Spread.Sheets.SheetArea.viewport).value(value);
|
|
|
}
|
|
|
sheet.setTag(rowIdx, 0, id);
|
|
@@ -493,21 +525,45 @@ var tools = {
|
|
|
const colLen = 4;
|
|
|
let orgRow = args.cellRange.row, orgCol = args.cellRange.col, rowCount = args.cellRange.rowCount, colCount = args.cellRange.colCount;
|
|
|
let maxRow = orgRow + rowCount - 1, maxCol = orgCol + colCount -1;
|
|
|
- for(let i=orgRow; i<= maxRow; i++){
|
|
|
+ for(let i =orgRow; i<=maxRow; i++){
|
|
|
+ let validData = {};
|
|
|
+ for(let j= orgCol; j<=maxCol; j++){
|
|
|
+ let value = sheet.getValue(i, j);
|
|
|
+ if(value){
|
|
|
+ setting.cols.forEach(function(col, colIdx){
|
|
|
+ if(colIdx === j){
|
|
|
+ validData[col.data.field] = value;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!tools.isEmptyObj(validData)){
|
|
|
+ validDatas.push(validData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //---------------------------------------
|
|
|
+ /*for(let i=orgRow; i<= maxRow; i++){
|
|
|
if(tools.getValidRow(sheet, i)){
|
|
|
+ console.log(`validRow: ${i}`);
|
|
|
let validData = {code: '', name: '', unit: '', ruleText: ''};
|
|
|
- for(var j=0; j<colLen; j++){
|
|
|
+ for(var j=orgCol; j<=maxCol; j++){
|
|
|
let field;
|
|
|
setting.cols.forEach(function(col, colIdx){
|
|
|
if(colIdx === j){
|
|
|
field = col.data.field;
|
|
|
+ if(sheet.getValue(i, j)){
|
|
|
+ validData[field] = sheet.getValue(i, j);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
- validData[field] = sheet.getValue(i, j);
|
|
|
+ //validData[field] = sheet.getValue(i, j);
|
|
|
}
|
|
|
validDatas.push(validData);
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
return validDatas;
|
|
|
},
|
|
|
|
|
@@ -531,38 +587,6 @@ var tools = {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- /*delteSheets: function(controller, totalJobs, totalItems, jobsSheet, itemsSheet){
|
|
|
- var delJobs = controller.tree.selected.jobs;
|
|
|
- var delItems = controller.tree.selected.items;
|
|
|
- var delJobsIds = [];
|
|
|
- var delItemsIds = [];
|
|
|
- if(delJobs.length > 0){
|
|
|
- delJobs.forEach(function(obj){
|
|
|
- obj.job.count --;
|
|
|
- if(obj.job.count <=0){
|
|
|
- totalJobs.jobsArr.splice(totalJobs.jobsArr.indexOf(obj), 1);
|
|
|
- delJobsIds.push(obj.job.data.id)
|
|
|
- }
|
|
|
- });
|
|
|
- jobsAjax.deleteJobContent(delJobsIds);
|
|
|
- tools.clearData(jobsSheet);
|
|
|
- tools.orderReshowData(jobsSheet, controller.tree.selected.jobs, jobsSetting, 'job', true);
|
|
|
- }
|
|
|
- if(delItems.length > 0){
|
|
|
- delItems.forEach(function(obj){
|
|
|
- obj.item.count --;
|
|
|
- if(obj.item.count <=0){
|
|
|
- totalItems.itemsArr.splice(totalItems.itemsArr.indexOf(obj), 1);
|
|
|
- delItemsIds.push(obj.item.data.id)
|
|
|
- }
|
|
|
- });
|
|
|
- itemsAjax.deleteItemCharacter(delItemsIds);
|
|
|
- tools.clearData(itemsSheet);
|
|
|
- tools.orderReshowData(itemsSheet, controller.tree.selected.items, itemsSetting, 'item', true);
|
|
|
- }
|
|
|
- controller.delete();
|
|
|
-
|
|
|
- },*/
|
|
|
delteSheets: function(controller, totalJobs, totalItems, jobsSheet, itemsSheet){
|
|
|
var delJobs = controller.tree.selected.jobs;
|
|
|
var delItems = controller.tree.selected.items;
|
|
@@ -698,7 +722,13 @@ var tools = {
|
|
|
reshowValue: function(sheet, arr, setting, isResort){
|
|
|
tools.clearData(sheet);
|
|
|
if(isResort){
|
|
|
- tools.resort(arr, 'code', true);
|
|
|
+ //tools.resort(arr, 'code', true);
|
|
|
+ function myCompareCode(a, b){
|
|
|
+ let valA = a.code,
|
|
|
+ valB = b.code;
|
|
|
+ return valA- valB;
|
|
|
+ }
|
|
|
+ arr.sort(myCompareCode);
|
|
|
}
|
|
|
if(arr.length > 0){
|
|
|
var length = arr.length;
|
|
@@ -807,8 +837,9 @@ var tools = {
|
|
|
getsheetDatas: function(sheet, classify, controller){
|
|
|
let rowCount = sheet.getRowCount();
|
|
|
const colIdx = 1;
|
|
|
- let sheetDatas = [];
|
|
|
+ let sheetDatas;
|
|
|
if(classify === 'total'){
|
|
|
+ sheetDatas = [];
|
|
|
for(let i=0; i<rowCount; i++){
|
|
|
for(let j=0; j<= 1; j++){
|
|
|
let data = sheet.getCell(i, j).value, id = sheet.getTag(i, j);
|
|
@@ -825,14 +856,17 @@ var tools = {
|
|
|
}
|
|
|
}
|
|
|
else if(classify === 'bills'){
|
|
|
+ sheetDatas = {datasIdx: {}, datas: []};
|
|
|
for(let i= 0; i< controller.tree.items.length; i++){
|
|
|
let code = sheet.getValue(i, 0), name = sheet.getValue(i, 1),
|
|
|
unit = sheet.getValue(i, 2), ruleText = sheet.getValue(i, 3);
|
|
|
let data = {code: code, name: name, unit: unit, ruleText: ruleText, rowIdx: i};
|
|
|
- sheetDatas.push(data);
|
|
|
+ sheetDatas.datas.push(data);
|
|
|
+ sheetDatas.datasIdx['rowIdx' + i] = data;
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
+ sheetDatas = [];
|
|
|
for(let i=0; i<rowCount; i++){
|
|
|
let data = sheet.getCell(i, colIdx).value(), id = sheet.getTag(i, colIdx);
|
|
|
if(data && id){
|
|
@@ -1017,7 +1051,7 @@ var tools = {
|
|
|
},
|
|
|
|
|
|
encapTotalJobsDatas: function(sheet, totalJobs, uncrossedDatas, crossedDatas){
|
|
|
- let pasteDatas
|
|
|
+ let pasteDatas;
|
|
|
let rebuildArr =[];
|
|
|
if(crossedDatas.length > 0){
|
|
|
for(let i=0; i< crossedDatas.length; i++){
|
|
@@ -1058,16 +1092,27 @@ var tools = {
|
|
|
return -1;
|
|
|
return 0;
|
|
|
}
|
|
|
- rebuildArr.sort(myCompare);
|
|
|
- }
|
|
|
- rebuildArr.forEach(function(data){
|
|
|
- if(data.type !== 'CreateT' && data.field === 'content' ){
|
|
|
- console.log(`!=CT&& content content: ${data.data}`);
|
|
|
- maxJobsNumber++;
|
|
|
- let code = maxJobsNumber;
|
|
|
- data.code = code;
|
|
|
+ function myCompareCode(a, b){
|
|
|
+ if(a.code > b.code)
|
|
|
+ return -1;
|
|
|
+ if(a.code < b.code)
|
|
|
+ return 1;
|
|
|
+ return 0;
|
|
|
}
|
|
|
- });
|
|
|
+ if(rebuildArr.length > 0){
|
|
|
+ rebuildArr.sort(myCompareCode);
|
|
|
+ maxJobsNumber = maxJobsNumber + 1 > rebuildArr[0].code ? maxJobsNumber : rebuildArr[0].code;
|
|
|
+ rebuildArr.forEach(function(data){
|
|
|
+ if(data.type !== 'CreateT' && data.field === 'content' ){
|
|
|
+ maxJobsNumber++;
|
|
|
+ let code = maxJobsNumber;
|
|
|
+ data.code = code;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //rebuildArr.sort(myCompare);
|
|
|
+ }
|
|
|
+ //rebuildArr.sort(myCompare);
|
|
|
pasteDatas = {
|
|
|
updateDatas: crossedDatas,
|
|
|
createDatas: rebuildArr
|
|
@@ -1075,7 +1120,7 @@ var tools = {
|
|
|
return pasteDatas;
|
|
|
},
|
|
|
encapTotalItemsDatas: function(sheet, totalItems, uncrossedDatas, crossedDatas){
|
|
|
- let pasteDatas
|
|
|
+ let pasteDatas;
|
|
|
let rebuildArr =[];
|
|
|
if(crossedDatas.length > 0){
|
|
|
for(let i=0; i< crossedDatas.length; i++){
|
|
@@ -1115,15 +1160,27 @@ var tools = {
|
|
|
return -1;
|
|
|
return 0;
|
|
|
}
|
|
|
- rebuildArr.sort(myCompare);
|
|
|
- }
|
|
|
- rebuildArr.forEach(function(data){
|
|
|
- if(data.type !== 'CreateT' && data.field === 'content' ){
|
|
|
- maxItemsNumber ++;
|
|
|
- let code = maxItemsNumber;
|
|
|
- data.code = code;
|
|
|
+ function myCompareCode(a, b){
|
|
|
+ if(a.code > b.code)
|
|
|
+ return -1;
|
|
|
+ if(a.code < b.code)
|
|
|
+ return 1;
|
|
|
+ return 0;
|
|
|
}
|
|
|
- });
|
|
|
+ //rebuildArr.sort(myCompare);
|
|
|
+ if(rebuildArr.length > 0){
|
|
|
+ rebuildArr.sort(myCompareCode);
|
|
|
+ maxItemsNumber = maxItemsNumber + 1 > rebuildArr[0].code ? maxItemsNumber : rebuildArr[0].code;
|
|
|
+ rebuildArr.forEach(function(data){
|
|
|
+ if(data.type !== 'CreateT' && data.field === 'content' ){
|
|
|
+ maxItemsNumber ++;
|
|
|
+ let code = maxItemsNumber;
|
|
|
+ data.code = code;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // rebuildArr.sort(myCompare);
|
|
|
pasteDatas = {
|
|
|
updateDatas: crossedDatas,
|
|
|
createDatas: rebuildArr
|
|
@@ -1144,7 +1201,7 @@ var tools = {
|
|
|
if(crossedDatas.length > 0){
|
|
|
for(let i=0; i< crossedDatas.length; i++){
|
|
|
let field = crossedDatas[i].field, data = crossedDatas[i].data;
|
|
|
- let isRepeat = tools.isRepeat(valuesArr, field, data, 'document');
|
|
|
+ let isRepeat = tools.isRepeat(valuesArr, field, data, 'document', 'value');
|
|
|
if(isRepeat){
|
|
|
crossedDatas.splice(i--, 1);
|
|
|
}
|
|
@@ -1164,7 +1221,7 @@ var tools = {
|
|
|
if(uncrossedDatas.length > 0){
|
|
|
for(let i=0; i< uncrossedDatas.length; i++){
|
|
|
let field = uncrossedDatas[i].field;
|
|
|
- let isRepeat = tools.isRepeat(valuesArr, field, uncrossedDatas[i].data, 'document');
|
|
|
+ let isRepeat = tools.isRepeat(valuesArr, field, uncrossedDatas[i].data, 'document', 'value');
|
|
|
if(isRepeat){
|
|
|
uncrossedDatas.splice(i--, 1);
|
|
|
}
|
|
@@ -1176,12 +1233,22 @@ var tools = {
|
|
|
}
|
|
|
}
|
|
|
rebuildArr = tools.rebuildArr(uncrossedDatas, 'create');
|
|
|
- rebuildArr.sort(myCompare);
|
|
|
+ //rebuildArr.sort(myCompare);
|
|
|
+ function myCompareCode(a, b){
|
|
|
+ let valA = a.code,
|
|
|
+ valB = b.code;
|
|
|
+ return valB- valA;
|
|
|
+ }
|
|
|
+ rebuildArr.sort(myCompareCode);
|
|
|
+ console.log(`rebuildArr`);
|
|
|
+ console.log(rebuildArr);
|
|
|
+ let newCode = valueController.getCode(totalItems, selectedId);
|
|
|
+ newCode = newCode > rebuildArr[0].code ? newCode : rebuildArr[0].code + 1;
|
|
|
for(let i=0; i< rebuildArr.length; i++){
|
|
|
- let newCode = valueController.getCode(totalItems, selectedId);
|
|
|
rebuildArr[i].itemId = selectedId;
|
|
|
if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'value'){
|
|
|
rebuildArr[i].code = newCode;
|
|
|
+ newCode++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1430,11 +1497,13 @@ let pasteController = {
|
|
|
newItemData = {id: datas[i].newItemId, content: datas[i].content, code: datas[i].code};
|
|
|
newItem = createObj.newItem(newItemData);
|
|
|
totalItems.itemsArr.push(newItem);
|
|
|
+ totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
|
|
|
}
|
|
|
if(datas[i].type !== CreateT && datas[i].field === 'content'){
|
|
|
newItemData = {id: datas[i].newItemId, content: datas[i].data, code: datas[i].code};
|
|
|
newItem = createObj.newItem(newItemData);
|
|
|
totalItems.itemsArr.push(newItem);
|
|
|
+ totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
|
|
|
}
|
|
|
if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
|
|
|
maxItemsNumber++;
|
|
@@ -1442,6 +1511,7 @@ let pasteController = {
|
|
|
newItemData = {id: datas[i].newItemId, content: '', code: datas[i].data};
|
|
|
newItem = createObj.newItem(newItemData);
|
|
|
totalItems.itemsArr.push(newItem);
|
|
|
+ totalItems.items[totalItems.prefix + datas[i].newItemId] = newItem;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1491,10 +1561,10 @@ let pasteController = {
|
|
|
|
|
|
}
|
|
|
if(datas[i].type !== 'CreateT' && datas[i].field === 'value'){
|
|
|
- let newValueData = {value: datas[i].data, code: datas.code};
|
|
|
+ let newValueData = {value: datas[i].data, code: datas[i].code};
|
|
|
valuesArr.push(newValueData);
|
|
|
}
|
|
|
- if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'code'){
|
|
|
+ if(datas[i].type !== 'CreateT' && datas[i].field === 'code'){
|
|
|
let newValueData = {value: '', code: datas[i].data};
|
|
|
valuesArr.push(newValueData);
|
|
|
}
|
|
@@ -2016,7 +2086,6 @@ var totalItemsController = {
|
|
|
setting.cols.forEach(function(col, colIdx){
|
|
|
if(args.col === colIdx){
|
|
|
field = col.data.field;
|
|
|
- console.log('colIdx' + colIdx);
|
|
|
}
|
|
|
});
|
|
|
isRepeat = tools.isRepeat(totalItems.itemsArr, field, newData, 'reference', null);
|