| @ -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> | |||