Files
wangziqi ea9c94dfeb add
2026-01-07 16:18:56 +08:00

248 lines
12 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>客户中心 - 车管家4S店车辆维保管理系统</title>
<link href="/lib/bootstrap.min.css" rel="stylesheet">
<link href="/lib/bootstrap-icons.css" rel="stylesheet">
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<div class="dashboard-wrapper">
<nav class="sidebar">
<div class="sidebar-header">
<i class="bi bi-car-front-fill fs-1 d-block mb-2"></i>
<h5 class="mb-1">车管家系统</h5>
<small>客户中心</small>
</div>
<div class="mt-4">
<a class="menu-item active" onclick="showSection('myvehicles')">
<i class="bi bi-car-front"></i>
<span>我的车辆</span>
</a>
<a class="menu-item" onclick="showSection('myorders')">
<i class="bi bi-clipboard-data"></i>
<span>维保记录</span>
</a>
<a class="menu-item" onclick="showSection('appointments')">
<i class="bi bi-calendar-check"></i>
<span>我的预约</span>
</a>
<a class="menu-item" onclick="showSection('newappointment')">
<i class="bi bi-plus-circle"></i>
<span>在线预约</span>
</a>
</div>
</nav>
<main class="main-content">
<div class="top-navbar">
<div class="d-flex align-items-center">
<h5 class="mb-0 me-3">
<i class="bi bi-person-circle"></i> 客户中心
</h5>
</div>
<div class="d-flex align-items-center gap-3">
<div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle" type="button" data-bs-toggle="dropdown">
<i class="bi bi-person-circle"></i>
<span id="userName">客户</span>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><h6 class="dropdown-header">当前角色</h6></li>
<li><span class="dropdown-item" id="userRole"></span></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#" onclick="Utils.logout()">
<i class="bi bi-box-arrow-right"></i> 退出登录
</a></li>
</ul>
</div>
</div>
</div>
<!-- 我的车辆 -->
<div id="myvehicles-section" class="content-section">
<div class="content-card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-car-front"></i> 我的车辆</h6>
</div>
<div class="card-body">
<div class="row" id="vehiclesContainer">
<div class="col-12 text-center text-muted py-5">
<div class="spinner-border text-primary mb-3" role="status"></div>
<p>加载中...</p>
</div>
</div>
</div>
</div>
</div>
<!-- 维保记录 -->
<div id="myorders-section" class="content-section" style="display: none;">
<div class="content-card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-clipboard-data"></i> 维保记录</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-custom">
<thead>
<tr>
<th>工单编号</th>
<th>服务类型</th>
<th>车牌号</th>
<th>费用</th>
<th>状态</th>
<th>创建时间</th>
</tr>
</thead>
<tbody id="ordersTableBody">
<tr>
<td colspan="6" class="text-center text-muted py-4">
<div class="spinner-border spinner-border-sm me-2"></div>
加载中...
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 我的预约 -->
<div id="appointments-section" class="content-section" style="display: none;">
<div class="content-card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-calendar-check"></i> 我的预约</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-custom">
<thead>
<tr>
<th>服务类型</th>
<th>车牌号</th>
<th>预约时间</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="appointmentsTableBody">
<tr>
<td colspan="5" class="text-center text-muted py-4">
<div class="spinner-border spinner-border-sm me-2"></div>
加载中...
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 在线预约 -->
<div id="newappointment-section" class="content-section" style="display: none;">
<div class="content-card">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-plus-circle"></i> 在线预约服务</h6>
</div>
<div class="card-body">
<form id="appointmentForm" style="max-width: 600px;">
<div class="mb-3">
<label class="form-label">
<i class="bi bi-car-front"></i> 选择车辆
<span class="text-danger">*</span>
</label>
<select class="form-select" id="vehicleSelect" required>
<option value="">请选择车辆</option>
</select>
</div>
<div class="mb-3">
<label class="form-label">
<i class="bi bi-gear"></i> 服务类型
<span class="text-danger">*</span>
</label>
<select class="form-select" id="serviceType" required>
<option value="maintenance">保养维护</option>
<option value="repair">维修服务</option>
<option value="beauty">美容服务</option>
<option value="insurance">保险代理</option>
</select>
</div>
<div class="mb-3">
<label class="form-label">
<i class="bi bi-calendar"></i> 预约时间
<span class="text-danger">*</span>
</label>
<input type="datetime-local" class="form-control" id="appointmentTime" required>
</div>
<div class="mb-3">
<label class="form-label">
<i class="bi bi-telephone"></i> 联系电话
<span class="text-danger">*</span>
</label>
<input type="tel" class="form-control" id="contactPhone" placeholder="请输入联系电话" required>
</div>
<div class="mb-4">
<label class="form-label">
<i class="bi bi-chat-text"></i> 预约说明
</label>
<textarea class="form-control" id="description" rows="4" placeholder="请描述您的服务需求..."></textarea>
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary">
<i class="bi bi-check-circle"></i> 提交预约
</button>
<button type="reset" class="btn btn-secondary">
<i class="bi bi-x-circle"></i> 重置
</button>
</div>
</form>
</div>
</div>
</div>
</main>
</div>
<!-- Toast 通知 -->
<div class="toast-container position-fixed top-0 end-0 p-3">
<div id="liveToast" class="toast" role="alert">
<div class="toast-header">
<i class="bi bi-bell me-2" id="toastIcon"></i>
<strong class="me-auto" id="toastTitle">提示</strong>
<button type="button" class="btn-close" data-bs-dismiss="toast"></button>
</div>
<div class="toast-body" id="toastMessage"></div>
</div>
</div>
<!-- Loading 遮罩 -->
<div id="loadingOverlay" class="loading-overlay d-none">
<div class="spinner-border text-primary" role="status" style="width: 3rem; height: 3rem;">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<script src="/lib/bootstrap.bundle.min.js"></script>
<script src="../js/config.js"></script>
<script src="../js/api.js"></script>
<script src="../js/app.js"></script>
<script>
// 预约表单提交
document.getElementById('appointmentForm').addEventListener('submit', function(e) {
e.preventDefault();
submitAppointment();
});
</script>
</body>
</html>