Sfoglia il codice sorgente

人工系数行列转换。

Chenshilong 8 anni fa
parent
commit
030b136f93

+ 54 - 4
web/building_saas/main/js/views/project_property_labour_coe_view.js

@@ -5,34 +5,84 @@
 let labourCoeView = {
     datas: [],
     spread: null,
+    sheet: null,
 
     buildSheet: function (){
         let me = this;
         me.datas = calcLabourCoes;
+
         if (me.spread) {
             me.spread.destroy();
             me.spread = null;
         };
-
         me.spread = new GC.Spread.Sheets.Workbook($("#labourCoeSpread")[0], { sheetCount: 1 });
         me.spread.options.tabStripVisible = false;
         me.spread.options.showVerticalScrollbar = false;
         me.spread.options.showHorizontalScrollbar = false;
+        me.spread.options.rowHeight = 50;
         let sheetArea = GC.Spread.Sheets.SheetArea;
         let sheet = me.spread.getSheet(0);
+        me.sheet = sheet;
         sheet.suspendPaint();
         sheet.suspendEvent();
+        sheet.setColumnCount(1, sheetArea.viewport);
+        sheet.setColumnWidth(0, 180, sheetArea.viewport);
         sheet.setRowCount(1, sheetArea.colHeader);
-        sheet.setColumnCount(4, sheetArea.viewport);
+        sheet.setRowCount(20, sheetArea.viewport);
         sheet.setRowHeight(0, 30, sheetArea.colHeader);
-        sheet.setRowCount(7);
+
         sheet.resumeEvent();
         sheet.resumePaint();
+    },
+
+    loadData(){          // 树结构转换二维表显示,行列转换
+        let me = this;
+        let libArr = [];
+
+        for (let v of me.datas) {
+            if (!v.ParentID) libArr.push(v);
+        };
+        me.sheet.setColumnCount(libArr.length + 1, GC.Spread.Sheets.SheetArea.viewport);
+
+        // 行名
+        let id = libArr[0].ID;
+        let row = 0;
+        for (let v of me.datas) {
+            if (v.ParentID == id) {
+                me.sheet.setText(row, 0, v.name, GC.Spread.Sheets.SheetArea.viewport);
+                row++;
+            };
+        };
+        me.sheet.setRowCount(row, GC.Spread.Sheets.SheetArea.viewport);
+
+        // 列名
+        me.sheet.setText(0, 0, "定额工种", GC.Spread.Sheets.SheetArea.colHeader);
+        for (let c = 0; c <= libArr.length - 1; c++) {
+            me.sheet.setText(0, c + 1, libArr[c].name, GC.Spread.Sheets.SheetArea.colHeader);
+            me.sheet.setColumnWidth(c + 1, 100, GC.Spread.Sheets.SheetArea.viewport);
+            // 值明细
+            let libID = libArr[c].ID;
+            for (let r = 0; r < row; r++) {
+                let rowName = me.sheet.getText(r, 0);
+                for (let v of me.datas) {
+                    if ((v.ParentID == libID) && (v.name == rowName)) {
+                        me.sheet.setValue(r, c + 1, v.coe);
+                        // break;
+                    };
+                };
+            };
+        };
+    },
+
+    showData(){
+        let me = this;
+        me.buildSheet();
+        me.loadData();
     }
 };
 
 $(document).ready(function(){
     $("#tab_poj-settings-6").on('shown.bs.tab', function (e) {
-        labourCoeView.buildSheet();
+        labourCoeView.showData();
     });
 });