<script lang="ts" setup>
|
import { reactive } from 'vue';
|
|
import { BasicModal, useModalInner } from '@jnpf/ui/modal';
|
import { BasicVxeTable, useVxeTable } from '@jnpf/ui/vxeTable';
|
|
import { getDataModelList } from '#/api/systemData/dataModel';
|
import { $t } from '#/locales';
|
|
const emit = defineEmits(['register', 'select']);
|
const [registerModal, { closeModal }] = useModalInner(init);
|
const searchInfo = reactive<Recordable>({
|
linkId: '0',
|
});
|
const [registerTable, { getForm, getSelectRows }] = useVxeTable({
|
api: getDataModelList,
|
columns: [
|
{ title: '表名', dataIndex: 'table' },
|
{ title: '说明', dataIndex: 'tableName' },
|
],
|
useSearchForm: true,
|
formConfig: {
|
baseColProps: { span: 8 },
|
schemas: [
|
{
|
field: 'keyword',
|
label: $t('common.keyword'),
|
component: 'Input',
|
componentProps: {
|
placeholder: $t('common.enterKeyword'),
|
submitOnPressEnter: true,
|
},
|
},
|
],
|
},
|
tableSetting: { size: false, setting: false },
|
immediate: false,
|
rowSelection: { type: 'checkbox' },
|
});
|
function init(data) {
|
searchInfo.linkId = data.dbLinkId ?? '0';
|
getForm().resetFields();
|
}
|
function handleSubmit() {
|
const selectedData = getSelectRows();
|
emit('select', selectedData);
|
closeModal();
|
}
|
</script>
|
<template>
|
<BasicModal v-bind="$attrs" @register="registerModal" title="数据选择" @ok="handleSubmit" :width="800" class="jnpf-list-modal">
|
<BasicVxeTable :search-info="searchInfo" @register="registerTable" class="jnpf-sub-table" />
|
</BasicModal>
|
</template>
|