综述: 新增摊位管理模块和菜市场审核功能
- 在商家端web中新增摊位管理模块,包含摊位列表页面和摊位创建页面 - 在平台端web中新增菜市场管理模块的待审核菜市场页面 - 更新平台端web菜市场管理模块的菜市场列表页面
This commit is contained in:
parent
2a93391c5f
commit
f6125ad566
|
|
@ -0,0 +1,444 @@
|
||||||
|
<!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);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-title {
|
||||||
|
font-size: 24px;
|
||||||
|
color: #303133;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
border-bottom: 2px solid #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 搜索栏样式 */
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-warning {
|
||||||
|
background-color: #e6a23c;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-warning:hover {
|
||||||
|
background-color: #ebb563;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 新增按钮 */
|
||||||
|
.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;
|
||||||
|
gap: 5px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 状态标签 */
|
||||||
|
.status-open {
|
||||||
|
color: #67c23a;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-closed {
|
||||||
|
color: #909399;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分页样式 */
|
||||||
|
.pagination {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination button {
|
||||||
|
padding: 6px 12px;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
background-color: white;
|
||||||
|
color: #606266;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination button:hover:not(:disabled) {
|
||||||
|
background-color: #409eff;
|
||||||
|
color: white;
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination button:disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination button.active {
|
||||||
|
background-color: #409eff;
|
||||||
|
color: white;
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-info {
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1 class="page-title">摊位列表</h1>
|
||||||
|
|
||||||
|
<!-- 搜索栏 -->
|
||||||
|
<div class="search-bar">
|
||||||
|
<input type="text" placeholder="摊位名称" id="searchBoothName">
|
||||||
|
<select id="searchStatus">
|
||||||
|
<option value="">营业状态</option>
|
||||||
|
<option value="open">营业中</option>
|
||||||
|
<option value="closed">休息中</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-primary" onclick="searchBooths()">搜索</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 新增按钮 -->
|
||||||
|
<div class="add-section">
|
||||||
|
<button class="btn btn-success" onclick="goToCreateBooth()">新增摊位</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>摊位名称</th>
|
||||||
|
<th>主营类目</th>
|
||||||
|
<th>收益人账号名称</th>
|
||||||
|
<th>收益人手机号</th>
|
||||||
|
<th>营业状态</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="boothTableBody">
|
||||||
|
<!-- 示例数据 -->
|
||||||
|
<tr>
|
||||||
|
<td>张记海鲜</td>
|
||||||
|
<td>海鲜水产</td>
|
||||||
|
<td>张三</td>
|
||||||
|
<td>13800138000</td>
|
||||||
|
<td class="status-open">营业中</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick="viewBoothDetail(this)">详情</button>
|
||||||
|
<button class="btn btn-warning btn-small" onclick="editBooth(this)">编辑</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="deleteBooth(this)">删除</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>李氏鲜肉</td>
|
||||||
|
<td>肉禽蛋</td>
|
||||||
|
<td>李四</td>
|
||||||
|
<td>13900139000</td>
|
||||||
|
<td class="status-open">营业中</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick="viewBoothDetail(this)">详情</button>
|
||||||
|
<button class="btn btn-warning btn-small" onclick="editBooth(this)">编辑</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="deleteBooth(this)">删除</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>王家蔬菜</td>
|
||||||
|
<td>蔬菜</td>
|
||||||
|
<td>王五</td>
|
||||||
|
<td>13700137000</td>
|
||||||
|
<td class="status-closed">休息中</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick="viewBoothDetail(this)">详情</button>
|
||||||
|
<button class="btn btn-warning btn-small" onclick="editBooth(this)">编辑</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="deleteBooth(this)">删除</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>赵姐水果摊</td>
|
||||||
|
<td>水果</td>
|
||||||
|
<td>赵六</td>
|
||||||
|
<td>13600136000</td>
|
||||||
|
<td class="status-open">营业中</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick="viewBoothDetail(this)">详情</button>
|
||||||
|
<button class="btn btn-warning btn-small" onclick="editBooth(this)">编辑</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="deleteBooth(this)">删除</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>孙氏粮油</td>
|
||||||
|
<td>粮油调味</td>
|
||||||
|
<td>孙七</td>
|
||||||
|
<td>13500135000</td>
|
||||||
|
<td class="status-closed">休息中</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick="viewBoothDetail(this)">详情</button>
|
||||||
|
<button class="btn btn-warning btn-small" onclick="editBooth(this)">编辑</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="deleteBooth(this)">删除</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 分页 -->
|
||||||
|
<div class="pagination">
|
||||||
|
<button onclick="goToPage('first')" id="firstPageBtn">首页</button>
|
||||||
|
<button onclick="goToPage('prev')" id="prevPageBtn">上一页</button>
|
||||||
|
<button class="active">1</button>
|
||||||
|
<button onclick="goToPage(2)">2</button>
|
||||||
|
<button onclick="goToPage(3)">3</button>
|
||||||
|
<button onclick="goToPage(4)">4</button>
|
||||||
|
<button onclick="goToPage(5)">5</button>
|
||||||
|
<button onclick="goToPage('next')" id="nextPageBtn">下一页</button>
|
||||||
|
<button onclick="goToPage('last')" id="lastPageBtn">尾页</button>
|
||||||
|
<span class="page-info">共 50 条</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// 搜索功能
|
||||||
|
function searchBooths() {
|
||||||
|
const boothName = document.getElementById('searchBoothName').value;
|
||||||
|
const status = document.getElementById('searchStatus').value;
|
||||||
|
|
||||||
|
console.log('搜索条件:', {
|
||||||
|
boothName,
|
||||||
|
status
|
||||||
|
});
|
||||||
|
|
||||||
|
// 这里应该调用后端API进行搜索
|
||||||
|
alert('搜索功能待实现\n摊位名称: ' + boothName + '\n营业状态: ' + status);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 跳转到创建摊位页面
|
||||||
|
function goToCreateBooth() {
|
||||||
|
window.location.href = '摊位创建.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查看摊位详情
|
||||||
|
function viewBoothDetail(button) {
|
||||||
|
const row = button.closest('tr');
|
||||||
|
const cells = row.querySelectorAll('td');
|
||||||
|
const boothData = {
|
||||||
|
name: cells[0].textContent,
|
||||||
|
category: cells[1].textContent,
|
||||||
|
beneficiaryName: cells[2].textContent,
|
||||||
|
beneficiaryPhone: cells[3].textContent,
|
||||||
|
status: cells[4].textContent
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log('查看摊位详情:', boothData);
|
||||||
|
alert('查看摊位详情: ' + boothData.name);
|
||||||
|
// 实际应该跳转到详情页面或打开模态框
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑摊位
|
||||||
|
function editBooth(button) {
|
||||||
|
const row = button.closest('tr');
|
||||||
|
const cells = row.querySelectorAll('td');
|
||||||
|
const boothName = cells[0].textContent;
|
||||||
|
|
||||||
|
console.log('编辑摊位:', boothName);
|
||||||
|
// 跳转到摊位创建页面,传递编辑标识
|
||||||
|
window.location.href = '摊位创建.html?mode=edit&id=xxx';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除摊位
|
||||||
|
function deleteBooth(button) {
|
||||||
|
const row = button.closest('tr');
|
||||||
|
const cells = row.querySelectorAll('td');
|
||||||
|
const boothName = cells[0].textContent;
|
||||||
|
|
||||||
|
if (confirm('确定要删除摊位"' + boothName + '"吗?')) {
|
||||||
|
console.log('删除摊位:', boothName);
|
||||||
|
// 这里应该调用后端API删除摊位
|
||||||
|
alert('删除成功');
|
||||||
|
// 删除表格行
|
||||||
|
row.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分页功能
|
||||||
|
function goToPage(page) {
|
||||||
|
console.log('跳转到页面:', page);
|
||||||
|
|
||||||
|
// 这里应该调用后端API获取对应页面的数据
|
||||||
|
alert('跳转到页面: ' + page);
|
||||||
|
|
||||||
|
// 更新分页按钮状态
|
||||||
|
updatePaginationButtons(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新分页按钮状态
|
||||||
|
function updatePaginationButtons(currentPage) {
|
||||||
|
// 移除所有active类
|
||||||
|
document.querySelectorAll('.pagination button').forEach(btn => {
|
||||||
|
btn.classList.remove('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加active类到当前页
|
||||||
|
if (typeof currentPage === 'number') {
|
||||||
|
const buttons = document.querySelectorAll('.pagination button');
|
||||||
|
buttons.forEach(btn => {
|
||||||
|
if (btn.textContent == currentPage) {
|
||||||
|
btn.classList.add('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回车搜索
|
||||||
|
document.getElementById('searchBoothName').addEventListener('keypress', function(e) {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
searchBooths();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,873 @@
|
||||||
|
<!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: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: white;
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-title {
|
||||||
|
font-size: 24px;
|
||||||
|
color: #303133;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
border-bottom: 2px solid #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 表单样式 */
|
||||||
|
.form-section {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-section-title {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #303133;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-label {
|
||||||
|
width: 150px;
|
||||||
|
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;
|
||||||
|
font-size: 40px;
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-box:hover {
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-icon {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-icon-plus {
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-icon-text {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-list {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 开关样式 */
|
||||||
|
.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: 20px;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-option {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-option input[type="radio"] {
|
||||||
|
margin: 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-option label {
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 复选框组样式 */
|
||||||
|
.checkbox-group {
|
||||||
|
display: flex;
|
||||||
|
gap: 15px;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-option {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-option input[type="checkbox"] {
|
||||||
|
margin: 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-option label {
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间输入样式 */
|
||||||
|
.time-group {
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time-input {
|
||||||
|
width: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time-separator {
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 说明文字样式 */
|
||||||
|
.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;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 按钮样式 */
|
||||||
|
.btn {
|
||||||
|
padding: 10px 24px;
|
||||||
|
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-cancel {
|
||||||
|
background-color: white;
|
||||||
|
color: #606266;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-cancel:hover {
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border-color: #c0c4cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-footer {
|
||||||
|
margin-top: 40px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #ebeef5;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 权限配置样式 */
|
||||||
|
.permission-section {
|
||||||
|
background-color: #f9fafc;
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-item {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-item:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-label {
|
||||||
|
color: #606266;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-label.required::before {
|
||||||
|
content: "*";
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-sub-items {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permission-hint-text {
|
||||||
|
color: #909399;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1 class="page-title" id="pageTitle">创建摊位</h1>
|
||||||
|
|
||||||
|
<form id="createBoothForm">
|
||||||
|
<!-- 绑定收益人账号 -->
|
||||||
|
<div class="form-section" id="beneficiarySection">
|
||||||
|
<div class="form-section-title">绑定收益人账号</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">操作类型</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<select class="form-select" id="operationType" onchange="handleOperationTypeChange()">
|
||||||
|
<option value="">请选择操作类型</option>
|
||||||
|
<option value="bind_market_manager">绑定收益人是市场经营者</option>
|
||||||
|
<option value="create_supplier">创建新收益人(供货商)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group" id="supplierAccountGroup" style="display: none;">
|
||||||
|
<div class="form-label required">供货商账号</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="supplierAccount" placeholder="请输入供货商账号" maxlength="11">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group" id="supplierPasswordGroup" style="display: none;">
|
||||||
|
<div class="form-label required">密码</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="password" class="form-input" id="password" placeholder="请输入密码">
|
||||||
|
</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">
|
||||||
|
<input type="text" class="form-input" id="boothName" placeholder="请输入摊位名称">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">主营类目</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<select class="form-select" id="mainCategory">
|
||||||
|
<option value="">请选择主营类目</option>
|
||||||
|
<option value="seafood">海鲜水产</option>
|
||||||
|
<option value="meat">肉禽蛋</option>
|
||||||
|
<option value="vegetable">蔬菜</option>
|
||||||
|
<option value="fruit">水果</option>
|
||||||
|
<option value="grain">粮油调味</option>
|
||||||
|
<option value="other">其他</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">摊位背景图</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="upload-list">
|
||||||
|
<div class="upload-box">
|
||||||
|
<div class="upload-icon">
|
||||||
|
<div class="upload-icon-plus">+</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">摊位联系电话</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="boothPhone" placeholder="请输入联系电话/手机号">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">摊位照片</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="upload-list">
|
||||||
|
<div class="upload-box">
|
||||||
|
<div class="upload-icon">
|
||||||
|
<div class="upload-icon-plus">+</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">摊位位置</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="boothLocation" placeholder="请输入摊位位置">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">摊位详细地址</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="boothDetailAddress" placeholder="请输入摊位详细地址">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">许可证</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="upload-list">
|
||||||
|
<div class="upload-box">
|
||||||
|
<div class="upload-icon">
|
||||||
|
<div class="upload-icon-plus">+</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="upload-box">
|
||||||
|
<div class="upload-icon">
|
||||||
|
<div class="upload-icon-plus">+</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 店铺配置 -->
|
||||||
|
<div class="form-section">
|
||||||
|
<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="autoOpen" checked>
|
||||||
|
<span class="switch-slider"></span>
|
||||||
|
</label>
|
||||||
|
<span class="switch-label active">自动营业</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="time-group" style="margin-top: 15px;">
|
||||||
|
<div class="radio-group">
|
||||||
|
<div class="radio-option">
|
||||||
|
<input type="radio" id="businessTime1" name="businessTime" value="time1">
|
||||||
|
<label for="businessTime1">00:00:00</label>
|
||||||
|
</div>
|
||||||
|
<span class="time-separator">至</span>
|
||||||
|
<div class="radio-option">
|
||||||
|
<input type="radio" id="businessTime2" name="businessTime" value="time2">
|
||||||
|
<label for="businessTime2">23:59:00</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">服务自提点位置</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="pickupLocation" placeholder="请输入服务自提点位置">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label required">自提点详细地址</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="pickupDetailAddress" placeholder="请输入自提点详细地址">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">自提点示意图</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="upload-list">
|
||||||
|
<div class="upload-box">
|
||||||
|
<div class="upload-icon">
|
||||||
|
<div class="upload-icon-plus">+</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">承接送达承诺</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="switch-group">
|
||||||
|
<label class="switch">
|
||||||
|
<input type="checkbox" id="deliveryPromise" checked>
|
||||||
|
<span class="switch-slider"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-hint">是否自动承诺</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">营业时间</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<div class="checkbox-group">
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" id="everyday" checked>
|
||||||
|
<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: 15px;">
|
||||||
|
<input type="time" class="form-input time-input" id="deliveryStartTime" value="00:00">
|
||||||
|
<span class="time-separator">至</span>
|
||||||
|
<input type="time" class="form-input time-input" id="deliveryEndTime" value="23:59">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="form-label">承诺送达时间</div>
|
||||||
|
<div class="form-input-wrapper">
|
||||||
|
<input type="text" class="form-input" id="deliveryTime" placeholder="请输入小时数">
|
||||||
|
<span class="permission-hint-text">小时以内</span>
|
||||||
|
</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">
|
||||||
|
<div class="permission-section">
|
||||||
|
<div class="permission-item">
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" id="permissionAll" onchange="toggleAllPermissions()">
|
||||||
|
<label for="permissionAll"><strong>账号权限管理</strong></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="permission-sub-items">
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm1">
|
||||||
|
<label for="perm1">订单权限管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm2">
|
||||||
|
<label for="perm2">订单管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm3">
|
||||||
|
<label for="perm3">商品管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm4">
|
||||||
|
<label for="perm4">数据分析</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm5">
|
||||||
|
<label for="perm5">内容管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm6">
|
||||||
|
<label for="perm6">运营管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm7">
|
||||||
|
<label for="perm7">银行卡管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm8">
|
||||||
|
<label for="perm8">优惠券统计工具管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm9">
|
||||||
|
<label for="perm9">营销营销工具管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm10">
|
||||||
|
<label for="perm10">等级规则</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm11">
|
||||||
|
<label for="perm11">会员营销工具管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm12">
|
||||||
|
<label for="perm12">钱包管理</label>
|
||||||
|
</div>
|
||||||
|
<div class="checkbox-option">
|
||||||
|
<input type="checkbox" class="sub-permission" id="perm13">
|
||||||
|
<label for="perm13">运营管理</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 底部按钮 -->
|
||||||
|
<div class="form-footer">
|
||||||
|
<button type="button" class="btn btn-success" onclick="submitForm()">保存</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// 页面加载时检测URL参数
|
||||||
|
window.addEventListener('DOMContentLoaded', function() {
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const mode = urlParams.get('mode');
|
||||||
|
|
||||||
|
if (mode === 'edit') {
|
||||||
|
// 编辑模式:隐藏收益人账号部分,修改页面标题
|
||||||
|
document.getElementById('pageTitle').textContent = '编辑摊位';
|
||||||
|
document.getElementById('beneficiarySection').style.display = 'none';
|
||||||
|
|
||||||
|
// 这里可以根据id参数加载摊位数据
|
||||||
|
const boothId = urlParams.get('id');
|
||||||
|
console.log('编辑摊位ID:', boothId);
|
||||||
|
// 调用后端API获取摊位详情并填充表单
|
||||||
|
// loadBoothData(boothId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 处理操作类型变化
|
||||||
|
function handleOperationTypeChange() {
|
||||||
|
const operationType = document.getElementById('operationType').value;
|
||||||
|
const supplierAccountGroup = document.getElementById('supplierAccountGroup');
|
||||||
|
const supplierPasswordGroup = document.getElementById('supplierPasswordGroup');
|
||||||
|
|
||||||
|
// 根据选择的操作类型显示或隐藏供货商账号和密码字段
|
||||||
|
if (operationType === 'create_supplier') {
|
||||||
|
// 创建新收益人(供货商)- 显示账号和密码
|
||||||
|
supplierAccountGroup.style.display = 'flex';
|
||||||
|
supplierPasswordGroup.style.display = 'flex';
|
||||||
|
} else {
|
||||||
|
// 绑定收益人是市场经营者 - 隐藏账号和密码
|
||||||
|
supplierAccountGroup.style.display = 'none';
|
||||||
|
supplierPasswordGroup.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 切换所有权限
|
||||||
|
function toggleAllPermissions() {
|
||||||
|
const allCheckbox = document.getElementById('permissionAll');
|
||||||
|
const subCheckboxes = document.querySelectorAll('.sub-permission');
|
||||||
|
|
||||||
|
subCheckboxes.forEach(checkbox => {
|
||||||
|
checkbox.checked = allCheckbox.checked;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 监听子权限变化,更新全选状态
|
||||||
|
document.querySelectorAll('.sub-permission').forEach(checkbox => {
|
||||||
|
checkbox.addEventListener('change', function() {
|
||||||
|
const allCheckbox = document.getElementById('permissionAll');
|
||||||
|
const subCheckboxes = document.querySelectorAll('.sub-permission');
|
||||||
|
const checkedCount = Array.from(subCheckboxes).filter(cb => cb.checked).length;
|
||||||
|
|
||||||
|
allCheckbox.checked = checkedCount === subCheckboxes.length;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 提交表单
|
||||||
|
function submitForm() {
|
||||||
|
// 检测是否为编辑模式
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const mode = urlParams.get('mode');
|
||||||
|
const isEditMode = mode === 'edit';
|
||||||
|
|
||||||
|
// 获取表单数据
|
||||||
|
const formData = {
|
||||||
|
boothName: document.getElementById('boothName').value,
|
||||||
|
mainCategory: document.getElementById('mainCategory').value,
|
||||||
|
boothPhone: document.getElementById('boothPhone').value,
|
||||||
|
boothLocation: document.getElementById('boothLocation').value,
|
||||||
|
boothDetailAddress: document.getElementById('boothDetailAddress').value,
|
||||||
|
autoOpen: document.getElementById('autoOpen').checked,
|
||||||
|
pickupLocation: document.getElementById('pickupLocation').value,
|
||||||
|
pickupDetailAddress: document.getElementById('pickupDetailAddress').value,
|
||||||
|
deliveryPromise: document.getElementById('deliveryPromise').checked,
|
||||||
|
deliveryTime: document.getElementById('deliveryTime').value
|
||||||
|
};
|
||||||
|
|
||||||
|
// 如果不是编辑模式,需要验证收益人账号相关字段
|
||||||
|
if (!isEditMode) {
|
||||||
|
const operationType = document.getElementById('operationType').value;
|
||||||
|
formData.operationType = operationType;
|
||||||
|
|
||||||
|
// 验证操作类型
|
||||||
|
if (!formData.operationType) {
|
||||||
|
alert('请选择操作类型');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果选择了"创建新收益人(供货商)",需要验证供货商账号和密码
|
||||||
|
if (operationType === 'create_supplier') {
|
||||||
|
const supplierAccount = document.getElementById('supplierAccount').value;
|
||||||
|
const password = document.getElementById('password').value;
|
||||||
|
|
||||||
|
if (!supplierAccount) {
|
||||||
|
alert('请输入供货商账号');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!password) {
|
||||||
|
alert('请输入密码');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
formData.supplierAccount = supplierAccount;
|
||||||
|
formData.password = password;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.boothName) {
|
||||||
|
alert('请输入摊位名称');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.mainCategory) {
|
||||||
|
alert('请选择主营类目');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.boothLocation) {
|
||||||
|
alert('请输入摊位位置');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.boothDetailAddress) {
|
||||||
|
alert('请输入摊位详细地址');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.pickupLocation) {
|
||||||
|
alert('请输入服务自提点位置');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!formData.pickupDetailAddress) {
|
||||||
|
alert('请输入自提点详细地址');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取权限配置
|
||||||
|
const permissions = [];
|
||||||
|
document.querySelectorAll('.sub-permission:checked').forEach(checkbox => {
|
||||||
|
permissions.push(checkbox.nextElementSibling.textContent);
|
||||||
|
});
|
||||||
|
formData.permissions = permissions;
|
||||||
|
|
||||||
|
console.log('提交的表单数据:', formData);
|
||||||
|
|
||||||
|
// 这里应该调用后端API提交表单
|
||||||
|
if (isEditMode) {
|
||||||
|
alert('摊位修改成功!');
|
||||||
|
} else {
|
||||||
|
alert('摊位创建成功!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可以选择跳转到摊位列表页面
|
||||||
|
// window.location.href = '摊位列表.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片上传功能(模拟)
|
||||||
|
document.querySelectorAll('.upload-box').forEach(box => {
|
||||||
|
box.addEventListener('click', function() {
|
||||||
|
alert('图片上传功能待实现');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,768 @@
|
||||||
|
<!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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 页面标题 */
|
||||||
|
.page-header {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
border-bottom: 1px solid #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header h2 {
|
||||||
|
font-size: 20px;
|
||||||
|
color: #303133;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 返回按钮 */
|
||||||
|
.back-section {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
padding: 8px 20px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-default {
|
||||||
|
background-color: white;
|
||||||
|
color: #606266;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-default:hover {
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border-color: #c0c4cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 表格样式 */
|
||||||
|
.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;
|
||||||
|
gap: 5px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 模态框样式 */
|
||||||
|
.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-input-wrapper {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-input {
|
||||||
|
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 {
|
||||||
|
border-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 图片上传样式 */
|
||||||
|
.upload-box {
|
||||||
|
width: 140px;
|
||||||
|
height: 140px;
|
||||||
|
border: 1px dashed #dcdfe6;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 复选框组样式 */
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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="page-header">
|
||||||
|
<h2>待审核菜市场</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 返回按钮 -->
|
||||||
|
<div class="back-section">
|
||||||
|
<button class="btn btn-default" onclick="goBack()">返回菜市场列表</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>市场名</th>
|
||||||
|
<th>地址</th>
|
||||||
|
<th>经营者姓名</th>
|
||||||
|
<th>经营者账号</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="pendingMarketsTableBody">
|
||||||
|
<!-- 动态填充待审核数据 -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 详情模态框 -->
|
||||||
|
<div class="modal" id="detailMarketModal">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3>菜市场详情</h3>
|
||||||
|
<button class="modal-close" onclick="closeDetailModal()">×</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form id="detailMarketForm">
|
||||||
|
<!-- 经营者信息 -->
|
||||||
|
<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="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>
|
||||||
|
</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">
|
||||||
|
<div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者)自由配置是否呼叫第三方骑手进行配送;</div>
|
||||||
|
<div class="form-hint">第三方配送费用因距离、天气、时段等因素会产生不同程度的浮动;将根据实际配送费用进行扣除。</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="detailThirdPartyDelivery" disabled>
|
||||||
|
<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="closeDetailModal()">关闭</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// 页面加载时填充数据
|
||||||
|
window.onload = function() {
|
||||||
|
loadPendingMarkets();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 加载待审核菜市场数据
|
||||||
|
function loadPendingMarkets() {
|
||||||
|
// 模拟待审核数据,实际应该从后端API获取
|
||||||
|
const mockPendingData = [
|
||||||
|
{
|
||||||
|
marketName: '新申请菜市场',
|
||||||
|
categoryType: 'offline',
|
||||||
|
address: '上海市浦东新区张江高科技园区',
|
||||||
|
operatorName: '王五',
|
||||||
|
operatorAccount: '13900001234',
|
||||||
|
detailAddress: '张江高科技园区祖冲之路1000号',
|
||||||
|
location: '121.605827, 31.206107',
|
||||||
|
boothCount: '0',
|
||||||
|
businessStatus: '休息',
|
||||||
|
autoBusinessTime: true,
|
||||||
|
marketStatus: false,
|
||||||
|
thirdPartyDelivery: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
marketName: '东方农贸市场',
|
||||||
|
categoryType: 'cloud',
|
||||||
|
address: '北京市朝阳区建国路88号',
|
||||||
|
operatorName: '赵六',
|
||||||
|
operatorAccount: '13900005678',
|
||||||
|
detailAddress: '建国路88号SOHO现代城',
|
||||||
|
location: '116.462813, 39.912285',
|
||||||
|
boothCount: '0',
|
||||||
|
businessStatus: '休息',
|
||||||
|
autoBusinessTime: true,
|
||||||
|
marketStatus: false,
|
||||||
|
thirdPartyDelivery: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
marketName: '绿色生态市场',
|
||||||
|
categoryType: 'offline',
|
||||||
|
address: '福建省厦门市思明区',
|
||||||
|
operatorName: '孙七',
|
||||||
|
operatorAccount: '13900009999',
|
||||||
|
detailAddress: '思明区湖滨南路999号',
|
||||||
|
location: '118.089425, 24.479663',
|
||||||
|
boothCount: '0',
|
||||||
|
businessStatus: '休息',
|
||||||
|
autoBusinessTime: true,
|
||||||
|
marketStatus: false,
|
||||||
|
thirdPartyDelivery: true
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// 填充表格数据
|
||||||
|
const tbody = document.getElementById('pendingMarketsTableBody');
|
||||||
|
tbody.innerHTML = '';
|
||||||
|
|
||||||
|
if (mockPendingData.length === 0) {
|
||||||
|
tbody.innerHTML = '<tr><td colspan="5" style="text-align: center; color: #909399;">暂无待审核菜市场</td></tr>';
|
||||||
|
} else {
|
||||||
|
mockPendingData.forEach((market, index) => {
|
||||||
|
const row = document.createElement('tr');
|
||||||
|
row.innerHTML = `
|
||||||
|
<td>${market.marketName}</td>
|
||||||
|
<td>${market.address}</td>
|
||||||
|
<td>${market.operatorName || ''}</td>
|
||||||
|
<td>${market.operatorAccount || ''}</td>
|
||||||
|
<td>
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="btn btn-primary btn-small" onclick='viewPendingMarketDetail(${JSON.stringify(market)})'>详情</button>
|
||||||
|
<button class="btn btn-success btn-small" onclick="approveMarket('${market.marketName}')">通过</button>
|
||||||
|
<button class="btn btn-danger btn-small" onclick="rejectMarket('${market.marketName}')">拒绝</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
`;
|
||||||
|
tbody.appendChild(row);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回菜市场列表
|
||||||
|
function goBack() {
|
||||||
|
window.location.href = '菜市场列表.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查看待审核菜市场详情
|
||||||
|
function viewPendingMarketDetail(marketData) {
|
||||||
|
openDetailModal(marketData);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打开详情模态框
|
||||||
|
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 approveMarket(marketName) {
|
||||||
|
if (confirm('确定通过 "' + marketName + '" 的申请吗?')) {
|
||||||
|
alert('审核通过功能待实现');
|
||||||
|
// 这里应该调用后端API进行审核通过操作
|
||||||
|
// 成功后刷新列表
|
||||||
|
// loadPendingMarkets();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 审核拒绝
|
||||||
|
function rejectMarket(marketName) {
|
||||||
|
if (confirm('确定拒绝 "' + marketName + '" 的申请吗?')) {
|
||||||
|
alert('审核拒绝功能待实现');
|
||||||
|
// 这里应该调用后端API进行审核拒绝操作
|
||||||
|
// 成功后刷新列表
|
||||||
|
// loadPendingMarkets();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -490,11 +490,6 @@
|
||||||
<option value="beijing">北京市</option>
|
<option value="beijing">北京市</option>
|
||||||
<option value="fujian">福建省</option>
|
<option value="fujian">福建省</option>
|
||||||
</select>
|
</select>
|
||||||
<select>
|
|
||||||
<option value="">经营模式</option>
|
|
||||||
<option value="operator">经营者</option>
|
|
||||||
<option value="platform">平台</option>
|
|
||||||
</select>
|
|
||||||
<select>
|
<select>
|
||||||
<option value="">状态</option>
|
<option value="">状态</option>
|
||||||
<option value="normal">正常</option>
|
<option value="normal">正常</option>
|
||||||
|
|
@ -506,6 +501,7 @@
|
||||||
<!-- 新增按钮 -->
|
<!-- 新增按钮 -->
|
||||||
<div class="add-section">
|
<div class="add-section">
|
||||||
<button class="btn btn-success">新增</button>
|
<button class="btn btn-success">新增</button>
|
||||||
|
<button class="btn btn-primary" onclick="goToPendingMarkets()">待审核菜市场</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
|
|
@ -514,8 +510,8 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>市场名</th>
|
<th>市场名</th>
|
||||||
|
<th>商品类目类型</th>
|
||||||
<th>地址</th>
|
<th>地址</th>
|
||||||
<th>经营模式</th>
|
|
||||||
<th>经营者姓名</th>
|
<th>经营者姓名</th>
|
||||||
<th>经营者账号</th>
|
<th>经营者账号</th>
|
||||||
<th>第三方配送</th>
|
<th>第三方配送</th>
|
||||||
|
|
@ -526,10 +522,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr data-category-type="offline">
|
||||||
<td>权限测试市场</td>
|
<td>权限测试市场</td>
|
||||||
|
<td>线下菜市场</td>
|
||||||
<td>上海市市辖区闵行区</td>
|
<td>上海市市辖区闵行区</td>
|
||||||
<td>经营者</td>
|
|
||||||
<td>权限测试</td>
|
<td>权限测试</td>
|
||||||
<td>13800001500</td>
|
<td>13800001500</td>
|
||||||
<td>否</td>
|
<td>否</td>
|
||||||
|
|
@ -541,8 +537,7 @@
|
||||||
<div class="action-row">
|
<div class="action-row">
|
||||||
<button class="btn btn-primary btn-small">设置结算比例</button>
|
<button class="btn btn-primary btn-small">设置结算比例</button>
|
||||||
<button class="btn btn-primary btn-small">分销推广</button>
|
<button class="btn btn-primary btn-small">分销推广</button>
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
<button class="btn btn-primary btn-small">摊位详情</button>
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="action-row">
|
<div class="action-row">
|
||||||
<button class="btn btn-primary btn-small">详情</button>
|
<button class="btn btn-primary btn-small">详情</button>
|
||||||
|
|
@ -552,36 +547,10 @@
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr data-category-type="cloud">
|
||||||
<td>测试菜市场-权限</td>
|
|
||||||
<td>福建省福州市台江区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>是</td>
|
|
||||||
<td class="status-disabled">禁用</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>测试菜市场-葡萄</td>
|
<td>测试菜市场-葡萄</td>
|
||||||
|
<td>云店</td>
|
||||||
<td>北京市市辖区东城区</td>
|
<td>北京市市辖区东城区</td>
|
||||||
<td>经营者</td>
|
|
||||||
<td>林xx</td>
|
<td>林xx</td>
|
||||||
<td>17750208698</td>
|
<td>17750208698</td>
|
||||||
<td>否</td>
|
<td>否</td>
|
||||||
|
|
@ -593,190 +562,7 @@
|
||||||
<div class="action-row">
|
<div class="action-row">
|
||||||
<button class="btn btn-primary btn-small">设置结算比例</button>
|
<button class="btn btn-primary btn-small">设置结算比例</button>
|
||||||
<button class="btn btn-primary btn-small">分销推广</button>
|
<button class="btn btn-primary btn-small">分销推广</button>
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
<button class="btn btn-primary btn-small">摊位详情</button>
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>华光农贸市场</td>
|
|
||||||
<td>上海市市辖区闵行区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>华光</td>
|
|
||||||
<td>13800001300</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>四季菜市场</td>
|
|
||||||
<td>上海市市辖区闵行区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>春申</td>
|
|
||||||
<td>13800001200</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>1</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>筱埕海产市场</td>
|
|
||||||
<td>福建省福州市连江县</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>邱浩榆</td>
|
|
||||||
<td>13850103997</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>1</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>红梅菜市场</td>
|
|
||||||
<td>上海市市辖区闵行区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>红梅</td>
|
|
||||||
<td>13800001100</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>1</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>楚逸农贸市场</td>
|
|
||||||
<td>福建省福州市连江县</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>林道铃</td>
|
|
||||||
<td>13799430688</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>3</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>华径菜场</td>
|
|
||||||
<td>上海市市辖区闵行区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>华径菜市场</td>
|
|
||||||
<td>13800001000</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>1</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</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>
|
|
||||||
<tr>
|
|
||||||
<td>春申菜市场</td>
|
|
||||||
<td>上海市市辖区徐汇区</td>
|
|
||||||
<td>经营者</td>
|
|
||||||
<td>华径</td>
|
|
||||||
<td>13800000200</td>
|
|
||||||
<td>否</td>
|
|
||||||
<td class="status-normal">正常</td>
|
|
||||||
<td>7</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>
|
|
||||||
<button class="btn btn-primary btn-small">调定经营者账号</button>
|
|
||||||
<button class="btn btn-primary btn-small">查询详情</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="action-row">
|
<div class="action-row">
|
||||||
<button class="btn btn-primary btn-small">详情</button>
|
<button class="btn btn-primary btn-small">详情</button>
|
||||||
|
|
@ -791,6 +577,45 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 摊位详情模态框 -->
|
||||||
|
<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>
|
||||||
|
|
||||||
<!-- 设置结算比例模态框 -->
|
<!-- 设置结算比例模态框 -->
|
||||||
<div class="modal" id="settlementRatioModal">
|
<div class="modal" id="settlementRatioModal">
|
||||||
<div class="modal-content" style="max-width: 500px;">
|
<div class="modal-content" style="max-width: 500px;">
|
||||||
|
|
@ -815,6 +640,191 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 详情模态框 -->
|
||||||
|
<div class="modal" id="detailMarketModal">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3>菜市场详情</h3>
|
||||||
|
<button class="modal-close" onclick="closeDetailModal()">×</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form id="detailMarketForm">
|
||||||
|
<!-- 经营者信息 -->
|
||||||
|
<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="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>
|
||||||
|
</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">
|
||||||
|
<div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者)自由配置是否呼叫第三方骑手进行配送;</div>
|
||||||
|
<div class="form-hint">第三方配送费用因距离、天气、时段等因素会产生不同程度的浮动;将根据实际配送费用进行扣除。</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="detailThirdPartyDelivery" disabled>
|
||||||
|
<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="closeDetailModal()">关闭</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 新增菜市场模态框 -->
|
<!-- 新增菜市场模态框 -->
|
||||||
<div class="modal" id="addMarketModal">
|
<div class="modal" id="addMarketModal">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
|
|
@ -824,44 +834,24 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form id="addMarketForm">
|
<form id="addMarketForm">
|
||||||
<!-- 关联商圈 -->
|
<!-- 经营者信息 -->
|
||||||
<div class="form-section">
|
<div class="form-section">
|
||||||
<div class="form-section-title">关联商圈</div>
|
<div class="form-section-title">经营者信息</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label required">选择商圈</div>
|
<div class="form-label required">经营者账号</div>
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<select class="form-select" id="businessDistrict">
|
<input type="text" class="form-input" id="operatorAccount" placeholder="请输入手机号码" maxlength="11">
|
||||||
<option value="">请选择商圈</option>
|
<div class="form-hint">请输入经营者的手机号码</div>
|
||||||
<option value="1">商圈1</option>
|
|
||||||
<option value="2">商圈2</option>
|
|
||||||
<option value="3">商圈3</option>
|
|
||||||
<option value="4">商圈4</option>
|
|
||||||
</select>
|
|
||||||
<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">
|
|
||||||
<div class="form-hint">ℹ️ 无代理状态下,代理结算比例归到平台;</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label">是否有菜市场经营者</div>
|
<div class="form-label required">验证码</div>
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<div class="switch-group">
|
<div style="display: flex; gap: 10px;">
|
||||||
<span class="switch-label">无</span>
|
<input type="text" class="form-input" id="verifyCode" placeholder="请输入验证码" maxlength="6" style="flex: 1;">
|
||||||
<label class="switch">
|
<button type="button" class="btn btn-primary" id="sendCodeBtn" onclick="sendVerifyCode()">发送验证码</button>
|
||||||
<input type="checkbox" id="hasOperator">
|
|
||||||
<span class="switch-slider"></span>
|
|
||||||
</label>
|
|
||||||
<span class="switch-label active">有</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-hint">验证码将发送至经营者手机</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -873,7 +863,18 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label required">菜市场名称</div>
|
<div class="form-label required">菜市场名称</div>
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<input type="text" class="form-input" placeholder="请输入菜市场名称25字符内" maxlength="25">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -1006,8 +1007,8 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="form-label"></div>
|
<div class="form-label"></div>
|
||||||
<div class="form-input-wrapper">
|
<div class="form-input-wrapper">
|
||||||
<div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者) 自由配置是否使用第三方配送:</div>
|
<div class="form-hint">ℹ️ 开启后,将允许该菜市场经营者/摊主(无经营者)自由配置是否呼叫第三方骑手进行配送;</div>
|
||||||
<div class="form-hint">第三方配送费用配置简,天气、时段等因素产生不同程度的浮动;将根据实际配送费用扣行扣除。</div>
|
<div class="form-hint">第三方配送费用因距离、天气、时段等因素会产生不同程度的浮动;将根据实际配送费用进行扣除。</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -1034,6 +1035,47 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// 验证码倒计时
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
// 搜索功能
|
// 搜索功能
|
||||||
document.querySelector('.search-bar .btn-primary').addEventListener('click', function() {
|
document.querySelector('.search-bar .btn-primary').addEventListener('click', function() {
|
||||||
alert('搜索功能待实现');
|
alert('搜索功能待实现');
|
||||||
|
|
@ -1047,15 +1089,56 @@
|
||||||
// 打开模态框
|
// 打开模态框
|
||||||
function openModal() {
|
function openModal() {
|
||||||
document.getElementById('addMarketModal').classList.add('active');
|
document.getElementById('addMarketModal').classList.add('active');
|
||||||
|
// 重置倒计时
|
||||||
|
if (countdownTimer) {
|
||||||
|
clearInterval(countdownTimer);
|
||||||
|
countdown = 0;
|
||||||
|
document.getElementById('sendCodeBtn').disabled = false;
|
||||||
|
document.getElementById('sendCodeBtn').textContent = '发送验证码';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭模态框
|
// 关闭模态框
|
||||||
function closeModal() {
|
function closeModal() {
|
||||||
document.getElementById('addMarketModal').classList.remove('active');
|
document.getElementById('addMarketModal').classList.remove('active');
|
||||||
|
// 清理倒计时
|
||||||
|
if (countdownTimer) {
|
||||||
|
clearInterval(countdownTimer);
|
||||||
|
countdown = 0;
|
||||||
|
}
|
||||||
|
// 重置表单
|
||||||
|
document.getElementById('addMarketForm').reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交表单
|
// 提交表单
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
|
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验证验证码并提交表单
|
||||||
alert('表单提交功能待实现');
|
alert('表单提交功能待实现');
|
||||||
closeModal();
|
closeModal();
|
||||||
}
|
}
|
||||||
|
|
@ -1067,6 +1150,62 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 打开摊位详情模态框
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 打开设置结算比例模态框
|
// 打开设置结算比例模态框
|
||||||
function openSettlementModal() {
|
function openSettlementModal() {
|
||||||
document.getElementById('settlementRatioModal').classList.add('active');
|
document.getElementById('settlementRatioModal').classList.add('active');
|
||||||
|
|
@ -1095,6 +1234,72 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 打开详情模态框
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// 为所有操作按钮添加事件监听
|
// 为所有操作按钮添加事件监听
|
||||||
document.querySelectorAll('.action-buttons button').forEach(button => {
|
document.querySelectorAll('.action-buttons button').forEach(button => {
|
||||||
button.addEventListener('click', function(e) {
|
button.addEventListener('click', function(e) {
|
||||||
|
|
@ -1104,11 +1309,24 @@
|
||||||
// 如果是设置结算比例按钮,打开对应的模态框
|
// 如果是设置结算比例按钮,打开对应的模态框
|
||||||
if (buttonText === '设置结算比例') {
|
if (buttonText === '设置结算比例') {
|
||||||
openSettlementModal();
|
openSettlementModal();
|
||||||
|
} else if (buttonText === '详情') {
|
||||||
|
// 获取当前行数据并打开详情模态框
|
||||||
|
const rowData = getRowData(this);
|
||||||
|
openDetailModal(rowData);
|
||||||
|
} else if (buttonText === '摊位详情') {
|
||||||
|
// 获取市场名称并打开摊位详情模态框
|
||||||
|
const rowData = getRowData(this);
|
||||||
|
openBoothDetailModal(rowData.marketName);
|
||||||
} else {
|
} else {
|
||||||
alert(buttonText + ' 功能待实现');
|
alert(buttonText + ' 功能待实现');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 跳转到待审核菜市场页面
|
||||||
|
function goToPendingMarkets() {
|
||||||
|
window.location.href = '待审核菜市场.html';
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Loading…
Reference in New Issue