From 90fe107654f4f7258305078a18253650bc8cba66 Mon Sep 17 00:00:00 2001 From: Lxy Date: Wed, 8 Jul 2026 23:27:02 +0800 Subject: [PATCH] =?UTF-8?q?tweak:=20=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=E7=BB=8F=E9=AA=8C=E5=BA=93=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=97=A5=E6=9C=9F=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/static/futures_analysis.html | 19 +++++++++-- app/static/futures_analysis.js | 52 +++++++++++++++++++++++++++++++ data/futures_analysis.db | Bin 13225984 -> 13225984 bytes 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/app/static/futures_analysis.html b/app/static/futures_analysis.html index 4102440..62a2c9e 100644 --- a/app/static/futures_analysis.html +++ b/app/static/futures_analysis.html @@ -594,6 +594,12 @@ .tr-tab-panel { display: none; } .tr-tab-panel.active { display: block; } + /* 快捷日期按钮 */ + .tr-quick-dates { display: flex; gap: 8px; margin-bottom: 16px; } + .tr-quick-date { padding: 6px 16px; border-radius: 20px; border: 1px solid #e0e0e0; background: #fff; color: var(--text-secondary); font-size: 13px; cursor: pointer; transition: all 0.2s; } + .tr-quick-date:hover { border-color: var(--color-brand); color: var(--color-brand); } + .tr-quick-date.active { background: var(--color-brand); color: #fff; border-color: var(--color-brand); } + /* 数据管理 Tab 样式 */ .tr-data-management { background: var(--bg-card); border-radius: var(--radius-card); padding: 32px; box-shadow: var(--shadow-sm); } .tr-section-title { font-size: 16px; font-weight: 600; color: var(--text-primary); margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,0,0,0.05); } @@ -1124,9 +1130,9 @@
- +
@@ -1185,8 +1191,17 @@
+ +
+ + + + + + +
-
+
~ diff --git a/app/static/futures_analysis.js b/app/static/futures_analysis.js index 5d0257a..addb558 100644 --- a/app/static/futures_analysis.js +++ b/app/static/futures_analysis.js @@ -1643,6 +1643,58 @@ async function trInitDefaultDate() { } catch (e) { console.error('获取最后交易日失败', e); } + // 初始化快捷日期按钮 + trInitQuickDates(); + trLoadAllData(); +} + +function trInitQuickDates() { + document.querySelectorAll('#tr-quick-dates .tr-quick-date').forEach(btn => { + btn.addEventListener('click', () => trSetDateRange(btn.dataset.range)); + }); +} + +function trSetDateRange(range) { + // 更新按钮状态 + document.querySelectorAll('#tr-quick-dates .tr-quick-date').forEach(btn => { + btn.classList.toggle('active', btn.dataset.range === range); + }); + + const today = new Date(); + const end = today.toISOString().split('T')[0]; + let start = end; + + switch (range) { + case 'today': + start = end; + break; + case 'week': + const weekAgo = new Date(today); + weekAgo.setDate(weekAgo.getDate() - 7); + start = weekAgo.toISOString().split('T')[0]; + break; + case 'half-month': + const halfMonthAgo = new Date(today); + halfMonthAgo.setDate(halfMonthAgo.getDate() - 15); + start = halfMonthAgo.toISOString().split('T')[0]; + break; + case 'month': + const monthAgo = new Date(today); + monthAgo.setMonth(monthAgo.getMonth() - 1); + start = monthAgo.toISOString().split('T')[0]; + break; + case 'quarter': + const quarterAgo = new Date(today); + quarterAgo.setMonth(quarterAgo.getMonth() - 3); + start = quarterAgo.toISOString().split('T')[0]; + break; + case 'custom': + // 自定义模式,不自动设置日期,让用户手动选择 + return; + } + + document.getElementById('tr-start-date').value = start; + document.getElementById('tr-end-date').value = end; trLoadAllData(); } diff --git a/data/futures_analysis.db b/data/futures_analysis.db index e04fd3157260fe557066ef3151980b6f70ca5302..669a23de630fe8c3bb005ae8cf2f3921ee026828 100644 GIT binary patch delta 1033 zcmaLT$5xY37=>YiA)zLST~MQ7Z?Rz)6a{Hnf(T(U%q!MXF527d0i*OOWi9SR+kwNq&`Vsw! z0mMLJ5HXk-LJTE_5yJ^LF@hLLj3P!8V~9**EHRE4PfQ>t5|fC@#1tZn$R?%|(})~m zIx&ODCGv=w#4KVqF^8B-%p>L#3y6ipB4RPIgjh-}BbE~@h?T@DVl}abSWB!U@`(aM z|FfRhKx`y75u1rZqKMc+6cZ)HR$?2mo!CL_Bs|0}VmGme*h}mqN{KRJKXHI4Ck{5j zXee++B}YZsGFx9L14fE16m}K=j`O=>dpcch&2)Q=d^6i)#D{7;hTmbj+|hp`S)9?@ z?B(`y)9p2K&1|o-QmBOigbn1evh@<8aAXt4#{EhN~Ii; zqjF3rRZ=a-<%FD+Q*v6)NR6BopVW$9&dGVXAQ#1yOHwEGa#^m(Rkdp> zn^1U9Y!#yj2PieIl(e+P6oe3^_92x|BJAUNQDYc!JPCHJ=>3?rMbGMf% zc4uyW^M1SYe*fQl@BeOKXgD+=e}fk(>mQo2Oj*AP5EKMIf{GA82qJ_K!Uz!r4IzpU zLx>~j2nK>cn1YZ%n2Jz?Z~?+JgbNXB5vC*5A$$noB7_+T7bDC>s7Gi(Xhirh!YqW@ z2u%oc5auGxLzs_n3Bsia3lN$SE<;#|U?NxuNrV(a8leTD6`>7b5kfmc24OM6

`^ zSc0$=A&ZbhxB_7r!j%XgMYsx~1L0!`A4lj!xEkRagf4_@5xNn25SAlchj2Z@4G1d` zRwCSpunOT52%kjw6vAqRH3&B$tVNLZxf$Wp2%katEW+my)*;-2a4W)kgbfI{A$%U; z3kY9C_!2@d!tDrOMz{mvD+pgjxD#O`!d(boL+C@e`v}jh}Bvn5+iHey?wPlj+9+ewil{xzRD$04i^xRRD@uzOh zE~zq;&ZJV+GTpAs%y>yg`QIgbV{GKwSGP{?BAKz$9v7ur#Y*YV(-E0I+kLp`;>_if zsH8JiYsO4@R7xhIC6)7==zM+pBGR@AeGh6nb!F|pMH~!LjP6r~ZvcBbi#+k>io0#Eb zGLufrG4_a+EQO`mtVDf{?yXqPxhZWu$u`r>br(j4$M4_y*7m(pt-(K#jeCd7QAuT5 zyeeI;r5Pcq(v*;v{BpP=W%n`HQB<+yZ8UQog+mA4+J01O_;=6w*MtSLU5;%giCn`KtJ$4y=R#tApF zRF*Wf$kUJ&uAA9vdGhkr<+`a%F5M`n#xJRMkhEkoGD*uLQtG;2iqwkwni{{R`rj9M z^Qqw;*^c&}!V^0R`?nSjjmiAuV~3k|DI5Rx?z(JX-anszaP|B$E0%K`Ew7c5iXv6& zH=iVYai-&Lc| zDMRW^O|8@1sS@ferEGVFeLm$`=cA{U4O7%6rFYkh=TZ& z_`P^Xyev+M6XLiyA`Z&g8xp(4xx6`OUzN`eI;9=7XNmrhnvhi#E*LK8F2r4kxe#?h zbD*;;;y|uDT!fC03qcnGE~r6OC_Vn5nvex3p3XSu6K{(@%2OSa=h-1Pi`xycR$hh0 zV!o&qK|>yI$nMB59g@e}IAq^r^iK&iin3eK<4*({6J>-vdKF_-F?tmfuVP|VOf(Vb z_lRkpk7OY{jI4<~bE0hObKTxgIzm-Uu!;#dOuEc!uEXuIzQ-rK`=lVTMx;f|c+D6y z28~;cCB`)UtbRh@lQ&14oigI=lo30w=TD!t=PAMk!-eh`OM;5OE>wLdb=n z3jr6@A_V<&)fHNCp%dH0_Yi-bxSx1{coXqAh&K~&Ax2^%zL$6_@qNVKB>ooh{lpIt zZzFz?c#!xZ;)jX16F)+{gLo%#o_H7WZsI+}j}kvdyqEaf#E%mX5r2pHyTnfr?<4*m z@qXfA;_nmxfcOCM4~c(7{A1#S#7`2B5dVbu5b7({