分栏不到 1200 宽(屏窄、或者浏览器放大了一档,右边的代码按 46 : 54 分看不全) 就自动收成两行的排法;1280 的屏不放大照旧是宽列表。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
df152f505d
commit
1a90a81868
1 file changed
+12
-19
@@ -61,10 +61,15 @@ const tone = useTone()
|
|||||||
const { isMobile, isDesktop } = useBreakpoints()
|
const { isMobile, isDesktop } = useBreakpoints()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 左栏收窄(底栏最左那个按钮):屏窄、或者浏览器放大了一档时右边的代码看不全,
|
* 左栏自动收窄:屏窄、或者浏览器放大了一档时,按 46 : 54 分右边的代码看不全
|
||||||
* 收窄后每条排成手机上那样的两行,什么都不丢。记在本机,下次打开还是收着的
|
* (九成五的提交最长一行 52 个字符,代码区要 ~650),就把列表收到 320、每条排成手机上
|
||||||
|
* 那样的两行,什么都不丢。1280 的屏不放大正好不收;收不收只看分栏的宽,和列表自己无关,不会来回跳
|
||||||
*/
|
*/
|
||||||
const narrowList = useStorage("oj2:submission-list-narrow", false)
|
const split = useTemplateRef<HTMLElement>("split")
|
||||||
|
const { width: splitWidth } = useElementSize(split)
|
||||||
|
const narrowList = computed(
|
||||||
|
() => isDesktop.value && splitWidth.value > 0 && splitWidth.value < 1200,
|
||||||
|
)
|
||||||
const twoLine = computed(() => isMobile.value || narrowList.value)
|
const twoLine = computed(() => isMobile.value || narrowList.value)
|
||||||
|
|
||||||
const inContest = computed(() => route.name === "contest submissions")
|
const inContest = computed(() => route.name === "contest submissions")
|
||||||
@@ -588,7 +593,7 @@ function dayBreak(index: number) {
|
|||||||
<div
|
<div
|
||||||
ref="pageRoot"
|
ref="pageRoot"
|
||||||
class="page"
|
class="page"
|
||||||
:class="{ contest: inContest, mobile: isMobile, 'narrow-list': isDesktop && narrowList }"
|
:class="{ contest: inContest, mobile: isMobile, 'narrow-list': narrowList }"
|
||||||
>
|
>
|
||||||
<!-- 筛选栏 -->
|
<!-- 筛选栏 -->
|
||||||
<div v-if="isDesktop" class="filters">
|
<div v-if="isDesktop" class="filters">
|
||||||
@@ -842,7 +847,7 @@ function dayBreak(index: number) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="split">
|
<div ref="split" class="split">
|
||||||
<!-- 左栏:列表 -->
|
<!-- 左栏:列表 -->
|
||||||
<section class="list">
|
<section class="list">
|
||||||
<div v-if="unknownProblems.length" class="unknown-bar">
|
<div v-if="unknownProblems.length" class="unknown-bar">
|
||||||
@@ -974,24 +979,12 @@ function dayBreak(index: number) {
|
|||||||
<div v-if="!loaded" class="empty"><n-spin size="small" /></div>
|
<div v-if="!loaded" class="empty"><n-spin size="small" /></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="list-foot">
|
<div class="list-foot">
|
||||||
<n-button
|
<span v-if="total && !narrowList" class="total">共 {{ total }} 条</span>
|
||||||
v-if="isDesktop"
|
|
||||||
size="small"
|
|
||||||
quaternary
|
|
||||||
:title="narrowList ? '列表放宽' : '列表收窄,右边的代码留宽一点'"
|
|
||||||
:aria-label="narrowList ? '列表放宽' : '列表收窄'"
|
|
||||||
@click="narrowList = !narrowList"
|
|
||||||
>
|
|
||||||
<template #icon>
|
|
||||||
<Icon :icon="narrowList ? 'ph:arrow-line-right' : 'ph:arrow-line-left'" />
|
|
||||||
</template>
|
|
||||||
</n-button>
|
|
||||||
<span v-if="total && !(isDesktop && narrowList)" class="total">共 {{ total }} 条</span>
|
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<Pagination
|
<Pagination
|
||||||
class="pager"
|
class="pager"
|
||||||
:total="total"
|
:total="total"
|
||||||
:simple="isDesktop && narrowList"
|
:simple="narrowList"
|
||||||
v-model:limit="query.limit"
|
v-model:limit="query.limit"
|
||||||
v-model:page="query.page"
|
v-model:page="query.page"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in new issue
Block a user