diff --git a/index.html b/index.html
index 0c589ec..6dac6df 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
-
+
{
+ e.stopPropagation();
+ setShowQuickSelect(!showQuickSelect);
+ }}>
+
+
+ {formatDisplayText()}
+
+ {(date || time) && (
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ clearDateTime();
+ }}
+ >
+ ×
+
+ )}
+
+
+ {showQuickSelect && (
+
+
+
选择日期
+
+ {quickDateOptions.map((option) => (
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setDate(option.value);
+ }}
+ >
+ {option.label}
+
+ ))}
+
+
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setDate(e.target.value);
+ }}
+ onClick={(e) => e.stopPropagation()}
+ className="date-input"
+ />
+
+
+
+
+
选择时间
+
+ {timeOptions.map((option) => (
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setTime(option.value);
+ }}
+ >
+ {option.label}
+
+ ))}
+
+
+
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setTime(e.target.value);
+ }}
+ onClick={(e) => e.stopPropagation()}
+ className="time-input"
+ />
+
+
+
+
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setShowQuickSelect(false);
+ }}
+ >
+ 取消
+
+ {
+ e.preventDefault();
+ e.stopPropagation();
+ setShowQuickSelect(false);
+ }}
+ >
+ 确认
+
+
+
+ )}
+
+ {showQuickSelect && (
+
setShowQuickSelect(false)}
+ />
+ )}
+
+ );
+};
+
+export default DateTimePicker;
\ No newline at end of file
diff --git a/src/components/MeetingTimeline.jsx b/src/components/MeetingTimeline.jsx
index 7edb0e8..e159eb8 100644
--- a/src/components/MeetingTimeline.jsx
+++ b/src/components/MeetingTimeline.jsx
@@ -34,7 +34,7 @@ const MeetingTimeline = ({ meetingsByDate, currentUser, onDeleteMeeting }) => {
return date.toLocaleDateString('zh-CN', { month: 'long', day: 'numeric' });
};
- const truncateSummary = (summary, maxLines = 3, maxLength = 80) => {
+ const truncateSummary = (summary, maxLines = 3, maxLength = 100) => {
if (!summary) return '暂无摘要';
// Split by lines and check line count
@@ -59,7 +59,7 @@ const MeetingTimeline = ({ meetingsByDate, currentUser, onDeleteMeeting }) => {
return summary;
};
- const shouldShowMoreButton = (summary, maxLines = 3, maxLength = 80) => {
+ const shouldShowMoreButton = (summary, maxLines = 3, maxLength = 100) => {
if (!summary) return false;
const lines = summary.split('\n');
return lines.length > maxLines || summary.length > maxLength;
diff --git a/src/pages/CreateMeeting.jsx b/src/pages/CreateMeeting.jsx
index 8896898..92db85d 100644
--- a/src/pages/CreateMeeting.jsx
+++ b/src/pages/CreateMeeting.jsx
@@ -3,6 +3,7 @@ import { Link, useNavigate } from 'react-router-dom';
import axios from 'axios';
import { ArrowLeft, Upload, Users, Calendar, FileText, X, User, Plus } from 'lucide-react';
import { buildApiUrl, API_ENDPOINTS } from '../config/api';
+import DateTimePicker from '../components/DateTimePicker';
import './CreateMeeting.css';
const CreateMeeting = ({ user }) => {
@@ -169,20 +170,14 @@ const CreateMeeting = ({ user }) => {