317 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			317 lines
		
	
	
		
			9.4 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>批量编辑 - 确认提交</title>
 | 
						|
    <link rel="stylesheet" href="../css/mobile.css">
 | 
						|
    <style>
 | 
						|
        .step-indicator {
 | 
						|
            display: flex;
 | 
						|
            justify-content: center;
 | 
						|
            align-items: center;
 | 
						|
            margin: 20px 0;
 | 
						|
            padding: 0 20px;
 | 
						|
        }
 | 
						|
        .step {
 | 
						|
            display: flex;
 | 
						|
            align-items: center;
 | 
						|
            color: #ccc;
 | 
						|
        }
 | 
						|
        .step.active {
 | 
						|
            color: #4CAF50;
 | 
						|
            font-weight: bold;
 | 
						|
        }
 | 
						|
        .step.completed {
 | 
						|
            color: #4CAF50;
 | 
						|
        }
 | 
						|
        .step.active .step-number, .step.completed .step-number {
 | 
						|
            background: #4CAF50;
 | 
						|
            color: white;
 | 
						|
        }
 | 
						|
        .step-number {
 | 
						|
            width: 24px;
 | 
						|
            height: 24px;
 | 
						|
            border-radius: 50%;
 | 
						|
            background: #ccc;
 | 
						|
            color: white;
 | 
						|
            display: flex;
 | 
						|
            align-items: center;
 | 
						|
            justify-content: center;
 | 
						|
            font-size: 12px;
 | 
						|
            margin-right: 8px;
 | 
						|
        }
 | 
						|
        .step-line {
 | 
						|
            width: 40px;
 | 
						|
            height: 2px;
 | 
						|
            background: #ccc;
 | 
						|
            margin: 0 10px;
 | 
						|
        }
 | 
						|
        .step-line.completed {
 | 
						|
            background: #4CAF50;
 | 
						|
        }
 | 
						|
        .summary-card {
 | 
						|
            background: white;
 | 
						|
            border-radius: 8px;
 | 
						|
            margin: 15px 0;
 | 
						|
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
 | 
						|
            overflow: hidden;
 | 
						|
        }
 | 
						|
        .summary-header {
 | 
						|
            background: #4CAF50;
 | 
						|
            color: white;
 | 
						|
            padding: 15px;
 | 
						|
            font-weight: bold;
 | 
						|
            text-align: center;
 | 
						|
        }
 | 
						|
        .summary-content {
 | 
						|
            padding: 15px;
 | 
						|
        }
 | 
						|
        .summary-stats {
 | 
						|
            display: grid;
 | 
						|
            grid-template-columns: 1fr 1fr;
 | 
						|
            gap: 15px;
 | 
						|
            margin-bottom: 20px;
 | 
						|
        }
 | 
						|
        .stat-item {
 | 
						|
            text-align: center;
 | 
						|
            padding: 15px;
 | 
						|
            background: #f8f9fa;
 | 
						|
            border-radius: 8px;
 | 
						|
            border-left: 4px solid #4CAF50;
 | 
						|
        }
 | 
						|
        .stat-number {
 | 
						|
            font-size: 24px;
 | 
						|
            font-weight: bold;
 | 
						|
            color: #4CAF50;
 | 
						|
            margin-bottom: 5px;
 | 
						|
        }
 | 
						|
        .stat-label {
 | 
						|
            font-size: 12px;
 | 
						|
            color: #666;
 | 
						|
        }
 | 
						|
        .preview-table-container {
 | 
						|
            background: white;
 | 
						|
            border-radius: 8px;
 | 
						|
            overflow: hidden;
 | 
						|
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
 | 
						|
            margin: 20px 0;
 | 
						|
        }
 | 
						|
        .preview-table-header {
 | 
						|
            background: #f8f9fa;
 | 
						|
            padding: 15px;
 | 
						|
            border-bottom: 1px solid #eee;
 | 
						|
            font-weight: bold;
 | 
						|
            text-align: center;
 | 
						|
        }
 | 
						|
        .preview-table {
 | 
						|
            width: 100%;
 | 
						|
            border-collapse: separate;
 | 
						|
            border-spacing: 0;
 | 
						|
        }
 | 
						|
        .preview-table th {
 | 
						|
            background: #f8f9fa;
 | 
						|
            padding: 12px 8px;
 | 
						|
            text-align: center;
 | 
						|
            font-weight: bold;
 | 
						|
            font-size: 12px;
 | 
						|
            border-bottom: 2px solid #4CAF50;
 | 
						|
        }
 | 
						|
        .preview-table td {
 | 
						|
            padding: 12px 8px;
 | 
						|
            text-align: center;
 | 
						|
            border-bottom: 1px solid #eee;
 | 
						|
            font-size: 12px;
 | 
						|
        }
 | 
						|
        .preview-table tr:last-child td {
 | 
						|
            border-bottom: none;
 | 
						|
        }
 | 
						|
        .shop-name {
 | 
						|
            font-weight: bold;
 | 
						|
            color: #333;
 | 
						|
        }
 | 
						|
        .levels-before {
 | 
						|
            color: #999;
 | 
						|
            font-size: 11px;
 | 
						|
        }
 | 
						|
        .levels-after {
 | 
						|
            color: #4CAF50;
 | 
						|
            font-weight: bold;
 | 
						|
            font-size: 11px;
 | 
						|
        }
 | 
						|
        .member-count {
 | 
						|
            color: #666;
 | 
						|
            font-size: 11px;
 | 
						|
        }
 | 
						|
        .change-indicator {
 | 
						|
            display: inline-flex;
 | 
						|
            align-items: center;
 | 
						|
            gap: 3px;
 | 
						|
            font-size: 10px;
 | 
						|
        }
 | 
						|
        .change-arrow {
 | 
						|
            color: #4CAF50;
 | 
						|
            font-weight: bold;
 | 
						|
        }
 | 
						|
        .warning-section {
 | 
						|
            background: #fff3cd;
 | 
						|
            border: 1px solid #ffeaa7;
 | 
						|
            border-radius: 8px;
 | 
						|
            padding: 15px;
 | 
						|
            margin: 20px 0;
 | 
						|
            color: #856404;
 | 
						|
        }
 | 
						|
        .warning-title {
 | 
						|
            font-weight: bold;
 | 
						|
            margin-bottom: 10px;
 | 
						|
            display: flex;
 | 
						|
            align-items: center;
 | 
						|
            gap: 8px;
 | 
						|
        }
 | 
						|
        .warning-list {
 | 
						|
            margin-left: 20px;
 | 
						|
            font-size: 14px;
 | 
						|
        }
 | 
						|
        .warning-list li {
 | 
						|
            margin-bottom: 5px;
 | 
						|
        }
 | 
						|
        .action-buttons {
 | 
						|
            position: fixed;
 | 
						|
            bottom: 0;
 | 
						|
            left: 0;
 | 
						|
            right: 0;
 | 
						|
            background: white;
 | 
						|
            padding: 15px 20px;
 | 
						|
            border-top: 1px solid #eee;
 | 
						|
            display: flex;
 | 
						|
            gap: 10px;
 | 
						|
        }
 | 
						|
        .action-buttons .btn {
 | 
						|
            flex: 1;
 | 
						|
        }
 | 
						|
        .page-content {
 | 
						|
            padding-bottom: 80px;
 | 
						|
        }
 | 
						|
        .submit-progress {
 | 
						|
            display: none;
 | 
						|
            text-align: center;
 | 
						|
            margin: 20px 0;
 | 
						|
        }
 | 
						|
        .progress-bar {
 | 
						|
            width: 100%;
 | 
						|
            height: 8px;
 | 
						|
            background: #f0f0f0;
 | 
						|
            border-radius: 4px;
 | 
						|
            overflow: hidden;
 | 
						|
            margin: 10px 0;
 | 
						|
        }
 | 
						|
        .progress-fill {
 | 
						|
            height: 100%;
 | 
						|
            background: #4CAF50;
 | 
						|
            width: 0%;
 | 
						|
            transition: width 0.3s ease;
 | 
						|
        }
 | 
						|
    </style>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <div class="page-container">
 | 
						|
        <!-- 页面头部 -->
 | 
						|
        <div class="page-header">
 | 
						|
            <button class="back-btn" onclick="goBack()">←</button>
 | 
						|
            <div class="page-title">批量会员等级编辑</div>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <!-- 步骤指示器 -->
 | 
						|
        <div class="step-indicator">
 | 
						|
            <div class="step completed">
 | 
						|
                <div class="step-number">✓</div>
 | 
						|
                <span>选择店铺</span>
 | 
						|
            </div>
 | 
						|
            <div class="step-line completed"></div>
 | 
						|
            <div class="step completed">
 | 
						|
                <div class="step-number">✓</div>
 | 
						|
                <span>设置等级</span>
 | 
						|
            </div>
 | 
						|
            <div class="step-line completed"></div>
 | 
						|
            <div class="step active">
 | 
						|
                <div class="step-number">3</div>
 | 
						|
                <span>确认提交</span>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <!-- 页面内容 -->
 | 
						|
        <div class="page-content">
 | 
						|
            <!-- 操作摘要 -->
 | 
						|
            <div class="summary-card">
 | 
						|
                <div class="summary-header">
 | 
						|
                    批量操作摘要
 | 
						|
                </div>
 | 
						|
                <div class="summary-content">
 | 
						|
                    <div class="summary-stats">
 | 
						|
                        <div class="stat-item">
 | 
						|
                            <div class="stat-number" id="shop-count">0</div>
 | 
						|
                            <div class="stat-label">影响店铺数</div>
 | 
						|
                        </div>
 | 
						|
                        <div class="stat-item">
 | 
						|
                            <div class="stat-number" id="member-count">0</div>
 | 
						|
                            <div class="stat-label">影响会员数</div>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
 | 
						|
            <!-- 变更预览表格 -->
 | 
						|
            <div class="preview-table-container">
 | 
						|
                <div class="preview-table-header">
 | 
						|
                    变更详情预览
 | 
						|
                </div>
 | 
						|
                <table class="preview-table">
 | 
						|
                    <thead>
 | 
						|
                        <tr>
 | 
						|
                            <th>店铺名称</th>
 | 
						|
                            <th>变更前</th>
 | 
						|
                            <th>变更后</th>
 | 
						|
                            <th>影响会员</th>
 | 
						|
                        </tr>
 | 
						|
                    </thead>
 | 
						|
                    <tbody id="preview-table-body">
 | 
						|
                        <!-- 预览数据将通过JavaScript动态填充 -->
 | 
						|
                    </tbody>
 | 
						|
                </table>
 | 
						|
            </div>
 | 
						|
 | 
						|
            <!-- 警告提示 -->
 | 
						|
            <div class="warning-section">
 | 
						|
                <div class="warning-title">
 | 
						|
                    <span>⚠️</span>
 | 
						|
                    <span>重要提醒</span>
 | 
						|
                </div>
 | 
						|
                <ul class="warning-list">
 | 
						|
                    <li>此操作将<strong>覆盖</strong>所选店铺的现有会员等级设置</li>
 | 
						|
                    <li>操作执行后将<strong>立即生效</strong>,影响现有会员权益</li>
 | 
						|
                    <li>建议在非营业时间执行此操作</li>
 | 
						|
                    <li>操作完成后建议通知相关会员新的等级变更</li>
 | 
						|
                </ul>
 | 
						|
            </div>
 | 
						|
 | 
						|
            <!-- 提交进度 -->
 | 
						|
            <div class="submit-progress" id="submit-progress">
 | 
						|
                <div>正在提交批量设置...</div>
 | 
						|
                <div class="progress-bar">
 | 
						|
                    <div class="progress-fill" id="progress-fill"></div>
 | 
						|
                </div>
 | 
						|
                <div id="progress-text">准备中...</div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <!-- 底部操作按钮 -->
 | 
						|
        <div class="action-buttons" id="action-buttons">
 | 
						|
            <button class="btn btn-secondary" onclick="previousStep()">返回修改</button>
 | 
						|
            <button class="btn btn-primary" onclick="confirmSubmit()">确认提交</button>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <script src="../js/mobile-common.js"></script>
 | 
						|
    <script src="../js/pages/batch-edit-step3.js"></script>
 | 
						|
</body>
 | 
						|
</html> |