소스 검색

Merge branch '1.0.0_online' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost into 1.0.0_online

zhongzewei 7 년 전
부모
커밋
370fbd0cba

+ 8 - 1
modules/pm/facade/pm_facade.js

@@ -394,7 +394,7 @@ async function copyInstallFee(originalPID,newProjectID) {
     return result;
 }
 
-async function copyRationSubList(originalPID,newProjectID,billIDMap,rationIDMap,projectGLJIDMap,model) {// 定额工料机,附注条件,工程量明细,定额安装增加费
+async function copyRationSubList(originalPID,newProjectID,billIDMap,rationIDMap,projectGLJIDMap,model) {// 定额工料机,附注条件,工程量明细,定额安装增加费,模板子目
     let subList = await model.find({projectID:originalPID}, '-_id');
     let newList =[];
     for(let s of subList){
@@ -404,7 +404,14 @@ async function copyRationSubList(originalPID,newProjectID,billIDMap,rationIDMap,
         s._doc.billID&&billIDMap[s._doc.billID]?s._doc.billID = billIDMap[s._doc.billID]:'';
         s._doc.billsItemID&&billIDMap[s._doc.billsItemID]?s._doc.billsItemID = billIDMap[s._doc.billsItemID]:'';
         s._doc.projectGLJID&&projectGLJIDMap[s._doc.projectGLJID]?s._doc.projectGLJID = projectGLJIDMap[s._doc.projectGLJID]:'';
+        if(s._doc.templateList && s._doc.templateList.length > 0 ){
+            for(let t of s._doc.templateList){
+                if(t.billID && billIDMap[t.billID]) t.billID =  billIDMap[t.billID];
+                if(t.fxID && billIDMap[t.fxID]) t.fxID =  billIDMap[t.fxID];
+            }
+        }
         newList.push(s._doc);
+
     }
     await insertMany(newList,model);
 }

+ 2 - 2
modules/ration_glj/facade/glj_calculate_facade.js

@@ -373,13 +373,13 @@ function getCalculateResult(quantify,c,coe,gljList,decimal) {
         case '+*' :
             o_glj = getCoeSelectedGLJ(gljList,coe.original_code,coe.select_code);
             if(o_glj){
-              q = q +  c.amount * scMathUtil.roundForObj(o_glj.quantity,decimal);
+              q = q +  c.amount * scMathUtil.roundForObj(o_glj.rationItemQuantity,decimal);
             }
             break;
         case '-*' :
             o_glj = getCoeSelectedGLJ(gljList,coe.original_code,coe.select_code);
             if(o_glj){
-                q = q -  c.amount * scMathUtil.roundForObj(o_glj.quantity,decimal);
+                q = q -  c.amount * scMathUtil.roundForObj(o_glj.rationItemQuantity,decimal);
             }
             break;
         case '=' :

+ 4 - 0
modules/users/controllers/login_controller.js

@@ -43,6 +43,10 @@ class LoginController {
             // 调用接口验证登录信息
             let userModel = new UserModel();
             let responseData = await userModel.getInfoFromSSO(account, password);
+            // 先判断返回值是否为未激活状态
+            if ( responseData === '-3') {
+                throw '因邮箱未完成认证,账号未激活;去<a href="https://sso.smartcost.com.cn" target="_blank">激活</a>。';
+            }
             responseData = JSON.parse(responseData);
             if (typeof responseData !== 'object') {
                 throw '邮箱/手机 或 密码错误';

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

@@ -318,7 +318,7 @@
                                       <div id="tzjnrCon" class="container-fluid main-data-bottom" style="background: #F1F1F1; overflow: hidden">
                                           <div class="row" style="overflow: hidden">
                                               <div class="p-0" id="contentDiv" style="width: 90%; float: left">
-                                                  <div id="jobDiv" style="width: 25%; height: 100%;float: left">
+                                                  <div id="jobDiv" style="width: 33%; height: 100%;float: left">
                                                       <div class="main-data-bottom ovf-hidden" id="jobSpread" style="width: 99%; float: left; position: relative">
                                                           <!--工具栏-->
                                                           <div class="bottom-tznrTools btn-group position-absolute">
@@ -331,7 +331,7 @@
                                                       </div>
                                                       <div class="resize-x" id="TZJNRResize"></div>
                                                   </div>
-                                                  <div id="itemDiv" style="width: 75%; height: 100%; float: left;">
+                                                  <div id="itemDiv" style="width: 67%; height: 100%; float: left;">
                                                       <div class="main-data-bottom ovf-hidden" id="itemSpread" style="position: relative;">
                                                           <!--工具栏-->
                                                           <div class="bottom-tznrTools btn-group position-absolute">
@@ -1295,6 +1295,24 @@
                                     <input class="form-control feerateInput" id="inputFeeRate" value="">
                                 </div>
                             </div>-->
+                            <div class="form-check form-check-inline">
+                                <input class="form-check-input" type="radio" name="editFeeRateOptions" id="inputFeeRate" value="0">
+                                <label class="form-check-label" for="inputFeeRate">自定义费率</label>
+                            </div>
+                            <div class="form-check form-check-inline">
+                                <input class="form-check-input" type="radio" name="editFeeRateOptions" id="selectStd" value="1">
+                                <label class="form-check-label" for="selectStd">选择标准费率</label>
+                            </div>
+                            <div id="selfDiv">
+                                <div class="form-group row">
+                                    <label class="col-auto col-form-label col-form-label-sm">手工输入费率</label>
+                                    <div class="col">
+                                        <div class="input-group input-group-sm">
+                                            <input id="customFeeRate" type="text" class="form-control"  placeholder="输入费率" style="width:100px">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
                             <div class="modal-fixed-height" style="overflow: hidden" id="fee_rate_sheet">
                             </div>
                         </div>

+ 39 - 1
web/building_saas/main/js/views/fee_rate_view.js

@@ -188,6 +188,29 @@ var feeRateObject={
             return 0
         }
     },
+    initFeeRateEditDiv:function(optionValue){//“0” 手工输入; “1” 选择费率
+        let radioValue = optionValue,feeRateValue;
+        if(!gljUtil.isDef(optionValue)){
+            let fID = 0;
+            if ($("#calc_program_manage").is(":visible")){
+                fID = calcProgramManage.getSelectionInfo().calcItem.feeRateID;
+                feeRateValue = calcProgramManage.getSelectionInfo().calcItem.feeRate;
+            } else if ($("#zaojiashu").is(":visible")){
+                fID = projectObj.project.mainTree.selected.data.feeRateID;
+                feeRateValue = projectObj.project.mainTree.selected.data.feeRate;
+            }
+            radioValue = fID?"1":"0";
+            $("#customFeeRate").val(feeRateValue);
+        }
+        $("input[name='editFeeRateOptions'][value='"+radioValue+"']").attr("checked",true);
+        if(radioValue == "0"){
+            $("#selfDiv").show();
+            $("#fee_rate_sheet").hide();
+        }else {
+            $("#selfDiv").hide();
+            $("#fee_rate_sheet").show();
+        }
+    },
     locate: function(){   // CSL,2018.07.18
         let sheet = feeRateObject.feeRateSpreads.getSheet(0);
         let fID = 0;
@@ -1109,6 +1132,7 @@ $(function(){
         if(feeRateObject.feeRateSpreads==null){
             feeRateObject.createSheet();
         }
+        feeRateObject.initFeeRateEditDiv();
         feeRateObject.feeRateSelection=null;
         feeRateObject.showFeeRateTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
         feeRateObject.locate();
@@ -1134,7 +1158,21 @@ $(function(){
             return;
         }
         feeRateObject.submitFeeRateBySelect();
-    })
+    });
+    $("input[name='editFeeRateOptions']").each(function(){
+        $(this).click(function(){
+            let optins = $(this).val();
+            if(optins == "0"){
+                $("#selfDiv").show();
+                $("#fee_rate_sheet").hide();
+            }else {
+                $("#selfDiv").hide();
+                $("#fee_rate_sheet").show(function () {
+                    feeRateObject.feeRateSpreads.refresh();
+                });
+            }
+        });
+    });
 })
 function changeFRadioClick() {
     var radioV= $("input[name='chaneg-lv-Radio']:checked").val();

+ 18 - 7
web/building_saas/main/js/views/project_view.js

@@ -3283,10 +3283,23 @@ $('#calcBaseFeeRateConf').click(function () {
     if(!toggle || toggle !== 'commonTotalFee'){
         return
     }
-    let needToSave = false;
-    let validateFeeRate = feeRateObject.checkSelectedFeeRate();
     let calcBaseValue = calcBaseView.getInputExpr() ? calcBaseView.getInputExpr() : '';
     let selected = projectObj.project.mainTree.selected;
+    let needToSave = false,validateFeeRate=false,cusFeeRate = false;
+    if($("input[name='editFeeRateOptions']:checked").val() == "0"){ //等于”0“ 是自定义输入,删除费率关联ID,直接取值
+        let newVal = null;
+        if($("#customFeeRate").val() != ""){
+            newVal = number_util.checkNumberValue( $("#customFeeRate").val(),getDecimal("feeRate"));
+            if(newVal == null) return
+        }
+        selected.data.feeRateID = null;
+        selected.data.feeRate = newVal;
+        selected.changed = true;
+        needToSave = true;
+        cusFeeRate = true;
+    }else {
+        validateFeeRate =  feeRateObject.checkSelectedFeeRate();
+    }
     if(calcBaseValue !== selected.data.calcBase){
         needToSave = true;
         selected.data.userCalcBase = calcBaseValue;
@@ -3294,16 +3307,14 @@ $('#calcBaseFeeRateConf').click(function () {
     }
     if(validateFeeRate){
         feeRateObject.submitFeeRateFromBill();
-    }
-    else {
+    } else {
         if(calcBaseValue === calcBaseValue){
             $('#calcBaseFeeRate').modal('hide');
         }
     }
-    if(!projectObj.project.calcBase.success){
+    if(!projectObj.project.calcBase.success && cusFeeRate==false){
         return;
-    }
-    else if((!validateFeeRate || selected.data.feeRateID === parseInt(feeRateObject.feeRateSelection.ID)) && needToSave) {
+    } else if((!validateFeeRate || selected.data.feeRateID === parseInt(feeRateObject.feeRateSelection.ID)) && needToSave) {
         projectObj.project.calcProgram.calcAndSave(selected);
         $('#calcBaseFeeRate').modal('hide');
     }

web/dest/css/img/blocklib.png → web/dest/css/img/blockLib.png


+ 1 - 1
web/over_write/js/jiangxi_2017.js

@@ -123,7 +123,7 @@ function overwriteRationCalcBases (taxType){
 (function overwriteFeeTypes() {
     if (typeof cpFeeTypes == 'undefined') return;
     cpFeeTypes = [
-        {type: 'direct', name: '直接费'},
+        // {type: 'direct', name: '直接费'},
         {type: 'labour', name: '人工费'},
         {type: 'marketLabour', name: '市场价人工费'},
         {type: 'marketMaterial', name: '市场价材料费'},

+ 2 - 1
web/users/html/login.html

@@ -18,7 +18,8 @@
         <form class="form-signin" method="post" onsubmit="return false">
             <h1 class="d-flex justify-content-center mb-5">纵横建筑云计价</h1>
             <div class="form-group">
-                <input id="inputEmail" class="form-control " name="inputEmail" placeholder="通行账号 邮箱/手机" autofocus="" />
+                <input id="inputEmail" class="form-control " name="inputEmail" placeholder="邮箱/手机" autofocus="" />
+                <small id="emailHelp" class="form-text text-danger"></small>
             </div>
             <div class="form-group">
                 <input id="inputPassword" class="form-control " name="inputPassword" placeholder="输入密码" type="password"/>

+ 35 - 30
web/users/js/login.js

@@ -15,39 +15,44 @@ $(document).ready(function () {
         let account = $("#inputEmail").val();
         let pw = $("#inputPassword").val();
 
-        $.ajax({
-            url: '/login',
-            type: 'post',
-            data: {"account": account, "pw": pw},
-            success: function (response) {
-                if (response.error === 0) {
-                    const url = response.last_page !== null && response.last_page !== undefined && response.last_page !== '' ?
-                        response.last_page : '/pm';
-                    if (response.login_ask === 0) {
-                        location.href = url;
-                    } else {
-                        response.compilation_list = response.compilation_list === undefined || response.compilation_list === '' ?
-                            null : JSON.parse(response.compilation_list);
-                        if (response.compilation_list === null || response.compilation_list.length <= 0) {
+        // 判断输入的邮箱/手机是否格式正确
+        if(/^1[3456789]\d{9}$/.test(account) || /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(account)) {
+            $.ajax({
+                url: '/login',
+                type: 'post',
+                data: {"account": account, "pw": pw},
+                success: function (response) {
+                    if (response.error === 0) {
+                        const url = response.last_page !== null && response.last_page !== undefined && response.last_page !== '' ?
+                            response.last_page : '/pm';
+                        if (response.login_ask === 0) {
                             location.href = url;
-                            return false;
+                        } else {
+                            response.compilation_list = response.compilation_list === undefined || response.compilation_list === '' ?
+                                null : JSON.parse(response.compilation_list);
+                            if (response.compilation_list === null || response.compilation_list.length <= 0) {
+                                location.href = url;
+                                return false;
+                            }
+                            console.log(response.compilation_list);
+                            setVersion(response.compilation_list);
+                            $('#ver').modal('show');
                         }
-                        console.log(response.compilation_list);
-                        setVersion(response.compilation_list);
-                        $('#ver').modal('show');
+                    } else if(response.error === 2) {
+                        $('#check_ssoId').val(response.ssoId);
+                        $('#phone').modal('show');
+                    } else {
+                        let msg = response.msg !== undefined ? response.msg : '未知错误';
+                        showError(msg, $("input"));
                     }
-                } else if(response.error === 2) {
-                    $('#check_ssoId').val(response.ssoId);
-                    $('#phone').modal('show');
-                } else {
-                    let msg = response.msg !== undefined ? response.msg : '未知错误';
-                    showError(msg, $("input"));
+                },
+                error: function (result) {
+                    showError('内部程序错误', null);
                 }
-            },
-            error: function (result) {
-                showError('内部程序错误', null);
-            }
-        });
+            });
+        } else {
+            $('#emailHelp').text('您输入的 邮箱/手机 格式不对');
+        }
     });
 
     $("input").blur(function () {
@@ -224,7 +229,7 @@ function showError(msg, element) {
     if (element !== null) {
         element.parent().addClass('has-danger');
     }
-    $("#message").text(msg);
+    $("#message").html(msg);
     $("#error-tips").show("fast");
 }