|
@@ -17,6 +17,7 @@ import request from '@/router/axios'
|
|
|
* @typedef {import('./types').SalesForecastSummaryPageResponse} SalesForecastSummaryPageResponse
|
|
|
* @typedef {import('./types').SalesForecastMainListQueryParams} SalesForecastMainListQueryParams
|
|
|
* @typedef {import('./types').SalesForecastMainListResponse} SalesForecastMainListResponse
|
|
|
+ * @typedef {import('./types').SalesForecastTemplateResponse} SalesForecastTemplateResponse
|
|
|
*/
|
|
|
|
|
|
/**
|
|
@@ -298,3 +299,27 @@ export const batchSaveSalesForecastSummary = async (data) => {
|
|
|
data
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 下载“销售预测汇总”导入模板(Excel)
|
|
|
+ * 对应后端:GET /api/blade-factory/api/factory/salesForecastSummary/exportTemplate
|
|
|
+ * 响应为二进制流(Blob),非 JSON;响应头包含 Content-Disposition、Content-Type 等
|
|
|
+ * @returns {Promise<SalesForecastTemplateResponse>} Axios Blob 响应,data 为 Excel 二进制
|
|
|
+ * @example
|
|
|
+ * // 前端触发下载示例:
|
|
|
+ * const res = await exportSalesForecastTemplate()
|
|
|
+ * const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
|
|
|
+ * const url = window.URL.createObjectURL(blob)
|
|
|
+ * const a = document.createElement('a')
|
|
|
+ * a.href = url
|
|
|
+ * a.download = '销售预测模板.xlsx'
|
|
|
+ * a.click()
|
|
|
+ * window.URL.revokeObjectURL(url)
|
|
|
+ */
|
|
|
+export const exportSalesForecastTemplate = async () => {
|
|
|
+ return request({
|
|
|
+ url: '/api/blade-factory/api/factory/salesForecastSummary/exportTemplate',
|
|
|
+ method: 'get',
|
|
|
+ responseType: 'blob'
|
|
|
+ })
|
|
|
+}
|