feat:【antd】【ele】统一 dataSourceConfig 的实现

This commit is contained in:
YunaiV
2025-09-23 08:31:14 +08:00
parent af74cf6ad9
commit 3c67ecada0
5 changed files with 75 additions and 102 deletions

View File

@@ -55,26 +55,31 @@ export function useFormSchema(): VbenFormSchema[] {
/** 列表的字段 */
export function useGridColumns(): VxeTableGridOptions['columns'] {
return [
{ type: 'checkbox', width: 50 },
{ type: 'checkbox', width: 40 },
{
field: 'id',
title: '主键编号',
minWidth: 100,
},
{
field: 'name',
title: '数据源名称',
minWidth: 150,
},
{
field: 'url',
title: '数据源连接',
minWidth: 300,
},
{
field: 'username',
title: '用户名',
minWidth: 120,
},
{
field: 'createTime',
title: '创建时间',
minWidth: 180,
formatter: 'formatDateTime',
},
{

View File

@@ -2,7 +2,7 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { InfraDataSourceConfigApi } from '#/api/infra/data-source-config';
import { onMounted, ref } from 'vue';
import { ref } from 'vue';
import { confirm, Page, useVbenModal } from '@vben/common-ui';
import { isEmpty } from '@vben/utils';
@@ -25,6 +25,11 @@ const [FormModal, formModalApi] = useVbenModal({
destroyOnClose: true,
});
/** 刷新表格 */
function handleRefresh() {
gridApi.query();
}
/** 创建数据源 */
function handleCreate() {
formModalApi.setData(null).open();
@@ -43,10 +48,8 @@ async function handleDelete(row: InfraDataSourceConfigApi.DataSourceConfig) {
});
try {
await deleteDataSourceConfig(row.id as number);
message.success({
content: $t('ui.actionMessage.deleteSuccess', [row.name]),
});
await handleLoadData();
message.success($t('ui.actionMessage.deleteSuccess', [row.name]));
handleRefresh();
} finally {
hideLoading();
}
@@ -63,7 +66,7 @@ async function handleDeleteBatch() {
await deleteDataSourceConfigList(checkedIds.value);
checkedIds.value = [];
message.success($t('ui.actionMessage.deleteSuccess'));
await handleLoadData();
handleRefresh();
} finally {
hideLoading();
}
@@ -101,21 +104,11 @@ const [Grid, gridApi] = useVbenVxeGrid({
checkboxChange: handleRowCheckboxChange,
},
});
/** 加载数据 */
async function handleLoadData() {
await gridApi.query();
}
/** 初始化 */
onMounted(() => {
handleLoadData();
});
</script>
<template>
<Page auto-content-height>
<FormModal @success="handleLoadData" />
<FormModal @success="handleRefresh" />
<Grid table-title="数据源列表">
<template #toolbar-tools>
<TableAction

View File

@@ -83,7 +83,7 @@ const [Modal, modalApi] = useVbenModal({
</script>
<template>
<Modal class="w-2/5" :title="getTitle">
<Modal :title="getTitle">
<Form class="mx-4" />
</Modal>
</template>