Browse Source

关联工程用途部位接口

duy 2 years ago
parent
commit
3044ee268e

+ 8 - 0
src/api/modules/data-fill/division.js

@@ -8,6 +8,14 @@ export default {
             method: 'get',
             params: form
         },msg);
+    },
+     //获取关联的工程用途部位树
+     async getengineerInfoTree(form, msg = true) {
+        return httpApi({
+            url: '/api/blade-manager/contractInfo/tree',
+            method: 'get',
+            params: form
+        },msg);
     },
     //未识别合同段划分节点 手动关联
     async setImportRelation(form, msg = true) {

+ 60 - 0
src/views/tentative/detect/components/DivisionTree.vue

@@ -0,0 +1,60 @@
+<template>
+    <ElTree 
+    class="hc-tree-node " 
+    ref="ElTreeRef" 
+    :props="ElTreeProps" 
+    :data="datas" 
+    highlight-current 
+    accordion node-key="primaryKeyId" 
+    :indent="0" 
+    @node-click="ElTreeClick"
+     show-checkbox
+    @check-change="handleCheckChange"
+     :default-checked-keys="defaultCheckarr"
+    >
+        <template #default="{ node, data }">
+            <div class="data-custom-tree-node" :id="`${idPrefix}${data['primaryKeyId']}`">
+                <div class="label" :class="node.level === 1?'level-name':''">{{ node.label }}</div>
+            </div>
+        </template>
+    </ElTree>
+</template>
+
+<script setup>
+import { ref } from "vue";
+//参数
+const props = defineProps({
+    datas: {
+        type: Array,
+        default: () => ([])
+    },
+    idPrefix: {
+        type: String,
+        default: 'division-tree-data2-'
+    }
+})
+
+//变量
+const ElTreeRef = ref(null)
+const ElTreeProps = ref({
+    label: 'fullName',
+    children: 'children'
+})
+const defaultCheckarr =  ref([])
+
+//事件
+const emit = defineEmits(['nodeTap','nodeCheck'])
+
+//节点被点击
+const ElTreeClick = async (data,node) => {
+    emit('nodeTap', {node, data})
+}
+//节点被选中
+const handleCheckChange = (data,checked,indeterminate,) => {
+  emit('nodeCheck',ElTreeRef.value?.getCheckedNodes(false, false))
+}
+</script>
+
+<style lang="scss" scoped>
+@import "../../../../styles/app/tree.scss";
+</style>

+ 41 - 1
src/views/tentative/detect/test-form.vue

@@ -83,7 +83,7 @@
                 </div>
                 <div class="hc-tree-scrollbar" v-loading="linksRelateTreeLoading" element-loading-text="获取数据中...">
                     <el-scrollbar>
-                        
+                         <DivisionTree :datas="unmatchedTreeData" @nodeTap="divisionTreeClick" @nodeCheck="divisionTreeCheck"/>
                     </el-scrollbar>
                 </div>
             </div>
@@ -125,7 +125,9 @@ import {ref, watch, onMounted} from "vue";
 import {useAppStore} from "~src/store";
 import {useRouter, useRoute} from 'vue-router'
 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 {getStoreData} from '~src/utils/storage'
 import TestTree from "../material/components/TestTree.vue"
 import {getArrValue, getObjValue, getObjNullValue} from "vue-utils-plus";
@@ -133,6 +135,7 @@ import {getDictionary} from "~api/other";
 import {rowsToId} from "~uti/tools";
 import dayjs from "dayjs"
 
+
 //变量
 const router = useRouter()
 const useRoutes = useRoute()
@@ -253,14 +256,48 @@ const ListItemOffsetTop = (offsetTop) => {
 const linksRelateModal = ref(false)
 const linksRelateModalClick = () => {
     linksRelateModal.value = true
+    getContractInfoTreeApi()
+}
+//获取导入树
+const unmatchedTreeData = ref([])
+const getContractInfoTreeApi = async () => {
+    const {error, code, data} = await divisionApi.getengineerInfoTree({
+        projectId: projectId.value,
+        contractId: contractId.value,
+        wbsId: projectInfo?.value.referenceWbsTemplateId
+    })
+    //判断状态
+    if (!error && code === 200) {
+        unmatchedTreeData.value = getArrValue(data)
+    } else {
+        unmatchedTreeData.value = []
+    }
+}
+
+//关联树
+const divisionTreeItemInfo = ref({})
+const divisionTreeClick = ({data}) => {
+    divisionTreeItemInfo.value = data
 }
+const checkrelationId=ref([])
+const checkrelationString=ref([])
 
+const divisionTreeCheck = (data) => {
+   console.log(data,'data');
+   checkrelationId.value=data
+}
 const linksRelateSearchTreeVal = ref('')
 const linksRelateTreeLoading = ref(false)
 
 //确认关联
 const linksRelateModalSave = () => {
     linksRelateModal.value = false
+    console.log(checkrelationId.value,'checkrelationId.valu');
+    let idarr=[]
+    checkrelationId.value.forEach((item)=>{
+        idarr.push(item.primaryKeyId)
+    })
+    checkrelationString.value=idarr.toString()
 }
 const linksRelateModalClose = () => {
     linksRelateModal.value = false
@@ -384,6 +421,8 @@ const linksSampleModalClose = () => {
 //保存
 const tableFormSaveLoading = ref(false)
 const tableFormSaveClick = async () => {
+    console.log('保存',listItemBaseData.value);
+    listItemBaseData.value.projectPosition=checkrelationString.value
     let FormData = ListItemRef.value?.getFormData()
     let FormRegExpJson = ListItemRef.value?.getFormRegExpJson()
     //效验数据
@@ -400,6 +439,7 @@ const tableFormSaveClick = async () => {
         if (!error && code === 200) {
             window?.$message?.success('保存成功')
             listItemBaseData.value.deviceUseIds=''
+              listItemBaseData.value.projectPosition=''
             //bussPdfsClick()
             getTableDataAll()
         }