You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

944 lines
36 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>直接支付 - 资金使用管理系统</title>
<link href="https://cdn.staticfile.org/bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.staticfile.org/bootstrap-icons/1.11.0/font/bootstrap-icons.min.css">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif;
background-color: #f5f7fa;
padding: 20px;
}
.page-header {
background: white;
padding: 25px 30px;
border-radius: 10px;
margin-bottom: 20px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.page-title {
font-size: 24px;
font-weight: 600;
color: #333;
margin: 0;
}
.page-title i {
margin-right: 10px;
color: #667eea;
}
.wizard-container {
background: white;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
padding: 30px;
max-width: 1000px;
margin: 0 auto;
}
/* 步骤指示器 */
.wizard-steps {
display: flex;
justify-content: space-between;
margin-bottom: 40px;
position: relative;
}
.wizard-steps::before {
content: '';
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 2px;
background: #e5e7eb;
z-index: 0;
}
.wizard-step {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
z-index: 1;
}
.step-number {
width: 40px;
height: 40px;
border-radius: 50%;
background: white;
border: 3px solid #e5e7eb;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
color: #9ca3af;
margin-bottom: 10px;
transition: all 0.3s;
}
.wizard-step.active .step-number {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-color: #667eea;
color: white;
}
.wizard-step.completed .step-number {
background: #10b981;
border-color: #10b981;
color: white;
}
.wizard-step.completed .step-number::after {
content: '\2713';
font-size: 20px;
}
.step-label {
font-size: 14px;
color: #6b7280;
text-align: center;
}
.wizard-step.active .step-label {
color: #667eea;
font-weight: 600;
}
.wizard-step.completed .step-label {
color: #10b981;
}
/* 步骤内容 */
.step-content {
display: none;
animation: fadeIn 0.3s;
}
.step-content.active {
display: block;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.step-title {
font-size: 20px;
font-weight: 600;
color: #333;
margin-bottom: 10px;
}
.step-description {
color: #6b7280;
margin-bottom: 30px;
}
/* 选项卡片 */
.option-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.option-card {
border: 2px solid #e5e7eb;
border-radius: 10px;
padding: 20px;
text-align: center;
cursor: pointer;
transition: all 0.3s;
background: white;
}
.option-card:hover {
border-color: #667eea;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
}
.option-card.selected {
border-color: #667eea;
background: #f0f0ff;
}
.option-card-icon {
font-size: 48px;
margin-bottom: 15px;
color: #667eea;
}
.option-card-title {
font-size: 16px;
font-weight: 600;
color: #333;
margin-bottom: 5px;
}
.option-card-desc {
font-size: 12px;
color: #6b7280;
}
/* 表单样式 */
.form-section {
margin-bottom: 25px;
}
.section-title {
font-size: 16px;
font-weight: 600;
color: #333;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 1px solid #e5e7eb;
}
.form-label {
font-weight: 500;
color: #333;
margin-bottom: 8px;
}
.form-label .required {
color: #ef4444;
margin-left: 3px;
}
.form-control, .form-select {
border: 1px solid #d1d5db;
border-radius: 6px;
padding: 10px 12px;
}
.form-control:focus, .form-select:focus {
border-color: #667eea;
box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
}
/* 流程提示 */
.process-hint {
background: #f0f9ff;
border-left: 4px solid #3b82f6;
padding: 15px;
border-radius: 6px;
margin-bottom: 20px;
}
.process-hint-title {
font-weight: 600;
color: #1e40af;
margin-bottom: 10px;
}
.process-hint-steps {
list-style: none;
padding: 0;
}
.process-hint-steps li {
padding: 5px 0;
color: #1e40af;
display: flex;
align-items: center;
gap: 8px;
}
.process-hint-steps li i {
color: #3b82f6;
}
/* 金额范围显示卡片 */
.amount-range-display {
margin-top: 20px;
}
.range-card {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 10px;
padding: 20px;
display: flex;
align-items: center;
gap: 15px;
color: white;
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
animation: fadeIn 0.3s;
}
.range-icon {
font-size: 32px;
}
.range-info {
flex: 1;
}
.range-title {
font-size: 18px;
font-weight: 600;
margin-bottom: 5px;
}
.range-desc {
font-size: 14px;
opacity: 0.9;
}
/* 确认信息 */
.summary-card {
background: #f8f9fa;
border-radius: 10px;
padding: 20px;
margin-bottom: 20px;
}
.summary-item {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #e5e7eb;
}
.summary-item:last-child {
border-bottom: none;
}
.summary-label {
color: #6b7280;
font-weight: 500;
}
.summary-value {
color: #333;
font-weight: 600;
}
/* 按钮区域 */
.wizard-actions {
display: flex;
justify-content: space-between;
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #e5e7eb;
}
.btn {
padding: 10px 25px;
font-weight: 500;
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
}
.btn-primary:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
}
</style>
</head>
<body>
<!-- 页面头部 -->
<div class="page-header">
<h1 class="page-title">
<i class="bi bi-lightning"></i> 直接支付(无审批流程)
</h1>
</div>
<!-- 向导容器 -->
<div class="wizard-container">
<!-- 步骤指示器 -->
<div class="wizard-steps">
<div class="wizard-step active" data-step="1">
<div class="step-number">1</div>
<div class="step-label">选择类型</div>
</div>
<div class="wizard-step" data-step="2">
<div class="step-number">2</div>
<div class="step-label">选择金额</div>
</div>
<div class="wizard-step" data-step="3">
<div class="step-number">3</div>
<div class="step-label">上传材料</div>
</div>
<div class="wizard-step" data-step="4">
<div class="step-number">4</div>
<div class="step-label">填写信息</div>
</div>
<div class="wizard-step" data-step="5">
<div class="step-number">5</div>
<div class="step-label">确认提交</div>
</div>
</div>
<!-- 步骤1: 选择支付类型 -->
<div class="step-content active" id="step1">
<h2 class="step-title">选择支付类型</h2>
<p class="step-description">请选择本次支付的类型</p>
<div class="option-cards">
<div class="option-card" onclick="selectType('utilities')">
<div class="option-card-icon">
<i class="bi bi-lightning-charge"></i>
</div>
<div class="option-card-title">水电费、邮电费、食堂经费、体检费</div>
</div>
<div class="option-card" onclick="selectType('union')">
<div class="option-card-icon">
<i class="bi bi-people"></i>
</div>
<div class="option-card-title">工会经费</div>
</div>
<div class="option-card" onclick="selectType('salary')">
<div class="option-card-icon">
<i class="bi bi-wallet2"></i>
</div>
<div class="option-card-title">人员工资、独生子女费</div>
</div>
<div class="option-card" onclick="selectType('children')">
<div class="option-card-icon">
<i class="bi bi-heart"></i>
</div>
<div class="option-card-title">儿童统筹、幼托费</div>
</div>
<div class="option-card" onclick="selectType('tax')">
<div class="option-card-icon">
<i class="bi bi-receipt"></i>
</div>
<div class="option-card-title">税费</div>
</div>
<div class="option-card" onclick="selectType('contract')">
<div class="option-card-icon">
<i class="bi bi-file-earmark-text"></i>
</div>
<div class="option-card-title">历史合同款项</div>
</div>
</div>
</div>
<!-- 步骤2: 选择金额 -->
<div class="step-content" id="step2">
<h2 class="step-title">输入支付金额</h2>
<p class="step-description">请输入本次支付的金额,系统将自动匹配金额范围</p>
<div id="processHint" class="process-hint" style="display: none;">
<div class="process-hint-title">所需材料:</div>
<ul class="process-hint-steps" id="hintSteps"></ul>
</div>
<div class="form-section">
<div class="mb-4">
<label class="form-label">支付金额<span class="required">*</span></label>
<div class="input-group" style="max-width: 400px;">
<span class="input-group-text">
<i class="bi bi-currency-yen"></i>
</span>
<input type="number" class="form-control" id="amountInput"
placeholder="请输入金额" step="0.01" min="0" required
oninput="handleAmountInput()">
</div>
<small class="text-muted">请输入数字金额,系统将自动匹配到对应区间</small>
</div>
<div id="amountRangeDisplay" class="amount-range-display" style="display: none;">
<div class="range-card">
<div class="range-icon">
<i class="bi bi-check-circle-fill"></i>
</div>
<div class="range-info">
<div class="range-title" id="rangeTitle">-</div>
<div class="range-desc" id="rangeDesc">-</div>
</div>
</div>
</div>
</div>
</div>
<!-- 步骤3: 上传材料 -->
<div class="step-content" id="step3">
<h2 class="step-title">上传所需材料</h2>
<p class="step-description">请根据流程要求上传相应的材料</p>
<div id="uploadRequirements" class="process-hint">
<div class="process-hint-title">需要上传的材料:</div>
<ul class="process-hint-steps" id="uploadSteps"></ul>
</div>
<div class="form-section">
<div class="mb-3">
<label class="form-label">年度计划</label>
<input type="file" class="form-control" id="annualPlan" accept=".pdf,.doc,.docx,.xls,.xlsx">
</div>
<div class="mb-3">
<label class="form-label">会议纪要</label>
<input type="file" class="form-control" id="meetingMinutes" accept=".pdf,.doc,.docx">
</div>
<div class="mb-3">
<label class="form-label">中心主任会会议纪要</label>
<input type="file" class="form-control" id="directorMeeting" accept=".pdf,.doc,.docx">
</div>
<div class="mb-3">
<label class="form-label">支委会会议纪要</label>
<input type="file" class="form-control" id="committeeMeeting" accept=".pdf,.doc,.docx">
</div>
<div class="mb-3">
<label class="form-label">政府采购省厅审批表</label>
<input type="file" class="form-control" id="provincialApproval" accept=".pdf,.doc,.docx,.xls,.xlsx">
</div>
</div>
</div>
<!-- 步骤4: 填写信息 -->
<div class="step-content" id="step4">
<h2 class="step-title">填写支付信息</h2>
<p class="step-description">请填写详细的支付信息</p>
<form id="paymentForm">
<div class="form-section">
<h3 class="section-title">基本信息</h3>
<div class="row g-3">
<div class="col-md-6">
<label class="form-label">支付事项<span class="required">*</span></label>
<input type="text" class="form-control" id="paymentItem" required>
</div>
<div class="col-md-6">
<label class="form-label">支付金额<span class="required">*</span></label>
<input type="number" class="form-control" id="paymentAmount" step="0.01" required>
</div>
<div class="col-md-6">
<label class="form-label">收款单位<span class="required">*</span></label>
<input type="text" class="form-control" id="payee" required>
</div>
<div class="col-md-6">
<label class="form-label">收款账号<span class="required">*</span></label>
<input type="text" class="form-control" id="accountNumber" required>
</div>
<div class="col-md-6">
<label class="form-label">开户银行<span class="required">*</span></label>
<input type="text" class="form-control" id="bankName" required>
</div>
<div class="col-md-6">
<label class="form-label">支付方式</label>
<select class="form-select" id="paymentMethod">
<option value="transfer">银行转账</option>
<option value="check">支票</option>
<option value="other">其他</option>
</select>
</div>
</div>
</div>
<div class="form-section">
<h3 class="section-title">详细信息</h3>
<div class="row g-3">
<div class="col-md-12">
<label class="form-label">支付说明<span class="required">*</span></label>
<textarea class="form-control" id="paymentDescription" rows="4" required></textarea>
</div>
<div class="col-md-12" id="biddingTypeContainer" style="display: none;">
<label class="form-label">招标类型</label>
<select class="form-select" id="biddingType">
<option value="public">公开招标</option>
<option value="non-public">非公开招标</option>
</select>
</div>
</div>
</div>
</form>
</div>
<!-- 步骤5: 确认提交 -->
<div class="step-content" id="step5">
<h2 class="step-title">确认支付信息</h2>
<p class="step-description">请确认以下信息无误后提交</p>
<div class="summary-card">
<div class="summary-item">
<span class="summary-label">支付类型</span>
<span class="summary-value" id="summaryType">-</span>
</div>
<div class="summary-item">
<span class="summary-label">金额范围</span>
<span class="summary-value" id="summaryAmountRange">-</span>
</div>
<div class="summary-item">
<span class="summary-label">支付事项</span>
<span class="summary-value" id="summaryItem">-</span>
</div>
<div class="summary-item">
<span class="summary-label">支付金额</span>
<span class="summary-value" id="summaryAmount">-</span>
</div>
<div class="summary-item">
<span class="summary-label">收款单位</span>
<span class="summary-value" id="summaryPayee">-</span>
</div>
<div class="summary-item">
<span class="summary-label">收款账号</span>
<span class="summary-value" id="summaryAccount">-</span>
</div>
<div class="summary-item">
<span class="summary-label">开户银行</span>
<span class="summary-value" id="summaryBank">-</span>
</div>
</div>
</div>
<!-- 按钮区域 -->
<div class="wizard-actions">
<button type="button" class="btn btn-secondary" id="btnPrev" onclick="prevStep()" style="display: none;">
<i class="bi bi-arrow-left"></i> 上一步
</button>
<div></div>
<button type="button" class="btn btn-primary" id="btnNext" onclick="nextStep()">
下一步 <i class="bi bi-arrow-right"></i>
</button>
<button type="button" class="btn btn-primary" id="btnSubmit" onclick="submitPayment()" style="display: none;">
<i class="bi bi-check-circle"></i> 提交支付
</button>
</div>
</div>
<script src="https://cdn.staticfile.org/bootstrap/5.3.0/js/bootstrap.bundle.min.js"></script>
<script>
let currentStep = 1;
const totalSteps = 5;
let formData = {
type: '',
amountRange: '',
inputAmount: '',
biddingType: '',
paymentItem: '',
paymentAmount: '',
payee: '',
accountNumber: '',
bankName: '',
paymentMethod: 'transfer',
paymentDescription: ''
};
// 支付类型映射
const typeMap = {
'utilities': '水电费、邮电费、食堂经费、体检费',
'union': '工会经费',
'salary': '人员工资、独生子女费',
'children': '儿童统筹、幼托费',
'tax': '税费',
'contract': '历史合同款项'
};
// 金额范围映射
const amountRangeMap = {
'under-5': '不超过5万',
'5-10': '5-10万不含',
'10-30': '10-30万不含',
'over-30': '30万元以上'
};
// 选择支付类型
function selectType(type) {
formData.type = type;
document.querySelectorAll('#step1 .option-card').forEach(card => {
card.classList.remove('selected');
});
event.currentTarget.classList.add('selected');
// 对于直接流程的类型,跳过某些步骤
if (['salary', 'children', 'tax'].includes(type)) {
formData.amountRange = 'direct';
setTimeout(() => {
currentStep = 3;
updateStepDisplay();
updateButtons();
}, 300);
} else {
setTimeout(() => nextStep(), 300);
}
}
// 处理金额输入
function handleAmountInput() {
const amountInput = document.getElementById('amountInput');
const amount = parseFloat(amountInput.value);
const rangeDisplay = document.getElementById('amountRangeDisplay');
if (!amount || amount <= 0) {
rangeDisplay.style.display = 'none';
formData.amountRange = '';
return;
}
// 自动匹配金额区间
let range = '';
let rangeTitle = '';
let rangeDesc = '';
if (amount <= 50000) {
range = 'under-5';
rangeTitle = '不超过5万';
rangeDesc = '≤ ¥50,000';
} else if (amount > 50000 && amount < 100000) {
range = '5-10';
rangeTitle = '5-10万不含';
rangeDesc = '¥50,000 - ¥100,000';
} else if (amount >= 100000 && amount < 300000) {
range = '10-30';
rangeTitle = '10-30万不含';
rangeDesc = '¥100,000 - ¥300,000';
} else {
range = 'over-30';
rangeTitle = '30万元以上';
rangeDesc = '≥ ¥300,000';
}
// 更新显示
document.getElementById('rangeTitle').textContent = rangeTitle;
document.getElementById('rangeDesc').textContent = rangeDesc;
rangeDisplay.style.display = 'block';
// 保存金额和区间
formData.amountRange = range;
formData.inputAmount = amount;
// 显示流程提示
showProcessHint();
}
// 选择金额范围(保留用于兼容)
function selectAmount(range) {
formData.amountRange = range;
// 显示流程提示
showProcessHint();
setTimeout(() => nextStep(), 300);
}
// 显示流程提示
function showProcessHint() {
const hintDiv = document.getElementById('processHint');
const hintSteps = document.getElementById('hintSteps');
hintSteps.innerHTML = '';
const type = formData.type;
const range = formData.amountRange;
if (type === 'utilities' || type === 'contract') {
if (range === 'under-5') {
hintSteps.innerHTML = '<li><i class="bi bi-check-circle"></i> 年度计划</li><li><i class="bi bi-check-circle"></i> 会议纪要</li>';
} else if (range === '5-10') {
hintSteps.innerHTML = '<li><i class="bi bi-check-circle"></i> 中心主任会会议纪要</li><li><i class="bi bi-check-circle"></i> 申请</li><li><i class="bi bi-check-circle"></i> 支付</li>';
} else if (range === '10-30') {
hintSteps.innerHTML = '<li><i class="bi bi-check-circle"></i> 中心主任会会议纪要</li><li><i class="bi bi-check-circle"></i> 支委会会议纪要</li><li><i class="bi bi-check-circle"></i> 申请</li><li><i class="bi bi-check-circle"></i> 支付</li>';
} else if (range === 'over-30') {
hintSteps.innerHTML = '<li><i class="bi bi-check-circle"></i> 中心主任会会议纪要</li><li><i class="bi bi-check-circle"></i> 支委会会议纪要</li><li><i class="bi bi-check-circle"></i> 申请</li><li><i class="bi bi-check-circle"></i> 支付</li><li><i class="bi bi-check-circle"></i> 政府采购省厅审批表(非公开招标时)</li>';
document.getElementById('biddingTypeContainer').style.display = 'block';
}
hintDiv.style.display = 'block';
} else if (type === 'union') {
hintSteps.innerHTML = '<li><i class="bi bi-check-circle"></i> 年度计划</li><li><i class="bi bi-check-circle"></i> 会议纪要</li>';
hintDiv.style.display = 'block';
} else {
hintDiv.style.display = 'none';
}
}
// 更新上传要求
function updateUploadRequirements() {
const uploadSteps = document.getElementById('uploadSteps');
uploadSteps.innerHTML = '';
const type = formData.type;
const range = formData.amountRange;
if (type === 'utilities' || type === 'contract') {
if (range === 'under-5') {
uploadSteps.innerHTML = '<li><i class="bi bi-file-earmark"></i> 年度计划</li><li><i class="bi bi-file-earmark"></i> 会议纪要</li>';
} else if (range === '5-10') {
uploadSteps.innerHTML = '<li><i class="bi bi-file-earmark"></i> 中心主任会会议纪要</li>';
} else if (range === '10-30') {
uploadSteps.innerHTML = '<li><i class="bi bi-file-earmark"></i> 中心主任会会议纪要</li><li><i class="bi bi-file-earmark"></i> 支委会会议纪要</li>';
} else if (range === 'over-30') {
uploadSteps.innerHTML = '<li><i class="bi bi-file-earmark"></i> 中心主任会会议纪要</li><li><i class="bi bi-file-earmark"></i> 支委会会议纪要</li>';
if (formData.biddingType === 'non-public') {
uploadSteps.innerHTML += '<li><i class="bi bi-file-earmark"></i> 政府采购省厅审批表</li>';
}
}
} else if (type === 'union') {
uploadSteps.innerHTML = '<li><i class="bi bi-file-earmark"></i> 年度计划</li><li><i class="bi bi-file-earmark"></i> 会议纪要</li>';
} else {
uploadSteps.innerHTML = '<li><i class="bi bi-info-circle"></i> 无需上传材料</li>';
}
}
// 下一步
function nextStep() {
// 步骤2验证检查是否输入了金额
if (currentStep === 2) {
const amountInput = document.getElementById('amountInput');
if (!amountInput.value || parseFloat(amountInput.value) <= 0) {
amountInput.focus();
alert('请输入有效的支付金额');
return;
}
if (!formData.amountRange) {
handleAmountInput();
}
showProcessHint();
}
if (currentStep === 3) {
updateUploadRequirements();
}
if (currentStep === 4) {
// 验证表单
const form = document.getElementById('paymentForm');
if (!form.checkValidity()) {
form.reportValidity();
return;
}
// 收集表单数据
formData.paymentItem = document.getElementById('paymentItem').value;
formData.paymentAmount = document.getElementById('paymentAmount').value;
formData.payee = document.getElementById('payee').value;
formData.accountNumber = document.getElementById('accountNumber').value;
formData.bankName = document.getElementById('bankName').value;
formData.paymentMethod = document.getElementById('paymentMethod').value;
formData.paymentDescription = document.getElementById('paymentDescription').value;
if (document.getElementById('biddingTypeContainer').style.display !== 'none') {
formData.biddingType = document.getElementById('biddingType').value;
}
// 更新确认页面
updateSummary();
}
if (currentStep < totalSteps) {
// 隐藏当前步骤
document.getElementById(`step${currentStep}`).classList.remove('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.remove('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.add('completed');
// 显示下一步
currentStep++;
document.getElementById(`step${currentStep}`).classList.add('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.add('active');
// 更新按钮
updateButtons();
}
}
// 上一步
function prevStep() {
if (currentStep > 1) {
// 隐藏当前步骤
document.getElementById(`step${currentStep}`).classList.remove('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.remove('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.remove('completed');
// 显示上一步
currentStep--;
document.getElementById(`step${currentStep}`).classList.add('active');
document.querySelector(`.wizard-step[data-step="${currentStep}"]`).classList.add('active');
document.querySelector(`.wizard-step[data-step="${currentStep + 1}"]`).classList.remove('completed');
// 更新按钮
updateButtons();
}
}
// 更新步骤显示
function updateStepDisplay() {
for (let i = 1; i <= totalSteps; i++) {
const stepContent = document.getElementById(`step${i}`);
const stepIndicator = document.querySelector(`.wizard-step[data-step="${i}"]`);
if (i < currentStep) {
stepContent.classList.remove('active');
stepIndicator.classList.remove('active');
stepIndicator.classList.add('completed');
} else if (i === currentStep) {
stepContent.classList.add('active');
stepIndicator.classList.add('active');
stepIndicator.classList.remove('completed');
} else {
stepContent.classList.remove('active');
stepIndicator.classList.remove('active', 'completed');
}
}
}
// 更新按钮状态
function updateButtons() {
const btnPrev = document.getElementById('btnPrev');
const btnNext = document.getElementById('btnNext');
const btnSubmit = document.getElementById('btnSubmit');
if (currentStep === 1) {
btnPrev.style.display = 'none';
btnNext.style.display = 'inline-block';
btnSubmit.style.display = 'none';
} else if (currentStep === totalSteps) {
btnPrev.style.display = 'inline-block';
btnNext.style.display = 'none';
btnSubmit.style.display = 'inline-block';
} else {
btnPrev.style.display = 'inline-block';
btnNext.style.display = 'inline-block';
btnSubmit.style.display = 'none';
}
}
// 更新确认信息
function updateSummary() {
document.getElementById('summaryType').textContent = typeMap[formData.type] || '-';
document.getElementById('summaryAmountRange').textContent = amountRangeMap[formData.amountRange] || (formData.amountRange === 'direct' ? '直接流程' : '-');
document.getElementById('summaryItem').textContent = formData.paymentItem || '-';
document.getElementById('summaryAmount').textContent = '¥' + (parseFloat(formData.paymentAmount).toLocaleString() || '-');
document.getElementById('summaryPayee').textContent = formData.payee || '-';
document.getElementById('summaryAccount').textContent = formData.accountNumber || '-';
document.getElementById('summaryBank').textContent = formData.bankName || '-';
}
// 提交支付
function submitPayment() {
if (confirm('确定要提交支付申请吗?')) {
// 这里应该调用后端API提交数据
console.log('提交支付数据:', formData);
alert('支付申请提交成功!');
// 可以跳转到支付查询页面
// parent.loadPage('pages/payment/process-query.html');
}
}
// 监听招标类型变化
document.getElementById('biddingType')?.addEventListener('change', function() {
formData.biddingType = this.value;
if (currentStep === 3) {
updateUploadRequirements();
}
});
</script>
</body>
</html>