diff --git a/src/components/AiCopyFromAliExpress.vue b/src/components/AiCopyFromAliExpress.vue index ae652c6..f56d8be 100644 --- a/src/components/AiCopyFromAliExpress.vue +++ b/src/components/AiCopyFromAliExpress.vue @@ -1,7 +1,7 @@ - - - - + @@ -262,11 +266,12 @@ import { Message } from 'element-ui' "生产建议信息 - 剩余件数": 'availableProduceNum' }, + skuSaleNumberFields: {}, skuSaleNumberList: [], downloadSkuSaleNumberDlg: false, skuDownloadForm: { date: '' - } + }, } }, @@ -307,16 +312,19 @@ import { Message } from 'element-ui' { prop: 'productId', label: 'SPU', + width: '120px', align: 'center' }, { prop: 'productSkcId', label: 'SKC', + width: '120px', align: 'center' }, { prop: 'productSkuId', label: 'SKU ID', + width: '120px', align: 'center' }, { @@ -327,22 +335,26 @@ import { Message } from 'element-ui' { prop: 'skuExtCode', label: 'SKU货号', + width: '120px', align: 'center' }, { prop: 'onSalesDurationOffline', label: '加入站点时长', + width: '160px', align: 'center' }, { prop: 'isVerifyPrice', label: '开款核价状态', + width: '160px', align: 'center', format: v => v ? '核价通过': '核价未通过 / 无法备货' }, { prop: 'supplierPrice', label: '申报价格(CNY)', + width: '160px', align: 'center', format: v => v / 100, fixed: "right" @@ -350,6 +362,7 @@ import { Message } from 'element-ui' { prop: 'warehouseInventoryNum', label: '仓内可用库存', + width: '160px', align: 'center', fixed: "right", sortable: true, @@ -360,6 +373,7 @@ import { Message } from 'element-ui' { prop: 'productTotalPrice', label: '库存货值(CNY)', + width: '160px', align: 'center', fixed: "right", sortable: true, @@ -371,6 +385,7 @@ import { Message } from 'element-ui' prop: 'purchaseConfig', label: '备货逻辑', align: 'center', + width: '120px', fixed: "right", sortable: true, 'sort-method': (a, b) => { @@ -571,21 +586,6 @@ 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 } }, @@ -835,7 +835,6 @@ import { Message } from 'element-ui' }) }, toDownload() { - console.log(111) this.downloadSkuSaleNumberDlg = true }, startSkuSaleNumberDownload() { @@ -845,6 +844,7 @@ import { Message } from 'element-ui' this.downloadSkuSaleNumberDlg = false }, async toDownloadSkuSaleNumber() { + this.downloadSkuSaleNumberDlg = false this.isLoading = true if (!this.skuDownloadForm.date) { Message.error("请选择时间") @@ -853,40 +853,78 @@ import { Message } from 'element-ui' 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" + let temp = {} + temp = { + 'SKC': 'skc', + 'SKU': 'sku', + 'SKU货号': 'skuExtCode' } + let beginTime = new Date(this.skuDownloadForm.date[0]) + let endTime = new Date(this.skuDownloadForm.date[1]) + for (; beginTime.getTime() <= endTime.getTime(); ) { + let dateStr = formatDate(endTime) + temp[dateStr] = dateStr - for (; beginDate.getTime() < endDate.getTime(); ) { - let dateStr = formatDate(endDate) - this.skuSaleNumberFields[dateStr] = dateStr - - endDate.setDate(endDate.getDate() - 1) + endTime.setDate(endTime.getDate() - 1) } + this.skuSaleNumberFields = temp let tempSkuList = this.list.filter(item => { return item.onSalesDurationOffline != '-天' }) - - let tempIds = [] - tempSkuId.map(i => { - tempIds.push(i.productSkuId) + this.tempSkuIds = [] + tempSkuList.map(i => { + this.tempSkuIds.push(i.productSkuId) }) + this.skuSaleNumberList = [] + this.list.map(item => { + if (item.onSalesDurationOffline != '-天') { + let temp = { + sku: item.productSkuId, + skc: item.productSkcId, + skuExtCode: item.skuExtCode + } + beginTime = new Date(this.skuDownloadForm.date[0]) + endTime = new Date(this.skuDownloadForm.date[1]) + + for (; beginTime.getTime() <= endTime.getTime(); ) { + let dateStr = formatDate(endTime) + temp[dateStr] = 0 + + endTime.setDate(endTime.getDate() - 1) + } + + this.skuSaleNumberList.push(temp) + } + }) + + let res = await sendChromeAPIMessage({ url: 'oms/bg/venom/api/supplier/sales/management/querySkuSalesNumber', needMallId: true, mallId: this.mallId, data: { - "productSkuIds": tempIds, + "productSkuIds": this.tempSkuIds, "startDate": beginDateStr, "endDate": endDateStyr }}) - console.log(res) + if (res.success) { + res.result.map(item => { + for (let i = 0; i < this.skuSaleNumberList.length; i++) { + if (this.skuSaleNumberList[i].sku == item.prodSkuId) { + this.skuSaleNumberList[i][item.date] = item.salesNumber + break + } + } + }) + document.getElementById('downloadSkuSaleNumber').click() + } else { + Message.error("获取SKU历史销量数据失败") + } + + this.isLoading = false } } diff --git a/src/view/Home.vue b/src/view/Home.vue index 48d2d08..1dc8896 100644 --- a/src/view/Home.vue +++ b/src/view/Home.vue @@ -58,6 +58,7 @@ 待装箱发货单 待收货发货单 已收货发货单 + 我的备货单 @@ -97,6 +98,7 @@ 上架新品 我的分组 + 7天畅销品 首页商品跟踪 diff --git a/src/view/selection/singletrack/Index.vue b/src/view/selection/singletrack/Index.vue new file mode 100644 index 0000000..3b042d0 --- /dev/null +++ b/src/view/selection/singletrack/Index.vue @@ -0,0 +1,64 @@ + + + + + + diff --git a/src/view/selection/singletrack/components/Detail.vue b/src/view/selection/singletrack/components/Detail.vue new file mode 100644 index 0000000..8f4bba9 --- /dev/null +++ b/src/view/selection/singletrack/components/Detail.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/src/view/selection/singletrack/components/List.vue b/src/view/selection/singletrack/components/List.vue new file mode 100644 index 0000000..af61100 --- /dev/null +++ b/src/view/selection/singletrack/components/List.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/src/view/selection/singletrack/components/SheinDetail.vue b/src/view/selection/singletrack/components/SheinDetail.vue new file mode 100644 index 0000000..2b9cc07 --- /dev/null +++ b/src/view/selection/singletrack/components/SheinDetail.vue @@ -0,0 +1,302 @@ + + + + + diff --git a/src/view/shipping/MyOrder.vue b/src/view/shipping/MyOrder.vue new file mode 100644 index 0000000..5f74c82 --- /dev/null +++ b/src/view/shipping/MyOrder.vue @@ -0,0 +1,249 @@ + + + + + \ No newline at end of file diff --git a/src/view/shipping/NormalSendGoods.vue b/src/view/shipping/NormalSendGoods.vue index a215283..358206e 100644 --- a/src/view/shipping/NormalSendGoods.vue +++ b/src/view/shipping/NormalSendGoods.vue @@ -599,7 +599,7 @@ data: { "subPurchaseOrderSn": sn }}).then((res) => { - if (res.errorCode == 1000000) { + if (res.errorCode == 1000000 && res.result.isSuccess) { for (let j = 0; j < this.choosedList.length; j++) { if (this.choosedList[j].subPurchaseOrderSn == sn) { this.successList.push(this.choosedList[j]) diff --git a/src/view/stock/ReturnDetail.vue b/src/view/stock/ReturnDetail.vue index 38f409e..6a3f6b1 100644 --- a/src/view/stock/ReturnDetail.vue +++ b/src/view/stock/ReturnDetail.vue @@ -91,8 +91,10 @@ import { Message } from 'element-ui' { prop: 'productSpuId', label: 'SPU', width: '120px', align: 'left', fixed: 'left' }, { prop: 'productSkcId', label: 'SKC', width: '120px', align: 'left', fixed: 'left' }, { prop: 'productSkuId', label: 'SKU', width: '120px', align: 'left', fixed: 'left' }, + { prop: 'skuExtCode', label: 'SKU属性', width: '120px', align: 'left', fixed: 'left' }, { slot: 'productName', label: '商品信息' }, { prop: 'purchaseSubOrderSn', label: '备货单号',width: '180px', align: 'left' }, + { prop: 'expressDeLiverySn', label: '运单号',width: '180px', align: 'left' }, { prop: 'orderTypeDesc', label: '退货原因',width: '220px', align: 'left' }, { prop: 'packageSn', label: '退货包裹号', width: '200px',align: 'left' }, { prop: 'quantity', label: 'SKU件数',width: '100px', }, @@ -102,9 +104,11 @@ import { Message } from 'element-ui' "SPU": "productSpuId", "SKC": "productSkcId", "SKU": "productSkuId", + "SKU属性": "skuExtCode", "图片地址": "thumbUrl", "属性集": "secondarySaleSpec", "备货单号": "purchaseSubOrderSn", + "运单号": "expressDeLiverySn", "退货原因": "orderTypeDesc", "退货包裹号": "packageSn", "SKU件数": "quantity", @@ -210,6 +214,8 @@ import { Message } from 'element-ui' this.currentPage = 1 this.getList(startTimeTemp, endTimeTemp) } else { + this.getDeliverySn(1) + this.getSkuExtCode(1) this.isLoading = false } } @@ -222,6 +228,66 @@ import { Message } from 'element-ui' this.isLoading = false }) }, + async getDeliverySn(pageNo) { + let arr = [] + this.tableData.map(item => { + if (arr.indexOf(item.packageSn) == -1) { + arr.push(item.packageSn) + } + }) + let res1 = await sendChromeAPIMessage({ + url: 'dunland/api/gmp/returnSupplier/package/pageQueryReturnSupplierPackage', + needMallId: true, + mallId: this.form.mallId, + data: { + pageNo: pageNo, + pageSize: 100, + returnSupplierPackageNos: arr + }}) + if (res1.success) { + res1.result.items.map(item => { + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].packageSn == item.returnSupplierPackageNo) { + this.tableData[i].expressDeLiverySn = item.expressDeLiverySn + } + } + }) + } + this.tableData = JSON.parse(JSON.stringify(this.tableData)) + if (res1.result.items.length == 100) { + await getDeliverySn(pageNo + 1) + } + }, + async getSkuExtCode(pageNo) { + let arr = [] + this.tableData.map(item => { + if (arr.indexOf(item.productSkuId) == -1) { + arr.push(item.productSkuId) + } + }) + let res1 = await sendChromeAPIMessage({ + url: 'bg-visage-mms/labelcode/pageQuery', + needMallId: true, + mallId: this.form.mallId, + data: { + page: pageNo, + pageSize: 100, + productSkuIdList: arr + }}) + if (res1.success) { + res1.result.pageItems.map(item => { + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].productSkuId == item.labelCodeVO.productSkuId) { + this.tableData[i].skuExtCode = item.labelCodeVO.skuExtCode + } + } + }) + } + this.tableData = JSON.parse(JSON.stringify(this.tableData)) + if (res1.result.pageItems.length == 100) { + await getSkuExtCode(pageNo + 1) + } + }, startDownload() { this.$http.post('/api/malluser/info').then(res => { if (res.code == 0) {