Files
ocean_project_manager/ui-design.html
T
2026-01-25 00:02:54 +08:00

763 lines
32 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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>