Vue导出功能组件封装
效果:
使用:
使用方法1
<BasicExportModal v-bind="exportModalSetting" @register="registerExportModal" @success="handleAction({type: '导出-return'})" ></BasicExportModal>
let exportModalSetting = reactive({
url: '/school/school/export' ,
columns: exportColumns,
// 需要通过赋值来改变响应,ids:unref(checkedKeys)无效
otherListParams:{
ids: []
}
})
使用方法2:
不通过modal弹窗,直接导出下载,通过hooks
import { useExport } from '/@/components/Custom/BasicExportModal/src/hooks/useExport'
const {ExportXls, downFile} = useExport()
case '导出':
let url = '/base/positionNature/export'
let resData = await downFile(url,{},'get')
ExportXls('项目方向列表',resData)
break;
可选配置:
export interface basicPropsType {
title?: string,
subtitle?: string,
subTips?: string,
columns?: columnType[],
api?: Function,
otherListParams?: any,
fileName?:string,
datasource?: any[],
url?: string,
methods: string,
openType: string,
openFileNameAddTime?: boolean,
modalProps?: Object,
autoDownload?: boolean,
beforeSubmit?:Function,
afterSubmit?:Function,
slot?: string
}
具体代码:(导出功能组件)
https://gitee.com/huang_ting/function-demo