'!'
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
.info {
|
||||
padding: 30rpx 30rpx 60rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
background: linear-gradient(0deg, #ffe2d2, #fdf6f0);
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.time-root {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top: -35rpx;
|
||||
border-radius: 30rpx 30rpx 0 0;
|
||||
background-color: #fff;
|
||||
|
||||
.time {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #f6f7fb;
|
||||
border-radius: 15rpx;
|
||||
|
||||
text {
|
||||
display: inline-block;
|
||||
padding: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
view {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.time-active {
|
||||
box-sizing: border-box;
|
||||
padding: 18rpx;
|
||||
border: 2rpx solid $jx-primary;
|
||||
border-radius: 15rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tip {
|
||||
font-size: 26rpx;
|
||||
margin-bottom: 15rpx;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.button {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
box-shadow: -10rpx 0rpx 10rpx rgb(166, 166, 166);
|
||||
|
||||
|
||||
view {
|
||||
background: linear-gradient(90deg, #ffe14f, #fdc450);
|
||||
border-radius: 50rpx;
|
||||
padding: 20rpx 0;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
175
src/subPages/merchantChild/setBusinessTime/setBusinessTime.ts
Normal file
175
src/subPages/merchantChild/setBusinessTime/setBusinessTime.ts
Normal file
@@ -0,0 +1,175 @@
|
||||
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, // 选择器的当前时间
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
<template>
|
||||
<view class="info">
|
||||
<uni-title type="h3" title="配送站点营业时间 00:00-24:00" />
|
||||
<view>● 门店营业时间需在配送站点营业时间内才会有骑手配送</view>
|
||||
<view>● 如需在此时间范围外营业,请咨询业务经理调整配送方式</view>
|
||||
<view>● 第二段营业时间需要在第一段营业时间之后</view>
|
||||
<view>● 淘鲜达仅使用营业时间一</view>
|
||||
</view>
|
||||
|
||||
<view class="time-root">
|
||||
<uni-title type="h3" title="营业时间一" />
|
||||
<view class="time one">
|
||||
<view
|
||||
class="left"
|
||||
:class="{ 'time-active': timeActive == 1 }"
|
||||
@tap="setTime(1)"
|
||||
>
|
||||
{{ businessTime.timer1 }}
|
||||
</view>
|
||||
<text class="middle">至</text>
|
||||
<view
|
||||
class="right"
|
||||
:class="{ 'time-active': timeActive == 2 }"
|
||||
@tap="setTime(2)"
|
||||
>
|
||||
{{ businessTime.timer2 }}
|
||||
</view>
|
||||
</view>
|
||||
<uni-title type="h2" title="营业时间二(非必选)" />
|
||||
<view class="tip">提示:不需要第二段时间设置为【00:00至00:00】即可</view>
|
||||
<view class="time two">
|
||||
<view
|
||||
class="left"
|
||||
:class="{ 'time-active': timeActive == 3 }"
|
||||
@tap="setTime(3)"
|
||||
>
|
||||
{{ businessTime.timer3 }}
|
||||
</view>
|
||||
<text class="middle">至</text>
|
||||
<view
|
||||
class="right"
|
||||
:class="{ 'time-active': timeActive == 4 }"
|
||||
@tap="setTime(4)"
|
||||
>
|
||||
{{ businessTime.timer4 }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="button" @tap="saveBusinessTime">
|
||||
<view>确认修改</view>
|
||||
</view>
|
||||
|
||||
<uv-datetime-picker
|
||||
:title="timeTitle"
|
||||
confirmColor="#4eb331"
|
||||
v-model="timeIng"
|
||||
ref="dateTimePicker"
|
||||
mode="time"
|
||||
@confirm="confirm"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./setBusinessTime" >
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './setBusinessTime.scss';
|
||||
</style>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #fff;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user