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

View File

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