|
|
@@ -3,6 +3,7 @@ const posCompareField = ['quantity'];
|
|
|
|
|
|
$(document).ready(() => {
|
|
|
autoFlashHeight();
|
|
|
+ let isCache = false, selectTenders = [];
|
|
|
const billsSpreadSetting = {
|
|
|
cols: [
|
|
|
{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 185, formatter: '@', cellType: 'tree'},
|
|
|
@@ -58,7 +59,7 @@ $(document).ready(() => {
|
|
|
full_path: 'full_path',
|
|
|
rootId: -1,
|
|
|
keys: ['id', 'tender_id', 'ledger_id'],
|
|
|
- calcFields: ['total_price_1', 'total_price_2', 'differ_tp'],
|
|
|
+ calcFields: ['total_price_1', 'total_price_2', 'differ_total_price'],
|
|
|
// todo 判断同一清单时,是否应区分 清单是否含计量单元?
|
|
|
// findNode: function(tree, node, parent, source) {
|
|
|
// const siblings = parent ? parent.children : tree.children;
|
|
|
@@ -125,6 +126,19 @@ $(document).ready(() => {
|
|
|
const billsTree = createNewPathTree('compare', treeSetting);
|
|
|
|
|
|
const billsTreeSpreadObj = {
|
|
|
+ rebuildSpreadSetting: function(tenders) {
|
|
|
+ selectTenders.length = 0;
|
|
|
+ for (const [i, t] of tenders.entries()) {
|
|
|
+ selectTenders.push({ id: t.id, name: t.name, stage_filter: t.stage_filter });
|
|
|
+ const fieldName = 'quantity_' + (i + 1);
|
|
|
+ const billsQty = billsSpreadSetting.cols.find(x => { return x.field === fieldName; });
|
|
|
+ billsQty.title = billsQty.formatTitle.replace('%s', t.name);
|
|
|
+ const posQty = posSpreadSetting.cols.find(x => { return x.field === fieldName; });
|
|
|
+ posQty.title = posQty.formatTitle.replace('%s', t.name);
|
|
|
+ }
|
|
|
+ SpreadJsObj.reLoadSheetHeader(billsSheet);
|
|
|
+ SpreadJsObj.reLoadSheetHeader(posSheet);
|
|
|
+ },
|
|
|
selectionChanged: function (e, info) {
|
|
|
if (info.newSelections) {
|
|
|
if (!info.oldSelections || info.newSelections[0].row !== info.oldSelections[0].row) {
|
|
|
@@ -152,6 +166,7 @@ $(document).ready(() => {
|
|
|
afterSelect: function(select) {
|
|
|
const data = { filter: 'ledger', tender: select };
|
|
|
postData(`/sp/${spid}/spss/load`, data, function(result) {
|
|
|
+ isCache = false;
|
|
|
const tenderTreeSetting = {
|
|
|
id: 'ledger_id',
|
|
|
pid: 'ledger_pid',
|
|
|
@@ -162,13 +177,8 @@ $(document).ready(() => {
|
|
|
calcFields: ['total_price'],
|
|
|
};
|
|
|
const tenders = [];
|
|
|
- for (const [i, t] of result.entries()) {
|
|
|
- const fieldName = 'quantity_' + (i + 1);
|
|
|
- const billsQty = billsSpreadSetting.cols.find(x => { return x.field === fieldName; });
|
|
|
- billsQty.title = billsQty.formatTitle.replace('%s', t.name);
|
|
|
- const posQty = posSpreadSetting.cols.find(x => { return x.field === fieldName; });
|
|
|
- posQty.title = posQty.formatTitle.replace('%s', t.name);
|
|
|
-
|
|
|
+ billsTreeSpreadObj.rebuildSpreadSetting(result);
|
|
|
+ for (const t of result) {
|
|
|
const tender = {
|
|
|
billsTree: createNewPathTree('ledger', tenderTreeSetting),
|
|
|
pos: new PosData({ id: 'id', ledgerId: 'lid', }),
|
|
|
@@ -177,8 +187,6 @@ $(document).ready(() => {
|
|
|
tender.pos.loadDatas(t.pos);
|
|
|
tenders.push(tender);
|
|
|
}
|
|
|
- SpreadJsObj.reLoadSheetHeader(billsSheet);
|
|
|
- SpreadJsObj.reLoadSheetHeader(posSheet);
|
|
|
|
|
|
billsTree.loadCompareData(tenders[0], tenders[1]);
|
|
|
treeCalc.calculateAll(billsTree);
|
|
|
@@ -271,4 +279,34 @@ $(document).ready(() => {
|
|
|
posSpread.refresh();
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ const spssStash = SpssStash({
|
|
|
+ type: 'compare_ledger',
|
|
|
+ url: `/sp/${spid}/spss/stash`,
|
|
|
+ getCurStashData: function() {
|
|
|
+ if (!billsTree || billsTree.nodes.length === 0) {
|
|
|
+ toastr.warning('当前无数据可暂存,请先对比标段后,再操作');
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (isCache) {
|
|
|
+ toastr.warning('当前数据为暂存数据,请勿重复保存');
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ const data = { result: { bills: billsTree.getDefaultData(billsTree.nodes) } };
|
|
|
+ data.select = selectTenders;
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+ loadStashData: function(data) {
|
|
|
+ isCache = true;
|
|
|
+ billsTreeSpreadObj.rebuildSpreadSetting(data.spss_select);
|
|
|
+ billsTree.clearDatas();
|
|
|
+ billsTree.loadDatas(data.spss_result.bills);
|
|
|
+ SpreadJsObj.loadSheetData(billsSheet, SpreadJsObj.DataType.Tree, billsTree, true);
|
|
|
+ posSpreadObj.loadCurPosData();
|
|
|
+
|
|
|
+ $('#stash-hint').html(`当前显示:${moment(data.create_time).format('YYYY-MM-DD HH:mm:ss')} (${data.user_name})`);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $('#stash').click(() => { spssStash.showStash(); });
|
|
|
});
|