浏览代码

项目管理

zhongzewei 7 年之前
父节点
当前提交
bf29e611df

+ 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) {
                 data.updateData.name = data.updateData.name.trim();
             }
-
             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') {
                 data.updateData['userID'] = userId;
                 data.updateData['createDateTime'] = new Date();
@@ -128,7 +127,7 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
                 }
                 newProject.save(async function (err, result) {
                     if (!err && result._doc.projType === projectType.tender) {
-                        newProjController.copyTemplateData(data.updateData.property, newProject.ID, updateAll);
+                        newProjController.copyTemplateData(result._doc.property, newProject.ID, updateAll);
                     } else {
                         updateAll(err);
                     }

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

@@ -198,6 +198,17 @@
  			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) {
  			var treenode = null,
  				callback = function (node) {
@@ -274,6 +285,11 @@
 					parent.children.splice(parent.childIndex(node), 1);
 					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++){

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

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

+ 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-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-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-6" role="tab" id="tab_poj-settings-6">人工单价调整</a></li>
                             </ul>
@@ -385,7 +385,7 @@
                                             <div class="row m-0">
                                                 <div class="col-sm-3">
                                                     <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">
                                                     </div>
                                                 </div>

+ 50 - 36
web/building_saas/pm/html/project-management.html

@@ -74,10 +74,15 @@
                         <div class="tab-pane active" id="pm_all" role="tabpanel">
                         <div class="toolsbar">
                             <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="del-btn">删除</a>
                                 <a href="javascript:void(0);" class="btn btn-sm" id="move-to-btn">移动到...</a>
@@ -219,47 +224,28 @@
         </div>
     </div>
 </div>
+
 <!--弹出新建建设项目-->
 <div class="modal fade" id="add-project-dialog" data-backdrop="static">
     <div class="modal-dialog" role="document">
         <div class="modal-content">
             <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">
                     <span aria-hidden="true">&times;</span>
                 </button>
             </div>
             <div class="modal-body">
-                <!--没有点击任何节点-->
                 <form>
                     <div class="form-group">
                         <label>建设项目</label>
                         <input type="text" class="form-control" placeholder="输入建设项目名称" id="project-name">
                     </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>
             </div>
             <div class="modal-footer">
                 <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>
@@ -295,27 +281,51 @@
     <div class="modal-dialog" role="document">
         <div class="modal-content">
             <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">
                     <span aria-hidden="true">&times;</span>
                 </button>
             </div>
             <div class="modal-body">
-                <!--没有点击任何节点-->
                 <form>
                     <div class="form-group">
+                        <label>建设项目</label>
+                        <div class="input-group">
+                            <input type="text" class="form-control" placeholder="输入建设项目名称" id="poj-name">
+                              <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 class="form-group">
+                        <label>单项工程</label>
+                        <div class="input-group">
+                            <input type="text" class="form-control" placeholder="输入单项工程名称" id="eng-name">
+                              <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 class="form-group">
                         <label>单位工程</label>
                         <input type="text" class="form-control" placeholder="输入单位工程名称" id="tender-name">
+                        <span class="form-text text-danger" id="tender-name-info" style="display: none;">已存在 “建筑工程1”</span>
                     </div>
                     <div class="form-group">
-                        <label>工程专业</label>
-                        <select class="form-control" id="tender-engineering"><option>建筑工程</option></select>
-                    </div>
-                    <div class="form-group hidden-area">
                         <label>单价文件</label>
                         <select class="form-control" id="unit-price"><option value="">新建单价文件</option></select>
                     </div>
-                    <div class="form-group hidden-area">
+                    <div class="form-group">
                         <label>费率文件</label>
                         <select class="form-control" id="tender-fee-rate"><option value="">新建费率文件</option></select>
                     </div>
@@ -323,12 +333,12 @@
                         <label>计价方式</label>
                         <div>
                             <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-description">清单计价</span>
                             </label>
                             <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-description">定额计价</span>
                             </label>
@@ -336,7 +346,11 @@
                     </div>
                     <div class="form-group">
                         <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>
                 </form>
             </div>

文件差异内容过多而无法显示
+ 592 - 192
web/building_saas/pm/js/pm_main.js