someone-oa/pc/project-start.html
2025-12-11 15:21:16 +08:00

236 lines
10 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. 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>项目启动 - 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; }
.nav-item:hover {
background: #ecf5ff;
color: #409EFF;
}
 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; }
.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; }
.page-title { font-size: 20px; font-weight: 500; }
.form-card { background: white; border-radius: 4px; padding: 24px; }
.form-section { margin-bottom: 24px; }
.form-section-title { font-size: 16px; font-weight: 500; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #f0f0f0; }
.form-row { display: flex; gap: 16px; margin-bottom: 16px; }
.form-item { flex: 1; }
.form-label { display: block; margin-bottom: 8px; color: #333; font-size: 14px; }
.form-label .required { color: #ff4d4f; }
.form-input, .form-select { width: 100%; padding: 8px 12px; border: 1px solid #d9d9d9; border-radius: 4px; }
.staff-table { width: 100%; border-collapse: collapse; margin-top: 16px; }
.staff-table th, .staff-table td { padding: 12px; text-align: left; border: 1px solid #f0f0f0; }
.staff-table th { background: #fafafa; }
.btn { padding: 8px 24px; border: none; border-radius: 4px; cursor: pointer; }
.btn-primary { background: #409EFF; color: white; }
.btn-default { background: white; color: #333; border: 1px solid #d9d9d9; }
.form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; padding-top: 24px; border-top: 1px solid #f0f0f0; }
</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" onclick="window.location.href='project-initiation.html'">商机管理</div>
<div class="nav-item active">过程管理</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>
</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>|</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 active">启动申请</div>
<div class="menu-item" onclick="window.location.href='output-submit.html'">成果提交</div>
<div class="menu-item" onclick="window.location.href='progress-query.html'">进度查询</div>
</div>
<div class="content">
<div class="page-header">
<div class="page-title">项目启动申请</div>
</div>
<div class="form-card">
<form id="startForm">
<div class="form-section">
<div class="form-section-title">关联项目</div>
<div class="form-row">
<div class="form-item">
<label class="form-label">
<span class="required">*</span>关联立项项目
</label>
<select class="form-select" required>
<option value="">请选择项目</option>
<option value="25-1">25-1 - XX工程项目</option>
<option value="25-2">25-2 - YY工程项目</option>
</select>
</div>
<div class="form-item">
<label class="form-label">启动编号</label>
<input type="text" class="form-input" value="25-1-2-1" readonly>
</div>
</div>
</div>
<div class="form-section">
<div class="form-section-title">人员分工</div>
<table class="staff-table">
<thead>
<tr>
<th>执业工程师</th>
<th>工作内容</th>
<th>操作</th>
</tr>
</thead>
<tbody id="staffTableBody">
<tr>
<td>
<select class="form-select">
<option>张三</option>
<option>李四</option>
</select>
</td>
<td>
<select class="form-select" multiple style="height: 60px;">
<option>文本</option>
<option>估算</option>
<option>出报告</option>
</select>
</td>
<td>
<button type="button" class="btn btn-default" onclick="removeStaff(this)">删除</button>
</td>
</tr>
</tbody>
</table>
<button type="button" class="btn btn-default" onclick="addStaff()" style="margin-top: 12px;">+ 添加人员</button>
</div>
<div class="form-actions">
<button type="button" class="btn btn-default" onclick="resetForm()">重置</button>
<button type="submit" class="btn btn-primary">提交审核</button>
</div>
</form>
</div>
</div>
</div>
</div>
<script src="common.js"></script>
<script src="layout.js"></script>
<script>
function addStaff() {
const tbody = document.getElementById('staffTableBody');
const row = document.createElement('tr');
row.innerHTML = `
<td><select class="form-select"><option>张三</option><option>李四</option></select></td>
<td><select class="form-select" multiple style="height: 60px;"><option>文本</option><option>估算</option><option>出报告</option></select></td>
<td><button type="button" class="btn btn-default" onclick="removeStaff(this)">删除</button></td>
`;
tbody.appendChild(row);
}
function removeStaff(btn) {
btn.closest('tr').remove();
}
function resetForm() {
CommonUtils.confirm('确认重置表单?', () => {
document.getElementById('startForm').reset();
});
}
document.getElementById('startForm').addEventListener('submit', function(e) {
e.preventDefault();
CommonUtils.confirm('确认提交启动申请?', () => {
CommonUtils.showMessage('提交成功!等待审核');
setTimeout(() => window.location.href = 'progress-query.html', 1000);
});
});
injectLayout('process');
</script>
</div>
</body>
</html>