From 37bafe6279bbb069481359b01e88ccc4718fa304 Mon Sep 17 00:00:00 2001
From: liushiwei <499672082@qq.com>
Date: Tue, 29 Aug 2023 13:42:07 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/view/ExportSaleData.vue | 196 ++++++++++++++++++++++++++++++++----
1 file changed, 175 insertions(+), 21 deletions(-)
diff --git a/src/view/ExportSaleData.vue b/src/view/ExportSaleData.vue
index 3182470..a036b73 100644
--- a/src/view/ExportSaleData.vue
+++ b/src/view/ExportSaleData.vue
@@ -16,9 +16,14 @@
+
+
@@ -89,19 +94,42 @@
+ name="近30天销售数据_按SKU.xls"
+ worksheet="近30天销售统计_按SKU">
导出数据
{}">
+
+
+
+
+
+
+
+ 导出数据
+
+
+ {}">
@@ -122,7 +150,8 @@ import { Message } from 'element-ui'
data () {
return {
list: [],
- last30Daylist: [],
+ last30DaySkcList: [],
+ last30DaySkuList: [],
mallId: '',
type: '0',
isLoading: false,
@@ -264,7 +293,7 @@ import { Message } from 'element-ui'
]
},
- col30DaysConfigs () {
+ col30DaysSkcConfigs () {
let config = [
{
prop: 'productName',
@@ -289,8 +318,8 @@ import { Message } from 'element-ui'
fixed: 'left'
},
{
- prop: 'productSkuId',
- label: 'SKU ID',
+ prop: 'skcExtCode',
+ label: 'SKC货号',
width: '120px',
align: 'center',
fixed: 'left'
@@ -309,19 +338,105 @@ import { Message } from 'element-ui'
align: 'center',
sortable: true,
'sort-method': (a, b) => {
- console.log('1、' + a[dateStr] + ' 2、' + b[dateStr])
return new Number(a[dateStr]) - new Number(b[dateStr])
}})
}
return config
},
- last30DaysJsonFields () {
+ last30DaysSkcJsonFields () {
let jsonFields = {
"商品名称": "productName",
"SPU": "productId",
"SKC": "productSkcId",
- "SKU ID": "productSkuId"
+ "SKC货号": "skcExtCode",
+ "图片链接": "productSkcPicture"
+ }
+
+ let date = new Date()
+ date.setDate(date.getDate() )
+ for (let i = 0; i < 30; i++) {
+ date.setDate(date.getDate() - 1)
+ let dateStr = formatDate(date)
+ jsonFields[dateStr] = dateStr
+ }
+
+ return jsonFields
+ },
+ col30DaysSkuConfigs () {
+ let config = [
+ {
+ prop: 'productName',
+ label: '商品名称',
+ "show-overflow-tooltip": true,
+ width: '300px',
+ align: 'left',
+ fixed: 'left'
+ },
+ {
+ prop: 'productId',
+ label: 'SPU',
+ width: '120px',
+ align: 'center',
+ fixed: 'left'
+ },
+ {
+ prop: 'productSkcId',
+ label: 'SKC',
+ width: '120px',
+ align: 'center',
+ fixed: 'left'
+ },
+ {
+ prop: 'skcExtCode',
+ label: 'SKC货号',
+ width: '120px',
+ align: 'center',
+ fixed: 'left'
+ },
+ {
+ prop: 'productSkuId',
+ label: 'SKU ID',
+ width: '120px',
+ align: 'center',
+ fixed: 'left'
+ },
+ {
+ prop: 'skuExtCode',
+ label: 'SKU货号',
+ width: '120px',
+ align: 'center',
+ fixed: 'left'
+ }
+ ]
+
+ let date = new Date()
+ date.setDate(date.getDate())
+ for (let i = 0; i < 30; i++) {
+ date.setDate(date.getDate() - 1)
+ let dateStr = formatDate(date)
+ config.push({
+ prop: dateStr,
+ label: dateStr,
+ width: '100px',
+ align: 'center',
+ sortable: true,
+ 'sort-method': (a, b) => {
+ return new Number(a[dateStr]) - new Number(b[dateStr])
+ }})
+ }
+
+ return config
+ },
+ last30DaysSkuJsonFields () {
+ let jsonFields = {
+ "商品名称": "productName",
+ "SPU": "productId",
+ "SKC": "productSkcId",
+ "SKC货号": "skcExtCode",
+ "SKU ID": "productSkuId",
+ "SKU货号": "skuExtCode",
+ "图片链接": "productSkcPicture"
}
let date = new Date()
@@ -369,6 +484,7 @@ import { Message } from 'element-ui'
}
this.isLoading = true
this.$userCheck(this.mallId).then(() => {
+ this.last30DaySkcList = []
this.getAllProductList()
this.getList()
}).catch((err) => {
@@ -411,13 +527,24 @@ import { Message } from 'element-ui'
data.productName = item.productName;
data.productId = item.productId;
data.productSkcId = item.productSkcId;
+ data.skcExtCode = item.skcExtCode;
data.purchaseConfig = item.purchaseConfig;
+ data.productSkcPicture = item.productSkcPicture;
+
+ this.last30DaySkcList.push({
+ productName: item.productName,
+ productId: item.productId,
+ productSkcId: item.productSkcId,
+ skcExtCode: item.skcExtCode,
+ productSkcPicture: item.productSkcPicture
+ })
+
if (item.onSalesDurationOffline == 0) {
data.onSalesDurationOffline = '-天'
} else {
data.onSalesDurationOffline = item.onSalesDurationOffline + '天'
}
- data.productSkcPicture = item.productSkcPicture;
+
for(let j = 0;j < item.skuQuantityDetailList.length; j++) {
data = {...data, ...item.skuQuantityDetailList[j],
@@ -450,12 +577,28 @@ import { Message } from 'element-ui'
this.isLoading = false
Message.success('销售数据加载完成,可进行导出')
- this.last30Daylist = this.list.map(item => {
+ // 初始化SKC数据列表
+ this.last30DaySkcList = this.last30DaySkcList.map(item => {
+ let date = new Date()
+ date.setDate(date.getDate() - 31)
+ for (let i = 0; i < 30; i++) {
+ date.setDate(date.getDate() + 1)
+ let dateStr = formatDate(date)
+ item[dateStr] = 0
+ }
+ return item
+ })
+
+ // 初始化SKU数据列表
+ this.last30DaySkuList = this.list.map(item => {
let temp = {
productName: item.productName,
productId: item.productId,
productSkcId: item.productSkcId,
- productSkuId: item.productSkuId
+ productSkuId: item.productSkuId,
+ skuExtCode: item.skuExtCode,
+ skcExtCode: item.skcExtCode,
+ productSkcPicture: item.productSkcPicture
}
let date = new Date()
date.setDate(date.getDate() - 31)
@@ -493,13 +636,24 @@ import { Message } from 'element-ui'
}}).then((res) => {
if (res.errorCode == 1000000) {
for (let i = 0; i < res.result.length; i++) {
- for (let j = 0; j < this.last30Daylist.length; j++) {
- if (this.last30Daylist[j].productSkuId == res.result[i].prodSkuId) {
- this.last30Daylist[j][res.result[i].date] = res.result[i].salesNumber
+ for (let j = 0; j < this.last30DaySkuList.length; j++) {
+ if (this.last30DaySkuList[j].productSkuId == res.result[i].prodSkuId) {
+ this.last30DaySkuList[j][res.result[i].date] = res.result[i].salesNumber
+
+ for (let k = 0; k < this.last30DaySkcList.length; k++) {
+ if (this.last30DaySkcList[k].productSkcId == this.last30DaySkuList[j].productSkcId) {
+ this.last30DaySkcList[k][res.result[i].date] = this.last30DaySkcList[k][res.result[i].date] + res.result[i].salesNumber
+ break
+ }
+ }
break
}
}
}
+ } else {
+ setTimeout(() => {
+ this.getSkuDetailList()
+ }, 1500)
}
})
},