This commit is contained in:
刘仕伟
2024-01-10 01:27:15 +08:00
parent b304fb53a0
commit fc6cec2eca
12 changed files with 393 additions and 159 deletions

View File

@@ -78,6 +78,16 @@
worksheet="销售统计">
<el-button type="primary">导出数据</el-button>
</json-excel>
<json-excel
:data="skuSaleNumberList"
v-show="false"
:fields="skuSaleNumberFields"
:before-generate = "startSkuSaleNumberDownload"
name="SKU历史销量.xls"
worksheet="SKU历史销量">
<el-button type="primary" id="downloadSkuSaleNumber"></el-button>
</json-excel>
<el-button v-if="type === '0' && mallId" type="primary" @click="toDownload">导出SKU历史销量</el-button>
</template>
<ai-table
ref="table0"
@@ -141,6 +151,30 @@
</ai-table>
</ai-card>
</template>
<ai-dialog
title="导出SKU历史销量"
:visible.sync="downloadSkuSaleNumberDlg"
:close-on-click-modal="false"
width="790px"
customFooter
@close="handleClose">
<!--<el-form class="ai-form" :model="skuDownloadForm" label-width="160px" ref="skuDownloadForm">
<el-form-item label="日期范围" style="width: 100%;" prop="date" :rules="[{ required: true, message: '请选择时间范围', trigger: 'blur' }]">
<el-date-picker
v-model="skuDownloadForm.date"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
</el-form>-->
<div class="dialog-footer" slot="footer">
<el-button @click="downloadSkuSaleNumberDlg = false"> </el-button>
<el-button type="primary" @click="toDownloadSkuSaleNumber">确定</el-button>
</div>
</ai-dialog>
</ai-list>
</template>
@@ -224,7 +258,15 @@ import { Message } from 'element-ui'
"库存货值(CNY)": "productTotalPrice",
"店铺名称": "mallName",
"评分": "mark",
"是否热销": 'hotTag'
"是否热销": 'hotTag',
"生产建议信息 - 建议生产数": 'adviceProduceNum',
"生产建议信息 - 剩余件数": 'availableProduceNum'
},
skuSaleNumberList: [],
downloadSkuSaleNumberDlg: true,
skuDownloadForm: {
date: ''
}
}
},
@@ -341,7 +383,7 @@ import { Message } from 'element-ui'
return -1
}
}
},
}
]
@@ -530,6 +572,21 @@ import { Message } from 'element-ui'
jsonFields[dateStr] = dateStr
}
return jsonFields
},
skuSaleNumberFields () {
let jsonFields = {
"日期": "date"
}
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
}
},
@@ -651,6 +708,8 @@ import { Message } from 'element-ui'
this.inventoryTotal += item.skuQuantityDetailList[j].inventoryNumInfo.warehouseInventoryNum
this.inventoryMoeny += new Number(((item.skuQuantityDetailList[j].supplierPrice / 100) * item.skuQuantityDetailList[j].inventoryNumInfo.warehouseInventoryNum).toFixed(2))
this.inventoryMoeny = new Number(this.inventoryMoeny.toFixed(2))
this.adviceProduceNum = item.skuQuantityDetailList[j].adviceProduceNum || '-'
this.availableProduceNum = item.skuQuantityDetailList[j].availableProduceNum || '-'
this.list.push(data);
// 计算已发货货值
@@ -775,6 +834,61 @@ import { Message } from 'element-ui'
}
}
})
},
toDownload() {
console.log(111)
this.downloadSkuSaleNumberDlg = true
},
startSkuSaleNumberDownload() {
},
handleClose() {
downloadSkuSaleNumberDlg = false
},
async toDownloadSkuSaleNumber() {
this.isLoading = true
if (!this.skuDownloadForm.date) {
Message.error("请选择时间")
return
}
let beginDateStr = formatDate(this.skuDownloadForm.date[0])
let endDateStyr = formatDate(this.skuDownloadForm.date[1])
let beginDate = this.skuDownloadForm.date[0]
let endDate = this.skuDownloadForm.date[1]
this.skuSaleNumberFields = {
"日期": "date"
}
for (; beginDate.getTime() < endDate.getTime(); ) {
let dateStr = formatDate(endDate)
this.skuSaleNumberFields[dateStr] = dateStr
endDate.setDate(endDate.getDate() - 1)
}
let tempSkuList = this.list.filter(item => {
return item.onSalesDurationOffline != '-天'
})
let tempIds = []
tempSkuId.map(i => {
tempIds.push(i.productSkuId)
})
let res = await sendChromeAPIMessage({
url: 'oms/bg/venom/api/supplier/sales/management/querySkuSalesNumber',
needMallId: true,
mallId: this.mallId,
data: {
"productSkuIds": tempIds,
"startDate": beginDateStr,
"endDate": endDateStyr
}})
console.log(res)
}
}
}

View File

@@ -56,7 +56,7 @@
</ai-list>
<ai-dialog
title="采集"
title="速卖通采集"
:visible.sync="copyFromDlgShow"
:close-on-click-modal="false"
width="790px"
@@ -103,7 +103,7 @@ export default {
methods: {
async getList() {
const image = 'http://temu.jjcp52.com/dist/test.png'
/*const image = 'http://temu.jjcp52.com/dist/test.png'
let res2 = await getImageMd5(image), res4
Promise.all([
sendChromeAPIMessage({
@@ -137,11 +137,13 @@ export default {
image,
upload_sign: res4.result.signature
}
})).then(() => this.$http.post('/api/copyProduct/myPage', null, {
}))*/
this.$http.post('/api/copyProduct/myPage', null, {
params: {
...this.search
}
})).then(res => {
}).then(res => {
this.tableData = res.data.records
this.total = res.data.total
})

View File

@@ -56,7 +56,7 @@
</ai-list>
<ai-dialog
title="采集"
title="TEMU采集"
:visible.sync="copyFromDlgShow"
:close-on-click-modal="false"
width="790px"

View File

@@ -442,7 +442,12 @@ import {sendTemuAPIMessage, sendSheinAPIMessage} from '@/api/chromeApi'
res.goods.map(item => {
let total = 0
if (item.pretreatInfo?.sellingPointUniversalLabels) {
total = item.pretreatInfo.sellingPointUniversalLabels[0].starComment?.comment_num || 0
for (let i = 0; i < item.pretreatInfo.sellingPointUniversalLabels.length; i++) {
if (item.pretreatInfo.sellingPointUniversalLabels[i].starComment) {
total = item.pretreatInfo.sellingPointUniversalLabels[i].starComment?.comment_num || 0
break
}
}
}
reqData.details.push({