Files
zsw-jx-store/src/subPages/merchantChild/setBusinessTime/setBusinessTime.ts
2025-12-10 16:34:11 +08:00

175 lines
6.6 KiB
TypeScript

import { computed, ref } from 'vue'
import { onLoad } from "@dcloudio/uni-app";
import { getStorage } from '@/utils/storage';
import merchant from '@/api/https/merchant';
import useGlobalFunc from '@/composables/useGlobalFunc';
import { store } from "@/store";
export default {
setup() {
// const { isTxd } = useGlobalFunc()
// ******************** 时间选择组件操作 *****************************
//#region
const dateTimePicker = ref<any>(null) // 时间组件实例
const timeActive = ref<number>(0) // 时间选择高亮
const timeIng = ref<string>('00:00') // 选择器的当前时间
// 确认选择时间
function confirm(e: AnyObject): void {
switch (timeActive.value) {
case 1:
businessTime.value.timer1 = e.value
break
case 2:
businessTime.value.timer2 = e.value
break
case 3:
businessTime.value.timer3 = e.value
break
case 4:
businessTime.value.timer4 = e.value
break
}
}
// 打开时间设置
function setTime(type: number): void {
timeActive.value = type
let time = businessTime.value
switch (type) {
case 1:
timeIng.value = time.timer1
break
case 2:
timeIng.value = time.timer2
break
case 3:
timeIng.value = time.timer3
break
case 4:
timeIng.value = time.timer4
break
}
dateTimePicker.value.open()
}
// 时间标题
const timeTitle = computed(() => {
let type = timeActive.value
if (type == 1 || type == 3) {
return '选择开始时间'
} else {
return '选择结束时间'
}
})
//#endregion
// ******************** 获取门店营业时间 *****************************
//#region
const businessTime = ref<AnyObject>({})
onLoad(async() => {
store.commit('storeInfo/jxLoadingFn', true)
if(!store.getters['storeInfo/businessHours']) await store.dispatch('storeInfo/getOneStore',getStorage("storeID"))
businessTime.value = store.getters['storeInfo/businessHours']
store.commit('storeInfo/jxLoadingFn', false)
})
//#endregion
// ******************** 保存营业时间 *****************************
//#region
async function saveBusinessTime() {
let time = businessTime.value
// 一开始时间大于结束时间
if (formatTime(time.timer1) >= formatTime(time.timer2)) {
return uni.jxAlert({
title: '营业时间一',
content: `开始时间不能大于结束时间,您可以修改为【${time.timer2}${time.timer1}`
})
}
// 第二段时间小于第一段时间
if (time.timer3 != '00:00' && time.timer4 != '00:00') {
if (formatTime(time.timer3) < formatTime(time.timer2)) {
return uni.jxAlert({
title: '提示',
content: `第二段营业时间不能小于第一段营业时间,您可以修改到【${time.timer2}】点之后`
})
}
}
// 二开始时间大于结束时间
if (formatTime(time.timer3) > formatTime(time.timer4)) {
return uni.jxAlert({
title: '营业时间二',
content: `开始时间不能大于结束时间,您可以修改为【${time.timer3}${time.timer4}`
})
}
// 校验通过
let data = {
storeID: getStorage("storeID"),
payload: JSON.stringify({
openTime1: formatTime(time.timer1),
closeTime1: formatTime(time.timer2),
openTime2: formatTime(time.timer3),
closeTime2: formatTime(time.timer4),
}),
}
let updateTimerRes = await merchant.update_store(data);
if (updateTimerRes.code == 0) {
uni.jxAlert({
title: '提示',
content: '修改成功,请返回下拉刷新',
success: () => {
uni.navigateBack()
}
})
} else {
uni.jxAlert({
title: '操作提示',
content: `提示:${updateTimerRes.desc}`,
success: () => {
uni.navigateBack()
}
})
}
}
// 格式化数据
function formatTime(time: string): number {
let newTime = time.slice(0, 2) + time.slice(-2)
return +newTime
}
//#endregion
// ******************** 修改淘鲜达线上时间 *****************************
//#region
// async function setTxdIngTime(time: AnyObject) {
// if (isTxd()) {
// let data = {
// vendorOrgCode: 34402634,
// txdStores: JSON.stringify({
// flag: [2],
// txdStoreID: `JX${getStorage('storeID')}`,
// startTime: time.timer1,
// endTime: time.timer2
// })
// }
// let res = await merchant.update_txd_store(data)
// console.log('ZSW-res', res);
// } else {
// console.log('此店铺暂无淘鲜达店铺')
// }
// }
//#endregion
return {
dateTimePicker, // 时间组件实例
confirm, // 选择时间val
businessTime, // 营业时间
timeActive, // 时间选择高亮
setTime, // 打开时间设置
timeTitle, // 选择器标题
saveBusinessTime, // 确定修改时间
timeIng, // 选择器的当前时间
}
}
}