| @ -0,0 +1,174 @@ | |||||
| <template> | |||||
| <!-- 修改营业时间弹框 --> | |||||
| <uv-overlay :show="show" @click="close"> | |||||
| <view class="warp"> | |||||
| <view class="rect" @tap.stop> | |||||
| <view class="title">修改营业时间</view> | |||||
| <view class="center"> | |||||
| <view style="display: flex;justify-content: center;gap: 20rpx;"> | |||||
| <view>上班时间</view> | |||||
| <view @click="startDateOpen()"> | |||||
| {{ startTime }} | |||||
| <uv-datetime-picker ref="startDateRef" v-model="startTime" mode="time" | |||||
| @confirm="startDateChange()"></uv-datetime-picker> | |||||
| </view> | |||||
| </view> | |||||
| <view style="display: flex;justify-content: center;gap: 20rpx;"> | |||||
| <view>下班时间</view> | |||||
| <view @click="endDateOpen()"> | |||||
| {{ endTime }} | |||||
| <uv-datetime-picker style="z-index: 999;" ref="endDateRef" v-model="endTime" mode="time" | |||||
| @confirm="endDateChange()"></uv-datetime-picker> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="bottom"> | |||||
| <view> | |||||
| <uv-button type="info" shape="circle" text="取消" :custom-style="customStyle1" | |||||
| @click="close"></uv-button> | |||||
| </view> | |||||
| <view> | |||||
| <uv-button type="info" shape="circle" text="确定" :custom-style="customStyle2" | |||||
| @click="confirm"></uv-button> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </uv-overlay> | |||||
| </template> | |||||
| <script> | |||||
| import dayjs from '../../uni_modules/uv-ui-tools/libs/util/dayjs'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| show: false, | |||||
| startTime: dayjs(new Date()).format("HH:mm"), | |||||
| endTime: dayjs(new Date()).format("HH:mm") | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| customStyle1() { | |||||
| return { | |||||
| height: '60rpx', | |||||
| background: '#FFF', | |||||
| color: '#000000', | |||||
| fontSize: '36rpx', | |||||
| borderRadius: '40rpx', //圆角 | |||||
| // nvue中必须是下方的写法 | |||||
| 'border-top-right-radius': '40rpx', | |||||
| 'border-bottom-left-radius': '40rpx', | |||||
| 'border-bottom-right-radius': '40rpx', | |||||
| 'width': '150rpx', | |||||
| } | |||||
| }, | |||||
| customStyle2() { | |||||
| return { | |||||
| height: '60rpx', | |||||
| background: '#fd5100', | |||||
| color: '#FFF', | |||||
| fontSize: '34px', | |||||
| borderRadius: '40rpx', //圆角 | |||||
| // nvue中必须是下方的写法 | |||||
| 'border-top-right-radius': '40rpx', | |||||
| 'border-bottom-left-radius': '40rpx', | |||||
| 'border-bottom-right-radius': '40rpx', | |||||
| 'width': '150rpx', | |||||
| } | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| startDateChange(val) { | |||||
| this.$nextTick(() => { | |||||
| this.startTime = val.value | |||||
| }); | |||||
| }, | |||||
| startDateOpen() { | |||||
| this.$refs.startDateRef.open(); | |||||
| }, | |||||
| endDateChange(val) { | |||||
| this.$nextTick(() => { | |||||
| this.endTime = val.value | |||||
| }); | |||||
| }, | |||||
| endDateOpen() { | |||||
| this.$refs.endDateRef.open(); | |||||
| }, | |||||
| open() { | |||||
| this.show = true | |||||
| }, | |||||
| close() { | |||||
| this.show = false | |||||
| }, | |||||
| confirm() { | |||||
| this.show = false | |||||
| this.$api('updateJobTime', { | |||||
| time: this.startTime + '-' + this.endTime | |||||
| }, res => { | |||||
| if (res.code == 200) { | |||||
| uni.showToast({ | |||||
| icon: 'success', | |||||
| title: '修改营业时间成功', | |||||
| duration: 1500 | |||||
| }) | |||||
| } | |||||
| }) | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .uv-popup { | |||||
| z-index: 999; | |||||
| } | |||||
| .warp { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| height: 100%; | |||||
| } | |||||
| .rect { | |||||
| width: 600rpx; | |||||
| height: 300rpx; | |||||
| background-color: #fff; | |||||
| border-radius: 20rpx; | |||||
| overflow: hidden; | |||||
| .title { | |||||
| padding: 10rpx 0 0 15rpx; | |||||
| background-color: #fd5100; | |||||
| color: #FFF; | |||||
| text-align: left; | |||||
| width: 100%; | |||||
| height: 18%; | |||||
| font-size: 36rpx; | |||||
| } | |||||
| .center { | |||||
| height: 50%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| gap: 20rpx; | |||||
| // justify-content: center; | |||||
| // align-items: center; | |||||
| font-size: 36rpx; | |||||
| } | |||||
| .bottom { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| gap: 50rpx; | |||||
| } | |||||
| } | |||||
| </style> | |||||