| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  | <!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: #f5f7fa; | 
					
						
							|  |  |  |  |             padding: 20px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .container { | 
					
						
							|  |  |  |  |             max-width: 1600px; | 
					
						
							|  |  |  |  |             margin: 0 auto; | 
					
						
							|  |  |  |  |             background: white; | 
					
						
							|  |  |  |  |             padding: 20px; | 
					
						
							|  |  |  |  |             border-radius: 8px; | 
					
						
							|  |  |  |  |             box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 搜索栏样式 */ | 
					
						
							|  |  |  |  |         .search-bar { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             gap: 15px; | 
					
						
							|  |  |  |  |             margin-bottom: 20px; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             flex-wrap: wrap; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .search-bar input, | 
					
						
							|  |  |  |  |         .search-bar select { | 
					
						
							|  |  |  |  |             padding: 8px 12px; | 
					
						
							|  |  |  |  |             border: 1px solid #dcdfe6; | 
					
						
							|  |  |  |  |             border-radius: 4px; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             outline: none; | 
					
						
							|  |  |  |  |             min-width: 180px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .search-bar input:focus, | 
					
						
							|  |  |  |  |         .search-bar select:focus { | 
					
						
							|  |  |  |  |             border-color: #409eff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .search-bar input::placeholder { | 
					
						
							|  |  |  |  |             color: #c0c4cc; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn { | 
					
						
							|  |  |  |  |             padding: 8px 20px; | 
					
						
							|  |  |  |  |             border: none; | 
					
						
							|  |  |  |  |             border-radius: 4px; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |             transition: all 0.3s; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-primary { | 
					
						
							|  |  |  |  |             background-color: #409eff; | 
					
						
							|  |  |  |  |             color: white; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-primary:hover { | 
					
						
							|  |  |  |  |             background-color: #66b1ff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-success { | 
					
						
							|  |  |  |  |             background-color: #67c23a; | 
					
						
							|  |  |  |  |             color: white; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-success:hover { | 
					
						
							|  |  |  |  |             background-color: #85ce61; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-small { | 
					
						
							|  |  |  |  |             padding: 5px 12px; | 
					
						
							|  |  |  |  |             font-size: 12px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-danger { | 
					
						
							|  |  |  |  |             background-color: #f56c6c; | 
					
						
							|  |  |  |  |             color: white; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-danger:hover { | 
					
						
							|  |  |  |  |             background-color: #f78989; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 新增按钮 */ | 
					
						
							|  |  |  |  |         .add-section { | 
					
						
							|  |  |  |  |             margin-bottom: 15px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 表格样式 */ | 
					
						
							|  |  |  |  |         .table-wrapper { | 
					
						
							|  |  |  |  |             overflow-x: auto; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         table { | 
					
						
							|  |  |  |  |             width: 100%; | 
					
						
							|  |  |  |  |             border-collapse: collapse; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         thead { | 
					
						
							|  |  |  |  |             background-color: #f5f7fa; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         th { | 
					
						
							|  |  |  |  |             padding: 12px 8px; | 
					
						
							|  |  |  |  |             text-align: center; | 
					
						
							|  |  |  |  |             font-weight: 500; | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             border-bottom: 1px solid #ebeef5; | 
					
						
							|  |  |  |  |             white-space: nowrap; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         td { | 
					
						
							|  |  |  |  |             padding: 12px 8px; | 
					
						
							|  |  |  |  |             text-align: center; | 
					
						
							|  |  |  |  |             border-bottom: 1px solid #ebeef5; | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         tbody tr:hover { | 
					
						
							|  |  |  |  |             background-color: #f5f7fa; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 操作按钮组 */ | 
					
						
							|  |  |  |  |         .action-buttons { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             flex-direction: column; | 
					
						
							|  |  |  |  |             gap: 8px; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .action-row { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             gap: 5px; | 
					
						
							|  |  |  |  |             justify-content: center; | 
					
						
							|  |  |  |  |             flex-wrap: wrap; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 状态标签 */ | 
					
						
							|  |  |  |  |         .status-normal { | 
					
						
							|  |  |  |  |             color: #67c23a; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .status-disabled { | 
					
						
							|  |  |  |  |             color: #909399; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .business-status { | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 模态框样式 */ | 
					
						
							|  |  |  |  |         .modal { | 
					
						
							|  |  |  |  |             display: none; | 
					
						
							|  |  |  |  |             position: fixed; | 
					
						
							|  |  |  |  |             top: 0; | 
					
						
							|  |  |  |  |             left: 0; | 
					
						
							|  |  |  |  |             width: 100%; | 
					
						
							|  |  |  |  |             height: 100%; | 
					
						
							|  |  |  |  |             background-color: rgba(0, 0, 0, 0.5); | 
					
						
							|  |  |  |  |             z-index: 1000; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal.active { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             justify-content: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-content { | 
					
						
							|  |  |  |  |             background: white; | 
					
						
							|  |  |  |  |             width: 90%; | 
					
						
							|  |  |  |  |             max-width: 650px; | 
					
						
							|  |  |  |  |             max-height: 90vh; | 
					
						
							|  |  |  |  |             border-radius: 8px; | 
					
						
							|  |  |  |  |             overflow: hidden; | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             flex-direction: column; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-header { | 
					
						
							|  |  |  |  |             padding: 20px; | 
					
						
							|  |  |  |  |             border-bottom: 1px solid #ebeef5; | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             justify-content: space-between; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-header h3 { | 
					
						
							|  |  |  |  |             font-size: 18px; | 
					
						
							|  |  |  |  |             color: #303133; | 
					
						
							|  |  |  |  |             margin: 0; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-close { | 
					
						
							|  |  |  |  |             font-size: 24px; | 
					
						
							|  |  |  |  |             color: #909399; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |             border: none; | 
					
						
							|  |  |  |  |             background: none; | 
					
						
							|  |  |  |  |             padding: 0; | 
					
						
							|  |  |  |  |             width: 24px; | 
					
						
							|  |  |  |  |             height: 24px; | 
					
						
							|  |  |  |  |             line-height: 1; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-close:hover { | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-body { | 
					
						
							|  |  |  |  |             padding: 20px; | 
					
						
							|  |  |  |  |             overflow-y: auto; | 
					
						
							|  |  |  |  |             flex: 1; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .modal-footer { | 
					
						
							|  |  |  |  |             padding: 15px 20px; | 
					
						
							|  |  |  |  |             border-top: 1px solid #ebeef5; | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             justify-content: flex-end; | 
					
						
							|  |  |  |  |             gap: 10px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 表单样式 */ | 
					
						
							|  |  |  |  |         .form-section { | 
					
						
							|  |  |  |  |             margin-bottom: 25px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-section-title { | 
					
						
							|  |  |  |  |             font-size: 16px; | 
					
						
							|  |  |  |  |             color: #303133; | 
					
						
							|  |  |  |  |             font-weight: 500; | 
					
						
							|  |  |  |  |             margin-bottom: 15px; | 
					
						
							|  |  |  |  |             padding-bottom: 10px; | 
					
						
							|  |  |  |  |             border-bottom: 1px solid #ebeef5; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-group { | 
					
						
							|  |  |  |  |             margin-bottom: 18px; | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: flex-start; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-label { | 
					
						
							|  |  |  |  |             width: 120px; | 
					
						
							|  |  |  |  |             padding-top: 8px; | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             text-align: right; | 
					
						
							|  |  |  |  |             padding-right: 12px; | 
					
						
							|  |  |  |  |             flex-shrink: 0; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-label.required::before { | 
					
						
							|  |  |  |  |             content: "*"; | 
					
						
							|  |  |  |  |             color: #f56c6c; | 
					
						
							|  |  |  |  |             margin-right: 4px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-input-wrapper { | 
					
						
							|  |  |  |  |             flex: 1; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-input, | 
					
						
							|  |  |  |  |         .form-select, | 
					
						
							|  |  |  |  |         .form-textarea { | 
					
						
							|  |  |  |  |             width: 100%; | 
					
						
							|  |  |  |  |             padding: 8px 12px; | 
					
						
							|  |  |  |  |             border: 1px solid #dcdfe6; | 
					
						
							|  |  |  |  |             border-radius: 4px; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             outline: none; | 
					
						
							|  |  |  |  |             transition: border-color 0.3s; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-input:focus, | 
					
						
							|  |  |  |  |         .form-select:focus, | 
					
						
							|  |  |  |  |         .form-textarea:focus { | 
					
						
							|  |  |  |  |             border-color: #409eff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-input::placeholder, | 
					
						
							|  |  |  |  |         .form-textarea::placeholder { | 
					
						
							|  |  |  |  |             color: #c0c4cc; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .form-textarea { | 
					
						
							|  |  |  |  |             resize: vertical; | 
					
						
							|  |  |  |  |             min-height: 80px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 图片上传样式 */ | 
					
						
							|  |  |  |  |         .upload-box { | 
					
						
							|  |  |  |  |             width: 140px; | 
					
						
							|  |  |  |  |             height: 140px; | 
					
						
							|  |  |  |  |             border: 1px dashed #dcdfe6; | 
					
						
							|  |  |  |  |             border-radius: 4px; | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             justify-content: center; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |             background-color: #fafafa; | 
					
						
							|  |  |  |  |             transition: border-color 0.3s; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .upload-box:hover { | 
					
						
							|  |  |  |  |             border-color: #409eff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .upload-box-text { | 
					
						
							|  |  |  |  |             color: #909399; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 开关样式 */ | 
					
						
							|  |  |  |  |         .switch-group { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             gap: 15px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch { | 
					
						
							|  |  |  |  |             position: relative; | 
					
						
							|  |  |  |  |             display: inline-block; | 
					
						
							|  |  |  |  |             width: 44px; | 
					
						
							|  |  |  |  |             height: 22px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch input { | 
					
						
							|  |  |  |  |             opacity: 0; | 
					
						
							|  |  |  |  |             width: 0; | 
					
						
							|  |  |  |  |             height: 0; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch-slider { | 
					
						
							|  |  |  |  |             position: absolute; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |             top: 0; | 
					
						
							|  |  |  |  |             left: 0; | 
					
						
							|  |  |  |  |             right: 0; | 
					
						
							|  |  |  |  |             bottom: 0; | 
					
						
							|  |  |  |  |             background-color: #dcdfe6; | 
					
						
							|  |  |  |  |             transition: 0.3s; | 
					
						
							|  |  |  |  |             border-radius: 22px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch-slider:before { | 
					
						
							|  |  |  |  |             position: absolute; | 
					
						
							|  |  |  |  |             content: ""; | 
					
						
							|  |  |  |  |             height: 18px; | 
					
						
							|  |  |  |  |             width: 18px; | 
					
						
							|  |  |  |  |             left: 2px; | 
					
						
							|  |  |  |  |             bottom: 2px; | 
					
						
							|  |  |  |  |             background-color: white; | 
					
						
							|  |  |  |  |             transition: 0.3s; | 
					
						
							|  |  |  |  |             border-radius: 50%; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch input:checked + .switch-slider { | 
					
						
							|  |  |  |  |             background-color: #409eff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch input:checked + .switch-slider:before { | 
					
						
							|  |  |  |  |             transform: translateX(22px); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch-label { | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .switch-label.active { | 
					
						
							|  |  |  |  |             color: #409eff; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 单选框组样式 */ | 
					
						
							|  |  |  |  |         .radio-group { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             gap: 15px; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .radio-option { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             gap: 5px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .radio-option input[type="radio"] { | 
					
						
							|  |  |  |  |             margin: 0; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .radio-option label { | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 复选框组样式 */ | 
					
						
							|  |  |  |  |         .checkbox-group { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             gap: 15px; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .checkbox-option { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |             gap: 5px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .checkbox-option input[type="checkbox"] { | 
					
						
							|  |  |  |  |             margin: 0; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .checkbox-option label { | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             font-size: 14px; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 时间输入样式 */ | 
					
						
							|  |  |  |  |         .time-group { | 
					
						
							|  |  |  |  |             display: flex; | 
					
						
							|  |  |  |  |             gap: 10px; | 
					
						
							|  |  |  |  |             align-items: center; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .time-input { | 
					
						
							|  |  |  |  |             width: 180px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 说明文字样式 */ | 
					
						
							|  |  |  |  |         .form-hint { | 
					
						
							|  |  |  |  |             color: #909399; | 
					
						
							|  |  |  |  |             font-size: 12px; | 
					
						
							|  |  |  |  |             margin-top: 5px; | 
					
						
							|  |  |  |  |             line-height: 1.5; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /* 地图位置选择 */ | 
					
						
							|  |  |  |  |         .location-input { | 
					
						
							|  |  |  |  |             position: relative; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .location-icon { | 
					
						
							|  |  |  |  |             position: absolute; | 
					
						
							|  |  |  |  |             right: 10px; | 
					
						
							|  |  |  |  |             top: 50%; | 
					
						
							|  |  |  |  |             transform: translateY(-50%); | 
					
						
							|  |  |  |  |             color: #409eff; | 
					
						
							|  |  |  |  |             cursor: pointer; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-cancel { | 
					
						
							|  |  |  |  |             background-color: white; | 
					
						
							|  |  |  |  |             color: #606266; | 
					
						
							|  |  |  |  |             border: 1px solid #dcdfe6; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         .btn-cancel:hover { | 
					
						
							|  |  |  |  |             background-color: #f5f7fa; | 
					
						
							|  |  |  |  |             border-color: #c0c4cc; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     </style> | 
					
						
							|  |  |  |  | </head> | 
					
						
							|  |  |  |  | <body> | 
					
						
							|  |  |  |  |     <div class="container"> | 
					
						
							|  |  |  |  |         <!-- 搜索栏 --> | 
					
						
							|  |  |  |  |         <div class="search-bar"> | 
					
						
							|  |  |  |  |             <input type="text" placeholder="市场名称"> | 
					
						
							|  |  |  |  |             <select> | 
					
						
							|  |  |  |  |                 <option value="">地区</option> | 
					
						
							|  |  |  |  |                 <option value="shanghai">上海市</option> | 
					
						
							|  |  |  |  |                 <option value="beijing">北京市</option> | 
					
						
							|  |  |  |  |                 <option value="fujian">福建省</option> | 
					
						
							|  |  |  |  |             </select> | 
					
						
							|  |  |  |  |             <select> | 
					
						
							|  |  |  |  |                 <option value="">状态</option> | 
					
						
							|  |  |  |  |                 <option value="normal">正常</option> | 
					
						
							|  |  |  |  |                 <option value="disabled">禁用</option> | 
					
						
							|  |  |  |  |             </select> | 
					
						
							|  |  |  |  |             <button class="btn btn-primary">搜索</button> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         <!-- 新增按钮 --> | 
					
						
							|  |  |  |  |         <div class="add-section"> | 
					
						
							|  |  |  |  |             <button class="btn btn-success">新增</button> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |             <button class="btn btn-primary" onclick="goToPendingMarkets()">待审核菜市场</button> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         <!-- 表格 --> | 
					
						
							|  |  |  |  |         <div class="table-wrapper"> | 
					
						
							|  |  |  |  |             <table> | 
					
						
							|  |  |  |  |                 <thead> | 
					
						
							|  |  |  |  |                     <tr> | 
					
						
							|  |  |  |  |                         <th>市场名</th> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                         <th>商品类目类型</th> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <th>地址</th> | 
					
						
							|  |  |  |  |                         <th>经营者姓名</th> | 
					
						
							|  |  |  |  |                         <th>经营者账号</th> | 
					
						
							|  |  |  |  |                         <th>第三方配送</th> | 
					
						
							|  |  |  |  |                         <th>状态</th> | 
					
						
							|  |  |  |  |                         <th>摊位数</th> | 
					
						
							|  |  |  |  |                         <th>营业状态</th> | 
					
						
							|  |  |  |  |                         <th>操作</th> | 
					
						
							|  |  |  |  |                     </tr> | 
					
						
							|  |  |  |  |                 </thead> | 
					
						
							|  |  |  |  |                 <tbody> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                     <tr data-category-type="offline"> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <td>权限测试市场</td> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                         <td>线下菜市场</td> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <td>上海市市辖区闵行区</td> | 
					
						
							|  |  |  |  |                         <td>权限测试</td> | 
					
						
							|  |  |  |  |                         <td>13800001500</td> | 
					
						
							|  |  |  |  |                         <td>否</td> | 
					
						
							|  |  |  |  |                         <td class="status-normal">正常</td> | 
					
						
							|  |  |  |  |                         <td>2</td> | 
					
						
							|  |  |  |  |                         <td class="business-status">营业</td> | 
					
						
							|  |  |  |  |                         <td> | 
					
						
							|  |  |  |  |                             <div class="action-buttons"> | 
					
						
							|  |  |  |  |                                 <div class="action-row"> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">设置结算比例</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">分销推广</button> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                     <button class="btn btn-primary btn-small">摊位详情</button> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="action-row"> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">详情</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">编辑</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-danger btn-small">删除</button> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </td> | 
					
						
							|  |  |  |  |                     </tr> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                     <tr data-category-type="cloud"> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <td>测试菜市场-葡萄</td> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                         <td>云店</td> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <td>北京市市辖区东城区</td> | 
					
						
							|  |  |  |  |                         <td>林xx</td> | 
					
						
							|  |  |  |  |                         <td>17750208698</td> | 
					
						
							|  |  |  |  |                         <td>否</td> | 
					
						
							|  |  |  |  |                         <td class="status-normal">正常</td> | 
					
						
							|  |  |  |  |                         <td>0</td> | 
					
						
							|  |  |  |  |                         <td class="business-status">营业</td> | 
					
						
							|  |  |  |  |                         <td> | 
					
						
							|  |  |  |  |                             <div class="action-buttons"> | 
					
						
							|  |  |  |  |                                 <div class="action-row"> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">设置结算比例</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">分销推广</button> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                     <button class="btn btn-primary btn-small">摊位详情</button> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="action-row"> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">详情</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-primary btn-small">编辑</button> | 
					
						
							|  |  |  |  |                                     <button class="btn btn-danger btn-small">删除</button> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </td> | 
					
						
							|  |  |  |  |                     </tr> | 
					
						
							|  |  |  |  |                 </tbody> | 
					
						
							|  |  |  |  |             </table> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |     <!-- 摊位详情模态框 --> | 
					
						
							|  |  |  |  |     <div class="modal" id="boothDetailModal"> | 
					
						
							|  |  |  |  |         <div class="modal-content" style="max-width: 1200px;"> | 
					
						
							|  |  |  |  |             <div class="modal-header"> | 
					
						
							|  |  |  |  |                 <h3>摊铺详情</h3> | 
					
						
							|  |  |  |  |                 <button class="modal-close" onclick="closeBoothDetailModal()">×</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-body"> | 
					
						
							|  |  |  |  |                 <!-- 标签页导航 --> | 
					
						
							|  |  |  |  |                 <div style="border-bottom: 2px solid #ebeef5; margin-bottom: 20px;"> | 
					
						
							|  |  |  |  |                     <div style="display: inline-block; padding: 10px 20px; border-bottom: 2px solid #409eff; color: #409eff; font-weight: 500; cursor: pointer;"> | 
					
						
							|  |  |  |  |                         摊位列表 | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  |                 </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 <!-- 摊位列表表格 --> | 
					
						
							|  |  |  |  |                 <div class="table-wrapper"> | 
					
						
							|  |  |  |  |                     <table> | 
					
						
							|  |  |  |  |                         <thead> | 
					
						
							|  |  |  |  |                             <tr> | 
					
						
							|  |  |  |  |                                 <th>摊位ID</th> | 
					
						
							|  |  |  |  |                                 <th>摊位名称</th> | 
					
						
							|  |  |  |  |                                 <th>收益人名称</th> | 
					
						
							|  |  |  |  |                                 <th>收益人手机号</th> | 
					
						
							|  |  |  |  |                                 <th>加入时间</th> | 
					
						
							|  |  |  |  |                             </tr> | 
					
						
							|  |  |  |  |                         </thead> | 
					
						
							|  |  |  |  |                         <tbody id="boothListTableBody"> | 
					
						
							|  |  |  |  |                             <!-- 动态填充摊位数据 --> | 
					
						
							|  |  |  |  |                         </tbody> | 
					
						
							|  |  |  |  |                     </table> | 
					
						
							|  |  |  |  |                 </div> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-footer"> | 
					
						
							|  |  |  |  |                 <button class="btn btn-cancel" onclick="closeBoothDetailModal()">关闭</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |     <!-- 设置结算比例模态框 --> | 
					
						
							|  |  |  |  |     <div class="modal" id="settlementRatioModal"> | 
					
						
							|  |  |  |  |         <div class="modal-content" style="max-width: 500px;"> | 
					
						
							|  |  |  |  |             <div class="modal-header"> | 
					
						
							|  |  |  |  |                 <h3>设置结算比例</h3> | 
					
						
							|  |  |  |  |                 <button class="modal-close" onclick="closeSettlementModal()">×</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-body"> | 
					
						
							|  |  |  |  |                 <form id="settlementRatioForm"> | 
					
						
							|  |  |  |  |                     <div class="form-group"> | 
					
						
							|  |  |  |  |                         <div class="form-label required">结算比例</div> | 
					
						
							|  |  |  |  |                         <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                             <input type="number" class="form-input" id="settlementRatio" value="0.000" step="0.001" min="0" max="1" placeholder="请输入结算比例"> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  |                 </form> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-footer"> | 
					
						
							|  |  |  |  |                 <button class="btn btn-cancel" onclick="closeSettlementModal()">关闭</button> | 
					
						
							|  |  |  |  |                 <button class="btn btn-primary" onclick="submitSettlementRatio()">确定</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |     <!-- 详情模态框 --> | 
					
						
							|  |  |  |  |     <div class="modal" id="detailMarketModal"> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         <div class="modal-content"> | 
					
						
							|  |  |  |  |             <div class="modal-header"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                 <h3>菜市场详情</h3> | 
					
						
							|  |  |  |  |                 <button class="modal-close" onclick="closeDetailModal()">×</button> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-body"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                 <form id="detailMarketForm"> | 
					
						
							|  |  |  |  |                     <!-- 经营者信息 --> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                     <div class="form-section"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                         <div class="form-section-title">经营者信息</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <div class="form-group"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                             <div class="form-label">经营者账号</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                 <input type="text" class="form-input" id="detailOperatorAccount" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">经营者姓名</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailOperatorName" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     <!-- 基础配置 --> | 
					
						
							|  |  |  |  |                     <div class="form-section"> | 
					
						
							|  |  |  |  |                         <div class="form-section-title">基础配置</div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场名称</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailMarketName" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">商品类目类型</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailCategoryType" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场背景图</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box" style="pointer-events: none;"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">暂无图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场营业执照</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box" style="pointer-events: none;"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">暂无图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场实拍图</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box" style="pointer-events: none;"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">暂无图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场地址</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailAddress" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">详细地址</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailDetailAddress" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场定位</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailLocation" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场营业时间</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							|  |  |  |  |                                     <span class="switch-label">手动营业</span> | 
					
						
							|  |  |  |  |                                     <label class="switch"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="detailAutoBusinessTime" disabled> | 
					
						
							|  |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							|  |  |  |  |                                     <span class="switch-label active">自动营业</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="checkbox-group" style="margin-top: 10px;"> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="detailEveryday" disabled> | 
					
						
							|  |  |  |  |                                         <label for="detailEveryday">每天</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="detailWorkday" disabled> | 
					
						
							|  |  |  |  |                                         <label for="detailWorkday">工作日</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="detailCustom" disabled> | 
					
						
							|  |  |  |  |                                         <label for="detailCustom">自定义</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="time-group" style="margin-top: 10px;"> | 
					
						
							|  |  |  |  |                                     <input type="time" class="form-input time-input" id="detailStartTime" readonly> | 
					
						
							|  |  |  |  |                                     <input type="time" class="form-input time-input" id="detailEndTime" readonly> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">菜市场状态</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							|  |  |  |  |                                     <span class="switch-label">禁用</span> | 
					
						
							|  |  |  |  |                                     <label class="switch"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="detailMarketStatus" disabled> | 
					
						
							|  |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							|  |  |  |  |                                     <span class="switch-label active">启用</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">摊位数</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailBoothCount" readonly> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">营业状态</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="detailBusinessStatus" readonly> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                     <!-- 配送设置 --> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                     <div class="form-section"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                         <div class="form-section-title">配送设置</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label"></div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                 <div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者)自由配置是否呼叫第三方骑手进行配送;</div> | 
					
						
							|  |  |  |  |                                 <div class="form-hint">第三方配送费用因距离、天气、时段等因素会产生不同程度的浮动;将根据实际配送费用进行扣除。</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                             <div class="form-label">是否允许第三方骑手配送</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                     <span class="switch-label">禁用</span> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                                     <label class="switch"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                         <input type="checkbox" id="detailThirdPartyDelivery" disabled> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                     <span class="switch-label active">启用</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  |                 </form> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-footer"> | 
					
						
							|  |  |  |  |                 <button class="btn btn-cancel" onclick="closeDetailModal()">关闭</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     <!-- 新增菜市场模态框 --> | 
					
						
							|  |  |  |  |     <div class="modal" id="addMarketModal"> | 
					
						
							|  |  |  |  |         <div class="modal-content"> | 
					
						
							|  |  |  |  |             <div class="modal-header"> | 
					
						
							|  |  |  |  |                 <h3>新增菜市场</h3> | 
					
						
							|  |  |  |  |                 <button class="modal-close" onclick="closeModal()">×</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-body"> | 
					
						
							|  |  |  |  |                 <form id="addMarketForm"> | 
					
						
							|  |  |  |  |                     <!-- 经营者信息 --> | 
					
						
							|  |  |  |  |                     <div class="form-section"> | 
					
						
							|  |  |  |  |                         <div class="form-section-title">经营者信息</div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">经营者账号</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" id="operatorAccount" placeholder="请输入手机号码" maxlength="11"> | 
					
						
							|  |  |  |  |                                 <div class="form-hint">请输入经营者的手机号码</div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">验证码</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div style="display: flex; gap: 10px;"> | 
					
						
							|  |  |  |  |                                     <input type="text" class="form-input" id="verifyCode" placeholder="请输入验证码" maxlength="6" style="flex: 1;"> | 
					
						
							|  |  |  |  |                                     <button type="button" class="btn btn-primary" id="sendCodeBtn" onclick="sendVerifyCode()">发送验证码</button> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                                 </div> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                 <div class="form-hint">验证码将发送至经营者手机</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     <!-- 基础配置 --> | 
					
						
							|  |  |  |  |                     <div class="form-section"> | 
					
						
							|  |  |  |  |                         <div class="form-section-title">基础配置</div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场名称</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                 <input type="text" class="form-input" id="marketName" placeholder="请输入菜市场名称25字符内" maxlength="25"> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">商品类目类型</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <select class="form-select" id="categoryType"> | 
					
						
							|  |  |  |  |                                     <option value="">请选择商品类目类型</option> | 
					
						
							|  |  |  |  |                                     <option value="offline">线下菜市场</option> | 
					
						
							|  |  |  |  |                                     <option value="cloud">云店</option> | 
					
						
							|  |  |  |  |                                 </select> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场背景图</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">选择图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场营业执照</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">选择图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场实拍图</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">选择图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场营业执照</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">选择图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场实拍图</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="upload-box"> | 
					
						
							|  |  |  |  |                                     <span class="upload-box-text">选择图片</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场地址</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <select class="form-select"> | 
					
						
							|  |  |  |  |                                     <option value="">请选择省市区</option> | 
					
						
							|  |  |  |  |                                     <option value="shanghai">上海市</option> | 
					
						
							|  |  |  |  |                                     <option value="beijing">北京市</option> | 
					
						
							|  |  |  |  |                                     <option value="fujian">福建省</option> | 
					
						
							|  |  |  |  |                                 </select> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">详细地址</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <input type="text" class="form-input" placeholder="请输入具体地址"> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场定位</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="location-input"> | 
					
						
							|  |  |  |  |                                     <input type="text" class="form-input" placeholder="请在地图上选择定位"> | 
					
						
							|  |  |  |  |                                     <span class="location-icon">📍</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="form-hint" style="color: #f56c6c;">请选择定位</div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场营业时间</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							|  |  |  |  |                                     <span class="switch-label">手动营业</span> | 
					
						
							|  |  |  |  |                                     <label class="switch"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="autoBusinessTime" checked> | 
					
						
							|  |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							|  |  |  |  |                                     <span class="switch-label active">自动营业</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="checkbox-group" style="margin-top: 10px;"> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="everyday"> | 
					
						
							|  |  |  |  |                                         <label for="everyday">每天</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="workday"> | 
					
						
							|  |  |  |  |                                         <label for="workday">工作日</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                     <div class="checkbox-option"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="custom"> | 
					
						
							|  |  |  |  |                                         <label for="custom">自定义</label> | 
					
						
							|  |  |  |  |                                     </div> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="time-group" style="margin-top: 10px;"> | 
					
						
							|  |  |  |  |                                     <input type="time" class="form-input time-input" placeholder="开始营业时间"> | 
					
						
							|  |  |  |  |                                     <input type="time" class="form-input time-input" placeholder="结束营业时间"> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label required">菜市场状态</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							|  |  |  |  |                                     <span class="switch-label">禁用</span> | 
					
						
							|  |  |  |  |                                     <label class="switch"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="marketStatus" checked> | 
					
						
							|  |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							|  |  |  |  |                                     <span class="switch-label active">启用</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                                 <div class="form-hint">禁用后,用户端不展示该菜市场</div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     <!-- 配送设置 --> | 
					
						
							|  |  |  |  |                     <div class="form-section"> | 
					
						
							|  |  |  |  |                         <div class="form-section-title">配送设置</div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label"></div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                                 <div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者)自由配置是否呼叫第三方骑手进行配送;</div> | 
					
						
							|  |  |  |  |                                 <div class="form-hint">第三方配送费用因距离、天气、时段等因素会产生不同程度的浮动;将根据实际配送费用进行扣除。</div> | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                         <div class="form-group"> | 
					
						
							|  |  |  |  |                             <div class="form-label">是否允许第三方骑手配送</div> | 
					
						
							|  |  |  |  |                             <div class="form-input-wrapper"> | 
					
						
							|  |  |  |  |                                 <div class="switch-group"> | 
					
						
							|  |  |  |  |                                     <span class="switch-label">禁用</span> | 
					
						
							|  |  |  |  |                                     <label class="switch"> | 
					
						
							|  |  |  |  |                                         <input type="checkbox" id="thirdPartyDelivery" checked> | 
					
						
							|  |  |  |  |                                         <span class="switch-slider"></span> | 
					
						
							|  |  |  |  |                                     </label> | 
					
						
							|  |  |  |  |                                     <span class="switch-label active">启用</span> | 
					
						
							|  |  |  |  |                                 </div> | 
					
						
							|  |  |  |  |                             </div> | 
					
						
							|  |  |  |  |                         </div> | 
					
						
							|  |  |  |  |                     </div> | 
					
						
							|  |  |  |  |                 </form> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="modal-footer"> | 
					
						
							|  |  |  |  |                 <button class="btn btn-cancel" onclick="closeModal()">取消</button> | 
					
						
							|  |  |  |  |                 <button class="btn btn-primary" onclick="submitForm()">确认</button> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     <script> | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |         // 验证码倒计时 | 
					
						
							|  |  |  |  |         let countdown = 0; | 
					
						
							|  |  |  |  |         let countdownTimer = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 发送验证码 | 
					
						
							|  |  |  |  |         function sendVerifyCode() { | 
					
						
							|  |  |  |  |             const account = document.getElementById('operatorAccount').value; | 
					
						
							|  |  |  |  |             const btn = document.getElementById('sendCodeBtn'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 验证手机号格式 | 
					
						
							|  |  |  |  |             if (!account || !/^1[3-9]\d{9}$/.test(account)) { | 
					
						
							|  |  |  |  |                 alert('请输入正确的手机号码'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 如果正在倒计时,不允许再次发送 | 
					
						
							|  |  |  |  |             if (countdown > 0) { | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 这里应该调用后端API发送验证码 | 
					
						
							|  |  |  |  |             // 模拟发送成功 | 
					
						
							|  |  |  |  |             alert('验证码已发送至 ' + account); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 开始倒计时 | 
					
						
							|  |  |  |  |             countdown = 60; | 
					
						
							|  |  |  |  |             btn.disabled = true; | 
					
						
							|  |  |  |  |             btn.textContent = countdown + '秒后重发'; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             countdownTimer = setInterval(function() { | 
					
						
							|  |  |  |  |                 countdown--; | 
					
						
							|  |  |  |  |                 if (countdown > 0) { | 
					
						
							|  |  |  |  |                     btn.textContent = countdown + '秒后重发'; | 
					
						
							|  |  |  |  |                 } else { | 
					
						
							|  |  |  |  |                     clearInterval(countdownTimer); | 
					
						
							|  |  |  |  |                     btn.disabled = false; | 
					
						
							|  |  |  |  |                     btn.textContent = '发送验证码'; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             }, 1000); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         // 搜索功能 | 
					
						
							|  |  |  |  |         document.querySelector('.search-bar .btn-primary').addEventListener('click', function() { | 
					
						
							|  |  |  |  |             alert('搜索功能待实现'); | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 新增功能 - 打开模态框 | 
					
						
							|  |  |  |  |         document.querySelector('.btn-success').addEventListener('click', function() { | 
					
						
							|  |  |  |  |             openModal(); | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 打开模态框 | 
					
						
							|  |  |  |  |         function openModal() { | 
					
						
							|  |  |  |  |             document.getElementById('addMarketModal').classList.add('active'); | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |             // 重置倒计时 | 
					
						
							|  |  |  |  |             if (countdownTimer) { | 
					
						
							|  |  |  |  |                 clearInterval(countdownTimer); | 
					
						
							|  |  |  |  |                 countdown = 0; | 
					
						
							|  |  |  |  |                 document.getElementById('sendCodeBtn').disabled = false; | 
					
						
							|  |  |  |  |                 document.getElementById('sendCodeBtn').textContent = '发送验证码'; | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 关闭模态框 | 
					
						
							|  |  |  |  |         function closeModal() { | 
					
						
							|  |  |  |  |             document.getElementById('addMarketModal').classList.remove('active'); | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |             // 清理倒计时 | 
					
						
							|  |  |  |  |             if (countdownTimer) { | 
					
						
							|  |  |  |  |                 clearInterval(countdownTimer); | 
					
						
							|  |  |  |  |                 countdown = 0; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             // 重置表单 | 
					
						
							|  |  |  |  |             document.getElementById('addMarketForm').reset(); | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 提交表单 | 
					
						
							|  |  |  |  |         function submitForm() { | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |             const account = document.getElementById('operatorAccount').value; | 
					
						
							|  |  |  |  |             const verifyCode = document.getElementById('verifyCode').value; | 
					
						
							|  |  |  |  |             const marketName = document.getElementById('marketName').value; | 
					
						
							|  |  |  |  |             const categoryType = document.getElementById('categoryType').value; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 验证必填项 | 
					
						
							|  |  |  |  |             if (!account || !/^1[3-9]\d{9}$/.test(account)) { | 
					
						
							|  |  |  |  |                 alert('请输入正确的手机号码'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (!verifyCode || verifyCode.length !== 6) { | 
					
						
							|  |  |  |  |                 alert('请输入6位验证码'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (!marketName || marketName.trim() === '') { | 
					
						
							|  |  |  |  |                 alert('请输入菜市场名称'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (!categoryType || categoryType === '') { | 
					
						
							|  |  |  |  |                 alert('请选择商品类目类型'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 这里应该调用后端API验证验证码并提交表单 | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |             alert('表单提交功能待实现'); | 
					
						
							|  |  |  |  |             closeModal(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 点击模态框背景关闭 | 
					
						
							|  |  |  |  |         document.getElementById('addMarketModal').addEventListener('click', function(e) { | 
					
						
							|  |  |  |  |             if (e.target === this) { | 
					
						
							|  |  |  |  |                 closeModal(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |         // 打开摊位详情模态框 | 
					
						
							|  |  |  |  |         function openBoothDetailModal(marketName) { | 
					
						
							|  |  |  |  |             // 模拟摊位数据,实际应该从后端API获取 | 
					
						
							|  |  |  |  |             const mockBoothData = [ | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     id: 4, | 
					
						
							|  |  |  |  |                     name: '猪肉铺', | 
					
						
							|  |  |  |  |                     beneficiaryName: '张三', | 
					
						
							|  |  |  |  |                     beneficiaryPhone: '13800000000', | 
					
						
							|  |  |  |  |                     joinTime: '2025-10-20 12:06:56' | 
					
						
							|  |  |  |  |                 }, | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     id: 5, | 
					
						
							|  |  |  |  |                     name: '测试摊位', | 
					
						
							|  |  |  |  |                     beneficiaryName: '李四(和经营者相同)', | 
					
						
							|  |  |  |  |                     beneficiaryPhone: '13800000001(和经营者相同)', | 
					
						
							|  |  |  |  |                     joinTime: '2025-10-20 12:06:56' | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             ]; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 填充表格数据 | 
					
						
							|  |  |  |  |             const tbody = document.getElementById('boothListTableBody'); | 
					
						
							|  |  |  |  |             tbody.innerHTML = ''; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (mockBoothData.length === 0) { | 
					
						
							|  |  |  |  |                 tbody.innerHTML = '<tr><td colspan="5" style="text-align: center; color: #909399;">暂无摊位数据</td></tr>'; | 
					
						
							|  |  |  |  |             } else { | 
					
						
							|  |  |  |  |                 mockBoothData.forEach(booth => { | 
					
						
							|  |  |  |  |                     const row = document.createElement('tr'); | 
					
						
							|  |  |  |  |                     row.innerHTML = ` | 
					
						
							|  |  |  |  |                         <td>${booth.id}</td> | 
					
						
							|  |  |  |  |                         <td>${booth.name}</td> | 
					
						
							|  |  |  |  |                         <td>${booth.beneficiaryName || ''}</td> | 
					
						
							|  |  |  |  |                         <td>${booth.beneficiaryPhone || ''}</td> | 
					
						
							|  |  |  |  |                         <td>${booth.joinTime}</td> | 
					
						
							|  |  |  |  |                     `; | 
					
						
							|  |  |  |  |                     tbody.appendChild(row); | 
					
						
							|  |  |  |  |                 }); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 显示模态框 | 
					
						
							|  |  |  |  |             document.getElementById('boothDetailModal').classList.add('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 关闭摊位详情模态框 | 
					
						
							|  |  |  |  |         function closeBoothDetailModal() { | 
					
						
							|  |  |  |  |             document.getElementById('boothDetailModal').classList.remove('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 点击摊位详情模态框背景关闭 | 
					
						
							|  |  |  |  |         document.getElementById('boothDetailModal').addEventListener('click', function(e) { | 
					
						
							|  |  |  |  |             if (e.target === this) { | 
					
						
							|  |  |  |  |                 closeBoothDetailModal(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         // 打开设置结算比例模态框 | 
					
						
							|  |  |  |  |         function openSettlementModal() { | 
					
						
							|  |  |  |  |             document.getElementById('settlementRatioModal').classList.add('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 关闭设置结算比例模态框 | 
					
						
							|  |  |  |  |         function closeSettlementModal() { | 
					
						
							|  |  |  |  |             document.getElementById('settlementRatioModal').classList.remove('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 提交结算比例 | 
					
						
							|  |  |  |  |         function submitSettlementRatio() { | 
					
						
							|  |  |  |  |             const ratio = document.getElementById('settlementRatio').value; | 
					
						
							|  |  |  |  |             if (ratio === '' || ratio < 0 || ratio > 1) { | 
					
						
							|  |  |  |  |                 alert('请输入有效的结算比例(0-1之间)'); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             alert('结算比例已设置为: ' + ratio); | 
					
						
							|  |  |  |  |             closeSettlementModal(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 点击结算比例模态框背景关闭 | 
					
						
							|  |  |  |  |         document.getElementById('settlementRatioModal').addEventListener('click', function(e) { | 
					
						
							|  |  |  |  |             if (e.target === this) { | 
					
						
							|  |  |  |  |                 closeSettlementModal(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |         // 打开详情模态框 | 
					
						
							|  |  |  |  |         function openDetailModal(rowData) { | 
					
						
							|  |  |  |  |             // 填充详情数据 | 
					
						
							|  |  |  |  |             document.getElementById('detailOperatorAccount').value = rowData.operatorAccount || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailOperatorName').value = rowData.operatorName || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailMarketName').value = rowData.marketName || ''; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 填充商品类目类型,转换为中文显示 | 
					
						
							|  |  |  |  |             let categoryTypeText = ''; | 
					
						
							|  |  |  |  |             if (rowData.categoryType === 'offline') { | 
					
						
							|  |  |  |  |                 categoryTypeText = '线下菜市场'; | 
					
						
							|  |  |  |  |             } else if (rowData.categoryType === 'cloud') { | 
					
						
							|  |  |  |  |                 categoryTypeText = '云店'; | 
					
						
							|  |  |  |  |             } else { | 
					
						
							|  |  |  |  |                 categoryTypeText = rowData.categoryType || ''; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             document.getElementById('detailCategoryType').value = categoryTypeText; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             document.getElementById('detailAddress').value = rowData.address || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailDetailAddress').value = rowData.detailAddress || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailLocation').value = rowData.location || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailBoothCount').value = rowData.boothCount || ''; | 
					
						
							|  |  |  |  |             document.getElementById('detailBusinessStatus').value = rowData.businessStatus || ''; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 设置开关状态 | 
					
						
							|  |  |  |  |             document.getElementById('detailAutoBusinessTime').checked = rowData.autoBusinessTime || false; | 
					
						
							|  |  |  |  |             document.getElementById('detailMarketStatus').checked = rowData.marketStatus || false; | 
					
						
							|  |  |  |  |             document.getElementById('detailThirdPartyDelivery').checked = rowData.thirdPartyDelivery || false; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             // 显示模态框 | 
					
						
							|  |  |  |  |             document.getElementById('detailMarketModal').classList.add('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 关闭详情模态框 | 
					
						
							|  |  |  |  |         function closeDetailModal() { | 
					
						
							|  |  |  |  |             document.getElementById('detailMarketModal').classList.remove('active'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 点击详情模态框背景关闭 | 
					
						
							|  |  |  |  |         document.getElementById('detailMarketModal').addEventListener('click', function(e) { | 
					
						
							|  |  |  |  |             if (e.target === this) { | 
					
						
							|  |  |  |  |                 closeDetailModal(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 从表格行获取数据 | 
					
						
							|  |  |  |  |         function getRowData(button) { | 
					
						
							|  |  |  |  |             const row = button.closest('tr'); | 
					
						
							|  |  |  |  |             const cells = row.querySelectorAll('td'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return { | 
					
						
							|  |  |  |  |                 marketName: cells[0].textContent.trim(), | 
					
						
							|  |  |  |  |                 categoryType: row.getAttribute('data-category-type') || '', | 
					
						
							|  |  |  |  |                 address: cells[2].textContent.trim(), | 
					
						
							|  |  |  |  |                 operatorName: cells[3].textContent.trim(), | 
					
						
							|  |  |  |  |                 operatorAccount: cells[4].textContent.trim(), | 
					
						
							|  |  |  |  |                 thirdPartyDelivery: cells[5].textContent.trim() === '是', | 
					
						
							|  |  |  |  |                 marketStatus: cells[7].textContent.trim() === '正常', | 
					
						
							|  |  |  |  |                 boothCount: cells[8].textContent.trim(), | 
					
						
							|  |  |  |  |                 businessStatus: cells[9].textContent.trim(), | 
					
						
							|  |  |  |  |                 detailAddress: '', | 
					
						
							|  |  |  |  |                 location: '', | 
					
						
							|  |  |  |  |                 autoBusinessTime: true | 
					
						
							|  |  |  |  |             }; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |         // 为所有操作按钮添加事件监听 | 
					
						
							|  |  |  |  |         document.querySelectorAll('.action-buttons button').forEach(button => { | 
					
						
							|  |  |  |  |             button.addEventListener('click', function(e) { | 
					
						
							|  |  |  |  |                 e.stopPropagation(); | 
					
						
							|  |  |  |  |                 const buttonText = this.textContent; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 // 如果是设置结算比例按钮,打开对应的模态框 | 
					
						
							|  |  |  |  |                 if (buttonText === '设置结算比例') { | 
					
						
							|  |  |  |  |                     openSettlementModal(); | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  |                 } else if (buttonText === '详情') { | 
					
						
							|  |  |  |  |                     // 获取当前行数据并打开详情模态框 | 
					
						
							|  |  |  |  |                     const rowData = getRowData(this); | 
					
						
							|  |  |  |  |                     openDetailModal(rowData); | 
					
						
							|  |  |  |  |                 } else if (buttonText === '摊位详情') { | 
					
						
							|  |  |  |  |                     // 获取市场名称并打开摊位详情模态框 | 
					
						
							|  |  |  |  |                     const rowData = getRowData(this); | 
					
						
							|  |  |  |  |                     openBoothDetailModal(rowData.marketName); | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |                 } else { | 
					
						
							|  |  |  |  |                     alert(buttonText + ' 功能待实现'); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             }); | 
					
						
							|  |  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2025-10-20 10:10:46 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 跳转到待审核菜市场页面 | 
					
						
							|  |  |  |  |         function goToPendingMarkets() { | 
					
						
							|  |  |  |  |             window.location.href = '待审核菜市场.html'; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-10-17 10:20:59 +00:00
										 |  |  |  |     </script> | 
					
						
							|  |  |  |  | </body> | 
					
						
							|  |  |  |  | </html> |