This commit is contained in:
wtq
2026-07-30 08:59:27 +08:00
parent 2a13cbcbc5
commit 00bd18fc5b
14 changed files with 516 additions and 84 deletions

View File

@@ -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,

View File

@@ -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
}
}

View File

@@ -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)

View 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()
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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) {

View File

@@ -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,

View File

@@ -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>

View File

@@ -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>
<!-- 是否开启价格审核 -->

View File

@@ -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("支付成功")

View File

@@ -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)

View File

@@ -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>

View File

@@ -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',