From 0647fd26414fc8a3ab077d355f50da6e3e36ad63 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期三, 15 一月 2025 17:40:57 +0800
Subject: [PATCH] 实现原本功能

---
 src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue |   86 ++++++++++++++++++++++++------------------
 1 files changed, 49 insertions(+), 37 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue b/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue
index 674e9bd..ef234c6 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue
@@ -33,12 +33,19 @@
 		<div class="ml-2 inline-flex items-center space-x-2 text-[14px]">
 			<div
 				@click="quickPickRangeClick(parseInt(item))"
-				class="border border-solid rounded-md px-2 cursor-pointer"
-				:class="{ 'bg-[#1677ff]': parseInt(item) === quickPickValue, 'text-white': parseInt(item) === quickPickValue }"
-				v-for="item in Object.keys(timeRangeEnumMapTitle)"
+				class="border border-solid rounded-md px-2 py-1 cursor-pointer"
+				:class="{
+					'bg-[#1677ff]': parseInt(item) === quickPickValue,
+					'text-white': parseInt(item) === quickPickValue,
+					'bg-[#f5f7fa]': disabled,
+					'text-[#a9acb3]': disabled,
+					'border-[#dcdfe6]': disabled,
+					'!cursor-not-allowed': disabled,
+				}"
+				v-for="item in Object.keys(timeRangeMapTitle)"
 				:key="item"
 			>
-				{{ timeRangeEnumMapTitle[item] }}
+				{{ timeRangeMapTitle[item] }}
 			</div>
 		</div>
 	</div>
@@ -47,10 +54,10 @@
 <script setup lang="ts">
 import { ElDatePicker } from 'element-plus';
 import { definePropType } from 'element-plus/es/utils/vue/props/runtime';
-import { ref, type PropType, computed, watch } from 'vue';
+import { ref, type PropType, computed, watch, nextTick } from 'vue';
 import type { TimeRangeParam } from '../types';
-import type { TimeRangeEnum } from './types';
-import { timeRangeEnumMapTitle, timeRangeEnumMapValue } from './types';
+import { TimeRangeEnum, TimeStepValue, monthTimeRangeEnumMapTitle } from './types';
+import { dayTimeRangeEnumMapTitle, timeRangeEnumMapValue } from './types';
 import {
 	CURRENT_DAY,
 	DEFAULT_FORMATS_DATE,
@@ -61,6 +68,7 @@
 } from '/@/components/form/datepicker/constants';
 import { formatDate } from '/@/utils/formatTime';
 import moment from 'moment';
+import { isSharePage } from '/@/stores/chatRoom';
 
 const valueFormat = DEFAULT_FORMATS_DATE + ' ' + DEFAULT_FORMATS_TIME;
 const props = defineProps({
@@ -72,72 +80,76 @@
 		default: false,
 	},
 });
+
+const getRangeMapTitle = (timeStep: TimeStepValue) => {
+	switch (timeStep) {
+		case TimeStepValue.Day:
+			return dayTimeRangeEnumMapTitle;
+		case TimeStepValue.Month:
+			return monthTimeRangeEnumMapTitle;
+		default:
+			return dayTimeRangeEnumMapTitle;
+	}
+};
+
+const timeRangeMapTitle = getRangeMapTitle(props.data?.origin?.time_step);
 const dateValue = defineModel({
 	type: definePropType<[string, string]>(Array),
 });
 const emit = defineEmits(['change']);
 
-/**
- * 闇�瑕佸 dateValue 鏍煎紡鍖栵紝dataValue 缁撴潫鏃堕棿涓嶆槸23:59:59
- */
-const formatDateValue = computed({
-	get: () => {
-		if (!dateValue.value) return null;
-		return [moment(dateValue.value[0]).format('YYYY-MM-DD 00:00:00'), moment(dateValue.value[1]).format('YYYY-MM-DD 23:59:59')] as [
-			string,
-			string
-		];
-	},
-	set: (value) => {
-		dateValue.value = value;
-	},
-});
+const dateChange = () => {
+	nextTick(() => {
+		emit('change', dateValue.value);
+	});
+};
 
 const disabledDate = (date: Date) => {
 	return date > CURRENT_DAY;
 };
 
-const resetQuickPickValue = () =>{
+const resetQuickPickValue = () => {
 	quickPickValue.value = null;
-}
+};
 const quickPickValue = ref<TimeRangeEnum>(null);
 const quickPickRangeClick = (val: TimeRangeEnum) => {
+	if (props.disabled) return;
 	if (quickPickValue.value === val) return;
 
 	quickPickValue.value = val;
-	formatDateValue.value = timeRangeEnumMapValue[val]().map((item) => formatDate(item)) as [string, string];
+	dateValue.value = timeRangeEnumMapValue[val]().map((item) => formatDate(item)) as [string, string];
+	dateChange();
 };
 
 const offsetClickIsAllow = computed(() => !!dateValue.value && !props.disabled);
 const preDayClick = () => {
+	if (props.disabled) return;
+
 	if (!dateValue.value) return;
 	dateValue.value[0] = moment(dateValue.value[0]).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss');
-	dateValue.value = [...dateValue.value];
-	resetQuickPickValue();
+	dateChange();
 
+	resetQuickPickValue();
 };
 
 const nextDayClick = () => {
+	if (props.disabled) return;
+
 	if (!dateValue.value) return;
 	dateValue.value[1] = moment(dateValue.value[1]).add(1, 'day').format('YYYY-MM-DD HH:mm:ss');
-	dateValue.value = [...dateValue.value];
+	dateChange();
+
 	resetQuickPickValue();
 };
 
 const datePickerChange = (va) => {
 	resetQuickPickValue();
+	dateChange();
 };
 
-watch(
-	() => formatDateValue.value,
-	(val) => {
-		emit('change', val);
-	}
-);
-
 defineExpose({
-	formatDateValue
-})
+	formatDateValue: dateValue,
+});
 </script>
 <style scoped lang="scss">
 :deep(.el-date-editor .el-range__close-icon--hidden) {

--
Gitblit v1.9.3