基于 skill-template 脚手架开发,包含: - payroll_config(费率配置,可编辑)+ payslip_snapshots(解析历史,只读)2 张业务表 - 全国默认 + 北上广 4 套费率(社保/公积金/个税起征点/7 级税率表) - 5 个业务 Action:calculate-payslip-simple / calculate-payslip-full / explain-term / view-config / edit-config - 个税累计预扣法计算,支持多月历史累加 - 20 个薪资名词库(社保/公积金/个税/全勤/加班费等) - 完整市场文档(README/TUTORIAL/DEMO/CHANGELOG) - 296 测试全部通过
120 lines
2.7 KiB
HTML
120 lines
2.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>{{TITLE}}</title>
|
||
<style>
|
||
:root {
|
||
--bg: #f6f8fb;
|
||
--ink: #0f172a;
|
||
--muted: #64748b;
|
||
--card: #ffffff;
|
||
--line: #e2e8f0;
|
||
--page-pad-x: clamp(14px, 2.5vw, 24px);
|
||
--page-pad-y: clamp(12px, 2vw, 20px);
|
||
}
|
||
* { box-sizing: border-box; }
|
||
html {
|
||
width: 100%;
|
||
height: 100%;
|
||
margin: 0;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
}
|
||
body {
|
||
width: 100%;
|
||
min-height: 100%;
|
||
margin: 0;
|
||
overflow-x: hidden;
|
||
font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
|
||
background: var(--bg);
|
||
color: var(--ink);
|
||
line-height: 1.5;
|
||
}
|
||
header {
|
||
padding: var(--page-pad-y) var(--page-pad-x) 8px;
|
||
background: var(--card);
|
||
border-bottom: 1px solid var(--line);
|
||
}
|
||
header h1 {
|
||
margin: 0 0 6px;
|
||
font-size: 22px;
|
||
font-weight: 700;
|
||
}
|
||
header p {
|
||
margin: 0;
|
||
color: var(--muted);
|
||
font-size: 13px;
|
||
}
|
||
main {
|
||
width: 100%;
|
||
min-width: 0;
|
||
padding: var(--page-pad-y) var(--page-pad-x) 28px;
|
||
}
|
||
.section {
|
||
margin-bottom: 18px;
|
||
}
|
||
.section h2 {
|
||
margin: 0 0 8px;
|
||
font-size: 13px;
|
||
font-weight: 650;
|
||
color: var(--muted);
|
||
}
|
||
.meta {
|
||
margin: 0 0 10px;
|
||
color: var(--muted);
|
||
font-size: 12px;
|
||
}
|
||
.card {
|
||
background: var(--card);
|
||
border: 1px solid var(--line);
|
||
border-radius: 10px;
|
||
padding: 16px 18px;
|
||
line-height: 1.6;
|
||
font-size: 14px;
|
||
}
|
||
table {
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
table-layout: fixed;
|
||
background: var(--card);
|
||
border: 1px solid var(--line);
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
font-size: 13px;
|
||
}
|
||
th, td {
|
||
padding: 8px 10px;
|
||
border-bottom: 1px solid var(--line);
|
||
text-align: left;
|
||
vertical-align: top;
|
||
word-break: break-word;
|
||
overflow-wrap: anywhere;
|
||
}
|
||
th {
|
||
background: #f8fafc;
|
||
font-weight: 600;
|
||
color: var(--muted);
|
||
font-size: 12px;
|
||
}
|
||
tr:last-child td { border-bottom: none; }
|
||
/*
|
||
宿主数据管理在 iframe 内预览本页:应横向铺满可用宽度,仅纵向滚动。
|
||
复杂看板可在 {{BODY}} 内使用 .section / table;布局底线见 references/ACTIONS.md「宿主预览布局」。
|
||
*/
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>{{TITLE}}</h1>
|
||
<p>报告生成于 · {{GENERATED_AT}}</p>
|
||
</header>
|
||
<main>
|
||
<div class="card">
|
||
{{BODY}}
|
||
</div>
|
||
</main>
|
||
</body>
|
||
</html>
|