Browse Source

档案目录树查询

duy 1 năm trước cách đây
mục cha
commit
c8a0604078
2 tập tin đã thay đổi với 48 bổ sung56 xóa
  1. 2 0
      src/styles/page/using/query.scss
  2. 46 56
      src/views/using/query.vue

+ 2 - 0
src/styles/page/using/query.scss

@@ -212,6 +212,8 @@
         cursor: default;
         font-size: 14px;
         border: 0;
+        width: 100%;
+        text-align: left;
     }
     .el-collapse-item.is-active .el-collapse-item__header.is-active {
         background-color: #E7EEF4;

+ 46 - 56
src/views/using/query.vue

@@ -452,22 +452,26 @@
             <template #extra>
                 <HcNewSwitch :datas="nodeTabData" :keys="nodeTabKey" :round="false" @change="nodeTabChange" />
             </template>
-            <el-collapse v-model="activeName" v-loading="nodeTreeArrLoad" class="hc-node-tree-collapse" accordion @change="collapseChange">
-                <template v-for="(item) in nodeTreeArr">
+            <el-collapse v-model="activeName" v-loading="nodeTreeArrLoad" class="hc-node-tree-collapse" @change="collapseChange">
+                <template v-for="(item, index) in nodeTreeArr">
                     <el-collapse-item :name="item.id.toString()" :disabled="item.notExsitChild === true">
                         <template #title>
                             <div class="hc-collapse-item-title">
-                                <el-checkbox v-model="item.checkColId" style="font-size: 24px;" @change="changeCheckColId(item)" />
+                                <el-checkbox v-model="item.checkColId" style="font-size: 24px;" @change="changeCheckColId(item, index)" @click.stop.native="() => {}" />
                                 <HcIcon v-if="item.notExsitChild === true" name="file" fill class="icon" />
                                 <HcIcon v-else name="folder-3" fill class="icon" />
                                 <span class="title">{{ item.nodeName }}</span>
                             </div>
                         </template>
-                        <el-tree ref="nodetreeEl" v-loading="nodetreeElloading" class="col_tree" node-key="id" :props="defaultProps" show-checkbox lazy :load="loadNode" :data="Nodetreedata">
+                        <el-tree
+                            ref="nodetreeEl" 
+                            v-loading="nodetreeElloading" class="col_tree" node-key="id" :props="defaultProps" show-checkbox lazy :load="loadNode" :data="item.Nodetreedata"
+                        >
                             <template #default="{ node, data }">
                                 <span class="custom-tree-node">
                                     <HcIcon v-if="data.notExsitChild === true" name="file" fill class="icon" style="color: #FFAF2D;" />
-                                    <HcIcon v-else name="folder-3" fill class="icon" style="color: #FFAF2D;" /><span>{{ node.label }}</span>
+                                    <HcIcon v-else name="folder-3" fill class="icon" style="color: #FFAF2D;" />
+                                    <span>{{ node.label }}</span>
                                 </span>
                             </template>
                         </el-tree>
@@ -484,7 +488,7 @@ import { nextTick, onMounted, ref, watch } from 'vue'
 import { useAppStore } from '~src/store'
 import MetaTable from '../transfer/components/meta-table.vue'
 import HcMediaMic from './components/media-mic/index.vue'
-import { arrIndex, getArrValue, getObjValue, isArrIndex } from 'js-fast-way'
+import { arrIndex, arrToId, getArrValue, getObjValue, isArrIndex } from 'js-fast-way'
 import archiveQueryApi from '~api/using/query.js'
 import tuningApi from '~api/archiveConfig/tuning.js'
 import imageViewGui from '~src/assets/view/gui.png'
@@ -883,9 +887,20 @@ const nodeTreeModalClose = () => {
 
 //确认
 const nodeTreeModalSave = () => {
-    nodeTreeModal.value = false
-    let keys = nodetreeEl.value[treeIndex.value].getCheckedKeys()
-    searchForm.value.nodeIds = keys.join(',') || singleId.value
+   const allCheckIds = arrToId(nodeTreeArr.value.filter((item)=>item.checkColId)).split(',')
+   let halfKeys = []
+    nodeTreeArr.value.forEach((ele, index)=>{
+        if (ele.checkColId === false) {
+            let keys = nodetreeEl.value[index].getCheckedKeys()
+            keys.forEach((ele)=>{
+                halfKeys.push(ele)
+            })
+        }
+    })
+   const ids = [...allCheckIds, ...halfKeys]
+
+   searchForm.value.nodeIds = ids.join(',') 
+   nodeTreeModal.value = false
 
 }
 
@@ -1289,50 +1304,24 @@ const nodeTabChange = (item) => {
 const checkColId = ref(false)
 const checkNodeid = ref('')
 const singleId = ref('')
-const changeCheckColId = (item)=>{
-
-    let arr = nodeTreeArr.value.filter((ele)=>{
-            if (ele.checkColId) {
-            return ele
-            }
-        })
-        if (arr.length > 1) {
-           nodeTreeArr.value.forEach((ele1)=>{
-            if (ele1.id !== item.id)
-            ele1.checkColId = false
-           })
-     }
-    if (item.notExsitChild === true) {
-        singleId.value = item.id
-    } else {
-        if (!activeName.value) {
-            checkNodeid.value = item.id
-            activeName.value = item.id
-            item.checkColId = false
-            getNodetreedata()
-        } else {
-            let idsarr = []
-            if (item.checkColId === false) {
-            nextTick(()=>{
-                nodetreeEl?.value[treeIndex.value].setCheckedKeys([], false)
-            })
-            } else {
-                nextTick(()=>{
-                    Nodetreedata?.value.forEach((item)=>{
-                        idsarr.push(item.id)
-                    })
-                    nodetreeEl?.value[treeIndex.value].setCheckedKeys(idsarr, true)
-                })
-            }
-
-        }
-
-    }
 
 
 
 
 
+// }
+const changeCheckColId = async (item)=>{
+ 
+    const ids = arrToId(Nodetreedata.value).split(',')
+ 
+    //  if (item.checkColId) {
+    //     nextTick(()=>{
+    //         nodetreeEl?.value[treeIndex.value].setCheckedKeys(ids, true)
+    //     })
+    //  } else {
+    //     nodetreeEl?.value[treeIndex.value].setCheckedKeys([], false)
+    //  }
+    
 }
 const nodeTreeArrLoad = ref(false)
 const getnodeTabData = async ()=>{
@@ -1369,15 +1358,11 @@ const activeName = ref('')
 const nodeTreeArr = ref([])
 
 const treeIndex = ref(0)
-const collapseChange = (key) => {
-
-    treeIndex.value = nodeTreeArr.value.findIndex(item=>{
-return item.id === key
-})
+const collapseChange = async (key) => {
+    checkNodeid.value = key[key.length - 1]
+   await getNodetreedata()
 
-    checkNodeid.value = key
-    activeName.value = key.toString()
-    getNodetreedata()
+   
 }
 const nodetreeElloading = ref(false)
 const getNodetreedata = async ()=>{
@@ -1392,6 +1377,11 @@ const getNodetreedata = async ()=>{
     } else {
         Nodetreedata.value = []
     }
+    nodeTreeArr.value.forEach((ele)=>{
+        if (ele.id === checkNodeid.value) {
+            ele.Nodetreedata = Nodetreedata.value
+        }
+    })
 }
 const checkNodeids = ref([])