283 lines
13 KiB
HTML
283 lines
13 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>项目查询 - OA系统</title>
|
|
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body {
|
|
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
|
|
background: #f0f2f5;
|
|
overflow: hidden;
|
|
}
|
|
.layout-container {
|
|
height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.navbar {
|
|
height: 50px;
|
|
background: #fff;
|
|
border-bottom: 1px solid #e6e6e6;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 20px;
|
|
box-shadow: 0 1px 4px rgba(0,21,41,.08);
|
|
}
|
|
.navbar-left {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.logo {
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
color: #409EFF;
|
|
}
|
|
.nav-menu { display: flex; gap: 8px; }
|
|
.nav-item { padding: 8px 16px; cursor: pointer; border-radius: 4px; transition: background 0.3s; }
|
|
.nav-item:hover {
|
|
background: #ecf5ff;
|
|
color: #409EFF;
|
|
}
|
|
.nav-item.active { background: #409EFF; }
|
|
.navbar-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20px;
|
|
}
|
|
.main-container {
|
|
flex: 1;
|
|
display: flex;
|
|
overflow: hidden;
|
|
}
|
|
.app-main {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
background: #f0f2f5;
|
|
}
|
|
.sidebar {
|
|
width: 210px;
|
|
background: #fff;
|
|
border-right: 1px solid #e6e6e6;
|
|
overflow-y: auto;
|
|
}
|
|
.el-menu {
|
|
border-right: none;
|
|
}
|
|
.menu-item { padding: 12px 24px; cursor: pointer; transition: background 0.3s; }
|
|
.menu-item:hover {
|
|
background: #ecf5ff;
|
|
color: #409EFF;
|
|
}
|
|
.menu-item.active {
|
|
background: #409EFF;
|
|
color: #fff;
|
|
}
|
|
.content {
|
|
flex: 1;
|
|
padding: 20px;
|
|
overflow-y: auto;
|
|
background: #fff;
|
|
margin: 10px;
|
|
border-radius: 4px;
|
|
}
|
|
.page-header { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; }
|
|
.page-title { font-size: 20px; font-weight: 500; color: #333; }
|
|
.search-form { background: #fafafa; padding: 16px; border-radius: 4px; margin-bottom: 16px; }
|
|
.form-row { display: flex; gap: 16px; margin-bottom: 12px; }
|
|
.form-item { flex: 1; }
|
|
.form-label { display: block; margin-bottom: 4px; color: #333; font-size: 14px; }
|
|
.form-input, .form-select { width: 100%; padding: 6px 12px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; }
|
|
.btn { padding: 6px 16px; border: none; border-radius: 4px; font-size: 14px; cursor: pointer; }
|
|
.btn-primary { background: #409EFF; color: white; }
|
|
.btn-default { background: white; color: #333; border: 1px solid #d9d9d9; }
|
|
.table-container { background: white; border-radius: 4px; }
|
|
table { width: 100%; border-collapse: collapse; }
|
|
th, td { padding: 12px; text-align: left; border-bottom: 1px solid #f0f0f0; }
|
|
th { background: #fafafa; font-weight: 500; color: #333; }
|
|
.status-badge { padding: 2px 8px; border-radius: 4px; font-size: 12px; }
|
|
.status-initiated { background: #e6f7ff; color: #409EFF; }
|
|
.status-bidding { background: #fff7e6; color: #d46b08; }
|
|
.status-contract { background: #f6ffed; color: #52c41a; }
|
|
.status-started { background: #f0f5ff; color: #2f54eb; }
|
|
.action-link { color: #409EFF; cursor: pointer; margin-right: 12px; }
|
|
.pagination { margin-top: 16px; text-align: right; }
|
|
</style>
|
|
<!-- Vue.js -->
|
|
<script src="https://unpkg.com/vue@2/dist/vue.js"></script>
|
|
<!-- Element UI JS -->
|
|
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
|
|
<div class="layout-container">
|
|
<div class="navbar">
|
|
<div class="navbar-left">
|
|
<div class="logo">OA系统</div>
|
|
<div class="nav-menu">
|
|
<div class="nav-item active">商机管理</div>
|
|
<div class="nav-item" onclick="window.location.href='project-start.html'">过程管理</div>
|
|
<div class="nav-item" onclick="window.location.href='finance-invoice.html'">财务管理</div>
|
|
<div class="nav-item" onclick="window.location.href='report-project-detail.html'">报表管理</div>
|
|
<div class="nav-item" onclick="window.location.href='settings-org.html'">系统设置</div>
|
|
</div>
|
|
</div>
|
|
<div class="navbar-right">
|
|
<span style="color: #303133;">张三</span><span style="color: #909399; margin: 0 8px;">|</span>
|
|
<a href="profile.html" style="color: #409EFF; text-decoration: none;">个人中心</a>
|
|
<span style="color: #909399; margin: 0 8px;">|</span>
|
|
<a href="login.html" style="color: #409EFF; text-decoration: none;">退出</a>
|
|
</div>
|
|
</div>
|
|
<div class="main-container">
|
|
<div class="sidebar">
|
|
<div class="menu-item" onclick="window.location.href='project-initiation.html'">立项申请</div>
|
|
<div class="menu-item active">项目查询</div>
|
|
<div class="menu-item" onclick="window.location.href='project-approval.html'">审核管理</div>
|
|
<div class="menu-item" onclick="window.location.href='project-bidding.html'">投标管理</div>
|
|
<div class="menu-item" onclick="window.location.href='project-contract.html'">合同管理</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="page-header">
|
|
<div class="page-title">项目查询</div>
|
|
<button class="btn btn-primary" onclick="window.location.href='project-initiation.html'">+ 新建立项</button>
|
|
</div>
|
|
<div class="search-form">
|
|
<div class="form-row">
|
|
<div class="form-item">
|
|
<label class="form-label">项目编号</label>
|
|
<input type="text" class="form-input" placeholder="请输入项目编号">
|
|
</div>
|
|
<div class="form-item">
|
|
<label class="form-label">项目名称</label>
|
|
<input type="text" class="form-input" placeholder="请输入项目名称">
|
|
</div>
|
|
<div class="form-item">
|
|
<label class="form-label">服务内容</label>
|
|
<select class="form-select">
|
|
<option value="">全部</option>
|
|
<option value="1">结算审计</option>
|
|
<option value="2">工程咨询</option>
|
|
<option value="3">跟踪审计</option>
|
|
<option value="4">项目管理</option>
|
|
<option value="5">工程监理</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-row">
|
|
<div class="form-item">
|
|
<label class="form-label">项目状态</label>
|
|
<select class="form-select">
|
|
<option value="">全部</option>
|
|
<option value="initiated">已立项</option>
|
|
<option value="bidding">投标中</option>
|
|
<option value="contract">已签合同</option>
|
|
<option value="started">已启动</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-item" style="display: flex; align-items: flex-end; gap: 8px;">
|
|
<button class="btn btn-primary" onclick="searchProjects()">查询</button>
|
|
<button class="btn btn-default" onclick="resetSearch()">重置</button>
|
|
<button class="btn btn-default" onclick="exportExcel()">导出Excel</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="table-container">
|
|
<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>25-1</td>
|
|
<td>XX工程项目</td>
|
|
<td>XX公司</td>
|
|
<td>工程咨询</td>
|
|
<td>¥500,000</td>
|
|
<td><span class="status-badge status-started">已启动</span></td>
|
|
<td>张三</td>
|
|
<td>2025-01-10</td>
|
|
<td>
|
|
<span class="action-link" onclick="viewDetail('25-1')">查看</span>
|
|
<span class="action-link" onclick="editProject('25-1')">编辑</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>25-2</td>
|
|
<td>YY工程项目</td>
|
|
<td>YY公司</td>
|
|
<td>跟踪审计</td>
|
|
<td>¥800,000</td>
|
|
<td><span class="status-badge status-bidding">投标中</span></td>
|
|
<td>李四</td>
|
|
<td>2025-01-12</td>
|
|
<td>
|
|
<span class="action-link" onclick="viewDetail('25-2')">查看</span>
|
|
<span class="action-link" onclick="editProject('25-2')">编辑</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>25-3</td>
|
|
<td>ZZ工程项目</td>
|
|
<td>ZZ公司</td>
|
|
<td>结算审计</td>
|
|
<td>¥600,000</td>
|
|
<td><span class="status-badge status-contract">已签合同</span></td>
|
|
<td>王五</td>
|
|
<td>2025-01-08</td>
|
|
<td>
|
|
<span class="action-link" onclick="viewDetail('25-3')">查看</span>
|
|
<span class="action-link" onclick="editProject('25-3')">编辑</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="pagination">
|
|
<span style="color: #999; margin-right: 16px;">共 3 条记录</span>
|
|
<button class="btn btn-default">上一页</button>
|
|
<span style="margin: 0 12px;">1 / 1</span>
|
|
<button class="btn btn-default">下一页</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="common.js"></script>
|
|
<script src="layout.js"></script>
|
|
<script>
|
|
function searchProjects() {
|
|
CommonUtils.showMessage('查询中...');
|
|
setTimeout(() => CommonUtils.showMessage('查询完成'), 500);
|
|
}
|
|
function resetSearch() {
|
|
document.querySelectorAll('.form-input, .form-select').forEach(el => el.value = '');
|
|
CommonUtils.showMessage('已重置');
|
|
}
|
|
function exportExcel() {
|
|
CommonUtils.exportExcel('项目列表.xlsx');
|
|
}
|
|
function viewDetail(id) { window.location.href = 'project-detail.html?id=' + id; }
|
|
function editProject(id) { window.location.href = 'project-initiation.html?edit=' + id; }
|
|
injectLayout('project');
|
|
</script>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|