diff --git a/index.html b/index.html index 0a6e3e3..6306420 100644 --- a/index.html +++ b/index.html @@ -17,6 +17,14 @@ --neg-fg: #E11D48; /* 负向·玫瑰字 = rose-600 */ --page: #F8FAFC; /* 页面底色 = slate-50 */ --line: #F1F5F9; /* 卡片描边 = slate-100 */ + + /* 圆角三级阶梯:外层容器 / 内嵌块 / 胶囊标签 */ + --r-out: 16px; + --r-in: 10px; + --r-pill: 999px; + /* 统一描边与落影 */ + --hair: 1px solid rgba(0, 0, 0, .06); + --lift: 0 4px 20px -2px rgba(0, 0, 0, .05); } .no-scrollbar::-webkit-scrollbar { display: none; } @@ -31,14 +39,32 @@ /* 等宽数字:账单上下对齐,数值刷新时不左右跳动 */ .font-mono-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; } - /* 统一卡片:16px 圆角 + 极柔和弥散阴影 */ + /* 统一卡片:外层 16px 圆角 + 一根发丝描边 + 大范围弥散落影。 + 落影用大 blur、小 alpha,读起来是「浮起来」而不是「加了一道灰边」。 */ .card { - border-radius: 16px; + border-radius: var(--r-out); background: #ffffff; - border: 1px solid var(--line); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .05), 0 1px 2px -1px rgba(0, 0, 0, .05); + border: var(--hair); + box-shadow: var(--lift); } + /* 内嵌块(卡片里的小格子):圆角收一档到 10px,形成外大内小的嵌套层级 */ + .inset { border-radius: var(--r-in); } + + /* 金额柔色徽章:正向薄荷、负向玫瑰、零值中性。 + 把符号和数字一起裹进底色里,靠色相表意,不再靠一个生硬的加减号。 */ + .amt { + display: inline-flex; align-items: center; + padding: 2px 8px; + border-radius: var(--r-pill); + font-size: 11px; line-height: 1.45; font-weight: 700; + font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; + white-space: nowrap; + } + .amt-pos { background: var(--pos-bg); color: var(--pos-fg); } + .amt-neg { background: var(--neg-bg); color: var(--neg-fg); } + .amt-zero { background: #F1F5F9; color: #94A3B8; } + /* Lucide 线性图标:尺寸由自身 font-size 决定(用 Tailwind text-· 类控制), 避免和 Tailwind 的宽高工具类抢层叠顺序。 注意:注释里不能出现星号加斜杠,否则会提前闭合注释、把下面整条规则吃掉。 */ @@ -235,26 +261,26 @@
- 本月到账 - 时薪 {{ settings.rate }} 元/h + 本月到账 + 时薪 {{ settings.rate }} 元/h
-

{{ currentMonth + 1 }}月{{ settings.payDayB }}日

-

{{ prevLabel.month + 1 }}月下半月 {{ fmt(prevStats.h2) }}h + 奖惩 {{ signed(prevStats.adjustNet) }}

+

{{ currentMonth + 1 }}月{{ settings.payDayB }}日

+

{{ prevLabel.month + 1 }}月下半月 {{ fmt(prevStats.h2) }}h + 奖惩 {{ signed(prevStats.adjustNet) }}

- {{ money(payoutThisB) }} + {{ money(payoutThisB) }}
-

{{ currentMonth + 1 }}月{{ settings.payDayA }}日

-

本月上半月 {{ fmt(monthStats.h1) }}h · 纯工时

+

{{ currentMonth + 1 }}月{{ settings.payDayA }}日

+

本月上半月 {{ fmt(monthStats.h1) }}h · 纯工时

- {{ money(payoutThisA) }} + {{ money(payoutThisA) }}
- 本月现金流合计 + 本月现金流合计 {{ money(payoutThisB + payoutThisA) }}
@@ -262,60 +288,60 @@
-

本月工时

+

本月工时

-
-

上半月 1–{{ settings.cutoff }}日

-

{{ fmt(monthStats.h1) }}h

-

{{ money(monthStats.h1 * settings.rate) }}

+
+

上半月 1–{{ settings.cutoff }}日

+

{{ fmt(monthStats.h1) }}h

+

{{ money(monthStats.h1 * settings.rate) }}

-
-

下半月 {{ settings.cutoff + 1 }}日–月底

-

{{ fmt(monthStats.h2) }}h

-

{{ money(monthStats.h2 * settings.rate) }}

+
+

下半月 {{ settings.cutoff + 1 }}日–月底

+

{{ fmt(monthStats.h2) }}h

+

{{ money(monthStats.h2 * settings.rate) }}

-
出勤天数{{ monthStats.workDays }} 天(白 {{ monthStats.dayShifts }} / 夜 {{ monthStats.nightShifts }})
-
休息 / 请假{{ monthStats.restDays }} / {{ monthStats.leaveDays }} 天
-
工时收入合计{{ money(monthStats.basePay) }}
+
出勤天数{{ monthStats.workDays }} 天(白 {{ monthStats.dayShifts }} / 夜 {{ monthStats.nightShifts }})
+
休息 / 请假{{ monthStats.restDays }} / {{ monthStats.leaveDays }} 天
+
工时收入合计{{ money(monthStats.basePay) }}
-

本月奖惩

- 次月{{ settings.payDayB }}号结算 +

本月奖惩

+ 次月{{ settings.payDayB }}号结算
-

以下金额不计入当月工资

+

以下金额不计入当月工资

-
+
满勤奖{{ monthStats.workDays >= settings.fullDays ? '(' + fmt(monthStats.totalHours) + 'h×' + settings.fullBonusPerHour + ')' : '(未达' + settings.fullDays + '天)' }} - {{ monthStats.fullBonus > 0 ? '+' + money(monthStats.fullBonus) : '¥0' }} + {{ monthStats.fullBonus > 0 ? '+' + money(monthStats.fullBonus) : '¥0' }}
-
+
查获奖励({{ monthStats.foundCount }}件) - {{ monthStats.foundBonus > 0 ? '+' + money(monthStats.foundBonus) : '¥0' }} + {{ monthStats.foundBonus > 0 ? '+' + money(monthStats.foundBonus) : '¥0' }}
-
+
漏查处罚({{ monthStats.missedCount }}件) - {{ monthStats.missedPenalty > 0 ? '-' + money(monthStats.missedPenalty) : '¥0' }} + {{ monthStats.missedPenalty > 0 ? '-' + money(monthStats.missedPenalty) : '¥0' }}
-
+
其他扣款 - {{ monthStats.otherPenalties > 0 ? '-' + money(monthStats.otherPenalties) : '¥0' }} + {{ monthStats.otherPenalties > 0 ? '-' + money(monthStats.otherPenalties) : '¥0' }}
-
- 奖惩净额 - {{ signed(monthStats.adjustNet) }} +
+ 奖惩净额 + {{ signed(monthStats.adjustNet) }}

处罚明细

-
+
{{ d.day }}日 {{ d.reason }} - -{{ money(d.amount) }} + -{{ money(d.amount) }}
@@ -327,8 +353,8 @@ {{ money(payoutNextB) }}
-
本月下半月工时 {{ fmt(monthStats.h2) }}h{{ money(monthStats.h2 * settings.rate) }}
-
本月奖惩结算{{ signed(monthStats.adjustNet) }}
+
本月下半月工时 {{ fmt(monthStats.h2) }}h{{ money(monthStats.h2 * settings.rate) }}
+
本月奖惩结算{{ signed(monthStats.adjustNet) }}

处罚已超过下半月工时收入,实发按 ¥0 计,差额可能顺延