|
@@ -2,7 +2,17 @@
|
|
|
<div class="relative h-full flex">
|
|
|
<div :id="`hc_tree_card_${uuid}`">
|
|
|
<hc-new-card v-loading="treeLoaing" scrollbar>
|
|
|
- <HcDataTree :h-props="treeProps" :datas="treeData" is-load-menu :auto-expand-keys="autoExpandKeys" tree-key="id" @menuTap="treeMenuTap" @nodeTap="treeNodeTap" @loadMenu="treeLoadMenu" />
|
|
|
+ <hc-lazy-tree
|
|
|
+ v-if="ishowTree"
|
|
|
+ :h-props="treeProps"
|
|
|
+ is-load-menu
|
|
|
+ :auto-expand-keys="autoExpandKeys"
|
|
|
+ tree-key="id"
|
|
|
+ @load="treeLoadNode"
|
|
|
+ @menuTap="treeMenuTap"
|
|
|
+ @nodeTap="treeNodeTap"
|
|
|
+ @loadMenu="treeLoadMenu"
|
|
|
+ />
|
|
|
</hc-new-card>
|
|
|
</div>
|
|
|
<div :id="`hc_table_card_${uuid}`" class="flex-1">
|
|
@@ -10,7 +20,7 @@
|
|
|
<template #extra>
|
|
|
<el-button v-if="!isInfoView" hc-btn type="primary" @click="addsupply">增补清单</el-button>
|
|
|
<el-button hc-btn type="primary" @click="leadModalShow = true">导入</el-button>
|
|
|
- <el-button hc-btn type="primary" @click="exportExcel">导出</el-button>
|
|
|
+ <el-button hc-btn type="primary">导出</el-button>
|
|
|
</template>
|
|
|
<div class="relative">
|
|
|
<infoTable1 v-if="isInfoView" :info-data="infoData" />
|
|
@@ -28,12 +38,12 @@
|
|
|
<el-form ref="formRef" class="p-4" label-position="left" label-width="auto" :model="formModel" :rules="formRules">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="清单编号:">
|
|
|
+ <el-form-item label="清单编号:" prop="formNumber">
|
|
|
<el-input v-model="formModel.formNumber" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="清单名称:">
|
|
|
+ <el-form-item label="清单名称:" prop="formName">
|
|
|
<el-input v-model="formModel.formName" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -63,7 +73,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="章编号:">
|
|
|
+ <el-form-item label="章编号:" prop="chapterNumber">
|
|
|
<el-input v-model="formModel.chapterNumber" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -282,7 +292,7 @@ import { getHeader } from 'hc-vue3-ui'
|
|
|
import { useAppStore } from '~src/store'
|
|
|
import infoTable from './components/check-list/info-table.vue'
|
|
|
import infoTable1 from './components/check-list/info-table1.vue'
|
|
|
-import { addNode, deleteNode, getDetail, getFormTree, getImportTemplate, lockNode, sortForm, updateForm } from '~api/project/debit//project/contract.js'
|
|
|
+import { addNode, deleteNode, getDetail, getImportTemplate, getLazyFormTree, lockNode, sortForm, updateForm } from '~api/project/debit/contract/check-list.js'
|
|
|
import { getDictionary } from '~api/other'
|
|
|
import { getStoreValue, setStoreValue } from '~src/utils/storage'
|
|
|
import { delMessageV2 } from '~com/message/index.js'
|
|
@@ -300,7 +310,7 @@ const uuid = getRandom(4)
|
|
|
//渲染完成
|
|
|
onMounted(() => {
|
|
|
setSplitRef()
|
|
|
- treeLoadNode()
|
|
|
+
|
|
|
getFormType()
|
|
|
|
|
|
})
|
|
@@ -323,6 +333,9 @@ const getFormType = async () => {
|
|
|
code: 'meter_form_type',
|
|
|
})
|
|
|
formtypeOptions.value = getArrValue(data)
|
|
|
+ formtypeOptions.value.forEach((ele)=>{
|
|
|
+ ele.dictKey = Number(ele.dictKey)
|
|
|
+ })
|
|
|
}
|
|
|
//搜索表单
|
|
|
const searchForm = ref({})
|
|
@@ -333,33 +346,36 @@ const treeProps = {
|
|
|
children: 'children',
|
|
|
isLeaf: 'hasChild',
|
|
|
}
|
|
|
-const treeData = ref([])
|
|
|
+const ishowTree = ref(true)
|
|
|
|
|
|
//自动展开缓存
|
|
|
const autoExpandKeys = ref(getStoreValue('autoExpandKeys') || [])
|
|
|
//获取树的数据
|
|
|
|
|
|
const treeLoaing = ref(false)
|
|
|
-const treeLoadNode = async ()=>{
|
|
|
- treeLoaing.value = true
|
|
|
- const { error, code, data } = await getFormTree({
|
|
|
+//懒加载的数据
|
|
|
+const treeLoadNode = async ({ node, item, level }, resolve) => {
|
|
|
+ let id = 0
|
|
|
+ if (level !== 0) {
|
|
|
+ const nodeData = getObjValue(item)
|
|
|
+ id = nodeData?.id || ''
|
|
|
+ }
|
|
|
+ //获取数据
|
|
|
+ const { error, code, data } = await getLazyFormTree({
|
|
|
projectId: projectId.value,
|
|
|
+ parentId:id,
|
|
|
contractId:contractId.value,
|
|
|
})
|
|
|
- treeLoaing.value = false
|
|
|
- if (!error && code === 200) {
|
|
|
- treeData.value = getArrValue(data)
|
|
|
-
|
|
|
- } else {
|
|
|
- treeData.value = []
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ resolve(getArrValue(data))
|
|
|
}
|
|
|
+
|
|
|
//树被点击
|
|
|
const isInfoView = ref(false)
|
|
|
+
|
|
|
const treeNodeTap = ({ node, data, keys }) => {
|
|
|
isInfoView.value = !!node.isLeaf
|
|
|
- console.log(keys, 'keys')
|
|
|
+ treeItem.value = data
|
|
|
autoExpandKeys.value = keys || []
|
|
|
getTreeNodeDetail(data)
|
|
|
setStoreValue('autoExpandKeys', keys)
|
|
@@ -412,7 +428,7 @@ const treeMenuTap = ({ key, data, node }) => {
|
|
|
treeModalShow.value = true
|
|
|
formModel.value = {
|
|
|
isFormNode:1,
|
|
|
- formType:node.parent.data?.formType,
|
|
|
+ formType:data?.formType,
|
|
|
contractId:contractId.value,
|
|
|
projectId:projectId.value,
|
|
|
parentId:data.id,
|
|
@@ -514,7 +530,25 @@ const treeModalTitle = ref('')
|
|
|
//弹窗表单
|
|
|
const formRef = ref(null)
|
|
|
const formModel = ref({})
|
|
|
-const formRules = ref({})
|
|
|
+const formRules = ref({
|
|
|
+
|
|
|
+ formNumber: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入清单编号',
|
|
|
+ },
|
|
|
+ formName: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入清单名称',
|
|
|
+ },
|
|
|
+ chapterNumber: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入章编号',
|
|
|
+ },
|
|
|
+
|
|
|
+})
|
|
|
const addNodeLoading = ref(false)
|
|
|
//弹窗保存
|
|
|
const treeModalSave = async () => {
|
|
@@ -565,9 +599,14 @@ const tableLeadData = ref([
|
|
|
{ id: 5, k1: '101-1c', k2: '101-1c', k3: '按合同条款规定,提供建筑工程一切险', k4: '总额', k5: '12', k6: '3.9', k7: '1', k8: '100', k9: '' },
|
|
|
])
|
|
|
|
|
|
-const leadModalSave = () => {
|
|
|
- leadUploadRef.value.submit()
|
|
|
+const leadModalSave = async () => {
|
|
|
+ await leadUploadRef.value.submit()
|
|
|
leadModalShow.value = false
|
|
|
+ window.$message.success('导入成功')
|
|
|
+ ishowTree.value = false
|
|
|
+ setTimeout(() => {
|
|
|
+ ishowTree.value = true
|
|
|
+ }, 1000)
|
|
|
}
|
|
|
|
|
|
//增补清单表单
|
|
@@ -580,7 +619,7 @@ const addsupply = ()=>{
|
|
|
supplementsFormModel.value = {
|
|
|
isFormNode:1,
|
|
|
isSupplement:1,
|
|
|
- formType:'1',
|
|
|
+ formType:treeItem.value?.formType,
|
|
|
}
|
|
|
supplementsModalShow.value = true
|
|
|
}
|
|
@@ -589,6 +628,7 @@ const supplementsModalSave = async () => {
|
|
|
const { error, code } = await addNode({
|
|
|
...supplementsFormModel.value,
|
|
|
isSupplement:1,
|
|
|
+ parentId:treeItem.value?.id || '',
|
|
|
})
|
|
|
//判断状态
|
|
|
supplementLoading.value = false
|