Browse Source

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/ConstructionCost

chenshilong 5 years ago
parent
commit
b52e51ed22

+ 18 - 1
public/common_util.js

@@ -88,6 +88,22 @@ function deleteEmptyObject(arr) {
             return sorted;
         }
     }
+    
+    // 控制全屏(浏览器有限制)
+    // Element.requestFullscreen的全屏和“F11”的全屏是不一样的。前者是将相关Element变成全屏显示。后者是将浏览器导航、标签等隐藏。
+    // Fullscreen API对于全屏的判断和监听都是基于Element.requestFullscreen的,比如Document.fullscreenElement。通过F11触发的全屏Document.fullscreenElement返回null,无法正确返回全屏状态。
+    // F11全屏后,无法通过Fullscreen API对全屏状态判断,会导致F11全屏后点击按钮变成了再次调用api全屏。因此,使用window.innerHeight和window.screen.height作为判断。(打开了控制台后,此方法可能会失效:无法正确或缺innerHeight)
+    // 通过F11打开全屏后,没有办法通过代码退出全屏,只能通过F11退出:
+    // https://stackoverflow.com/questions/51114885/combining-requestfullscreen-and-f11; https://stackoverflow.com/questions/43392583/fullscreen-api-not-working-if-triggered-with-f11/44368592#44368592;
+    function handleFullscreen() {
+        const isFullscreen = window.innerHeight === window.screen.height;
+        if (isFullscreen) {
+            const p = document.exitFullscreen();
+            p.catch(() => alert('按F11即可退出全屏模式'));
+        } else {
+            document.documentElement.requestFullscreen();
+        }
+    }
 
     return {
         isDef,
@@ -96,6 +112,7 @@ function deleteEmptyObject(arr) {
         similarEqual,
         getRequired,
         getSortedTreeData,
-        isNotEmptyObject
+        isNotEmptyObject,
+        handleFullscreen
     };
 });

+ 5 - 0
public/web/syntax-detection.js

@@ -150,6 +150,11 @@ function checkSyntax() {
             }
         }
 
+        // DOM
+        if (typeof document.documentElement.requestFullscreen !== 'function') {
+            throw new TypeError('document.documentElement.requestFullscreen is not a function');
+        }
+
     } catch (err) {
         console.log(err);
         return false;

+ 6 - 1
web/building_saas/main/js/views/character_content_view.js

@@ -465,7 +465,8 @@ let characterOprObj = {
     setting: {
         header: [
             {headerName:"项目特征",headerWidth:120, rateWidth:0.9, dataCode:"character", dataType: "String", hAlign: "left", vAlign: "center", formatter: '@'},
-            {headerName:"特征值",headerWidth:160,dataCode:"eigenvalue", dataType: "String", cellType: "comboBox", hAlign: "left", vAlign: "center", formatter: '@'},
+            {headerName:"特征值",headerWidth:160,dataCode:"eigenvalue", dataType: "String", hAlign: "left", vAlign: "center", formatter: '@'},
+            //{headerName:"特征值",headerWidth:160,dataCode:"eigenvalue", dataType: "String", cellType: "comboBox", hAlign: "left", vAlign: "center", formatter: '@'},
             {headerName:"输出",headerWidth:40,dataCode:"isChecked", cellType:"checkBox", hAlign: "center", vAlign: "center"}
         ]
     },
@@ -1051,6 +1052,10 @@ let pageCCOprObj = {
             for (let row = 0; row < data.length; row++) {
                 sheet.getCell(row, 0).locked(true);//locked
                 let val = data[row][setting.header[col].dataCode];
+                if (setting.header[col].dataCode === 'eigenvalue') { // 2020-7-6: 暂时取消下拉
+                    const selectedItem = val.find(v => v.isSelected);
+                    val = selectedItem && selectedItem.value || '';
+                }
                 if(setting.header[col].cellType === "checkBox"){
                     let checkBox = new GC.Spread.Sheets.CellTypes.CheckBox();
                     checkBox.isThreeState(false);

+ 3 - 31
web/building_saas/main/js/views/project_view.js

@@ -1323,9 +1323,7 @@ var projectObj = {
                     }
                 },
                 "insertFX": {
-                    type: projectObj.registerFlexibleInsertBillMenu(billType.FX),
-                    name: "插入分项",
-                    icon: 'fa-sign-in',
+                    type: projectObj.registerFlexibleInsertBillMenu(billType.FX), // 插入分项
                     disabled: function () {
                         if (projectReadOnly) {
                             return true;
@@ -1352,10 +1350,6 @@ var projectObj = {
                         }
                         return true;//除了清单,其它类型都只读
                     },
-                   /*  callback: function (key, opt) {
-                        ProjectController.addFX(project, controller);
-                        projectObj.selectColAndFocus(project.mainTree.selected);
-                    }, */
                     visible: function(key, opt){
                         if(project.mainTree.selected){
                             return project.Bills.isFBFX(project.mainTree.selected );//不属于分部分项的话隐藏
@@ -1365,9 +1359,7 @@ var projectObj = {
                     }
                 },
                 "insertBills": {
-                    type: projectObj.registerFlexibleInsertBillMenu(billType.BILL),
-                    name: "插入清单",
-                    icon: 'fa-sign-in',
+                    type: projectObj.registerFlexibleInsertBillMenu(billType.BILL), // 插入清单
                     disabled: function () {
                         if (projectReadOnly) {
                             return true;
@@ -1378,16 +1370,6 @@ var projectObj = {
                         }
                         return true;
                     },
-                    /* callback: function (key, opt) {
-                        if(project.mainTree.selected.data.type == billType.DXFY){
-                            if(project.mainTree.selected.data.calcBase&&project.mainTree.selected.data.calcBase!=""){
-                                alert("当前有基数计算,不能插入子项。");
-                                return;
-                            }
-                        }
-                        ProjectController.addBills(project, controller);
-                        projectObj.selectColAndFocus(project.mainTree.selected);
-                    }, */
                     visible: function(key, opt){
                         if(project.mainTree.selected){
                             return  project.Bills.isFBFX(project.mainTree.selected)==true?false:true;
@@ -1398,9 +1380,7 @@ var projectObj = {
                 },
                 "spr1": '--------',
                 "insertRation": {
-                    type: projectObj.registerFlexibleInsertRatoinMenu(),
-                    name: "插入定额",
-                    icon: 'fa-sign-in',
+                    type: projectObj.registerFlexibleInsertRatoinMenu(), // 插入定额
                     disabled: function () {
                         if (projectReadOnly) {
                             return true;
@@ -1410,14 +1390,6 @@ var projectObj = {
                         // 工具栏要加按钮,且不能隐藏。菜单可以隐藏,两者又必须统一,所以启用新规则。怕以后又要改回来,所以保留。 CSL, 2018-01-02
                         return !project.Ration.canAdd(project.mainTree.selected);
                     },
-                    /* callback: function (key, opt) {
-                        project.Ration.addNewRation(null,rationType.ration,projectObj.selectColAndFocus,false);
-                        // ProjectController.addRation(project, controller, rationType.ration);
-                    } *//*,
-                     visible: function(key, opt){
-                     var selected = project.mainTree.selected;
-                     return canInsertRationNode(selected);
-                     }*/
                 },
                 "insertLJ": {
                     name: "插入量价",//插入量价不需要自动定位到编号列

+ 3 - 0
web/common/html/header.html

@@ -51,6 +51,9 @@
                     <a class="dropdown-item" href="/logout">退出登录</a>
                 </div>
             </li>
+            <li class="nav-item">
+            <a id="fullscreen-a" href="javascript:void(0);" class="nav-link" onclick="commonUtil.handleFullscreen()"><span><i class="fa fa-window-maximize "></i> 全屏</span></a>
+              </li>
             <% if (!versionName.includes('免费')) {%>
               <li class="nav-item">
                 <a href="user/buy" target="_blank"><img src="/web/building_saas/img/vip.png" data-toggle="tooltip" data-placement="bottom" data-original-title="专业版用户"></a>