44 lines
1.2 KiB
Vue
44 lines
1.2 KiB
Vue
<template>
|
|
<view>
|
|
<picker mode="date" fields="day" :value="props.defaultDate" @change="bindDateChange" v-show="props.defaultDate != '长期'">
|
|
<view class="uni-input" style="text-align: right;">{{props.defaultDate ? props.defaultDate : '请选择'}}</view>
|
|
</picker>
|
|
<checkbox-group @change="end" v-if="props.isEnd">
|
|
<label><checkbox value="长期" :checked="props.defaultDate == '长期' " color="#FFCC33" />长期</label>
|
|
</checkbox-group>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
|
|
import { ref } from 'vue'
|
|
import useBackPress from '@/hooks/useBackPress.js' // 返回阻断函数
|
|
|
|
const props = defineProps({
|
|
isEnd: { type: Boolean, default: true } , // 默认为选择结束时间
|
|
defaultDate: {type: String, default: ''}, // 传入的默认时间
|
|
})
|
|
|
|
const emit = defineEmits(['publicSelect'])
|
|
|
|
// 保持与其他数据参数格式一致,所以也改成 e.detail.value的方式
|
|
let data = {
|
|
detail: {
|
|
value: ''
|
|
}
|
|
}
|
|
|
|
// 普通日期选择
|
|
const bindDateChange = e => emit('publicSelect', e)
|
|
|
|
// 点击长期
|
|
const end = e => {
|
|
data.detail.value = e.detail.value[0] ? '长期' : ''
|
|
emit('publicSelect', data)
|
|
}
|
|
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
</style> |