This commit is contained in:
wtq
2026-03-17 17:43:31 +08:00
parent 6e1c4d46df
commit eb17b6ca95
14 changed files with 159 additions and 42 deletions

View File

@@ -31,16 +31,16 @@ onLaunch(() => {
listenMsg() // 监听消息穿透
uni['globalAlert'] = globalAlert // 挂载全局可覆盖tabar弹窗
plus.device.setWakelock(true) //打开程序后一直保持唤醒状态(常亮)
watchVersion((isUpdate: boolean) => {
// 检查是否更新版本
if (isUpdate) {
uni.globalAlert({
data: {
type: 3,
},
})
}
})
// watchVersion((isUpdate: boolean) => {
// // 检查是否更新版本
// if (isUpdate) {
// uni.globalAlert({
// data: {
// type: 3,
// },
// })
// }
// })
// 初始化平台
if (!getStorage('terrace')) setStorage('terrace', 'jxcs')

View File

@@ -47,7 +47,7 @@ const merchant = {
* @param {object} params 请求参数 storeID int 门店ID vendorID int 厂商ID
*/
update_store_vendor_map: async (params: AnyObject): Promise<AnyObject> => {
return await request.api('v2/store/UpdateStoreVendorMap','PUT',params)
return await request.api('/v2/store/UpdateStoreVendorMap','PUT',params)
},

View File

@@ -2,8 +2,8 @@
"name" : "京西到家商家版",
"appid" : "__UNI__F9A47D3",
"description" : "1、商户通过京西平台同时管理美团、淘宝闪购、京东等多个外卖平台实现一键上架、下架、修改、删除多个平台商品2、商户通过京西平台可以同时对、美团专送、达达、顺丰同城等多个专送平台召唤偶骑手",
"versionName" : "1.9.1",
"versionCode" : 191,
"versionName" : "1.9.2",
"versionCode" : 192,
"transformPx" : false,
"uni-app" : {
"debug" : true

View File

@@ -70,8 +70,7 @@
(sku.mtwmSyncStatus & 2) !== 2 &&
(sku.mtwmSyncStatus & 4) !== 4
"
>美团:该商品无法修改价格,请联系运营修改</view
>
>美团:该商品无法修改价格,请联系运营修改</view>
<view
class="error eb"
v-if="

View File

@@ -503,9 +503,7 @@ function shoppingMangerFn() {
currentValue.value = ''
} else {
currentValue.value = ''
toast(
+price < originalUnitPrice ? '修改成功' : '提交成功, 请等待审核'
)
toast(+price < originalUnitPrice ? '修改成功' : '提交成功, 请等待审核')
}
} else {
toast('修改失败', 2)

View File

@@ -81,6 +81,7 @@ const messageFn = function () {
}
let venderIDInfo = arr.find((item:AnyObject) => item.vendorID === '1')
let ebStore = arr.find((item:AnyObject) => item.vendorID === '3')
let jdStore = arr.find((item:AnyObject) => item.vendorID === '0')
let res = await message.get_IM_user_list(data)
@@ -91,10 +92,12 @@ const messageFn = function () {
let newArr: any = []
let fmtUserList = venderIDInfo ? res.data[`${venderIDInfo.appID}:${venderIDInfo.vendorStoreID}:1`] || [] : [] // 美团
let febUserList = ebStore && JSON.stringify(ebStore) !== '{}' ? res.data[`${ebStore.appID}:${ebStore.vendorStoreID}:3`] || [] : [] // 饿百
// let febUserList = res.data[`${ebStore.appID}:${ebStore.vendorStoreID}:3`] || []
let jdUserList = jdStore && JSON.stringify(jdStore) !== '{}' ? res.data[`${jdStore.appID}:${jdStore.vendorStoreID}:0`] || [] : [] // 京东
let reverseList = fmtUserList.reverse()
let reverseListEb = febUserList.reverse()
let reverseListJD = jdUserList.reverse()
// 格式化数据
reverseList.map((element: any) => {
let resData = JSON.parse(element)
@@ -165,6 +168,24 @@ const messageFn = function () {
if (userList.orderID) getOrderInfo(userList.orderID, newArr.length - 1 )
}
// 京东
if(reverseListJD && reverseListJD.length>0){
reverseListJD.forEach((element:string) => {
let resData = JSON.parse(element)
// console.log('京东消息,用户列表',resData)
let latestMsgHandler = resData.latestMsg
let userList = {
...resData,
latestMsg: latestMsgHandler,
latestTime: timeFormatDHM(+new Date(resData.latestTime )),
orderInfo: {},
orderDesc: ''
}
newArr.push(userList)
});
}
})
userListData.value = newArr
} else {

View File

@@ -22,12 +22,13 @@
:title="
item.vendorID == 1
? `【美团${item.orderDesc}】${item.userID === '0' ? '群发消息' : item.userID}`
: `【淘宝闪购】${item.userID}`
: item.vendorID == 3 ? `【淘宝闪购】${item.userID}` : `【京东】${item.userID}`
"
:avatar="
item.vendorID == 1
? 'https://image.jxc4.com/image/75654ab606494a0efdb0cf7d7ad060d9.png'
: 'https://image.jxc4.com/image/6c2f1dfd95890df8ef5e27bde15c4e7f.png'
: item.vendorID == 3 ? 'https://image.jxc4.com/image/6c2f1dfd95890df8ef5e27bde15c4e7f.png'
: 'https://image.jxc4.com/image/884664b80ffd2eda64a4aab9f4dc402e.png'
"
:note="item.latestMsg"
:time="item.latestTime"

View File

@@ -61,8 +61,8 @@
>若退款造成的损失较大建议联系顾客自行上门取回退货</text
>
<view class="btn-root">
<view class="reject" @tap.stop="popup.open()">驳回</view>
<view class="resolve" @tap.stop="handleAgree">同意</view>
<view class="reject" @tap.stop="popup.open()" style="width: 86%;font-size: 40rpx;">驳回</view>
<view class="resolve" @tap.stop="handleAgree" style="width: 14%;">同意</view>
</view>
</view>
@@ -75,7 +75,7 @@
</view>
<!-- 查看详情 -->
<view class="detail-btn">查看详情</view>
<view class="detail-btn" style="font-size: 40rpx;">查看详情</view>
<!-- 提示内容 -->
<view class="tips-text">

View File

@@ -224,7 +224,7 @@ const cancelTime = ref<any>()
const timer = ref<any>()
onShow(() => {
if (props.item.lockStatus === -5) {
let { purchaseVendorInfo } = store.state.serveInfo.sysInfo as any
let { purchaseVendorInfo } = store.state.serveInfo.serviceInfo as any
let { userApplyCancelWaitMinute } = purchaseVendorInfo[props.item.vendorID]
let cancelTime1 =
new Date(props.item.lockStatusTime).getTime() +

View File

@@ -48,13 +48,14 @@
<!-- 确定自提 -->
<template v-if="isSelfBtn">
<!-- v-if="item.vendorID != 9" -->
<view
class="btn-picked"
v-if="item.vendorID != 9"
@tap.stop="inputTakeCode"
>输入自提码</view
>
<view class="btn-picked" v-else @tap.stop="jxSelfTake('jx')">完成自提</view>
<!-- <view class="btn-picked" v-else @tap.stop="jxSelfTake('jx')">完成自提</view> -->
</template>
<!-- 商家自送送达按钮 status 20 -->
@@ -156,7 +157,8 @@ function inputTakeCode() {
*/
const takeCode = ref<any>() // 自提码
function jxSelfTake(type: string) {
if (type != 'jx' && takeCode.value == '') return toast('请输入自提码')
// if (type != 'jx' && takeCode.value == '') return toast('请输入自提码')
if (takeCode.value == '') return toast('请输入自提码')
uni.jxConfirm({
title: '自提订单',
content: '是否完成自提(请确保用户已出示正确订单,以免引起不必要的损失)',
@@ -164,7 +166,8 @@ function jxSelfTake(type: string) {
let data = {
vendorOrderID: props.item.vendorOrderID,
vendorID: props.item.vendorID,
selfTakeCode: type === 'jx' ? '135246' : takeCode.value,
// selfTakeCode: type === 'jx' ? '135246' : takeCode.value,
selfTakeCode: takeCode.value,
}
let res = await order.confirm_self_take(data)
if (res.code == 0) {

View File

@@ -22,6 +22,9 @@ function setUp() {
// IM单聊状态是否开启-饿百
const imEbStoreStatus = ref<number>(0)
// 门店是否可自提
const isDeliverSelf = ref<boolean>(false)
// 美团门店信息
const mtStoreInfo = ref<AnyObject>({})
@@ -64,6 +67,7 @@ function setUp() {
})
async function getStoreMsg() {
// 读取vuex 中的 store 数据
await store.dispatch('storeInfo/getOneStore', getStorage("storeID"))
smsNotify.value = store.state.storeInfo.allStoreInfo.smsNotify
printerDisabled.value = store.state.storeInfo.allStoreInfo.printerDisabled
// 获取第三方美团门店
@@ -83,6 +87,9 @@ function setUp() {
let ebStataus = store.state.storeInfo.imOnlineStatus.filter(item => item.vendorID === 3)
imEbStoreStatus.value = ebStataus.length > 0 ? ebStataus[0].imStatus : 0
}
let jxStore = store.state.storeInfo.allStoreInfo.StoreMaps.find((item: { vendorID: number }) => item.vendorID === 9)
if(jxStore && JSON.stringify(jxStore) !== '{}') isDeliverSelf.value = jxStore.deliverySelf === 1
}
// 网络打印机
netPrinter.value = (store.state.serveInfo.serviceInfo as any).printerVendorInfo
@@ -539,6 +546,21 @@ function setUp() {
setStorage('defaultOrderReminder', orderReminder.value ? 1 : 0)
}
/***************************************************
* 修改自提的类型
*/
async function switchJxDeliverySelf(e:AnyObject) {
let res = await merchant.update_store_vendor_map({
storeID:getStorage('storeID'),
vendorID:9,
payload:JSON.stringify({
deliverySelf:e.detail.value ? 1 : 0
})
})
}
return {
copyRight, // 京西版权信息
smsNotifyData, // 未拣货选项
@@ -558,6 +580,8 @@ function setUp() {
switchprinterDisabled, // 网络打印机禁用开关,
imMtStoreStatus, // IM单聊状态是否开启
imEbStoreStatus, // IM单聊状态是否开启 饿百
isDeliverSelf, // 京西
switchJxDeliverySelf, // 切换自送
switchImMtStoreStatus, // 更改IM单聊门店状态
isExistMtStore, // 是否绑定美团门店
isExistEbStore, // 是否绑定饿百门店

View File

@@ -173,6 +173,15 @@
<view>营业时间设置</view>
<jx-icon icon="gengduo" color="rgb(220, 220, 220)"></jx-icon>
</view>
<view class="item" >
<view>自提仅京西</view>
<switch
:checked="isDeliverSelf"
@change="switchJxDeliverySelf($event)"
color="#4EB331"
style="zoom: 0.85"
/>
</view>
<view class="item" v-if="isExistEbStore" @tap="jumpInvoiceSet">
<view>发票设置淘宝闪购</view>
<jx-icon icon="gengduo" color="rgb(220, 220, 220)"></jx-icon>
@@ -254,6 +263,8 @@ const {
switchprinterDisabled, // 网络打印机禁用开关
imMtStoreStatus, // IM单聊状态是否开启
imEbStoreStatus, // IM单聊状态是否开启 饿百
isDeliverSelf, // 京西
switchJxDeliverySelf, // 切换自送
switchImMtStoreStatus, // 更改IM单聊门店状态
isExistMtStore, // 是否绑定美团门店
isExistEbStore, // 是否绑定饿百门店

View File

@@ -35,6 +35,7 @@ const msgChatFn = function () {
*/
let useData: AnyObject = {}
let ebStore: AnyObject = {}
let jdStore: AnyObject = {}
onLoad((potion: any) => {
let res:any = getStorage('vendorUserInfo')
if(JSON.stringify(potion) === '{}') {
@@ -50,13 +51,14 @@ const msgChatFn = function () {
useData = useInfo
}
if (store.state.storeInfo.allStoreInfo.StoreMaps && store.state.storeInfo.allStoreInfo.StoreMaps.length > 0) ebStore = store.state.storeInfo.allStoreInfo.StoreMaps.find((item: { vendorID: number }) => item.vendorID === 3) // 饿百
if (store.state.storeInfo.allStoreInfo.StoreMaps && store.state.storeInfo.allStoreInfo.StoreMaps.length > 0) jdStore = store.state.storeInfo.allStoreInfo.StoreMaps.find((item: { vendorID: number }) => item.vendorID === 0) // 京东
// 修改标题
uni.setNavigationBarTitle({
title:
useData.vendorID == 1
? `【美团${useData.orderDesc}${useData.userID === '0' ? '群发消息' : useData.userID}`
: `【淘宝闪购${useData.userID}`,
: useData.vendorID == 3 ? `【淘宝闪购】${useData.userID}` : `【京东${useData.userID}`,
})
// 获取聊天数据
@@ -74,8 +76,8 @@ const msgChatFn = function () {
async function SetMsgRead() {
let venderIDInfo = store.state.storeInfo.vendorStoreIDS
let data = {
appID: useData.vendorID === 1 ? venderIDInfo.appID : ebStore.vendorOrgCode,
vendorStoreID: useData.vendorID === 1 ? venderIDInfo.MT : ebStore.vendorStoreID,
appID: useData.vendorID === 1 ? venderIDInfo.appID : useData.vendorID === 3 ? ebStore.vendorOrgCode : jdStore.vendorOrgCode,
vendorStoreID: useData.vendorID === 1 ? venderIDInfo.MT : useData.vendorID === 3 ? ebStore.vendorStoreID : jdStore.vendorStoreID,
vendorID: "" + useData.vendorID,
orderID: "" + useData.orderID ? useData.orderID : '0',
userID: useData.userID
@@ -92,9 +94,9 @@ const msgChatFn = function () {
let venderIDInfo = store.state.storeInfo.vendorStoreIDS
let data = {
payLoad: JSON.stringify([{
vendorStoreID: useData.vendorID === 1 ? venderIDInfo.MT : ebStore.vendorStoreID,
vendorStoreID: useData.vendorID === 1 ? venderIDInfo.MT : useData.vendorID === 3 ? ebStore.vendorStoreID : jdStore.vendorStoreID,
vendorID: "" + useData.vendorID,
appID: useData.vendorID === 1 ? venderIDInfo.appID : ebStore.vendorOrgCode,
appID: useData.vendorID === 1 ? venderIDInfo.appID : useData.vendorID === 3 ? ebStore.vendorOrgCode : jdStore.vendorOrgCode,
userID: useData.userID
}])
}
@@ -121,7 +123,7 @@ const msgChatFn = function () {
newArr.push(msgList)
}
})
} else {
} else if(useData.vendorID === 3){
// 饿百
let newMsg = res.data[`${ebStore.vendorOrgCode}:${ebStore.vendorStoreID}:${useData.vendorID}:${useData.userID}`] || []
newMsg.map((element: any, index: number) => {
@@ -180,6 +182,26 @@ const msgChatFn = function () {
newArr.push(msgList)
}
})
}else if(useData.vendorID === 0){
// 京东
let newMsg = res.data[`${jdStore.vendorOrgCode}:${jdStore.vendorStoreID}:${useData.vendorID}:${useData.userID}`] || []
newMsg.forEach((element:string) => {
let resData = jxParse(element)
if(resData.msgContent){
let msg = JSON.parse(resData.msgContent.extendJsonData)
let content = msg.body.type === 'text' ? msg.body.content : msg.body.type === 'image' ? msg.body.url : msg.body.content
// console.log(msg,'msg','获取聊天详情,resData',resData,'useData',useData.userID)
let msgList = {
sendType:'jd',
...msg,
msg_content: msg.body.type === 'text' ? analyEmoji(content) : msg.body.type === 'image' ? content : '未知' ,
msg_source: useData.userID === msg.from.pin ? 2 : 1, // 目前全是客户发的消息
msg_type: msg.body.type === 'text' ? 1 : msg.body.type === 'image' ? 2 : 99 // 目前只支持文本消息
}
newArr.push(msgList)
}
})
}
chatData.value = newArr
@@ -373,11 +395,11 @@ const msgChatFn = function () {
* 发送数据
*/
async function sendClick(msgData: AnyObject) {
let venderIDInfo = useData.vendorID === 1 ? store.state.storeInfo.vendorStoreIDS : ebStore.vendorOrgCode
let venderIDInfo = useData.vendorID === 1 ? store.state.storeInfo.vendorStoreIDS : useData.vendorID === 3 ? ebStore.vendorOrgCode : jdStore.vendorOrgCode
let data = {
sendType: useData.vendorID === 1 ? "mt" : "elm",
app_id: useData.vendorID === 1 ? venderIDInfo.appID : ebStore.vendorOrgCode,
app_poi_code: useData.vendorID === 1 ? venderIDInfo.MT : ebStore.vendorStoreID,
sendType: useData.vendorID === 1 ? "mt" : useData.vendorID === 3 ? "elm" : 'jd',
app_id: useData.vendorID === 1 ? venderIDInfo.appID : useData.vendorID === 3 ? ebStore.vendorOrgCode : jdStore.vendorOrgCode,
app_poi_code: useData.vendorID === 1 ? venderIDInfo.MT : useData.vendorID === 3 ? ebStore.vendorStoreID : jdStore.vendorStoreID,
cts: Math.round(new Date().getTime() / 1000).toString(),
msg_content: msgData.type === 1 ? analyEmoji(msgData.msg) : msgData.msg,
msg_id: Math.round(new Date().getTime()).toString(),
@@ -414,7 +436,7 @@ const msgChatFn = function () {
}
})
}
} else {
} else if(useData.vendorID === 3){
let chatDataItem = chatData.value.filter(item => item.msg_source === 2)
sendMsg = {
platformShopId: chatDataItem[0].platformShopId,
@@ -444,6 +466,44 @@ const msgChatFn = function () {
data: { ...sendMsg }
})
}
}else if(useData.vendorID === 0){
sendMsg = {
vendorOrgCode: jdStore.vendorOrgCode,
sendData:JSON.stringify({
vendorID: 0,
storeId:jdStore.storeID,
data:{
id: '' + Math.round(new Date().getTime()).toString() + 184572 , // uuid //随机生成一个字符串
lang: "zh_CN",
type: "chat_message",
from: {
pin:chatData.value[0].to.pin,
app:'im.waiter', // 固定不变
clientType:'android'
},
to: {
pin:chatData.value[0].from.pin,
app:'im.customer', // 固定不变
},
body: {
type:msgData.type === 1 ? "text" : "image", // 消息类型
content:msgData.msg,
chatinfo:{
venderId:chatData.value[0].body.chatinfo.venderId,
askAllocateType:chatData.value[0].body.chatinfo.askAllocateType,
sid:chatData.value[0].body.chatinfo.sid,
source:chatData.value[0].body.chatinfo.source
},
template:{
source:'dd_msg_583984a984834b1889f853be6e449f39_e66c448b9fbe4704901925d3217081a3' // 文本固定不变 //卡片类消息必传
},
mt:60,
},
timestamp:new Date().getTime(), // 时间戳
clientTime:new Date().getTime() // 客户端时间
}
})
}
}
let res = await message.send_to_vendor(sendMsg)

View File

@@ -114,8 +114,8 @@
>若退款造成的损失较大建议联系顾客自行上门取回退货</view
>
<view class="btn-group">
<text class="refuse" @tap.stop="popup.open()">驳回</text>
<text class="agree" @tap.stop="handleAgree">同意</text>
<text class="refuse" @tap.stop="popup.open()" style="width: 82%;">驳回</text>
<text class="agree" @tap.stop="handleAgree" style="width: 14%;margin-left: 6rpx;">同意</text>
</view>
</view>
<!-- 已进行审核操作 -->