96 lines
2.3 KiB
Vue
96 lines
2.3 KiB
Vue
![]() |
<template>
|
||
|
<u-popup :show="show" mode="bottom" :closeable="true" @close="handleClose">
|
||
|
<view class="c-dialog">
|
||
|
<view class="box"><text>常用时间选择</text></view>
|
||
|
<view class="box-btn"
|
||
|
><text class="active">今日</text><text>昨日</text><text>本月</text
|
||
|
><text>本年</text></view
|
||
|
>
|
||
|
<view class="box box-border"
|
||
|
><text>其它时间选择</text
|
||
|
><text class="btn" @click="showCalendar = true">自定义</text></view
|
||
|
>
|
||
|
|
||
|
<view v-if="showCalendar">
|
||
|
<view class="line"></view>
|
||
|
<view class="box">
|
||
|
<text @click="showCalendar = false">取消</text>
|
||
|
<text class="btn" @click="showCalendar = false">完成</text>
|
||
|
</view>
|
||
|
<uni-calendar
|
||
|
:insert="true"
|
||
|
:lunar="true"
|
||
|
:start-date="'2014-1-1'"
|
||
|
:end-date="'2099-1-1'"
|
||
|
:range="true"
|
||
|
@change="handleChangeDate"
|
||
|
/>
|
||
|
</view>
|
||
|
</view>
|
||
|
</u-popup>
|
||
|
</template>
|
||
|
<script setup lang="ts">
|
||
|
const props = defineProps<{
|
||
|
show: boolean,
|
||
|
}>()
|
||
|
const emit = defineEmits(['handleDialog']);
|
||
|
const handleClose = () => {
|
||
|
emit('handleDialog', false)
|
||
|
}
|
||
|
|
||
|
const showCalendar = ref(false)
|
||
|
const handleChangeDate = (v: any) => {
|
||
|
console.log(v);
|
||
|
};
|
||
|
</script>
|
||
|
<style lang="scss" scoped>
|
||
|
|
||
|
::v-deep .u-popup__content {
|
||
|
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||
|
border-radius: 32rpx 32rpx 0rpx 0rpx;
|
||
|
}
|
||
|
.c-dialog {
|
||
|
margin: 65.38rpx 44.87rpx;
|
||
|
font-family: Source Han Sans CN;
|
||
|
font-weight: 500;
|
||
|
font-size: 24rpx;
|
||
|
color: #000000;
|
||
|
.box-btn,
|
||
|
.box {
|
||
|
line-height: 80rpx;
|
||
|
display: flex;
|
||
|
justify-content: space-between;
|
||
|
}
|
||
|
.box-btn {
|
||
|
line-height: 40rpx;
|
||
|
margin-bottom: 30rpx;
|
||
|
text {
|
||
|
font-weight: 400;
|
||
|
font-size: 24rpx;
|
||
|
color: #999999;
|
||
|
width: 117rpx;
|
||
|
background: #ffffff;
|
||
|
border-radius: 6rpx;
|
||
|
border: 1px solid rgba(153, 153, 153, 0.64);
|
||
|
text-align: center;
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
.active {
|
||
|
border-color: $u-primary;
|
||
|
color: $u-primary;
|
||
|
}
|
||
|
}
|
||
|
.btn {
|
||
|
font-weight: 500;
|
||
|
font-size: 24rpx;
|
||
|
color: $u-primary;
|
||
|
}
|
||
|
.box-border {
|
||
|
border-top: 1px solid rgba(233, 233, 233, 0.76);
|
||
|
}
|
||
|
.line {
|
||
|
height: 18rpx;
|
||
|
background: #f8f8f8;
|
||
|
}
|
||
|
}
|
||
|
</style>
|