效果图:

组件: <!-- 按钮 --> <a-button style="background-color: transparent;margin-right: 20px; color: white" icon="download" :size="size" @click="openForm" > <!-- 引入框 --> <a-modal title="下载" :visible="visible" :width="700" :footer="null"> <div class="dialog-main" style="height:500px"> <formPage></formPage> </div> </a-modal> <!-- 引入地址 --> import formPage from '@/components/download/index.vue' <!-- 注册组件 --> export default { name: 'HeaderAvatar', components: { UserPasswordModal, formPage }, data() { return { visible: false, userPasswordModalProps: { visible: false } } } <!-- 方法 --> methods: { openForm() { this.visible = !this.visible } } <!-- 基础组件 --> <template> <div style="display: flex; flex-direction: row; height:100%;"> <div style="width: 50%; height:101%;overflow: scroll;"> <span style="font-weight:900;">字段选择</span> <a-table :row-selection="rowSelection" :columns="columns" :data-source="data" style="width:100%;" :pagination="false" /> </div> <div style="width: 50%"> <span style="font-weight:900;">导出文件位置</span> <a-form-model :model="form" :label-col="labelCol" :wrapper-col="wrapperCol" > <a-form-model-item v-bind="formItemLayout"> <span slot="label">文件名</span> <a-input v-model="form.filename" placeholder="以默认格式填充" /> </a-form-model-item> <a-form-model-item v-bind="formItemLayout"> <span slot="label">文件筛选筛选条件</span> <a-select v-model="form.filetype" placeholder="CSV"> <a-select-option value="shanghai"> CSV </a-select-option> <a-select-option value="beijing"> Excel </a-select-option> <a-select-option value="beijing"> Txt </a-select-option> </a-select> </a-form-model-item> <a-form-model-item v-bind="formItemLayout"> <span slot="label">文件最大行数</span> <a-input-number v-decorator="['文件最大行数', { initialValue: 3 }]" :min="1" :max="10" /> </a-form-model-item> <a-form-model-item v-bind="formItemLayout"> <span slot="label">文件筛选筛选条件</span> <a-textarea v-model="value" placeholder="一个筛选条件一行,用分号分隔;" :auto-size="{ minRows: 3, maxRows: 5 }" /> </a-form-model-item> <a-form-model-item> <a-button type="primary"> 当前页面导出 </a-button> <a-button type="primary"> 全量导出 </a-button> <a-button type="primary"> 取消 </a-button> </a-form-model-item> </a-form-model> </div> </div> </template> <script> const columns = [ { title: '全选', dataIndex: 'allSelect' } ] const data = [] for (let i = 0; i < 46; i++) { data.push({ key: i, name: `Edward King ${i}`, allSelect: 32, address: `London, Park Lane no. ${i}` }) } export default { data() { return { formItemLayout: { labelCol: { span: 14 }, wrapperCol: { span: 10 } }, data, columns, selectedRowKeys: [] // Check here to configure the default column } }, computed: { rowSelection() { const { selectedRowKeys } = this return { selectedRowKeys, onChange: this.onSelectChange, hideDefaultSelections: true, onSelection: this.onSelection } } }, beforeCreate() { this.form = this.$form.createForm(this, { name: 'validate_other' }) }, methods: { handleSubmit(e) { e.preventDefault() this.form.validateFields((err, values) => { if (!err) { console.log('Received values of form: ', values) } }) }, onSelectChange(selectedRowKeys) { console.log('selectedRowKeys changed: ', selectedRowKeys) this.selectedRowKeys = selectedRowKeys } } } </script>