|
@@ -45,6 +45,9 @@ export class KfOpportunityCard extends LitElement {
|
|
|
static styles = css`
|
|
static styles = css`
|
|
|
/* v11:高度只由内容决定(v11 10 的 padding 规则换掉了 face 内衬后,「100% + 栅格 stretch」会把三张卡拉成同一高、内容被纵向拉开) */
|
|
/* v11:高度只由内容决定(v11 10 的 padding 规则换掉了 face 内衬后,「100% + 栅格 stretch」会把三张卡拉成同一高、内容被纵向拉开) */
|
|
|
:host { display: block; min-width: 0; }
|
|
:host { display: block; min-width: 0; }
|
|
|
|
|
+ /* 卡内三段:标题区(top / title / one,定高内容)/ 指标区 / 决策 + 来源 + 操作。
|
|
|
|
|
+ 同一行的卡被拉成等高后,多出来的高度放进 .dec 与 .one 之间的弹性间隙(.nums 之后),
|
|
|
|
|
+ 而不是让来源行「沉底 + 中间一大块空」—— 两行标题 / 两行一句话本身就吃掉了高度差。 */
|
|
|
.wrap { height: 100%; display: flex; flex-direction: column; gap: 12px; }
|
|
.wrap { height: 100%; display: flex; flex-direction: column; gap: 12px; }
|
|
|
.top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
|
|
.top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
|
|
|
.top .right { margin-left: auto; display: flex; gap: 6px; }
|
|
.top .right { margin-left: auto; display: flex; gap: 6px; }
|
|
@@ -53,7 +56,7 @@ export class KfOpportunityCard extends LitElement {
|
|
|
word-break: keep-all; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-width: 0; }
|
|
word-break: keep-all; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-width: 0; }
|
|
|
/* 行盒修剪 + -webkit-box 行数截断会把行盒压成 ~1 行高(实测 11.6px);按两行高度收(2 × 1.35em) */
|
|
/* 行盒修剪 + -webkit-box 行数截断会把行盒压成 ~1 行高(实测 11.6px);按两行高度收(2 × 1.35em) */
|
|
|
.title { min-height: calc(2.7em + 0.25em); padding-block: 0.125em; }
|
|
.title { min-height: calc(2.7em + 0.25em); padding-block: 0.125em; }
|
|
|
- .one { margin: 0; font-size: 13px; line-height: 1.6; letter-spacing: var(--ls-cn-body); color: var(--kf-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
|
|
|
|
|
+ .one { margin: 0; font-size: 13px; line-height: 1.6; letter-spacing: var(--ls-cn-body); color: var(--kf-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.6em); }
|
|
|
.nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px 0 8px; border-top: 1px solid var(--kf-line); border-bottom: 1px solid var(--kf-line); }
|
|
.nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px 0 8px; border-top: 1px solid var(--kf-line); border-bottom: 1px solid var(--kf-line); }
|
|
|
.n { min-width: 0; }
|
|
.n { min-width: 0; }
|
|
|
/* 三个数值(1.2 单位分层):大数字 = Inter 数字 + 行盒修剪;单位 11px 灰,留 0.12em */
|
|
/* 三个数值(1.2 单位分层):大数字 = Inter 数字 + 行盒修剪;单位 11px 灰,留 0.12em */
|
|
@@ -63,9 +66,12 @@ export class KfOpportunityCard extends LitElement {
|
|
|
.n .l { font-size: 11px; color: var(--kf-ink-3); margin-top: 4px; letter-spacing: var(--ls-cn-small); }
|
|
.n .l { font-size: 11px; color: var(--kf-ink-3); margin-top: 4px; letter-spacing: var(--ls-cn-small); }
|
|
|
.n.score .v { color: var(--kf-accent-ink); }
|
|
.n.score .v { color: var(--kf-accent-ink); }
|
|
|
.n.score .v.none { color: var(--kf-ink-3); text-shadow: none; font-weight: 600; font-size: 16px; }
|
|
.n.score .v.none { color: var(--kf-ink-3); text-shadow: none; font-weight: 600; font-size: 16px; }
|
|
|
|
|
+ /* .dec 的 13px 字,行数不定(有决策 / 无决策两种文案)。多出来的高度交给它前面的弹性间隙,
|
|
|
|
|
+ .dec / .src / .acts 三行贴着底边走 —— 同一排卡的「分隔线 / 按钮 / 来源行」落同一 y。 */
|
|
|
.dec { font-size: 13px; color: var(--kf-ink-2); }
|
|
.dec { font-size: 13px; color: var(--kf-ink-2); }
|
|
|
|
|
+ .dec { margin-top: auto; }
|
|
|
.dec b { color: var(--kf-ink); font-weight: 600; }
|
|
.dec b { color: var(--kf-ink); font-weight: 600; }
|
|
|
- .src { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: 12px; border-top: 1px solid var(--kf-line); font-size: 11px; line-height: 20px; letter-spacing: var(--ls-cn-small); color: var(--kf-ink-3); margin-top: auto; font-variant-numeric: tabular-nums; }
|
|
|
|
|
|
|
+ .src { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: 12px; border-top: 1px solid var(--kf-line); font-size: 11px; line-height: 20px; letter-spacing: var(--ls-cn-small); color: var(--kf-ink-3); font-variant-numeric: tabular-nums; }
|
|
|
.src .who { color: var(--kf-ink); font-weight: 600; }
|
|
.src .who { color: var(--kf-ink); font-weight: 600; }
|
|
|
.src .agent { color: var(--kf-accent-ink); font-weight: 500; }
|
|
.src .agent { color: var(--kf-accent-ink); font-weight: 500; }
|
|
|
.src .miss { color: var(--kf-warn-text); }
|
|
.src .miss { color: var(--kf-warn-text); }
|