|
|
@@ -4,13 +4,7 @@ meta:
|
|
|
</route>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { getModelByList } from '@/api/model/modelApi'
|
|
|
-import { getObjectByList } from '@/api/model/modelObjectApi'
|
|
|
-import useSettingsStore from '@/store/modules/settings'
|
|
|
-
|
|
|
-const settingsStore = useSettingsStore()
|
|
|
-const router = useRouter()
|
|
|
-const tabbar = useTabbar()
|
|
|
+import { getModelTreeData } from '@/api/model/modelApi'
|
|
|
|
|
|
interface TreeNode {
|
|
|
label: string
|
|
|
@@ -19,20 +13,12 @@ interface TreeNode {
|
|
|
children?: TreeNode[]
|
|
|
}
|
|
|
|
|
|
-interface Object {
|
|
|
- modelId: number
|
|
|
- objectId: number
|
|
|
- objectTitle: string
|
|
|
- objectCode: string
|
|
|
- comment: string
|
|
|
-}
|
|
|
-
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
|
keywords: '',
|
|
|
treeData: [] as TreeNode[],
|
|
|
+ curModelId: 0,
|
|
|
curObjectId: 0,
|
|
|
- objectList: [] as Object[],
|
|
|
dialogState: 1,
|
|
|
search: {
|
|
|
keywords: '',
|
|
|
@@ -40,69 +26,49 @@ const state = reactive({
|
|
|
})
|
|
|
|
|
|
const leftTreeRef = ref()
|
|
|
-const modelRef = ref()
|
|
|
-const getObjectList = async () => {
|
|
|
- const curModelId = state.curObjectId
|
|
|
- if (curModelId > 0) {
|
|
|
- state.loading = true
|
|
|
- const { data } = await getObjectByList({})
|
|
|
- state.objectList = data
|
|
|
- state.loading = false
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const getObjectData = () => {
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-const getModelList = async () => {
|
|
|
- const { data } = await getModelByList('')
|
|
|
- const models: TreeNode[] = []
|
|
|
- data.forEach((item: any) => {
|
|
|
- models.push({
|
|
|
- label: item.modelTitle,
|
|
|
- value: item.modelId,
|
|
|
- isLeaf: false,
|
|
|
- })
|
|
|
- })
|
|
|
-
|
|
|
- state.treeData = models
|
|
|
+const getTreeData = async () => {
|
|
|
+ state.loading = true
|
|
|
+ const { data } = await getModelTreeData()
|
|
|
+ state.treeData = data
|
|
|
+ state.loading = false
|
|
|
|
|
|
if (data && data.length > 0) {
|
|
|
- state.curObjectId = data[0].value
|
|
|
- nextTick(() => {
|
|
|
- leftTreeRef.value.setCurrentKey(data[0].value)
|
|
|
- })
|
|
|
- await getObjectData()
|
|
|
+ const firstModel = data[0]
|
|
|
+ state.curModelId = firstModel.value
|
|
|
+ if (firstModel.children && firstModel.children.size > 0) {
|
|
|
+ const firstObject = firstModel.children[0]
|
|
|
+ nextTick(() => {
|
|
|
+ // leftTreeRef.value.setCurrentKey(firstObject.value)
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
- getModelList()
|
|
|
+ getTreeData()
|
|
|
})
|
|
|
|
|
|
// 对象选择
|
|
|
const onTreeNodeClick = (node: TreeNode) => {
|
|
|
if (node.isLeaf) {
|
|
|
state.curObjectId = node.value
|
|
|
- getObjectData()
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ state.curModelId = node.value
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const objectTableRef = ref()
|
|
|
-const objectRef = ref()
|
|
|
|
|
|
// 检索对象
|
|
|
const onSearch = () => {
|
|
|
- getObjectData()
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<div class="absolute-container">
|
|
|
<tool-header title="数据仓库">
|
|
|
- <template #right>
|
|
|
- </template>
|
|
|
+ <template #right />
|
|
|
</tool-header>
|
|
|
<div class="page-main">
|
|
|
<LayoutContainer left-side-width="250px" hide-left-side-toggle>
|
|
|
@@ -115,6 +81,9 @@ const onSearch = () => {
|
|
|
<el-icon v-if="data.isLeaf" size="16px" style="margin-right: 5px;">
|
|
|
<svg-icon name="uim:box" />
|
|
|
</el-icon>
|
|
|
+ <el-icon v-else size="16px" style="margin-right: 5px;">
|
|
|
+ <svg-icon name="bx:bxs-component" />
|
|
|
+ </el-icon>
|
|
|
<div class="text">
|
|
|
{{ data.label }}
|
|
|
</div>
|
|
|
@@ -142,9 +111,17 @@ const onSearch = () => {
|
|
|
<el-table ref="objectTableRef" v-loading="state.loading" class="list-table" :data="state.objectList" border stripe highlight-current-row height="100%">
|
|
|
<el-table-column type="index" label="序号" header-align="center" align="center" width="70" />
|
|
|
|
|
|
- <el-table-column prop="objectTitle" label="名称" header-align="center" align="center" width="200" />
|
|
|
+ <el-table-column prop="objectTitle" label="名称" header-align="center" align="center" width="200">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.objectTitle }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column prop="objectCode" label="代码" header-align="center" align="center" width="150" />
|
|
|
+ <el-table-column prop="objectCode" label="代码" header-align="center" align="center" width="150">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.objectCode }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
<el-table-column prop="objectType" label="类型" header-align="center" align="center" width="150">
|
|
|
<template #default="scope">
|
|
|
@@ -153,7 +130,11 @@ const onSearch = () => {
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column prop="comment" label="说明" header-align="center" align="left" />
|
|
|
+ <el-table-column prop="comment" label="说明" header-align="center" align="left">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>{{ scope.row.comment }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</LayoutContainer>
|