feat: 更新日期选择器和时间筛选逻辑,优化用户体验

This commit is contained in:
Jafeng 2026-02-02 14:51:40 +08:00
parent 4e0bbbf3e3
commit 33a32e1134
2 changed files with 17 additions and 27 deletions

View File

@ -9,12 +9,12 @@
</view>
</picker>
<picker mode="selector" :range="timeRangeOptions" range-key="label" @change="pickTimeRange">
<uni-datetime-picker type="daterange" :value="dateRange" @change="pickTimeRange">
<view class="filter-pill">
<view class="pill-text">{{ currentTimeRange.label }}</view>
<view class="pill-text">{{ dateRangeLabel }}</view>
<uni-icons type="arrowdown" size="12" color="#666" />
</view>
</picker>
</uni-datetime-picker>
</view>
<view v-if="showShareTip" class="share-tip">
@ -75,13 +75,13 @@ const currentType = ref({ name: '全部', value: 'ALL' });
const records = ref([]);
const timeRangeOptions = [
{ label: '全部时间', value: 'ALL' },
{ label: '今天', value: 'today' },
{ label: '近7天', value: '7d' },
{ label: '近30天', value: '30d' },
];
const currentTimeRange = ref(timeRangeOptions[0]);
const dateRange = ref([]);
const dateRangeLabel = computed(() => {
if (Array.isArray(dateRange.value) && dateRange.value.length === 2 && dateRange.value[0] && dateRange.value[1]) {
return `${dateRange.value[0]}${dateRange.value[1]}`;
}
return '全部时间';
});
function getCurrentTeamId() {
const team = uni.getStorageSync('ykt_case_current_team') || {};
@ -204,19 +204,9 @@ async function refreshList() {
currentType.value.value === 'ALL' ? templates.value.map((i) => i.templateType) : currentType.value.value;
//
if (currentTimeRange.value.value !== 'ALL') {
const now = Date.now();
if (currentTimeRange.value.value === 'today') {
const todayStart = new Date(new Date().setHours(0, 0, 0, 0)).getTime();
params.startTime = todayStart;
params.endTime = now;
} else if (currentTimeRange.value.value === '7d') {
params.startTime = now - 7 * 24 * 60 * 60 * 1000;
params.endTime = now;
} else if (currentTimeRange.value.value === '30d') {
params.startTime = now - 30 * 24 * 60 * 60 * 1000;
params.endTime = now;
}
if (Array.isArray(dateRange.value) && dateRange.value.length === 2 && dateRange.value[0] && dateRange.value[1]) {
params.startTime = dayjs(dateRange.value[0]).startOf('day').valueOf();
params.endTime = dayjs(dateRange.value[1]).endOf('day').valueOf();
}
const res = await api('getCustomerMedicalRecord', params);
@ -323,8 +313,8 @@ function pickType(e) {
currentType.value = typeRange.value[e.detail.value] || { name: '全部', value: 'ALL' };
refreshList();
}
function pickTimeRange(e) {
currentTimeRange.value = timeRangeOptions[e.detail.value] || timeRangeOptions[0];
function pickTimeRange(val) {
dateRange.value = val;
refreshList();
}

View File

@ -717,11 +717,11 @@ const openVerifyEntry = () => {
};
const openAddCustomerServiceEntry = () => {
uni.showToast({ title: '添加客服功能待接入', icon: 'none' });
uni.navigateTo({ url: '/pages/work/service/contact-service' });
};
const openInvitePatientEntry = () => {
uni.navigateTo({ url: '/pages/case/patient-invite' });
uni.navigateTo({ url: '/pages/work/team/invite/invite-patient' });
};
const openCreatePatientEntry = () => {