diff --git a/dev_wms_client/src/api/excel.js b/dev_wms_client/src/api/excel.js index 159ce2a..e8d53f8 100644 --- a/dev_wms_client/src/api/excel.js +++ b/dev_wms_client/src/api/excel.js @@ -113,6 +113,17 @@ export const exportWorkSummaryExcel = (data) => { }) } +export const exportKanbanExcel = (data) => { + return request({ + url: '/excel/exportKanbanExcel', + method: 'post', + responseType: 'blob', + data: data, + timeout: 600000 + }) +} + +// 以下待废弃 export const downloadInRecordExcel = (data) => { return request({ url: '/excel/downloadInRecordExcel', diff --git a/dev_wms_client/src/layout/clcKanban.vue b/dev_wms_client/src/layout/clcKanban.vue index 8a81aec..33646c2 100644 --- a/dev_wms_client/src/layout/clcKanban.vue +++ b/dev_wms_client/src/layout/clcKanban.vue @@ -19,12 +19,12 @@ @change="search()"> - + - +
@@ -90,9 +90,12 @@ import { labelPosition, shortcuts } from '@/constant/form' import { kanbanStatusOptions } from '@/constant/options' import { loading } from '@/utils/loading.js' import { dateFormatter } from '@/utils/formatter.js' +import { exportKanbanExcel } from '@/api/excel.js' /** * 常量定义 */ +const STAND_ID = store.getters.getStandId +const USER_NAME = store.getters.getUserName /** * 变量定义 */ @@ -104,8 +107,8 @@ let baseTableQuery = reactive({ pageSize: 10, total: 0, sortBy: new Map([['goodsId', true]]), - standId: store.getters.getStandId, - userName: store.getters.getUserName + standId: STAND_ID, + userName: USER_NAME }) let kanbanQuery = reactive({ goodsId: '', @@ -119,7 +122,7 @@ let recordId = '' /** * 系统方法 */ - onMounted(() => { +onMounted(() => { nextTick(() => { window.addEventListener('resize', resizeHeight) search() @@ -197,11 +200,9 @@ const genKanban = () => { const request = { planStartDateFrom: dateFormatter(kanbanQuery.planStartDateFrom), planStartDateTo: dateFormatter(kanbanQuery.planStartDateTo), - standId: store.getters.getStandId, - userName: store.getters.getUserName + standId: STAND_ID, + userName: USER_NAME } - console.log(request) - console.log(kanbanQuery) loading.open('生成中...') genClcKanbanRequirement(request).then(res => { loading.close() @@ -218,6 +219,41 @@ const genKanban = () => { ElMessage.error('生成看板需求异常。') }) } +// 导出看板 +const exportExcel = () => { + const params = { + goodsId: kanbanQuery.goodsId, + kanbanId: kanbanQuery.kanbanId, + kanbanStatus: kanbanQuery.kanbanStatus == -99 ? null : kanbanQuery.kanbanStatus, + standId: STAND_ID, + userName: USER_NAME + } + exportKanbanExcel(params).then(res => { + const link = document.createElement('a');//创建a标签 + try { + // let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); //如果后台返回的不是blob对象类型,先定义成blob对象格式,该type导出为xls格式, + let blob = res.data //如果后台返回的直接是blob对象类型,直接获取数据 + // let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]; //拆解获取文件名,如果后端有给返回文件名的话 + let _fileName = '看板需求' + dateFormatter(new Date) + '.xlsx' + link.style.display = 'none'//隐藏 + + // 兼容不同浏览器的URL对象 + const url = window.URL || window.webkitURL || window.moxURL + link.href = url.createObjectURL(blob) + link.setAttribute('download', _fileName.substring(_fileName.lastIndexOf('_') + 1)) + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + url.revokeObjectURL(link.href)//移除url对象 + } catch (e) { + console.log(e) + ElMessage.error('下载文件失败') + } + }).catch(err => { + console.log(err) + ElMessage.error('导出失败') + }) +} \ No newline at end of file