diff --git a/src/router/index.js b/src/router/index.js index a2a0605..129195e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -85,6 +85,11 @@ const router = new VueRouter({ name: 'copyProduct', component: () => import('../view/product/CopyProduct.vue') }, + { + path: 'draft', + name: 'draft', + component: () => import('../view/product/Draft.vue') + }, { path: 'copyProductShein', name: 'copyProductShein', diff --git a/src/utils/product.js b/src/utils/product.js index 380ecf6..c2f19b1 100644 --- a/src/utils/product.js +++ b/src/utils/product.js @@ -139,6 +139,175 @@ export function transform(leftData) { return JSON.stringify(rightData); } +export function transformSubmitForHalf(leftData, config, draftId) { + let rightData = {}; + // 分类 + let leftCategory = leftData.categories; + rightData.cat1Id = leftCategory.cat1.catId; + rightData.cat2Id = leftCategory.cat2.catId; + rightData.cat3Id = leftCategory.cat3.catId; + rightData.cat4Id = leftCategory.cat4.catId; + rightData.cat5Id = leftCategory.cat5.catId; + rightData.cat6Id = leftCategory.cat6.catId; + rightData.cat7Id = leftCategory.cat7.catId; + rightData.cat8Id = leftCategory.cat8.catId; + rightData.cat9Id = leftCategory.cat9.catId; + rightData.cat10Id = leftCategory.cat10.catId; + + // 普通属性 + rightData.productName = leftData.productName; + rightData.materialMultiLanguages = leftData.productLocalExtAttr.materialMultiLanguages; + rightData.productI18nReqs = leftData.productI18nList; + rightData.productPropertyReqs = []; + for (let i = 0; i < leftData.productPropertyList.length; i++) { + rightData.productPropertyReqs.push({ + valueUnit: leftData.productPropertyList[i].valueUnit, + propValue: leftData.productPropertyList[i].propValue, + propName: leftData.productPropertyList[i].propName, + refPid: leftData.productPropertyList[i].refPid, + vid: leftData.productPropertyList[i].vid, + controlType: 1, + pid: leftData.productPropertyList[i].pid, + templatePid: leftData.productPropertyList[i].templatePid, + valueExtendInfo: leftData.productPropertyList[i].valueExtendInfo + }); + } + + // SKC + let rightSkc = []; + let leftSkc = leftData.productSkcList; + + let productSpecPropertyReqs = []; + for(let i = 0; i < leftSkc.length; i++) { + let rightSkcItem = {}; + rightSkcItem.previewImgUrls = leftSkc[i].previewImgUrls; + rightSkcItem.productSkcCarouselImageI18nReqs = leftSkc[i].productSkcCarouselImageI18nVOList; + rightSkcItem.extCode = leftSkc[i].extCode; + rightSkcItem.mainProductSkuSpecReqs = [ + { + "parentSpecId": 0, + "parentSpecName": "", + "specId": 0, + "specName": "" + } + ]; + rightSkcItem.productSkuReqs = []; + for(let j = 0; j < leftSkc[i].productSkuList.length; j++) { + let leftSkuItem = leftSkc[i].productSkuList[j]; + let rightSkuItem = {}; + + rightSkuItem.thumbUrl = leftSkuItem.thumbUrl; + rightSkuItem.productSkuThumbUrlI18nReqs = leftSkuItem.productSkuThumbUrlI18nVOList; + rightSkuItem.extCode = leftSkuItem.extCode; + rightSkuItem.supplierPrice = leftSkuItem.supplierPrice; + rightSkuItem.currencyType = leftSkuItem.currencyType; + rightSkuItem.productSkuSpecReqs = leftSkuItem.productSkuSpecList; + productSpecPropertyReqs.push({ + "parentSpecId": leftSkuItem.productSkuSpecList[0].parentSpecId, + "parentSpecName": leftSkuItem.productSkuSpecList[0].parentSpecName, + "specId": leftSkuItem.productSkuSpecList[0].specId, + "specName": leftSkuItem.productSkuSpecList[0].specName, + "refPid": 0, + "pid": 0, + "templatePid": 0, + "propName": leftSkuItem.productSkuSpecList[0].specName, + "vid": 0, + "propValue": leftSkuItem.productSkuSpecList[0].specName, + "valueUnit": "", + "valueGroupId": 0, + "valueGroupName": "", + "valueExtendInfo": "" + }); + rightSkuItem.productSkuId = 0; + rightSkuItem.productSkuWhExtAttrReq = { + "productSkuVolumeReq": leftSkuItem.productSkuWhExtAttr.productSkuVolume, + "productSkuWeightReq": leftSkuItem.productSkuWhExtAttr.productSkuWeight, + "productSkuBarCodeReqs": leftSkuItem.productSkuWhExtAttr.productSkuBarCodes, + "productSkuSensitiveAttrReq": { + "isSensitive": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveAttr.isSensitive, + "sensitiveList": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveAttr.sensitiveList}, + "productSkuSensitiveLimitReq": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveLimit, + }; + let warehouseStockQuantityReqs = [] + for (let k = 0; k < config.wareHouseList.length; k++) { + warehouseStockQuantityReqs.push({ + warehouseId: config.wareHouseList[k], + targetStockAvailable: config.stockNumber + }) + } + let productSkuStockQuantityReq = { + warehouseStockQuantityReqs: warehouseStockQuantityReqs + } + rightSkuItem.productSkuStockQuantityReq = productSkuStockQuantityReq + rightSkuItem.currencyType = leftSkuItem.currencyType; + + rightSkcItem.productSkuReqs.push(rightSkuItem); + } + rightSkcItem.productSkcId = 0; + + rightSkc.push(rightSkcItem); + } + rightData.productSkcReqs = rightSkc; + + // Spec + rightData.productSpecPropertyReqs = productSpecPropertyReqs; + rightData.carouselImageUrls = leftData.carouselImageUrls; + rightData.carouselImageI18nReqs = leftData.carouselImageI18nVOList; + rightData.materialImgUrl = leftData.materialImgUrl; + rightData.goodsLayerDecorationReqs = leftData.goodsLayerDecorationVOList; + rightData.sizeTemplateIds = !leftData.sizeTemplateIds ? []: leftData.sizeTemplateIds; + rightData.showSizeTemplateIds = !leftData.showSizeTemplateIds ? []: leftData.showSizeTemplateIds; + rightData.goodsModelReqs = !leftData.goodsModelList ? []: leftData.goodsModelList; + rightData.productWhExtAttrReq = { + outerGoodsUrl: leftData.productWhExtAttr.outerGoodsUrl, + productOrigin: { + countryShortName: leftData.productWhExtAttr.productOrigin ? leftData.productWhExtAttr.productOrigin.countryShortName: 'CN' + } + }; + rightData.productCarouseVideoReqList = leftData.carouseVideoVOList; + rightData.goodsAdvantageLabelTypes = leftData.goodsAdvantageLabelVOList; + rightData.productDetailVideoReqList = leftData.detailVideoVOList; + rightData.productOuterPackageImageReqs = []; + for (let i = 0;i < leftData.outerPackageImages.length; i++) { + rightData.productOuterPackageImageReqs.push({ + imageUrl: leftData.outerPackageImages[i].imageUrl + }) + } + if (leftData.productGuideFileI18nList) { + rightData.productGuideFileI18nReqs = leftData.productGuideFileI18nList.map(item => { + return {fileName: item.fileName, + fileUrl: item.fileUrl, + language: item.language, + languages: item.languages} + }); + } else { + rightData.productGuideFileI18nReqs = [] + } + rightData.productOuterPackageReq = leftData.productWhExtAttr.productOuterPackage; + rightData.sensitiveTransNormalFileReqs = leftData.productWhExtAttr.sensitiveTransNormalFiles; + rightData.productSaleExtAttrReq = {}; + rightData.productShipmentReq = { + freightTemplateId: config.freightTemplateId, + shipmentLimitSecond: config.sendGoodsSecond + } + rightData.productSemiManagedReq = { + bindSiteIds: config.siteList + } + let targetRouteList = [] + for (let m = 0; m < config.wareHouseList.length; m++) { + targetRouteList.push({ + warehouseId: config.wareHouseList[m], + siteIdList: config.siteList + }) + } + rightData.productWarehouseRouteReq = { + targetRouteList: targetRouteList + } + rightData.productDraftId = draftId; + + return rightData; +} + export function transformAliExpress(content) { let template = { cat1Id: 0, diff --git a/src/view/Home.vue b/src/view/Home.vue index bf13c72..6d6e1eb 100644 --- a/src/view/Home.vue +++ b/src/view/Home.vue @@ -70,6 +70,7 @@ 商品列表 商品复制 + 草稿箱管理 商品复制(希音) diff --git a/src/view/product/Draft.vue b/src/view/product/Draft.vue new file mode 100644 index 0000000..e0e9b1c --- /dev/null +++ b/src/view/product/Draft.vue @@ -0,0 +1,347 @@ + + + + + diff --git a/src/view/shipping/WaitCreate.vue b/src/view/shipping/WaitCreate.vue index c5868a0..18ea625 100644 --- a/src/view/shipping/WaitCreate.vue +++ b/src/view/shipping/WaitCreate.vue @@ -19,7 +19,7 @@ - 开始创建 + 开始创建 {{ `结束创建(${choosedList.length}/${createTotal})` }} @@ -68,7 +68,7 @@ @@ -344,7 +344,7 @@ this.isBegin = true; this.choosedList.map((data, index) => { - let deliverOrderDetailInfos = data.orderDetailVOList.map(item => { + let deliverOrderDetailInfos = data.skuQuantityDetailList.map(item => { if (this.robForm.isModifyMaxNum) { return { productSkuId: item.productSkuId,