'!'
This commit is contained in:
64
src/store/useStoreInfoStore/actions.ts
Normal file
64
src/store/useStoreInfoStore/actions.ts
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
124
src/store/useStoreInfoStore/getters.ts
Normal file
124
src/store/useStoreInfoStore/getters.ts
Normal 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 || ''
|
||||
}
|
||||
}
|
||||
44
src/store/useStoreInfoStore/index.ts
Normal file
44
src/store/useStoreInfoStore/index.ts
Normal 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
|
||||
}
|
||||
108
src/store/useStoreInfoStore/mutations.ts
Normal file
108
src/store/useStoreInfoStore/mutations.ts
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user