function pToggleAll(el){document.querySelectorAll('.p-row-cb').forEach(function(cb){cb.checked=el.checked});}
function pAuditOne(i){
function nowTs(){var n=new Date();return n.getFullYear()+'-'+String(n.getMonth()+1).padStart(2,'0')+'-'+String(n.getDate()).padStart(2,'0')+''+String(n.getHours()).padStart(2,'0')+':'+String(n.getMinutes()).padStart(2,'0');}
function pBizAuditOne(i){
var list=pCurTab==='all'?P_DATA.slice():P_DATA.filter(function(x){return x.status===pCurTab;});
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');
var cbs=document.querySelectorAll('.p-row-cb:checked');if(!cbs.length){alert('请先勾选');return;}
if(confirm('确认批量业务审核通过'+cbs.length+'条?')){
var list=pCurTab==='all'?P_DATA.slice():P_DATA.filter(function(x){return x.status===pCurTab;});
var ts=nowTs();cbs.forEach(function(cb){var d=list[parseInt(cb.dataset.idx)];if(d){d.status='finAudit';d.bizAuditTime=ts;d.bizAuditor='王利娟';}});pRender();
}
}
function pBatchAudit(){
var cbs=document.querySelectorAll('.p-row-cb:checked'); if(!cbs.length){alert('\u8bf7\u5148\u52fe\u9009');return;}
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');
var cbs=document.querySelectorAll('.p-row-cb:checked');if(!cbs.length){alert('请先勾选');return;}
if(confirm('确认批量财务审核通过?系统将按合伙人维度计算净额。')){
var list=pCurTab==='all'?P_DATA.slice():P_DATA.filter(function(x){return x.status===pCurTab;});
var ts=nowTs();
var groups={};cbs.forEach(function(cb){var d=list[parseInt(cb.dataset.idx)];if(d){if(!groups[d.partner])groups[d.partner]=[];groups[d.partner].push(d);}});
for(var pid in groups){
var all=P_DATA.filter(function(x){return x.partner===pid&&(x.status==='finAudit'||x.status==='waitSettle');});