瀏覽代碼

新增节点修改

duy 1 年之前
父節點
當前提交
e885a83d28
共有 2 個文件被更改,包括 96 次插入21 次删除
  1. 73 10
      src/views/data-fill/division.vue
  2. 23 11
      src/views/data-fill/wbs.vue

+ 73 - 10
src/views/data-fill/division.vue

@@ -13,8 +13,9 @@
                 <el-scrollbar>
                 <el-scrollbar>
                     <HcLazyTree
                     <HcLazyTree
                         :auto-expand-keys="treeAutoExpandKeys" is-counts is-type
                         :auto-expand-keys="treeAutoExpandKeys" is-counts is-type
-                        :menus="ElTreeMenu" ui="page-division-tree" @load="treeLoadNode"
-                        @menuTap="ElTreeMenuClick" @nodeLoading="treeNodeLoading" @nodeTap="wbsElTreeClick"
+                        :menus="ElTreeMenu" ui="page-division-tree" is-load-menu
+                        @load="treeLoadNode" @menu-tap="ElTreeMenuClick" @node-loading="treeNodeLoading"
+                        @node-tap="wbsElTreeClick" @load-menu="loadMenu"
                     />
                     />
                 </el-scrollbar>
                 </el-scrollbar>
             </div>
             </div>
@@ -151,7 +152,7 @@
             <div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
             <div v-if="copyNodeTabKey !== '1'" class="copy-node-many-box">
                 <div class="copy-node-many-tree">
                 <div class="copy-node-many-tree">
                     <el-scrollbar>
                     <el-scrollbar>
-                        <HcLazyTree :auto-expand-keys="TreeAutoExpandKeys" is-type @load="treeLoadNode" @nodeTap="copyNodeElTreeClick" />
+                        <HcLazyTree :auto-expand-keys="TreeAutoExpandKeys" is-type @load="treeLoadNode" @node-tap="copyNodeElTreeClick" />
                     </el-scrollbar>
                     </el-scrollbar>
                 </div>
                 </div>
                 <div class="copy-node-many-table">
                 <div class="copy-node-many-table">
@@ -213,11 +214,11 @@
             <el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交" type="warning" />
             <el-alert :closable="false" title="双击节点,可编辑节点名称,编辑完成后,请按回车或输入框消失后,再点提交" type="warning" />
             <HcTreeNode
             <HcTreeNode
                 v-if="addTreeNodeType === '1'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
                 v-if="addTreeNodeType === '1'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
-                :project-id="projectId" @check-change="addTreeNodeCheckChange"
+                :project-id="projectId" :is-custom="isCustom" @check-change="addTreeNodeCheckChange"
             />
             />
             <HcTreeNode
             <HcTreeNode
                 v-if="addTreeNodeType === '2'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
                 v-if="addTreeNodeType === '2'" :node-id="addTreeNodeId" :old-id="addTreeNodeOldId" :contract-id="contractId"
-                :project-id="projectId" strictly @check-change="addTreeNodeCheckChange"
+                :project-id="projectId" strictly :is-custom="isCustom" @check-change="addTreeNodeCheckChange"
             />
             />
             <template #footer>
             <template #footer>
                 <div class="lr-dialog-footer">
                 <div class="lr-dialog-footer">
@@ -235,6 +236,11 @@
                 </div>
                 </div>
             </template>
             </template>
         </hc-new-dialog>
         </hc-new-dialog>
+        <!-- 新增自定义节点 -->
+        <hc-new-dialog v-model="addNodeModalCus" :loading="addNodeLoadingCus" loading-text="新增节点中,请耐心等待..." title="新增自定义节点" widths="720px" @save="addNodeClickCur">
+            <div>节点名称:</div>
+            <el-input v-model="nodeNameinput" placeholder="请输入节点名称" size="large" style="margin-top: 15px;" />
+        </hc-new-dialog>
 
 
         <!-- 调整排序 -->
         <!-- 调整排序 -->
         <hc-new-dialog v-model="sortNodeModal" :loading="sortNodeLoading" title="调整排序" widths="700px" @save="sortNodeClick">
         <hc-new-dialog v-model="sortNodeModal" :loading="sortNodeLoading" title="调整排序" widths="700px" @save="sortNodeClick">
@@ -288,7 +294,7 @@
                         <div class="hc-tree-title-box">未被系统识别:手动关联</div>
                         <div class="hc-tree-title-box">未被系统识别:手动关联</div>
                         <div class="hc-tree-bar-box">
                         <div class="hc-tree-bar-box">
                             <el-scrollbar>
                             <el-scrollbar>
-                                <HcTreeData1 :datas="unmatchedData" @relationTap="unmatchedTreeTap" />
+                                <HcTreeData1 :datas="unmatchedData" @relation-tap="unmatchedTreeTap" />
                             </el-scrollbar>
                             </el-scrollbar>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -330,7 +336,7 @@
             ui="hc-modal-table" widths="47rem" @save="relationSaveClick"
             ui="hc-modal-table" widths="47rem" @save="relationSaveClick"
         >
         >
             <el-scrollbar>
             <el-scrollbar>
-                <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" />
+                <DivisionTree :datas="unmatchedTreeData" @node-tap="divisionTreeClick" />
             </el-scrollbar>
             </el-scrollbar>
         </hc-new-dialog>
         </hc-new-dialog>
 
 
@@ -639,12 +645,22 @@ const ElTreeMenuClick = async ({ key, node, data, keys }) => {
     setStoreValue('wbsTreeExpandKeys', keys)
     setStoreValue('wbsTreeExpandKeys', keys)
     TreeAutoExpandKeys.value = keys || []
     TreeAutoExpandKeys.value = keys || []
     if (key === 'add') {
     if (key === 'add') {
+        isCustom.value = data?.isCustom 
         addTreeNodeId.value = data?.primaryKeyId
         addTreeNodeId.value = data?.primaryKeyId
         addTreeNodeOldId.value = data?.oldId
         addTreeNodeOldId.value = data?.oldId
         addNodeLoading.value = false
         addNodeLoading.value = false
         addNodeModal.value = true
         addNodeModal.value = true
 
 
-    } else if (key === 'copy') {
+    } else if (key === 'add1') {
+  
+    addTreeNodeId.value = data?.primaryKeyId
+    addTreeNodeOldId.value = data?.oldId
+    addNodeLoadingCus.value = false
+    nodeNameinput.value = ''
+    addNodeModalCus.value = true
+
+
+} else if (key === 'copy') {
         const parent = deepClone(node?.parent?.data || {})
         const parent = deepClone(node?.parent?.data || {})
         formCopyNodeModel.value = { ...deepClone(data), parent: parent }
         formCopyNodeModel.value = { ...deepClone(data), parent: parent }
         copyNodeTabKey.value = '1'
         copyNodeTabKey.value = '1'
@@ -676,7 +692,33 @@ const ElTreeMenuClick = async ({ key, node, data, keys }) => {
         }
         }
     }
     }
 }
 }
-
+const loadMenu = ({ node, item, level }, resolve)=>{
+    ElTreeMenu.value = [
+    { icon: 'add-circle', label: '新增节点', key: 'add' },
+    { icon: 'file-copy-2', label: '复制节点', key: 'copy' },
+    { icon: 'draft', label: '修改节点', key: 'edit' },
+    { icon: 'sort-asc', label: '调整排序', key: 'sort' },
+    { icon: 'delete-bin', label: '删除节点', key: 'del' },
+]
+    let menusArr = ElTreeMenu.value
+    const { childNodes } = node
+ 
+    //自定义节点类型下如果有划分节点,就不允许新增自定义节点
+    let iscan = false
+    iscan = childNodes.some(obj => obj.data.isCustom !== 1)
+    console.log(iscan, 'iscan')
+    const { isCustom } = item
+    if (isCustom === 1 && !iscan) {
+        menusArr.unshift( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
+        resolve(menusArr)
+    } else if (level === 1) {
+        menusArr = [ { icon: 'add-circle', label: '新增自定义节点', key: 'add1' }]
+        resolve(menusArr)
+    } else {
+      
+        resolve(menusArr)
+    }
+}
 //编辑节点
 //编辑节点
 const editNodeModal = ref(false)
 const editNodeModal = ref(false)
 
 
@@ -944,6 +986,11 @@ const addNodeModal = ref(false)
 const addTreeNodeId = ref('')
 const addTreeNodeId = ref('')
 const addTreeNodeOldId = ref('')
 const addTreeNodeOldId = ref('')
 const addTreeNodeType = ref('1')
 const addTreeNodeType = ref('1')
+const isCustom = ref(null)
+//新增自定义节点
+const addNodeModalCus = ref(false)
+const addNodeLoadingCus = ref(false)
+const nodeNameinput = ref('')
 
 
 //选中的节点
 //选中的节点
 const allSelectedList = ref([])
 const allSelectedList = ref([])
@@ -1000,7 +1047,23 @@ const addNodeClick = async () => {
         }
         }
     }
     }
 }
 }
-
+const addNodeClickCur = async ()=>{
+             //发起请求
+             addNodeLoadingCus.value = true
+            const { error, code } = await wbsApi.saveCustomAddContractNode({
+                nodeName: nodeNameinput.value,
+                nodeType: treeItemInfo.value?.nodeType || '',
+                partitionCode: treeItemInfo.value?.partitionCode || '',
+                primaryKeyId: treeItemInfo.value?.primaryKeyId || '',
+            })
+            //判断状态
+            addNodeLoadingCus.value = false
+            if (!error && code === 200) {
+                window?.$message?.success('新增成功')
+                addNodeModalCus.value = false
+                window?.location?.reload() //刷新页面
+            }
+}
 //删除节点
 //删除节点
 const delModalClick = () => {
 const delModalClick = () => {
 
 

+ 23 - 11
src/views/data-fill/wbs.vue

@@ -29,6 +29,7 @@
                     <div v-if="isShowLeft" id="hc-tree-scrollbar" v-loading="treeLoading" class="hc-tree-scrollbar" element-loading-text="获取数据中...">
                     <div v-if="isShowLeft" id="hc-tree-scrollbar" v-loading="treeLoading" class="hc-tree-scrollbar" element-loading-text="获取数据中...">
                         <el-scrollbar v-show="isSearchTree" class="scroll-bar-right-16">
                         <el-scrollbar v-show="isSearchTree" class="scroll-bar-right-16">
                             <HcDataTree
                             <HcDataTree
+                                is-load-menu
                                 :datas="searchTreeData"
                                 :datas="searchTreeData"
                                 :is-mark="TreeMark"
                                 :is-mark="TreeMark"
                                 :menus="ElTreeMenu"
                                 :menus="ElTreeMenu"
@@ -38,6 +39,7 @@
                                 default-expand-all
                                 default-expand-all
                                 @node-tap="wbsElTreeClick"
                                 @node-tap="wbsElTreeClick"
                                 @menu-tap="ElTreeMenuClick"
                                 @menu-tap="ElTreeMenuClick"
+                                @load-menu="loadMenu"
                             />
                             />
                         </el-scrollbar>
                         </el-scrollbar>
                         <el-scrollbar v-show="!isSearchTree" class="scroll-bar-right-16">
                         <el-scrollbar v-show="!isSearchTree" class="scroll-bar-right-16">
@@ -992,19 +994,24 @@ const setTreeMenuDataClick = ({ key, node, data }) => {
         copyNodeLoading.value = false
         copyNodeLoading.value = false
         copyNodeModal.value = true
         copyNodeModal.value = true
     } else if (key === 'add') {
     } else if (key === 'add') {
-        isCustomAdd.value = false
+        const { childNodes } = node
+        console.log(childNodes, 'childNodes')
+     
         isCustom.value = data?.isCustom 
         isCustom.value = data?.isCustom 
         addTreeNodeId.value = data?.primaryKeyId
         addTreeNodeId.value = data?.primaryKeyId
         addTreeNodeOldId.value = data?.oldId
         addTreeNodeOldId.value = data?.oldId
         addNodeLoading.value = false
         addNodeLoading.value = false
         addNodeModal.value = true
         addNodeModal.value = true
     } else if (key === 'add1') {
     } else if (key === 'add1') {
-        isCustomAdd.value = true
-        addTreeNodeId.value = data?.primaryKeyId
-        addTreeNodeOldId.value = data?.oldId
-        addNodeLoading.value = false
-        nodeNameinput.value = ''
-        addNodeModalCus.value = true
+    
+       
+            addTreeNodeId.value = data?.primaryKeyId
+            addTreeNodeOldId.value = data?.oldId
+            addNodeLoading.value = false
+            nodeNameinput.value = ''
+            addNodeModalCus.value = true
+        
+      
     } else if (key === 'upload') {
     } else if (key === 'upload') {
         const info = nodeDataInfo.value
         const info = nodeDataInfo.value
         //上传的配置
         //上传的配置
@@ -1391,7 +1398,7 @@ const addTreeNodeId = ref('')
 const addTreeNodeOldId = ref('')
 const addTreeNodeOldId = ref('')
 const addTreeNodeType = ref('1')
 const addTreeNodeType = ref('1')
 const isCustom = ref(null)
 const isCustom = ref(null)
-const isCustomAdd = ref(false)
+
 
 
 //新增自定义节点
 //新增自定义节点
 const addNodeModalCus = ref(false)
 const addNodeModalCus = ref(false)
@@ -1468,7 +1475,7 @@ const addNodeClickCur = async ()=>{
             if (!error && code === 200) {
             if (!error && code === 200) {
                 window?.$message?.success('新增成功')
                 window?.$message?.success('新增成功')
                 addNodeModalCus.value = false
                 addNodeModalCus.value = false
-                // window?.location?.reload() //刷新页面
+                window?.location?.reload() //刷新页面
             }
             }
 }
 }
 
 
@@ -1987,9 +1994,14 @@ const ElTreeNodeCheck = (_, { checkedKeys }) => {
 const loadMenu = ({ node, item, level }, resolve)=>{
 const loadMenu = ({ node, item, level }, resolve)=>{
     setElTreeMenu(contractInfo.value?.contractType)
     setElTreeMenu(contractInfo.value?.contractType)
     let menusArr = ElTreeMenu.value
     let menusArr = ElTreeMenu.value
-    console.log(node, item, level)
+    const { childNodes } = node
+ 
+    //自定义节点类型下如果有划分节点,就不允许新增自定义节点
+    let iscan = false
+    iscan = childNodes.some(obj => obj.data.isCustom !== 1)
+    console.log(iscan, 'iscan')
     const { isCustom } = item
     const { isCustom } = item
-    if (isCustom === 1) {
+    if (isCustom === 1 && !iscan) {
         menusArr.unshift( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
         menusArr.unshift( { icon: 'add-circle', label: '新增自定义节点', key: 'add1' })
         resolve(menusArr)
         resolve(menusArr)
     } else if (level === 1) {
     } else if (level === 1) {