''
This commit is contained in:
@@ -39,6 +39,7 @@ module.exports = {
|
||||
// target: 'http://api.jxc4.com/v2',
|
||||
// target: 'http://alpha.jxc4.com/v2', // 对应真实数据,修改后不会向平台提交
|
||||
target: 'http://www.jxc4.com/beta/v2', // 正式环境
|
||||
// target: 'http://beta.jxc4.com/v2', // 测试环境
|
||||
// target: 'http://192.168.56.1:8080/', // 后端api
|
||||
// target: 'http://alpha3.jxc4.com/v2', // 对应京东,修改后会提交
|
||||
// target: 'http://www-gblm.jxc4.com/v2', // 百货 / 宠物
|
||||
@@ -63,7 +64,7 @@ module.exports = {
|
||||
// target: 'http://api.jxc4.com/v2',
|
||||
// target: 'http://alpha.jxc4.com/v2', // 对应真实数据,修改后不会向平台提交
|
||||
target: 'http://www.jxc4.com/v2', // 正式环境
|
||||
// target: 'http://192.168.56.1:8080', // 后端api
|
||||
// target: 'http://192.168.0.75:8080/v2', // 后端api
|
||||
// target: 'http://www-jxgy.jxc4.com/v2', // 京西果园
|
||||
// target: 'http://www-gblm.jxc4.com/v2', // 百货 / 宠物
|
||||
changeOrigin: true,
|
||||
|
||||
@@ -179,7 +179,7 @@ export const APIGetInvoiceRecord = async (json,page,noLoading=true) => {
|
||||
*/
|
||||
export const APIUploadOrderInvoice = async (json,noLoading=true) => {
|
||||
try {
|
||||
let res = await api('v2/order/UploadOrderInvoice ', {
|
||||
let res = await api('v2/order/UploadOrderInvoice', {
|
||||
method: 'POST',
|
||||
data: json,
|
||||
noLoading
|
||||
@@ -189,4 +189,66 @@ export const APIUploadOrderInvoice = async (json,noLoading=true) => {
|
||||
console.error('UploadOrderInvoice ', e)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Title 上传订单拣货图片 https://tscc.meituan.com/home/doc/market/10143
|
||||
* @Description 上传订单拣货图片
|
||||
* @Param token header string true "认证token"
|
||||
* @Param orderId formData string true "订单ID"
|
||||
* @Param vendorID formData int true "平台ID"
|
||||
* @Param mediaList formData string true "返图参数"
|
||||
*
|
||||
* @Success 200 {object} controllers.CallResult
|
||||
* @Failure 200 {object} controllers.CallResult
|
||||
*
|
||||
* @mediaList
|
||||
* Url string `json:"url"`
|
||||
* Type int `json:"type"`
|
||||
* ConfigSnapshotId int64 `json:"configSnapshotId"`
|
||||
* ItemId int64 `json:"itemId"`
|
||||
* Seq int `json:"seq"`
|
||||
* InnerSeq int `json:"innerSeq"`
|
||||
* RequireId int64 `json:"requireId"`
|
||||
* MediaCode string `json:"mediaCode"`
|
||||
*/
|
||||
export const uploadOrderPickingMt = async (json,noLoading=true) => {
|
||||
try {
|
||||
let res = await api('v2/jxorder/UploadOrderPicking', {
|
||||
method: 'POST',
|
||||
data: json,
|
||||
noLoading
|
||||
})
|
||||
return res
|
||||
} catch (e) {
|
||||
console.error('UploadOrderPicking ', e)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取订单返图详情 https://tscc.meituan.com/home/doc/market/134
|
||||
* @Title 获取订单返图详情
|
||||
* @Description 获取订单返图详情
|
||||
* @Param token header string true "认证token"
|
||||
*
|
||||
* @Param orderId formData string true "订单ID"
|
||||
* @Param vendorID formData int false "平台ID"
|
||||
*
|
||||
* @Success 200 {object} controllers.CallResult
|
||||
* @Failure 200 {object} controllers.CallResult
|
||||
*/
|
||||
export const getOrderRequirePicture = async (json,noLoading=true) => {
|
||||
try {
|
||||
let res = await api('v2/jxorder/GetOrderRequirePicture', {
|
||||
params: json,
|
||||
noLoading
|
||||
})
|
||||
return res
|
||||
} catch (e) {
|
||||
console.error('GetOrderPickingDetail ', e)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
@@ -77,7 +77,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 预览图 -->
|
||||
<canvas id="resizedCanvas" class="tailorImg"></canvas>
|
||||
<canvas id="resizedCanvas" class="tailorImg" style="width: 800px;height: 600px;"></canvas>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<el-button @click="closeDialogIsTailor">取 消</el-button>
|
||||
@@ -376,10 +376,13 @@ export default {
|
||||
const canvas = document.getElementById('resizedCanvas');
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
// 设置canvas的宽度和高度
|
||||
canvas.width = this.imgWidth !== -1 ? this.imgWidth : img.width; // 新宽度
|
||||
canvas.height = this.imgHeight !== -1 ? this.imgHeight : img.height; // 新高度
|
||||
|
||||
// 设置canvas的宽度和高度
|
||||
canvas.width = this.imgWidth !== -1 ? this.imgWidth : img.width; // 新宽度
|
||||
canvas.height = this.imgHeight !== -1 ? this.imgHeight : img.height; // 新高度
|
||||
|
||||
// 3. 清除画布(防止残留)
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
|
||||
// 绘制图片到canvas上
|
||||
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
|
||||
|
||||
@@ -429,7 +432,7 @@ export default {
|
||||
canvasCompress(canvas,callback,quality = 0.9){
|
||||
let that = this
|
||||
canvas.toBlob(function (blob) {
|
||||
if (blob.size > this.imgSize * 1024 * 1024) { // 如果大于1MB,尝试降低质量或尺寸
|
||||
if (blob.size > that.imgSize * 1024 * 1024) { // 如果大于1MB,尝试降低质量或尺寸
|
||||
quality -= 0.1; // 降低质量
|
||||
if(quality<0.3){
|
||||
// // maxWidth /= 2; // 减小尺寸的一半
|
||||
@@ -577,6 +580,22 @@ export default {
|
||||
// 格式正确
|
||||
this.updateImgFile = file
|
||||
|
||||
// this.imgUrl = 'https://image.jxc4.com/image/68cd758af3530f7022be624974ffe38d.png'
|
||||
// this.imgList.push({
|
||||
// name:'current&' + (this.imgList.length + 1),
|
||||
// url: this.imgUrl,
|
||||
// raw:this.updateImgFile.raw
|
||||
// })
|
||||
// // console.log('格式正确的数据',file,'1111111111111',typeof this.value)
|
||||
// if(this.acceptType === 'image') this.isGetValue = false
|
||||
// // if(typeof this.value === 'string') this.$emit("input", 'https://image.jxc4.com/image/68cd758af3530f7022be624974ffe38d.png')
|
||||
// // else{
|
||||
// // // v-model绑定的多个值
|
||||
// // let brr = this.imgList.map(item => item.url)
|
||||
// // this.$emit("input", brr)
|
||||
// // }
|
||||
// this.$emit("input", 'https://image.jxc4.com/image/68cd758af3530f7022be624974ffe38d.png')
|
||||
// return
|
||||
// 是否获取base64
|
||||
if(this.isGetBase64) return this.fileToBase64(file)
|
||||
|
||||
|
||||
@@ -1268,11 +1268,12 @@ export default {
|
||||
if(type === 'MT'){
|
||||
if ((item.attr_id + '') == '1200000088' || (item.attr_id + '') == "1200000094") {
|
||||
if (!this.mtKeyword) return this.$toast('请输入关键词')
|
||||
let res = await api(`v2/sku/GetMTCategoryAttrValueList?attrId=${item.attr_id}&keyword=${this.mtKeyword}&appOrgCode=589`)
|
||||
let res = await api(`v2/sku/GetMTCategoryAttrValueList?attrId=${item.attr_id}&keyword=${this.mtKeyword}&appOrgCode=589`)
|
||||
if (res && res.length > 0) {
|
||||
this.mtwmCategoryData[index].value_list = res
|
||||
} else {
|
||||
this.mtwmCategoryData[index].value_list = [{ value_id: '-1', value:'其他'}]
|
||||
// this.mtwmCategoryData[index].value_list = [{ value_id: '-1', value:'其他'}]
|
||||
this.mtwmCategoryData[index].value_list = [{value_id:"2624353",value:"无品牌"},{value_id:"1000001",value:"其他品牌"}]
|
||||
}
|
||||
hideLoad()
|
||||
}
|
||||
|
||||
@@ -230,17 +230,17 @@
|
||||
<div slot="content">
|
||||
<div v-if="order.orderPayPercentage < 50 && getDns !== 'gblm'">
|
||||
<div>门店结算比例: {{ order.orderPayPercentage }}</div>
|
||||
<div>门店收益 = 平台结算({{order.totalShopMoney | toFixed2}})-预计收益({{ computedJxEarning }})- 配送费({{order.desiredFee | toFixed2}}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<div>门店实际收益 = 平台结算({{order.totalShopMoney | toFixed2}})-预计收益({{ computedJxEarning }})- 配送费({{order.desiredFee | toFixed2}}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- 果园 -->
|
||||
<div v-if="getDns === 'jxgy'">门店收益 = 商品结算({{ order.earningPrice | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<div v-if="getDns === 'jxgy'">门店实际收益 = 商品结算({{ order.earningPrice | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<!-- 百货 -->
|
||||
<div v-else-if="getDns === 'gblm'">门店收益 = 商品结算({{ order.totalShopMoney | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<div v-else-if="getDns === 'gblm'">门店实际收益 = 商品结算({{ order.totalShopMoney | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<!-- 菜市 -->
|
||||
<div v-else>
|
||||
<div v-if="order.orderPayPercentage === 100"> 门店收益 = 商品结算({{ order.shopPrice | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }}) </div>
|
||||
<div v-if=" order.orderPayPercentage >= 50 && order.orderPayPercentage < 100 ">门店收益 = 商品结算({{ order.earningPrice | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
<div v-if="order.orderPayPercentage === 100"> 门店实际收益 = 商品结算({{ order.shopPrice | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }}) </div>
|
||||
<div v-if=" order.orderPayPercentage >= 50 && order.orderPayPercentage < 100 ">门店实际收益 = 商品结算({{ order.earningPrice | toFixed2 }}) - 违约金({{ order.liquidated_damages | toFixed2 }}) - 包装费({{ order.packagePrice | toFixed2 }})</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -421,6 +421,9 @@
|
||||
v-if="scope.row.deliveryType === 'self' && scope.row.vendorID === 0 && scope.row.status < 100">自提妥投</el-button>
|
||||
<br >
|
||||
<el-button type="text" size="medium" @click="lklOrderSep(scope.row)" >订单分账</el-button>
|
||||
<br >
|
||||
<!-- 待捡货 -->
|
||||
<el-button v-if="scope.row.vendorID === 1 && scope.row.status === 10 " type="text" size="medium" @click="openMtDialog(scope.row)">上传图片</el-button> <!-- 美团上传待捡货图片 -->
|
||||
</div>
|
||||
<div slot="reference" class="more-operations">更多操作</div>
|
||||
</el-popover>
|
||||
@@ -533,6 +536,7 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 分账 -->
|
||||
<el-dialog
|
||||
title="分账"
|
||||
:visible.sync="orderSepeDia.dialogVisible"
|
||||
@@ -600,7 +604,162 @@
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
|
||||
<!-- 美团 上传图片 -->
|
||||
<el-dialog
|
||||
title="上传待拣货图片"
|
||||
:visible.sync="mtUploadImgDia.dialogVisible"
|
||||
width="400px"
|
||||
center
|
||||
:close-on-click-modal="false">
|
||||
<div v-if="mtUploadImgDia.orderInfo" class="order-info-block">
|
||||
<div class="info-row">
|
||||
<span class="label">门店:</span>
|
||||
<span class="value">{{ mtUploadImgDia.orderInfo.storeName }} (ID: {{ mtUploadImgDia.orderInfo.jxStoreID }})</span>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<span class="label">序号:</span>
|
||||
<span class="value">美团 #{{ mtUploadImgDia.orderInfo.orderSeq }}</span>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<span class="label">订单号:</span>
|
||||
<span class="value copy-link" @click="copyOrderNo(mtUploadImgDia.orderInfo.vendorOrderID)">
|
||||
{{ mtUploadImgDia.orderInfo.vendorOrderID }}
|
||||
<i class="el-icon-copy-document"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-form style="margin-top: 20px;" v-if="mtOrderRealMediaDetail.length > 0">
|
||||
<div v-for="(item,index) in mtOrderRealMediaDetail" :key="index">
|
||||
<!-- 订单维度 -->
|
||||
<div v-if="item.dimension === 1">
|
||||
<el-form-item :label="item.orderDimensionInfo.tips ">
|
||||
<!-- 示例图 -->
|
||||
<div>
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
title="示例图"
|
||||
|
||||
trigger="hover"
|
||||
>
|
||||
<div v-if="item.examplePic.length>0" style="display: flex;">
|
||||
<img
|
||||
:src="item.examplePic"
|
||||
alt="加载中......"
|
||||
style="width:150px;height: 150px;">
|
||||
</div>
|
||||
<el-button slot="reference" type="text">查看示例图</el-button>
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
<!-- 订单要求 -->
|
||||
<div v-for="(order,orderIndex) in item.orderDimensionInfo.mediaRuleRequireList" :key="orderIndex">
|
||||
<el-form-item :label="order.mediaName + ':'" :required="order.uploadRequire === 1">
|
||||
<div>
|
||||
<!-- mediaDesc 描述-->
|
||||
描述:{{ order.mediaDesc }}
|
||||
<!-- 实拍示例图列表 -->
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
title="示例图"
|
||||
|
||||
trigger="hover"
|
||||
>
|
||||
<div v-if="order.mediaExampleList.length>0" style="display: flex;">
|
||||
<img
|
||||
v-for="(img,imgIndex) in rule.mediaExampleList"
|
||||
:key="imgIndex"
|
||||
:src="img"
|
||||
alt="加载中......"
|
||||
style="width:150px;height: 150px;">
|
||||
</div>
|
||||
<el-button slot="reference" type="text">查看示例图</el-button>
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
<!-- 实拍图类型 -->
|
||||
<div v-if="order.mediaType === 2" style="text-align: center;">
|
||||
<jx-upload-file
|
||||
ref="uploadImg"
|
||||
:listType="'picture-card'"
|
||||
:imgType="['image/jpeg','image/png']"
|
||||
:imgSize="10"
|
||||
:limit="order.maxSize"
|
||||
:autoUpload="true"
|
||||
:drag="true"
|
||||
:isModeDefaule="true"
|
||||
v-model="order.uploadImg"
|
||||
>
|
||||
</jx-upload-file>
|
||||
</div>
|
||||
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- 商品维度 -->
|
||||
<!-- shootMethod 1_相册上传或实拍 2_仅实拍(需去商家端进行实拍) -->
|
||||
<div v-if="item.dimension === 2">
|
||||
<el-form-item :label="item.productDimensionInfo.productName">
|
||||
<!-- 商品列表 -->
|
||||
<div v-for="(good,goodIndex) in item.productDimensionInfo.items" :key="goodIndex">
|
||||
<!-- 商品要求 -->
|
||||
<div v-for="(rule,ruleIndex) in good.mediaRuleRequireList" :key="ruleIndex">
|
||||
<el-form-item :label="rule.mediaName + ':'" :required="rule.uploadRequire === 1">
|
||||
<div>
|
||||
<!-- mediaDesc 描述-->
|
||||
描述:{{ rule.mediaDesc }}
|
||||
<!-- 示例图: -->
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
title="示例图"
|
||||
|
||||
trigger="hover"
|
||||
>
|
||||
<div v-if="rule.mediaExampleList.length>0" style="display: flex;">
|
||||
<img
|
||||
v-for="(img,imgIndex) in rule.mediaExampleList"
|
||||
:key="imgIndex"
|
||||
:src="img"
|
||||
alt="加载中......"
|
||||
style="width:150px;height: 150px;">
|
||||
</div>
|
||||
<el-button slot="reference" type="text">查看示例图</el-button>
|
||||
</el-popover>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 实拍图类型 -->
|
||||
<div v-if="rule.mediaType === 2" style="text-align: center;">
|
||||
<jx-upload-file
|
||||
ref="uploadImg"
|
||||
:listType="'picture-card'"
|
||||
:imgType="['image/jpeg','image/png']"
|
||||
:imgSize="10"
|
||||
:limit="rule.maxSize"
|
||||
:autoUpload="true"
|
||||
:drag="true"
|
||||
:isModeDefaule="true"
|
||||
v-model="rule.uploadImg"
|
||||
>
|
||||
</jx-upload-file>
|
||||
</div>
|
||||
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="small" @click="mtUploadImgDia.dialogVisible = false">取 消</el-button>
|
||||
<el-button size="small" type="primary" @click="confirmUploadImg">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -639,7 +798,7 @@ import api, { isGY } from "@/utils/api";
|
||||
import batDealSelfTake from "@/components/ordermanager/methods/batSelfTake";
|
||||
import StoresPick from "@/components/cmp/storePick/index.vue";
|
||||
import goodsList from '@/components/cmp/goodsList'
|
||||
import { orderStatusList } from "@/apis/APIOrder.js";
|
||||
import { orderStatusList,uploadOrderPickingMt,getOrderRequirePicture } from "@/apis/APIOrder.js";
|
||||
import { apiEdition } from '@/config.js'
|
||||
import { mapGetters } from "vuex";
|
||||
import { getBrands } from "@/apis/controls/brand.js";
|
||||
@@ -648,6 +807,7 @@ moment.locale("zh-cn");
|
||||
export default {
|
||||
name: "OrderManager",
|
||||
components: {
|
||||
jxUploadFile:() => import ('@/components/cmp/uploadFile'),
|
||||
CMPWaybillInfo,
|
||||
CountDown,
|
||||
CreateWaybill,
|
||||
@@ -675,6 +835,14 @@ export default {
|
||||
}
|
||||
// 门店选择
|
||||
return {
|
||||
// 美团上传图片----
|
||||
mtOrderRealMediaDetail:[],
|
||||
mtUploadImgDia: {
|
||||
dialogVisible:false,
|
||||
orderInfo:'',
|
||||
img:''
|
||||
},
|
||||
// 美团上传图片----
|
||||
logisticsData: {
|
||||
orderId: "",
|
||||
logisticId: "",
|
||||
@@ -699,7 +867,7 @@ export default {
|
||||
vendorOrderID: "", // 订单号
|
||||
jxIncomeBegin: null,
|
||||
jxIncomeEnd: null,
|
||||
keyword: "", // 关键字
|
||||
keyword: "", // 关键字 2602201502045507987返图订单
|
||||
waybillVendorID: "", // 平台配送
|
||||
deliveryTypes: [], //配送方式
|
||||
dateRange: [], // fromDate toDate
|
||||
@@ -886,6 +1054,139 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async confirmUploadImg(){
|
||||
try {
|
||||
|
||||
let mediaList = []
|
||||
let flag = true // 判断是否上传了图片
|
||||
this.mtOrderRealMediaDetail.forEach(item => {
|
||||
if(item.dimension === 1){
|
||||
// 订单
|
||||
item.mediaRuleRequireList.forEach(i => {
|
||||
mediaList.push({
|
||||
url:i.uploadImg,
|
||||
type:0,
|
||||
configSnapshotId:i.configSnapshotId, // 新返图必传,未传为老返图
|
||||
// itemId:item.itemId,
|
||||
// seq:item.seq,
|
||||
// innerSeq:i.innerSeq,
|
||||
requireId:i.requireId,
|
||||
mediaCode:i.ocrStr
|
||||
})
|
||||
flag = i.uploadImg.length === 0 && i.uploadRequire === 1 ? false : true
|
||||
})
|
||||
}else if(item.dimension === 2){
|
||||
// 商品
|
||||
item.productDimensionInfo.items.forEach(i => {
|
||||
|
||||
i.mediaRuleRequireList.forEach(good => {
|
||||
// console.log(item,'iiiiiiii,,,串串图片的参数信息',i,'good',good,'ocr',good.ocrStr)
|
||||
mediaList.push({
|
||||
url:good.uploadImg,
|
||||
type:0,
|
||||
configSnapshotId:good.configSnapshotId, // 新返图必传,未传为老返图
|
||||
itemId:item.productDimensionInfo.itemId,
|
||||
seq:item.productDimensionInfo.seq,
|
||||
innerSeq:i.innerSeq,
|
||||
requireId:good.requireId,
|
||||
mediaCode:good.useOcr === 1 ? good.ocrStr : ""
|
||||
})
|
||||
flag = good.uploadImg.length === 0 && good.uploadRequire === 1 ? false : true
|
||||
})
|
||||
})
|
||||
}
|
||||
//
|
||||
})
|
||||
// console.log(mediaList,'串串图片的参数信息',this.mtOrderRealMediaDetail,'是否通过校验',flag)
|
||||
|
||||
if(!flag) return this.$message('未完成图片上传')
|
||||
let formData = new FormData();
|
||||
formData.append("orderId", this.mtUploadImgDia.orderInfo.vendorOrderID)
|
||||
formData.append("vendorID", 1)
|
||||
// https://tscc.meituan.com/home/doc/market/10143
|
||||
formData.append("mediaList",JSON.stringify(mediaList))
|
||||
// formData.append("imgs", JSON.stringify([this.mtUploadImgDia.img]))
|
||||
let res = await uploadOrderPickingMt(formData)
|
||||
|
||||
this.$message({
|
||||
message:'上传成功',
|
||||
type: 'success',
|
||||
center: true
|
||||
})
|
||||
hideLoad()
|
||||
console.log('上传图片的信息',res)
|
||||
}catch(err){
|
||||
console.log('err',err)
|
||||
hideLoad()
|
||||
}finally{
|
||||
this.mtUploadImgDia.dialogVisible = false
|
||||
hideLoad()
|
||||
}
|
||||
},
|
||||
copyOrderNo(orderNo){
|
||||
copyText(orderNo)
|
||||
this.$message({
|
||||
message: "已复制到剪切板",
|
||||
type: "success",
|
||||
center: true,
|
||||
});
|
||||
},
|
||||
// 打开上传图片弹框 美团
|
||||
async openMtDialog(row){
|
||||
// if(row.status !== 10) return // 目前还没有强制上传图片 后期不上传图片,无法发货(force_require_picture === 1 强制返图)
|
||||
// let formData = new FormData();
|
||||
// formData.append("orderId", row.vendorOrderID)
|
||||
// formData.append("vendorID", row.vendorID)
|
||||
let res = await getOrderRequirePicture({
|
||||
orderId:row.vendorOrderID,
|
||||
vendorID:row.vendorID
|
||||
})
|
||||
let orderRealMediaDetail = JSON.parse(res.orderRealMediaDetail)
|
||||
orderRealMediaDetail.subRealMediaDetailList.forEach(item => {
|
||||
// console.log('循环',item)
|
||||
this.mtOrderRealMediaDetail.push({
|
||||
...item
|
||||
})
|
||||
let items = []
|
||||
let mediaRuleRequireList = []
|
||||
let orderDimensionInfo = []
|
||||
if(item.dimension === 1){
|
||||
// 订单维度
|
||||
item.orderDimensionInfo.mediaRuleRequireList.forEach(i => {
|
||||
orderDimensionInfo.push({
|
||||
...i,
|
||||
uploadImg:'' // 待上传的图片信息
|
||||
})
|
||||
})
|
||||
this.mtOrderRealMediaDetail[this.mtOrderRealMediaDetail.length -1].orderDimensionInfo = orderDimensionInfo
|
||||
}else if(item.dimension === 2){
|
||||
// 商品维度
|
||||
items = []
|
||||
item.productDimensionInfo.items.forEach(i => {
|
||||
// items.push({
|
||||
// ...i,
|
||||
// uploadImg:'' // 待上传的图片信息
|
||||
// })
|
||||
items.push(i)
|
||||
mediaRuleRequireList = []
|
||||
i.mediaRuleRequireList.forEach(good => {
|
||||
// console.log(items,'itm,,items,good',good)
|
||||
mediaRuleRequireList.push({
|
||||
...good,
|
||||
uploadImg:""
|
||||
})
|
||||
})
|
||||
items[items.length -1].mediaRuleRequireList = mediaRuleRequireList
|
||||
})
|
||||
this.mtOrderRealMediaDetail[this.mtOrderRealMediaDetail.length -1].productDimensionInfo.items = items
|
||||
}
|
||||
})
|
||||
// this.mtOrderRealMediaDetail = JSON.parse(res.orderRealMediaDetail) // 实拍规则要求
|
||||
// console.log(orderRealMediaDetail,'订单维度',this.mtOrderRealMediaDetail)
|
||||
this.mtUploadImgDia.orderInfo = row
|
||||
this.mtUploadImgDia.dialogVisible = true
|
||||
// console.log('this.mtUploadImgDia',this.mtUploadImgDia)
|
||||
},
|
||||
batOpenOrderDetail(){
|
||||
if(this.selectOrder.length === 0) return this.$toast('请勾选订单信息')
|
||||
this.selectOrder.forEach(item => {
|
||||
@@ -894,7 +1195,7 @@ export default {
|
||||
},
|
||||
handleSelectionChange(e){ this.selectOrder = e },
|
||||
// 获取拉卡拉门店信息
|
||||
async getLklMerchant(storeID){
|
||||
async getLklMerchant(storeID){
|
||||
let res = await QueryIncoming({
|
||||
// customerNo,
|
||||
storeID,
|
||||
@@ -1111,8 +1412,8 @@ export default {
|
||||
if (res.code === "0") {
|
||||
// 成功
|
||||
let obj = JSON.parse(res.data);
|
||||
this.orderList = obj.data;
|
||||
console.log('订单信息',this.orderList)
|
||||
this.orderList = obj.data; // force_require_picture === 1 强制返图 2_审核成功 3_审核失败
|
||||
// console.log('订单信息,99999999999999999',this.orderList)
|
||||
this.totalCount = obj.totalCount;
|
||||
fn && fn();
|
||||
// 把检索条件拷贝给下载条件
|
||||
@@ -2520,4 +2821,45 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.order-info-block {
|
||||
background-color: #f5f7fa;
|
||||
padding: 15px;
|
||||
border-radius: 4px;
|
||||
font-size: 13px;
|
||||
|
||||
.info-row {
|
||||
margin-bottom: 8px;
|
||||
line-height: 1.5;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #909399;
|
||||
display: inline-block;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.value {
|
||||
color: #303133;
|
||||
font-weight: 500;
|
||||
|
||||
&.copy-link {
|
||||
cursor: pointer;
|
||||
color: #409EFF;
|
||||
|
||||
i {
|
||||
margin-left: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -226,6 +226,12 @@ export default {
|
||||
storeIDs: `[${e}]`,
|
||||
isFocus: true
|
||||
}
|
||||
if(this.searchForm.fromStoreID === e) {
|
||||
this.$message('目标门店不能是标杆门店')
|
||||
this.$refs.searchForm.resetFields()
|
||||
return
|
||||
}
|
||||
|
||||
// 查询该门店下是否有关注的商品
|
||||
getStoresSkus(json,(res) => {
|
||||
if (JSON.parse(res.data).totalCount) {
|
||||
|
||||
@@ -367,6 +367,12 @@
|
||||
class="tiny-btn"
|
||||
@click="batOperateSale(-1)"
|
||||
>批量不可售</el-button>
|
||||
<el-button
|
||||
:disabled="!skuNameArr.length || !claimBtnText || isBySku"
|
||||
type="success"
|
||||
class="tiny-btn"
|
||||
@click="batOperateSale(-2)"
|
||||
>批量临时不可售</el-button>
|
||||
<!-- 批量关注 -->
|
||||
<el-button
|
||||
:disabled="!skuNameArr.length || claimBtnText || isBySku"
|
||||
@@ -2242,7 +2248,8 @@ export default {
|
||||
this.$confirm(
|
||||
`${
|
||||
type < 0
|
||||
? "正在进行批量【设置不可售】操作,确认继续"
|
||||
? type === -2 ? "正在进行批量【设置临时不可售】操作,确认继续"
|
||||
: "正在进行批量【设置不可售】操作,确认继续"
|
||||
: "正在进行批量【设置可售】操作,确认继续"
|
||||
}`,
|
||||
"警告",
|
||||
@@ -2259,7 +2266,7 @@ export default {
|
||||
let obj = {
|
||||
NameID: item.id,
|
||||
// Skus: skuArr
|
||||
isSale: type < 0 ? -1 : 1,
|
||||
isSale: type < 0 ? type === -2 ? -2 : -1 : 1,
|
||||
}
|
||||
if(getDns === 'gblm'){
|
||||
let skus = item.skus
|
||||
@@ -2283,7 +2290,7 @@ export default {
|
||||
// 成功
|
||||
this.$message({
|
||||
message: `批量${
|
||||
type < 0 ? "修改【不可售】" : "修改【可售】"
|
||||
type < 0 ? type === -2 ? "修改【临时不可售】" : "修改【不可售】" : "修改【可售】"
|
||||
}成功`,
|
||||
type: "success",
|
||||
center: true,
|
||||
@@ -2305,7 +2312,7 @@ export default {
|
||||
// 成功
|
||||
this.$message({
|
||||
message: `批量${
|
||||
type < 0 ? "修改【不可售】" : "修改【可售】"
|
||||
type < 0 ? type === -2 ? "修改【临时不可售】" : "修改【不可售】" : "修改【可售】"
|
||||
}成功`,
|
||||
type: "success",
|
||||
center: true,
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<el-input v-model="storeInfo.freightMarkup" type="number" style="width: 100px;"></el-input>
|
||||
</el-form-item>
|
||||
<br>
|
||||
<el-form-item label="报价金额:" prop="quotationPrice">
|
||||
<el-form-item label="锁定平台报价金额:" prop="quotationPrice">
|
||||
<div>
|
||||
<el-input v-model="storeInfo.quotationPrice" type="number" style="width: 100px;"></el-input>
|
||||
<el-tag type="info" style="margin-bottom: 20px;">单位:元</el-tag>
|
||||
|
||||
@@ -107,10 +107,11 @@
|
||||
</el-form-item>
|
||||
<br>
|
||||
<!-- 报价金额 -->
|
||||
<el-form-item label="报价金额:" prop="quotationPrice">
|
||||
<el-form-item label="锁定平台报价金额:" prop="quotationPrice">
|
||||
<div>
|
||||
<el-input v-model="storeInfo.quotationPrice" type="number" style="width: 100px;"></el-input>
|
||||
<el-tag type="info" style="margin-bottom: 20px;">单位:元</el-tag>
|
||||
<el-tag type="info" style="margin-bottom: 20px;" v-if="storeInfo.quotationPrice">单位:元</el-tag>
|
||||
<el-tag type="info" style="margin-bottom: 20px;" v-else>不锁定</el-tag>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- 是否开启价格审核 -->
|
||||
|
||||
@@ -422,7 +422,7 @@ export default {
|
||||
if(this.payType !== "qrCode") return
|
||||
let res = await apiGetOrder({vendorOrderID:this.orderInfo.orderID})
|
||||
if(res.data && res.data.length>0){
|
||||
console.log('res,,当前订单信息',res)
|
||||
// console.log('res,,当前订单信息',res)
|
||||
if(res.data[0].status == 110 ) {
|
||||
this.orderPayStatus === "交易成功"
|
||||
this.$toast("支付成功")
|
||||
|
||||
@@ -30,6 +30,14 @@
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 厂商 -->
|
||||
<el-form-item label="平台:" label-width="50px">
|
||||
<el-select v-model="vendorId" placeholder="请选择" style="width: 100px;" >
|
||||
<el-option :key="-1" label="不限" :value="-1"></el-option>
|
||||
<el-option v-for="item in ConVendorName" :key="item.vendorID" :label="item.name"
|
||||
:value="item.vendorID"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="mini" @click="initData">查询</el-button>
|
||||
</el-form-item>
|
||||
@@ -42,31 +50,13 @@
|
||||
border
|
||||
stripe
|
||||
style="width: 100%">
|
||||
<el-table-column prop="store_id" label="门店" align="center" ></el-table-column>
|
||||
<!-- <el-table-column prop="vendor_id" label="平台" align="center" ></el-table-column> -->
|
||||
<el-table-column prop="brand_id" label="品牌ID" align="center" ></el-table-column>
|
||||
<el-table-column prop="vendor_store_id" label="平台id" align="center" ></el-table-column>
|
||||
<el-table-column prop="store_rating" label="评分" align="center" ></el-table-column>
|
||||
<el-table-column prop="store_sku_num" label="门店商品数量" align="center" ></el-table-column>
|
||||
<el-table-column prop="activity" label="活动总数量" align="center" ></el-table-column>
|
||||
<el-table-column prop="activity_1" label="活动商品数量(0-3折)" align="center" ></el-table-column>
|
||||
<el-table-column prop="activity_2" label="活动商品数量(3-9折)" align="center" ></el-table-column>
|
||||
<el-table-column prop="delivery_fee" label="超过1.5km起送价<=20" align="center" width="320">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.delivery_fee">
|
||||
<div v-for="(item,index) in JSON.parse(scope.row.delivery_fee)" :key="index">
|
||||
{{ '范围:' + item.time_range + ',最低价:' + item.min_price + ',运费:' + item.shipping_fee }}
|
||||
</div>
|
||||
</div>
|
||||
<el-table-column prop="name" label="姓名" align="center" >
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.name || "无"}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="delivery_fee2" label="超过1.5km配送费<=0" align="center" ></el-table-column>
|
||||
<el-table-column prop="promotion_fee" label="推广费>35" align="center" >
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.promotion_fee === '暂无法获取' ? '' : scope.row.promotion_fee}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="business_hours" label="营业时间>11h" align="center" ></el-table-column>
|
||||
<el-table-column prop="store_count" label="门店数" align="center" ></el-table-column>
|
||||
<el-table-column prop="order_count" label="订单总数" align="center" ></el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="page" style="text-align: center;margin-top: 10px;">
|
||||
@@ -100,6 +90,7 @@ export default{
|
||||
// offset:0,
|
||||
page:1,
|
||||
storeIDs:{},
|
||||
vendorId:1,
|
||||
timeRange:[],
|
||||
}
|
||||
},
|
||||
@@ -116,29 +107,29 @@ export default{
|
||||
// method:'GET'
|
||||
// })
|
||||
// console.log('res,9999999999999,,,UpdateMtActivity',res1)
|
||||
// hideLoad()
|
||||
// hideLoad()
|
||||
|
||||
await this.initData()
|
||||
if(this.dataList.length ==0){
|
||||
await this.initStoreData()
|
||||
await this.initData()
|
||||
}
|
||||
// if(this.dataList.length ==0){
|
||||
// await this.initStoreData()
|
||||
// await this.initData()
|
||||
// }
|
||||
|
||||
},
|
||||
methods:{
|
||||
// 初始化门店数据
|
||||
async initStoreData(){
|
||||
try {
|
||||
let res =await api('v2/bind/UpdateMtActivity',{
|
||||
method:'GET'
|
||||
})
|
||||
hideLoad()
|
||||
this.$message('初始化成功' + res)
|
||||
} catch (error) {
|
||||
console.log('bind/UpdateMtActivity',error)
|
||||
hideLoad()
|
||||
}
|
||||
},
|
||||
// // 初始化门店数据
|
||||
// async initStoreData(){
|
||||
// try {
|
||||
// let res =await api('v2/bind/UpdateMtActivity',{
|
||||
// method:'GET'
|
||||
// })
|
||||
// hideLoad()
|
||||
// this.$message('初始化成功' + res)
|
||||
// } catch (error) {
|
||||
// console.log('bind/UpdateMtActivity',error)
|
||||
// hideLoad()
|
||||
// }
|
||||
// },
|
||||
// 初始化数据
|
||||
async initData(){
|
||||
try {
|
||||
@@ -151,24 +142,25 @@ export default{
|
||||
pageSize:this.pageSize
|
||||
}
|
||||
if(JSON.stringify(this.storeIDs) !== '{}') obj.storeIDs = JSON.stringify([this.storeIDs.id])
|
||||
let res = await api('v2/bind/GetActivityList', {
|
||||
if(this.vendorId !== -1 ) obj.vendorId = JSON.stringify([this.vendorId])
|
||||
let res = await api('v2/bind/StoreOrderList', {
|
||||
method: 'GET',
|
||||
params: obj
|
||||
})
|
||||
this.dataList = res.data
|
||||
this.totalCount = res.totalCount
|
||||
console.log('查询美团门店数据,,GetActivityList',res)
|
||||
console.log('查询美团门店数据,,',res)
|
||||
hideLoad()
|
||||
|
||||
} catch (error) {
|
||||
console.log('error',error)
|
||||
// console.log('error',error)
|
||||
hideLoad()
|
||||
}
|
||||
},
|
||||
// 每页个数改变
|
||||
sizeChange (size) {
|
||||
this.$nextTick(() => {
|
||||
console.log('每页个数改变',size)
|
||||
// console.log('每页个数改变',size)
|
||||
this.pageSize = size
|
||||
this.initData()
|
||||
// // 如果存在当前页码在最后一页,然后选取较大每页个数显示,会出现获取不到数据,因为this.page没有变化,拉取起始位超出了this.totalCount
|
||||
@@ -180,7 +172,7 @@ export default{
|
||||
},
|
||||
// 点击页码
|
||||
handleCurrentChange (val) {
|
||||
console.log('第几页')
|
||||
// console.log('第几页')
|
||||
this.page = val
|
||||
this.initData()
|
||||
// this.$emit('handleCurrentChange',val)
|
||||
|
||||
@@ -513,7 +513,8 @@
|
||||
</span>
|
||||
<ChatDetail :isGetDetail="isGetDetail" v-model="allUser"></ChatDetail>
|
||||
</el-tab-pane> -->
|
||||
<el-tab-pane label="美团店铺" name="mtStoreInfo">
|
||||
<!-- <el-tab-pane label="美团店铺" name="mtStoreInfo"> -->
|
||||
<el-tab-pane label="定单量排名" name="mtStoreInfo">
|
||||
<mtStoreInfo></mtStoreInfo>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
@@ -32,7 +32,7 @@ const BestSeller = () => import('@/components/goodmanager/bestSeller/bestSeller'
|
||||
|
||||
|
||||
const JdCatManager = () => import('@/components/goodmanager/jdCatManager/jd-cat-manager') // 京东分类管理
|
||||
const mtCatToJdManager = () => import('@/components/goodmanager/mtCatToJdManager/mtCat-to-jd-Manager') // 美团分类映射到京东
|
||||
// const mtCatToJdManager = () => import('@/components/goodmanager/mtCatToJdManager/mtCat-to-jd-Manager') // 美团分类映射到京东
|
||||
const StoreCatManager = () => import('@/components/goodmanager/store-cat-manager') // 京西分类管理
|
||||
const Goodswatermarkprev = () => import('@/components/goodmanager/goods-watermark-prev') // 商品水印前缀管理
|
||||
const StoreGoodsManager = () => import('@/components/storegoodsmanager/store-goods-manager') // 门店商品管理
|
||||
@@ -496,14 +496,14 @@ const router = new Router({
|
||||
title: '京东分类管理'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'mtcattoJdmanager',
|
||||
name: 'MtCatToJdManager',
|
||||
component: mtCatToJdManager,
|
||||
meta: {
|
||||
title: '美团分类映射京东分类'
|
||||
}
|
||||
},
|
||||
// {
|
||||
// path: 'mtcattoJdmanager',
|
||||
// name: 'MtCatToJdManager',
|
||||
// component: mtCatToJdManager,
|
||||
// meta: {
|
||||
// title: '美团分类映射京东分类'
|
||||
// }
|
||||
// },
|
||||
{
|
||||
path: 'storecatmanager',
|
||||
name: 'storecatmanager',
|
||||
|
||||
Reference in New Issue
Block a user