refactor: 合并 biz_support_unit/biz_execution_unit/biz_service_org 为 biz_org, 删除 2 张孤儿表, 改 biz_person.work_unit → org_id FK
主要改动: - SQL: biz_support_unit → biz_org, 加 org_type, 加 business_nature; 删 biz_execution_unit, biz_service_org - SQL: biz_project.support_unit_id/name + service_org_id/name → org_id/name/type - SQL: biz_meeting.support_unit_name → org_name - SQL: biz_person.work_unit → org_id (FK) - 后端: 新 BizOrg entity/mapper/service/controller - 后端: BizProject/BizMeeting 字段重命名 - 后端: 删 12 个 BizSupportUnit/BizExecutionUnit/BizServiceOrg Java 文件 - 后端: BizPersonImportVO.workUnit → orgName (导入时查 biz_org 取 org_id) - 后端: BizAuthController.registerExecutor 完整实现 (原 registerSupplier stub) - 前端: 新 admin/Orgs.vue + manager/Orgs.vue (原 SupportUnits) - 前端: RegisterExecutor.vue (原 RegisterSupplier, 单页 2 步) - 前端: sponsor/executor/manager 多个文件 workUnit → orgId/orgName 重命名 - 前端: 统一 supplier → executor, 业务命名 sponsor(赞助方) / executor(执行方=供应商) - 前端: 全工程 execution → executor (company type / role / person unit_type)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
角色: 赞助方
|
||||
父级: sponsor.html
|
||||
原型: 原型/首页_1.html
|
||||
内容: 5张统计卡 + 消息通知
|
||||
-->
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>首页 - 项目管理系统</title>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body { font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; color: #333; background: #fafafa; min-height: 100vh; }
|
||||
.content { padding: 24px 32px; }
|
||||
.page-title { font-size: 22px; font-weight: 600; color: #1a1a1a; margin-bottom: 20px; }
|
||||
|
||||
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 16px; }
|
||||
.stat-card { background: linear-gradient(135deg, #ffffff 0%, #fafbff 100%); border-radius: 8px; padding: 24px; border: 1px solid #f0f0f0; cursor: pointer; transition: all 0.2s; text-decoration: none; color: inherit; display: block; }
|
||||
.stat-card:hover { border-color: #1890ff; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(24,144,255,0.12); background: linear-gradient(135deg, #ffffff 0%, #e6f4ff 100%); }
|
||||
.stat-label { font-size: 14px; color: #8c8c8c; margin-bottom: 16px; display: flex; align-items: center; gap: 6px; }
|
||||
.stat-label::before { content: ''; width: 4px; height: 14px; background: #1890ff; border-radius: 2px; }
|
||||
.stat-value { font-size: 48px; font-weight: 700; background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; line-height: 1; margin-bottom: 8px; font-family: ui-monospace, "Courier New", monospace; }
|
||||
.stat-desc { font-size: 12px; color: #bfbfbf; }
|
||||
|
||||
.hint-text { font-size: 12px; color: #ff4d4f; margin: 12px 0; text-align: center; }
|
||||
|
||||
.section { background: #fff; border-radius: 8px; padding: 20px 24px; border: 1px solid #f0f0f0; margin-bottom: 16px; }
|
||||
.section-title { font-size: 15px; font-weight: 600; color: #1a1a1a; margin-bottom: 16px; padding-left: 10px; border-left: 3px solid #1890ff; display: flex; align-items: center; justify-content: space-between; }
|
||||
.more { font-size: 12px; color: #1890ff; text-decoration: none; font-weight: normal; }
|
||||
.more:hover { text-decoration: underline; }
|
||||
.notice-list { list-style: none; border-top: 1px solid #f0f0f0; }
|
||||
.notice-item { padding: 12px 0; border-bottom: 1px solid #f0f0f0; display: flex; align-items: center; gap: 12px; cursor: pointer; }
|
||||
.notice-item:last-child { border-bottom: none; }
|
||||
.notice-item:hover .title { color: #1890ff; }
|
||||
.notice-item .dot { width: 6px; height: 6px; border-radius: 50%; background: #1890ff; flex-shrink: 0; }
|
||||
.notice-item.read .dot { background: transparent; border: 1px solid #d9d9d9; }
|
||||
.notice-item .body { flex: 1; min-width: 0; }
|
||||
.notice-item .title { font-size: 13px; color: #1a1a1a; transition: color 0.2s; }
|
||||
.notice-item.read .title { color: #8c8c8c; }
|
||||
.notice-item .text { font-size: 12px; color: #595959; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; }
|
||||
.notice-item .time { font-size: 12px; color: #bfbfbf; flex-shrink: 0; }
|
||||
|
||||
@media (max-width: 768px) { .content { padding: 16px; } }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="content">
|
||||
<h1 class="page-title">首页</h1>
|
||||
|
||||
<div class="stats-grid">
|
||||
<a class="stat-card" href="projects.html"><div class="stat-label">项目总数量</div><div class="stat-value">26</div><div class="stat-desc">查看全部项目</div></a>
|
||||
<a class="stat-card" href="projects.html"><div class="stat-label">已结算数量</div><div class="stat-value">16</div><div class="stat-desc">查看已结算项目</div></a>
|
||||
<a class="stat-card" href="projects.html"><div class="stat-label">已结题数量</div><div class="stat-value">10</div><div class="stat-desc">查看已结题项目</div></a>
|
||||
<a class="stat-card" href="meeting-manage.html"><div class="stat-label">已执行会议</div><div class="stat-value">58</div><div class="stat-desc">查看已执行会议</div></a>
|
||||
<a class="stat-card" href="meeting-manage.html"><div class="stat-label">未执行会议</div><div class="stat-value">68</div><div class="stat-desc">查看未执行会议</div></a>
|
||||
</div>
|
||||
|
||||
<p class="hint-text">*点击数字,跳转到相应的列表页</p>
|
||||
|
||||
<section class="section">
|
||||
<h2 class="section-title">消息通知<a class="more" href="messages.html">更多 →</a></h2>
|
||||
<ul class="notice-list">
|
||||
<li class="notice-item"><div class="dot"></div><div class="body"><div class="title">结算审核通知</div><div class="text">ZH-2026-650 项目结算已通过审核,请查看。</div></div><span class="time">2小时前</span></li>
|
||||
<li class="notice-item"><div class="dot"></div><div class="body"><div class="title">项目确认通知</div><div class="text">整合医学学会项目评审会已确认,请尽快完成后续流程。</div></div><span class="time">昨天</span></li>
|
||||
<li class="notice-item read"><div class="dot"></div><div class="body"><div class="title">系统升级公告</div><div class="text">系统将于本周日 02:00-04:00 进行升级维护。</div></div><span class="time">2026-08-01</span></li>
|
||||
<li class="notice-item read"><div class="dot"></div><div class="body"><div class="title">新功能上线</div><div class="text">批量导入功能已上线,请前往人员管理页面体验。</div></div><span class="time">2026-07-28</span></li>
|
||||
</ul>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user