zhongzewei 7 лет назад
Родитель
Сommit
a7f49bf6a8

+ 1 - 0
config/gulpConfig.js

@@ -14,6 +14,7 @@ module.exports = {
         'public/web/gljUtil.js',
         'public/web/PerfectLoad.js',
         'lib/lodash/lodash.js',
+        'public/web/commonAlert.js'
     ],
     common_css:[
         'lib/bootstrap/css/bootstrap.min.css',

+ 15 - 0
public/web/commonAlert.js

@@ -0,0 +1,15 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Zhong
+ * @date 2018/6/15
+ * @version
+ */
+
+window.alert = function(str) {
+    $('#commonAlert').find('p').text(str);
+    $('#commonAlert').modal('show');
+};
+

+ 0 - 2
public/web/tree_sheet/tree_sheet_helper.js

@@ -323,8 +323,6 @@ var TREE_SHEET_HELPER = {
             let centerX = hitinfo.cellRect.x + offset + node.depth() * indent + node.depth() * levelIndent + indent / 2;
             let centerY = (hitinfo.cellRect.y + offset + (hitinfo.cellRect.y + offset + hitinfo.cellRect.height)) / 2;
             if (hitinfo.x > centerX - halfBoxLength && hitinfo.x < centerX + halfBoxLength && hitinfo.y > centerY - halfBoxLength && hitinfo.y < centerY + halfBoxLength) {
-                console.log(`hitinfo.sheet.name()`);
-                console.log(hitinfo.sheet.name());
                 node.setExpanded(!node.expanded);
                 let sheetName = hitinfo.sheet.name();
                 if(sheetName === 'stdBillsLib_bills'){

+ 10 - 0
web/building_saas/complementary_ration_lib/js/ration_glj.js

@@ -583,6 +583,16 @@ var rationGLJOprObj = {
         var me = this;
         if (me.cache["_GLJ_" + rationID]) {
             sheetCommonObj.cleanData(me.sheet, me.setting, -1);
+            me.cache["_GLJ_" + rationID].sort(function (a, b) {
+                let rst = 0;
+                if(a.code > b.code){
+                    rst = 1;
+                }
+                else if(a.code < b.code){
+                    rst = -1;
+                }
+                return rst;
+            });
             sheetsOprObj.showData(me.sheet, me.setting, me.cache["_GLJ_" + rationID], me.distTypeTree);
         }
     }

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

@@ -793,7 +793,7 @@
         <div class="modal-dialog" role="document">
             <div class="modal-content" style="width:670px;">
                 <div class="modal-header">
-                    <h5 class="modal-title">计算基选择</h5>
+                    <h5 class="modal-title">计算基选择</h5>
                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                         <span aria-hidden="true">&times;</span>
                     </button>

+ 4 - 4
web/building_saas/main/js/models/ration.js

@@ -550,14 +550,14 @@ var Ration = {
             let needInstall = false;
             if (selected === null) { return; }
             if (selected.sourceType === project.Bills.getSourceType() && selected.depth() > 0) {
-                if (selected.source.children.length > 0) {
+                if(selected.data.type === billType.FB){
+                    return;
+                }
+                else if (selected.source.children.length > 0) {
                     alert('当前清单已有清单子项,不能套用定额。');
                 } else if (selected.data.calcBase&&selected.data.calcBase!="") {
                     alert('当前有基数计算不能插入定额/量价/工料机。');
                 } else {
-                    if(selected.data.type === billType.FB){
-                        return;
-                    }
                     billItemID = selected.source.getID();
                     nextID = selected.tree.rootID();
                     br = this.getBillsSortRation(billItemID);

+ 70 - 55
web/building_saas/main/js/views/character_content_view.js

@@ -29,6 +29,7 @@ let contentOprObj = {
         sheet.bind(EVENTS.ClipboardPasting, me.onClipboardPasting);
         sheet.bind(EVENTS.ClipboardPasted, me.onClipboardPasted);
         sheet.bind(EVENTS.SelectionChanged, me.onSelectionChanged);
+        workBook.bind(EVENTS.RangeChanged, me.onRangeChanged);
         me.bindTools();
     },
     bindTools: function () {
@@ -202,6 +203,24 @@ let contentOprObj = {
             args.sheet.setValue(args.row, args.col, 0);
         }
     },
+    onRangeChanged: function (sender, args) {
+        let me = contentOprObj;
+        let rangeCell = isDef(args.changedCells[0]) ? args.changedCells[0] : null;
+        if(!rangeCell){
+            return;
+        }
+        let rangeData = isDef(me.currentCache[rangeCell.row]) ? me.currentCache[rangeCell.row] : null;
+        if(!rangeData){
+            return;
+        }
+        if(rangeCell.col === 0){//工作内容
+            me.updateContent(rangeData, '');
+        }
+        else if(rangeCell.col === 1){//输出
+            rangeData.isChecked = false;
+            me.save();
+        }
+    },
     //复制粘贴
     onClipboardPasting: function (sender, args) {
         if(projectInfoObj.projectInfo.property.lockBills){
@@ -232,6 +251,7 @@ let contentOprObj = {
     initSelection: function (row) {
         let me = contentOprObj;
         let disObj = {jobAdd: false, jobInsert: true, jobDel: true, jobUp: true, jobDown: true};
+        disObj.jobAdd = !pageCCOprObj.canAddType();
         if(projectInfoObj.projectInfo.property.lockBills){
             disObj.jobAdd = true;
             disObj.jobInsert = true;
@@ -286,7 +306,7 @@ let contentOprObj = {
                 //控制允许右键菜单在哪个位置出现
                 let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.workBook);
                 let sheet = me.workBook.getSheet(0);
-                let addDis = pageCCOprObj.isBillsType() ? false : true,  insertDis = false, delDis = false, upDis = false, downDis = false;
+                let addDis = pageCCOprObj.canAddType() ? false : true,  insertDis = false, delDis = false, upDis = false, downDis = false;
                 if(target.hitTestType === 3){//在表格内&& typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
                     //清单锁定,不可用
                     if(projectInfoObj.projectInfo.property.lockBills){
@@ -581,27 +601,32 @@ let characterOprObj = {
     },
     updateCharacter: function (item, character, value) {
         let me = characterOprObj;
-        if(character){
+        if(character !== null){
             item.character = character;
         }
-        if(value){
-            let isExist = false;
-            for(let i = 0, len = item.eigenvalue.length; i < len; i++){
-                if(item.eigenvalue[i].value === value){
-                    isExist = true;
-                    break;
+        if(value !== null){
+            if(value !== ''){
+                let isExist = false;
+                for(let i = 0, len = item.eigenvalue.length; i < len; i++){
+                    if(item.eigenvalue[i].value === value){
+                        isExist = true;
+                        break;
+                    }
+                }
+                //不存在,新增进eigenvalue,自动打勾输出
+                if(!isExist){
+                    //更新selected
+                    me.insertValue(item, value);
+                    item.isChecked = true;
+                }
+                //存在,选择特征值,自动打勾输出
+                else{
+                    me.changeSelected(item, value);
+                    item.isChecked = true;
                 }
             }
-            //不存在,新增进eigenvalue,自动打勾输出
-            if(!isExist){
-                //更新selected
-                me.insertValue(item, value);
-                item.isChecked = true;
-            }
-            //存在,选择特征值,自动打勾输出
-            else{
-                me.changeSelected(item, value);
-                item.isChecked = true;
+            else {
+                me.unsetSelected(item);
             }
         }
         me.save();
@@ -633,33 +658,15 @@ let characterOprObj = {
     onEditEnded: function (sender, args) {
         let me = characterOprObj, characterTxt;
         let preObj = me.currentCache.length > 0 ?  me.currentCache[me.currentCache.length - 1] : null;
-        if(args.editingText && args.editingText.toString().trim().length > 0){
-            //更新
-            if(args.row < me.currentCache.length){
-                let thisCha = me.currentCache[args.row];
-                if(args.col === 0){//特征
-                   me.updateCharacter(thisCha, args.editingText, null);
-                }
-                else if(args.col === 1){//特征值
-                    me.updateCharacter(thisCha, null, args.editingText);
-                }
-            }
-            /*//新增
-            else{
-                if(args.col === 0){//特征
-                    me.insertCharacter(args.editingText, null);
-                }
-                else if(args.col === 1){//特征值
-                    me.insertCharacter(null, args.editingText);
-                }
-            }*/
-        }
-        else{//恢复
-            if(args.col === 0){
-                args.sheet.setValue(args.row, args.col, me.currentCache.length > args.row ? me.currentCache[args.row].character + '' : '');
+        args.editingText = args.editingText ? args.editingText : '';
+        //更新
+        if(args.row < me.currentCache.length){
+            let thisCha = me.currentCache[args.row];
+            if(args.col === 0){//特征
+                me.updateCharacter(thisCha, args.editingText, null);
             }
-            else if(args.col === 1){
-                args.sheet.setValue(args.row, args.col, me.currentSelectedValue ? me.currentSelectedValue + '' : '');
+            else if(args.col === 1){//特征值
+                me.updateCharacter(thisCha, null, args.editingText);
             }
         }
     },
@@ -696,13 +703,23 @@ let characterOprObj = {
         if(!rangeData){
             return;
         }
-        if(rangeCell.col === 1){//特征值
+        if(rangeCell.col === 0){//特征
+            me.updateCharacter(rangeData, '', null);
+        }
+        else if(rangeCell.col === 1){//特征值
+            me.updateCharacter(rangeData, null, '');
+        }
+        else if(rangeCell.col === 2){
+            rangeData.isChecked = false;
+            me.save();
+        }
+        /*if(rangeCell.col === 1){//特征值
             rangeData.isChecked = false;
             for(let value of rangeData.eigenvalue){
                 value.isSelected = false;
             }
-        }
-        me.save();
+        }*/
+        //me.save();
     },
     //复选框控制输出
     onButtonClicked: function (sender, args) {
@@ -731,12 +748,9 @@ let characterOprObj = {
         }
     },
     initSelection: function (row) {
-        console.log('enter');
         let me = characterOprObj;
         let disObj = {itemAdd: false, itemInsert: true, itemDel: true, itemUp: true, itemDown: true};
-        if(projectObj.project.mainTree.selected.sourceType !== projectObj.project.Bills.getSourceType()){
-            disObj.itemAdd = true;
-        }
+        disObj.itemAdd = !pageCCOprObj.canAddType();
         //清单锁定,不可用
         if(projectInfoObj.projectInfo.property.lockBills){
             disObj.itemAdd = true;
@@ -780,7 +794,7 @@ let characterOprObj = {
                 //控制允许右键菜单在哪个位置出现
                 let target = SheetDataHelper.safeRightClickSelection($triggerElement, e, me.workBook);
                 let sheet = me.workBook.getSheet(0);
-                let addDis = pageCCOprObj.isBillsType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
+                let addDis = pageCCOprObj.canAddType() ? false : true, insertDis = false, delDis = false, upDis = false, downDis = false;
                 if(target.hitTestType === 3){//在表格内 && typeof target.row !== 'undefined' && typeof target.col !== 'undefined'
                     //清单锁定,则不可用
                     if(projectInfoObj.projectInfo.property.lockBills){
@@ -866,11 +880,12 @@ let pageCCOprObj = {
             item.serialNo = count++;
         }
     },
-    //获得造价书当前焦点行的类型:清单、定额
-    isBillsType: function () {
+    //可以添加的类型:分项、补项、清单
+    canAddType: function () {
         let rst = false;
         let selectedNode = projectObj.mainController.tree.selected;
-        if(selectedNode && selectedNode.sourceType === projectObj.project.Bills.getSourceType()){//为清单
+        if(selectedNode && selectedNode.sourceType === projectObj.project.Bills.getSourceType() &&
+            (selectedNode.data.type === billType.FX || selectedNode.data.type === billType.BX || selectedNode.data.type === billType.BILL)){//为清单
             rst = true
         }
         return rst;

+ 2 - 0
web/building_saas/main/js/views/std_bills_lib.js

@@ -274,9 +274,11 @@ var billsLibObj = {
                     if (resultIndex === result.length - 1) {
                         stdBillsTreeController.setTreeSelected(result[0]);
                         billsLibObj.stdBillsSpread.getActiveSheet().setSelection(result[0].serialNo(), sel[0].col, 1, 1);
+                        billsLibObj.stdBillsSpread.getActiveSheet().showRow(result[0].serialNo(), GC.Spread.Sheets.VerticalPosition.top);
                     } else {
                         stdBillsTreeController.setTreeSelected(result[resultIndex + 1]);
                         billsLibObj.stdBillsSpread.getActiveSheet().setSelection(result[resultIndex + 1].serialNo(), sel[0].col, 1, 1);
+                        billsLibObj.stdBillsSpread.getActiveSheet().showRow(result[resultIndex + 1].serialNo(), GC.Spread.Sheets.VerticalPosition.top);
                     }
                 });
             } else {

+ 1 - 1
web/building_saas/pm/html/project-management-Recycle.html

@@ -1,5 +1,5 @@
 <div class="toolsbar">
-    <legend class="m-0 pb-1">全部</legend>
+    <legend class="m-0 pb-1">回收站</legend>
 </div>
 <div class="top-content">
   <!--  <div class="main-data-top" id="gc_waiting">

+ 4 - 2
web/building_saas/pm/js/pm_newMain.js

@@ -950,7 +950,7 @@ const projTreeObj = {
             refreshNodes = refreshNodes.concat(me.calEngineeringCost(oldProject));
             refreshNodes = refreshNodes.concat(me.calEngineeringCost(parent));
         }
-       // projTreeObj.remove(sheet, fromRow, rCout);
+        // projTreeObj.remove(sheet, fromRow, rCout);
 
         me.renderSheetFuc(sheet, function () {
             sheet.deleteRows(fromRow, rCout);
@@ -962,7 +962,7 @@ const projTreeObj = {
             children.push(newNode);
             for(let c of children){
                 sheet.getCell(c.serialNo(), 0).cellType(me.getTreeNodeCell(me.tree));
-               // me.refreshNodeData(c);
+                // me.refreshNodeData(c);
             }
             refreshNodes = refreshNodes.concat(children);
             me.refreshNodeData(refreshNodes);
@@ -2008,6 +2008,7 @@ function AddEngineering() {
  */
 function AddTender() {
     try {
+        $('#add-tender-confirm').addClass('disabled');
         let projName = $("#poj-name").val().trim();
         if(projName === ''){
             replaceClass($('#poj-name-info'), 'text-info', 'text-danger');
@@ -2073,6 +2074,7 @@ function AddTender() {
         let engineeringName = $('#tender-engineering').children("option:selected").text();
 
         let callback = function() {
+            $('#add-tender-confirm').removeClass('disabled');
             $("#add-tender-dialog").modal("hide");
             $('#tender-name').val('');
             $("#tender-fee-rate").children("option").removeAttr("selected");

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

@@ -87,6 +87,20 @@
         </div>
     </div>
 </div>
+<!--弹出警告-->
+<div style="z-index: 1080;" class="modal fade" id="commonAlert" data-backdrop="false" style="display: none;" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content" style="box-shadow: 0px 0px 5px #888888; width: 450px; height: 140px; left: 50%; transform: translate(-50%, 0%); top: -15px;">
+            <div class="modal-body">
+                <h5 style="margin-left: 10px;">提示</h5>
+                <p style="margin-top: 20px; margin-left: 10px; color: #757575; font-size: 14px"></p>
+                <div style="margin-top: 10px; margin-left: 350px">
+                    <button style="width: 65px; height: 30px; border-radius: 0.2rem; background: #4285F4; color: White; border: hidden; cursor:pointer" href="javascript: void(0);" data-dismiss="modal">确认</button>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
 <!-- inject:js -->
 <script src="/lib/jquery/jquery-3.2.1.min.js"></script>
 <script type="text/javascript" src="/web/building_saas/js/moment.min.js"></script>
@@ -95,4 +109,5 @@
 <script type="text/javascript" src="/public/web/gljUtil.js"></script>
 <script type="text/javascript" src="/public/web/PerfectLoad.js"></script>
 <script type="text/javascript" src="/lib/lodash/lodash.js"></script>
+<script type="text/javascript" src="/public/web/commonAlert.js"></script>
 <!-- endinject -->