|
@@ -344,7 +344,9 @@ var tools = {
|
|
|
},
|
|
|
isRepeat: function(arr, field, newData, ref){
|
|
|
var isRepeat = false;
|
|
|
+ console.log(`enterIsR`);
|
|
|
if(arr){
|
|
|
+ console.log(`enter ifArr`);
|
|
|
arr.forEach(function(item){
|
|
|
if(ref === 'reference' && item.data[field] == newData){
|
|
|
isRepeat = true;
|
|
@@ -365,6 +367,7 @@ var tools = {
|
|
|
|
|
|
reSetCell: function(sheet, rowIdx, colIdx, value, id){
|
|
|
if(value && colIdx){
|
|
|
+ console.log(`enterResetCell`);
|
|
|
sheet.getCell(rowIdx, colIdx, GC.Spread.Sheets.SheetArea.viewport).value(value);
|
|
|
}
|
|
|
sheet.setTag(rowIdx, 0, id);
|
|
@@ -434,6 +437,7 @@ var tools = {
|
|
|
},
|
|
|
|
|
|
resort: function(arr, attr, isValue){
|
|
|
+ console.log(`enterresort`);
|
|
|
//var arr = node.jobs;
|
|
|
function compare(attr){
|
|
|
return function (a, b){
|
|
@@ -451,7 +455,12 @@ var tools = {
|
|
|
}
|
|
|
arr.sort(compare(attr));
|
|
|
},
|
|
|
+ resortArr: function(arr, attr){
|
|
|
+
|
|
|
+ },
|
|
|
reshowData: function(sheet, arr, setting, isResort){
|
|
|
+ let time = new Date().getTime();
|
|
|
+ console.log(`enterreshowData ${time}`);
|
|
|
tools.clearData(sheet);
|
|
|
if(isResort){
|
|
|
tools.resort(arr, 'code', false);
|
|
@@ -536,9 +545,561 @@ var tools = {
|
|
|
window.location.href = newHref;
|
|
|
}
|
|
|
});
|
|
|
+ },
|
|
|
+
|
|
|
+ uniqArr: function (arr) {
|
|
|
+ let newArr = [];
|
|
|
+ for(let i=0; i<arr.length; i++){
|
|
|
+ if(newArr.indexOf(arr[i]) === -1){
|
|
|
+ newArr.push(arr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return newArr;
|
|
|
+ },
|
|
|
+
|
|
|
+ getsheetDatas: function(sheet, classify){
|
|
|
+ let rowCount = sheet.getRowCount();
|
|
|
+ const colIdx = 1;
|
|
|
+ let sheetDatas = [];
|
|
|
+ if(classify === 'total'){
|
|
|
+ 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);
|
|
|
+ if(data && id){
|
|
|
+ let unitData ={
|
|
|
+ rowIdx: i,
|
|
|
+ colIdx: j,
|
|
|
+ data: data,
|
|
|
+ id: id
|
|
|
+ };
|
|
|
+ sheetDatas.push(unitData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ for(let i=0; i<rowCount; i++){
|
|
|
+ let data = sheet.getCell(i, colIdx).value(), id = sheet.getTag(i, colIdx);
|
|
|
+ if(data && id){
|
|
|
+ let rowData = {
|
|
|
+ rowIdx: i,
|
|
|
+ data: data,
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ sheetDatas.push(rowData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sheetDatas;
|
|
|
+ },
|
|
|
+
|
|
|
+ encapData: function(uncrossedDatas, crossedDatas, controller, totalJobs){
|
|
|
+ const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
|
|
|
+ let updateDatas = [];
|
|
|
+ let createDatas = [];
|
|
|
+ let createNewData = [];
|
|
|
+ let createExData = [];
|
|
|
+ let updateNewData = [];
|
|
|
+ let updateExData = [];
|
|
|
+ let nodeId = controller.tree.selected.getID();
|
|
|
+ uncrossedDatas.forEach(data => {
|
|
|
+ let cnDataObj, ceDataObj, content, jobId;
|
|
|
+ let isExisit = tools.isExist(totalJobs.jobsArr, 'content', data, null);
|
|
|
+ let isRepeat = tools.isRepeat(controller.tree.selected.jobs, 'content', data, 'reference');
|
|
|
+ if(isExisit && !isRepeat){
|
|
|
+ totalJobs.jobsArr.forEach(job => {
|
|
|
+ if(data === job.data.content){
|
|
|
+ jobId = job.data.id;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ceDataObj= {
|
|
|
+ newData: data,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ jobId: jobId,
|
|
|
+ type: CreateExist
|
|
|
+ };
|
|
|
+ createDatas.push(ceDataObj);
|
|
|
+ }
|
|
|
+ if(!isExisit){
|
|
|
+ maxJobsNumber++;
|
|
|
+ //currentCountId++;
|
|
|
+ cnDataObj = {
|
|
|
+ id: maxJobsNumber,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newData: data,
|
|
|
+ code: maxJobsNumber,
|
|
|
+ type: CreateNew
|
|
|
+ };
|
|
|
+ createDatas.push(cnDataObj);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ crossedDatas.forEach(cData => {
|
|
|
+ let ueObj, unObj, newJobId;
|
|
|
+ let isExisit = tools.isExist(totalJobs.jobsArr, 'content', cData.newData, null);
|
|
|
+ let isRepeat = tools.isRepeat(controller.tree.selected.jobs, 'content', cData.newData, 'reference');
|
|
|
+ if(isExisit && !isRepeat){
|
|
|
+ totalJobs.jobsArr.forEach(job => {
|
|
|
+ if(cData.newData === job.data.content){
|
|
|
+ newJobId = job.data.id;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ueObj = {
|
|
|
+ newData: cData.newData,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newJobId: newJobId,
|
|
|
+ orgJobId: cData.orgId,
|
|
|
+ type: UpdateExist
|
|
|
+ };
|
|
|
+ updateDatas.push(ueObj);
|
|
|
+ }
|
|
|
+ if(!isExisit && !isRepeat){
|
|
|
+ maxJobsNumber++;
|
|
|
+ //currentCountId++;
|
|
|
+ unObj = {
|
|
|
+ newJobId: maxJobsNumber,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newData: cData.newData,
|
|
|
+ orgJobId: cData.orgId,
|
|
|
+ code: maxJobsNumber,
|
|
|
+ type: UpdateNew
|
|
|
+ };
|
|
|
+ updateDatas.push(unObj);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ let pasteDatas = {
|
|
|
+ updateDatas: updateDatas,
|
|
|
+ createDatas: createDatas
|
|
|
+ };
|
|
|
+ return pasteDatas;
|
|
|
+ },
|
|
|
+ encapItemsData: function(uncrossedDatas, crossedDatas, controller, totalItems){
|
|
|
+ const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
|
|
|
+ let updateDatas = [];
|
|
|
+ let createDatas = [];
|
|
|
+ let createNewData = [];
|
|
|
+ let createExData = [];
|
|
|
+ let updateNewData = [];
|
|
|
+ let updateExData = [];
|
|
|
+ let nodeId = controller.tree.selected.getID();
|
|
|
+ uncrossedDatas.forEach(data => {
|
|
|
+ let cnDataObj, ceDataObj, content,itemId;
|
|
|
+ let isExisit = tools.isExist(totalItems.itemsArr, 'content', data, null);
|
|
|
+ let isRepeat = tools.isRepeat(controller.tree.selected.items, 'content', data, 'reference');
|
|
|
+ if(isExisit && !isRepeat){
|
|
|
+ totalItems.itemsArr.forEach(item => {
|
|
|
+ if(data === item.data.content){
|
|
|
+ itemId = item.data.id;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ceDataObj= {
|
|
|
+ newData: data,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ itemId: itemId,
|
|
|
+ type: CreateExist
|
|
|
+ };
|
|
|
+ createDatas.push(ceDataObj);
|
|
|
+ }
|
|
|
+ if(!isExisit){
|
|
|
+ maxItemsNumber++;
|
|
|
+ //currentCountId++;
|
|
|
+ cnDataObj = {
|
|
|
+ id: maxItemsNumber,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newData: data,
|
|
|
+ code: maxItemsNumber,
|
|
|
+ type: CreateNew
|
|
|
+ };
|
|
|
+ createDatas.push(cnDataObj);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ crossedDatas.forEach(cData => {
|
|
|
+ let ueObj, unObj, newItemId;
|
|
|
+ let isExisit = tools.isExist(totalItems.itemsArr, 'content', cData.newData, null);
|
|
|
+ let isRepeat = tools.isRepeat(controller.tree.selected.items, 'content', cData.newData, 'reference');
|
|
|
+ if(isExisit && !isRepeat){
|
|
|
+ totalItems.itemsArr.forEach(item => {
|
|
|
+ if(cData.newData === item.data.content){
|
|
|
+ newItemId = item.data.id;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ueObj = {
|
|
|
+ newData: cData.newData,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newItemId: newItemId,
|
|
|
+ orgItemId: cData.orgId,
|
|
|
+ type: UpdateExist
|
|
|
+ };
|
|
|
+ updateDatas.push(ueObj);
|
|
|
+ }
|
|
|
+ if(!isExisit && !isRepeat){
|
|
|
+ maxItemsNumber++;
|
|
|
+ //currentCountId++;
|
|
|
+ unObj = {
|
|
|
+ newItemId: maxItemsNumber,
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ nodeId: nodeId,
|
|
|
+ newData: cData.newData,
|
|
|
+ orgItemId: cData.orgId,
|
|
|
+ code: maxItemsNumber,
|
|
|
+ type: UpdateNew
|
|
|
+ };
|
|
|
+ updateDatas.push(unObj);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ let pasteDatas = {
|
|
|
+ updateDatas: updateDatas,
|
|
|
+ createDatas: createDatas
|
|
|
+ };
|
|
|
+ return pasteDatas;
|
|
|
+ },
|
|
|
+ rebuildArr: function(arr){
|
|
|
+ let conformDatas = [];
|
|
|
+ let flag = true;
|
|
|
+ for(let i=0; i< arr.length; i++){
|
|
|
+ for(let j=i+1; j<arr.length; j++){
|
|
|
+ if(arr[i].rowIdx === arr[j].rowIdx){
|
|
|
+ flag = false;
|
|
|
+ let field = arr[i].field;
|
|
|
+ let conformData;
|
|
|
+ if(field === 'code'){
|
|
|
+ conformData = {
|
|
|
+ billsLibId: billsLibId,
|
|
|
+ code: arr[i].data,
|
|
|
+ content: arr[j].data,
|
|
|
+ rowIdx: arr[i].rowIdx,
|
|
|
+ type: 'CreateT'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ conformData = {
|
|
|
+ billsLIbId: billsLibId,
|
|
|
+ code: arr[j].data,
|
|
|
+ content: arr[i].data,
|
|
|
+ rowIdx: arr[i].rowIdx,
|
|
|
+ type: 'CreateT'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ conformDatas.push(conformData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ for(let i =0; i< arr.length; i++){
|
|
|
+ let flag = true;
|
|
|
+ for(let j=0; j<arr.length; j++){
|
|
|
+ if(arr[i].rowIdx === arr[j].rowIdx && arr[i].field !== arr[j].field){
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+
|
|
|
+ conformDatas.push(arr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return conformDatas;
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+};
|
|
|
+
|
|
|
+let pasteController = {
|
|
|
+ frontController: function(sheet){
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ frontOperator: function(sheet, setting, controller, totalJobs, pasteDatas){
|
|
|
+ const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
|
|
|
+ let updateDatas = pasteDatas.updateDatas, createDatas = pasteDatas.createDatas;
|
|
|
+ for(let i =0; i< updateDatas.length; i++){
|
|
|
+ if(updateDatas[i].type === UpdateExist){
|
|
|
+ totalJobs.jobsArr.forEach(job => {
|
|
|
+ if(job.data.content === updateDatas[i].newData){
|
|
|
+ let index = tools.getIndex(controller.tree.selected.jobs, updateDatas[i].orgJobId);
|
|
|
+ job.count ++;
|
|
|
+ controller.tree.selected.jobs.splice(index, 1);
|
|
|
+ controller.tree.selected.jobs.splice(index, 0, job);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(updateDatas[i].type === UpdateNew){
|
|
|
+ let newJobData, newJob;
|
|
|
+ let newJobId = updateDatas[i].newJobId;
|
|
|
+ newJobData = {id: newJobId, content: updateDatas[i].newData, code: updateDatas[i].code};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ newJob.count = 1;
|
|
|
+ totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ var index = tools.getIndex(controller.tree.selected.jobs, updateDatas[i].orgJobId);
|
|
|
+ controller.tree.selected.jobs.splice(index, 1);
|
|
|
+ controller.tree.selected.jobs.splice(index, 0, newJob);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< createDatas.length; i++){
|
|
|
+ if(createDatas[i].type === CreateExist){
|
|
|
+ totalJobs.jobsArr.forEach(job => {
|
|
|
+ if(job.data.content === createDatas[i].newData){
|
|
|
+ job.count ++;
|
|
|
+ controller.tree.selected.jobs.push(job);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(createDatas[i].type === CreateNew){
|
|
|
+ let newJobId = createDatas[i].id;
|
|
|
+ let newJobData, newJob;
|
|
|
+ newJobData = {id: newJobId, content: createDatas[i].newData, code: createDatas[i].code};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ newJob.count = 1;
|
|
|
+ totalJobs.jobs[totalJobs.prefix + newJobId] = newJob;
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ controller.tree.selected.jobs.push(newJob);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //resort&reshow
|
|
|
+ let time = new Date().getTime();
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);
|
|
|
+ sheetDatas = tools.getsheetDatas(sheet);
|
|
|
+
|
|
|
+ },
|
|
|
+ frontItemsRelOperator: function(sheet, setting, controller, totalItems, pasteDatas){
|
|
|
+ const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
|
|
|
+ let updateDatas = pasteDatas.updateDatas, createDatas = pasteDatas.createDatas;
|
|
|
+ for(let i =0; i< updateDatas.length; i++){
|
|
|
+ if(updateDatas[i].type === UpdateExist){
|
|
|
+ totalItems.itemsArr.forEach(item => {
|
|
|
+ if(item.data.content === updateDatas[i].newData){
|
|
|
+ let index = tools.getIndex(controller.tree.selected.items, updateDatas[i].orgItemId);
|
|
|
+ item.count ++;
|
|
|
+ controller.tree.selected.items.splice(index, 1);
|
|
|
+ controller.tree.selected.items.splice(index, 0, item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(updateDatas[i].type === UpdateNew){
|
|
|
+ let newItemData, newItem;
|
|
|
+ let newItemId = updateDatas[i].newItemId;
|
|
|
+ newItemData = {id: newItemId, content: updateDatas[i].newData, code: updateDatas[i].code};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ newItem.count = 1;
|
|
|
+ totalItems.items[totalItems.prefix + newItemId] = newItem;
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ var index = tools.getIndex(controller.tree.selected.items, updateDatas[i].orgItemId);
|
|
|
+ controller.tree.selected.items.splice(index, 1);
|
|
|
+ controller.tree.selected.items.splice(index, 0, newItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< createDatas.length; i++){
|
|
|
+ if(createDatas[i].type === CreateExist){
|
|
|
+ totalItems.itemsArr.forEach(item => {
|
|
|
+ if(item.data.content === createDatas[i].newData){
|
|
|
+ item.count ++;
|
|
|
+ controller.tree.selected.jobs.push(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(createDatas[i].type === CreateNew){
|
|
|
+ let newItemId = createDatas[i].id;
|
|
|
+ let newItemData, newItem;
|
|
|
+ newItemData = {id: newItemId, content: createDatas[i].newData, code: createDatas[i].code};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ newItem.count = 1;
|
|
|
+ totalItems.items[totalItems.prefix + newItemId] = newItem;
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ controller.tree.selected.items.push(newItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //resort&reshow
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
+ sheetItemsDatas = tools.getsheetDatas(sheet);
|
|
|
+
|
|
|
+ },
|
|
|
+ pasteJobsFront: function(sheet, totalJobs, uncrossedDatas, crossedDatas){
|
|
|
+ let rebuildArr =[];
|
|
|
+ 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(totalJobs.jobsArr, field, data, 'reference');
|
|
|
+ if(isRepeat){
|
|
|
+ crossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< crossedDatas.length; i++){
|
|
|
+ let field = crossedDatas[i].field, data = crossedDatas[i].data;
|
|
|
+ if(crossedDatas[i].field === 'code' && typeof data !== 'number' ){
|
|
|
+ crossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ totalJobs.jobsArr.forEach(job => {
|
|
|
+ if(job.data.id === crossedDatas[i].orgId){
|
|
|
+ job.data[field] = crossedDatas[i].data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(uncrossedDatas.length > 0){
|
|
|
+ for(let i=0; i< uncrossedDatas.length; i++){
|
|
|
+ let field = uncrossedDatas[i].field;
|
|
|
+ let isRepeat = tools.isRepeat(totalJobs.jobsArr, field, uncrossedDatas[i].data, 'reference');
|
|
|
+ if(isRepeat){
|
|
|
+ uncrossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< uncrossedDatas.length; i++){
|
|
|
+ let field = uncrossedDatas[i].field;
|
|
|
+ if(uncrossedDatas[i].field === 'code' && typeof uncrossedDatas[i].data !== 'number' ){
|
|
|
+ uncrossedDatas.splice(i--, 1);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ rebuildArr = tools.rebuildArr(uncrossedDatas);
|
|
|
+ function myCompare(a, b){
|
|
|
+ if(a.rowIdx > b.rowIdx)
|
|
|
+ return 1;
|
|
|
+ if(a.rowIdx < b.rowIdx)
|
|
|
+ return -1;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ rebuildArr.sort(myCompare);
|
|
|
+ for(let i=0; i< rebuildArr.length; i++){
|
|
|
+ let newJobData, newJob;
|
|
|
+ if(rebuildArr[i].type === 'CreateT'){
|
|
|
+ maxJobsNumber++;
|
|
|
+ maxJobsNumber = maxJobsNumber >= rebuildArr[i].code ? maxJobsNumber : rebuildArr[i].code;
|
|
|
+ let id = maxJobsNumber;
|
|
|
+ rebuildArr[i].code = maxJobsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ newJobData = {id: id, content: rebuildArr[i].content, code: maxJobsNumber};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ }
|
|
|
+ if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'content'){
|
|
|
+ maxJobsNumber++;
|
|
|
+ let id = maxJobsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ rebuildArr[i].code = maxJobsNumber;
|
|
|
+ newJobData = {id: id, content: rebuildArr[i].data, code: maxJobsNumber};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ }
|
|
|
+ if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'code'){
|
|
|
+ maxJobsNumber++;
|
|
|
+ maxJobsNumber = maxJobsNumber >= rebuildArr[i].data ? maxJobsNumber : rebuildArr[i].data;
|
|
|
+ let id = maxJobsNumber;
|
|
|
+ rebuildArr[i].data = maxJobsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ newJobData = {id: id, content: '', code: maxJobsNumber};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tools.reshowData(sheet, totalJobs.jobsArr, totalJobsSetting, true);
|
|
|
+ //backendOP
|
|
|
+ let backendDatas = {
|
|
|
+ updateDatas: crossedDatas,
|
|
|
+ createDatas: rebuildArr
|
|
|
+ };
|
|
|
+ jobsAjax.pasteJobs(backendDatas);
|
|
|
+ },
|
|
|
+ pasteItemsFront: function(sheet, totalItems, uncrossedDatas, crossedDatas){
|
|
|
+ let rebuildArr =[];
|
|
|
+ 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(totalItems.itemsArr, field, data, 'reference');
|
|
|
+ if(isRepeat){
|
|
|
+ crossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< crossedDatas.length; i++){
|
|
|
+ let field = crossedDatas[i].field, data = crossedDatas[i].data;
|
|
|
+ if(crossedDatas[i].field === 'code' && typeof data !== 'number' ){
|
|
|
+ crossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ totalItems.itemsArr.forEach(item => {
|
|
|
+ if(item.data.id === crossedDatas[i].orgId){
|
|
|
+ item.data[field] = crossedDatas[i].data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(uncrossedDatas.length > 0){
|
|
|
+ for(let i=0; i< uncrossedDatas.length; i++){
|
|
|
+ let field = uncrossedDatas[i].field;
|
|
|
+ let isRepeat = tools.isRepeat(totalItems.itemsArr, field, uncrossedDatas[i].data, 'reference');
|
|
|
+ if(isRepeat){
|
|
|
+ uncrossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(let i=0; i< uncrossedDatas.length; i++){
|
|
|
+ let field = uncrossedDatas[i].field;
|
|
|
+ if(uncrossedDatas[i].field === 'code' && typeof uncrossedDatas[i].data !== 'number' ){
|
|
|
+ uncrossedDatas.splice(i--, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rebuildArr = tools.rebuildArr(uncrossedDatas);
|
|
|
+ function myCompare(a, b){
|
|
|
+ if(a.rowIdx > b.rowIdx)
|
|
|
+ return 1;
|
|
|
+ if(a.rowIdx < b.rowIdx)
|
|
|
+ return -1;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ rebuildArr.sort(myCompare);
|
|
|
+ for(let i=0; i< rebuildArr.length; i++){
|
|
|
+ let newItemData, newItem;
|
|
|
+ if(rebuildArr[i].type === 'CreateT'){
|
|
|
+ maxItemsNumber++;
|
|
|
+ maxItemsNumber = maxItemsNumber >= rebuildArr[i].code ? maxItemsNumber : rebuildArr[i].code;
|
|
|
+ let id = maxItemsNumber;
|
|
|
+ rebuildArr[i].code = maxItemsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ newItemData = {id: id, content: rebuildArr[i].content, code: maxItemsNumber};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ }
|
|
|
+ if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'content'){
|
|
|
+ maxItemsNumber++;
|
|
|
+ let id = maxItemsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ rebuildArr[i].code = maxItemsNumber;
|
|
|
+ newItemData = {id: id, content: rebuildArr[i].data, code: maxItemsNumber};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ }
|
|
|
+ if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'code'){
|
|
|
+ maxItemsNumber++;
|
|
|
+ maxItemsNumber = maxItemsNumber >= rebuildArr[i].data ? maxItemsNumber : rebuildArr[i].data;
|
|
|
+ let id = maxItemsNumber;
|
|
|
+ rebuildArr[i].data = maxItemsNumber;
|
|
|
+ rebuildArr[i].id = id;
|
|
|
+ newItemData = {id: id, content: '', code: maxItemsNumber};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tools.reshowData(sheet, totalItems.itemsArr, totalItemsSetting, true);
|
|
|
+ //backendOP
|
|
|
+ let backendDatas = {
|
|
|
+ updateDatas: crossedDatas,
|
|
|
+ createDatas: rebuildArr
|
|
|
+ };
|
|
|
+ itemsAjax.pasteItems(backendDatas);
|
|
|
+ }
|
|
|
+};
|
|
|
|
|
|
var jobsController = {
|
|
|
editData: function(controller, sheet, totalJobs, setting){
|
|
@@ -584,20 +1145,21 @@ var jobsController = {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+
|
|
|
createNew: function(sheet, controller, totalJobs, field, newData, args, setting){
|
|
|
if(field === 'content'){
|
|
|
maxJobsNumber++;
|
|
|
- jobsAjax.createJobContent(billsLibId, field, newData, maxJobsNumber, function(id){
|
|
|
- var newJobData, newJob;
|
|
|
- newJobData = {id: id, content: newData, code: maxJobsNumber};
|
|
|
- newJob = createObj.newJob(newJobData);
|
|
|
- newJob.count = 1;
|
|
|
- totalJobs.jobs[totalJobs.prefix + id] = newJob;
|
|
|
- totalJobs.jobsArr.push(newJob);
|
|
|
- billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'jobs', id);
|
|
|
- controller.tree.selected.jobs.push(newJob);
|
|
|
- tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);
|
|
|
- });
|
|
|
+ jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, maxJobsNumber);
|
|
|
+ var newJobData, newJob;
|
|
|
+ newJobData = {id: maxJobsNumber, content: newData, code: maxJobsNumber};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ newJob.count = 1;
|
|
|
+ totalJobs.jobs[totalJobs.prefix + maxJobsNumber] = newJob;
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'jobs', maxJobsNumber);
|
|
|
+ controller.tree.selected.jobs.push(newJob);
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);
|
|
|
+
|
|
|
}
|
|
|
else {
|
|
|
sheet.getCell(args.row, args.col).value('');
|
|
@@ -620,7 +1182,6 @@ var jobsController = {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
update: function(sheet, controller, totalJobs, field, newData, id, isExist, args, setting){
|
|
|
if(isExist){
|
|
|
totalJobs.jobsArr.forEach(function(job){
|
|
@@ -645,19 +1206,18 @@ var jobsController = {
|
|
|
else{
|
|
|
if(field === 'content'){
|
|
|
maxJobsNumber++;
|
|
|
- jobsAjax.createJobContent(billsLibId, field, newData, maxJobsNumber, function(newId){
|
|
|
- var newJobData, newJob;
|
|
|
- newJobData = {id: newId, content: newData, code: maxJobsNumber};
|
|
|
- newJob = createObj.newJob(newJobData);
|
|
|
- newJob.count = 1;
|
|
|
- totalJobs.jobs[totalJobs.prefix + newId] = newJob;
|
|
|
- totalJobs.jobsArr.push(newJob);
|
|
|
- billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, newId, 'update', 'jobs');
|
|
|
- var index = tools.getIndex(controller.tree.selected.jobs, id);
|
|
|
- controller.tree.selected.jobs.splice(index, 1);
|
|
|
- controller.tree.selected.jobs.splice(index, 0, newJob);
|
|
|
- tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);
|
|
|
- });
|
|
|
+ jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, maxJobsNumber);
|
|
|
+ var newJobData, newJob;
|
|
|
+ newJobData = {id: maxJobsNumber, content: newData, code: maxJobsNumber};
|
|
|
+ newJob = createObj.newJob(newJobData);
|
|
|
+ newJob.count = 1;
|
|
|
+ totalJobs.jobs[totalJobs.prefix + maxJobsNumber] = newJob;
|
|
|
+ totalJobs.jobsArr.push(newJob);
|
|
|
+ billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, maxJobsNumber, 'update', 'jobs');
|
|
|
+ var index = tools.getIndex(controller.tree.selected.jobs, id);
|
|
|
+ controller.tree.selected.jobs.splice(index, 1);
|
|
|
+ controller.tree.selected.jobs.splice(index, 0, newJob);
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);
|
|
|
}
|
|
|
else {
|
|
|
//todo: 提示窗口
|
|
@@ -666,6 +1226,7 @@ var jobsController = {
|
|
|
}
|
|
|
else {
|
|
|
//编号只能是数字
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -721,17 +1282,17 @@ var itemsController = {
|
|
|
createNew: function(sheet, controller, totalItems, field, newData, args, setting){
|
|
|
if(field === 'content'){
|
|
|
maxItemsNumber++;
|
|
|
- itemsAjax.createItemCharacter(billsLibId, field, newData, maxItemsNumber, function(id){
|
|
|
- var newItemData, newItem;
|
|
|
- newItemData = {id: id, content: newData, code: maxItemsNumber};
|
|
|
- newItem = createObj.newItem(newItemData);
|
|
|
- newItem.count = 1;
|
|
|
- totalItems.items[totalItems.prefix + id] = newItem;
|
|
|
- totalItems.itemsArr.push(newItem);
|
|
|
- billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'items', id);
|
|
|
- controller.tree.selected.items.push(newItem);
|
|
|
- tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
- });
|
|
|
+ let id = maxItemsNumber;
|
|
|
+ itemsAjax.createItemCharacter(billsLibId, newData, maxItemsNumber, id);
|
|
|
+ var newItemData, newItem;
|
|
|
+ newItemData = {id: id, content: newData, code: maxItemsNumber};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ newItem.count = 1;
|
|
|
+ totalItems.items[totalItems.prefix + id] = newItem;
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'items', id);
|
|
|
+ controller.tree.selected.items.push(newItem);
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
}
|
|
|
else {
|
|
|
if(typeof newData === 'number'){
|
|
@@ -739,6 +1300,7 @@ var itemsController = {
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -749,8 +1311,6 @@ var itemsController = {
|
|
|
if(field === 'content'&& newData === item.data.content){
|
|
|
//isExist = true;
|
|
|
billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'items', item.data.id);
|
|
|
- //整合
|
|
|
- //tools.addAttr(controller.tree.selected.items);
|
|
|
item.count++;
|
|
|
controller.tree.selected.items.push(item);
|
|
|
tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
@@ -758,7 +1318,6 @@ var itemsController = {
|
|
|
else if(field == 'code' && newData == item.data.code){
|
|
|
//isExist = true;
|
|
|
billsAjax.updateBills(billsLibId, controller.tree.selected.getID(), 'items', item.data.id);
|
|
|
- // tools.addAttr(controller.tree.selected.items);
|
|
|
item.count++;
|
|
|
controller.tree.selected.items.push(item);
|
|
|
tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
@@ -774,7 +1333,6 @@ var itemsController = {
|
|
|
item.count++;
|
|
|
controller.tree.selected.items.splice(index, 1);
|
|
|
controller.tree.selected.items.splice(index, 0, item);
|
|
|
- //var newItemData = {id: item.data.id, code: newData, content: item.data.content}
|
|
|
billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
|
|
|
tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
}
|
|
@@ -783,7 +1341,6 @@ var itemsController = {
|
|
|
item.count++;
|
|
|
controller.tree.selected.items.splice(index, 1);
|
|
|
controller.tree.selected.items.splice(index, 0, item);
|
|
|
- //var newItemData = {id: item.data.id, code: item.data.code, content: newData}
|
|
|
billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
|
|
|
tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
}
|
|
@@ -792,20 +1349,19 @@ var itemsController = {
|
|
|
else{
|
|
|
if(field === 'content'){
|
|
|
maxItemsNumber++;
|
|
|
- itemsAjax.createItemCharacter(billsLibId, field, newData, maxItemsNumber, function(newId){
|
|
|
- var newItemData, newItem;
|
|
|
- newItemData = {id: newId, content: newData, code: maxItemsNumber};
|
|
|
- newItem = createObj.newItem(newItemData);
|
|
|
- newItem.count = 1;
|
|
|
- totalItems.items[totalItems.prefix + newId] = newItem;
|
|
|
- totalItems.itemsArr.push(newItem);
|
|
|
- billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, newId, 'update', 'items');
|
|
|
- // tools.addAttr(controller.tree.selected.items);
|
|
|
- var index = tools.getIndex(controller.tree.selected.items, id);
|
|
|
- controller.tree.selected.items.splice(index, 1);
|
|
|
- controller.tree.selected.items.splice(index, 0, newItem);
|
|
|
- tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
- });
|
|
|
+ let newId = maxItemsNumber;
|
|
|
+ itemsAjax.createItemCharacter(billsLibId,newData, maxItemsNumber, newId);
|
|
|
+ var newItemData, newItem;
|
|
|
+ newItemData = {id: newId, content: newData, code: maxItemsNumber};
|
|
|
+ newItem = createObj.newItem(newItemData);
|
|
|
+ newItem.count = 1;
|
|
|
+ totalItems.items[totalItems.prefix + newId] = newItem;
|
|
|
+ totalItems.itemsArr.push(newItem);
|
|
|
+ billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, newId, 'update', 'items');
|
|
|
+ var index = tools.getIndex(controller.tree.selected.items, id);
|
|
|
+ controller.tree.selected.items.splice(index, 1);
|
|
|
+ controller.tree.selected.items.splice(index, 0, newItem);
|
|
|
+ tools.reshowData(sheet, controller.tree.selected.items, setting, true);
|
|
|
}
|
|
|
else {
|
|
|
if(typeof newData === 'number'){
|
|
@@ -813,6 +1369,7 @@ var itemsController = {
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -857,6 +1414,9 @@ var valueController = {
|
|
|
if(field === 'value'){
|
|
|
var newCode = valueController.getCode(totalItems, id);
|
|
|
newData = {code: newCode, value: newValue};
|
|
|
+ console.log(`newCode: ${newCode}`);
|
|
|
+ console.log(`id: ${id}`);
|
|
|
+ console.log(sheet.getActiveRowIndex());
|
|
|
tools.reSetCell(sheet, sheet.getActiveRowIndex(), 0, newCode, newCode);
|
|
|
}
|
|
|
else {
|
|
@@ -866,10 +1426,11 @@ var valueController = {
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字!
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
}
|
|
|
totalItems.findItem(id).data.itemValue.push(newData);
|
|
|
- itemsAjax.updateValue(id, newData, null, 'create');
|
|
|
+ itemsAjax.updateValue(billsLibId, id, newData, null, 'create');
|
|
|
},
|
|
|
|
|
|
updateValue: function(totalItems, tagId, newData, field){
|
|
@@ -887,7 +1448,7 @@ var valueController = {
|
|
|
});
|
|
|
itemVals.splice(index, 0, updateEle);
|
|
|
}
|
|
|
- itemsAjax.updateValue(selectedId, updateData, null, 'update');
|
|
|
+ itemsAjax.updateValue(billsLibId, selectedId, updateData, null, 'update');
|
|
|
}
|
|
|
else {
|
|
|
if(typeof newData === 'number'){
|
|
@@ -903,10 +1464,11 @@ var valueController = {
|
|
|
});
|
|
|
itemVals.splice(index, 0, updateEle);
|
|
|
}
|
|
|
- itemsAjax.updateValue(selectedId, updateData, null, 'update');
|
|
|
+ itemsAjax.updateValue(billsLibId, selectedId, updateData, null, 'update');
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字!
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -970,27 +1532,28 @@ var totalJobsController = {
|
|
|
createJob: function(sheet, totalJobs, field, newData, args){
|
|
|
if(field === 'content'){
|
|
|
maxJobsNumber++;
|
|
|
- jobsAjax.createJobContent(billsLibId, field, newData, maxJobsNumber, function(id){
|
|
|
+ let id = maxJobsNumber;
|
|
|
+ jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, id);
|
|
|
var newJobData, newJob;
|
|
|
newJobData = {id: id, content: newData, code: maxJobsNumber};
|
|
|
newJob = createObj.newJob(newJobData);
|
|
|
totalJobs.jobsArr.push(newJob);
|
|
|
tools.reSetCell(sheet, args.row, 0, maxJobsNumber, id);
|
|
|
- });
|
|
|
}
|
|
|
else {
|
|
|
if(typeof newData === 'number'){
|
|
|
maxJobsNumber = maxJobsNumber >= newData ? maxJobsNumber : newData;
|
|
|
- jobsAjax.createJobContent(billsLibId, field, '', newData, function(id){
|
|
|
+ let id = maxJobsNumber;
|
|
|
+ jobsAjax.createJobContent(billsLibId, '', newData, id);
|
|
|
var newJobData, newJob;
|
|
|
newJobData = {id: id, content: '', code: newData};
|
|
|
newJob = createObj.newJob(newJobData);
|
|
|
totalJobs.jobsArr.push(newJob);
|
|
|
tools.reSetCell(sheet, args.row, 0, null, id);
|
|
|
- });
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字!
|
|
|
+ sheet.getCell(args.row, args.col).value("");
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -1000,12 +1563,13 @@ var totalJobsController = {
|
|
|
//编号只能为数字
|
|
|
}
|
|
|
else {
|
|
|
+ console.log(`enterupdate id: ${id}`);
|
|
|
totalJobs.jobsArr.forEach(function(job){
|
|
|
- if(job.data[field] === newData){
|
|
|
+ if(job.data.id === id){
|
|
|
job.data[field] = newData;
|
|
|
}
|
|
|
});
|
|
|
- jobsAjax.updateJobContent(id, field, newData);
|
|
|
+ jobsAjax.updateJobContent(billsLibId, id, field, newData);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -1044,7 +1608,7 @@ var totalItemsController = {
|
|
|
createItem: function(sheet, totalItems, field, newData, args){
|
|
|
if(field === 'content'){
|
|
|
maxItemsNumber++;
|
|
|
- itemsAjax.createItemCharacter(billsLibId, field, newData, maxItemsNumber, function(id){
|
|
|
+ itemsAjax.createItemCharacter(billsLibId, newData, maxItemsNumber, function(id){
|
|
|
var newItemData, newItem;
|
|
|
newItemData = {id: id, content: newData, code: maxItemsNumber};
|
|
|
newItem = createObj.newItem(newItemData);
|
|
@@ -1055,7 +1619,7 @@ var totalItemsController = {
|
|
|
else {
|
|
|
if(typeof newData === 'number'){
|
|
|
maxItemsNumber = maxItemsNumber >= newData ? maxItemsNumber : newData;
|
|
|
- itemsAjax.createItemCharacter(billsLibId, field, '', newData, function(id){
|
|
|
+ itemsAjax.createItemCharacter(billsLibId, '', newData, function(id){
|
|
|
var newItemData, newItem;
|
|
|
newItemData = {id: id, content: '', code: newData};
|
|
|
newItem = createObj.newItem(newItemData);
|
|
@@ -1065,6 +1629,7 @@ var totalItemsController = {
|
|
|
}
|
|
|
else {
|
|
|
//编号只能为数字
|
|
|
+ sheet.getCell(args.row, args.col).value("");
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -1072,14 +1637,15 @@ var totalItemsController = {
|
|
|
updateItem: function(totalItems, id, field, newData){
|
|
|
if(field === 'code' && typeof newData !== 'number'){
|
|
|
//编号只能为数字
|
|
|
+ sheet.getCell(args.row, args.col).value('');
|
|
|
}
|
|
|
else {
|
|
|
totalItems.itemsArr.forEach(function(item){
|
|
|
- if(item.data[field] === newData){
|
|
|
+ if(item.data.id === id){
|
|
|
item.data[field] = newData;
|
|
|
}
|
|
|
});
|
|
|
- itemsAjax.updateItemCharacter(id, field, newData);
|
|
|
+ itemsAjax.updateItemCharacter(billsLibId, id, field, newData);
|
|
|
}
|
|
|
}
|
|
|
};
|