Browse Source

项目属性更改,新增建设项目编制说明

zhongzewei 6 years ago
parent
commit
361cdac560

+ 1 - 0
modules/all_models/stdRation_lib.js

@@ -7,6 +7,7 @@ const Schema = mongoose.Schema;
 const RepositoryMapSchema = new Schema({
     "ID": Number,
     "dispName" : String,
+    "libCode": String, //定额库编号
     "appType" : String, //如:"建筑" / "公路"
     "localeType": String, //如 各个省份 / 部颁
     "descr" : String,

+ 14 - 5
modules/pm/controllers/pm_controller.js

@@ -113,6 +113,14 @@ module.exports = {
                 }
                 delete datas.properties['property.basicInformation'];
             }
+            //建设项目-编制说明,更新建设项目
+            if (datas.properties['property.compilationIllustrationProject']) {
+                let constructionProject = await pm_facade.getConstructionProject(datas.projectID);
+                if (constructionProject) {
+                    functions.push(updateFunc(projectModel, {ID: constructionProject.ID}, {'property.compilationIllustration': datas.properties['property.compilationIllustrationProject']}));
+                }
+                delete datas.properties['property.compilationIllustrationProject'];
+            }
             functions.push(updateFunc(projectModel, {ID: datas.projectID}, datas.properties));
         };
 
@@ -209,11 +217,12 @@ module.exports = {
                     }
                     projInfo.engineeringInfo = engineeringInfo;
                 }
-                //读取建设项目的基本信息
-                let basicInfo = await ProjectsData.getBasicInfo(projectID);
-                if(basicInfo !== null){
-                    projInfo.property.basicInformation = basicInfo;
-                }
+                //读取建设项目的项目属性
+                let constructionProperty = await ProjectsData.getConstructionProperty(projectID);
+                //基本信息
+                projInfo.property.basicInformation = constructionProperty && constructionProperty.basicInformation ? constructionProperty.basicInformation : [];
+                //编制说明
+                projInfo.property.compilationIllustrationProject = constructionProperty && constructionProperty.compilationIllustration ? constructionProperty.compilationIllustration : '';
                 //获取单位工程完整目录结构
                 let fullPath = await pm_facade.getFullPath(projectID);
                 projInfo.fullPath = fullPath;

+ 4 - 4
modules/pm/models/project_model.js

@@ -803,14 +803,14 @@ ProjectsDAO.prototype.getSummaryFees = async function (ID) {
 ProjectsDAO.prototype.updateUnitFileToProject=async function(projectID,unitFile){
     return await Projects.findOneAndUpdate({'ID':projectID},{'property.unitPriceFile':unitFile});
 }
-
-ProjectsDAO.prototype.getBasicInfo = async function (projectID) {
+//获取建设项目项目属性
+ProjectsDAO.prototype.getConstructionProperty = async function (projectID) {
     //获取建设项目
     let constructionProject = await pmFacade.getConstructionProject(projectID);
-    if(!constructionProject || !constructionProject.property || !constructionProject.property.basicInformation){
+    if(!constructionProject || !constructionProject.property){
         return null;
     }
-    return constructionProject.property.basicInformation;
+    return constructionProject.property;
 };
 
 //恢复默认系统设置

+ 20 - 1
web/building_saas/css/main.css

@@ -43,7 +43,7 @@ a{
 .login-bg{
     width: 100%;
     height: 100%;
-    background: #f2f6f5 url("login-bgp.jpg") bottom center no-repeat;
+    background: #f2f6f5 url("login-bg.jpg") bottom center no-repeat;
     background-size: 100% auto;
     display: inline-block;
     position: absolute;
@@ -194,6 +194,9 @@ a{
     overflow: hidden;
     width:100%
 }
+.main-data-top-side{
+    overflow: hidden
+}
 .main-content.col-lg-8{
     width:66.666667%
 }
@@ -367,6 +370,10 @@ a{
     height: 100%;
     border-left:1px solid #dee2e6 ;
 }
+.tn-nav,.cn-nav{
+    border-right:1px solid #dee2e6 ;
+    border-left:none;
+}
 .tn-nav > span{
     width:20px;
 }
@@ -397,6 +404,15 @@ a{
     border-right:1px solid #ccc;
     border-bottom:1px solid #ccc;
 }
+.cn-nav .nav-tabs .nav-link.active {
+    border:none;
+    background-color: #fff;
+    border-right:1px solid #fff;
+    margin-right:-1px;
+    border-top:1px solid #ccc;
+    border-left:1px solid #ccc;
+    border-bottom:1px solid #ccc;
+}
 .rn-nav .nav-tabs .nav-link span{
     display:none;
 }
@@ -533,6 +549,9 @@ a{
 .box-text-style table p{
     text-align: left;
 }
+.sys-setting-nav .nav-link{
+    padding:.3rem 1rem;
+}
 /*快捷切换单位工程*/
 .navbar-crumb{
     position: relative;

+ 19 - 10
web/building_saas/main/html/main.html

@@ -789,16 +789,19 @@
                 <div class="modal-body">
                     <div class="row">
                         <div class="col-3">
-                            <ul class="nav flex-column nav-pills" role="tablist">
-                                <li class="nav-item"><a class="nav-link active" data-toggle="pill" href="#poj-settings-basicInfo" role="tab" id="tab_poj-settings-basicInfo">建设项目基本信息</a></li>
-                                <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-projFeature" id="tab_poj-settings-projFeature" role="tab">工程特征</a></li>
-                                <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-indicativeInfo" id="tab_poj-settings-indicativeInfo" role="tab">指标信息</a></li>
-                                <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-4" id="about-calc" role="tab">关于计算</a></li>
-                                <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="#display-setting" role="tab" id="tab_display_setting">呈现选项</a></li>
-                                <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#compilationIllustration" role="tab" id="tab_compilation_illustration">编制说明</a></li>
+                            <ul class="nav flex-column nav-pills sys-setting-nav" role="tablist">
+                                <li class="nav-item"><a class="nav-link disabled">建设项目信息</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link active" data-toggle="pill" href="#poj-settings-basicInfo" role="tab" id="tab_poj-settings-basicInfo">基本信息</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#compilationIllustrationP" role="tab" id="tab_compilation_illustration_p">编制说明</a></li>
+                                <li class="nav-item"><a class="nav-link disabled">单位工程信息</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-projFeature" id="tab_poj-settings-projFeature" role="tab">工程特征</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-indicativeInfo" id="tab_poj-settings-indicativeInfo" role="tab">指标信息</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-4" id="about-calc" role="tab">关于计算</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-billsQuanDecimal" id="tab_poj-settings-bqDecimal" role="tab">清单工程量精度</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-decimal" role="tab" id="tab_poj-settings-decimal">小数位数</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#poj-settings-6" role="tab" id="tab_poj-settings-6">人工单价调整</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#display-setting" role="tab" id="tab_display_setting">呈现选项</a></li>
+                                <li class="nav-item ml-3"><a class="nav-link" data-toggle="pill" href="#compilationIllustration" role="tab" id="tab_compilation_illustration">编制说明</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#system-setting" role="tab" id="tab_system_setting">系统选项</a></li>
                             </ul>
                         </div>
@@ -809,6 +812,12 @@
                                     <div class="modal-auto-height" style="overflow: hidden;" id="basicInfoSpread">
                                     </div>
                                 </div>
+                                <!--编制说明-->
+                                <div class="tab-pane fade" id="compilationIllustrationP" role="tabpanel">
+                                    <div class="modal-auto-height">
+                                        <textarea class="form-control" rows="15"></textarea>
+                                    </div>
+                                </div>
                                 <!--工程特征-->
                                 <div class="tab-pane fade" id="poj-settings-projFeature" role="tabpanel">
                                     <div class="modal-auto-height" style="overflow: hidden" id="projFeatureSpread">

+ 45 - 2
web/building_saas/main/js/views/project_view.js

@@ -2202,6 +2202,10 @@ $('#displayZD').click(function () {
 });
 
 $('#poj-set').on('show.bs.modal', function () {
+    //建设项目-编制说明
+    let compilationIVP = projectObj.project.property.compilationIllustrationProject ? projectObj.project.property.compilationIllustrationProject : '';
+    $('#compilationIllustrationP textarea').val(compilationIVP);
+    //单位工程-编制说明
     let compilationIV = projectObj.project.property.compilationIllustration ? projectObj.project.property.compilationIllustration : '';
     $('#compilationIllustration textarea').val(compilationIV);
     let setCalcFlag = function (obj, val, curFlag) {
@@ -2314,10 +2318,32 @@ $('#property_default').click(function () {
         window.location.href = `/main?project=${projectID}`;
     });
 });
+//建设项目-编制说明
+$('#tab_compilation_illustration_p').on('show.bs.tab', function () {
+    let v = projectObj.project.property.compilationIllustrationProject ? projectObj.project.property.compilationIllustrationProject : '';
+    $('#compilationIllustrationP textarea').val(v);
+});
+$('#compilationIllustrationP').keyup(function () {
+    let v = $('#compilationIllustrationP textarea').val();
+    if (v && v.length > 255) {
+        v = v.substr(0, 255);
+        $('#compilationIllustrationP textarea').val(v);
+        alert('编制说明字符数不能超过255个。');
+    };
+});
+//单位工程-编制说明
 $('#tab_compilation_illustration').on('show.bs.tab', function () {
     let v = projectObj.project.property.compilationIllustration ? projectObj.project.property.compilationIllustration : '';
     $('#compilationIllustration textarea').val(v);
 });
+$('#compilationIllustration').keyup(function () {
+    let v = $('#compilationIllustration textarea').val();
+    if (v && v.length > 255) {
+        v = v.substr(0, 255);
+        $('#compilationIllustration textarea').val(v);
+        alert('编制说明字符数不能超过255个。');
+    };
+});
 $('#property_ok').click(function () {
     let project = projectObj.project,
         projectID = project.ID(),
@@ -2361,6 +2387,16 @@ $('#property_ok').click(function () {
         projectObj.project.property.basicInformation = saveData;
         properties['property.basicInformation'] = saveData;
     }
+    //建设项目-编制说明
+    let compilationIllustrationP = $('#compilationIllustrationP textarea').val();
+    if (compilationIllustrationP && compilationIllustrationP.length > 255) {
+        alert('编制说明字符数不能超过255!');
+        return;
+    }
+    if (compilationIllustrationP !== project.property.compilationIllustrationProject) {
+        properties['property.compilationIllustrationProject'] = compilationIllustrationP;
+        project.property.compilationIllustrationProject = compilationIllustrationP;
+    }
     //工程特征
     if(projFeatureView.toUpdate(projFeatureView.orgDatas, projFeatureView.datas)){
         let saveData = projFeatureView.toSaveDatas(projFeatureView.datas);
@@ -2392,8 +2428,13 @@ $('#property_ok').click(function () {
     if(colSettingObj.dataChanged()){
         colSettingObj.updateColSetting();
     }
-    //编制说明
+    //单位工程-编制说明
     let compilationIllustration = $('#compilationIllustration textarea').val();
+    //限制255位字符
+    if (compilationIllustration && compilationIllustration.length > 255) {
+        alert('编制说明字符数不能超过255!');
+        return;
+    }
     if (compilationIllustration !== project.property.compilationIllustration) {
         properties['property.compilationIllustration'] = compilationIllustration;
         project.property.compilationIllustration = compilationIllustration;
@@ -3098,7 +3139,9 @@ function disableTools(){
     //呈现选项
     $('#display-setting').find('input').prop('disabled', 'disabled');
     $('#recColSetting').remove();
-    //编制说明
+    //建设项目-编制说明
+    $('#compilationIllustrationP textarea').prop('readOnly', true);
+    //单位工程-编制说明
     $('#compilationIllustration textarea').prop('readOnly', true);
     //项目属性恢复默认系统设置
     $('#property_default').addClass('disabled');

+ 3 - 0
web/building_saas/main/js/views/std_ration_lib.js

@@ -216,6 +216,9 @@ var rationLibObj = {
             }
             //简化匹配到的定额名称
             for (let data of datas) {
+                if (!data.name) {
+                    continue;
+                }
                 //第一个空格前的字符串去进行匹配,没有则不匹配
                 let nameArr = data.name.split(' ');
                 if (nameArr.length <= 1) {