Files
zsw-jx-store/src/pages/merchant/options/options.ts
2025-11-13 10:16:36 +08:00

275 lines
8.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* options 选项
*/
import toast from "@/utils/toast"
import { store } from '@/store'
import { timeFormatD } from "@/utils/tools"
import { getStorage } from "@/utils/storage"
import { onLoad, onPullDownRefresh } from "@dcloudio/uni-app"
import { Ref, ref, onBeforeUnmount,watch } from "vue"
import merchant from "@/api/https/merchant"
import useGlobalFunc from '@/composables/useGlobalFunc'
import order from "@/api/https/order"
function options() {
const { openWeixin, watchVersion } = useGlobalFunc()
/**
* 进入群聊
*/
function getGroupChat() {
openWeixin('subPages/merchantChild/enterGroupChat/enterGroupChat')
}
/**
* 注册时间
*/
async function getSelfInfo() {
let infoRes = await merchant.get_self_info()
if (infoRes.code == 0) {
let time1 = Math.floor((+new Date() - +new Date(infoRes.data.createdAt)) / 1000 / 24 / 3600)
let time2 = Math.floor((+new Date() - +new Date(store.state.storeInfo.createStoreTimer)) / 1000 / 24 / 3600)
uni.jxAlert({
title: '回首过往',
content: `门店ID:${getStorage('storeID')}\r\n\r\n您注册于${timeFormatD(infoRes.data.createdAt)}\r\n来到京西${time1}\r\n\r\n门店创建于${timeFormatD(store.state.storeInfo.createStoreTimer)}\r\n在平台经营${time2}`
})
} else toast('注册数据异常', 2)
}
/**
* 物料申请
*/
function moveToWM() {
let tel = store.state.storeInfo.allStoreInfo.marketManPhone ? store.state.storeInfo.allStoreInfo.marketManPhone : "18048531223"
if (getStorage('terrace') != 'jxcs') {
// 果园禁止物料跳转
uni.jxAlert({
title: '物料申请',
content: `非常抱歉,无法进入物料商城,请联系运营${tel}`
})
return
} else {
if (store.state.storeInfo.allStoreInfo.packageSwitch === 1) {
uni.jxAlert({
title: '物料申请',
content: `非常抱歉,无法进入物料商城,请联系运营${tel}`
})
return
}
}
if (store.state.storeInfo.storeStatus === -2) {
uni.jxAlert({
title: '物料申请',
content: '门店已被禁用,请联系运营'
})
}
openWeixin(`pages/index/index?storeID=666666&fromStoreID=${getStorage('storeID')}&storeType=c4`, 'gh_0d7e2243b51f')
}
/**
* 查询是否有新账单
*/
const isInstallWx = ref<boolean>(false) // 是否安装微信
onLoad(async () => {
if (plus.runtime.isApplicationExist({ pname: 'com.tencent.mm', action: 'weixin://' })) {
isInstallWx.value = true
} else {
isInstallWx.value = false
}
await handleMsg()
await tmpGetJxBadCommentsNo()
await getMessageData()
})
// 处理新账单
const billUrl: Ref<string | undefined | object[]> = ref('')
const newBillShow: Ref<boolean> = ref(false) // 是否有新帐单
function handleMsg() {
getStoreBills((url: Array<object> | string) => {
if (typeof (url) == 'string') {
billUrl.value = url
// 保存新账单url地址 存vuex
store.commit('serveInfo/setOrderUrl', url)
// 查询本地账单地址
if (getStorage('newBillUrl') !== billUrl.value) {
// 有新账单
newBillShow.value = true
} else {
// 没有新帐单
newBillShow.value = false
}
}
})
}
// 查询新订单
interface BillListType {
billName: string
billTitle: string
date: string
id: number
shopName: string
storeId: string
url: string
}
const billList = ref<Array<BillListType>>([])
async function getStoreBills(fn: Function) {
let data = {
storeID: getStorage('storeID')
}
let newOrderRes = await merchant.get_store_bills(data)
if (newOrderRes.code == 0) {
let newMsg: Array<object> | string = []
if (newOrderRes.data != null) {
billList.value = newOrderRes.data.slice(0, 5)
billList.value = billList.value.map((bill) => {
let time = bill.date
bill.date = timeFormatD(time)
return bill
})
newMsg = newOrderRes.data[0].url.trim()
fn && fn(newMsg)
} else {
billList.value = []
fn && fn(newMsg)
}
} else {
toast('账单数据异常', 2)
}
}
/**
* 是否有新信息
*/
const msgCount = ref<number>(0)
async function getMessageData() {
let data = {
storeIDs: JSON.stringify([+getStorage('storeID')]),
fromReadCount: 0,
toReadCount: 0,
offset: 0,
pageSize: -1,
fromTime:
timeFormatD(+new Date() - 7 * 24 * 60 * 60 * 1000) + ' 00:00:00',
toTime: timeFormatD(+new Date()) + ' 23:59:59',
}
let msgRes = await merchant.Get_store_message_statuses(data)
if (msgRes.code == 0) {
msgCount.value = msgRes.data.totalCount
} else {
toast('消息数据异常')
}
}
/**
* 获取差评数量
*/
let badCommentCount: Ref<number | string> = ref(0)
async function tmpGetJxBadCommentsNo() {
let data = {
jxStoreId: getStorage('storeID')
}
let evaluateMRes = await merchant.tmp_get_jx_bad_comments_no(data)
if (evaluateMRes.code == 0) {
badCommentCount.value = evaluateMRes.data ? evaluateMRes.data : 0
} else toast('差评数据异常', 2)
}
watch(() => store.getters['storeInfo/imMtStatus'],
(val) => {
if(val && val.length>0) getInvoiceInfo()
})
/**
* 发票数量
*/
const invoiceCount:Ref<number | string> = ref(0)
async function getInvoiceInfo() {
// if(store.getters['storeInfo/imEbStatus'] && store.getters['storeInfo/imEbStatus'].length>0){
// // 存在饿百门店
// }
// 美团们门店
if(store.getters['storeInfo/imMtStatus'] && store.getters['storeInfo/imMtStatus'].length>0) {
let data:AnyObject = {
storeId: getStorage('storeID'),
startTime: `${timeFormatD(+new Date() - 7 * 24 * 60 * 60 * 1000)}` + ' 00:00:00',
endTime:`${timeFormatD()}` + ' 23:59:59',
pageSize: -1,
offset: 0
}
let res = await order.query_mt_invoice(data)
invoiceCount.value = res.data.totalCount
}
}
/**
* 打开小程序
*/
function openAppOrApplet() {
openWeixin('pages/merchant/index')
}
/*************************************************
* 下拉刷新
*/
let onPullDownRefreshTimer: any = null
onPullDownRefresh(() => {
clearTimeout(onPullDownRefreshTimer)
onPullDownRefreshTimer = setTimeout(async () => {
uni.stopPullDownRefresh()
await tmpGetJxBadCommentsNo()
await getMessageData()
await handleMsg()
await getInvoiceInfo()
}, 1000)
})
/**
* 版本更新
*/
const isVarsion = ref<boolean>(false)
function isUpdate(type: number) {
watchVersion((res: boolean) => {
if (res) {
uni.globalAlert({
data: {
type: 3,
},
})
isVarsion.value = true
} else {
isVarsion.value = false
if (type == 1) toast('已经是最新版')
}
})
}
onBeforeUnmount(() => {
clearTimeout(onPullDownRefreshTimer)
})
return {
getGroupChat, // 跳转加入群聊
getSelfInfo, // 获取门店来京西的时间
moveToWM, // 物料申请
newBillShow, // 是否有新账单
billList, // 账单列表
msgCount, // 是否有信息
badCommentCount, // 获取差评数量
invoiceCount, // 发票数量
openAppOrApplet, // app or 小程序
isVarsion, // 是否现实新版本
isUpdate, // 版本更新
isInstallWx, // 是否安装微信
}
}
export default options