| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| --> |
| |
| <script setup lang="ts"> |
| import type { Application } from '@/api' |
| import type { DataTableColumns, PaginationProps } from 'naive-ui' |
| import type { PropType } from 'vue' |
| |
| defineOptions({ |
| name: 'ApplicationTable' |
| }) |
| |
| defineProps({ |
| data: { |
| type: Array as PropType<Application[]>, |
| default: () => [] |
| }, |
| pagination: { |
| type: Object as PropType<PaginationProps>, |
| default: () => ({}) |
| } |
| }) |
| |
| const columns: DataTableColumns<Application> = [ |
| { |
| title: 'AppId', |
| key: 'appId', |
| sorter: true |
| }, |
| { |
| title: 'SubUser', |
| key: 'subUser' |
| }, |
| { |
| title: 'Tenant', |
| key: 'tenant' |
| }, |
| { |
| title: 'HeartbeatTime', |
| key: 'heartbeatTime' |
| }, |
| { |
| title: 'ShuffleSize', |
| key: 'shuffleSize' |
| }, |
| { |
| title: 'ActiveShuffle', |
| key: 'shuffleFileCount', |
| sorter: true |
| } |
| ] |
| </script> |
| |
| <template> |
| <n-data-table scroll-x="1000" :columns="columns" :data="data" :pagination="pagination" /> |
| </template> |