Commit cb0f9d52 by 张倩

后台原型更新

parent 19c530be
<!DOCTYPE html>
<!DOCTYPE html>
......@@ -504,6 +504,23 @@ td{padding:9px 10px;vertical-align:middle;line-height:1.4}
</div>
</div>
</div>
<!-- 提现周期 -->
<div style="margin-top:14px;padding:12px 14px;background:#fff8e6;border:1px solid #ffe58f;border-radius:6px">
<div style="font-size:12px;font-weight:500;color:#d48806;margin-bottom:10px;display:flex;align-items:center;gap:5px"><i class="ti ti-clock-dollar"></i>合伙人佣金入账周期配置</div>
<div style="display:flex;gap:8px;align-items:center">
<span style="font-size:13px;font-weight:500;color:#1a1a1a">T +</span>
<input type="number" id="wd-days" min="0" step="1" value="30" style="width:80px;height:32px;border:1px solid #d9d9d9;border-radius:6px;padding:0 10px;font-size:13px;outline:none;text-align:center" oninput="updateWdPreview()">
<span style="font-size:13px;color:#595959">天(工作日)</span>
<span class="req" style="margin-left:-4px">*</span>
<div style="height:32px;display:flex;align-items:center;padding:0 12px;background:#fffbe6;border:1px solid #ffe58f;border-radius:6px;font-size:12px;color:#d48806;white-space:nowrap;margin-left:8px" id="wd-preview">
<i class="ti ti-eye" style="margin-right:4px"></i>审核通过后 <b style="color:#1a1a1a;margin:0 3px">30</b> 个工作日入账
</div>
</div>
<div class="form-hint" style="margin-top:8px">
仅输入正整数。按工作日计算,遇节假日顺延。T+0 = 审核通过即入账;T+30 ≈ 一个月后入账
</div>
</div>
</div>
<!-- 产品图文介绍 -->
......@@ -653,6 +670,15 @@ td{padding:9px 10px;vertical-align:middle;line-height:1.4}
<div class="rule-detail-row"><span>比例设置</span><span class="rule-detail-val">30%</span></div>
</div>
</div>
<!-- 提现周期 -->
<div style="margin-top:14px;padding:10px 14px;background:#fff8e6;border:1px solid #ffe58f;border-radius:6px;display:flex;align-items:center;gap:12px;flex-wrap:wrap">
<div style="display:flex;align-items:center;gap:5px">
<i class="ti ti-clock-dollar" style="color:#d48806;font-size:16px"></i>
<span style="font-size:12px;color:#8c8c8c">合伙人佣金入账周期</span>
</div>
<span style="font-size:14px;font-weight:600;color:#d48806;background:#fff;border:1px solid #ffe58f;padding:2px 12px;border-radius:4px;font-family:monospace">T + 30 天</span>
<span style="font-size:12px;color:#595959">审核通过后 30 个工作日入账(遇节假日顺延)</span>
</div>
</div>
</div>
......@@ -742,23 +768,23 @@ function switchDetailTab(el, key) {
/* ===== 产品数据 ===== */
var PRODUCTS = [
{ cat:'异地用工', name:'岗位外包', owner:'李玲玲', assignees:['李明','赵磊'], rel:'—', price:'61元/人/月',
rules:['渠道:比例 2% 续费','对接人:比例 5% 续费','合伙人:比例 30% 续费'], status:'on', main:true, priority:0, mat:0 },
rules:['渠道:比例 2% 续费','对接人:比例 5% 续费','合伙人:比例 30% 续费'], wdCycle:30, status:'on', main:true, priority:0, mat:0 },
{ cat:'财税服务', name:'测试固定返佣产品', owner:'李玲玲', assignees:['刘婷'], rel:'—', price:'1000-14000元/人',
rules:['渠道:固定 ¥60 一次性','对接人:固定 ¥150 一次性','合伙人:固定 ¥300 一次性'], status:'on', main:true, priority:0, mat:0 },
rules:['渠道:固定 ¥60 一次性','对接人:固定 ¥150 一次性','合伙人:固定 ¥300 一次性'], wdCycle:5, status:'on', main:true, priority:0, mat:0 },
{ cat:'资质许可', name:'资质认证许可证代办', owner:'Candy Gao', assignees:[], rel:'资质认证', price:'100',
rules:['渠道:固定 ¥0 一次性','对接人:固定 ¥0 一次性','合伙人:固定 ¥120 一次性'], status:'on', main:true, priority:0, mat:0 },
rules:['渠道:固定 ¥0 一次性','对接人:固定 ¥0 一次性','合伙人:固定 ¥120 一次性'], wdCycle:30, status:'on', main:true, priority:0, mat:0 },
{ cat:'智能工资条', name:'智能工资条', owner:'张美玉', assignees:[], rel:'—', price:'1-50人 0.80元...',
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:固定 ¥20.14 续费'], status:'on', main:true, priority:0, mat:0 },
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:固定 ¥20.14 续费'], wdCycle:7, status:'on', main:true, priority:0, mat:0 },
{ cat:'异地用工', name:'ben01', owner:'孙彬彬', assignees:['黄慧慧','刘铭阳','徐露','楚冠军','...'], rel:'—', price:'60/人',
rules:['渠道:比例 10%(成交额) 续费','对接人:比例 5%(服务费) 续费','合伙人:固定 ¥200 续费'], status:'draft', main:true, priority:0, mat:0 },
rules:['渠道:比例 10%(成交额) 续费','对接人:比例 5%(服务费) 续费','合伙人:固定 ¥200 续费'], wdCycle:30, status:'draft', main:true, priority:0, mat:0 },
{ cat:'异地用工', name:'劳务派遣', owner:'李玲玲', assignees:[], rel:'—', price:'60元/人/月',
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 30%(成交额) 续费'], status:'on', main:false, priority:0, mat:0 },
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 30%(成交额) 续费'], wdCycle:30, status:'on', main:false, priority:0, mat:0 },
{ cat:'人事代理', name:'社保公积金托管', owner:'郭欢', assignees:[], rel:'—', price:'1-5人 1,000元/年...',
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 30%(成交额) 续费'], status:'on', main:false, priority:0, mat:0 },
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 30%(成交额) 续费'], wdCycle:30, status:'on', main:false, priority:0, mat:0 },
{ cat:'工商服务', name:'财税风险规划方案', owner:'毕潇然', assignees:[], rel:'中小微企业T...', price:'一单一议',
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 10%(成交额) 续费'], status:'on', main:false, priority:0, mat:0 },
rules:['渠道:固定 ¥0 续费','对接人:固定 ¥0 续费','合伙人:比例 10%(成交额) 续费'], wdCycle:7, status:'on', main:false, priority:0, mat:0 },
{ cat:'财税服务', name:'测测试', owner:'问贝', assignees:[], rel:'—', price:'33',
rules:['渠道:固定 ¥200 一次性','对接人:固定 ¥400 一次性','合伙人:固定 ¥800 一次性'], status:'draft', main:false, priority:0, mat:0 },
rules:['渠道:固定 ¥200 一次性','对接人:固定 ¥400 一次性','合伙人:固定 ¥800 一次性'], wdCycle:null, status:'draft', main:false, priority:0, mat:0 },
];
function renderProducts() {
......@@ -767,7 +793,7 @@ function renderProducts() {
var assigneeHtml = d.assignees.length
? d.assignees.map(function(a){ return '<span class="person-tag">'+a+'</span>'; }).join('')
: '<span class="muted">未配置</span>';
var rulesHtml = '<div class="rule-cell">' + d.rules.map(function(r){ return r; }).join('<br>') + '</div>';
var rulesHtml = '<div class="rule-cell">' + d.rules.map(function(r){ return r; }).join('<br>') + (d.wdCycle !== null && d.wdCycle !== undefined ? '<br><span style="color:#d48806"><i class="ti ti-clock-dollar" style="font-size:10px"></i> T+'+d.wdCycle+'天</span>' : '') + '</div>';
var opOn = d.status==='on' ? '<button class="btn-link" style="color:#cf1322">下架</button>' : '<button class="btn-link" style="color:#389e0d">上架</button>';
return '<tr>'
+ '<td>'+d.cat+'</td>'
......@@ -800,6 +826,15 @@ function updateRuleFields(prefix) {
/* ===== 新增分类 ===== */
function openAddCategory() { alert('新增产品分类弹窗(待实现)'); }
/* ===== 提现周期预览 ===== */
function updateWdPreview() {
var el = document.getElementById('wd-preview');
var v = parseInt(document.getElementById('wd-days').value);
if (isNaN(v) || v < 0) { el.innerHTML = '<i class="ti ti-eye" style="margin-right:4px"></i>请输入有效天数'; return; }
if (v === 0) { el.innerHTML = '<i class="ti ti-eye" style="margin-right:4px"></i>审核通过 <b style="color:#1a1a1a;margin:0 3px">即时</b> 入账'; return; }
el.innerHTML = '<i class="ti ti-eye" style="margin-right:4px"></i>审核通过后 <b style="color:#1a1a1a;margin:0 3px">' + v + '</b> 个工作日入账';
}
/* 初始化 */
renderProducts();
</script>
......
<!DOCTYPE html>
<!DOCTYPE html>
......@@ -154,7 +154,7 @@ td{padding:9px 10px;vertical-align:middle}
<div class="filter-item"><label>合伙人</label><input type="text" placeholder="请选择"></div>
<div class="filter-item"><label>渠道管理员</label><input type="text" placeholder="请选择"></div>
<div class="filter-item"><label>对接人</label><input type="text" placeholder="请选择"></div>
<div class="filter-item"><label>状态</label><select><option value="">请选择</option><option>待审核</option><option>已审核</option><option>已取消</option></select></div>
<div class="filter-item"><label>状态</label><select id="p-status-filter" onchange="pRender()"><option value="">全部状态</option><option value="pending">待审核</option><option value="waitSettle">已审核待入账</option><option value="settled">已审核</option><option value="cancelled">已取消</option></select></div>
<div class="filter-btns">
<button class="btn btn-primary"><i class="ti ti-search"></i>查询</button>
<button class="btn"><i class="ti ti-refresh"></i>重置</button>
......@@ -162,115 +162,27 @@ td{padding:9px 10px;vertical-align:middle}
</div>
</div>
<div class="content">
<div class="status-tabs">
<div class="status-tab active">待审核 (195)</div>
<div class="status-tab">已审核待入账 (2)</div>
<div class="status-tab">已审核 (7)</div>
<div class="status-tab">已取消 (1)</div>
<div class="status-tab">全部 (205)</div>
<div class="status-tabs" id="p-tabs">
<div class="status-tab active" onclick="pSwitchTab('pending',this)">待审核 (<span id="p-cnt-pending">0</span>)</div>
<div class="status-tab" onclick="pSwitchTab('waitSettle',this)">已审核待入账 (<span id="p-cnt-waitSettle">0</span>)</div>
<div class="status-tab" onclick="pSwitchTab('settled',this)">已审核 (<span id="p-cnt-settled">0</span>)</div>
<div class="status-tab" onclick="pSwitchTab('cancelled',this)">已取消 (<span id="p-cnt-cancelled">0</span>)</div>
<div class="status-tab" onclick="pSwitchTab('all',this)">全部 (<span id="p-cnt-all">0</span>)</div>
</div>
<div class="summary-bar">
<span>共 195 条订单,佣金总金额 <b>¥3,764.11</b>,正向佣金 <b>¥3,764.11</b>,负向佣金 <b>¥0</b></span>
<button class="btn btn-sm btn-primary">批量审核</button>
<div id="p-summary" class="summary-bar">
<span id="p-summary-text"></span>
<button class="btn btn-sm btn-primary" id="p-batch-btn" onclick="pBatchAudit()">批量审核</button>
</div>
<div class="table-card">
<table>
<thead>
<tr>
<th class="cb"><input type="checkbox"></th>
<th>业务订单编号</th>
<th>产品类型</th>
<th>产品名称</th>
<th>用户类型</th>
<th>所属客户</th>
<th>合伙人</th>
<th>渠道管理员</th>
<th>对接人</th>
<th>客户经理</th>
<th>订单金额</th>
<th>佣金金额</th>
<th>佣金规则</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td class="cb"><input type="checkbox"></td>
<td style="color:#1677ff;cursor:pointer">1356660</td>
<td><span class="tag tag-blue">异地用工</span></td>
<td>劳务派遣</td>
<td>企业用户</td>
<td>张情测试合伙人企业</td>
<td>15011348374</td>
<td style="color:#1677ff">王利娟</td>
<td><span class="tag tag-blue">李明</span></td>
<td>张情</td>
<td>60.00</td>
<td style="font-weight:500;color:#389e0d">¥18.00</td>
<td style="color:#8c8c8c;font-size:11px">比例 30%<br>续费持续返佣</td>
<td><span class="tag tag-orange">待审核</span></td>
<td><button class="btn-link">操作记录</button><button class="btn-link">审核</button><button class="btn-link">更多</button></td>
</tr>
<tr>
<td class="cb"><input type="checkbox"></td>
<td style="color:#1677ff;cursor:pointer">1356657</td>
<td><span class="tag tag-blue">异地用工</span></td>
<td>企业员工社保代缴</td>
<td>企业用户</td>
<td>张情测试合伙人企业</td>
<td>15011348374</td>
<td style="color:#1677ff">王利娟</td>
<td><span class="muted"></span></td>
<td>张情</td>
<td>60.00</td>
<td style="font-weight:500;color:#389e0d">¥18.00</td>
<td style="color:#8c8c8c;font-size:11px">比例 30%<br>续费持续返佣</td>
<td><span class="tag tag-orange">待审核</span></td>
<td><button class="btn-link">操作记录</button><button class="btn-link">审核</button><button class="btn-link">更多</button></td>
</tr>
<tr>
<td class="cb"><input type="checkbox"></td>
<td style="color:#1677ff;cursor:pointer">1356654</td>
<td><span class="tag tag-blue">异地用工</span></td>
<td>岗位外包</td>
<td>企业用户</td>
<td>张情测试合伙人企业</td>
<td>15011348374</td>
<td style="color:#1677ff">王利娟</td>
<td><span class="tag tag-blue">赵磊</span></td>
<td>张情</td>
<td>60.00</td>
<td style="font-weight:500;color:#389e0d">¥18.00</td>
<td style="color:#8c8c8c;font-size:11px">比例 30%<br>续费持续返佣</td>
<td><span class="tag tag-orange">待审核</span></td>
<td><button class="btn-link">操作记录</button><button class="btn-link">审核</button><button class="btn-link">更多</button></td>
</tr>
<tr>
<td class="cb"><input type="checkbox"></td>
<td style="color:#1677ff;cursor:pointer">1356658</td>
<td><span class="tag tag-purple">财税服务</span></td>
<td>代理记账</td>
<td>企业用户</td>
<td>张情测试合伙人企业</td>
<td>15011348374</td>
<td style="color:#1677ff">王利娟</td>
<td><span class="tag tag-blue">赵磊</span></td>
<td>张情</td>
<td>60.00</td>
<td style="font-weight:500;color:#389e0d">¥18.00</td>
<td style="color:#8c8c8c;font-size:11px">比例 30%<br>续费持续返佣</td>
<td><span class="tag tag-green">已审核</span></td>
<td><button class="btn-link">操作记录</button><button class="btn-link">更多</button></td>
</tr>
</tbody>
<thead id="p-thead"></thead>
<tbody id="p-tbody"></tbody>
</table>
<div class="pagination">
<span>205 条 &nbsp; <select style="height:26px;border:1px solid #d9d9d9;border-radius:4px;font-size:12px"><option>20条/页</option><option>50条/页</option></select></span>
<span><span id="p-total-count">0</span></span>
<div style="display:flex;gap:4px">
<div class="page-btn"><i class="ti ti-chevron-left"></i></div>
<div class="page-btn active">1</div>
<div class="page-btn">2</div>
<div class="page-btn"><i class="ti ti-chevron-right"></i></div>
</div>
</div>
......@@ -832,11 +744,90 @@ td{padding:9px 10px;vertical-align:middle}
<script>
/* ===== 合伙人佣金结算 数据驱动 ===== */
var P_STATUS = { pending:['待审核','tag-orange'], waitSettle:['已审核待入账','tag-blue'], settled:['已审核','tag-green'], cancelled:['已取消','tag-gray'] };
var P_DATA = [
{ id:'1356660', cat:'异地用工', catCls:'tag-blue', name:'劳务派遣', utype:'企业用户', customer:'张情测试合伙人企业', partner:'15011348374', chMgr:'王利娟', assignee:'李明', custMgr:'张情', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'pending', auditTime:'', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356657', cat:'异地用工', catCls:'tag-blue', name:'企业员工社保代缴', utype:'企业用户', customer:'张情测试合伙人企业', partner:'15011348374', chMgr:'王利娟', assignee:'', custMgr:'张情', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'pending', auditTime:'', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356654', cat:'异地用工', catCls:'tag-blue', name:'岗位外包', utype:'企业用户', customer:'张情测试合伙人企业', partner:'15011348374', chMgr:'王利娟', assignee:'赵磊', custMgr:'张情', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'pending', auditTime:'', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356651', cat:'异地用工', catCls:'tag-blue', name:'岗位外包', utype:'企业用户', customer:'远航科技有限公司', partner:'13812345678', chMgr:'王利娟', assignee:'李明', custMgr:'张情', amount:120, comm:36, rule:'比例 30% 续费', cycle:30, status:'pending', auditTime:'', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356649', cat:'财税服务', catCls:'tag-purple', name:'代理记账', utype:'企业用户', customer:'启航教育咨询', partner:'13987654321', chMgr:'王利娟', assignee:'刘婷', custMgr:'张美玉', amount:2000, comm:600, rule:'比例 30% 续费', cycle:7, status:'pending', auditTime:'', expectDate:'2026-07-18', settleDate:'' },
{ id:'1356645', cat:'异地用工', catCls:'tag-blue', name:'劳务派遣', utype:'企业用户', customer:'锦绣餐饮集团', partner:'13611112222', chMgr:'王利娟', assignee:'赵磊', custMgr:'郭欢', amount:60, comm:-18, rule:'比例 30% 退费冲账', cycle:30, status:'pending', auditTime:'', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356640', cat:'异地用工', catCls:'tag-blue', name:'岗位外包', utype:'企业用户', customer:'张情测试合伙人企业', partner:'15011348374', chMgr:'王利娟', assignee:'李明', custMgr:'张情', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'waitSettle', auditTime:'2026-07-01 10:30', expectDate:'2026-08-14', settleDate:'' },
{ id:'1356638', cat:'财税服务', catCls:'tag-purple', name:'测试固定返佣产品', utype:'企业用户', customer:'新桥律师事务所', partner:'15066667777', chMgr:'王利娟', assignee:'刘婷', custMgr:'赵磊', amount:5000, comm:300, rule:'固定 ¥300 一次性', cycle:7, status:'waitSettle', auditTime:'2026-07-04 14:20', expectDate:'2026-07-15', settleDate:'' },
{ id:'1356635', cat:'异地用工', catCls:'tag-blue', name:'劳务派遣', utype:'企业用户', customer:'华盛机构', partner:'13400001111', chMgr:'王利娟', assignee:'赵磊', custMgr:'郭欢', amount:60, comm:-18, rule:'比例 30% 退费冲账', cycle:30, status:'waitSettle', auditTime:'2026-06-28 09:10', expectDate:'2026-08-11', settleDate:'' },
{ id:'1356658', cat:'财税服务', catCls:'tag-purple', name:'代理记账', utype:'企业用户', customer:'张情测试合伙人企业', partner:'15011348374', chMgr:'王利娟', assignee:'赵磊', custMgr:'张情', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'settled', auditTime:'2026-06-01 10:00', expectDate:'2026-07-15', settleDate:'2026-07-15 00:05' },
{ id:'1356632', cat:'异地用工', catCls:'tag-blue', name:'岗位外包', utype:'企业用户', customer:'远航科技有限公司', partner:'13812345678', chMgr:'王利娟', assignee:'李明', custMgr:'张情', amount:120, comm:36, rule:'比例 30% 续费', cycle:7, status:'settled', auditTime:'2026-06-20 11:30', expectDate:'2026-06-30', settleDate:'2026-06-30 00:05' },
{ id:'1356630', cat:'异地用工', catCls:'tag-blue', name:'劳务派遣', utype:'企业用户', customer:'顺达物流有限公司', partner:'13722223333', chMgr:'王利娟', assignee:'李明', custMgr:'赛晓丽', amount:60, comm:18, rule:'比例 30% 续费', cycle:30, status:'settled', auditTime:'2026-05-28 09:15', expectDate:'2026-07-10', settleDate:'2026-07-10 00:05' },
{ id:'1356628', cat:'财税服务', catCls:'tag-purple', name:'代理记账', utype:'企业用户', customer:'某某科技有限公司', partner:'15133334444', chMgr:'王利娟', assignee:'刘婷', custMgr:'李鹏飞', amount:1000, comm:0, rule:'—', cycle:30, status:'cancelled', auditTime:'2026-06-15 16:00', expectDate:'2026-07-28', settleDate:'' },
];
var pCurTab = 'pending';
function pSwitchTab(tab, el) {
pCurTab = tab;
el.closest('.status-tabs').querySelectorAll('.status-tab').forEach(function(t){ t.classList.remove('active'); });
el.classList.add('active');
pRender();
}
function pRender() {
var counts = { pending:0, waitSettle:0, settled:0, cancelled:0 };
P_DATA.forEach(function(d){ counts[d.status]++; });
['pending','waitSettle','settled','cancelled'].forEach(function(k){ document.getElementById('p-cnt-'+k).textContent = counts[k]; });
document.getElementById('p-cnt-all').textContent = P_DATA.length;
var tab = pCurTab;
var list = tab === 'all' ? P_DATA.slice() : P_DATA.filter(function(d){ return d.status === tab; });
var posSum = 0, negSum = 0;
list.forEach(function(d){ if(d.comm>=0) posSum+=d.comm; else negSum+=d.comm; });
var isWait = (tab==='waitSettle'), isSettled = (tab==='settled'), isPending = (tab==='pending'), isCancelled = (tab==='cancelled');
document.getElementById('p-batch-btn').style.display = isPending ? '' : 'none';
document.getElementById('p-summary-text').innerHTML = '共 '+list.length+' 条,佣金总额 <b>\u00a5'+((posSum+negSum).toFixed(2))+'</b>\u3000正向 <b>\u00a5'+(posSum.toFixed(2))+'</b>\u3000负向 <b style="color:#cf1322">\u00a5'+(negSum.toFixed(2))+'</b>';
document.getElementById('p-total-count').textContent = list.length;
var thExtra = '';
if(isPending) thExtra = '<th>预计入账时间</th>';
else if(isWait) thExtra = '<th>审核时间</th><th>预计入账时间</th>';
else if(isSettled || tab==='all') thExtra = '<th>审核时间</th><th>预计入账时间</th><th>实际入账时间</th>';
else if(isCancelled) thExtra = '<th>审核时间</th><th>预计入账时间</th>';
document.getElementById('p-thead').innerHTML = '<tr>'+(isPending?'<th class="cb"><input type="checkbox" onchange="pToggleAll(this)"></th>':'')+'<th>订单编号</th><th>产品类型</th><th>产品名称</th><th>用户类型</th><th>所属客户</th><th>合伙人</th><th>渠道管理员</th><th>对接人</th><th>客户经理</th><th>订单金额</th><th>佣金金额</th><th>佣金规则</th>'+thExtra+'<th>状态</th><th>操作</th></tr>';
document.getElementById('p-tbody').innerHTML = list.map(function(d,i){
var st=P_STATUS[d.status]; var cc=d.comm<0?'#cf1322':'#389e0d'; var cv=d.comm<0?'-\u00a5'+Math.abs(d.comm).toFixed(2):'\u00a5'+d.comm.toFixed(2);
var ruleCell = '<td style="color:#8c8c8c;font-size:11px">'+d.rule+'<br><span style="font-family:monospace;font-weight:500;color:#d48806">T+'+d.cycle+'\u5929</span></td>';
var extra='';
if(isPending) extra='<td>'+d.expectDate+'</td>';
else if(isWait) extra='<td style="color:#8c8c8c;font-size:11px">'+(d.auditTime||'\u2014')+'</td><td style="font-weight:500;color:#1677ff">'+d.expectDate+'</td>';
else if(isSettled || tab==='all') extra='<td style="color:#8c8c8c;font-size:11px">'+(d.auditTime||'\u2014')+'</td><td>'+d.expectDate+'</td><td style="font-weight:500;color:#389e0d">'+(d.settleDate||'\u2014')+'</td>';
else if(isCancelled) extra='<td style="color:#8c8c8c;font-size:11px">'+(d.auditTime||'\u2014')+'</td><td>'+d.expectDate+'</td>';
var ops='<button class="btn-link">操作记录</button>';
if(d.status==='pending') ops+='<button class="btn-link" onclick="pAuditOne('+i+')">审核</button>';
ops+='<button class="btn-link">更多</button>';
return '<tr>'+(isPending?'<td class="cb"><input type="checkbox" class="p-row-cb" data-idx="'+i+'"></td>':'')+'<td style="color:#1677ff;cursor:pointer">'+d.id+'</td><td><span class="tag '+d.catCls+'">'+d.cat+'</span></td><td>'+d.name+'</td><td>'+d.utype+'</td><td>'+d.customer+'</td><td>'+d.partner+'</td><td style="color:#1677ff">'+d.chMgr+'</td><td>'+(d.assignee?'<span class="tag tag-blue">'+d.assignee+'</span>':'<span class="muted">\u2014</span>')+'</td><td>'+d.custMgr+'</td><td>'+d.amount.toFixed(2)+'</td><td style="font-weight:500;color:'+cc+'">'+cv+'</td>'+ruleCell+extra+'<td><span class="tag '+st[1]+'">'+st[0]+'</span></td><td>'+ops+'</td></tr>';
}).join('')||'<tr><td colspan="18" style="text-align:center;color:#bfbfbf;padding:36px 0">\u6682\u65e0\u6570\u636e</td></tr>';
}
function pToggleAll(el){document.querySelectorAll('.p-row-cb').forEach(function(cb){cb.checked=el.checked});}
function pAuditOne(i){
var list=pCurTab==='all'?P_DATA.slice():P_DATA.filter(function(x){return x.status===pCurTab;});
var d=list[i]; if(!d)return;
if(confirm('\u786e\u8ba4\u5ba1\u6838\u901a\u8fc7\uff1f\u5ba1\u6838\u901a\u8fc7\u540e\u5c06\u8fdb\u5165\u201c\u5df2\u5ba1\u6838\u5f85\u5165\u8d26\u201d\u72b6\u6001\uff0cT+'+d.cycle+'\u5929\u540e\u81ea\u52a8\u5165\u8d26\u3002')){
var now=new Date(); d.status='waitSettle'; d.auditTime=now.getFullYear()+'-'+String(now.getMonth()+1).padStart(2,'0')+'-'+String(now.getDate()).padStart(2,'0')+' '+String(now.getHours()).padStart(2,'0')+':'+String(now.getMinutes()).padStart(2,'0');
var exp=new Date(now.getTime()+d.cycle*24*60*60*1000); d.expectDate=exp.getFullYear()+'-'+String(exp.getMonth()+1).padStart(2,'0')+'-'+String(exp.getDate()).padStart(2,'0');
pRender();
}
}
function pBatchAudit(){
var cbs=document.querySelectorAll('.p-row-cb:checked'); if(!cbs.length){alert('\u8bf7\u5148\u52fe\u9009');return;}
if(confirm('\u786e\u8ba4\u6279\u91cf\u5ba1\u6838\u901a\u8fc7 '+cbs.length+' \u6761\u8bb0\u5f55\uff1f')){
var list=pCurTab==='all'?P_DATA.slice():P_DATA.filter(function(x){return x.status===pCurTab;});
var now=new Date(); var ts=now.getFullYear()+'-'+String(now.getMonth()+1).padStart(2,'0')+'-'+String(now.getDate()).padStart(2,'0')+' '+String(now.getHours()).padStart(2,'0')+':'+String(now.getMinutes()).padStart(2,'0');
cbs.forEach(function(cb){var d=list[parseInt(cb.dataset.idx)];if(d){d.status='waitSettle';d.auditTime=ts;var exp=new Date(now.getTime()+d.cycle*24*60*60*1000);d.expectDate=exp.getFullYear()+'-'+String(exp.getMonth()+1).padStart(2,'0')+'-'+String(exp.getDate()).padStart(2,'0');}});
pRender();
}
}
pRender();
function switchPage(id, el) {
document.querySelectorAll('.page').forEach(function(p) { p.classList.remove('active'); });
document.querySelectorAll('.nav-item').forEach(function(n) { n.classList.remove('active'); });
document.getElementById('page-' + id).classList.add('active');
if (id === 'referrer' && typeof render === 'function') render(currentFilter || 'all');
if (id === 'partner' && typeof pRender === 'function') pRender();
if (el) el.classList.add('active');
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment