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

157 lines
6.3 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.

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>合同管理 - 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;
}
 background: #409EFF; }
.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; }
.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-input, .form-select { width: 100%; padding: 6px 12px; border: 1px solid #d9d9d9; border-radius: 4px; }
.btn { padding: 6px 16px; border: none; border-radius: 4px; cursor: pointer; }
.btn-primary { background: #409EFF; color: white; }
.btn-default { background: white; color: #333; border: 1px solid #d9d9d9; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px; text-align: left; border-bottom: 1px solid #f0f0f0; }
th { background: #fafafa; font-weight: 500; }
.status-badge { padding: 2px 8px; border-radius: 4px; font-size: 12px; }
.status-contract { background: #f6ffed; color: #52c41a; }
.action-link { color: #409EFF; cursor: pointer; margin-right: 12px; }
</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>
<script src="common.js"></script>
<script src="common.js"></script>
</head>
<body>
<div id="app">
<div class="layout-container">
<div class="main-container">
<div class="sidebar">
<div class="menu-item" onclick="window.location.href='project-initiation.html'">立项申请</div>
<div class="menu-item" onclick="window.location.href='project-list.html'">项目查询</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 active">合同管理</div>
</div>
<div class="content">
<div class="page-header">
<div class="page-title">合同管理</div>
</div>
<div class="search-form">
<div class="form-row">
<div class="form-item">
<input type="text" class="form-input" placeholder="项目编号/名称">
</div>
<div class="form-item" style="display: flex; gap: 8px;">
<button class="btn btn-primary">查询</button>
<button class="btn btn-default">重置</button>
</div>
</div>
</div>
<table>
<thead>
<tr>
<th>项目编号</th>
<th>项目名称</th>
<th>客户名称</th>
<th>合同金额</th>
<th>签约时间</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>25-3</td>
<td>ZZ工程项目</td>
<td>ZZ公司</td>
<td>¥600,000</td>
<td>2025-01-15</td>
<td><span class="status-badge status-contract">已签合同</span></td>
<td>
<span class="action-link" onclick="window.location.href='contract-detail.html?id=25-3'">查看详情</span>
<span class="action-link" onclick="updateContract('25-3')">更新状态</span>
<span class="action-link" onclick="uploadFile('25-3')">上传合同</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script>
function updateContract(id) {
CommonUtils.createModal('确认更新', '确认更新项目状态为"已签合同"', () => {
CommonUtils.showMessage('状态已更新');
return true;
});
}
function uploadFile(id) {
CommonUtils.uploadFile('*', (file) => {
CommonUtils.showMessage('文件上传成功:' + file.name);
}, 50);
}
</script>
<script src="layout.js"></script>
<script>
injectLayout(\'project\');
</script>
</div>
</body>
</html>