|
@@ -209,12 +209,19 @@ $(document).ready(() => {
|
|
curPosData = result.curPosData;
|
|
curPosData = result.curPosData;
|
|
materialListData = result.materialListData;
|
|
materialListData = result.materialListData;
|
|
notJoinList = result.materialNotJoinListData;
|
|
notJoinList = result.materialNotJoinListData;
|
|
|
|
+ materialChecklistData = result.materialChecklistData;
|
|
// 解析清单汇总数据
|
|
// 解析清单汇总数据
|
|
gclGatherModel.loadLedgerData(ledger, curLedgerData);
|
|
gclGatherModel.loadLedgerData(ledger, curLedgerData);
|
|
gclGatherModel.loadPosData(pos, curPosData);
|
|
gclGatherModel.loadPosData(pos, curPosData);
|
|
gclGatherData = gclGatherModel.gatherGclData().filter(item => {
|
|
gclGatherData = gclGatherModel.gatherGclData().filter(item => {
|
|
return item.qc_qty || item.contract_qty
|
|
return item.qc_qty || item.contract_qty
|
|
});
|
|
});
|
|
|
|
+ if (openMaterialChecklist) {
|
|
|
|
+ // 取交集
|
|
|
|
+ gclGatherData = _.filter(gclGatherData, function (item) {
|
|
|
|
+ return _.find(materialChecklistData, { b_code: item.b_code, name: item.name, unit: item.unit, unit_price: item.unit_price });
|
|
|
|
+ });
|
|
|
|
+ }
|
|
calculateJiaCha(gclGatherData);
|
|
calculateJiaCha(gclGatherData);
|
|
SpreadJsObj.initSheet(leafXmjSpread.getActiveSheet(), leafXmjSpreadSetting);
|
|
SpreadJsObj.initSheet(leafXmjSpread.getActiveSheet(), leafXmjSpreadSetting);
|
|
// 加载清单数据
|
|
// 加载清单数据
|
|
@@ -266,7 +273,7 @@ $(document).ready(() => {
|
|
const materialBase = {
|
|
const materialBase = {
|
|
isEdit: function (data) {
|
|
isEdit: function (data) {
|
|
// 是否本期添加的工料
|
|
// 是否本期添加的工料
|
|
- return data.order === stage_order;
|
|
|
|
|
|
+ return data.order === stage_order && !openMaterialChecklist;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -286,6 +293,11 @@ $(document).ready(() => {
|
|
let materialList = [];
|
|
let materialList = [];
|
|
function loadMaterialData(iGclRow, iLXmjRow) {
|
|
function loadMaterialData(iGclRow, iLXmjRow) {
|
|
const gcl = gclGatherData[iGclRow];
|
|
const gcl = gclGatherData[iGclRow];
|
|
|
|
+ // const leafXmjs = gcl.leafXmjs.filter(item => {
|
|
|
|
+ // return item.qc_qty || item.contract_qty
|
|
|
|
+ // });
|
|
|
|
+ // console.log(iLXmjRow, leafXmjs, materialListData);
|
|
|
|
+ console.log(iGclRow, gcl.leafXmjs);
|
|
if (gcl && gcl.leafXmjs[iLXmjRow]) {
|
|
if (gcl && gcl.leafXmjs[iLXmjRow]) {
|
|
const xmj = gcl.leafXmjs[iLXmjRow];
|
|
const xmj = gcl.leafXmjs[iLXmjRow];
|
|
materialList = [];
|
|
materialList = [];
|
|
@@ -294,6 +306,7 @@ $(document).ready(() => {
|
|
materialList.push(m);
|
|
materialList.push(m);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ console.log(materialList);
|
|
SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialList);
|
|
SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialList);
|
|
} else {
|
|
} else {
|
|
SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, []);
|
|
SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, []);
|
|
@@ -314,7 +327,9 @@ $(document).ready(() => {
|
|
const select = SpreadJsObj.getSelectObject(sheet);
|
|
const select = SpreadJsObj.getSelectObject(sheet);
|
|
const index = gclGatherData.indexOf(select);
|
|
const index = gclGatherData.indexOf(select);
|
|
if (index !== -1) {
|
|
if (index !== -1) {
|
|
- const xmj = gclGatherData[index].leafXmjs;
|
|
|
|
|
|
+ const xmj = gclGatherData[index].leafXmjs.filter(item => {
|
|
|
|
+ return item.qc_qty || item.contract_qty
|
|
|
|
+ });
|
|
const leafXmjSheet = leafXmjSpread.getActiveSheet();
|
|
const leafXmjSheet = leafXmjSpread.getActiveSheet();
|
|
for (const [iRow,x] of xmj.entries()) {
|
|
for (const [iRow,x] of xmj.entries()) {
|
|
const notx = findNotJoinLeafXmj(x);
|
|
const notx = findNotJoinLeafXmj(x);
|
|
@@ -416,15 +431,21 @@ $(document).ready(() => {
|
|
const leafXmjSheet = leafXmjSpread.getActiveSheet();
|
|
const leafXmjSheet = leafXmjSpread.getActiveSheet();
|
|
const leafXmjSelect = SpreadJsObj.getSelectObject(leafXmjSheet);
|
|
const leafXmjSelect = SpreadJsObj.getSelectObject(leafXmjSheet);
|
|
const iRow = gclGatherData[index].leafXmjs.indexOf(leafXmjSelect);
|
|
const iRow = gclGatherData[index].leafXmjs.indexOf(leafXmjSelect);
|
|
- return [index, iRow, leafXmjSheet, leafXmjSelect];
|
|
|
|
|
|
+ const leafXmjs = gclGatherData[index].leafXmjs.filter(item => {
|
|
|
|
+ return item.qc_qty || item.contract_qty
|
|
|
|
+ });
|
|
|
|
+ const nRow = leafXmjs.indexOf(leafXmjSelect);
|
|
|
|
+ return [index, iRow, nRow, leafXmjSheet, leafXmjSelect];
|
|
},
|
|
},
|
|
checkJoinMaterial: function (type) {
|
|
checkJoinMaterial: function (type) {
|
|
- const [iGclRow, iRow, sheet, select] = leafXmjSpreadObj.getSelect();
|
|
|
|
|
|
+ const [iGclRow, iRow, nRow, sheet, select] = leafXmjSpreadObj.getSelect();
|
|
const color = type === 'join' ? '' : '#d6d8db';
|
|
const color = type === 'join' ? '' : '#d6d8db';
|
|
const data = {
|
|
const data = {
|
|
type: type,
|
|
type: type,
|
|
select: type === 'join' ? findNotJoinLeafXmj(select) : select,
|
|
select: type === 'join' ? findNotJoinLeafXmj(select) : select,
|
|
- }
|
|
|
|
|
|
+ };
|
|
|
|
+ console.log(iGclRow, iRow, nRow, select);
|
|
|
|
+ console.log(materialList);
|
|
// 添加到
|
|
// 添加到
|
|
postData(window.location.pathname + '/save', data, function (result) {
|
|
postData(window.location.pathname + '/save', data, function (result) {
|
|
if (type === 'join') {
|
|
if (type === 'join') {
|
|
@@ -434,10 +455,10 @@ $(document).ready(() => {
|
|
notJoinList.push(result);
|
|
notJoinList.push(result);
|
|
}
|
|
}
|
|
gclGatherData[iGclRow].leafXmjs[iRow].jiacha = calcOneBQJC(select);
|
|
gclGatherData[iGclRow].leafXmjs[iRow].jiacha = calcOneBQJC(select);
|
|
- calculateJiaCha(gclGatherData, iGclRow)
|
|
|
|
- SpreadJsObj.reLoadRowData(sheet, iRow);
|
|
|
|
- sheet.getRange(iRow, -1, 1, -1).backColor(color);
|
|
|
|
- loadMaterialData(iGclRow, iRow);
|
|
|
|
|
|
+ calculateJiaCha(gclGatherData, iGclRow);
|
|
|
|
+ SpreadJsObj.reLoadRowData(sheet, nRow);
|
|
|
|
+ sheet.getRange(nRow, -1, 1, -1).backColor(color);
|
|
|
|
+ loadMaterialData(iGclRow, 0);
|
|
SpreadJsObj.reLoadRowData(ledgerSpread.getActiveSheet(), iGclRow);
|
|
SpreadJsObj.reLoadRowData(ledgerSpread.getActiveSheet(), iGclRow);
|
|
});
|
|
});
|
|
},
|
|
},
|
|
@@ -930,57 +951,59 @@ $(document).ready(() => {
|
|
// SpreadJsObj.reLoadRowData(ledgerSpread.getActiveSheet(), index);
|
|
// SpreadJsObj.reLoadRowData(ledgerSpread.getActiveSheet(), index);
|
|
// });
|
|
// });
|
|
});
|
|
});
|
|
- $.contextMenu({
|
|
|
|
- selector: '#material-spread',
|
|
|
|
- build: function ($trigger, e) {
|
|
|
|
- const target = SpreadJsObj.safeRightClickSelection($trigger, e, materialSpread);
|
|
|
|
- return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
|
|
|
|
- },
|
|
|
|
- items: {
|
|
|
|
- 'create': {
|
|
|
|
- name: '添加工料',
|
|
|
|
- icon: 'fa-sign-in',
|
|
|
|
- callback: function (key, opt) {
|
|
|
|
- // 获取已选清单
|
|
|
|
- changeMaterialTable();
|
|
|
|
- $('#addgl').modal('show');
|
|
|
|
- },
|
|
|
|
- disabled: function (key, opt) {
|
|
|
|
- const sheet = leafXmjSpread.getActiveSheet();
|
|
|
|
- const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
|
- // const notx = findNotJoinLeafXmj(select);
|
|
|
|
- if (!select) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- // if (!readOnly && notx === undefined) {
|
|
|
|
- // return false;
|
|
|
|
- // } else {
|
|
|
|
- // return true;
|
|
|
|
- // }
|
|
|
|
- return readOnly;
|
|
|
|
- }
|
|
|
|
|
|
+ if (!openMaterialChecklist) {
|
|
|
|
+ $.contextMenu({
|
|
|
|
+ selector: '#material-spread',
|
|
|
|
+ build: function ($trigger, e) {
|
|
|
|
+ const target = SpreadJsObj.safeRightClickSelection($trigger, e, materialSpread);
|
|
|
|
+ return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
|
|
},
|
|
},
|
|
- 'delete': {
|
|
|
|
- name: '删除工料',
|
|
|
|
- icon: 'fa-remove',
|
|
|
|
- callback: function (key, opt) {
|
|
|
|
- materialSpreadObj.del(materialSpread.getActiveSheet());
|
|
|
|
- },
|
|
|
|
- disabled: function (key, opt) {
|
|
|
|
- const sheet = materialSpread.getActiveSheet();
|
|
|
|
- const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
|
- if (!select) {
|
|
|
|
- return true;
|
|
|
|
|
|
+ items: {
|
|
|
|
+ 'create': {
|
|
|
|
+ name: '添加工料',
|
|
|
|
+ icon: 'fa-sign-in',
|
|
|
|
+ callback: function (key, opt) {
|
|
|
|
+ // 获取已选清单
|
|
|
|
+ changeMaterialTable();
|
|
|
|
+ $('#addgl').modal('show');
|
|
|
|
+ },
|
|
|
|
+ disabled: function (key, opt) {
|
|
|
|
+ const sheet = leafXmjSpread.getActiveSheet();
|
|
|
|
+ const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
|
+ // const notx = findNotJoinLeafXmj(select);
|
|
|
|
+ if (!select) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ // if (!readOnly && notx === undefined) {
|
|
|
|
+ // return false;
|
|
|
|
+ // } else {
|
|
|
|
+ // return true;
|
|
|
|
+ // }
|
|
|
|
+ return readOnly;
|
|
}
|
|
}
|
|
- if (!readOnly && select && materialBase.isEdit(select)) {
|
|
|
|
- return false;
|
|
|
|
- } else {
|
|
|
|
- return true;
|
|
|
|
|
|
+ },
|
|
|
|
+ 'delete': {
|
|
|
|
+ name: '删除工料',
|
|
|
|
+ icon: 'fa-remove',
|
|
|
|
+ callback: function (key, opt) {
|
|
|
|
+ materialSpreadObj.del(materialSpread.getActiveSheet());
|
|
|
|
+ },
|
|
|
|
+ disabled: function (key, opt) {
|
|
|
|
+ const sheet = materialSpread.getActiveSheet();
|
|
|
|
+ const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
|
+ if (!select) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ if (!readOnly && select && materialBase.isEdit(select)) {
|
|
|
|
+ return false;
|
|
|
|
+ } else {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
- },
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
// 切换清单行,读取所属项目节数据
|
|
// 切换清单行,读取所属项目节数据
|
|
@@ -1036,6 +1059,12 @@ $(document).ready(() => {
|
|
gclGatherData = gclGatherModel.gatherGclData().filter(item => {
|
|
gclGatherData = gclGatherModel.gatherGclData().filter(item => {
|
|
return item.qc_qty || item.contract_qty
|
|
return item.qc_qty || item.contract_qty
|
|
});
|
|
});
|
|
|
|
+ if (openMaterialChecklist) {
|
|
|
|
+ // 取交集
|
|
|
|
+ gclGatherData = _.filter(gclGatherData, function (item) {
|
|
|
|
+ return _.find(materialChecklistData, { b_code: item.b_code, name: item.name, unit: item.unit, unit_price: item.unit_price });
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
calculateJiaCha(gclGatherData);
|
|
calculateJiaCha(gclGatherData);
|
|
SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gclGatherData);
|
|
SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gclGatherData);
|