fix: merge B-157 and B-158 shell review blockers

Keep 1024-1439 broken/seal metrics in the detail panel, fold desktop admin actions into the ellipsis menu, and fit the 13-column limit pool at 1600 without hiding the data date.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
MS-01-Codex
2026-08-20 02:19:04 +08:00
co-authored by Cursor multica-agent
parent e778c883db
commit bb67085dd4
15 changed files with 334 additions and 158 deletions
+15 -4
View File
@@ -1,5 +1,16 @@
/* Canonical CSS owner: mentor. Historical layers consolidated 2026-08-02. */
body[data-active-view="mentorView"] .app-page-context {
max-width: 420px;
min-width: 180px;
}
body[data-active-view="mentorView"] .app-page-context span {
overflow: visible;
white-space: normal;
text-overflow: unset;
}
#mentorView.workspace-view {
--qp-bg-header: #F5F6F7;
--qp-bg-sidebar: #FFFFFF;
@@ -334,7 +345,7 @@
#mentorView .mentor-option {
position: relative;
height: 75px;
height: 62px;
margin: 0 10px 0 8px;
display: flex;
align-items: stretch;
@@ -1061,11 +1072,11 @@
#mentorView .mentor-send-button {
width: 71px;
height: 31px;
min-height: 31px;
height: 30px;
min-height: 30px;
padding: 0;
border: 0;
border-radius: 10px;
border-radius: 8px;
background: var(--qp-accent);
color: #FFFFFF;
font-size: 13px;
+33 -18
View File
@@ -892,24 +892,6 @@
line-height: 1.6;
}
.pool-streak-tag {
display: inline-block;
padding: 1.5px 7px;
border: 1px solid transparent;
border-radius: 5px;
font-size: 11px;
line-height: 1.6;
background: var(--r2-up-soft);
color: var(--r2-up);
}
.pool-state-tag.one-word {
background: rgb(255, 243, 217);
@@ -2225,6 +2207,39 @@
table-layout: auto;
}
#limitPool #limitTable {
min-width: 0;
width: 100%;
}
#limitPool.redesigned-pool-view .pool-table-card.tbl-wrap {
overflow-x: hidden;
overflow-y: auto;
}
#limitPool #limitTable.tbl thead th,
#limitPool #limitTable.tbl tbody td,
#limitPool .pool-table-card .data-table thead th,
#limitPool .pool-table-card .data-table tbody td {
padding: 0 8px;
}
#limitPool #limitTable .reason-column {
min-width: 4.5em;
overflow: visible;
white-space: nowrap;
}
#limitPool #limitTable .pool-reason-cell {
overflow: visible;
text-overflow: unset;
}
#brokenTable,
#downTable,
#limitTable,
+1 -1
View File
@@ -30,7 +30,7 @@ function renderLimitTable() {
<tr data-code="${escapeHtml(row.code)}">
<td class="row-number muted">${index + 1}</td>
<td><span class="stock-cell"><strong class="stock-name sname">${escapeHtml(row.name)}</strong><small class="stock-code scode">${escapeHtml(row.code)}</small></span></td>
<td class="number num"><span class="pool-streak-tag tag red">${streakLabel(row.streak)}</span></td>
<td class="number num"><span class="streak-pill${number(row.streak) >= 4 ? " high" : ""}">${streakLabel(row.streak)}</span></td>
<td class="number num up">${signed(row.change)}</td>
<td class="number num">${formatNumber(row.price, 2)}</td>
<td>${escapeHtml(row.sector || "其他")}</td>
+4 -18
View File
@@ -313,24 +313,10 @@
background: var(--table-header);
}
.sentiment-history-table tbody tr:nth-child(2n) td {
background: var(--surface-subtle);
}
.sentiment-history-table tbody tr:hover td {
background: var(--table-hover);
}
.sentiment-history-table tbody tr.latest-row td {
background: var(--table-selected);
font-weight: 650;
}
.sentiment-history-table tbody tr.latest-row td:first-child {
box-shadow: inset 3px 0 0 var(--action);
}
.sentiment-score-cell {
font-weight: 750;
}
@@ -383,9 +369,9 @@
}
.sentiment-phase-badge.phase-fermentation {
background: rgb(237, 246, 234);
background: var(--up-soft);
color: rgb(61, 113, 51);
color: var(--up);
}
.sentiment-phase-badge.phase-climax {
@@ -1640,9 +1626,9 @@
}
:root[data-theme="dark"] #sentimentCycleView .sentiment-phase-badge.phase-fermentation {
background: var(--market-down-soft);
background: var(--market-up-soft);
color: var(--market-down);
color: var(--market-up);
}
:root[data-theme="dark"] #sentimentCycleView .sentiment-phase-badge.phase-climax {
+1 -1
View File
@@ -42,7 +42,7 @@ function renderSentimentHistory() {
empty.hidden = rows.length > 0;
body.innerHTML = [...rows].reverse().map((row) => {
return `
<tr class="${row.trade_date === latest?.trade_date ? "latest-row" : ""}">
<tr>
<td class="sentiment-date-cell">${escapeHtml(displayCompactDate(row.trade_date))}</td>
<td class="number sentiment-score-cell ${sentimentScoreClass(row.score)}">${number(row.score)}</td>
<td><span class="sentiment-phase-badge ${sentimentPhaseClass(row.phase)}">${escapeHtml(row.phase)}</span></td>