gangyj vor 2 Jahren
Ursprung
Commit
aa2c7f70df

+ 10 - 0
src/api/manager/wbsprivate.js

@@ -101,3 +101,13 @@ export const privateSubmitFullName = (pKeyId,fullNames) => {
     }
   })
 }
+
+export const syncNodeParam = (projectId) => {
+  return request({
+    url: '/api/blade-manager/wbsPrivate/sync-node-param',
+    method: 'post',
+    params: {
+      projectId
+    }
+  })
+}

+ 5 - 0
src/styles/common.scss

@@ -140,6 +140,11 @@ a{
   overflow: hidden;
 }
 
+.el-btn-purple.el-button--primary{
+  background-color: #7f83f7;
+  border-color: #7f83f7;
+}
+
 .required:before{
   content: "*";
   color: #f56c6c;

+ 81 - 14
src/views/manager/projectinfo/tree.vue

@@ -49,11 +49,6 @@
                       >
                       </el-button>
                       <el-dropdown-menu slot="dropdown">
-                        <!-- <el-dropdown-item
-                          @click.native="setLeftType(1,data,node)"
-                          icon="el-icon-circle-plus-outline"
-                          v-if="data.nodeType != 6 && data.isExistForm != 1"
-                        >新增子级</el-dropdown-item> -->
                         <el-dropdown-item
                           @click.native="setLeftType(2,data,node)"
                           icon="el-icon-edit"
@@ -125,11 +120,6 @@
                       >
                       </el-button>
                       <el-dropdown-menu slot="dropdown">
-                        <!-- <el-dropdown-item
-                          @click.native="setLeftType(1,data,node)"
-                          icon="el-icon-circle-plus-outline"
-                          v-if="data.nodeType != 6 && data.isExistForm != 1"
-                        >新增子级</el-dropdown-item> -->
                         <el-dropdown-item
                           @click.native="setLeftType(2,data,node)"
                           icon="el-icon-edit"
@@ -173,8 +163,17 @@
         </div>
       </el-col>
       <el-col :span="14" class="h-100p flex flex-d-c">
+        <div class="mg-b-10">
+          <el-button type="primary" size="medium" icon="el-icon-edit-outline" @click="editNodeHandle">编辑当前节点</el-button>
+          <el-button type="primary" size="medium" icon="el-icon-document-copy" @click="copyNodeHandle">复制当前节点</el-button>
+          <el-button type="warning" size="medium" icon="el-icon-delete" @click="delNodeHandle">删除当前节点</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleFormulaHandle" v-if="leftType==5">元素公式设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleHandle" v-else>元素设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-help" @click="nodeInfoHandle">节点参数设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-upload" :loading="syncBtnLoad" @click="syncInfoHandle">同步节点参数</el-button>
+        </div>
         <template v-if="leftType==5">
-          <p>节点信息</p>
+          <div class="mg-b-10">节点信息</div>
           <div>
             <el-table
               :data="tableData"
@@ -230,8 +229,6 @@
               ></el-button>
             </p>
             <div class="mg-t-10">
-              <el-button type="primary" size="medium" @click="nodeInfoHandle">节点参数设置</el-button>
-              <el-button type="primary" size="medium" @click="eleFormulaHandle">表单设置</el-button>
             </div>
           </div>
           <div style="flex: 1;position: relative;">
@@ -1390,7 +1387,7 @@ import {
   saveElement, remove as removeElement, updateBatchElements, getTemplate,
   importWbsElement
 } from "@/api/manager/wbsformelement";
-import { getLazytree, getDetail, update, findNodeTableByCondition as selectByNodeTable, removeTableByCondition as removeTableById, removePrivateTreeNode, wbsTreePrivateTableSort ,privateSubmitFullName} from "@/api/manager/wbsprivate";
+import { getLazytree, getDetail, update, findNodeTableByCondition as selectByNodeTable, removeTableByCondition as removeTableById, removePrivateTreeNode, wbsTreePrivateTableSort ,privateSubmitFullName,syncNodeParam} from "@/api/manager/wbsprivate";
 import { findProjectTree as getAlltree } from "@/api/manager/projectinfo";
 import { getList as getAttchFromOriginalName } from "@/api/resource/attach";
 import { getDictionary } from "@/api/system/dict";
@@ -1574,6 +1571,8 @@ export default {
         wbsid: '',
         nodeid: '',
       },//传参
+
+      syncBtnLoad:false,
     };
   },
   computed: {
@@ -2664,6 +2663,74 @@ export default {
       this.setLeftType(4,this.curTreeData,this.curTreeNode);
     },
 
+    editNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+      this.setLeftType(2,this.curTreeData,this.curTreeNode)
+    },
+    copyNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+    },
+    delNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+      if(this.curTreeNode.level == 1){
+        this.$message({
+          type: "warning",
+          message: "当前节点无法删除"
+        })
+        return;
+      }
+      this.deleNode(this.curTreeData,this.curTreeNode)
+    },
+
+    eleHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+
+      this.setLeftType(5,this.curTreeData,this.curTreeNode);
+    },
+
+    syncInfoHandle(){
+      this.$confirm('是否同步节点参数?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.syncBtnLoad = true;
+        syncNodeParam(this.projectid).then(() => {
+          this.$message({
+            type: "success",
+            message: "同步成功!"
+          });
+        }).finally(()=>{
+          this.syncBtnLoad = false;
+        })
+      })
+      
+    },
+
 
     //显示别名弹窗
     aliasShow(){

+ 104 - 18
src/views/manager/wbsinfo/edit.vue

@@ -34,10 +34,14 @@
                   :class="data.moreShow?'show':''"
                   slot-scope="{ node, data }"
                 >
-                  <!--@mouseover="mouseover(data)" @mouseleave="mouseout(data)"-->
                   <span class="pd-r-20">
                     {{ node.label }}
-                    <el-dropdown
+                    <span class="normal-black">
+                      <el-link :underline="false">
+                        <i class="el-icon-sort" @click="paixuMD(data)" v-if="node.level != 1" title="调整排序"></i>
+                      </el-link>
+                    </span>
+                    <!-- <el-dropdown
                       @click="command=>{setLeftType(command,data)}"
                       @visible-change="visiblechange($event,data)"
                     >
@@ -66,19 +70,19 @@
                           icon="el-icon-close"
                           v-if="node.level !=1"
                         >删除节点</el-dropdown-item>
-                        <!-- <el-dropdown-item
+                        <el-dropdown-item
                           @click.native="setLeftType(4,data,node)"
                           icon="iconfont hcicon-danganziliao-biaogetianxie"
                           class="font-s-12"
-                        >元素公式</el-dropdown-item> -->
+                        >元素公式</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="setLeftType(5,data,node)"
                           icon="el-icon-coin"
                         >元素设置</el-dropdown-item>
-                        <!-- <el-dropdown-item
+                        <el-dropdown-item
                           @click.native="nodeInfo(data,node)"
                           icon="el-icon-help"
-                        >节点参数</el-dropdown-item> -->
+                        >节点参数</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="importTemplate(data,node)"
                           v-if="node.level == 2"
@@ -95,7 +99,7 @@
                           icon="el-icon-folder-opened"
                         >导入元素</el-dropdown-item>
                       </el-dropdown-menu>
-                    </el-dropdown>
+                    </el-dropdown> -->
                   </span>
                 </span>
               </el-tree>
@@ -118,7 +122,12 @@
                 >
                   <span class="pd-r-20">
                     {{ node.label }}
-                    <el-dropdown
+                    <span class="normal-black">
+                      <el-link :underline="false">
+                        <i class="el-icon-sort" @click="paixuMD(data)" v-if="node.level != 1" title="调整排序"></i>
+                      </el-link>
+                    </span>
+                    <!-- <el-dropdown
                       @click="command=>{setLeftType(command,data)}"
                       @visible-change="visiblechange($event,data)"
                     >
@@ -147,19 +156,19 @@
                           icon="el-icon-close"
                           v-if="node.level !=1"
                         >删除节点</el-dropdown-item>
-                        <!-- <el-dropdown-item
+                        <el-dropdown-item
                           @click.native="setLeftType(4,data,node)"
                           icon="iconfont hcicon-danganziliao-biaogetianxie"
                           class="font-s-12"
-                        >元素公式</el-dropdown-item> -->
+                        >元素公式</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="setLeftType(5,data,node)"
                           icon="el-icon-coin"
                         >元素设置</el-dropdown-item>
-                        <!-- <el-dropdown-item
+                        <el-dropdown-item
                           @click.native="nodeInfo(data,node)"
                           icon="el-icon-help"
-                        >节点参数</el-dropdown-item> -->
+                        >节点参数</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="importTemplate(data,node)"
                           v-if="node.level == 2"
@@ -176,7 +185,7 @@
                           icon="el-icon-folder-opened"
                         >导入元素</el-dropdown-item>
                       </el-dropdown-menu>
-                    </el-dropdown>
+                    </el-dropdown> -->
                   </span>
                 </span>
               </el-tree>
@@ -186,8 +195,17 @@
         </div>
       </el-col>
       <el-col :span="14" class="h-100p flex flex-d-c">
+        <div class="mg-b-10">
+          <el-button type="primary" size="medium" icon="el-icon-plus" @click="addNodeHandle">新增节点</el-button>
+          <el-button type="primary" size="medium" icon="el-icon-edit-outline" @click="editNodeHandle">编辑当前节点</el-button>
+          <el-button type="primary" size="medium" icon="el-icon-document-copy" @click="copyNodeHandle">复制当前节点</el-button>
+          <el-button type="warning" size="medium" icon="el-icon-delete" @click="delNodeHandle">删除当前节点</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleFormulaHandle" v-if="leftType==5">元素公式设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleHandle" v-else>元素设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-help" @click="nodeInfoHandle">节点参数设置</el-button>
+        </div>
         <template v-if="leftType==5">
-          <p>节点信息</p>
+          <div class="mg-b-10">节点信息</div>
           <div>
             <el-table
               :data="tableData"
@@ -241,8 +259,7 @@
               ></el-button>
             </p>
             <div class="mg-t-10">
-              <el-button type="primary" size="medium" @click="nodeInfoHandle">节点参数设置</el-button>
-              <el-button type="primary" size="medium" @click="eleFormulaHandle">公式设置</el-button>
+              
             </div>
           </div>
           <div style="flex: 1;position: relative;">
@@ -2864,6 +2881,75 @@ export default {
       this.setLeftType(4,this.curTreeData,this.curTreeNode);
     },
 
+    addNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+      if(this.curTreeData.nodeType == 6 || this.curTreeData.isExistForm == 1){
+        this.$message({
+          type: "warning",
+          message: "该节点下无法新增节点"
+        })
+        return;
+      }
+
+      this.setLeftType(1,this.curTreeData,this.curTreeNode)
+    },
+
+    editNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+      this.setLeftType(2,this.curTreeData,this.curTreeNode)
+    },
+    copyNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+    },
+    delNodeHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+      if(this.curTreeNode.level == 1){
+        this.$message({
+          type: "warning",
+          message: "当前节点无法删除"
+        })
+        return;
+      }
+      this.deleNode(this.curTreeData,this.curTreeNode)
+    },
+
+    eleHandle(){
+      if(!this.curTreeData.id || !this.curTreeNode.id){
+        this.$message({
+          type: "warning",
+          message: "请先选择节点"
+        })
+        return;
+      }
+
+      this.setLeftType(5,this.curTreeData,this.curTreeNode);
+    },
+
+
     //显示别名弹窗
     aliasShow(){
       this.aliasVisible = true;
@@ -2937,11 +3023,11 @@ export default {
   }
   &:hover {
     .normal-black {
-      display: block;
+      display: inline-block;
     }
   }
   &.show .normal-black {
-    display: block;
+    display: inline-block;
   }
 }
 .jiedian {