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>
							 |