feat: 油价只展示92号、移动端倒数日改两列网格
- 油价格主行只保留 92# 价格,副行只留生效日期(95/98 下线) - 移动端倒数日从两端对齐改为 50%/50% 两列:标题左、天数右, 竖线与上方天气/金价、油价/股市列分界 167px 贯通,消除孤立单行突兀感 - 遵守窄屏环境条不截断规则(无 ellipsis),12 字标题上限内不溢出 - 组件测试 3 处油价断言同步
This commit is contained in:
@@ -195,8 +195,8 @@ describe('TodayEnvironmentStrip', () => {
|
|||||||
} })
|
} })
|
||||||
const oil = host.querySelector('.today-environment__oil')!
|
const oil = host.querySelector('.today-environment__oil')!
|
||||||
expect(oil.classList.contains('is-fresh')).toBe(true)
|
expect(oil.classList.contains('is-fresh')).toBe(true)
|
||||||
expect(oil.querySelector('strong')?.textContent).toBe('92# 8.58 · 95# 9.12')
|
expect(oil.querySelector('strong')?.textContent).toBe('92# 8.58')
|
||||||
expect(oil.querySelector('small')?.textContent).toBe('98# 11.12 · 09-24生效')
|
expect(oil.querySelector('small')?.textContent).toBe('09-24生效')
|
||||||
const ashare = host.querySelector('.today-environment__ashare')!
|
const ashare = host.querySelector('.today-environment__ashare')!
|
||||||
expect(ashare.querySelector('strong')?.textContent).toBe('上证 3888.37')
|
expect(ashare.querySelector('strong')?.textContent).toBe('上证 3888.37')
|
||||||
expect(ashare.querySelector('small')?.textContent).toBe('-1.22% · 09-24')
|
expect(ashare.querySelector('small')?.textContent).toBe('-1.22% · 09-24')
|
||||||
@@ -213,7 +213,7 @@ describe('TodayEnvironmentStrip', () => {
|
|||||||
expect(host.querySelector('.today-environment__ashare small')?.textContent).toBe('+0.35% · 09-25')
|
expect(host.querySelector('.today-environment__ashare small')?.textContent).toBe('+0.35% · 09-25')
|
||||||
const oil = host.querySelector('.today-environment__oil')!
|
const oil = host.querySelector('.today-environment__oil')!
|
||||||
expect(oil.classList.contains('is-stale')).toBe(true)
|
expect(oil.classList.contains('is-stale')).toBe(true)
|
||||||
expect(oil.querySelector('small')?.textContent).toBe('98# 11.12 · 09-24生效 · 缓存')
|
expect(oil.querySelector('small')?.textContent).toBe('09-24生效 · 缓存')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('renders unavailable oil and index sources as two-line placeholders', async () => {
|
it('renders unavailable oil and index sources as two-line placeholders', async () => {
|
||||||
|
|||||||
@@ -169,18 +169,15 @@ const oilPrimary = computed(() => {
|
|||||||
const oil = props.environment?.oil
|
const oil = props.environment?.oil
|
||||||
if (!oil) return null
|
if (!oil) return null
|
||||||
const gas92 = priceText(oil.gas_92)
|
const gas92 = priceText(oil.gas_92)
|
||||||
const gas95 = priceText(oil.gas_95)
|
return gas92 ? `92# ${gas92}` : null
|
||||||
return joinSegments([gas92 && `92# ${gas92}`, gas95 && `95# ${gas95}`]) || null
|
|
||||||
})
|
})
|
||||||
const oilMeta = computed(() => {
|
const oilMeta = computed(() => {
|
||||||
const oil = props.environment?.oil
|
const oil = props.environment?.oil
|
||||||
if (!oil || oilStatus.value === 'unavailable') return ''
|
if (!oil || oilStatus.value === 'unavailable') return ''
|
||||||
const gas98 = priceText(oil.gas_98)
|
|
||||||
const effective = typeof oil.effective_at === 'string'
|
const effective = typeof oil.effective_at === 'string'
|
||||||
? oil.effective_at.match(/^\d{4}-(\d{2}-\d{2})/)?.[1] ?? null
|
? oil.effective_at.match(/^\d{4}-(\d{2}-\d{2})/)?.[1] ?? null
|
||||||
: null
|
: null
|
||||||
return joinSegments([
|
return joinSegments([
|
||||||
gas98 && `98# ${gas98}`,
|
|
||||||
effective && `${effective}生效`,
|
effective && `${effective}生效`,
|
||||||
oilStatus.value === 'stale' ? '缓存' : null,
|
oilStatus.value === 'stale' ? '缓存' : null,
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -193,7 +193,9 @@ main.today-main .topbar{margin-bottom:var(--space-12)}
|
|||||||
.today-main .task-tail{padding-left:var(--space-12);font-size:12px}.today-main .habit-row{gap:0;row-gap:5px}.today-main .habit-main{min-width:0;padding:0}
|
.today-main .task-tail{padding-left:var(--space-12);font-size:12px}.today-main .habit-row{gap:0;row-gap:5px}.today-main .habit-main{min-width:0;padding:0}
|
||||||
.shell.today-active .unified-fab{box-shadow:0 8px 18px rgba(174,65,29,.22)}.shell.today-active .unified-fab>svg{width:30px;height:30px;stroke-width:1.5}
|
.shell.today-active .unified-fab{box-shadow:0 8px 18px rgba(174,65,29,.22)}.shell.today-active .unified-fab>svg{width:30px;height:30px;stroke-width:1.5}
|
||||||
@media(max-width:930px){main.today-main{padding-left:max(44px,calc((100% - 630px)/2));padding-right:max(44px,calc((100% - 630px)/2))}}
|
@media(max-width:930px){main.today-main{padding-left:max(44px,calc((100% - 630px)/2));padding-right:max(44px,calc((100% - 630px)/2))}}
|
||||||
@media(max-width:720.98px){main.today-main{padding-left:var(--space-28)!important;padding-right:var(--space-28)!important;padding-bottom:calc(78px + var(--safe-area-bottom))}.today-environment{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:21px auto;align-items:stretch;column-gap:0;row-gap:7px;padding-bottom:var(--space-10)}.today-environment__calendar{grid-column:1/-1;grid-row:1;height:21px!important;padding:0;justify-content:space-between;align-items:start;border-left:0}.today-environment__weather,.today-environment__gold{grid-row:2;height:clamp(38px,calc(25vw - 55.75px),42px);padding-top:var(--space-6);border-top:1px solid var(--border-hairline)}.today-environment__weather{grid-column:1;padding-left:0;padding-right:var(--space-10);border-left:0}.today-environment__gold{grid-column:2;padding-left:var(--space-12)}.today-environment__weather strong,.today-environment__gold strong,.today-environment__gold-primary{line-height:16px;font-size:13px}.today-environment__calendar strong{font-size:15px}.today-environment__oil,.today-environment__ashare{grid-row:3;height:clamp(38px,calc(25vw - 55.75px),42px);padding-top:var(--space-6);padding-bottom:0;border-top:1px solid var(--border-hairline)}.today-environment__oil{grid-column:1;padding-left:0;padding-right:var(--space-10);border-left:0!important}.today-environment__ashare{grid-column:2;padding-left:var(--space-12)}.today-environment__countdown{grid-column:1/-1;grid-row:4;height:21px;padding:0;flex-direction:row;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid var(--border-hairline)}.today-environment__countdown strong,.today-environment__oil strong,.today-environment__ashare strong{line-height:16px;font-size:13px}.today-environment__item small{line-height:13px}.today-heading{margin-top:var(--space-16)}.today-page-title{font-size:24px}.today-heading .today-remaining{margin-top:var(--space-4)}.today-main .task-row,.today-main .habit-row{height:58px;min-height:58px;max-height:58px}.today-context .completed-filter-pill{width:87px;height:44px;min-height:44px}.today-context .completed-filter-pill__track{width:30px;height:18px}.today-context .completed-filter-pill__thumb{width:14px;height:14px}.today-context .completed-filter-pill[aria-checked="true"] .completed-filter-pill__thumb{transform:translateX(12px)}}
|
@media(max-width:720.98px){main.today-main{padding-left:var(--space-28)!important;padding-right:var(--space-28)!important;padding-bottom:calc(78px + var(--safe-area-bottom))}.today-environment{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:21px auto;align-items:stretch;column-gap:0;row-gap:7px;padding-bottom:var(--space-10)}.today-environment__calendar{grid-column:1/-1;grid-row:1;height:21px!important;padding:0;justify-content:space-between;align-items:start;border-left:0}.today-environment__weather,.today-environment__gold{grid-row:2;height:clamp(38px,calc(25vw - 55.75px),42px);padding-top:var(--space-6);border-top:1px solid var(--border-hairline)}.today-environment__weather{grid-column:1;padding-left:0;padding-right:var(--space-10);border-left:0}.today-environment__gold{grid-column:2;padding-left:var(--space-12)}.today-environment__weather strong,.today-environment__gold strong,.today-environment__gold-primary{line-height:16px;font-size:13px}.today-environment__calendar strong{font-size:15px}.today-environment__oil,.today-environment__ashare{grid-row:3;height:clamp(38px,calc(25vw - 55.75px),42px);padding-top:var(--space-6);padding-bottom:0;border-top:1px solid var(--border-hairline)}.today-environment__oil{grid-column:1;padding-left:0;padding-right:var(--space-10);border-left:0!important}.today-environment__ashare{grid-column:2;padding-left:var(--space-12)}.today-environment__countdown{grid-column:1/-1;grid-row:4;height:21px;padding:0;flex-direction:row;align-items:stretch;justify-content:flex-start;gap:0;border-top:1px solid var(--border-hairline)}
|
||||||
|
.today-environment__countdown strong{width:50%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--space-18);white-space:nowrap;font-size:13px}
|
||||||
|
.today-environment__countdown small{width:50%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--space-18);border-left:1px solid var(--border-hairline);white-space:nowrap;font-size:13px;font-weight:600;color:var(--text-primary)}.today-environment__countdown strong,.today-environment__oil strong,.today-environment__ashare strong{line-height:16px;font-size:13px}.today-environment__item small{line-height:13px}.today-heading{margin-top:var(--space-16)}.today-page-title{font-size:24px}.today-heading .today-remaining{margin-top:var(--space-4)}.today-main .task-row,.today-main .habit-row{height:58px;min-height:58px;max-height:58px}.today-context .completed-filter-pill{width:87px;height:44px;min-height:44px}.today-context .completed-filter-pill__track{width:30px;height:18px}.today-context .completed-filter-pill__thumb{width:14px;height:14px}.today-context .completed-filter-pill[aria-checked="true"] .completed-filter-pill__thumb{transform:translateX(12px)}}
|
||||||
@media(max-width:380px){.today-environment__weather,.today-environment__gold,.today-environment__oil,.today-environment__ashare{height:40px;padding-top:var(--space-4);padding-bottom:var(--space-4)}}
|
@media(max-width:380px){.today-environment__weather,.today-environment__gold,.today-environment__oil,.today-environment__ashare{height:40px;padding-top:var(--space-4);padding-bottom:var(--space-4)}}
|
||||||
|
|
||||||
/* Approved Settings 01: continuous paper ledger. */
|
/* Approved Settings 01: continuous paper ledger. */
|
||||||
|
|||||||
Reference in New Issue
Block a user