提交 | 用户 | 时间
|
820397
|
1 |
<template> |
c9a6f7
|
2 |
<doc-alert title="地区 & IP" url="https://doc.iocoder.cn/area-and-ip/" /> |
H |
3 |
|
820397
|
4 |
<!-- 操作栏 --> |
H |
5 |
<ContentWrap> |
|
6 |
<el-button type="primary" plain @click="openForm()"> |
|
7 |
<Icon icon="ep:plus" class="mr-5px" /> IP 查询 |
|
8 |
</el-button> |
|
9 |
</ContentWrap> |
|
10 |
|
|
11 |
<!-- 列表 --> |
|
12 |
<ContentWrap> |
|
13 |
<div style="width: 100%; height: 700px"> |
|
14 |
<!-- AutoResizer 自动调节大小 --> |
|
15 |
<el-auto-resizer> |
|
16 |
<template #default="{ height, width }"> |
|
17 |
<!-- Virtualized Table 虚拟化表格:高性能,解决表格在大数据量下的卡顿问题 --> |
|
18 |
<el-table-v2 |
c9a6f7
|
19 |
v-loading="loading" |
820397
|
20 |
:columns="columns" |
H |
21 |
:data="list" |
|
22 |
:width="width" |
|
23 |
:height="height" |
|
24 |
expand-column-key="id" |
|
25 |
/> |
|
26 |
</template> |
|
27 |
</el-auto-resizer> |
|
28 |
</div> |
|
29 |
</ContentWrap> |
|
30 |
|
|
31 |
<!-- 表单弹窗:添加/修改 --> |
|
32 |
<AreaForm ref="formRef" /> |
|
33 |
</template> |
|
34 |
<script setup lang="tsx"> |
c9a6f7
|
35 |
import { Column } from 'element-plus' |
820397
|
36 |
import AreaForm from './AreaForm.vue' |
H |
37 |
import * as AreaApi from '@/api/system/area' |
|
38 |
|
|
39 |
defineOptions({ name: 'SystemArea' }) |
|
40 |
|
|
41 |
// 表格的 column 字段 |
|
42 |
const columns: Column[] = [ |
|
43 |
{ |
c9a6f7
|
44 |
dataKey: 'id', // 需要渲染当前列的数据字段 |
820397
|
45 |
title: '编号', // 显示在单元格表头的文本 |
H |
46 |
width: 400, // 当前列的宽度,必须设置 |
|
47 |
fixed: true, // 是否固定列 |
|
48 |
key: 'id' // 树形展开对应的 key |
|
49 |
}, |
|
50 |
{ |
|
51 |
dataKey: 'name', |
|
52 |
title: '地名', |
|
53 |
width: 200 |
|
54 |
} |
|
55 |
] |
c9a6f7
|
56 |
const loading = ref(true) // 列表的加载中 |
H |
57 |
const list = ref([]) // 表格的数据 |
820397
|
58 |
|
c9a6f7
|
59 |
/** 获得数据列表 */ |
820397
|
60 |
const getList = async () => { |
c9a6f7
|
61 |
loading.value = true |
H |
62 |
try { |
|
63 |
list.value = await AreaApi.getAreaTree() |
|
64 |
} finally { |
|
65 |
loading.value = false |
|
66 |
} |
820397
|
67 |
} |
H |
68 |
|
|
69 |
/** 添加/修改操作 */ |
|
70 |
const formRef = ref() |
|
71 |
const openForm = () => { |
|
72 |
formRef.value.open() |
|
73 |
} |
|
74 |
|
|
75 |
/** 初始化 **/ |
|
76 |
onMounted(() => { |
|
77 |
getList() |
|
78 |
}) |
|
79 |
</script> |