Compare commits

...

1 Commits
main ... master

Author SHA1 Message Date
wxy 6e92ac705c 侧边栏结构修改 2025-07-21 08:25:03 +08:00
6 changed files with 1197 additions and 639 deletions

View File

@ -198,6 +198,58 @@ export const systemRoutes: RouteRecordRaw[] = [
redirect: '/asset-management/device/inventory',
meta: { title: '资产管理', icon: 'property-safety', hidden: false, sort: 3 },
children: [
{
path: '/asset-management/intellectual-property1',
name: 'IntellectualProperty1',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '设备管理', icon: 'copyright', hidden: false },
children:[
{
path: '/asset-management/intellectual-property1',
name: 'IntellectualProperty11',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '库存管理', hidden: false },
},
{
path: '/asset-management/intellectual-property1',
name: 'IntellectualProperty12',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '设备采购', hidden: false },
},
{
path: '/asset-management/intellectual-property1',
name: 'IntellectualProperty13',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '在线管理', hidden: false },
children:[
{
path: '/asset-management/intellectual-property11',
name: 'IntellectualProperty14',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '无人机', hidden: false },
},
{
path: '/asset-management/intellectual-property12',
name: 'IntellectualProperty15',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '机巢', hidden: false },
},
{
path: '/asset-management/intellectual-property13',
name: 'IntellectualProperty16',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '其他智能终端', hidden: false },
},
{
path: '/asset-management/intellectual-property14',
name: 'IntellectualProperty17',
component: () => import('@/views/system-resource/information-system/software-management/index.vue'),
meta: { title: '车辆管理', hidden: false },
}
]
}
]
},
{
path: '/asset-management/intellectual-property',
name: 'IntellectualProperty',
@ -354,6 +406,100 @@ export const systemRoutes: RouteRecordRaw[] = [
redirect: '/project-management/project-template/tender-documents',
meta: { title: '项目管理', icon: 'apps', hidden: false, sort: 4 },
children: [
{
path: '/project-management/contract',
name: 'ProjectContract',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/project-management/contract/revenue-contract',
meta: {
title: '市场商务管理',
icon: 'file-text',
hidden: false
},
children: [
{
path: '/project-management/contract/revenue-contract',
name: 'RevenueContract',
component: () => import('@/views/project-management/contract/revenue-contract/index.vue'),
meta: {
title: '项目来源',
icon: 'dollar',
hidden: false
},
children:[
{
path: '/project-management/contract/revenue-contract1',
name: 'RevenueContract1',
meta: {
title: '招采业务',
icon: 'dollar',
hidden: false
}
},
{
path: '/project-management/contract/revenue-contract2',
name: 'RevenueContract2',
meta: {
title: '市场营销',
icon: 'dollar',
hidden: false
}
},
{
path: '/project-management/contract/revenue-contract3',
name: 'RevenueContract3',
meta: {
title: '自建项目',
icon: 'dollar',
hidden: false
}
},
]
},
{
path: '/project-management/contract/revenue-contract',
name: 'RevenueContract',
component: () => import('@/views/project-management/contract/revenue-contract/index.vue'),
meta: {
title: '项目合同管理',
icon: 'dollar',
hidden: false
},
children:[
{
path: '/project-management/contract/revenue-contract',
name: 'RevenueContract',
component: () => import('@/views/project-management/contract/revenue-contract/index.vue'),
meta: {
title: '收入合同',
icon: 'dollar',
hidden: false
}
},
{
path: '/project-management/contract/expense-contract',
name: 'ExpenseContract',
component: () => import('@/views/project-management/contract/expense-contract/index.vue'),
meta: {
title: '支出合同',
icon: 'credit-card',
hidden: false
}
},
{
path: '/project-management/contract/cost-management',
name: 'CostManagement',
component: () => import('@/views/project-management/contract/cost-management/index.vue'),
meta: {
title: '成本费用',
icon: 'bar-chart',
hidden: false
}
}
]
}
]
},
{
path: '/project-management/project-template',
name: 'ProjectTemplate',
@ -407,49 +553,6 @@ export const systemRoutes: RouteRecordRaw[] = [
},
]
},
{
path: '/project-management/contract',
name: 'ProjectContract',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/project-management/contract/revenue-contract',
meta: {
title: '市场商务管理',
icon: 'file-text',
hidden: false
},
children: [
{
path: '/project-management/contract/revenue-contract',
name: 'RevenueContract',
component: () => import('@/views/project-management/contract/revenue-contract/index.vue'),
meta: {
title: '收入合同',
icon: 'dollar',
hidden: false
}
},
{
path: '/project-management/contract/expense-contract',
name: 'ExpenseContract',
component: () => import('@/views/project-management/contract/expense-contract/index.vue'),
meta: {
title: '支出合同',
icon: 'credit-card',
hidden: false
}
},
{
path: '/project-management/contract/cost-management',
name: 'CostManagement',
component: () => import('@/views/project-management/contract/cost-management/index.vue'),
meta: {
title: '成本费用',
icon: 'bar-chart',
hidden: false
}
}
]
},
{
path: '/project-management/projects',
name: 'ProjectsManagement',
@ -533,19 +636,19 @@ export const systemRoutes: RouteRecordRaw[] = [
redirect: '/construction-operation-platform/implementation-workflow/field-construction',
meta: { title: '施工操作台', icon: 'tool', hidden: false, sort: 5 },
children: [
{
path: '/construction-operation-platform/implementation-workflow',
name: 'ImplementationWorkflow',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/field-construction',
meta: { title: '项目实施工作流程', icon: 'fork', hidden: false },
children: [
// {
// path: '/construction-operation-platform/implementation-workflow',
// name: 'ImplementationWorkflow',
// component: () => import('@/components/ParentView/index.vue'),
// redirect: '/construction-operation-platform/implementation-workflow/field-construction',
// meta: { title: '项目实施工作流程', icon: 'fork', hidden: false },
// children: [
{
path: '/construction-operation-platform/implementation-workflow/field-construction',
name: 'FieldConstruction',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/field-construction/project-list',
meta: { title: '外业施工', icon: 'construction', hidden: false },
meta: { title: '我的项目', icon: 'construction', hidden: false },
children: [
{
path: '/project-management/projects/list',
@ -561,23 +664,21 @@ export const systemRoutes: RouteRecordRaw[] = [
path: '/construction-operation-platform/implementation-workflow/field-construction/technology',
name: 'FieldConstructionTechnology',
component: () => import('@/views/project-operation-platform/implementation-workflow/field-construction/project-list/index.vue'),
meta: { title: '现场工艺', icon: 'tool', hidden: false },
}
]
meta: { title: '我的施工', icon: 'tool', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing',
name: 'DataProcessing',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/data-processing/data-storage',
meta: { title: '数据处理', icon: 'filter', hidden: false },
meta: { title: '我的业务数据', icon: 'filter', hidden: false },
children: [
{
path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage',
name: 'DataStorage',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/raw-data',
meta: { title: '数据入库', icon: 'database', hidden: false },
meta: { title: '原数据管理', icon: 'database', hidden: false },
children: [
{
path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/raw-data',
@ -585,12 +686,6 @@ export const systemRoutes: RouteRecordRaw[] = [
component: () => import('@/views/operation-platform/data-processing/data-storage/index.vue'),
meta: { title: '原数据管理', icon: 'file', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/preprocessed-data',
name: 'PreprocessedData',
component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/data-preprocessing/index.vue'),
meta: { title: '数据预处理', icon: 'filter', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/attachment',
name: 'AttachmentManagement',
@ -606,24 +701,36 @@ export const systemRoutes: RouteRecordRaw[] = [
]
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/preprocessed-data',
name: 'PreprocessedData',
component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/data-preprocessing/index.vue'),
meta: { title: '数据预处理', icon: 'filter', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection',
name: 'IntelligentInspection',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm',
meta: { title: '智能巡检平台', icon: 'scan', hidden: false },
meta: { title: '数据分析与图像检测', icon: 'scan', hidden: false },
children: [
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm',
name: 'DefectAlgorithm',
component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/index.vue'),
meta: { title: '缺陷检测算法', icon: 'code', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/tree-visualization',
name: 'TreeVisualization',
component: () => import('@/views/project-operation-platform/data-processing/key-info-extraction/index.vue'),
meta: { title: '树状可视化管理', icon: 'cluster', hidden: false },
meta: { title: '可视化管理', icon: 'cluster', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm',
name: 'DefectAlgorithm',
component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/index.vue'),
meta: { title: '缺陷检测', icon: 'code', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/report-generation',
name: 'ReportGeneration',
component: () => import('@/views/project-operation-platform/data-processing/report-generation/index.vue'),
meta: { title: '报告生成', icon: 'file-add', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/standard-info',
@ -632,10 +739,10 @@ export const systemRoutes: RouteRecordRaw[] = [
meta: { title: '标准信息库', icon: 'book', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/report-generation',
name: 'ReportGeneration',
component: () => import('@/views/project-operation-platform/data-processing/report-generation/index.vue'),
meta: { title: '报告生成', icon: 'file-add', hidden: false },
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/report-review',
name: 'ReportReview',
component: () => import('@/views/project-operation-platform/data-processing/report-review/index.vue'),
meta: { title: '报告修改审核', icon: 'audit', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/lifecycle-management',
@ -650,15 +757,50 @@ export const systemRoutes: RouteRecordRaw[] = [
meta: { title: '无人机云服务', icon: 'cloud-server', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/report-review',
name: 'ReportReview',
component: () => import('@/views/project-operation-platform/data-processing/report-review/index.vue'),
meta: { title: '报告修改审核', icon: 'audit', hidden: false },
}
path: '/construction-operation-platform/implementation-workflow/airport-management',
name: 'AirportManagement',
component: () => import('@/views/construction-operation-platform/airport-management/index.vue'),
meta: { title: '机场管理', icon: 'rocket', hidden: false },
},
]
}
]
},
{
path: '/construction-operation-platform/implementation-workflow/project-delivery',
name: 'ProjectDelivery',
component: () => import('@/components/ParentView/index.vue'),
redirect: '/construction-operation-platform/implementation-workflow/project-delivery/delivery-overview',
meta: { title: '项目交付', icon: 'check-circle', hidden: false },
children: [
// {
// path: '/construction-operation-platform/implementation-workflow/project-delivery/delivery-overview',
// name: 'DeliveryOverview',
// component: () => import('@/views/project-operation-platform/quality-management/process-verification/index.vue'),
// meta: { title: '交付概览', icon: 'dashboard', hidden: false },
// },
{
path: '/construction-operation-platform/implementation-workflow/project-delivery/reliability-assessment',
name: 'ReliabilityAssessment',
component: () => import('@/views/project-operation-platform/quality-management/process-verification/index.vue'),
meta: { title: '可靠性评估', icon: 'safety-certificate', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/project-delivery/data-quality-assessment',
name: 'DataQualityAssessment',
component: () => import('@/views/project-operation-platform/data-processing/data-quality-assessment/index.vue'),
meta: { title: '数据质量评估', icon: 'audit', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/project-delivery/defect-storage',
name: 'DefectStorage',
component: () => import('@/views/project-operation-platform/quality-management/defect-storage/index.vue'),
meta: { title: '质量入库', icon: 'folder-add', hidden: false },
}
]
},
]
},
{
path: '/construction-operation-platform/implementation-workflow/tower-monitoring-video',
name: 'TowerMonitoringVideo',
@ -686,30 +828,15 @@ export const systemRoutes: RouteRecordRaw[] = [
}
]
},
{
path: '/construction-operation-platform/implementation-workflow/project-delivery',
name: 'ProjectDelivery',
component: () => import('@/views/project-operation-platform/quality-management/process-verification/index.vue'),
meta: { title: '项目交付', icon: 'check-circle', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/reliability-assessment',
name: 'ReliabilityAssessment',
component: () => import('@/views/project-operation-platform/quality-management/process-verification/index.vue'),
meta: { title: '可靠性评估', icon: 'safety-certificate', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/data-quality-assessment',
name: 'DataQualityAssessment',
component: () => import('@/views/project-operation-platform/data-processing/data-quality-assessment/index.vue'),
meta: { title: '数据质量评估', icon: 'audit', hidden: false },
},
{
path: '/construction-operation-platform/implementation-workflow/defect-storage',
name: 'DefectStorage',
component: () => import('@/views/project-operation-platform/quality-management/defect-storage/index.vue'),
meta: { title: '缺陷入库', icon: 'folder-add', hidden: false },
},
// {
// path: '/construction-operation-platform/implementation-workflow/project-delivery',
// name: 'ProjectDelivery',
// component: () => import('@/components/ParentView/index.vue'),
// redirect: '/construction-operation-platform/implementation-workflow/project-delivery/delivery-overview',
// meta: { title: '机场管理', icon: 'check-circle', hidden: false },
// },
{
path: '/construction-operation-platform/implementation-workflow/other',
name: 'Other',
@ -738,9 +865,9 @@ export const systemRoutes: RouteRecordRaw[] = [
]
}
]
}
],
},
// ],
// },
{
path: '/chat-platform',
name: 'ChatPlatform',

View File

@ -0,0 +1,431 @@
<template>
<div class="airport-management">
<div class="page-header">
<a-card class="general-card" title="机场管理">
<template #extra>
<a-button type="primary" @click="handleAdd">
<template #icon>
<icon-plus />
</template>
新建机场
</a-button>
</template>
<a-row :gutter="16" style="margin-bottom: 16px">
<a-col :span="6">
<a-input-search
v-model="searchForm.name"
placeholder="请输入机场名称"
@search="search"
allow-clear
/>
</a-col>
<a-col :span="6">
<a-select
v-model="searchForm.status"
placeholder="请选择状态"
allow-clear
style="width: 100%"
>
<a-option value="1">运营中</a-option>
<a-option value="0">停运</a-option>
</a-select>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="search">
<template #icon>
<icon-search />
</template>
查询
</a-button>
<a-button style="margin-left: 8px" @click="reset">
<template #icon>
<icon-refresh />
</template>
重置
</a-button>
</a-col>
</a-row>
</a-card>
</div>
<div class="page-content">
<a-card class="general-card">
<a-table
:columns="columns"
:data="tableData"
:loading="loading"
:pagination="pagination"
@page-change="handlePageChange"
@page-size-change="handlePageSizeChange"
>
<template #status="{ record }">
<a-tag :color="record.status === '1' ? 'green' : 'red'">
{{ record.status === '1' ? '运营中' : '停运' }}
</a-tag>
</template>
<template #actions="{ record }">
<a-button type="text" size="small" @click="handleEdit(record)">
编辑
</a-button>
<a-button type="text" size="small" @click="handleView(record)">
查看详情
</a-button>
<a-popconfirm
content="确定要删除这个机场吗?"
@ok="handleDelete(record)"
>
<a-button type="text" size="small" status="danger">
删除
</a-button>
</a-popconfirm>
</template>
</a-table>
</a-card>
</div>
<!-- 新增/编辑机场弹窗 -->
<a-modal
v-model:visible="modalVisible"
:title="modalTitle"
@ok="handleSave"
@cancel="handleCancel"
width="800px"
>
<a-form
ref="formRef"
:model="form"
:rules="rules"
layout="vertical"
>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="机场名称" field="name">
<a-input v-model="form.name" placeholder="请输入机场名称" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="机场代码" field="code">
<a-input v-model="form.code" placeholder="请输入机场代码" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="所在省份" field="province">
<a-input v-model="form.province" placeholder="请输入所在省份" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="所在城市" field="city">
<a-input v-model="form.city" placeholder="请输入所在城市" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="经度" field="longitude">
<a-input-number
v-model="form.longitude"
placeholder="请输入经度"
:precision="6"
style="width: 100%"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="纬度" field="latitude">
<a-input-number
v-model="form.latitude"
placeholder="请输入纬度"
:precision="6"
style="width: 100%"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="海拔高度(米)" field="altitude">
<a-input-number
v-model="form.altitude"
placeholder="请输入海拔高度"
style="width: 100%"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="状态" field="status">
<a-select v-model="form.status" placeholder="请选择状态">
<a-option value="1">运营中</a-option>
<a-option value="0">停运</a-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-form-item label="备注" field="remark">
<a-textarea
v-model="form.remark"
placeholder="请输入备注信息"
:auto-size="{ minRows: 3, maxRows: 5 }"
/>
</a-form-item>
</a-form>
</a-modal>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { Message } from '@arco-design/web-vue'
import { IconPlus, IconSearch, IconRefresh } from '@arco-design/web-vue/es/icon'
//
const searchForm = reactive({
name: '',
status: ''
})
//
const columns = [
{
title: '机场名称',
dataIndex: 'name',
width: 150
},
{
title: '机场代码',
dataIndex: 'code',
width: 120
},
{
title: '所在地区',
dataIndex: 'location',
width: 200
},
{
title: '经纬度',
dataIndex: 'coordinates',
width: 180
},
{
title: '海拔高度(米)',
dataIndex: 'altitude',
width: 120
},
{
title: '状态',
dataIndex: 'status',
slotName: 'status',
width: 100
},
{
title: '创建时间',
dataIndex: 'createTime',
width: 180
},
{
title: '操作',
slotName: 'actions',
width: 200,
fixed: 'right'
}
]
//
const tableData = ref([
{
id: 1,
name: '北京首都国际机场',
code: 'PEK',
province: '北京市',
city: '北京市',
location: '北京市朝阳区',
longitude: 116.584556,
latitude: 40.080111,
coordinates: '116.584556, 40.080111',
altitude: 35,
status: '1',
remark: '中国最大的国际机场之一',
createTime: '2024-01-01 10:00:00'
},
{
id: 2,
name: '上海浦东国际机场',
code: 'PVG',
province: '上海市',
city: '上海市',
location: '上海市浦东新区',
longitude: 121.805214,
latitude: 31.143378,
coordinates: '121.805214, 31.143378',
altitude: 4,
status: '1',
remark: '华东地区重要的国际航空枢纽',
createTime: '2024-01-02 14:30:00'
},
{
id: 3,
name: '广州白云国际机场',
code: 'CAN',
province: '广东省',
city: '广州市',
location: '广州市白云区',
longitude: 113.298889,
latitude: 23.392436,
coordinates: '113.298889, 23.392436',
altitude: 15,
status: '1',
remark: '华南地区最大的民用机场',
createTime: '2024-01-03 09:15:00'
}
])
const loading = ref(false)
//
const pagination = reactive({
current: 1,
pageSize: 10,
total: 3,
showTotal: true,
showPageSize: true
})
//
const modalVisible = ref(false)
const modalTitle = ref('新增机场')
const formRef = ref()
//
const form = reactive({
id: null,
name: '',
code: '',
province: '',
city: '',
longitude: null,
latitude: null,
altitude: null,
status: '1',
remark: ''
})
//
const rules = {
name: [{ required: true, message: '请输入机场名称' }],
code: [{ required: true, message: '请输入机场代码' }],
province: [{ required: true, message: '请输入所在省份' }],
city: [{ required: true, message: '请输入所在城市' }],
longitude: [{ required: true, message: '请输入经度' }],
latitude: [{ required: true, message: '请输入纬度' }],
status: [{ required: true, message: '请选择状态' }]
}
//
const search = () => {
loading.value = true
// API
setTimeout(() => {
loading.value = false
Message.success('查询成功')
}, 1000)
}
//
const reset = () => {
searchForm.name = ''
searchForm.status = ''
search()
}
//
const handleAdd = () => {
modalTitle.value = '新增机场'
modalVisible.value = true
resetForm()
}
//
const handleEdit = (record: any) => {
modalTitle.value = '编辑机场'
modalVisible.value = true
Object.assign(form, record)
}
//
const handleView = (record: any) => {
Message.info(`查看机场详情: ${record.name}`)
//
}
//
const handleDelete = (record: any) => {
Message.success(`删除机场: ${record.name}`)
// API
}
//
const handleSave = async () => {
const valid = await formRef.value?.validate()
if (valid) return
try {
loading.value = true
// API
await new Promise(resolve => setTimeout(resolve, 1000))
Message.success(form.id ? '更新成功' : '新增成功')
modalVisible.value = false
search()
} catch (error) {
Message.error('操作失败')
} finally {
loading.value = false
}
}
//
const handleCancel = () => {
modalVisible.value = false
resetForm()
}
//
const resetForm = () => {
Object.keys(form).forEach(key => {
if (key === 'status') {
form[key] = '1'
} else {
form[key] = null
}
})
formRef.value?.clearValidate()
}
//
const handlePageChange = (page: number) => {
pagination.current = page
search()
}
const handlePageSizeChange = (pageSize: number) => {
pagination.pageSize = pageSize
pagination.current = 1
search()
}
onMounted(() => {
search()
})
</script>
<style scoped lang="scss">
.airport-management {
.page-header {
margin-bottom: 16px;
}
.general-card {
border-radius: 8px;
}
}</style>