Browse Source

1.新增项目属性的"呈现选项"以及其功能
2.设置session过期时间

olym 7 years ago
parent
commit
cf55b5ce6b

+ 4 - 1
modules/main/models/proj_setting_model.js

@@ -3,7 +3,7 @@
  */
 
 let baseModel = require('./base_model');
-import {default as projSettingSchema, collectionName as collectionName, settingConst as settingConst} from "./schemas/proj_setting";
+import {default as projSettingSchema, collectionName as collectionName, settingConst as settingConst, displayOption as displayOption} from "./schemas/proj_setting";
 
 class projSettingModel extends baseModel {
 
@@ -22,6 +22,9 @@ class projSettingModel extends baseModel {
                 if (!data.zanguCalcMode) {
                     data.zanguCalcMode = settingConst.zanguCalcMode.common;
                 }
+                if (!data.displayOption) {
+                    data.displayOption = displayOption;
+                }
                 data.settingConst = settingConst;
                 callback(0, collectionName, data);
             } else {

+ 10 - 1
modules/main/models/schemas/proj_setting.js

@@ -16,6 +16,11 @@ let settingConst = {
 let billsCalcModeConst = {
     
 };
+// 呈现选项
+const displayOption = {
+    autoHeight: 0,
+    rationDisplay: 0
+};
 let projSettingSchema = {
     projectID: Number,
     // 列设置
@@ -30,7 +35,11 @@ let projSettingSchema = {
     zanguCalcMode: {
         type: Number,
         default: settingConst.zanguCalcMode.common
+    },
+    displayOption: {
+        type: Schema.Types.Mixed,
+        default: displayOption
     }
 };
 let model = mongoose.model(collectionName, new Schema(projSettingSchema, {versionKey: false, collection: collectionName}));
-export {model as default, collectionName as collectionName, settingConst as settingConst};
+export {model as default, collectionName as collectionName, settingConst as settingConst, displayOption as displayOption};

+ 2 - 1
server.js

@@ -52,7 +52,8 @@ app.use(bodyParser.json({limit: '3mb'}));
 app.use(session({
     name: 'usersSession',
     secret: 'session users secret',
-    cookie: {maxAge: 1000*60*60},
+    // @todo 上线前修改回正常值 (目前为24小时)
+    cookie: {maxAge: 3600 * 24 * 1000},
     resave: false,
     rolling: true,
     saveUninitialized: true

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

@@ -235,6 +235,7 @@
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-billsQuanDecimal" id="tab_poj-settings-bqDecimal" role="tab">清单工程量精度</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-decimal" role="tab" id="tab_poj-settings-decimal">小数位数</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-6" role="tab" id="tab_poj-settings-6">人工单价调整</a></li>
+                                <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-display" role="tab" id="tab_poj-settings-display">呈现选项</a></li>
                             </ul>
                         </div>
                         <div class="col-9">
@@ -383,6 +384,25 @@
                                     <div style="height:8px;"></div>
                                     <div class="modal-auto-height" id="labourCoeSpread"></div>
                                 </div>
+                                <!--呈现选项-->
+                                <div class="tab-pane fade" id="poj-settings-display" role="tabpanel">
+                                    <div class="modal-auto-height" style="overflow: hidden">
+                                        <fieldset class="form-group">
+                                            <div class="form-check">
+                                                <label class="form-check-label">
+                                                    <input class="form-check-input" id="autoHeight" value="1" type="checkbox">
+                                                    造价书表格自动调整行高
+                                                </label>
+                                            </div>
+                                            <div class="form-check">
+                                                <label class="form-check-label">
+                                                    <input class="form-check-input" id="rationDisplay" value="1" type="checkbox">
+                                                    定额下显示主材、设备
+                                                </label>
+                                            </div>
+                                        </fieldset>
+                                    </div>
+                                </div>
                             </div>
                         </div>
                     </div>

+ 32 - 1
web/building_saas/main/js/views/project_view.js

@@ -369,6 +369,8 @@ var projectObj = {
                 that.project.projSetting.mainGridSetting = JSON.parse(str);
                 that.project.projSetting.mainGridSetting.frozenCols = 4;
                 TREE_SHEET_HELPER.initSetting($('#billsSpread')[0], that.project.projSetting.mainGridSetting);
+                // 呈现选项中的自动行高
+                const autoHeight = that.project.projSetting.displayOption.autoHeight === 1;
                 that.project.projSetting.mainGridSetting.cols.forEach(function (col) {
                     // for test.  后端没有绑定,暂时写死用于测试。
 /*                    if (col.data.field == '' && col.head.titleNames[0] == "取费专业") {
@@ -403,6 +405,19 @@ var projectObj = {
                         col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.unitPrice, true)
                     else if (col.data.field == "quantity")
                         col.data.formatter = MainTreeCol.getNumberFormatter(decimalObj.ration.quantity, true);
+
+                    // 根据配置设置自动行高
+                    if (col.data.field === 'name' || col.data.field === 'itemCharacterText' ||
+                        col.data.field === 'jobContentText' || col.data.field === 'adjustState') {
+                        if (!autoHeight) {
+                            col.data.wordWrap = false;
+                            col.showHint = true;
+                        } else {
+                            col.data.wordWrap = true;
+                            col.showHint = false;
+                        }
+                    }
+
                 });
 
                 that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), that.project.projSetting.mainGridSetting);
@@ -639,12 +654,20 @@ $('#poj-set').on('show.bs.modal', function () {
         mode = projectObj.project.projSetting.zanguCalcMode;
         setCalcFlag($('#zangu_common'), settingConst.zanguCalcMode.common, mode);
         setCalcFlag($('#zangu_gatherMatherial'), settingConst.zanguCalcMode.gatherMaterial, mode);
+
+        // 呈现选项
+        setCalcFlag($('#autoHeight'), 1, projectObj.project.projSetting.displayOption.autoHeight);
+        setCalcFlag($('#rationDisplay'), 1, projectObj.project.projSetting.displayOption.rationDisplay);
     }
 });
 $('#property_ok').click(function () {
     let project = projectObj.project, reCalc= false;
     let mode = parseInt($("input[name='calcFlag']:checked").val());
     let zanguMode = parseInt($("input[name='zangu']:checked").val());
+    // 呈现选项
+    const autoHeight = $("#autoHeight:checked").length > 0 ? 1 : 0;
+    const rationDisplay = $("#rationDisplay:checked").length > 0 ? 1 : 0;
+
     if (mode !== project.projSetting.billsCalcMode) {
         project.setBillsCalcMode(mode);
         reCalc = true;
@@ -657,6 +680,10 @@ $('#property_ok').click(function () {
         labourCoeView.save();
         reCalc = true;
     }
+    if (autoHeight !== project.projSetting.displayOption.autoHeight ||
+        rationDisplay !== project.projSetting.displayOption.rationDisplay) {
+        reCalc = true;
+    }
     if (reCalc) {
         // projectObj.calculateAll();
 /*        project.pushNow('editBillsCalcMode',
@@ -668,7 +695,11 @@ $('#property_ok').click(function () {
         );*/
         project.pushNow('', [project.projSetting.moduleName], [{
             projectID: project.ID(),
-            billsCalcMode: project.projSetting.billsCalcMode
+            billsCalcMode: project.projSetting.billsCalcMode,
+            displayOption: {
+                autoHeight: autoHeight,
+                rationDisplay: rationDisplay
+            }
         }]);
         project.calcProgram.calcAllNodes(calcAllType.catBills);
     }