Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

Chenshilong 7 years ago
parent
commit
d0c30296b0

+ 1 - 1
modules/glj/models/glj_list_model.js

@@ -77,7 +77,7 @@ class GLJListModel extends BaseModel {
     async getListByProjectId(projectId, unitPriceFileId) {
     async getListByProjectId(projectId, unitPriceFileId) {
         let gljData = null;
         let gljData = null;
         let decimal =await decimal_facade.getProjectDecimal(projectId);
         let decimal =await decimal_facade.getProjectDecimal(projectId);
-        let quantity_decimal = decimal.glj.quantity?decimal.glj.quantity:6;//取消耗量保留小数据位,默认6位
+        let quantity_decimal = decimal&&decimal.glj.quantity?decimal.glj.quantity:6;//取消耗量保留小数据位,默认6位
         let mixRatioConnectData = {};
         let mixRatioConnectData = {};
         let mixRationMap={};
         let mixRationMap={};
         let keyMap={};
         let keyMap={};

+ 12 - 8
modules/glj/models/unit_price_model.js

@@ -91,7 +91,7 @@ class UnitPriceModel extends BaseModel {
         let unitPrice=null;
         let unitPrice=null;
         if(operation=='add'){//新增操作时,要把code也一起判断,是否完全一样
         if(operation=='add'){//新增操作时,要把code也一起判断,是否完全一样
             unitPrice =  this.isPropertyInclude(unitPriceData,['code','name','specs','unit','type'],data);
             unitPrice =  this.isPropertyInclude(unitPriceData,['code','name','specs','unit','type'],data);
-        }else {//修改操作时,code不用加入判,因为code是需要改变的
+        }else {//修改操作时,code不用加入判,因为code是需要改变的
             unitPrice =  this.isPropertyInclude(unitPriceData,['name','specs','unit','type'],data);
             unitPrice =  this.isPropertyInclude(unitPriceData,['name','specs','unit','type'],data);
         }
         }
         if(unitPrice){
         if(unitPrice){
@@ -328,21 +328,27 @@ class UnitPriceModel extends BaseModel {
         currentUnitList = JSON.parse(currentUnitList);
         currentUnitList = JSON.parse(currentUnitList);
 
 
         let codeList = [];
         let codeList = [];
+        let nameList =[];
         for (let tmp of currentUnitList) {
         for (let tmp of currentUnitList) {
             if (codeList.indexOf(tmp.code) >= 0) {
             if (codeList.indexOf(tmp.code) >= 0) {
                 continue;
                 continue;
             }
             }
             codeList.push(tmp.code);
             codeList.push(tmp.code);
+            if(nameList.indexOf(tmp.name)>=0){
+                continue
+            }
+            nameList.push(tmp.name);
         }
         }
 
 
-        // 查找即将更替的单价文件是否存在对应的工料机数据
-        let condition = {unit_price_file_id: changeUnitPriceId, code: {"$in": codeList}};
-        let targetUnitList = await this.findDataByCondition(condition, null, false, 'code');
+        // 查找即将更替的单价文件是否存在对应的工料机数据 -- (这里只根据code和名称初步过滤,因为其它的几项更改的概率不大,在下一步的比较中再精确匹配)
+        let condition = {unit_price_file_id: changeUnitPriceId, code: {"$in": codeList},name:{"$in": nameList}};
+        let targetUnitList = await this.findDataByCondition(condition, null, false, ['code','name','specs','unit','type']);
 
 
         // 如果没有重叠的数据则原有的数据都复制一份
         // 如果没有重叠的数据则原有的数据都复制一份
         let insertData = [];
         let insertData = [];
         for (let tmp of currentUnitList) {
         for (let tmp of currentUnitList) {
-            if (targetUnitList !== null && targetUnitList[tmp.code] !== undefined) {
+            let t_index = this.getIndex(tmp,['code','name','specs','unit','type']);
+            if (targetUnitList !== null && targetUnitList[t_index] !== undefined) {
                 continue;
                 continue;
             }
             }
             // 删除原有id信息
             // 删除原有id信息
@@ -351,9 +357,7 @@ class UnitPriceModel extends BaseModel {
             tmp.unit_price_file_id = changeUnitPriceId;
             tmp.unit_price_file_id = changeUnitPriceId;
             insertData.push(tmp);
             insertData.push(tmp);
         }
         }
-
-        return insertData.length > 0 ? this.add(currentUnitList) : true;
-
+        return insertData.length > 0 ? this.add(insertData) : true;
     }
     }
 
 
 
 

+ 2 - 3
modules/pm/models/project_model.js

@@ -79,9 +79,8 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
             if (data.updateData.name !== undefined) {
             if (data.updateData.name !== undefined) {
                 data.updateData.name = data.updateData.name.trim();
                 data.updateData.name = data.updateData.name.trim();
             }
             }
-
             if (data.updateType === 'update') {
             if (data.updateType === 'update') {
-                Projects.update({userID: userId, ID: data.updateData.ID}, data.updateData, updateAll)
+                Projects.update({userID: userId, ID: data.updateData.ID}, data.updateData, updateAll);
             } else if (data.updateType === 'new') {
             } else if (data.updateType === 'new') {
                 data.updateData['userID'] = userId;
                 data.updateData['userID'] = userId;
                 data.updateData['createDateTime'] = new Date();
                 data.updateData['createDateTime'] = new Date();
@@ -128,7 +127,7 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
                 }
                 }
                 newProject.save(async function (err, result) {
                 newProject.save(async function (err, result) {
                     if (!err && result._doc.projType === projectType.tender) {
                     if (!err && result._doc.projType === projectType.tender) {
-                        newProjController.copyTemplateData(data.updateData.property, newProject.ID, updateAll);
+                        newProjController.copyTemplateData(result._doc.property, newProject.ID, updateAll);
                     } else {
                     } else {
                         updateAll(err);
                         updateAll(err);
                     }
                     }

+ 16 - 0
public/web/tree_table/tree_table.js

@@ -198,6 +198,17 @@
  			return treenode;
  			return treenode;
  		};
  		};
 
 
+		Tree.prototype.findNodeByNid = function (nid) {
+			let treenode = null,
+				callback = function (node) {
+					if(node.data && node.data[node.setting.tree.nid] === nid){
+						treenode = node;
+					}
+				};
+			this.traverseDF.call(this, callback);
+			return treenode;
+		}
+
  		Tree.prototype.findNodeByDomId = function (domId) {
  		Tree.prototype.findNodeByDomId = function (domId) {
  			var treenode = null,
  			var treenode = null,
  				callback = function (node) {
  				callback = function (node) {
@@ -274,6 +285,11 @@
 					parent.children.splice(parent.childIndex(node), 1);
 					parent.children.splice(parent.childIndex(node), 1);
 					parent.children.splice(parent.childIndex(next), 0, node);
 					parent.children.splice(parent.childIndex(next), 0, node);
 				};
 				};
+				let pre = that.findNodeByNid(node.data.ID) || null;
+				if(pre && parent.childIndex(pre) !== parent.childIndex(node) - 1){
+					parent.children.splice(parent.childIndex(pre), 1);
+					parent.children.splice(parent.childIndex(node), 0, pre);
+				}
 			};
 			};
 
 
  			for (i = 0; i < arrData.length; i++){
  			for (i = 0; i < arrData.length; i++){

+ 51 - 45
web/building_saas/css/main.css

@@ -8,10 +8,10 @@ body {
     font-size: 0.9rem
     font-size: 0.9rem
 }
 }
 .btn.disabled, .btn:disabled {
 .btn.disabled, .btn:disabled {
-  color:#999
+    color:#999
 }
 }
 .btn-link:focus, .btn-link:hover{
 .btn-link:focus, .btn-link:hover{
-  text-decoration: none
+    text-decoration: none
 }
 }
 /*自定义css*/
 /*自定义css*/
 .header {
 .header {
@@ -28,10 +28,10 @@ body {
     line-height: inherit
     line-height: inherit
 }
 }
 .top-msg{
 .top-msg{
-  position: fixed;
-  top:0;
-  width:100%;
-  z-index: 999
+    position: fixed;
+    top:0;
+    width:100%;
+    z-index: 999
 }
 }
 .in-1{padding-left:0px!important}
 .in-1{padding-left:0px!important}
 .in-2{padding-left:21px!important}
 .in-2{padding-left:21px!important}
@@ -70,7 +70,7 @@ body {
     color: #333
     color: #333
 }
 }
 .main-nav .nav-tabs{
 .main-nav .nav-tabs{
-  border-bottom: none
+    border-bottom: none
 }
 }
 .content {
 .content {
     border-left: 1px solid #ccc;
     border-left: 1px solid #ccc;
@@ -78,7 +78,7 @@ body {
     background: #fff
     background: #fff
 }
 }
 .toolsbar,.toolsbar-f {
 .toolsbar,.toolsbar-f {
-  border-bottom: 1px solid #ccc
+    border-bottom: 1px solid #ccc
 }
 }
 .tools-btn {
 .tools-btn {
     height: 30px;
     height: 30px;
@@ -92,23 +92,23 @@ body {
     overflow-y: hidden;
     overflow-y: hidden;
 }
 }
 .main-data-top,.main-data-full{
 .main-data-top,.main-data-full{
-  overflow: hidden;
-  width:100%
+    overflow: hidden;
+    width:100%
 }
 }
 .main-content.col-lg-8{
 .main-content.col-lg-8{
-  width:66.666667%
+    width:66.666667%
 }
 }
 .main-content.col-lg-12{
 .main-content.col-lg-12{
-  width:100%
+    width:100%
 }
 }
 .main-side.col-lg-4{
 .main-side.col-lg-4{
-  width: 33.333333%;
+    width: 33.333333%;
 }
 }
 .main-side.col-lg-0{
 .main-side.col-lg-0{
-  width:0%;
+    width:0%;
 }
 }
 .sidebar-bottom,.sidebar-bottom .col-lg-6,.sidebar-bottom .col-lg-12 {
 .sidebar-bottom,.sidebar-bottom .col-lg-6,.sidebar-bottom .col-lg-12 {
-  height:300px
+    height:300px
 }
 }
 .top-content, .fluid-content {
 .top-content, .fluid-content {
     overflow: auto;
     overflow: auto;
@@ -124,7 +124,7 @@ body {
     padding: 0.2em 0.5em
     padding: 0.2em 0.5em
 }
 }
 .side-tabs .nav-tabs .nav-item {
 .side-tabs .nav-tabs .nav-item {
-  z-index: 999
+    z-index: 999
 }
 }
 .side-tabs .nav-tabs {
 .side-tabs .nav-tabs {
     border-bottom: none;
     border-bottom: none;
@@ -251,63 +251,69 @@ body {
     overflow: auto;
     overflow: auto;
 }
 }
 .poj-list span.poj-icon {
 .poj-list span.poj-icon {
-  padding-right:7px;
-  color:#ccc
+    padding-right:7px;
+    color:#ccc
 }
 }
 .poj-list a.tree-open,.poj-list a.tree-close{
 .poj-list a.tree-open,.poj-list a.tree-close{
-  width:15px;
-  display: inline-block;
+    width:15px;
+    display: inline-block;
 }
 }
 .print-toolsbar{
 .print-toolsbar{
-  padding:5px
+    padding:5px
 }
 }
 .print-toolsbar .panel {
 .print-toolsbar .panel {
-  display:inline-block;
-  vertical-align:top;
-  background:#f7f7f9
+    display:inline-block;
+    vertical-align:top;
+    background:#f7f7f9
 }
 }
 .print-toolsbar .panel .panel-foot{
 .print-toolsbar .panel .panel-foot{
-  text-align: center;
-  font-size: 12px
+    text-align: center;
+    font-size: 12px
 }
 }
 .print-list {
 .print-list {
-  border-right:1px solid #ccc
+    border-right:1px solid #ccc
 }
 }
 .print-list .form-list {
 .print-list .form-list {
-  overflow: auto
+    overflow: auto
 }
 }
 .print-list .list-tools{
 .print-list .list-tools{
-  height:50px;
-  padding:10px 0;
-  border-bottom:1px solid #f2f2f2
+    height:50px;
+    padding:10px 0;
+    border-bottom:1px solid #f2f2f2
 }
 }
 .pageContainer {
 .pageContainer {
-  background: #ededed;
-  text-align: center
+    background: #ededed;
+    text-align: center
 }
 }
 .pageContainer .page{
 .pageContainer .page{
-  border:9px solid transparent;
-  display: inline-block;
+    border:9px solid transparent;
+    display: inline-block;
 }
 }
 .pageContainer .page img{
 .pageContainer .page img{
-  width:inherit;
-  height: inherit;
+    width:inherit;
+    height: inherit;
 }
 }
 .modal-auto-height {
 .modal-auto-height {
-  height: 400px;
-  overflow-y: auto;
+    height: 400px;
+    overflow-y: auto;
 }
 }
 .modal-fixed-height {
 .modal-fixed-height {
-  height: 400px;
-  overflow-y: hidden;
+    height: 400px;
+    overflow-y: hidden;
 }
 }
 .sidebar-tools-bar {
 .sidebar-tools-bar {
-  background:#fff
+    background:#fff
 }
 }
 .side-search-box{
 .side-search-box{
-  background:#fff;
-  border-bottom:1px solid #ddd
+    background:#fff;
+    border-bottom:1px solid #ddd
 }
 }
 .navbar-crumb span{
 .navbar-crumb span{
-  max-width: 200px
+    max-width: 200px
+}
+.dropdown-item{
+    color:#007bff
+}
+.dropdown-item.disabled, .dropdown-item:disabled{
+    pointer-events:none
 }
 }

+ 11 - 0
web/building_saas/glj/js/project_glj.js

@@ -179,6 +179,17 @@ $(document).ready(function () {
                     alert(msg);
                     alert(msg);
                     return false;
                     return false;
                 }
                 }
+                projectObj.project.projectGLJ.loadData(function () {
+                    let projectGLJ = projectObj.project.projectGLJ;
+                    let data = projectGLJ.datas;
+                    projectGLJ.loadCacheData();
+                    let usedTenderList = data.usedTenderList !== undefined ? data.usedTenderList : [];
+                    let  usedUnitPriceInfo = data.constData.usedUnitPriceInfo !== undefined ?
+                        data.constData.usedUnitPriceInfo : {};
+
+                    unitPriceFileInit(usedUnitPriceInfo.name, usedTenderList);
+
+                });
                 $('#change-dj').modal("hide");
                 $('#change-dj').modal("hide");
             }
             }
         });
         });

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

@@ -264,7 +264,7 @@
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-2" role="tab">工程特征</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-2" role="tab">工程特征</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-3" role="tab">指标信息</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-3" role="tab">指标信息</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-4" role="tab">关于计算</a></li>
                                 <li class="nav-item"><a class="nav-link" data-toggle="pill" href="#poj-settings-4" 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-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-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-6" role="tab" id="tab_poj-settings-6">人工单价调整</a></li>
                             </ul>
                             </ul>
@@ -385,7 +385,7 @@
                                             <div class="row m-0">
                                             <div class="row m-0">
                                                 <div class="col-sm-3">
                                                 <div class="col-sm-3">
                                                     <div class="input-group input-group-sm mb-2">
                                                     <div class="input-group input-group-sm mb-2">
-                                                        <div class="input-group-addon">工程量</div>
+                                                        <div class="input-group-addon">消耗量</div>
                                                         <input type="number" name="glj-quantity" class="form-control" value="2" step="1" max="6" min="0">
                                                         <input type="number" name="glj-quantity" class="form-control" value="2" step="1" max="6" min="0">
                                                     </div>
                                                     </div>
                                                 </div>
                                                 </div>

+ 0 - 1
web/building_saas/main/js/models/ration_glj.js

@@ -140,7 +140,6 @@ var ration_glj = {
             })
             })
             _.forEach(doc, function(n, key) {
             _.forEach(doc, function(n, key) {
                 glj_list[glj_index][key] = n;
                 glj_list[glj_index][key] = n;
-                gljOprObj.sheetData[sheet_index][key]=n;
             });
             });
             return glj_list[glj_index].rationID;
             return glj_list[glj_index].rationID;
         };
         };

+ 51 - 37
web/building_saas/pm/html/project-management.html

@@ -74,10 +74,15 @@
                         <div class="tab-pane active" id="pm_all" role="tabpanel">
                         <div class="tab-pane active" id="pm_all" role="tabpanel">
                         <div class="toolsbar">
                         <div class="toolsbar">
                             <div class="tools-btn btn-group align-top">
                             <div class="tools-btn btn-group align-top">
-                                <a href="javascript:void(0);" class="btn btn-sm" id="add-project-btn"><i class="fa fa-cubes"></i>&nbsp;新建建设项目</a>
-                                <a href="javascript:void(0);" class="btn btn-sm" id="add-engineering-btn"><i class="fa fa-cube"></i>&nbsp;新建单项工程</a>
-                                <a href="javascript:void(0);" class="btn btn-sm" id="add-tender-btn"><i class="fa fa-sticky-note-o"></i>&nbsp;新建单位工程</a>
-                                <a href="javascript:void(0);" class="btn btn-sm" id="add-folder-btn"><i class="fa fa-folder-o"></i>&nbsp;新建文件夹</a>
+                                <a href="javascript:void(0);"  id="add-tender-btn" class="btn btn-sm"><i class="fa fa-sticky-note-o"></i>新建单位工程</a>
+                                <div class="btn-group" role="group">
+                                    <a href="javascript:void(0);" class="btn btn-sm dropdown-toggle" data-toggle="dropdown"></a>
+                                    <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
+                                        <a href="javascript:void(0);"  id="add-project-btn" class="dropdown-item"><i class="fa fa-cubes"></i>新建建设项目</a>
+                                        <a href="javascript:void(0);"  id="add-engineering-btn" class="dropdown-item disabled"><i class="fa fa-cube"></i> 新建单项工程</a>
+                                        <a href="javascript:void(0);"  id="add-folder-btn" class="dropdown-item"><i class="fa fa-folder-o"></i>新建文件夹</a>
+                                    </div>
+                                </div>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="rename-btn">重命名</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="rename-btn">重命名</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="del-btn">删除</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="del-btn">删除</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="move-to-btn">移动到...</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="move-to-btn">移动到...</a>
@@ -219,47 +224,28 @@
         </div>
         </div>
     </div>
     </div>
 </div>
 </div>
+
 <!--弹出新建建设项目-->
 <!--弹出新建建设项目-->
 <div class="modal fade" id="add-project-dialog" data-backdrop="static">
 <div class="modal fade" id="add-project-dialog" data-backdrop="static">
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">
         <div class="modal-content">
         <div class="modal-content">
             <div class="modal-header">
             <div class="modal-header">
-                <h5 class="modal-title"><i class="fa fa-cubes"></i>&nbsp;新建建设项目</h5>
+                <h5 class="modal-title">新建 <i class="fa fa-cubes"></i> 建设项目</h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                     <span aria-hidden="true">&times;</span>
                 </button>
                 </button>
             </div>
             </div>
             <div class="modal-body">
             <div class="modal-body">
-                <!--没有点击任何节点-->
                 <form>
                 <form>
                     <div class="form-group">
                     <div class="form-group">
                         <label>建设项目</label>
                         <label>建设项目</label>
                         <input type="text" class="form-control" placeholder="输入建设项目名称" id="project-name">
                         <input type="text" class="form-control" placeholder="输入建设项目名称" id="project-name">
                     </div>
                     </div>
-                    <div class="form-group">
-                        <label>计价方式</label>
-                        <div>
-                            <label class="custom-control custom-radio">
-                                <input name="valuation_type" type="radio" class="custom-control-input" value="bill">
-                                <span class="custom-control-indicator"></span>
-                                <span class="custom-control-description">清单计价</span>
-                            </label>
-                            <label class="custom-control custom-radio">
-                                <input name="valuation_type" type="radio" class="custom-control-input" value="ration">
-                                <span class="custom-control-indicator"></span>
-                                <span class="custom-control-description">定额计价</span>
-                            </label>
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label>计价规则</label>
-                        <select class="form-control" id="valuation"><option value="">请选择计价规则</option></select>
-                    </div>
                 </form>
                 </form>
             </div>
             </div>
             <div class="modal-footer">
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                <a href="javacript:void(0);" class="btn btn-primary" id='addProjOk'>确定</a>
+                <a href="javascript:void(0);" class="btn btn-primary" id="addProjOk">确定</a>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
@@ -295,27 +281,51 @@
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">
         <div class="modal-content">
         <div class="modal-content">
             <div class="modal-header">
             <div class="modal-header">
-                <h5 class="modal-title"><i class="fa fa-sticky-note-o"></i>&nbsp;新建单位工程</h5>
+                <h5 class="modal-title">新建 <i class="fa fa-sticky-note-o"></i> 单位工程</h5>
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                     <span aria-hidden="true">&times;</span>
                     <span aria-hidden="true">&times;</span>
                 </button>
                 </button>
             </div>
             </div>
             <div class="modal-body">
             <div class="modal-body">
-                <!--没有点击任何节点-->
                 <form>
                 <form>
                     <div class="form-group">
                     <div class="form-group">
-                        <label>单位工程</label>
-                        <input type="text" class="form-control" placeholder="输入单位工程名称" id="tender-name">
+                        <label>建设项目</label>
+                        <div class="input-group">
+                            <input type="text" class="form-control" placeholder="输入建设项目名称" id="poj-name" autocomplete="off">
+                              <span class="input-group-btn">
+                                <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown"></button>
+                                <div class="dropdown-menu dropdown-menu-right" style="width:468px" id="poj-name-list">
+                                    <button class="dropdown-item" type="button">汽车生产车间1</button>
+                                    <button class="dropdown-item" type="button">汽车生产车间2</button>
+                                    <button class="dropdown-item" type="button">汽车生产车间3</button>
+                                </div>
+                              </span>
+                        </div>
+                        <span class="form-text text-info" id="poj-name-info" style="display: none;">新建 “汽车生产车间5”</span>
                     </div>
                     </div>
                     <div class="form-group">
                     <div class="form-group">
-                        <label>工程专业</label>
-                        <select class="form-control" id="tender-engineering"><option>建筑工程</option></select>
+                        <label>单项工程</label>
+                        <div class="input-group">
+                            <input type="text" class="form-control" placeholder="输入单项工程名称" id="eng-name" autocomplete="off">
+                              <span class="input-group-btn">
+                                <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown"></button>
+                                <div class="dropdown-menu dropdown-menu-right" style="width:468px" id="eng-name-list">
+                                    <button class="dropdown-item" type="button">左3号生产车间</button>
+                                    <button class="dropdown-item" type="button">左4号生产车间</button>
+                                </div>                              </span>
+                        </div>
+                        <span class="form-text text-info" id="eng-name-info" style="display: none;">新建 “左2号生产车间2”</span>
                     </div>
                     </div>
-                    <div class="form-group hidden-area">
+                    <div class="form-group">
+                        <label>单位工程</label>
+                        <input type="text" class="form-control" placeholder="输入单位工程名称" id="tender-name" autocomplete="off">
+                        <span class="form-text text-danger" id="tender-name-info" style="display: none;">已存在 “建筑工程1”</span>
+                    </div>
+                    <div class="form-group">
                         <label>单价文件</label>
                         <label>单价文件</label>
                         <select class="form-control" id="unit-price"><option value="">新建单价文件</option></select>
                         <select class="form-control" id="unit-price"><option value="">新建单价文件</option></select>
                     </div>
                     </div>
-                    <div class="form-group hidden-area">
+                    <div class="form-group">
                         <label>费率文件</label>
                         <label>费率文件</label>
                         <select class="form-control" id="tender-fee-rate"><option value="">新建费率文件</option></select>
                         <select class="form-control" id="tender-fee-rate"><option value="">新建费率文件</option></select>
                     </div>
                     </div>
@@ -323,12 +333,12 @@
                         <label>计价方式</label>
                         <label>计价方式</label>
                         <div>
                         <div>
                             <label class="custom-control custom-radio">
                             <label class="custom-control custom-radio">
-                                <input name="tender_valuation_type" type="radio" class="custom-control-input" value="bill" checked="checked">
+                                <input name="valuation_type" value="bill" type="radio" class="custom-control-input">
                                 <span class="custom-control-indicator"></span>
                                 <span class="custom-control-indicator"></span>
                                 <span class="custom-control-description">清单计价</span>
                                 <span class="custom-control-description">清单计价</span>
                             </label>
                             </label>
                             <label class="custom-control custom-radio">
                             <label class="custom-control custom-radio">
-                                <input name="tender_valuation_type" type="radio" class="custom-control-input" value="ration" disabled="disabled">
+                                <input name="valuation_type" value="ration" type="radio" class="custom-control-input">
                                 <span class="custom-control-indicator"></span>
                                 <span class="custom-control-indicator"></span>
                                 <span class="custom-control-description">定额计价</span>
                                 <span class="custom-control-description">定额计价</span>
                             </label>
                             </label>
@@ -336,7 +346,11 @@
                     </div>
                     </div>
                     <div class="form-group">
                     <div class="form-group">
                         <label>计价规则</label>
                         <label>计价规则</label>
-                        <select class="form-control" id="tender-valuation" disabled><option>重庆[2008]调整人工单价</option></select>
+                        <select class="form-control" id="valuation"><option value="">请选择计价规则</option></select>
+                    </div>
+                    <div class="form-group">
+                        <label>工程专业</label>
+                        <select class="form-control" id="tender-engineering"><option value="">请选择对应的工程专业</option></select>
                     </div>
                     </div>
                 </form>
                 </form>
             </div>
             </div>

File diff suppressed because it is too large
+ 592 - 192
web/building_saas/pm/js/pm_main.js