<template> <a-modal title="选择项目(select project)" width="95%" :visible="visible" :maskClosable="false" switchFullscreen @ok = "handleOk" @cancel="handleCancel"> <div> <!--引用表格--> <BasicTable @register="registerTable" :rowSelection="rowSelection"></BasicTable> </div> </a-modal> </template> <script lang="ts" name="baseCode-baseShipArchive" setup> import {ref, reactive } from 'vue'; import {BasicTable, useTable, TableAction} from '/@/components/Table'; import { useListPage } from '/@/hooks/system/useListPage' import {columns, searchFormSchema} from './BaseProjectArchive.data'; import {list} from './BaseProjectArchive.api'; import { message } from 'ant-design-vue'; const queryParam = reactive<any>({}); var visible = ref(false); const emit = defineEmits([ 'selectProject']); //定义emit //注册table数据 const { tableContext} = useListPage({ tableProps:{ api:list, columns, canResize:false, formConfig: { schemas: searchFormSchema, autoSubmitOnEnter:true, showAdvancedButton:true, fieldMapToNumber: [ ], fieldMapToTime: [ ['shipDate', ['shipDate_begin', 'shipDate_end'], 'YYYY-MM-DD HH:mm:ss'], ], }, showTableSetting:false, showActionColumn:false, actionColumn: { width: 200, fixed:'right' }, beforeFetch: (params) => { return Object.assign(params, queryParam); }, } }) const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext function handleCancel() { visible.value = false; selectedRowKeys.value = [] emit('selectProject',rowSelection.selectedRows) } function handleOk() { if(selectedRowKeys.value.length!==1){ message.warning('请选择一条数据数据') }else{ emit('selectProject',rowSelection.selectedRows) handleCancel() } } function getTable(){ visible.value = true } defineExpose({ getTable }); </script> <style lang="less" scoped> :deep(.ant-picker),:deep(.ant-input-number){ width: 100%; } </style>