|
77 | 77 | </el-dialog> |
78 | 78 |
|
79 | 79 | <el-dialog v-model="previewVisible" title="预览数据" width="800px"> |
80 | | - <div v-if="previewParams.length>0" style="display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap"> |
| 80 | + <div style="display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center"> |
81 | 81 | <div v-for="p in previewParams" :key="p.name" style="display:flex;align-items:center;gap:4px"> |
82 | 82 | <span style="font-size:12px">{{ p.label || p.name }}:</span> |
83 | 83 | <el-input v-model="previewValues[p.name]" size="small" style="width:140px" /> |
84 | 84 | </div> |
85 | | - <el-button size="small" type="primary" @click="doPreview">查询</el-button> |
| 85 | + <el-button size="small" type="primary" :loading="previewLoading" @click="doPreview">查询</el-button> |
86 | 86 | </div> |
87 | | - <el-table :data="previewRows" max-height="400" border size="small"> |
| 87 | + <el-table :data="previewRows" max-height="400" border size="small" v-loading="previewLoading"> |
88 | 88 | <el-table-column v-for="col in previewColumns" :key="col" :prop="col" :label="col" show-overflow-tooltip /> |
89 | 89 | </el-table> |
90 | 90 | <div style="margin-top:8px;color:#888;font-size:12px">共 {{ previewRows.length }} 条</div> |
@@ -127,6 +127,7 @@ const previewColumns = ref<string[]>([]) |
127 | 127 | const previewParams = ref<any[]>([]) |
128 | 128 | const previewValues = ref<Record<string,any>>({}) |
129 | 129 | const previewId = ref(0) |
| 130 | +const previewLoading = ref(false) |
130 | 131 | const dbBrowserVisible = ref(false) |
131 | 132 | const testVisible = ref(false) |
132 | 133 | const mappingLoading = ref(false) |
@@ -183,11 +184,15 @@ function openPreview(row: any) { |
183 | 184 | previewRows.value = [] |
184 | 185 | previewColumns.value = [] |
185 | 186 | previewVisible.value = true |
| 187 | + doPreview() // 打开即自动查询(无参数也能出数据) |
186 | 188 | } |
187 | 189 | async function doPreview() { |
188 | | - const res = await request.post('/report/dataview/preview', { id: previewId.value, params: previewValues.value }) |
189 | | - previewColumns.value = res.data?.columns || [] |
190 | | - previewRows.value = res.data?.rows || [] |
| 190 | + previewLoading.value = true |
| 191 | + try { |
| 192 | + const res = await request.post('/report/dataview/preview', { id: previewId.value, params: previewValues.value }) |
| 193 | + previewColumns.value = res.data?.columns || [] |
| 194 | + previewRows.value = res.data?.rows || [] |
| 195 | + } finally { previewLoading.value = false } |
191 | 196 | } |
192 | 197 |
|
193 | 198 | function openDbBrowser() { |
|
0 commit comments