This commit is contained in:
		
							parent
							
								
									98667e0b29
								
							
						
					
					
						commit
						35f3076d73
					
				|  | @ -0,0 +1,463 @@ | |||
| <!DOCTYPE html> | ||||
| <html lang="zh-CN"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>已选择商品</title> | ||||
|     <style> | ||||
|         * { | ||||
|             margin: 0; | ||||
|             padding: 0; | ||||
|             box-sizing: border-box; | ||||
|         } | ||||
| 
 | ||||
|         body { | ||||
|             font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; | ||||
|             background-color: rgba(0, 0, 0, 0.5); | ||||
|             display: flex; | ||||
|             justify-content: center; | ||||
|             align-items: center; | ||||
|             min-height: 100vh; | ||||
|             padding: 20px; | ||||
|         } | ||||
| 
 | ||||
|         .modal { | ||||
|             background: white; | ||||
|             border-radius: 8px; | ||||
|             box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); | ||||
|             width: 100%; | ||||
|             max-width: 500px; | ||||
|             position: relative; | ||||
|             overflow: hidden; | ||||
|         } | ||||
| 
 | ||||
|         .modal-header { | ||||
|             display: flex; | ||||
|             justify-content: space-between; | ||||
|             align-items: center; | ||||
|             padding: 20px 24px; | ||||
|             border-bottom: 1px solid #f0f0f0; | ||||
|             background-color: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         .modal-title { | ||||
|             font-size: 18px; | ||||
|             font-weight: 600; | ||||
|             color: #333; | ||||
|         } | ||||
| 
 | ||||
|         .close-btn { | ||||
|             width: 24px; | ||||
|             height: 24px; | ||||
|             border: none; | ||||
|             background: none; | ||||
|             cursor: pointer; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             color: #666; | ||||
|             font-size: 18px; | ||||
|             border-radius: 4px; | ||||
|             transition: background-color 0.2s; | ||||
|         } | ||||
| 
 | ||||
|         .close-btn:hover { | ||||
|             background-color: #f5f5f5; | ||||
|         } | ||||
| 
 | ||||
|         .modal-content { | ||||
|             padding: 24px; | ||||
|         } | ||||
| 
 | ||||
|         .product-info { | ||||
|             margin-bottom: 24px; | ||||
|             padding: 16px; | ||||
|             background-color: #f8f9fa; | ||||
|             border-radius: 6px; | ||||
|             border: 1px solid #e9ecef; | ||||
|         } | ||||
| 
 | ||||
|         .info-row { | ||||
|             display: flex; | ||||
|             margin-bottom: 8px; | ||||
|             font-size: 14px; | ||||
|         } | ||||
| 
 | ||||
|         .info-row:last-child { | ||||
|             margin-bottom: 0; | ||||
|         } | ||||
| 
 | ||||
|         .info-label { | ||||
|             color: #666; | ||||
|             width: 80px; | ||||
|             flex-shrink: 0; | ||||
|         } | ||||
| 
 | ||||
|         .info-value { | ||||
|             color: #333; | ||||
|             flex: 1; | ||||
|         } | ||||
| 
 | ||||
|         .form-group { | ||||
|             margin-bottom: 20px; | ||||
|         } | ||||
| 
 | ||||
|         .form-label { | ||||
|             display: block; | ||||
|             margin-bottom: 8px; | ||||
|             font-size: 14px; | ||||
|             color: #333; | ||||
|             font-weight: 500; | ||||
|         } | ||||
| 
 | ||||
|         .required { | ||||
|             color: #ff4757; | ||||
|         } | ||||
| 
 | ||||
|         .input-wrapper { | ||||
|             position: relative; | ||||
|         } | ||||
| 
 | ||||
|         .form-input { | ||||
|             width: 100%; | ||||
|             padding: 10px 12px; | ||||
|             border: 1px solid #d9d9d9; | ||||
|             border-radius: 4px; | ||||
|             font-size: 14px; | ||||
|             transition: border-color 0.2s; | ||||
|         } | ||||
| 
 | ||||
|         .form-input:focus { | ||||
|             outline: none; | ||||
|             border-color: #1890ff; | ||||
|             box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); | ||||
|         } | ||||
| 
 | ||||
|         .number-input-group { | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             border: 1px solid #d9d9d9; | ||||
|             border-radius: 4px; | ||||
|             overflow: hidden; | ||||
|             background: white; | ||||
|         } | ||||
| 
 | ||||
|         .number-input-group:focus-within { | ||||
|             border-color: #1890ff; | ||||
|             box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); | ||||
|         } | ||||
| 
 | ||||
|         .number-btn { | ||||
|             width: 32px; | ||||
|             height: 40px; | ||||
|             border: none; | ||||
|             background: #fafafa; | ||||
|             cursor: pointer; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             font-size: 16px; | ||||
|             color: #666; | ||||
|             transition: background-color 0.2s; | ||||
|         } | ||||
| 
 | ||||
|         .number-btn:hover { | ||||
|             background-color: #f0f0f0; | ||||
|         } | ||||
| 
 | ||||
|         .number-btn:disabled { | ||||
|             cursor: not-allowed; | ||||
|             color: #ccc; | ||||
|         } | ||||
| 
 | ||||
|         .number-input { | ||||
|             flex: 1; | ||||
|             border: none; | ||||
|             padding: 10px 12px; | ||||
|             font-size: 14px; | ||||
|             text-align: center; | ||||
|             outline: none; | ||||
|         } | ||||
| 
 | ||||
|         .select-wrapper { | ||||
|             position: relative; | ||||
|         } | ||||
| 
 | ||||
|         .form-select { | ||||
|             width: 100%; | ||||
|             padding: 10px 32px 10px 12px; | ||||
|             border: 1px solid #d9d9d9; | ||||
|             border-radius: 4px; | ||||
|             font-size: 14px; | ||||
|             background: white; | ||||
|             cursor: pointer; | ||||
|             appearance: none; | ||||
|             -webkit-appearance: none; | ||||
|             -moz-appearance: none; | ||||
|         } | ||||
| 
 | ||||
|         .form-select:focus { | ||||
|             outline: none; | ||||
|             border-color: #1890ff; | ||||
|             box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); | ||||
|         } | ||||
| 
 | ||||
|         .select-arrow { | ||||
|             position: absolute; | ||||
|             right: 12px; | ||||
|             top: 50%; | ||||
|             transform: translateY(-50%); | ||||
|             pointer-events: none; | ||||
|             color: #666; | ||||
|         } | ||||
| 
 | ||||
|         .limit-setting { | ||||
|             display: flex; | ||||
|             gap: 12px; | ||||
|             align-items: flex-end; | ||||
|         } | ||||
| 
 | ||||
|         .limit-input { | ||||
|             flex: 1; | ||||
|         } | ||||
| 
 | ||||
|         .limit-select { | ||||
|             flex: 0 0 100px; | ||||
|         } | ||||
| 
 | ||||
|         .modal-footer { | ||||
|             padding: 16px 24px; | ||||
|             border-top: 1px solid #f0f0f0; | ||||
|             display: flex; | ||||
|             gap: 12px; | ||||
|             justify-content: flex-end; | ||||
|         } | ||||
| 
 | ||||
|         .btn { | ||||
|             padding: 8px 24px; | ||||
|             border-radius: 4px; | ||||
|             font-size: 14px; | ||||
|             cursor: pointer; | ||||
|             transition: all 0.2s; | ||||
|             border: 1px solid; | ||||
|             min-width: 80px; | ||||
|         } | ||||
| 
 | ||||
|         .btn-cancel { | ||||
|             background: white; | ||||
|             color: #666; | ||||
|             border-color: #d9d9d9; | ||||
|         } | ||||
| 
 | ||||
|         .btn-cancel:hover { | ||||
|             background: #f5f5f5; | ||||
|             border-color: #bfbfbf; | ||||
|         } | ||||
| 
 | ||||
|         .btn-primary { | ||||
|             background: #1890ff; | ||||
|             color: white; | ||||
|             border-color: #1890ff; | ||||
|         } | ||||
| 
 | ||||
|         .btn-primary:hover { | ||||
|             background: #40a9ff; | ||||
|             border-color: #40a9ff; | ||||
|         } | ||||
| 
 | ||||
|         @media (max-width: 480px) { | ||||
|             .modal { | ||||
|                 margin: 0; | ||||
|                 border-radius: 0; | ||||
|                 height: 100vh; | ||||
|                 max-width: none; | ||||
|             } | ||||
|              | ||||
|             .modal-content { | ||||
|                 padding: 20px; | ||||
|             } | ||||
|              | ||||
|             .modal-footer { | ||||
|                 padding: 16px 20px; | ||||
|             } | ||||
|              | ||||
|             .btn { | ||||
|                 flex: 1; | ||||
|             } | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| <body> | ||||
|     <div class="modal"> | ||||
|         <div class="modal-header"> | ||||
|             <h2 class="modal-title">已选择商品</h2> | ||||
|             <button class="close-btn" onclick="closeModal()">×</button> | ||||
|         </div> | ||||
|          | ||||
|         <div class="modal-content"> | ||||
|             <div class="product-info"> | ||||
|                 <div class="info-row"> | ||||
|                     <span class="info-label">商品ID:</span> | ||||
|                     <span class="info-value">192401649879976960</span> | ||||
|                 </div> | ||||
|                 <div class="info-row"> | ||||
|                     <span class="info-label">商品名称:</span> | ||||
|                     <span class="info-value">黑木耳100g</span> | ||||
|                 </div> | ||||
|                 <div class="info-row"> | ||||
|                     <span class="info-label">归属摊位:</span> | ||||
|                     <span class="info-value">牛生蔬菜店</span> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="form-group"> | ||||
|                 <label class="form-label">SKU-ID</label> | ||||
|                 <input type="text" class="form-input" value="194105142774503836" readonly> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="form-group"> | ||||
|                 <label class="form-label">兑换所需积分设置 <span class="required">*</span></label> | ||||
|                 <div class="number-input-group"> | ||||
|                     <button class="number-btn" onclick="decreasePoints()">-</button> | ||||
|                     <input type="number" class="number-input" id="pointsInput" value="1" min="1"> | ||||
|                     <button class="number-btn" onclick="increasePoints()">+</button> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="form-group"> | ||||
|                 <label class="form-label">兑换库存设置 <span class="required">*</span></label> | ||||
|                 <div class="number-input-group"> | ||||
|                     <button class="number-btn" onclick="decreaseStock()">-</button> | ||||
|                     <input type="number" class="number-input" id="stockInput" value="10" min="0"> | ||||
|                     <button class="number-btn" onclick="increaseStock()">+</button> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="form-group"> | ||||
|                 <label class="form-label">限制兑换(每人购买不超) <span class="required">*</span></label> | ||||
|                 <div class="limit-setting"> | ||||
|                     <div class="limit-input"> | ||||
|                         <div class="number-input-group"> | ||||
|                             <button class="number-btn" onclick="decreaseLimit()">-</button> | ||||
|                             <input type="number" class="number-input" id="limitInput" value="0" min="0"> | ||||
|                             <button class="number-btn" onclick="increaseLimit()">+</button> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     <div class="limit-select"> | ||||
|                         <div class="select-wrapper"> | ||||
|                             <select class="form-select" id="limitType"> | ||||
|                                 <option value="daily">每天</option> | ||||
|                                 <option value="weekly">每周</option> | ||||
|                                 <option value="monthly">每月</option> | ||||
|                                 <option value="total">总计</option> | ||||
|                             </select> | ||||
|                             <span class="select-arrow">▼</span> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <div class="modal-footer"> | ||||
|             <button class="btn btn-cancel" onclick="closeModal()">取消</button> | ||||
|             <button class="btn btn-primary" onclick="confirmSelection()">确认</button> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <script> | ||||
|         // 积分设置 | ||||
|         function increasePoints() { | ||||
|             const input = document.getElementById('pointsInput'); | ||||
|             input.value = parseInt(input.value) + 1; | ||||
|         } | ||||
| 
 | ||||
|         function decreasePoints() { | ||||
|             const input = document.getElementById('pointsInput'); | ||||
|             const currentValue = parseInt(input.value); | ||||
|             if (currentValue > 1) { | ||||
|                 input.value = currentValue - 1; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // 库存设置 | ||||
|         function increaseStock() { | ||||
|             const input = document.getElementById('stockInput'); | ||||
|             input.value = parseInt(input.value) + 1; | ||||
|         } | ||||
| 
 | ||||
|         function decreaseStock() { | ||||
|             const input = document.getElementById('stockInput'); | ||||
|             const currentValue = parseInt(input.value); | ||||
|             if (currentValue > 0) { | ||||
|                 input.value = currentValue - 1; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // 限制兑换设置 | ||||
|         function increaseLimit() { | ||||
|             const input = document.getElementById('limitInput'); | ||||
|             input.value = parseInt(input.value) + 1; | ||||
|         } | ||||
| 
 | ||||
|         function decreaseLimit() { | ||||
|             const input = document.getElementById('limitInput'); | ||||
|             const currentValue = parseInt(input.value); | ||||
|             if (currentValue > 0) { | ||||
|                 input.value = currentValue - 1; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // 关闭弹窗 | ||||
|         function closeModal() { | ||||
|             // 这里可以添加关闭弹窗的逻辑 | ||||
|             console.log('关闭弹窗'); | ||||
|             // 实际应用中可能会隐藏弹窗或者跳转页面 | ||||
|             // window.close(); // 如果是新窗口 | ||||
|             // 或者隐藏弹窗元素 | ||||
|         } | ||||
| 
 | ||||
|         // 确认选择 | ||||
|         function confirmSelection() { | ||||
|             const points = document.getElementById('pointsInput').value; | ||||
|             const stock = document.getElementById('stockInput').value; | ||||
|             const limit = document.getElementById('limitInput').value; | ||||
|             const limitType = document.getElementById('limitType').value; | ||||
| 
 | ||||
|             // 验证必填项 | ||||
|             if (!points || !stock || limit === '') { | ||||
|                 alert('请填写所有必填项'); | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             // 这里可以添加提交数据的逻辑 | ||||
|             const data = { | ||||
|                 productId: '192401649879976960', | ||||
|                 productName: '黑木耳100g', | ||||
|                 shopName: '牛生蔬菜店', | ||||
|                 skuId: '194105142774503836', | ||||
|                 points: points, | ||||
|                 stock: stock, | ||||
|                 limit: limit, | ||||
|                 limitType: limitType | ||||
|             }; | ||||
| 
 | ||||
|             console.log('提交数据:', data); | ||||
|             alert('设置成功!'); | ||||
|         } | ||||
| 
 | ||||
|         // 键盘事件处理 | ||||
|         document.addEventListener('keydown', function(e) { | ||||
|             if (e.key === 'Escape') { | ||||
|                 closeModal(); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         // 点击背景关闭弹窗 | ||||
|         document.addEventListener('click', function(e) { | ||||
|             if (e.target === document.body) { | ||||
|                 closeModal(); | ||||
|             } | ||||
|         }); | ||||
|     </script> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,302 @@ | |||
| <!DOCTYPE html> | ||||
| <html lang="zh-CN"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>积分商城 - 商品管理</title> | ||||
|     <style> | ||||
|         * { | ||||
|             margin: 0; | ||||
|             padding: 0; | ||||
|             box-sizing: border-box; | ||||
|         } | ||||
| 
 | ||||
|         body { | ||||
|             font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | ||||
|             background-color: #f5f5f5; | ||||
|             color: #333; | ||||
|             line-height: 1.6; | ||||
|         } | ||||
| 
 | ||||
|         .container { | ||||
|             max-width: 1200px; | ||||
|             margin: 0 auto; | ||||
|             padding: 20px; | ||||
|             background-color: white; | ||||
|             min-height: 100vh; | ||||
|         } | ||||
| 
 | ||||
|         .header { | ||||
|             border: 1px dashed #ccc; | ||||
|             padding: 20px; | ||||
|             margin-bottom: 20px; | ||||
|             background-color: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         .search-section { | ||||
|             display: flex; | ||||
|             gap: 15px; | ||||
|             align-items: center; | ||||
|             flex-wrap: wrap; | ||||
|         } | ||||
| 
 | ||||
|         .search-group { | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             gap: 8px; | ||||
|         } | ||||
| 
 | ||||
|         .search-group label { | ||||
|             font-size: 14px; | ||||
|             color: #666; | ||||
|             white-space: nowrap; | ||||
|         } | ||||
| 
 | ||||
|         .search-input { | ||||
|             padding: 8px 12px; | ||||
|             border: 1px dashed #ccc; | ||||
|             background-color: white; | ||||
|             font-size: 14px; | ||||
|             width: 180px; | ||||
|             outline: none; | ||||
|         } | ||||
| 
 | ||||
|         .search-input:focus { | ||||
|             border-color: #999; | ||||
|             background-color: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         .search-input::placeholder { | ||||
|             color: #999; | ||||
|             font-size: 12px; | ||||
|         } | ||||
| 
 | ||||
|         .search-btn { | ||||
|             padding: 8px 20px; | ||||
|             background-color: #333; | ||||
|             border: 1px solid #333; | ||||
|             color: white; | ||||
|             cursor: pointer; | ||||
|             font-size: 14px; | ||||
|             margin-left: 15px; | ||||
|         } | ||||
| 
 | ||||
|         .search-btn:hover { | ||||
|             background-color: #555; | ||||
|             border-color: #555; | ||||
|         } | ||||
| 
 | ||||
|         .table-section { | ||||
|             border: 1px dashed #ccc; | ||||
|             background-color: white; | ||||
|         } | ||||
| 
 | ||||
|         .table-container { | ||||
|             overflow-x: auto; | ||||
|         } | ||||
| 
 | ||||
|         table { | ||||
|             width: 100%; | ||||
|             border-collapse: collapse; | ||||
|             background-color: white; | ||||
|         } | ||||
| 
 | ||||
|         th, td { | ||||
|             padding: 12px 15px; | ||||
|             text-align: left; | ||||
|             border: 1px dashed #ddd; | ||||
|         } | ||||
| 
 | ||||
|         th { | ||||
|             background-color: #f8f8f8; | ||||
|             font-weight: 500; | ||||
|             color: #555; | ||||
|             font-size: 14px; | ||||
|         } | ||||
| 
 | ||||
|         td { | ||||
|             font-size: 14px; | ||||
|             color: #333; | ||||
|         } | ||||
| 
 | ||||
|         tr:nth-child(even) { | ||||
|             background-color: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         tr:hover { | ||||
|             background-color: #f0f0f0; | ||||
|         } | ||||
| 
 | ||||
|         .action-btn { | ||||
|             padding: 6px 12px; | ||||
|             background-color: white; | ||||
|             border: 1px dashed #ccc; | ||||
|             color: #666; | ||||
|             cursor: pointer; | ||||
|             font-size: 12px; | ||||
|             text-decoration: none; | ||||
|             display: inline-block; | ||||
|         } | ||||
| 
 | ||||
|         .action-btn:hover { | ||||
|             background-color: #f5f5f5; | ||||
|             border-color: #999; | ||||
|             color: #333; | ||||
|         } | ||||
| 
 | ||||
|         .pagination { | ||||
|             margin-top: 20px; | ||||
|             text-align: center; | ||||
|             padding: 20px; | ||||
|             border: 1px dashed #ccc; | ||||
|             background-color: #fafafa; | ||||
|         } | ||||
| 
 | ||||
|         .pagination-container { | ||||
|             display: inline-flex; | ||||
|             align-items: center; | ||||
|             gap: 10px; | ||||
|         } | ||||
| 
 | ||||
|         .page-btn { | ||||
|             padding: 8px 12px; | ||||
|             background-color: white; | ||||
|             border: 1px dashed #ccc; | ||||
|             color: #666; | ||||
|             text-decoration: none; | ||||
|             font-size: 14px; | ||||
|             cursor: pointer; | ||||
|         } | ||||
| 
 | ||||
|         .page-btn:hover { | ||||
|             background-color: #f0f0f0; | ||||
|             border-color: #999; | ||||
|             color: #333; | ||||
|         } | ||||
| 
 | ||||
|         .page-btn.active { | ||||
|             background-color: #f0f0f0; | ||||
|             border-color: #333; | ||||
|             color: #333; | ||||
|         } | ||||
| 
 | ||||
|         .page-btn.disabled { | ||||
|             opacity: 0.5; | ||||
|             cursor: not-allowed; | ||||
|         } | ||||
| 
 | ||||
|         .page-btn.disabled:hover { | ||||
|             background-color: white; | ||||
|             border-color: #ccc; | ||||
|             color: #666; | ||||
|         } | ||||
| 
 | ||||
|         @media (max-width: 768px) { | ||||
|             .container { | ||||
|                 padding: 10px; | ||||
|             } | ||||
| 
 | ||||
|             .search-section { | ||||
|                 flex-direction: column; | ||||
|                 align-items: stretch; | ||||
|             } | ||||
| 
 | ||||
|             .search-group { | ||||
|                 flex-direction: column; | ||||
|                 align-items: stretch; | ||||
|                 gap: 5px; | ||||
|             } | ||||
| 
 | ||||
|             .search-input { | ||||
|                 width: 100%; | ||||
|             } | ||||
| 
 | ||||
|             .search-btn { | ||||
|                 margin-left: 0; | ||||
|                 margin-top: 10px; | ||||
|             } | ||||
| 
 | ||||
|             .table-container { | ||||
|                 font-size: 12px; | ||||
|             } | ||||
| 
 | ||||
|             th, td { | ||||
|                 padding: 8px 10px; | ||||
|             } | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| <body> | ||||
|     <div class="container"> | ||||
|         <!-- 搜索区域 --> | ||||
|         <div class="header"> | ||||
|             <div class="search-section"> | ||||
|                 <div class="search-group"> | ||||
|                     <label>店铺</label> | ||||
|                     <input type="text" class="search-input" placeholder="请输入店铺名称"> | ||||
|                 </div> | ||||
|                 <div class="search-group"> | ||||
|                     <label>商品名称</label> | ||||
|                     <input type="text" class="search-input" placeholder="请输入商品名称"> | ||||
|                 </div> | ||||
|                 <div class="search-group"> | ||||
|                     <label>商品id</label> | ||||
|                     <input type="text" class="search-input" placeholder="请输入商品ID"> | ||||
|                 </div> | ||||
|                 <button class="search-btn">查询</button> | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <!-- 表格区域 --> | ||||
|         <div class="table-section"> | ||||
|             <div class="table-container"> | ||||
|                 <table> | ||||
|                     <thead> | ||||
|                         <tr> | ||||
|                             <th>商品店铺</th> | ||||
|                             <th>商品名称</th> | ||||
|                             <th>商品id</th> | ||||
|                             <th>商品价格</th> | ||||
|                             <th>操作</th> | ||||
|                         </tr> | ||||
|                     </thead> | ||||
|                     <tbody> | ||||
|                         <tr> | ||||
|                             <td>猪肉铺</td> | ||||
|                             <td>猪肉</td> | ||||
|                             <td>1212</td> | ||||
|                             <td>2元</td> | ||||
|                             <td><a href="#" class="action-btn">添加</a></td> | ||||
|                         </tr> | ||||
|                         <tr> | ||||
|                             <td>牛肉铺</td> | ||||
|                             <td>牛肉</td> | ||||
|                             <td>1213</td> | ||||
|                             <td>5元</td> | ||||
|                             <td><a href="#" class="action-btn">添加</a></td> | ||||
|                         </tr> | ||||
|                         <tr> | ||||
|                             <td>鸡肉铺</td> | ||||
|                             <td>鸡肉</td> | ||||
|                             <td>1214</td> | ||||
|                             <td>3元</td> | ||||
|                             <td><a href="#" class="action-btn">添加</a></td> | ||||
|                         </tr> | ||||
|                     </tbody> | ||||
|                 </table> | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <!-- 分页区域 --> | ||||
|         <div class="pagination"> | ||||
|             <div class="pagination-container"> | ||||
|                 <a href="#" class="page-btn disabled">Previous</a> | ||||
|                 <span class="page-btn active">1</span> | ||||
|                 <a href="#" class="page-btn">2</a> | ||||
|                 <a href="#" class="page-btn">3</a> | ||||
|                 <a href="#" class="page-btn">Next</a> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -306,6 +306,8 @@ | |||
|         <button class="trigger-btn" onclick="openSigninModal()">打开每日积分设置</button> | ||||
|         <button class="trigger-btn" onclick="openBrowseModal()">打开浏览商品积分配置</button> | ||||
|         <button class="trigger-btn" onclick="openPurchaseModal()">打开购买商品任务配置</button> | ||||
|         <button class="trigger-btn" onclick="openShareModal()">打开分享商品任务配置</button> | ||||
|         <button class="trigger-btn" onclick="openReviewModal()">打开评价商品任务配置</button> | ||||
|     </div> | ||||
| 
 | ||||
|     <!-- 每日积分设置弹窗 --> | ||||
|  | @ -505,6 +507,86 @@ | |||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <!-- 分享商品任务配置弹窗 --> | ||||
|     <div class="modal-overlay modal-hidden" id="shareModal"> | ||||
|         <div class="modal-container"> | ||||
|             <!-- 弹窗头部 --> | ||||
|             <div class="modal-header"> | ||||
|                 <div class="modal-title">分享商品任务配置</div> | ||||
|                 <button class="close-btn" onclick="closeShareModal()">×</button> | ||||
|             </div> | ||||
| 
 | ||||
|             <!-- 弹窗内容 --> | ||||
|             <div class="modal-body"> | ||||
|                 <!-- 每分享1个商品1次获得积分 --> | ||||
|                 <div class="inline-text-item"> | ||||
|                     <span class="required">*</span> | ||||
|                     <div class="inline-text-wrapper"> | ||||
|                         <span>每分享1个商品1次获得</span> | ||||
|                         <input type="number" class="inline-input" value="0" id="sharePoints"> | ||||
|                         <span>积分</span> | ||||
|                     </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                 <!-- 该任务每日最高获得积分 --> | ||||
|                 <div class="inline-text-item"> | ||||
|                     <span class="required">*</span> | ||||
|                     <div class="inline-text-wrapper"> | ||||
|                         <span>该任务每日最高获得</span> | ||||
|                         <input type="number" class="inline-input" value="0" id="maxSharePoints"> | ||||
|                         <span>积分</span> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <!-- 弹窗底部 --> | ||||
|             <div class="modal-footer"> | ||||
|                 <button class="btn btn-cancel" onclick="closeShareModal()">取消</button> | ||||
|                 <button class="btn btn-confirm" onclick="confirmShareSettings()">确认</button> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <!-- 评价商品任务配置弹窗 --> | ||||
|     <div class="modal-overlay modal-hidden" id="reviewModal"> | ||||
|         <div class="modal-container"> | ||||
|             <!-- 弹窗头部 --> | ||||
|             <div class="modal-header"> | ||||
|                 <div class="modal-title">评价商品任务配置</div> | ||||
|                 <button class="close-btn" onclick="closeReviewModal()">×</button> | ||||
|             </div> | ||||
| 
 | ||||
|             <!-- 弹窗内容 --> | ||||
|             <div class="modal-body"> | ||||
|                 <!-- 评价1个商品获得积分 --> | ||||
|                 <div class="inline-text-item"> | ||||
|                     <span class="required">*</span> | ||||
|                     <div class="inline-text-wrapper"> | ||||
|                         <span>评价1个商品获得</span> | ||||
|                         <input type="number" class="inline-input" value="0" id="reviewPoints"> | ||||
|                         <span>积分</span> | ||||
|                     </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                 <!-- 该任务每日最高获得积分 --> | ||||
|                 <div class="inline-text-item"> | ||||
|                     <span class="required">*</span> | ||||
|                     <div class="inline-text-wrapper"> | ||||
|                         <span>该任务每日最高获得</span> | ||||
|                         <input type="number" class="inline-input" value="0" id="maxReviewPoints"> | ||||
|                         <span>积分</span> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <!-- 弹窗底部 --> | ||||
|             <div class="modal-footer"> | ||||
|                 <button class="btn btn-cancel" onclick="closeReviewModal()">取消</button> | ||||
|                 <button class="btn btn-confirm" onclick="confirmReviewSettings()">确认</button> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <script> | ||||
|         // 打开每日积分设置弹窗 | ||||
|         function openSigninModal() { | ||||
|  | @ -604,6 +686,60 @@ | |||
|             closePurchaseModal(); | ||||
|         } | ||||
| 
 | ||||
|         // 打开分享商品任务配置弹窗 | ||||
|         function openShareModal() { | ||||
|             const modal = document.getElementById('shareModal'); | ||||
|             modal.classList.remove('modal-hidden'); | ||||
|             console.log('分享商品任务配置弹窗已打开'); | ||||
|         } | ||||
| 
 | ||||
|         // 关闭分享商品任务配置弹窗 | ||||
|         function closeShareModal() { | ||||
|             const modal = document.getElementById('shareModal'); | ||||
|             modal.classList.add('modal-hidden'); | ||||
|             console.log('分享商品任务配置弹窗已关闭'); | ||||
|         } | ||||
| 
 | ||||
|         // 确认分享商品任务配置 | ||||
|         function confirmShareSettings() { | ||||
|             const sharePoints = document.getElementById('sharePoints').value; | ||||
|             const maxSharePoints = document.getElementById('maxSharePoints').value; | ||||
|             const settings = { | ||||
|                 sharePoints: sharePoints, | ||||
|                 maxSharePoints: maxSharePoints | ||||
|             }; | ||||
|             console.log('分享商品任务配置:', settings); | ||||
|             alert('分享商品任务配置已保存(演示)'); | ||||
|             closeShareModal(); | ||||
|         } | ||||
| 
 | ||||
|         // 打开评价商品任务配置弹窗 | ||||
|         function openReviewModal() { | ||||
|             const modal = document.getElementById('reviewModal'); | ||||
|             modal.classList.remove('modal-hidden'); | ||||
|             console.log('评价商品任务配置弹窗已打开'); | ||||
|         } | ||||
| 
 | ||||
|         // 关闭评价商品任务配置弹窗 | ||||
|         function closeReviewModal() { | ||||
|             const modal = document.getElementById('reviewModal'); | ||||
|             modal.classList.add('modal-hidden'); | ||||
|             console.log('评价商品任务配置弹窗已关闭'); | ||||
|         } | ||||
| 
 | ||||
|         // 确认评价商品任务配置 | ||||
|         function confirmReviewSettings() { | ||||
|             const reviewPoints = document.getElementById('reviewPoints').value; | ||||
|             const maxReviewPoints = document.getElementById('maxReviewPoints').value; | ||||
|             const settings = { | ||||
|                 reviewPoints: reviewPoints, | ||||
|                 maxReviewPoints: maxReviewPoints | ||||
|             }; | ||||
|             console.log('评价商品任务配置:', settings); | ||||
|             alert('评价商品任务配置已保存(演示)'); | ||||
|             closeReviewModal(); | ||||
|         } | ||||
| 
 | ||||
|         // 点击遮罩关闭每日积分设置弹窗 | ||||
|         document.getElementById('signinModal').addEventListener('click', function(e) { | ||||
|             if (e.target === this) { | ||||
|  | @ -625,6 +761,20 @@ | |||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         // 点击遮罩关闭分享商品任务配置弹窗 | ||||
|         document.getElementById('shareModal').addEventListener('click', function(e) { | ||||
|             if (e.target === this) { | ||||
|                 closeShareModal(); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         // 点击遮罩关闭评价商品任务配置弹窗 | ||||
|         document.getElementById('reviewModal').addEventListener('click', function(e) { | ||||
|             if (e.target === this) { | ||||
|                 closeReviewModal(); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         // 阻止弹窗内容区域的点击事件冒泡 | ||||
|         document.querySelectorAll('.modal-container').forEach(container => { | ||||
|             container.addEventListener('click', function(e) { | ||||
		Loading…
	
		Reference in New Issue