Bladeren bron

新增当前及子节点修改

duy 5 maanden geleden
bovenliggende
commit
46c9d61609
3 gewijzigde bestanden met toevoegingen van 61 en 11 verwijderingen
  1. 49 1
      src/views/data-fill/components/HcTreeNode.vue
  2. 6 5
      src/views/data-fill/division.vue
  3. 6 5
      src/views/data-fill/wbs.vue

+ 49 - 1
src/views/data-fill/components/HcTreeNode.vue

@@ -8,6 +8,7 @@
             :check-strictly="isStrictly"
             show-checkbox
             @check="ElTreeCheckChange"
+            @check-change="ElTreeCheckChange1"
         >
             <template #default="{ node, data }">
                 <div class="custom-tree-node">
@@ -95,6 +96,8 @@ watch(() => [
     projectId.value = pid
     contractId.value = cid
     isStrictly.value = strictly
+    console.log(strictly, 'strictly')
+    
     wbsId.value = wid
     isCustom.value = cus
 
@@ -103,6 +106,8 @@ watch(() => [
 //渲染完成
 onMounted(() => {
     ElTreeLoadNode()
+  
+    
 })
 
 //树形结构异步加载数据
@@ -157,9 +162,52 @@ const ElTreeLoadNode = async () => {
 
 //被选择的
 const ElTreeCheckChange = (_, nodes) => {
-    emit('check-change', nodes)
+    console.log(nodes, 'nodes')
+
+    
+    if (isStrictly.value) {
+        const checkedNodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []
+   
+        // console.log(uncheckedNodes, 'uncheckedNodes')
+        
+        // 处理选中节点的子节点
+        checkedNodes.forEach(node => {
+            if (node.children && node.children.length > 0) {
+                node.children.forEach(child => {
+                    ElTreeRef.value?.treeRef?.setChecked(child.pKeyId, true, false)
+                })
+            }
+        })
+        
+     
+    }
+    const checkedNodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []
+    const checkedKeys = ElTreeRef.value?.treeRef?.getCheckedKeys() || []
+    const halfCheckedKeys = ElTreeRef.value?.treeRef?.getHalfCheckedKeys() || []
+    const halfCheckedNodes = ElTreeRef.value?.treeRef?.getHalfCheckedNodes() || []
+    console.log(checkedNodes, 'checkedNodes')
+    let objArr = {
+        checkedNodes: checkedNodes,
+        halfCheckedNodes:halfCheckedNodes,
+        halfCheckedKeys: halfCheckedKeys,
+        checkedKeys: checkedKeys,
+        }
+    
+    
+    emit('check-change', objArr)
 }
+const ElTreeCheckChange1 = (a, b, c) => {
+    if (!b && isStrictly.value) {
+        const uncheckedNodes = ElTreeRef.value?.treeRef?.getNode(a.pKeyId)?.data || null
+           // // 处理取消选中节点的子节点
+        if (uncheckedNodes && uncheckedNodes.children && uncheckedNodes.children.length > 0) {
+            uncheckedNodes.children.forEach(child => {
+                ElTreeRef.value?.treeRef?.setChecked(child.pKeyId, false, false)
+            })
+        }
+    }
 
+}
 //处理节点
 const ElTreeCheckedKeys = () => {
     const Nodes = ElTreeRef.value?.treeRef?.getCheckedNodes() || []

+ 6 - 5
src/views/data-fill/division.vue

@@ -39,7 +39,7 @@
             <div class="horizontal-drag-line" @mousedown="onmousedown" />
         </div>
         <div class="hc-page-content-box hc-division-page">
-            <div style="height: 50px" class="mb-2">
+            <!-- <div style="height: 50px" class="mb-2">
                 <hc-card class="text-right">
                     <el-button
                         hc-btn
@@ -59,7 +59,7 @@
                         <span>节点导入</span>
                     </el-button>
                 </hc-card>
-            </div>
+            </div> -->
             <div class="basic-info">
                 <HcNewCard title="当前节点基础信息">
                     <template #extra>
@@ -98,7 +98,7 @@
                             <HcIcon name="add" />
                             <span>引用元素表</span>
                         </el-button>
-                        <el-button
+                        <!-- <el-button
                             hc-btn
                             color="#3EB1A5"
                             class="text-white"
@@ -106,7 +106,7 @@
                         >
                             <HcIcon name="edit-2" />
                             <span>节点命名配置</span>
-                        </el-button>
+                        </el-button> -->
                     </template>
                     <HcTable
                         :column="tableProjectColumn"
@@ -563,6 +563,7 @@
                 :contract-id="contractId"
                 :project-id="projectId"
                 :is-custom="isCustom"
+                :strictly="true"
                 @check-change="addTreeNodeCheckChange"
             />
             <HcTreeNode
@@ -571,7 +572,7 @@
                 :old-id="addTreeNodeOldId"
                 :contract-id="contractId"
                 :project-id="projectId"
-                strictly
+                :strictly="false"
                 :is-custom="isCustom"
                 @check-change="addTreeNodeCheckChange"
             />

+ 6 - 5
src/views/data-fill/wbs.vue

@@ -145,12 +145,12 @@
                     @change="authBtnTabClick"
                 >
                     <template #extra>
-                        <div v-if="ListItemDatas.length > 0" class="mr-1 flex items-center justify-center whitespace-nowrap">
+                        <!-- <div v-if="ListItemDatas.length > 0" class="mr-1 flex items-center justify-center whitespace-nowrap">
                             <div class="font-500">  文件题名</div>
                             <div class="title-input h-[30px] flex items-center leading-[30px]" :style="{ width: titleInput ? '' : '100px' }">{{ titleInput }}</div>
                         </div>
-                        
-                        <HcTooltip keys="node_base_data">
+                         -->
+                        <!-- <HcTooltip keys="node_base_data">
                             <el-button
                                 hc-btn
                                 type="primary"
@@ -162,7 +162,7 @@
                             >
                                 节点基础数据
                             </el-button>
-                        </HcTooltip>
+                        </HcTooltip> -->
                         <HcTooltip keys="wbs_views_sort_btn">
                             <el-button
                                 v-if="nodeDataInfo?.nodeClass !== 2"
@@ -924,6 +924,7 @@
                 :wbs-id="projectInfo.referenceWbsTemplateId"
                 :project-id="projectId"
                 :is-custom="isCustom"
+                :strictly="true"
                 @check-change="addTreeNodeCheckChange"
             />
             <HcTreeNode
@@ -933,7 +934,7 @@
                 :contract-id="contractId"
                 :wbs-id="projectInfo.referenceWbsTemplateId"
                 :project-id="projectId"
-                strictly
+                :strictly="false"
                 :is-custom="isCustom"
                 @check-change="addTreeNodeCheckChange"
             />