Browse Source

feat: 人材机汇总,信息价来源列,应不参与行高调整,可悬停显示完整。
feat: 在人材机汇总页面,市场价如果高于定额价显示为红色,低于定额价显示为绿色,相同时显示为黑色。

zhangweicheng 4 years ago
parent
commit
6412b07e76

+ 8 - 3
public/web/sheet/sheet_common.js

@@ -333,7 +333,7 @@ var sheetCommonObj = {
             let options = data[row].options ? data[row].options.split("@") : [];
             this.setComboBox(row,data[row].dateCol,sheet,options);
         }
-
+        this.setRowStyle(row, sheet, data[row].bgColour);
         for (var col = 0; col < setting.header.length; col++) {
             //var cell = sheet.getCell(row, col, GC.Spread.Sheets.SheetArea.viewport);
             var val = _.get(data[row],setting.header[col].dataCode);
@@ -386,8 +386,13 @@ var sheetCommonObj = {
                 val = setting.getText[setting.header[col].getText](data[row],val)
             }
             sheet.setValue(row, col, val, ch);
+            if(setting.getStyle && setting.getStyle(data[row],row,null,setting.header[col].dataCode)){
+                let cstyle = setting.getStyle(data[row],row,null,setting.header[col].dataCode);
+                if(cstyle){
+                    sheet.setStyle(row, col,cstyle);
+                }   
+            }
         }
-        this.setRowStyle(row,sheet,data[row].bgColour);
         if(setting.autoFit==true){//设置自动行高
             if(setting.fitRow && setting.fitRow.length > 0){//如果有设置特定的某些列才需要自动行高就按设置的来,没有设置就默认所有列
                 for(let dataCode of setting.fitRow){
@@ -401,7 +406,7 @@ var sheetCommonObj = {
             sheet.autoFitRow(row);
         }
         if(setting.getStyle && setting.getStyle(data[row],row,sheet.getActiveRowIndex())){
-          sheet.setStyle(row, -1, setting.getStyle(data[row]));
+          sheet.setStyle(row, -1, setting.getStyle(data[row],row,sheet.getActiveRowIndex()));
         }
     },
     checkData : function(col,setting, value) {

+ 17 - 7
web/building_saas/main/js/views/glj_col.js

@@ -44,7 +44,7 @@ let gljCol = {
             {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String",spanRows: [2]},
             {headerName: "类型", headerWidth: 45, dataCode: "short_name", hAlign: "center", dataType: "String",spanRows: [2]},
             {headerName: "市场价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2]},//,decimalField:"glj.unitPrice"
-            {headerName: "价格来源", headerWidth: 90, dataCode: "priceFrom", dataType: "String",spanRows: [2]},
+            {headerName: "价格来源", headerWidth: 90, dataCode: "priceFrom", dataType: "String",spanRows: [2],cellType:"tipsCell"},
             {headerName: "税率", headerWidth: 70, dataCode: "taxRate", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2]},//,decimalField:"glj.unitPrice"
             {headerName: "调整价", headerWidth: 70, dataCode: "adjustPrice", hAlign: "right", dataType: "Number",spanRows: [2]},//,decimalField:"glj.unitPrice"
             {headerName: "定额价", headerWidth: 70, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2]},//decimalField:'glj.unitPrice',
@@ -71,15 +71,25 @@ let gljCol = {
         view: {
             lockColumns: ["code","name","specs","unit","short_name","tenderPrice","adjustPrice","quantity","tenderQuantity","priceFrom"]
         },
-        autoFit:true,
-        fitRow:['priceFrom'],
+       /*  autoFit:true,
+        fitRow:['priceFrom'], */
         frozenCols:4,
         headRows:2,
-        getStyle:function (data,row,activeRow) {
-          if(row == activeRow){//选中黄色显示
-              return {backColor:"#FFFACD"};
+        getStyle:function (data,row,activeRow,dataCode) {
+          let style = {};
+          if(row === activeRow){//选中黄色显示
+            style = new GC.Spread.Sheets.Style();
+            style.backColor = "#FFFACD";
+            style.borderLeft = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+            style.borderTop = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+            style.borderRight = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
+            style.borderBottom = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
           }
-          return null;
+          if(dataCode === "marketPrice"){
+              if(data.marketPrice > data.basePrice) style.foreColor = 'red';
+              if(data.marketPrice < data.basePrice) style.foreColor = 'green';
+          }
+          return _.isEmpty(style)?null:style;
       },
     },
     mixRatio_Setting:{

+ 1 - 0
web/building_saas/main/js/views/project_glj_view.js

@@ -683,6 +683,7 @@ let projectGljObject = {
       } else {
         style.backColor = "White";
       }
+      console.log(style);
       me.projectGljSheet.setStyle(orow, -1, style);
       me.projectGljRowChang();
     } else {