Browse Source

标段概况

MaiXinRong 5 years ago
parent
commit
31edd854fe
3 changed files with 51 additions and 49 deletions
  1. 1 1
      app/controller/tender_controller.js
  2. 1 1
      app/view/tender/detail.ejs
  3. 49 47
      app/view/tender/detail_modal.ejs

+ 1 - 1
app/controller/tender_controller.js

@@ -275,7 +275,7 @@ module.exports = app => {
                     tender.deal_tp = sum.deal_tp;
                 }
                 const stages = await ctx.service.stage.getValidStages(ctx.tender.id);
-                const lastStage = stages[0]; //await ctx.service.stage.getLastestStage(ctx.tender.id);
+                const lastStage = stages.length > 0 ? stages[0] : null; //await ctx.service.stage.getLastestStage(ctx.tender.id);
                 if (lastStage) {
                     await this.ctx.service.stage.checkStageGatherData(lastStage);
                     tender.gather_tp = ctx.helper.add(lastStage.contract_tp, lastStage.qc_tp);

+ 1 - 1
app/view/tender/detail.ejs

@@ -95,7 +95,7 @@
                                 <h5 class="card-title">标段设置</h5>
                                 <a href="#bd-set-1" data-toggle="modal" data-target="#bd-set-1" class="btn btn-sm btn-outline-primary">标段属性</a>
                                 <a href="#bd-set-2" data-toggle="modal" data-target="#bd-set-2" class="btn btn-sm btn-outline-primary">小数位数</a>
-                                <a href="#bd-set-3" data-toggle="modal" data-target="#bd-set-3" class="btn btn-sm btn-outline-primary">清单精度</a>
+                                <a href="#bd-set-3" data-toggle="modal" data-target="#bd-set-3" class="btn btn-sm btn-outline-primary">数量精度</a>
                                 <a href="#bd-set-4" data-toggle="modal" data-target="#bd-set-4" class="btn btn-sm btn-outline-primary">合同参数</a>
                                 <a href="#bd-set-5" data-toggle="modal" data-target="#bd-set-5" class="btn btn-sm btn-outline-primary">显示设置</a>
                                 <a href="#bd-set-6" data-toggle="modal" data-target="#bd-set-6" class="btn btn-sm btn-outline-primary">章节设置</a>

+ 49 - 47
app/view/tender/detail_modal.ejs

@@ -729,8 +729,6 @@
         spread.options.showHorizontalScrollbar = false;
         const sheet = spread.getActiveSheet();
         SpreadJsObj.protectedSheet(sheet);
-        //sheet.options.rowHeaderVisible = false;
-        //sheet.options.colHeaderVisible = false;
         sheet.setText(0, 0, '单位', spreadNS.SheetArea.colHeader);
         sheet.setText(0, 1, '精度', spreadNS.SheetArea.colHeader);
         sheet.setRowHeight(0, 32, spreadNS.SheetArea.colHeader);
@@ -756,7 +754,7 @@
             sheet.setColumnWidth(0, 100);
             sheet.setColumnWidth(1, 60);
             sheet.getRange(0, 0, 13, 1).vAlign(1).backColor('#e4e7ea').locked(true);
-            sheet.getRange(0, 1, 13, 1).vAlign(1).hAlign(2);
+            sheet.getRange(0, 1, 13, 1).vAlign(1).hAlign(2).locked(false);
             sheet.setText(0, 0, 't');
             sheet.setText(1, 0, 'km');
             sheet.setText(2, 0, 'm');
@@ -791,18 +789,14 @@
         });
         SpreadJsObj.addDeleteBind(spread, function (sheet) {
             const sel = sheet.getSelections()[0];
-            let calc = false;
             if (sel) {
                 for (let iRow = sel.row, iRowLength = sel.row + sel.rowCount; iRow < iRowLength; iRow++) {
-                    if (iRow === 3) continue;
                     for (let iCol = sel.col, iColLength = sel.col + sel.colCount; iCol < iColLength; iCol++) {
-                        if (iCol !== 2) continue;
+                        if (iCol !== 1) continue;
                         sheet.setText(iRow, iCol, '0');
-                        if (iRow === 1 || iRow === 2) calc = true;
                     }
                 }
             }
-            if (calc) calcHtjMinusZlj();
         });
         spread.bind(spreadNS.Events.ClipboardPasted, function (e, info) {
             let bHint = false;
@@ -905,38 +899,47 @@
         spread.options.showHorizontalScrollbar = false;
         const sheet = spread.getActiveSheet();
         SpreadJsObj.protectedSheet(sheet);
+        sheet.setText(0, 0, '参数名', spreadNS.SheetArea.colHeader);
+        sheet.setText(0, 1, '参数值', spreadNS.SheetArea.colHeader);
+        sheet.setRowHeight(0, 32, spreadNS.SheetArea.colHeader);
 
         const vStyle = new spreadNS.Style();
         vStyle.font = '12px 微软雅黑';
         sheet.setDefaultStyle(vStyle, spreadNS.SheetArea.viewport);
+        const xStyle = new spreadNS.Style();
+        xStyle.font = '12px 微软雅黑';
+        xStyle.vAlign = 1;
+        xStyle.hAlign = 1;
+        sheet.setDefaultStyle(xStyle, spreadNS.SheetArea.colHeader);
+        const yStyle = new spreadNS.Style();
+        yStyle.font = '12px 微软雅黑';
+        yStyle.vAlign = 1;
+        yStyle.hAlign = 1;
+        sheet.setDefaultStyle(yStyle, spreadNS.SheetArea.rowHeader);
 
         SpreadJsObj.massOperationSheet(sheet, function () {
-            sheet.options.rowHeaderVisible = false;
-            sheet.options.colHeaderVisible = false;
-            sheet.defaults.rowHeight = 25;
-            sheet.setColumnCount(3);
-            sheet.setRowCount(6);
-            sheet.setColumnWidth(0, 1);
+            sheet.defaults.rowHeight = 21;
+            sheet.setColumnCount(2);
+            sheet.setRowCount(5);
+            sheet.setColumnWidth(0, 200);
             sheet.setColumnWidth(1, 200);
-            sheet.setColumnWidth(2, 200);
-            sheet.setRowHeight(0, 1);
-            sheet.getRange(1, 1, 5, 1).vAlign(1).backColor('#e4e7ea').locked(true);
-            sheet.getRange(1, 2, 5, 1).vAlign(1).hAlign(2).locked(true);
-            sheet.setText(1, 1, '签约合同价');
-            sheet.setText(2, 1, '暂列金额');
-            sheet.setText(3, 1, '签约合同价(不含暂列金)');
-            sheet.setText(4, 1, '签约开工预付款');
-            sheet.setText(5, 1, '签约材料预付款');
-            const lineBorder = new spreadNS.LineBorder('#6a696e', spreadNS.LineStyle.thin);
-            sheet.getRange(0, 0, 6, 3).setBorder(lineBorder, {all: true});
-            sheet.getRange(0, 0, 6, 3).formatter('@');
-            sheet.setSelection(1, 2, 1, 1);
+            sheet.getRange(0, 0, 5, 1).vAlign(1).backColor('#e4e7ea').locked(true);
+            sheet.getRange(0, 1, 5, 1).vAlign(1).hAlign(2).locked(false);
+            sheet.setText(0, 0, '签约合同价');
+            sheet.setText(1, 0, '暂列金额');
+            sheet.setText(2, 0, '签约合同价(不含暂列金)');
+            sheet.setText(3, 0, '签约开工预付款');
+            sheet.setText(4, 0, '签约材料预付款');
+            const lineBorder = new spreadNS.LineBorder('#dee2e6', spreadNS.LineStyle.thin);
+            sheet.getRange(0, 0, 5, 2).setBorder(lineBorder, {all: true});
+            sheet.getRange(0, 0, 5, 2).formatter('@');
+            sheet.setSelection(0, 1, 1, 1);
         });
 
         function calcHtjMinusZlj() {
-            const htj = _.toNumber(sheet.getText(1, 2));
-            const zlj = _.toNumber(sheet.getText(2, 2));
-            sheet.setValue(3, 2, ZhCalc.sub(zlj, htj));
+            const htj = _.toNumber(sheet.getText(0, 1));
+            const zlj = _.toNumber(sheet.getText(1, 1));
+            sheet.setValue(2, 1, ZhCalc.sub(htj, zlj));
         }
 
         spread.bind(spreadNS.Events.EditEnded, function (e, info) {
@@ -957,11 +960,11 @@
             let calc = false;
             if (sel) {
                 for (let iRow = sel.row, iRowLength = sel.row + sel.rowCount; iRow < iRowLength; iRow++) {
-                    if (iRow === 3) continue;
+                    if (iRow === 2) continue;
                     for (let iCol = sel.col, iColLength = sel.col + sel.colCount; iCol < iColLength; iCol++) {
-                        if (iCol !== 2) continue;
+                        if (iCol !== 1) continue;
                         sheet.setText(iRow, iCol, '0');
-                        if (iRow === 1 || iRow === 2) calc = true;
+                        if (iRow === 0 || iRow === 1) calc = true;
                     }
                 }
             }
@@ -987,26 +990,25 @@
         });
 
         function loadDealProperty() {
-            $('#hint-4').hide();
-            sheet.setValue(1, 2, property.deal_param.contractPrice);
-            sheet.setValue(2, 2, property.deal_param.zanLiePrice);
-            sheet.setValue(3, 2, ZhCalc.sub(property.deal_param.zanLiePrice, property.deal_param.contractPrice));
-            sheet.setValue(4, 2, property.deal_param.startAdvance);
-            sheet.setValue(5, 2, property.deal_param.materialAdvance);
+            sheet.setValue(0, 1, property.deal_param.contractPrice);
+            sheet.setValue(1, 1, property.deal_param.zanLiePrice);
+            sheet.setValue(2, 1, ZhCalc.sub(property.deal_param.contractPrice, property.deal_param.zanLiePrice));
+            sheet.setValue(3, 1, property.deal_param.startAdvance);
+            sheet.setValue(4, 1, property.deal_param.materialAdvance);
 
         }
         function setReadOnly (readOnly) {
-            sheet.getCell(1, 2).locked(readOnly);
-            sheet.getCell(2, 2).locked(readOnly);
-            sheet.getCell(4, 2).locked(readOnly);
-            sheet.getCell(5, 2).locked(readOnly);
+            sheet.getCell(0, 1).locked(readOnly);
+            sheet.getCell(1, 1).locked(readOnly);
+            sheet.getCell(3, 1).locked(readOnly);
+            sheet.getCell(4, 1).locked(readOnly);
         }
         function getNewDealData () {
             const result = {};
-            result.contractPrice = _.toNumber(sheet.getText(1, 2));
-            result.zanLiePrice = _.toNumber(sheet.getText(2, 2));
-            result.startAdvance = _.toNumber(sheet.getText(4, 2));
-            result.materialAdvance = _.toNumber(sheet.getText(5, 2));
+            result.contractPrice = _.toNumber(sheet.getText(0, 1));
+            result.zanLiePrice = _.toNumber(sheet.getText(1, 1));
+            result.startAdvance = _.toNumber(sheet.getText(3, 1));
+            result.materialAdvance = _.toNumber(sheet.getText(4, 1));
             return result;
         }