This commit is contained in:
wtq
2025-11-14 10:10:24 +08:00
commit e1c0ebfdf2
350 changed files with 54480 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
import merchant from '@/api/https/merchant'
import toast from '@/utils/toast'
import { getStorage, setStorage } from '@/utils/storage'
/**
* storeInfoStore 模块的 actions
*/
export default {
/**
* 获取单门店信息
*/
getOneStore: async (store: any, storeID: number) => {
let stateRes = await merchant.get_stores({
storeID: storeID
});
if (stateRes.code == 0) {
let stateData = stateRes.data.stores[0];
store.commit('setCreateStoreTimer', stateData.createdAt) // 门店创建时间(存vueX)
store.commit('setStoreStatus', stateData.status) // 门店营业状态(存vueX) 本地
store.commit('setAllStoreInfo', stateData) // 门店所有数据(存vueX)
// 三方平台门店信息
if(stateData.StoreMaps && stateData.StoreMaps.length>0){
// 取出所有第三方门店(美团/饿了么)
let vendorStoreIDS: any = {}
let platformStore:any = {}
for(let i =0;i<stateData.StoreMaps.length;i++){
const element = stateData.StoreMaps[i]
let obj = {
vendorStoreID:element.vendorStoreID,
vendorID:element.vendorID,
vendorOrgCode:element.vendorOrgCode
}
platformStore[element.vendorID] = {...element}
// 美团
if (element.vendorID == 1) {
vendorStoreIDS.MT = element.vendorStoreID
vendorStoreIDS.appID = element.vendorOrgCode
let res = await merchant.get_vendor_store(obj)
if(res.code == '0' ) platformStore[element.vendorID].status = res.data.bussinessStatus
}
// 饿了么
if (element.vendorID == 3) {
vendorStoreIDS.ELM = element.vendorStoreID
let res = await merchant.get_vendor_store(obj)
if(res.code == '0' ) platformStore[element.vendorID].status = res.data.bussinessStatus
}
}
store.commit('setPlatformInfo', platformStore) // 三方门店的所有信息
store.commit('setVendorStoreIDS', vendorStoreIDS) // 三方门店ID(存vueX)[美团/饿了么]
}
// 保存门店经纬度地址
setStorage("lat", stateData.lat)
setStorage("lng", stateData.lng)
} else {
toast("系统异常", 2);
}
}
}

View File

@@ -0,0 +1,124 @@
import {formatBusinessTime} from '@/utils/tools'
/**
* storeInfoStore 模块的 getters
*/
import { StoreInfoStoreType } from './index'
export default {
/**
* 门店折扣 结算方式 (1报价2扣点)
* @param {AnyObject} earningType (1报价2扣点)
*/
geterPointStore(state: StoreInfoStoreType) {
return state.allStoreInfo.earningType === 1
},
/**
* 门店折扣,门店折扣小于 50 不允许修改
* @param {AnyObject} payPercentage 门店折扣小于 50 不允许修改
*/
isPointStore(state: StoreInfoStoreType) {
return state.allStoreInfo.payPercentage <= 50
},
/**
* 是否显示新价格
* @return {boolean} trun 显示新价格
*/
isNewPriceDisplay() {
return true
},
/**
* 美团im单聊状态
*/
imMtStatus(state: StoreInfoStoreType) {
return state.imOnlineStatus.filter(item => item.vendorID === 1)
},
/**
* 饿百im单聊状态
*/
imEbStatus(state: StoreInfoStoreType) {
return state.imOnlineStatus.filter(item => item.vendorID === 3)
},
/**
* 单聊状态
*/
imStatus(state: StoreInfoStoreType, getters: AnyObject) {
let str = ''
if (getters.imMtStatus.length > 0 && !getters.imMtStatus[0].errMsg && getters.imMtStatus[0].imStatus === 0) str = '美团'
if (getters.imEbStatus.length > 0 && !getters.imEbStatus[0].errMsg && getters.imEbStatus[0].imStatus === 0) str = str ? str + '/饿百' : '饿百'
return str
},
/**
* 门店营业状态
* 营业状态: 1营业 0临时休息 -1休息 -2禁用
*/
storeStatus(state: StoreInfoStoreType) {
return state.allStoreInfo.status
},
/**
* 本地营业状态与线上平台的状态是否一致
*/
isSameStatus(state:StoreInfoStoreType,getters:AnyObject){
let flag = true
let status = state.allStoreInfo.status
if(getters.platformInfo && getters.platformInfo.length>0) flag = getters.platformInfo.every((item:AnyObject) => item.status === status)
// console.log('flag',flag)
return flag
},
/**
* 营业时间
*/
businessHours(state:StoreInfoStoreType){
const stateData = state.allStoreInfo
return {
timer1: formatBusinessTime(stateData.openTime1),
timer2: formatBusinessTime(stateData.closeTime1),
timer3: formatBusinessTime(stateData.openTime2),
timer4: formatBusinessTime(stateData.closeTime2),
}
},
/**
* 手机门店休息时间
*/
newAutoEnableAt(state:StoreInfoStoreType){
return state.allStoreInfo.autoEnableAt
},
/**
* 三方门店的所有信息
*/
platformInfo(state:StoreInfoStoreType){
let arr = []
for(let i in state.platformInfo){
if( i!== '9' ) arr.push(state.platformInfo[i])
}
return arr
},
/**
* 门店地址信息
*/
storeAddress(state:StoreInfoStoreType){
return state.allStoreInfo.address || ''
}
}

View File

@@ -0,0 +1,44 @@
/**
* 商户信息模块状态管理
* @namespace :开启命名空间
*/
import { Module } from 'vuex'
import { State } from '../index'
import mutations from './mutations'
import actions from './actions'
import getters from './getters'
export interface StoreInfoStoreType {
allStoreInfo: AnyObject // 门店详细信息
createStoreTimer: string // 门店创建时间
storeStatus: number // 门店营业状态
jxLoading: boolean // 显示加载图层
isSkiplogin: boolean // 是否从公众号来跳转登录
isConnectPrinter: boolean // 打印机是否连接成功
vendorStoreIDS: AnyObject // 三方门店ID(美团/饿了么)
isNewMessage: boolean // 是否有新信息
imOnlineStatus: Array<AnyObject> // 美团门店IM线上状态
platformInfo:AnyObject // 三方平台所有信息
}
export const storeInfo: Module<StoreInfoStoreType, State> = {
// 开启命名空间
namespaced: true,
state: (): StoreInfoStoreType => ({
allStoreInfo: {}, // 门店详细信息 默认空,存储路径@/pages/merchant/userInfo
createStoreTimer: '1970-01-01 00:00:00', // 门店创建时间 默认 1970-01-01 00:00:00
storeStatus: 1, // 门店营业状态 默认营业中
jxLoading: false, // 显示加载图层
isSkiplogin: true, // true是从公众号来
isConnectPrinter: false, // 打印机是否连接成功
vendorStoreIDS: {}, // 三方门店ID(美团/)
isNewMessage: false, // 是否有新信息
imOnlineStatus: [], // 美团门店IM线上状态
platformInfo:{} // 三方平台的所有信息
}),
mutations,
actions,
getters
}

View File

@@ -0,0 +1,108 @@
import { setStorage } from "@/utils/storage";
/**
* storeInfoStore 模块的 mutations
*/
import { StoreInfoStoreType } from './index'
export default {
/**
* 门店详细信息allStoreInfo
* @param {object} allStoreInfo 本地门店详情
* @param {object} payload 远端门店详情
*/
setAllStoreInfo(store: StoreInfoStoreType, payload: AnyObject) {
store.allStoreInfo = payload
setStorage("storeName", payload.name)
setStorage("lat", payload.lat)
setStorage("lng", payload.lng)
},
/**
* 保存门店创建时间 (createStoreTimer)
* @param {string} createStoreTimer 本地默认门店创建时间
* @param {object} payload 远端门店创建时间
*/
setCreateStoreTimer(state: StoreInfoStoreType, payload: string) {
state.createStoreTimer = payload
},
/*************************************************
* 保存美团门店的IM单聊状态
*/
setImOnlineStatus(state: StoreInfoStoreType, payload: Array<AnyObject>) {
state.imOnlineStatus = payload
},
/*************************************************
* 保存三方门店ID(美团/饿了么)
* @param {boolean} isConnectPrinter 是否连接成功
* @param {boolean} payload 是否从公众号来 false 没有连接
*/
setVendorStoreIDS(state: StoreInfoStoreType, payload: AnyObject) {
state.vendorStoreIDS = payload
},
/**
* 保存三方门店的所有信息
*/
setPlatformInfo(state:StoreInfoStoreType,payload: AnyObject){
state.platformInfo = payload
},
/**
* 保存门店营业状态 (storeStatus)
* @param {number} storeStatus 门店营业状态
* @param {number} payload 门店营业状态
*/
setStoreStatus(state: StoreInfoStoreType, payload: number) {
state.storeStatus = payload
},
/**
* 更新加载图层 (jxLoading)
* @param {boolean} jxLoading 是否显示加载图
* @param {boolean} payload 是否显示加载图
*/
jxLoadingFn(state: StoreInfoStoreType, payload: boolean) {
state.jxLoading = payload
if (payload) {
uni.showNavigationBarLoading()
} else {
uni.hideNavigationBarLoading()
}
},
/*************************************************
* 判断是否从公众号来从公众号来先跳转去登录一下
* @param {boolean} isSkiplogin 是否从公众号来
* @param {boolean} payload 是否从公众号来 false 不是
*/
setSkipLost(state: StoreInfoStoreType, payload: boolean) {
state.isSkiplogin = payload
},
/*************************************************
* 判断打印机是否连接成功
* @param {boolean} isConnectPrinter 是否连接成功
* @param {boolean} payload 是否从公众号来 false 没有连接
*/
setIsConnectPrinter(state: StoreInfoStoreType, payload: boolean) {
state.isConnectPrinter = payload
},
/*************************************************
* 判断打印机是否有新信息
* @param {boolean} isNewMessage 是否连接成功
* @param {boolean} payload 是否有信息
*/
setIsNewMessage(state: StoreInfoStoreType, payload: boolean) {
state.isNewMessage = payload
}
}