Browse Source

造价书主界面工料机。

Chenshilong 8 years ago
parent
commit
351557f7e1
4 changed files with 126 additions and 5 deletions
  1. 4 4
      modules/main/models/GLJ.js
  2. 4 0
      web/main/html/main.html
  3. 117 0
      web/main/js/gljView.js
  4. 1 1
      web/main/js/models/glj.js

+ 4 - 4
modules/main/models/GLJ.js

@@ -23,7 +23,7 @@ var GLJSchema = new Schema({
     quantity: String, //Decimal
     rationItemQuantity: String, //Decimal
     rationPrice: String, //Decimal
-    adjustPrice: String,            // 调整单价 (建筑有个专门的发文公布调整单价,且该单价会被计算引用,不是用户调的那个)
+    adjustPrice: String,            // 调整基价 (建筑有个专门的发文公布调整基价,且该单价会被计算引用,不是用户调的那个)
     marketPrice: String,            // 市场单价 (等同于公路的预算价)
     price: String,                  // 最终的单价(用户自定义修改单价在这里)
     tenderQuantity: String, //Decimal
@@ -54,12 +54,12 @@ GLJDAO.prototype.save = function(datas, callback){
 
     function saveOne(data) {
         return function (cb) {
-            switch (doc.updateType) {
+            switch (data.updateType) {
                 case commonConsts.UT_UPDATE:
-                    GLJ.update({ID: doc.ID}, doc, cb);
+                    GLJ.update({ID: data.ID}, data, cb);
                     break;
                 case commonConsts.UT_CREATE:
-                    GLJ.create(doc, cb);
+                    GLJ.create(data, cb);
                     break;
                 case commonConsts.UT_DELETE:
                 /* 假删除

+ 4 - 0
web/main/html/main.html

@@ -602,6 +602,7 @@
   		});
   		//-->
   	</SCRIPT>
+    <script type="text/javascript" src="web/main/js/gljView.js"></script>
 </body>
 <script>
 
@@ -651,6 +652,9 @@
                     showButton(tree.selected && tree.selected.canDownMove(), $('#downMove'));
                     showButton(tree.selected ? true : false, $('#delete'));
                 });
+
+                gljView.showDatas(project.GLJ.datas);
+//                alert('GLJDatas1:' + objTest(project.GLJ.datas[0]));
             }
             else {
 

+ 117 - 0
web/main/js/gljView.js

@@ -0,0 +1,117 @@
+/**
+ * Created by CSL on 2017-05-12.
+ */
+
+var gljView = {
+    spreadBook: null,
+    setting: {
+        header: [
+            {headerName: "编码", headerWidth: 60, dataCode: "ID", dataType: "String", formatter: "@"},
+            {headerName: "名称", headerWidth: 80, dataCode: "name", dataType: "String"},
+            {headerName: "规格型号", headerWidth: 80, dataCode: "specs", dataType: "String", hAlign: "center"},
+            {headerName: "单位", headerWidth: 60, dataCode: "unit", dataType: "String", hAlign: "center"},
+            {headerName: "类别", headerWidth: 50, dataCode: "gljType", dataType: "String", hAlign: "center"},
+            {headerName: "定额消耗量", headerWidth: 80, dataCode: "orgRQuantity", dataType: "String", hAlign: "right"},    // dataType: "Number", formatter: "0.00"
+            {headerName: "自定义消耗量", headerWidth: 80, dataCode: "customQuantity", dataType: "String", hAlign: "right"},
+            {headerName: "消耗量", headerWidth: 80, dataCode: "quantity", dataType: "String", hAlign: "right"},
+            {headerName: "数量", headerWidth: 80, dataCode: "rationItemQuantity", dataType: "String", hAlign: "right"},
+            {headerName: "基价单价", headerWidth: 80, dataCode: "rationPrice", dataType: "String", hAlign: "right"},
+            {headerName: "调整基价", headerWidth: 80, dataCode: "adjustPrice", dataType: "String", hAlign: "right"},
+            {headerName: "市场单价", headerWidth: 80, dataCode: "marketPrice", dataType: "String", hAlign: "right"},
+            {headerName: "市场单价调整", headerWidth: 80, dataCode: "price", dataType: "String", hAlign: "right"}
+        ],
+        view: {
+            comboBox: [{row: -1, col: 2, rowCount: -1, colCount: 1}],
+            lockedCells: [{row: -1, col: 3, rowCount: -1, colCount: 1}]
+        }
+    },
+
+    buildSheet: function (container) {
+        var me = this;
+        me.spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: 1 });
+        me.spreadBook.options.tabStripVisible = false;
+        me.spreadBook.options.showHorizontalScrollbar = false;
+
+        var sheet = me.spreadBook.getSheet(0);
+        sheet.suspendPaint();
+        sheet.suspendEvent();
+        var shts = GC.Spread.Sheets;
+        sheet.setRowCount(1, shts.SheetArea.colHeader);
+        sheet.setColumnCount(me.setting.header.length, shts.SheetArea.viewport);
+        sheet.options.colHeaderAutoTextIndex = 1;
+        sheet.options.colHeaderAutoText = shts.HeaderAutoText.numbers;
+        sheet.showRowOutline(false);
+
+        for (var i = 0; i < me.setting.header.length; i++) {
+            sheet.setValue(0, i, me.setting.header[i].headerName, shts.SheetArea.colHeader);
+            sheet.setColumnWidth(i, me.setting.header[i].headerWidth? me.setting.header[i].headerWidth:100);
+        }
+
+        sheet.setRowCount(20);
+        sheet.resumeEvent();
+        sheet.resumePaint();
+
+        return me.spreadBook;
+    },
+
+    showDatas: function(datas) {
+        var me = this;
+        var sheet = me.spreadBook.getSheet(0);
+        sheet.suspendPaint();
+        sheet.suspendEvent();
+        for (var col = 0; col < me.setting.header.length; col++) {
+            var hAlign = "left", vAlign = "center";
+            if (me.setting.header[col].hAlign) {
+                hAlign = me.setting.header[col].hAlign;
+            } else if (me.setting.header[col].dataType !== "String"){
+                hAlign = "right";
+            }
+            vAlign = me.setting.header[col].vAlign?me.setting.header[col].vAlign:vAlign;
+            me.setAreaAlign(sheet.getRange(-1, col, -1, 1), hAlign, vAlign);
+            if (me.setting.header[col].formatter) {
+                sheet.setFormatter(-1, col, me.setting.header[col].formatter, GC.Spread.Sheets.SheetArea.viewport);
+            }
+            for (var row = 0; row < datas.length; row++) {
+                sheet.setValue(row, col, datas[row][me.setting.header[col].dataCode], GC.Spread.Sheets.SheetArea.viewport);
+            }
+        }
+        sheet.resumeEvent();
+        sheet.resumePaint();
+    },
+
+    setAreaAlign: function(area, hAlign, vAlign){
+        if (!(hAlign) || hAlign === "left") {
+            area.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
+        } else if (hAlign === "right") {
+            area.hAlign(GC.Spread.Sheets.HorizontalAlign.right);
+        } else if (hAlign === "center") {
+            area.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
+        } else {
+            area.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
+        }
+        if (!(vAlign) || vAlign === "center") {
+            area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
+        } else if (vAlign === "top") {
+            area.vAlign(GC.Spread.Sheets.VerticalAlign.top);
+        } else if (vAlign === "bottom") {
+            area.vAlign(GC.Spread.Sheets.VerticalAlign.bottom);
+        } else {
+            area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
+        }
+    }
+
+}
+
+function objTest(obj) {
+    var str = "";
+    var spr = "";
+    for (var x in obj) {
+        if (obj.hasOwnProperty(x)) {
+            if(str == ''){ spr = '' } else { spr = ', '};
+            str += spr + x + ':' + obj[x];
+        }
+    }
+    return str;
+}
+
+gljView.buildSheet($("#gljSpread")[0]);

+ 1 - 1
web/main/js/models/glj.js

@@ -97,7 +97,7 @@ var GLJ = {
             newGLJ.marketPrice = data.marketPrice;
             newGLJ.price = data.price;
 
-            newGLJ.updateType = 'ut_add';
+            newGLJ.updateType = 'ut_create';
             this.project.push(this.getSourceType, newGLJ);
             this.project.endUpdate();
         };