Browse Source

关联工程用途及部位

duy 2 years ago
parent
commit
c4b73b4fe1

+ 5 - 1
src/views/tentative/detect/components/DivisionTree.vue

@@ -31,6 +31,10 @@ const props = defineProps({
     idPrefix: {
         type: String,
         default: 'division-tree-data2-'
+    },
+    defaultCheckarr:{
+        type: Array,
+        default: () => ([])
     }
 })
 
@@ -40,7 +44,7 @@ const ElTreeProps = ref({
     label: 'fullName',
     children: 'children'
 })
-const defaultCheckarr =  ref([])
+// const defaultCheckarr =  ref([])
 
 //事件
 const emit = defineEmits(['nodeTap','nodeCheck'])

+ 54 - 3
src/views/tentative/detect/test-form.vue

@@ -75,7 +75,7 @@
         <HcDialog :show="linksRelateModal" title="关联工程用途及部位" widths="50rem" isTable saveText="确认关联" @close="linksRelateModalClose" @save="linksRelateModalSave">
             <div class="hc-links-relate-tree-box">
                 <div class="hc-search-tree-val">
-                    <el-input v-model="linksRelateSearchTreeVal" block size="large" placeholder="请输入名称关键词检索" clearable>
+                    <el-input v-model="linksRelateSearchTreeVal" block size="large" placeholder="请输入名称关键词检索" clearable @keyup="searchTreeKeyUp">
                         <template #suffix>
                             <HcIcon name="search-2" ui="text-xl"/>
                         </template>
@@ -83,7 +83,15 @@
                 </div>
                 <div class="hc-tree-scrollbar" v-loading="linksRelateTreeLoading" element-loading-text="获取数据中...">
                     <el-scrollbar>
-                         <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" @nodeCheck="divisionTreeCheck"/>
+                         <!-- <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" @nodeCheck="divisionTreeCheck" :defaultCheckarr="defaultCheckarrIds"/> -->
+                            <KeepAlive>
+                            <template v-if="isSearchTree">
+                               <DivisionTree :datas="searchTreeData" @nodeTap="divisionTreeClick" @nodeCheck="divisionTreeCheck" :defaultCheckarr="defaultCheckarrIds"/>
+                            </template>
+                            <template v-else>
+                               <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" @nodeCheck="divisionTreeCheck" :defaultCheckarr="defaultCheckarrIds"/>
+                            </template>
+                        </KeepAlive>
                     </el-scrollbar>
                 </div>
             </div>
@@ -128,6 +136,7 @@ import ListItem from "./components/ListItem.vue"
 import DivisionTree from "./components/DivisionTree.vue"
 import dataApi from "~api/tentative/detect/test";
 import divisionApi from "~api/data-fill/division";
+import queryApi from '~api/data-fill/query';
 import {getStoreData} from '~src/utils/storage'
 import TestTree from "../material/components/TestTree.vue"
 import {getArrValue, getObjValue, getObjNullValue} from "vue-utils-plus";
@@ -260,6 +269,7 @@ const linksRelateModalClick = () => {
 }
 //获取导入树
 const unmatchedTreeData = ref([])
+const defaultCheckarrIds=ref([])
 const getContractInfoTreeApi = async () => {
     const {error, code, data} = await divisionApi.getengineerInfoTree({
         projectId: projectId.value,
@@ -269,6 +279,18 @@ const getContractInfoTreeApi = async () => {
     //判断状态
     if (!error && code === 200) {
         unmatchedTreeData.value = getArrValue(data)
+        if( unmatchedTreeData.value.length>0){
+            let defayltidarr=[]
+            console.log(unmatchedTreeData.value,'unmatchedTreeData.value');
+            unmatchedTreeData.value.forEach((item)=>{
+                if(item.isSelectedStatus===1){
+                    defayltidarr.push(item.primaryKeyId)
+                }
+            })
+            console.log(defayltidarr,'defayltidarr');
+            defaultCheckarrIds.value=defayltidarr
+            console.log(defaultCheckarrIds.value,'defaultCheckarrIds');
+        }
     } else {
         unmatchedTreeData.value = []
     }
@@ -288,7 +310,36 @@ const divisionTreeCheck = (data) => {
 }
 const linksRelateSearchTreeVal = ref('')
 const linksRelateTreeLoading = ref(false)
-
+const searchTreeData = ref([])
+const searchlinksRelateTreeLoading = ref(false)
+const searchTreeKeyUp = (e) => {
+    if (e.key === "Enter") {
+        searchTreeClick()
+    }
+}
+//树搜索
+const isSearchTree = ref(false)
+const searchTreeClick = async () => {
+    if (linksRelateSearchTreeVal.value) {
+        isSearchTree.value = true
+        searchlinksRelateTreeLoading.value = false
+      const {error, code, data} = await queryApi.searchContractTree({
+            contractId: contractId.value,
+            queryValue: linksRelateSearchTreeVal.value
+        })
+        //判断状态
+        if (!error && code === 200) {
+            searchTreeData.value = getArrValue(data)
+            searchlinksRelateTreeLoading.value = false
+        } else {
+            searchlinksRelateTreeLoading.value = true
+            searchTreeData.value = []
+        }
+    } else {
+        searchlinksRelateTreeLoading.value = true
+        isSearchTree.value = false
+    }
+}
 //确认关联
 const linksRelateModalSave = () => {
     linksRelateModal.value = false