|
@@ -1,6 +1,10 @@
|
|
<template>
|
|
<template>
|
|
- <div :id="`table-form-item-${keyId}`" :style="tableFormItemStyle" class="hc-table-form-data-item">
|
|
|
|
- <div :id="`table-form-${keyId}`" class="hc-excel-table-form"/>
|
|
|
|
|
|
+ <div :id="`table-form-item-${keyId}`" v-loading="loading" :style="tableFormItemStyle"
|
|
|
|
+ class="hc-table-form-data-item">
|
|
|
|
+ <el-scrollbar v-if="isScroll" class="table-form-item-scrollbar">
|
|
|
|
+ <div :id="`table-form-${keyId}`" class="hc-excel-table-form"/>
|
|
|
|
+ </el-scrollbar>
|
|
|
|
+ <div v-else :id="`table-form-${keyId}`" class="hc-excel-table-form"/>
|
|
<div v-if="isTableForm === false" class="hc-no-table-form">
|
|
<div v-if="isTableForm === false" class="hc-no-table-form">
|
|
<div class="table-form-no">
|
|
<div class="table-form-no">
|
|
<img :src="notableform" alt=""/>
|
|
<img :src="notableform" alt=""/>
|
|
@@ -49,6 +53,10 @@ const props = defineProps({
|
|
type: String,
|
|
type: String,
|
|
default: 'auto'
|
|
default: 'auto'
|
|
},
|
|
},
|
|
|
|
+ scroll: { // 可否滚动
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: false
|
|
|
|
+ },
|
|
})
|
|
})
|
|
|
|
|
|
//初始变量
|
|
//初始变量
|
|
@@ -59,6 +67,8 @@ const treeId = ref(props.tid)
|
|
const classify = ref(props.classify)
|
|
const classify = ref(props.classify)
|
|
const apis = ref(props.api)
|
|
const apis = ref(props.api)
|
|
const tableFormItemStyle = ref('')
|
|
const tableFormItemStyle = ref('')
|
|
|
|
+const loading = ref(false)
|
|
|
|
+const isScroll = ref(props.scroll)
|
|
|
|
|
|
//监听
|
|
//监听
|
|
watch(() => [
|
|
watch(() => [
|
|
@@ -69,18 +79,21 @@ watch(() => [
|
|
props.classify,
|
|
props.classify,
|
|
props.width,
|
|
props.width,
|
|
props.height,
|
|
props.height,
|
|
-], ([project_id, contract_id, tree_id, key_id, cid, width, height]) => {
|
|
|
|
|
|
+ props.scroll
|
|
|
|
+], ([project_id, contract_id, tree_id, key_id, cid, width, height, scroll]) => {
|
|
projectId.value = project_id
|
|
projectId.value = project_id
|
|
contractId.value = contract_id
|
|
contractId.value = contract_id
|
|
treeId.value = tree_id
|
|
treeId.value = tree_id
|
|
keyId.value = key_id ? key_id + '' : ''
|
|
keyId.value = key_id ? key_id + '' : ''
|
|
classify.value = cid
|
|
classify.value = cid
|
|
|
|
+ isScroll.value = scroll
|
|
setItemStyle(width, height)
|
|
setItemStyle(width, height)
|
|
})
|
|
})
|
|
|
|
|
|
//渲染完成
|
|
//渲染完成
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
let keys = []
|
|
let keys = []
|
|
|
|
+ loading.value = true
|
|
const {dataInfo, bussCols, excelHtml} = apis.value
|
|
const {dataInfo, bussCols, excelHtml} = apis.value
|
|
setItemStyle(props.width, props.height)
|
|
setItemStyle(props.width, props.height)
|
|
//获取已填写的数据
|
|
//获取已填写的数据
|
|
@@ -95,6 +108,7 @@ onMounted(async () => {
|
|
if (isAsyncFunction(excelHtml)) {
|
|
if (isAsyncFunction(excelHtml)) {
|
|
await getExcelHtml(keyId.value, excelHtml, keys)
|
|
await getExcelHtml(keyId.value, excelHtml, keys)
|
|
}
|
|
}
|
|
|
|
+ loading.value = false
|
|
})
|
|
})
|
|
|
|
|
|
//设置样式
|
|
//设置样式
|
|
@@ -117,7 +131,7 @@ const getFormDataInit = () => {
|
|
classify: classify.value,
|
|
classify: classify.value,
|
|
pkeyId: keyId.value,
|
|
pkeyId: keyId.value,
|
|
nodeId: treeId.value,
|
|
nodeId: treeId.value,
|
|
- isRenderForm: false
|
|
|
|
|
|
+ isRenderForm: false,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -189,6 +203,7 @@ const getExcelHtml = async (pkeyId, func, keys) => {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
tableFormInfo.value.isRenderForm = true
|
|
tableFormInfo.value.isRenderForm = true
|
|
|
|
+ console.log('表单渲染完成')
|
|
await nextTick(() => {
|
|
await nextTick(() => {
|
|
HTableForm.setByClassKeyup(keys)
|
|
HTableForm.setByClassKeyup(keys)
|
|
})
|
|
})
|
|
@@ -247,7 +262,9 @@ const getFormData = () => {
|
|
|
|
|
|
//设置表单数据
|
|
//设置表单数据
|
|
const setFormData = (data) => {
|
|
const setFormData = (data) => {
|
|
- tableFormInfo.value = data
|
|
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ tableFormInfo.value = data
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
//获取表单效验数据
|
|
//获取表单效验数据
|
|
@@ -284,13 +301,14 @@ defineExpose({
|
|
}
|
|
}
|
|
.hc-table-form-data-item {
|
|
.hc-table-form-data-item {
|
|
position: relative;
|
|
position: relative;
|
|
- padding: 24px;
|
|
|
|
|
|
+ padding: 12px;
|
|
height: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
background-color: white;
|
|
background-color: white;
|
|
.hc-excel-table-form {
|
|
.hc-excel-table-form {
|
|
position: relative;
|
|
position: relative;
|
|
display: flex;
|
|
display: flex;
|
|
|
|
+ padding: 10px;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
td {
|
|
td {
|
|
padding: 6px;
|
|
padding: 6px;
|