Browse Source

计算程序界面统一设置。

Chenshilong 7 năm trước cách đây
mục cha
commit
9cfc09b364

+ 19 - 20
public/web/sheet/sheet_common.js

@@ -4,12 +4,11 @@
 var sheetCommonObj = {
     // CSL.2017.06.05
     // createSpread、initSheet 在一个Spread多个Sheet分别调用时的情况下使用。
-    // buildSheet 在一个Spread、一个Sheet的情况下使用。
     createSpread: function(container, SheetCount){
         var me = this;
         var spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: SheetCount });
         spreadBook.options.tabStripVisible = false;
-         spreadBook.options.showHorizontalScrollbar = true;
+        spreadBook.options.showHorizontalScrollbar = true;
         spreadBook.options.allowCopyPasteExcelStyle = false;
         spreadBook.options.allowUserDragDrop = true;
         return spreadBook;
@@ -20,10 +19,24 @@ var sheetCommonObj = {
         var spreadNS = GC.Spread.Sheets;
         sheet.suspendPaint();
         sheet.suspendEvent();
+
         sheet.setRowCount(1, spreadNS.SheetArea.colHeader);
         sheet.setColumnCount(setting.header.length, spreadNS.SheetArea.viewport);
+
+        if (setting && setting.view && setting.view.colHeaderHeight) {
+            sheet.setRowHeight(0, setting.view.colHeaderHeight, spreadNS.SheetArea.colHeader);
+        };
+        if (setting && setting.view && setting.view.rowHeaderWidth) {
+            sheet.setColumnWidth(0, setting.view.rowHeaderWidth, spreadNS.SheetArea.rowHeader);
+        };
+
         sheet.options.colHeaderAutoTextIndex = 1;
         sheet.options.colHeaderAutoText = spreadNS.HeaderAutoText.numbers;
+
+        sheet.options.protectionOptions = {
+            allowResizeColumns: true
+        };
+
         sheet.showRowOutline(false);
         me.buildHeader(sheet, setting);
         if (rowCount > 0) sheet.setRowCount(rowCount);
@@ -31,29 +44,15 @@ var sheetCommonObj = {
         sheet.resumePaint();
     },
 
+    // buildSheet 在一个Spread、一个Sheet的情况下使用。
     buildSheet: function(container, setting, rowCount) {
         var me = this;
-        var spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: 1 });
-        spreadBook.options.tabStripVisible = false;
-        spreadBook.options.showHorizontalScrollbar = true;
-        var spreadNS = GC.Spread.Sheets;
+        var spreadBook = me.createSpread(container, { sheetCount: 1 });
         var sheet = spreadBook.getSheet(0);
-        sheet.suspendPaint();
-        sheet.suspendEvent();
-        //Set rowHeader count and columnHeader count.
-        sheet.setRowCount(1, spreadNS.SheetArea.colHeader);
-        sheet.setColumnCount(setting.header.length, spreadNS.SheetArea.viewport);
-        sheet.options.colHeaderAutoTextIndex = 1;
-        sheet.options.colHeaderAutoText = spreadNS.HeaderAutoText.numbers;
-        sheet.showRowOutline(false);
-        //setup column header
-        me.buildHeader(sheet, setting);
-        //setup cells
-        if (rowCount > 0) sheet.setRowCount(rowCount);
-        sheet.resumeEvent();
-        sheet.resumePaint();
+        me.initSheet(sheet, setting, rowCount);
         return spreadBook;
     },
+
     buildHeader: function(sheet, setting){
         var me = this, ch = GC.Spread.Sheets.SheetArea.colHeader;
         for (var i = 0; i < setting.header.length; i++) {

+ 16 - 0
public/web/view_consts.js

@@ -0,0 +1,16 @@
+/**
+ * Created by CSL on 2017-11-01.
+ */
+const CP_Col_Width = {          // 多处计算程序界面的列宽统一设置
+    rowHeader: 30,
+    colHeader: 30,              // 这个是标题栏高度不是宽度,也写在一起
+    code: 70,
+    name: 200,
+    dispExprUser: 180,
+    feeRate: 60,
+    displayFieldName: 120,
+    statement: 380,
+    memo: 100,
+    unitFee: 100,
+    totalFee: 100
+};

+ 6 - 6
web/building_saas/main/html/calc_program_manage.html

@@ -15,16 +15,16 @@
     </div>
     <div class="container-fluid">
         <div class="row">
-        <div class="col-lg-3 p-0">
-            <div class="main-data-not" id="mainSpread">
+            <div class="col-lg-2 p-0">
+                <div class="main-data-not" id="mainSpread">
+                </div>
             </div>
-        </div>
-        <div class="col-lg-9 p-0">
-            <div class="main-data-not" id="detailSpread">
+            <div class="col-lg-10 p-0">
+                <div class="main-data-not" id="detailSpread">
+                </div>
             </div>
         </div>
     </div>
-    </div>
 
     <!--弹出 计算基数-->
 <div class="modal fade" id="jsjs" data-backdrop="static">

+ 1 - 0
web/building_saas/main/html/main.html

@@ -684,6 +684,7 @@
     <script src="/web/building_saas/glj/js/socket.io.slim.js"></script>
     <script src="/public/web/socket/connection.js"></script>
     <script src="/public/web/uuid.js"></script>
+    <script src="/public/web/view_consts.js"></script>
 
     <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
 

+ 14 - 12
web/building_saas/main/js/views/calc_program_manage.js

@@ -14,24 +14,28 @@ let rationPM = {
         ],
         view:{
             comboBox:[],
-            lockColumns:[0,1]
+            lockColumns:[0,1],
+            colHeaderHeight: CP_Col_Width.colHeader,
+            rowHeaderWidth: CP_Col_Width.rowHeader
         }
     },
 
     detailSetting: {
         header:[
             // {headerName:"ID",headerWidth:80,dataCode:"ID", hAlign: "center"},
-            {headerName:"费用代号",headerWidth:80,dataCode:"code", dataType: "String"},
-            {headerName:"费用名称",headerWidth:200,dataCode:"name", dataType: "String"},
-            {headerName:"计算基数",headerWidth:180,dataCode:"dispExprUser", dataType: "String"},
-            {headerName:"基数说明",headerWidth:300,dataCode:"statement", dataType: "String"},
-            {headerName:"费率",headerWidth:80,dataCode:"feeRate", dataType: "Number",hAlign: "left",tofix:feeRate_consts.decimal},
-            {headerName:"字段名称",headerWidth:140,dataCode:"displayFieldName", dataType: "String", hAlign: "center"},
-            {headerName:"备注",headerWidth:100,dataCode:"memo", dataType: "String"}
+            {headerName:"费用代号",headerWidth:CP_Col_Width.code, dataCode:"code", dataType: "String"},
+            {headerName:"费用名称",headerWidth:CP_Col_Width.name, dataCode:"name", dataType: "String"},
+            {headerName:"计算基数",headerWidth:CP_Col_Width.dispExprUser, dataCode:"dispExprUser", dataType: "String"},
+            {headerName:"费率",headerWidth:CP_Col_Width.feeRate, dataCode:"feeRate", dataType: "Number",hAlign: "right",tofix: feeRate_consts.decimal},
+            {headerName:"费用类别",headerWidth:CP_Col_Width.displayFieldName, dataCode:"displayFieldName", dataType: "String", hAlign: "center"},
+            {headerName:"基数说明",headerWidth:CP_Col_Width.statement, dataCode:"statement", dataType: "String"},
+            {headerName:"备注",headerWidth:CP_Col_Width.memo, dataCode:"memo", dataType: "String"}
         ],
         view:{
             comboBox:[],
-            lockColumns:[0,1,2,3,6]
+            lockColumns:[0,1,2,3,6],
+            colHeaderHeight: CP_Col_Width.colHeader,
+            rowHeaderWidth: CP_Col_Width.rowHeader
         }
     },
 
@@ -51,8 +55,7 @@ let rationPM = {
 
         var fieldName = new GC.Spread.Sheets.CellTypes.ComboBox();
         fieldName.items(projectObj.project.calcProgram.calc.compiledFeeTypeNames);
-        // fieldName.items(["直接费","人工费","材料费","机械费","主材费","企业管理费","利润","风险费","人工价差","材料价差","机械价差","工程造价","调整人工费","调整机上人工费","甲供材料费"]);
-        me.detailSpread.getSheet(0).getRange(-1, 5, -1, 1).cellType(fieldName);
+        me.detailSpread.getSheet(0).getRange(-1, 4, -1, 1).cellType(fieldName);
 
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
         me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged);
@@ -64,7 +67,6 @@ let rationPM = {
         feeRateObject.setFeeRateCellCol(dSheet,_.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
         dSheet.name('calc_detail');
         sheetCommonObj.showData(dSheet, me.detailSetting, me.datas[0].calcItems);
-
     },
     onMainEnterCell: function(sender, args) {
         var me = rationPM;

+ 11 - 9
web/building_saas/main/js/views/calc_program_view.js

@@ -201,18 +201,20 @@ let calcProgramObj = {
 
     setting: {
         header: [
-            {headerName: "费用代号", headerWidth: 75, dataCode: "code", dataType: "String", hAlign: "left"},
-            {headerName: "费用名称", headerWidth: 200, dataCode: "name", dataType: "String"},
-            {headerName: "计算基数", headerWidth: 200, dataCode: "dispExprUser", dataType: "String"},
-            {headerName: "基数说明", headerWidth: 400, dataCode: "statement", dataType: "String"},
-            {headerName: "费率", headerWidth: 80, dataCode: "feeRate", dataType: "Number"},   // precision: 3
-            {headerName: "单价", headerWidth: 100, dataCode: "unitFee", dataType: "Number"},  // execRst
-            {headerName: "合价", headerWidth: 100, dataCode: "totalFee", dataType: "Number"},
-            {headerName: "备注", headerWidth: 120, dataCode: "memo", dataType: "String"}
+            {headerName: "费用代号", headerWidth: CP_Col_Width.code, dataCode: "code", dataType: "String", hAlign: "left"},
+            {headerName: "费用名称", headerWidth: CP_Col_Width.name, dataCode: "name", dataType: "String"},
+            {headerName: "计算基数", headerWidth: CP_Col_Width.dispExprUser, dataCode: "dispExprUser", dataType: "String"},
+            {headerName: "基数说明", headerWidth: CP_Col_Width.statement, dataCode: "statement", dataType: "String"},
+            {headerName: "费率", headerWidth: CP_Col_Width.feeRate, dataCode: "feeRate", dataType: "Number"},   // precision: 3
+            {headerName: "单价", headerWidth: CP_Col_Width.unitFee, dataCode: "unitFee", dataType: "Number"},  // execRst
+            {headerName: "合价", headerWidth: CP_Col_Width.totalFee, dataCode: "totalFee", dataType: "Number"},
+            {headerName: "备注", headerWidth: CP_Col_Width.memo, dataCode: "memo", dataType: "String"}
         ],
         view: {
             comboBox: [],
-            lockColumns: [0, 1, 2, 3, 4, 5, 6, 7]
+            lockColumns: [0, 1, 2, 3, 4, 5, 6, 7],
+            colHeaderHeight: CP_Col_Width.colHeader,
+            rowHeaderWidth: CP_Col_Width.rowHeader
         }
     },