246 lines
8.8 KiB
HTML
246 lines
8.8 KiB
HTML
<!doctype html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>喜报处理初始版</title>
|
|
<link rel="stylesheet" href="./styles.css?v=20260227.28" />
|
|
</head>
|
|
<body>
|
|
<div class="bg-shape bg-shape-a"></div>
|
|
<div class="bg-shape bg-shape-b"></div>
|
|
|
|
<main class="container">
|
|
<section class="card composer-card">
|
|
<div class="section-head">
|
|
<h2>输入接龙文本</h2>
|
|
<span class="muted">粘贴后可直接解析或生成</span>
|
|
</div>
|
|
<textarea id="raw-text" placeholder="#接龙
|
|
1、营江路张三30万一年期定期他行挖转
|
|
2、中心所李四50万保险揽收现金
|
|
3、营江路所王五20万5年交礼金
|
|
4、潇水南路保险2万"></textarea>
|
|
<div class="row">
|
|
<button id="paste-btn" class="secondary">粘贴文本</button>
|
|
<button id="generate-btn">生成</button>
|
|
<button id="parse-btn" class="secondary">仅解析预览</button>
|
|
<button id="force-clear-btn" class="danger">强制清理截图</button>
|
|
<button id="clear-btn" class="danger">清空历史</button>
|
|
</div>
|
|
<div id="progress-wrap" class="progress-wrap hidden">
|
|
<div class="progress-head">
|
|
<span id="progress-stage">等待开始</span>
|
|
<span id="progress-percent">0%</span>
|
|
</div>
|
|
<div class="progress-bar">
|
|
<div id="progress-fill" class="progress-fill"></div>
|
|
</div>
|
|
<div id="progress-detail" class="muted progress-detail"></div>
|
|
</div>
|
|
<div id="msg" class="msg"></div>
|
|
</section>
|
|
|
|
<section class="card metrics metrics-bar">
|
|
<div class="metric"><span>输入行</span><strong id="m-input">0</strong></div>
|
|
<div class="metric"><span>有效解析</span><strong id="m-parsed">0</strong></div>
|
|
<div class="metric"><span>新增</span><strong id="m-new">0</strong></div>
|
|
<div class="metric"><span>重复</span><strong id="m-dup">0</strong></div>
|
|
<div class="metric"><span>跳过</span><strong id="m-skip">0</strong></div>
|
|
</section>
|
|
|
|
<div class="workspace">
|
|
<section class="main-col">
|
|
<section class="card stage-card" id="preview-card">
|
|
<div class="section-head">
|
|
<h2>预览图</h2>
|
|
<span id="preview-note" class="muted">生成后显示</span>
|
|
</div>
|
|
<div id="preview-grid" class="preview-grid"></div>
|
|
</section>
|
|
|
|
<section class="card stage-card" id="new-card">
|
|
<div class="section-head">
|
|
<h2>新增记录</h2>
|
|
<span class="muted">自动识别后可手动修正或标识</span>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>网点</th>
|
|
<th>金额</th>
|
|
<th>类型</th>
|
|
<th>页面</th>
|
|
<th>状态</th>
|
|
<th>输出文件</th>
|
|
<th>标记</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="new-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
</section>
|
|
|
|
<aside class="side-col">
|
|
<details class="card fold-card" id="dup-panel">
|
|
<summary>重复记录(可展开)</summary>
|
|
<div class="fold-body">
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>网点</th>
|
|
<th>金额</th>
|
|
<th>类型</th>
|
|
<th>状态</th>
|
|
<th>原因</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="dup-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</details>
|
|
|
|
<details class="card fold-card" id="skip-panel">
|
|
<summary>跳过明细(可展开)</summary>
|
|
<div class="fold-body">
|
|
<ul id="skip-list" class="skip-list"></ul>
|
|
</div>
|
|
</details>
|
|
|
|
<details class="card fold-card" id="advanced-panel">
|
|
<summary>高级设置(可选)</summary>
|
|
<div class="fold-body">
|
|
<div class="form-grid">
|
|
<label>
|
|
模板文件路径(可留空走配置)
|
|
<input id="template-file" placeholder="/home/yuyx/黄金三十天喜报模版(余额、保险、理财)(1).pptx" />
|
|
</label>
|
|
<label>
|
|
输出目录(可留空走配置)
|
|
<input id="output-dir" placeholder="/home/yuyx/xibao_web_initial/output" />
|
|
</label>
|
|
</div>
|
|
<div id="config-summary" class="muted config-summary">加载中...</div>
|
|
</div>
|
|
</details>
|
|
|
|
<details class="card fold-card" id="history-panel">
|
|
<summary>历史记录(刷新后仍可见)</summary>
|
|
<div class="fold-body">
|
|
<div class="section-head">
|
|
<span id="history-note" class="muted">加载中...</span>
|
|
<button id="history-refresh-btn" class="secondary">刷新历史</button>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>时间</th>
|
|
<th>网点</th>
|
|
<th>金额</th>
|
|
<th>类型</th>
|
|
<th>状态</th>
|
|
<th>原始行</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="history-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</details>
|
|
|
|
<details class="card fold-card" id="issue-panel">
|
|
<summary>已标识错误(可编辑/删除)</summary>
|
|
<div class="fold-body">
|
|
<div class="section-head">
|
|
<span id="issue-note" class="muted">加载中...</span>
|
|
<button id="issue-refresh-btn" class="secondary">刷新标识</button>
|
|
</div>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>时间</th>
|
|
<th>类型</th>
|
|
<th>原始行</th>
|
|
<th>备注</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="issue-body"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</details>
|
|
</aside>
|
|
</div>
|
|
</main>
|
|
|
|
<div id="insurance-modal" class="modal hidden">
|
|
<div class="modal-card">
|
|
<h3>检测到保险记录</h3>
|
|
<p>有保险条目未写明年限,请逐条选择期交年限:</p>
|
|
<div id="insurance-items" class="insurance-list"></div>
|
|
<div class="row">
|
|
<button id="insurance-submit">确认并继续生成</button>
|
|
<button id="insurance-cancel" class="danger">取消</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="correction-modal" class="modal hidden">
|
|
<div class="modal-card correction-card">
|
|
<h3>手动修正并重生图</h3>
|
|
<p>保存后只重生当前这条,并可选择记住规则。</p>
|
|
<div class="form-grid">
|
|
<label>
|
|
网点
|
|
<input id="corr-branch" />
|
|
</label>
|
|
<label>
|
|
金额(万)
|
|
<input id="corr-amount" />
|
|
</label>
|
|
<label>
|
|
类型
|
|
<input id="corr-type" />
|
|
</label>
|
|
<label>
|
|
页面
|
|
<input id="corr-page" placeholder="page_2" />
|
|
</label>
|
|
<label>
|
|
状态
|
|
<input id="corr-status" />
|
|
</label>
|
|
<label>
|
|
备注(可选)
|
|
<input id="corr-note" />
|
|
</label>
|
|
</div>
|
|
<label class="check-line">
|
|
<input id="corr-remember" type="checkbox" />
|
|
记住规则(下次自动套用)
|
|
</label>
|
|
<label id="corr-keyword-wrap" class="hidden">
|
|
规则关键词(可留空自动推断)
|
|
<input id="corr-keyword" placeholder="如:揽收他行" />
|
|
</label>
|
|
<div class="row">
|
|
<button id="corr-submit">保存并生成</button>
|
|
<button id="corr-cancel" class="danger">取消</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="./app.js?v=20260227.28"></script>
|
|
</body>
|
|
</html>
|