save code

This commit is contained in:
xsl
2026-01-25 00:02:54 +08:00
commit f33a902c95
4 changed files with 2561 additions and 0 deletions
+762
View File
@@ -0,0 +1,762 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>项目信息管理系统 - UI设计图</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: #f0f2f5;
padding: 20px;
}
.design-container {
max-width: 1400px;
margin: 0 auto;
}
.design-title {
text-align: center;
margin-bottom: 40px;
color: #333;
}
.section-title {
font-size: 24px;
color: #1890ff;
border-bottom: 3px solid #1890ff;
padding-bottom: 10px;
margin: 40px 0 20px 0;
}
.mockup {
background: white;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
margin-bottom: 30px;
overflow: hidden;
}
.mockup-header {
background: #001529;
color: white;
padding: 16px 24px;
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
font-size: 18px;
font-weight: 600;
}
.logo-icon {
width: 24px;
height: 24px;
background: #1890ff;
border-radius: 4px;
}
.user-nav {
display: flex;
align-items: center;
gap: 15px;
}
.avatar {
width: 32px;
height: 32px;
background: #1890ff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
}
.layout-grid {
display: grid;
grid-template-columns: 256px 1fr;
min-height: 600px;
}
.sidebar {
background: #fff;
border-right: 1px solid #e8e8e8;
padding: 20px 0;
}
.menu-item {
padding: 12px 24px;
display: flex;
align-items: center;
gap: 10px;
color: #666;
cursor: pointer;
border-left: 3px solid transparent;
}
.menu-item:hover {
background: #e6f7ff;
color: #1890ff;
}
.menu-item.active {
background: #e6f7ff;
color: #1890ff;
border-left-color: #1890ff;
}
.content {
padding: 24px;
background: #f0f2f5;
}
.card {
background: white;
border-radius: 8px;
padding: 24px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
margin-bottom: 24px;
}
.card-title {
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #333;
}
.stat-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-bottom: 24px;
}
.stat-card {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.stat-label {
font-size: 14px;
color: #666;
margin-bottom: 8px;
}
.stat-value {
font-size: 32px;
font-weight: 600;
color: #1890ff;
}
.stat-icon {
float: right;
font-size: 24px;
color: #1890ff;
opacity: 0.3;
}
table {
width: 100%;
border-collapse: collapse;
}
th {
background: #fafafa;
padding: 12px 16px;
text-align: left;
font-weight: 600;
color: #333;
border-bottom: 1px solid #e8e8e8;
}
td {
padding: 12px 16px;
border-bottom: 1px solid #e8e8e8;
color: #666;
}
.tag {
display: inline-block;
padding: 2px 8px;
border-radius: 2px;
font-size: 12px;
}
.tag-blue { background: #e6f7ff; color: #1890ff; }
.tag-green { background: #f6ffed; color: #52c41a; }
.tag-orange { background: #fff7e6; color: #fa8c16; }
.tag-red { background: #fff1f0; color: #f5222d; }
.tag-gray { background: #f5f5f5; color: #999; }
.btn {
padding: 6px 16px;
border-radius: 4px;
border: none;
cursor: pointer;
font-size: 14px;
}
.btn-primary {
background: #1890ff;
color: white;
}
.btn-default {
background: white;
border: 1px solid #d9d9d9;
color: #666;
}
.btn-link {
background: none;
color: #1890ff;
padding: 0 8px;
}
.btn-danger {
background: none;
color: #ff4d4f;
padding: 0 8px;
}
.toolbar {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}
.toolbar-left {
display: flex;
gap: 12px;
}
.input {
padding: 6px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
width: 200px;
}
.select {
padding: 6px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
width: 120px;
}
.form-group {
margin-bottom: 20px;
}
.form-label {
display: block;
margin-bottom: 8px;
color: #333;
font-weight: 500;
}
.form-input {
width: 100%;
padding: 8px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.login-container {
display: flex;
justify-content: center;
align-items: center;
min-height: 600px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.login-box {
background: white;
padding: 40px;
border-radius: 8px;
width: 400px;
box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.login-title {
text-align: center;
font-size: 24px;
margin-bottom: 30px;
color: #333;
}
.login-btn {
width: 100%;
padding: 12px;
background: #1890ff;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
margin-top: 20px;
cursor: pointer;
}
.design-note {
background: #fffbe6;
border-left: 4px solid #faad14;
padding: 16px;
margin: 20px 0;
color: #666;
}
</style>
</head>
<body>
<div class="design-container">
<h1 class="design-title">📐 项目信息管理系统 - UI设计图</h1>
<!-- 登录页 -->
<h2 class="section-title">1. 登录页面</h2>
<div class="mockup">
<div class="login-container">
<div class="login-box">
<div class="login-title">项目信息管理系统</div>
<div class="form-group">
<label class="form-label">用户名</label>
<input type="text" class="form-input" placeholder="请输入用户名">
</div>
<div class="form-group">
<label class="form-label">密码</label>
<input type="password" class="form-input" placeholder="请输入密码">
</div>
<button class="login-btn">登录</button>
<div style="text-align: center; margin-top: 20px; color: #999; font-size: 12px;">
© 2026 项目信息管理系统
</div>
</div>
</div>
</div>
<!-- 仪表盘 -->
<h2 class="section-title">2. 仪表盘页面</h2>
<div class="mockup">
<div class="mockup-header">
<div class="logo">
<div class="logo-icon"></div>
<span>项目信息管理系统</span>
</div>
<div class="user-nav">
<span>管理员</span>
<div class="avatar"></div>
<button class="btn btn-link" style="color: white;">退出</button>
</div>
</div>
<div class="layout-grid">
<div class="sidebar">
<div class="menu-item active">
<span>📊</span> 仪表盘
</div>
<div class="menu-item">
<span>📄</span> 项目管理
</div>
<div class="menu-item">
<span>👥</span> 用户管理
</div>
</div>
<div class="content">
<div class="stat-grid">
<div class="stat-card">
<div class="stat-icon">📊</div>
<div class="stat-label">总项目数</div>
<div class="stat-value">15</div>
</div>
<div class="stat-card">
<div class="stat-icon">🔄</div>
<div class="stat-label">进行中</div>
<div class="stat-value" style="color: #52c41a;">8</div>
</div>
<div class="stat-card">
<div class="stat-icon"></div>
<div class="stat-label">已完成</div>
<div class="stat-value" style="color: #1890ff;">5</div>
</div>
<div class="stat-card">
<div class="stat-icon">💰</div>
<div class="stat-label">本月预算</div>
<div class="stat-value">¥50万</div>
</div>
</div>
<div class="card">
<div class="card-title">最近项目</div>
<table>
<thead>
<tr>
<th>项目编号</th>
<th>项目名称</th>
<th>预算</th>
<th>状态</th>
<th>创建人</th>
</tr>
</thead>
<tbody>
<tr>
<td>PRJ2026001</td>
<td>某公司官网开发</td>
<td>¥50,000</td>
<td><span class="tag tag-green">进行中</span></td>
<td>张三</td>
</tr>
<tr>
<td>PRJ2026002</td>
<td>电商平台开发</td>
<td>¥100,000</td>
<td><span class="tag tag-blue">新建</span></td>
<td>李四</td>
</tr>
<tr>
<td>PRJ2026003</td>
<td>移动APP开发</td>
<td>¥150,000</td>
<td><span class="tag tag-gray">已完成</span></td>
<td>王五</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 项目管理 -->
<h2 class="section-title">3. 项目管理页面</h2>
<div class="mockup">
<div class="mockup-header">
<div class="logo">
<div class="logo-icon"></div>
<span>项目信息管理系统</span>
</div>
<div class="user-nav">
<span>管理员</span>
<div class="avatar"></div>
<button class="btn btn-link" style="color: white;">退出</button>
</div>
</div>
<div class="layout-grid">
<div class="sidebar">
<div class="menu-item">
<span>📊</span> 仪表盘
</div>
<div class="menu-item active">
<span>📄</span> 项目管理
</div>
<div class="menu-item">
<span>👥</span> 用户管理
</div>
</div>
<div class="content">
<div class="card">
<div class="card-title">项目管理</div>
<div class="toolbar">
<div class="toolbar-left">
<input type="text" class="input" placeholder="搜索项目...">
<select class="select">
<option>所有状态</option>
<option>新建</option>
<option>进行中</option>
<option>已完成</option>
</select>
<select class="select">
<option>所有部门</option>
<option>市场部</option>
<option>技术部</option>
</select>
</div>
<button class="btn btn-primary">+ 新建项目</button>
</div>
<table>
<thead>
<tr>
<th>项目编号</th>
<th>合同编号</th>
<th>项目名称</th>
<th>预算</th>
<th>已付款</th>
<th>状态</th>
<th>部门</th>
<th>创建人</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>PRJ2026001</td>
<td>CT2026001</td>
<td>某公司官网开发</td>
<td>¥50,000</td>
<td>¥25,000</td>
<td><span class="tag tag-green">进行中</span></td>
<td>市场部</td>
<td>张三</td>
<td>
<button class="btn btn-link">查看</button>
<button class="btn btn-link">编辑</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>PRJ2026002</td>
<td>CT2026002</td>
<td>电商平台开发</td>
<td>¥100,000</td>
<td>¥50,000</td>
<td><span class="tag tag-blue">新建</span></td>
<td>市场部</td>
<td>李四</td>
<td>
<button class="btn btn-link">查看</button>
<button class="btn btn-link">编辑</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>PRJ2026003</td>
<td>CT2026003</td>
<td>移动APP开发</td>
<td>¥150,000</td>
<td>¥150,000</td>
<td><span class="tag tag-gray">已完成</span></td>
<td>技术部</td>
<td>王五</td>
<td>
<button class="btn btn-link">查看</button>
<button class="btn btn-link">编辑</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>PRJ2026004</td>
<td>CT2026004</td>
<td>数据分析系统</td>
<td>¥80,000</td>
<td>¥30,000</td>
<td><span class="tag tag-green">进行中</span></td>
<td>市场部</td>
<td>张三</td>
<td>
<button class="btn btn-link">查看</button>
<button class="btn btn-link">编辑</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>PRJ2026005</td>
<td>CT2026005</td>
<td>企业OA系统</td>
<td>¥200,000</td>
<td>¥0</td>
<td><span class="tag tag-orange">已暂停</span></td>
<td>技术部</td>
<td>赵六</td>
<td>
<button class="btn btn-link">查看</button>
<button class="btn btn-link">编辑</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 用户管理 -->
<h2 class="section-title">4. 用户管理页面(仅管理员可见)</h2>
<div class="mockup">
<div class="mockup-header">
<div class="logo">
<div class="logo-icon"></div>
<span>项目信息管理系统</span>
</div>
<div class="user-nav">
<span>管理员</span>
<div class="avatar"></div>
<button class="btn btn-link" style="color: white;">退出</button>
</div>
</div>
<div class="layout-grid">
<div class="sidebar">
<div class="menu-item">
<span>📊</span> 仪表盘
</div>
<div class="menu-item">
<span>📄</span> 项目管理
</div>
<div class="menu-item active">
<span>👥</span> 用户管理
</div>
</div>
<div class="content">
<div class="card">
<div class="card-title">用户管理</div>
<div class="toolbar">
<div class="toolbar-left">
<input type="text" class="input" placeholder="搜索用户...">
<select class="select">
<option>所有角色</option>
<option>管理员</option>
<option>市场部</option>
<option>其他部门</option>
</select>
</div>
<button class="btn btn-primary">+ 新建用户</button>
</div>
<table>
<thead>
<tr>
<th>用户名</th>
<th>真实姓名</th>
<th>部门</th>
<th>角色</th>
<th>邮箱</th>
<th>状态</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>admin</td>
<td>管理员</td>
<td>管理部</td>
<td><span class="tag tag-red">管理员</span></td>
<td>admin@example.com</td>
<td><span class="tag tag-green">正常</span></td>
<td>2026-01-10</td>
<td>
<button class="btn btn-link">编辑</button>
<button class="btn btn-link">重置密码</button>
<button class="btn btn-link">删除</button>
</td>
</tr>
<tr>
<td>zhangsan</td>
<td>张三</td>
<td>市场部</td>
<td><span class="tag tag-blue">市场部</span></td>
<td>zhangsan@example.com</td>
<td><span class="tag tag-green">正常</span></td>
<td>2026-01-15</td>
<td>
<button class="btn btn-link">编辑</button>
<button class="btn btn-link">重置密码</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>lisi</td>
<td>李四</td>
<td>市场部</td>
<td><span class="tag tag-blue">市场部</span></td>
<td>lisi@example.com</td>
<td><span class="tag tag-green">正常</span></td>
<td>2026-01-16</td>
<td>
<button class="btn btn-link">编辑</button>
<button class="btn btn-link">重置密码</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>wangwu</td>
<td>王五</td>
<td>技术部</td>
<td><span class="tag tag-blue">其他部门</span></td>
<td>wangwu@example.com</td>
<td><span class="tag tag-green">正常</span></td>
<td>2026-01-17</td>
<td>
<button class="btn btn-link">编辑</button>
<button class="btn btn-link">重置密码</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
<tr>
<td>zhaoliu</td>
<td>赵六</td>
<td>技术部</td>
<td><span class="tag tag-blue">其他部门</span></td>
<td>zhaoliu@example.com</td>
<td><span class="tag tag-gray">禁用</span></td>
<td>2026-01-18</td>
<td>
<button class="btn btn-link">编辑</button>
<button class="btn btn-link">重置密码</button>
<button class="btn btn-danger">删除</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 新建/编辑项目表单 -->
<h2 class="section-title">5. 新建/编辑项目表单</h2>
<div class="mockup">
<div class="content">
<div class="card">
<div class="card-title">新建项目</div>
<div class="form-row">
<div class="form-group">
<label class="form-label">项目编号 *</label>
<input type="text" class="form-input" placeholder="如:PRJ2026001">
</div>
<div class="form-group">
<label class="form-label">合同编号 *</label>
<input type="text" class="form-input" placeholder="如:CT2026001">
</div>
</div>
<div class="form-group">
<label class="form-label">项目名称 *</label>
<input type="text" class="form-input" placeholder="请输入项目名称">
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label">预算金额 *</label>
<input type="text" class="form-input" placeholder="请输入预算金额">
</div>
<div class="form-group">
<label class="form-label">已付款金额</label>
<input type="text" class="form-input" placeholder="请输入已付款金额">
</div>
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label">所属部门 *</label>
<select class="form-input">
<option>市场部</option>
<option>技术部</option>
<option>财务部</option>
</select>
</div>
<div class="form-group">
<label class="form-label">项目状态 *</label>
<select class="form-input">
<option>新建</option>
<option>进行中</option>
<option>已完成</option>
<option>已暂停</option>
<option>已取消</option>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label">开始日期</label>
<input type="date" class="form-input">
</div>
<div class="form-group">
<label class="form-label">结束日期</label>
<input type="date" class="form-input">
</div>
</div>
<div class="form-group">
<label class="form-label">项目描述</label>
<textarea class="form-input" rows="4" placeholder="请输入项目描述"></textarea>
</div>
<div style="display: flex; gap: 12px; justify-content: flex-end;">
<button class="btn btn-default">取消</button>
<button class="btn btn-primary">保存</button>
</div>
</div>
</div>
</div>
<div class="design-note">
<strong>💡 设计说明:</strong>
<ul style="margin-top: 10px; padding-left: 20px;">
<li>整体采用Ant Design风格,简洁专业</li>
<li>深色顶部导航栏(#001529),浅色侧边栏(白色),内容区使用浅灰背景(#f0f2f5)</li>
<li>状态标签使用不同颜色区分:新建-蓝色、进行中-绿色、已完成-灰色、已暂停-橙色、已取消-红色</li>
<li>按钮样式:主操作用蓝色(#1890ff),删除操作用红色</li>
<li>表格支持搜索和筛选功能</li>
<li>所有页面共用相同的布局结构(Header + Sidebar + Content</li>
</ul>
</div>
</div>
</body>
</html>