Browse Source

资料填报-资料查询搜索树修改

duy 2 years ago
parent
commit
a8d2cb2706

+ 25 - 5
src/views/data-fill/components/HcTreeData.vue

@@ -8,6 +8,7 @@
     :default-expanded-keys="TreeExpandKey" 
     @node-click="ElTreeClick" 
     @node-contextmenu="ElTreeLabelContextMenu" 
+    v-loading="ElTreeLoadNode"
     :indent="0"  
     :filter-node-method="filterNode"
     :default-expand-all="false"
@@ -90,6 +91,14 @@ const props = defineProps({
     searchTreeVal:{
       type: String,
         default: '11'  
+    },
+    ui:{
+         type: String,
+        default: ''
+    },
+    ElTreeLoadNode:{
+        type:Boolean,
+        default:true
     }
 })
 
@@ -109,7 +118,7 @@ const TreeExpandKey = ref(props.autoExpandKeys)
 const idPrefix = ref(props.idPrefix);
 const isSubmitCounts = ref(props.submitCounts);
 const searchInfo=ref(props.searchTreeVal)
-
+const ElTreeLoadNodevalue=ref(props.ElTreeLoadNode)
 //监听
 watch(() => [
     props.menus,
@@ -118,8 +127,9 @@ watch(() => [
     props.autoExpandKeys,
     props.idPrefix,
     props.submitCounts,
-    props.searchTreeVal
-], ([menus, isMark, AutoKeys, expandKeys, UserIdPrefix, submitCounts,searchTreeVal]) => {
+    props.searchTreeVal,
+    props.ElTreeLoadNode
+], ([menus, isMark, AutoKeys, expandKeys, UserIdPrefix, submitCounts,searchTreeVal,elTreeLoadNode]) => {
     menusData.value = menus
     menuMark.value = isMark
     isAutoKeys.value = AutoKeys
@@ -127,11 +137,13 @@ watch(() => [
     idPrefix.value = UserIdPrefix
     isSubmitCounts.value = submitCounts
     searchInfo.value=searchTreeVal
+    ElTreeLoadNodevalue.value=elTreeLoadNode
 })
 watch(searchInfo, (val) => {
     if(val){
         nextTick(()=> {
-            ElTreeRef?.value.filter(val)
+              emit('changetreelaod',true)
+             ElTreeRef?.value.filter(val)
         })
         
     }else{
@@ -144,7 +156,7 @@ watch(searchInfo, (val) => {
 
 )
 //事件
-const emit = defineEmits(['menuTap','nodeTap','changeSearch'])
+const emit = defineEmits(['menuTap','nodeTap','changeSearch','changetreelaod'])
 
 //节点被点击
 const ElTreeClick = async (data,node) => {
@@ -229,11 +241,15 @@ const removeElTreeNode = (key) => {
     ElTreeRef.value.remove(node)
 }
  const getReturnNode=(node,_array,value)=>{
+      
         let isPass = node.data &&  node.data.title && node.data.title.indexOf(value) !== -1;
         isPass?_array.push(isPass):'';
         if(!isPass && node.level!=1 && node.parent){
           getReturnNode(node.parent,_array,value);
         }
+        //  setTimeout(()=>{
+        //       emit('changetreelaod',false)
+        //  },3000)
  }
 const filterNode = (value, data,node) => {
     if(!value){
@@ -246,7 +262,11 @@ const filterNode = (value, data,node) => {
         _array.forEach((item)=>{
             result = result || item;
         });
+       setTimeout(()=>{
+            emit('changetreelaod',false)
+       },1000)
         return result;
+        
     }
 // 暴露出去
 defineExpose({

+ 41 - 4
src/views/data-fill/query.vue

@@ -14,7 +14,7 @@
                 <div class="hc-search-tree-val">
                     <el-input v-model="searchTreeVal" block size="large" placeholder="请输入名称关键词检索" clearable @keyup="searchTreeKeyUp" >
                         <template #suffix>
-                            <HcIcon name="search-2" ui="text-xl" @click="searchTreeClick"/>
+                            <HcIcon name="search-2" ui="text-xl iscusor" @click="searchTreeClick"/>
                         </template>
                     </el-input>
                 </div>
@@ -26,6 +26,8 @@
                                 @nodeTap="wbsElTreeClick" 
                                 :searchTreeVal="searchTreeVal"
                                 @changeSearch="changeisSearch"
+                                @changetreelaod="changetreelaod"
+                                :ElTreeLoadNode="searchElTreeLoadNode"
                                 />
                             </template>
                             <template v-else>
@@ -235,6 +237,8 @@ const searchTreeData = ref([])
 //回车
 const treeLoading = ref(false)
 const getSearchTreeData=async()=>{
+    //  treeLoading.value = true
+     searchElTreeLoadNode.value = true
         const {error, code, data} = await queryApi.getTreeall({
             contractId: contractId.value,
             projectId: projectId.value,
@@ -244,24 +248,38 @@ const getSearchTreeData=async()=>{
         //判断状态
         if (!error && code === 200) {
             searchTreeData.value = getArrValue(data)
+            searchElTreeLoadNode.value = false
             treeLoading.value = false
         } else {
+            searchElTreeLoadNode.value = false
             treeLoading.value = false
             searchTreeData.value = []
         }
     
 }
+const searchElTreeLoadNode=ref(true)
 const getSearchTreeDataJl=async()=>{
+    //  treeLoading.value = true
+       searchElTreeLoadNode.value = true
         const {error, code, data} = await queryApi.getTreeallJl({
             contractId: contractId.value,
             type:1
         })
         //判断状态
         if (!error && code === 200) {
-            searchTreeData.value = getArrValue(data)
-            treeLoading.value = false
+             searchElTreeLoadNode.value = false
+             
+            let searchobj=getObjValue(data)
+            let searcharr=[]
+            for (let key in searchobj) { 
+                    searcharr.push(searchobj[key][0])
+                }
+                searchTreeData.value =searcharr  
+                treeLoading.value = false
+           
         } else {
             treeLoading.value = false
+             searchElTreeLoadNode.value = false
             searchTreeData.value = []
         }
     
@@ -273,7 +291,18 @@ const searchTreeKeyUp = (e) => {
 }
 
 const searchTreeClick = async () => {
-    isSearchTree.value=true
+      treeLoading.value=true
+    if(searchElTreeLoadNode.value===true){
+        treeLoading.value=true
+       window?.$message?.warning('请加载完再次点击搜索')
+    }else{
+           isSearchTree.value=true
+            //   treeLoading.value=false
+    }
+  
+    
+ 
+   
 }
 
 //树相关的变量
@@ -283,6 +312,11 @@ const nodeDataInfo = ref({})
 const changeisSearch=()=>{
     isSearchTree.value=false
 }
+const changetreelaod=(val)=>{
+    treeLoading.value=val
+   
+}
+
 //树被点击
 const wbsElTreeClick = ({node, data, keys}) => {
     nodeItemInfo.value = node
@@ -692,4 +726,7 @@ const onmousedown = () => {
 
 <style lang="scss" scoped>
 @import "../../styles/data-fill/query.scss";
+.iscusor{
+    cursor: pointer;
+}
 </style>

+ 34 - 4
src/views/data-fill/wbs.vue

@@ -100,7 +100,7 @@
                     <div class="hc-search-tree-val">
                         <el-input v-model="searchTreeVal" block size="large" placeholder="请输入名称关键词检索" clearable @keyup="searchTreeKeyUp">
                             <template #suffix>
-                                <HcIcon name="search-2" ui="text-xl" @click="searchTreeClick"/>
+                                <HcIcon name="search-2" ui="text-xl iscusor" @click="searchTreeClick"/>
                             </template>
                         </el-input>
                     </div>
@@ -116,7 +116,9 @@
                                     :searchTreeVal="searchTreeVal" isColor @nodeTap="wbsElTreeClick"
                                      @menuTap="ElTreeMenuClick"
                                      @changeSearch="changeisSearch"
+                                    @changetreelaod="changetreelaod"
                                      :submitCounts="false"
+                                      :ElTreeLoadNode="searchElTreeLoadNode"
                                      />
                                 </template>
                                 <template v-else>
@@ -470,7 +472,9 @@ const TreeAutoExpandKeys = ref(getStoreData('wbsTreeExpandKeys') || [])
 //树搜索
 const isSearchTree = ref(false)
 const wbstreeKey=ref(Math.random())
+const searchElTreeLoadNode=ref(true)
 const getSearchTreeData=async()=>{
+     searchElTreeLoadNode.value = true
     if(contractInfo.value?.contractType==2){
           const {error, code, data} = await queryApi.getTreeallJl({
             contractId: contractId.value,
@@ -478,13 +482,22 @@ const getSearchTreeData=async()=>{
         })
         //判断状态
         if (!error && code === 200) {
-            searchTreeData.value = getArrValue(data)
+            // searchTreeData.value = getArrValue(data)
+             let searchobj=getObjValue(data)
+            let searcharr=[]
+            for (let key in searchobj) { 
+                    searcharr.push(searchobj[key][0])
+                }
+            searchTreeData.value =searcharr  
+             searchElTreeLoadNode.value = false
             treeLoading.value = false
         } else {
             treeLoading.value = false
+             searchElTreeLoadNode.value = false
             searchTreeData.value = []
         }
     }else{
+         searchElTreeLoadNode.value = true
          const {error, code, data} = await queryApi.getTreeall({
             contractId: contractId.value,
             projectId: projectId.value,
@@ -493,9 +506,11 @@ const getSearchTreeData=async()=>{
         //判断状态
         if (!error && code === 200) {
             searchTreeData.value = getArrValue(data)
+             searchElTreeLoadNode.value = false
             treeLoading.value = false
         } else {
             treeLoading.value = false
+             searchElTreeLoadNode.value = false
             searchTreeData.value = []
         }
     }
@@ -654,6 +669,7 @@ const nodeDataInfo = ref({})
 
 const searchTreeVal = ref('')
 const searchTreeData = ref([])
+
 //回车
 const searchTreeKeyUp = (e) => {
     if (e.key === "Enter") {
@@ -663,10 +679,21 @@ const searchTreeKeyUp = (e) => {
 const changeisSearch=()=>{
     isSearchTree.value=false
 }
+const changetreelaod=(val)=>{
+    treeLoading.value=val
+   
+}
 const treeLoading = ref(false)
 const searchTreeClick = async () => {
-     isSearchTree.value=true
-}
+    //  isSearchTree.value=true
+     treeLoading.value=true
+       if(searchElTreeLoadNode.value===true){
+            treeLoading.value=true
+        window?.$message?.warning('请加载完再次点击搜索')
+        }else{
+            isSearchTree.value=true
+        }
+    }
 
     // if (searchTreeVal.value) {
     //     isSearchTree.value = true
@@ -1699,4 +1726,7 @@ html.theme-dark {
         color: var(--el-color-primary);
     }
 }
+.iscusor{
+    cursor: pointer;
+}
 </style>