|
|
@@ -17,11 +17,13 @@
|
|
|
@change="(e) => field.onChange?.(e) || handleSearch()" />
|
|
|
</template>
|
|
|
<template v-else-if="field.type === 'date'">
|
|
|
- <uni-datetime-picker v-model="formData[field.key]" type="date"
|
|
|
+ <uni-datetime-picker :start="dateLimit.start" :end="dateLimit.end"
|
|
|
+ v-model="formData[field.key]" type="date"
|
|
|
:placeholder="field.placeholder || '请选择日期'" @change="handleDateChange" />
|
|
|
</template>
|
|
|
<template v-else-if="field.type === 'daterange'">
|
|
|
- <uni-datetime-picker v-model="formData[field.key]" type="daterange"
|
|
|
+ <uni-datetime-picker :start="dateLimit.start" :end="dateLimit.end"
|
|
|
+ v-model="formData[field.key]" type="daterange"
|
|
|
:placeholder="field.placeholder || '请选择日期范围'" @change="handleDateChange" />
|
|
|
</template>
|
|
|
<template v-else-if="field.type === 'picker'">
|
|
|
@@ -48,7 +50,7 @@
|
|
|
<!-- 移动端:只显示筛选按钮,点击弹出底部抽屉 -->
|
|
|
<view class="mobile-filter">
|
|
|
<view v-if="dateField" class="mobile-date-wrapper">
|
|
|
- <uni-datetime-picker v-model="formData[dateField.key]"
|
|
|
+ <uni-datetime-picker :start="dateLimit.start" :end="dateLimit.end" v-model="formData[dateField.key]"
|
|
|
:type="dateField.type === 'daterange' ? 'daterange' : 'date'"
|
|
|
:placeholder="dateField.placeholder || (dateField.type === 'daterange' ? '选择日期范围' : '选择日期')"
|
|
|
@change="handleDateChange" />
|
|
|
@@ -138,7 +140,27 @@ const props = defineProps({
|
|
|
})
|
|
|
|
|
|
const emit = defineEmits(['update:modelValue', 'search', 'reset'])
|
|
|
-console.log(props.fields, 12);
|
|
|
+// 时间选择器限制:今天,近一年
|
|
|
+const dateLimit = computed(() => {
|
|
|
+ const now = new Date()
|
|
|
+ // 结束日期 = 今天
|
|
|
+ const endDate = new Date(now)
|
|
|
+ // 开始日期 = 今天 - 365天
|
|
|
+ const startDate = new Date(now)
|
|
|
+ startDate.setDate(startDate.getDate() - 365)
|
|
|
+
|
|
|
+ const format = (d) => {
|
|
|
+ const y = d.getFullYear()
|
|
|
+ const m = String(d.getMonth() + 1).padStart(2, '0')
|
|
|
+ const d2 = String(d.getDate()).padStart(2, '0')
|
|
|
+ return `${y}-${m}-${d2}`
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ start: format(startDate),
|
|
|
+ end: format(endDate)
|
|
|
+ }
|
|
|
+})
|
|
|
|
|
|
// 获取日期字段的默认值(当前月范围或当天)
|
|
|
const getDefaultDateValue = (field) => {
|