| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168 | 
							- <div class="modal fade" id="paper" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">页边距(毫米)</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row mb-1 justify-content-center">
 
-                     <div class="col-3">
 
-                         <div class="input-group input-group-sm ">
 
-                             <div class="input-group-prepend">
 
-                                 <span class="input-group-text">上</span>
 
-                             </div>
 
-                             <input type="number" class="form-control form-control-sm" id="elementMargin_Top" value="12" onchange="rptControlObj.changeMargin('Top', this)" onkeyup="rptControlObj.changeMargin('Top', this)">
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-                 <div class="row mb-1 align-items-center">
 
-                     <div class="col-3">
 
-                         <div class="input-group input-group-sm ">
 
-                             <div class="input-group-prepend">
 
-                                 <span class="input-group-text">左</span>
 
-                             </div>
 
-                             <input type="number" class="form-control form-control-sm" id="elementMargin_Left" value="12" onchange="rptControlObj.changeMargin('Left', this)" onkeyup="rptControlObj.changeMargin('Left', this)">
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-6">
 
-                         <h1 class="display-4 text-center"><i class="fa fa-file-o"></i></h1>
 
-                     </div>
 
-                     <div class="col-3">
 
-                         <div class="input-group input-group-sm ">
 
-                             <div class="input-group-prepend">
 
-                                 <span class="input-group-text">右</span>
 
-                             </div>
 
-                             <input type="number" class="form-control form-control-sm" id="elementMargin_Right" value="12" onchange="rptControlObj.changeMargin('Right', this)" onkeyup="rptControlObj.changeMargin('Right', this)">
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-                 <div class="row mb-1 justify-content-center">
 
-                     <div class="col-3">
 
-                         <div class="input-group input-group-sm ">
 
-                             <div class="input-group-prepend">
 
-                                 <span class="input-group-text">下</span>
 
-                             </div>
 
-                             <input type="number" class="form-control form-control-sm" id="elementMargin_Bottom"value="12" onchange="rptControlObj.changeMargin('Bottom', this)" onkeyup="rptControlObj.changeMargin('Bottom', this)">
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-link btn-sm float-left" data-dismiss="modal" onclick="rptControlObj.restoreMargine(); zTreeOprObj.changeCfg();">恢复默认值</button>
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptControlObj.cancelCfgChange()">取消</button>
 
-                 <a href="javascript:void(0)" class="btn btn-primary btn-sm" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="format" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">格式</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row mb-1" id="font_cfg_blank_flag"></div>
 
-                 <div class="row mb-1">
 
-                     <div class="col-3">边框线粗</div>
 
-                     <div class="col-4">
 
-                         <select class="form-control form-control-sm" id="cfg_border_thick" onchange="rptControlObj.changeBorderWeight(this)"><option>1</option><option>2</option></select>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-link btn-sm float-left" data-dismiss="modal" onclick="rptControlObj.restoreFormat(); zTreeOprObj.changeCfg();">恢复默认值</button>
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptControlObj.cancelCfgChange()">取消</button>
 
-                 <a href="javascript:void(0)" class="btn btn-primary btn-sm" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--弹出设置-->
 
- <div class="modal fade" id="setting" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">设置</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row mb-1">
 
-                     <div class="col-12 mb-1">
 
-                         <div class="form-check">
 
-                             <label class="form-check-label">
 
-                                 <input type="checkbox" class="form-check-input" id="cfg_rpt_vertical_line" onchange="rptControlObj.changeCfgOption('showVerticalLine', this)">
 
-                                 报表边框竖线
 
-                             </label>
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-12 mb-1">
 
-                         <div class="form-check">
 
-                             <label class="form-check-label">
 
-                                 <input type="checkbox" class="form-check-input" id="cfg_rpt_narrow" onchange="rptControlObj.changeCfgOption('isNarrow', this)">
 
-                                 内容窄体输出
 
-                             </label>
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-12 mb-1">
 
-                         <div class="form-check">
 
-                             <label class="form-check-label">
 
-                                 <input type="checkbox" class="form-check-input" id="cfg_rpt_fill_zero" onchange="rptControlObj.changeCfgOption('fillZero', this)">
 
-                                 小数补0
 
-                             </label>
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-12 mb-1" id="cfg_rpt_close_warter_mark_div" >
 
-                         <div class="form-check">
 
-                             <label class="form-check-label">
 
-                                 <input type="checkbox" class="form-check-input" id="cfg_rpt_close_warter_mark" onchange="rptControlObj.changeCfgOption('closeWarterMark', this)">
 
-                                 导出Excel-不带水印
 
-                             </label>
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-12 mb-1">
 
-                         <div class="form-check">
 
-                             <label class="form-check-label">
 
-                                 <input type="checkbox" class="form-check-input" id="cfg_rpt_continuous" onchange="rptControlObj.changeCfgOption('continuousOutput', this)">
 
-                                 导出Excel-连续输出(仅流水内容报表有效)
 
-                             </label>
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal" onclick="rptControlObj.cancelCfgChange()">取消</button>
 
-                 <a href="javascript:void(0)" class="btn btn-primary btn-sm" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="export_excel" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">批量导出Excel</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row">
 
-                     <div class="col-6">
 
-                         <div class="card">
 
-                             <img class="card-img-top" src="/public/images/p2.png">
 
-                             <div class="card-body px-3">
 
-                                 <div class="form-check">
 
-                                     <input class="form-check-input" type="radio" name="excelExportTypeRadio" id="excelExportType_AllInOneBook" value="option1" checked>
 
-                                     <label class="form-check-label" for="excelExportType_AllInOneBook">
 
-                                         多个表导出一个Excel文件
 
-                                     </label>
 
-                                 </div>
 
-                             </div>
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-6">
 
-                         <div class="card">
 
-                             <img class="card-img-top" src="/public/images/p1.png">
 
-                             <div class="card-body px-3">
 
-                                 <div class="form-check">
 
-                                     <input class="form-check-input" type="radio" name="excelExportTypeRadio" id="excelExportType_IndividualBook" value="option2" checked>
 
-                                     <label class="form-check-label" for="excelExportType_IndividualBook">
 
-                                         每个表导出一个Excel文件
 
-                                     </label>
 
-                                 </div>
 
-                             </div>
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <a onclick="rptControlObj.getExcel()" class="btn btn-primary btn-sm" data-dismiss="modal">确定导出</a>
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">取消</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="eSignature" data-backdrop="static">
 
-     <div class="modal-dialog modal-lg" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">设置签字(审核通过后才显示)</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body" id="eSignatureBodyDiv">
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <% if ((pageShow !== null) && (parseInt(pageShow.openSign) === 1)) { %>
 
-                     <button type="button" id="btn_cross_tender" class="btn btn-sm btn-link float-left" data-dismiss="modal" data-toggle="modal" data-target="#batch-eSignature" id="batch-setupProjSignature" onclick="rptSignatureHelper.resetESignature(zTreeOprObj.currentRptPageRst, 'batch-eSignatureBodyDiv'); buildTendersTree();">批量设置其他标段</button>
 
-                 <% } %>
 
-                 <!--
 
-                 <button type="button" class="btn btn-sm btn-link float-left" data-toggle="modal" data-target="#batch-eSignature" id="hidden_show_batch_eSignature" style="display:none"></button>
 
-                 <button type="button" class="btn btn-sm btn-link float-left" data-dismiss="modal" onclick="setTimeout(function(){$('#hidden_show_batch_eSignature').trigger('click');}, 50);">批量设置其他标段</button>
 
-                 -->
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptSignatureHelper.removeSelectSignature()">取消</button>
 
-                 <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectSignature('eSignatureBodyDiv')" class="btn btn-primary btn-sm" data-dismiss="modal">确定</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="batch-eSignature" data-backdrop="static">
 
-     <div class="modal-dialog modal-xl" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">批量设置签字</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="modal-height-300">
 
-                     <div class="row">
 
-                         <div class="col-4">
 
-                             <table class="table table-hover table-bordered" id="batch_tenders_individual">
 
-                             </table>
 
-                         </div>
 
-                         <div class="col-8" id="batch-eSignatureBodyDiv"></div>
 
-                     </div>
 
-                 </div>
 
-                 <div class="alert alert-warning">批量操作会覆盖已设置好的签字,请谨慎操作。</div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectMultiTenders(SELECTED_TENDERS, 'batch-eSignatureBodyDiv')" class="btn btn-sm btn-primary" data-dismiss="modal">确定</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--弹出添加签名人-->
 
- <div class="modal fade" id="add-sign" data-backdrop="static">
 
-     <div class="modal-dialog modal-sm" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">添加签字</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <ul class="nav nav-tabs justify-content-center mb-1" role="tablist">
 
-                     <li class="nav-item">
 
-                         <a class="nav-link active px-3 p-1" data-toggle="tab" href="#adst-1" role="tab">项目</a>
 
-                     </li>
 
-                     <li class="nav-item">
 
-                         <a class="nav-link px-3 p-1" data-toggle="tab" href="#adst-2" role="tab"><i class="fa fa-user"></i> 角色</a>
 
-                     </li>
 
-                     <li class="nav-item">
 
-                         <a class="nav-link px-3 p-1" data-toggle="tab" href="#adst-3" role="tab">最近使用</a>
 
-                     </li>
 
-                 </ul>
 
-                 <div class="tab-content">
 
-                     <div class="tab-pane fade show active" id="adst-1" role="tabpanel" aria-labelledby="home-tab">
 
-                         <div class="input-group input-group-sm mt-1 mb-2">
 
-                             <div class="input-group-prepend">
 
-                                 <span class="input-group-text" id="inputGroup-sizing-sm"><i class="fa fa-search" onclick="rptSignatureHelper.buildSelectableAccount(this);"></i></span>
 
-                             </div>
 
-                             <input type="text" id="search_account" class="form-control form-control-sm" placeholder="搜索..."  onkeypress="searchAccount()">
 
-                         </div>
 
-                         <div class="modal-height-300" id="project_account_select_div">
 
-                         </div>
 
-                     </div>
 
-                     <div class="tab-pane fade" id="adst-2" role="tabpanel" aria-labelledby="profile-tab">
 
-                         <a href="javascript:void(0)" onclick="rptSignatureHelper.switchAddRoleDiv(this)" class="btn btn-sm btn-link">添加角色</a>
 
-                         <div class="modal-height-300">
 
-                             <!--添加角色-->
 
-                             <div class="card" id="role_select_acc_div" style="display:none">
 
-                                 <div class="p-2">
 
-                                     <div class="input-group input-group-sm mb-1">
 
-                                         <div class="input-group-prepend">
 
-                                             <span class="input-group-text" id="inputGroup-sizing-sm">角色名称</span>
 
-                                         </div>
 
-                                         <input type="text" class="form-control form-control-sm" id="acc_role_name" placeholder="最多10个字符">
 
-                                     </div>
 
-                                     <div class="input-group input-group-sm mb-1">
 
-                                         <div class="input-group-prepend">
 
-                                             <span class="input-group-text" id="inputGroup-sizing-sm">绑定成员</span>
 
-                                         </div>
 
-                                         <select class="form-control form-control-sm" id="project_account_select_dom">
 
-                                         </select>
 
-                                     </div>
 
-                                     <a href="javascript:void(0)" onclick="rptSignatureHelper.createNewRole(this)" class="btn btn-sm btn-primary">添加角色</a>
 
-                                 </div>
 
-                             </div>
 
-                             <ul class="list-group p-2" id="existed_roles_ul">
 
-                             </ul>
 
-                         </div>
 
-                     </div>
 
-                     <div class="tab-pane fade" id="adst-3" role="tabpanel" aria-labelledby="contact-tab">
 
-                         <div class="modal-height-300">
 
-                             <ul class="list-group" id="account_used_select_div"></ul>
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--选择个人章-->
 
- <div class="modal fade" id="chose-private-stamp-path" data-backdrop="static">
 
-     <div class="modal-dialog modal-lg" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="select-personal-signature-title">选择个人章</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
 
-                 <button id="audit-select-ok" class="btn btn-primary btn-sm" onclick="rptSignatureHelper.setPrivateStamp(this)">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--选择审批人-->
 
- <div class="modal fade" id="audit-select" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="audit-select-title">重置</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <table class="table table-bordered">
 
-                     <tr><th style="width: 50%">报表数据</th><th>审批人</th></tr>
 
-                     <tbody id="audit-select-list">
 
-                     </tbody>
 
-                 </table>
 
-                 <div id="audit-select-hint" class="text-danger">
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
 
-                 <button id="audit-select-ok" class="btn btn-primary btn-sm" onclick="rptCustomObj.resetAuditSelect(this)">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--选择标段-->
 
- <div class="modal fade" id="gather-select" data-backdrop="static">
 
-     <div class="modal-dialog modal-lgx" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="gather-select-title">选择标段</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row">
 
-                     <div class="col-7">
 
-                         <h5>可选标段 </h5>
 
-                         <div class="modal-height-500" id="gather-source-spread">
 
-                         </div>
 
-                     </div>
 
-                     <div class="col-5">
 
-                         <h5>已选标段 </h5>
 
-                         <div class="modal-height-500" id="gather-result-spread">
 
-                         </div>
 
-                         <div class="mt-1" id="gather-by-month" style="width: 60%" name="gather-type">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">汇总年月</span>
 
-                                 </div>
 
-                                 <input id="gather-month" class="datepicker-here form-control form-control-sm" auto-close="true" autocomplete="off" placeholder="点击选择年月" data-view="months" data-min-view="months" data-date-format="yyyy-MM" data-language="zh" type="text" autocomplete="off">
 
-                             </div>
 
-                         </div>
 
-                         <div id="gather-by-zone" name="gather-type">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">汇总周期</span>
 
-                                 </div>
 
-                                 <input id="gather-zone" class="datepicker-here form-control mt-0" placeholder="点击选择周期" data-range="true" data-multiple-dates-separator=" - "  data-min-view="months" data-view="months" data-date-format="yyyy-MM" data-language="zh" type="text" autocomplete="off">
 
-                             </div>
 
-                         </div>
 
-                         <div id="gather-by-custom-zone" name="gather-type">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">汇总周期</span>
 
-                                 </div>
 
-                                 <input id="gather-custom-zone" class="datepicker-here form-control mt-0" placeholder="点击选择周期" data-range="true" data-multiple-dates-separator=" - "  data-min-view="days" data-view="days" data-date-format="yyyy-MM-dd" data-language="zh" type="text" autocomplete="off">
 
-                             </div>
 
-                         </div>
 
-                         <div id="gather-by-stage" name="gather-type">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">选择期</span>
 
-                                 </div>
 
-                                 <select class="form-control" id="gather-stage">
 
-                                     <option>第1期</option>
 
-                                 </select>
 
-                             </div>
 
-                         </div>
 
-                         <div id="gather-by-stage-zone" name="gather-type">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">汇总</span>
 
-                                 </div>
 
-                                 <select class="form-control" id="gather-stage-begin">
 
-                                     <option>第1期</option>
 
-                                 </select>
 
-                                 <div class="input-group-prepend">
 
-                                     <span class="input-group-text">至</span>
 
-                                 </div>
 
-                                 <select class="form-control" id="gather-stage-end">
 
-                                     <option>第5期</option>
 
-                                 </select>
 
-                             </div>
 
-                         </div>
 
-                     </div>
 
-                     <div class="text-danger text-center ml-3" id="gather-hint">我是提示呀</div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="gather-select-ok">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="stage-select" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="stage-select-title">选择期</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row">
 
-                     <% for (const s of stages) { %>
 
-                     <div class="col-3">
 
-                         <div class="custom-control custom-checkbox custom-control-inline">
 
-                             <input type="checkbox" id="stage-select-<%- s.order %>" name="stage-select-check" stage-order="<%- s.order %>" class="custom-control-input">
 
-                             <label class="custom-control-label" for="stage-select-<%- s.order %>">第<%- s.order %>期</label>
 
-                         </div>
 
-                     </div>
 
-                     <% } %>
 
-                 </div>
 
-                 <div class="alert alert-danger my-2 p-2" id="stage-select-hint">我是提示呀</div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <div class="form-check form-check-inline mr-auto">
 
-                     <input class="form-check-input" type="checkbox" id="stage-select-all">
 
-                     <label class="form-check-label" for="stage-select-all">全选</label>
 
-                 </div>
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="stage-select-ok">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal fade" id="material-sum-select" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="material-sum-select-title">选择期(材料调差)</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row">
 
-                     <% for (const m of materialList) { %>
 
-                     <div class="col-3">
 
-                         <div class="custom-control custom-checkbox custom-control-inline">
 
-                             <input type="checkbox" id="material-sum-select-<%- m.order %>" name="material-sum-select-check" material-order="<%- m.order %>" class="custom-control-input">
 
-                             <label class="custom-control-label" for="material-sum-select-<%- m.order %>">第<%- m.order %>期</label>
 
-                         </div>
 
-                     </div>
 
-                     <% } %>
 
-                 </div>
 
-                 <div class="alert alert-danger my-2 p-2" id="material-sum-select-hint">我是提示呀</div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <div class="form-check form-check-inline mr-auto">
 
-                     <input class="form-check-input" type="checkbox" id="material-sum-select-all">
 
-                     <label class="form-check-label" for="material-sum-select-all">全选</label>
 
-                 </div>
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="material-sum-select-ok">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal" id="change-select" data-backdrop="static">
 
-     <div class="modal-dialog modal-lg" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="change-select-title">请选择变更令</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="row">
 
-                     <div class="col-6">
 
-                         <h5>可选变更令 </h5>
 
-                         <table class="table table-bordered">
 
-                             <tr class="text-center"><th>选择</th><th>变更令号</th><th>工程名称</th></tr>
 
-                             <tbody id="change-select-list">
 
-                             </tbody>
 
-                         </table>
 
-                     </div>
 
-                     <div class="col-6">
 
-                         <h5>已选变更令 </h5>
 
-                         <table class="table table-bordered">
 
-                             <tr class="text-center"><th>序号</th><th>变更令号</th><th>工程名称</th></tr>
 
-                             <tbody id="change-select-result">
 
-                             </tbody>
 
-                         </table>
 
-                     </div>
 
-                 </div>
 
-                 <div class="alert alert-danger my-2 p-2" id="change-select-hint" style="display: none">我是提示呀</div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <div class="form-check form-check-inline mr-auto">
 
-                     <input class="form-check-input" type="checkbox" id="change-select-all">
 
-                     <label class="form-check-label" for="change-select-all">全选</label>
 
-                 </div>
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="change-select-ok">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal" id="select-change-rela" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="scr-title">请选择变更令</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body" style="overflow-y: auto; height: 480px">
 
-                 <table class="table table-bordered">
 
-                     <thead id="scr-header"><tr class="text-center"><th>选择</th><th>变更令号</th><th>工程名称</th></tr></thead>
 
-                     <tbody id="scr-list">
 
-                     </tbody>
 
-                 </table>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <div class="form-check form-check-inline mr-auto">
 
-                     <input class="form-check-input" type="checkbox" id="scr-all">
 
-                     <label class="form-check-label" for="scr-all">全选</label>
 
-                 </div>
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="scr-ok" onclick="rptChangeRela.updateChangeRela();">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal" id="select-other-stage" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="sos-title">请选择预付款</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body" style="overflow-y: auto; height: 480px">
 
-                 <table class="table table-bordered">
 
-                     <thead id="sos-header"><tr class="text-center"><th>选择</th><th>变更令号</th><th>工程名称</th></tr></thead>
 
-                     <tbody id="sos-list">
 
-                     </tbody>
 
-                 </table>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <div class="form-check form-check-inline mr-auto">
 
-                     <input class="form-check-input" type="checkbox" id="sos-all">
 
-                     <label class="form-check-label" for="sos-all">全选</label>
 
-                 </div>
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="sos-ok" onclick="rptOtherStage.updateOtherStage();">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div class="modal" id="select-show-level" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title" id="ssl-title">请选择显示层级</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="form-group" id="ssl-list">
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <button class="btn btn-sm btn-primary" id="sos-ok" onclick="rptShowLevel.update();">确定</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--管理推荐报表-->
 
- <div class="modal fade" id="man-c" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">管理推荐报表</h5>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="modal-height-500" style="overflow: auto;">
 
-                     <table class="table table-sm table-bordered" id="report_cust_group_common">
 
-                     </table>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="revertCommonCustRptCfg();">关闭</button>
 
-                 <!--有结果出现添加-->
 
-                 <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="updateCustRptCfg()">确认</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--管理定制报表-->
 
- <div class="modal fade" id="man-i" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">管理定制报表</h5>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="modal-height-500" style="overflow: auto;">
 
-                     <table class="table table-sm table-bordered" id="report_cust_group_individual">
 
-                     </table>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="revertIndividualCustRptCfg();">关闭</button>
 
-                 <!--有结果出现添加-->
 
-                 <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="updateCustRptCfg()">确认</button>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--弹出归档-->
 
- <div class="modal fade" id="guidang" data-backdrop="static">
 
-     <div class="modal-dialog" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header">
 
-                 <h5 class="modal-title">归档本张报表</h5>
 
-                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 
-                     <span aria-hidden="true">×</span>
 
-                 </button>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <h6>归档后,本期报表将自动导出PDF格式,不再受新一期数据影响;</h6>
 
-                 <h6>请确认报表数据无误(正确添加签字、设置页面格式等),继续归档操作。</h6>
 
-                 <div class="card">
 
-                     <div class="card-body" id="cardArchiveInfo">
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-footer">
 
-                 <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
 
-                 <a href="javascript: void(0);" class="btn btn-sm btn-primary" data-dismiss="modal" onclick="rptArchiveObj.archiveCurrentReport(zTreeOprObj.currentRptPageRst, zTreeOprObj.currentNode)">确定归档</a>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <!--全屏显示报表-->
 
- <div class="modal fade" id="fullscreen" data-backdrop="static">
 
-     <div class="modal-dialog modal-full" role="document">
 
-         <div class="modal-content">
 
-             <div class="modal-header d-flex justify-content-between">
 
-                 <h5 class="modal-title" id="fullScrTitle"></h5>
 
-                 <div class="print-toolsbar">
 
-                     <!--
 
-                     <div class="panel">
 
-                         <div class="panel-body">
 
-                             <div class="btn-group" role="group">
 
-                                 <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="缩小">-</button>
 
-                                 <button class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="重置默认大小">1000%</button>
 
-                                 <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="放大">+</button>
 
-                             </div>
 
-                         </div>
 
-                     </div>
 
-                     -->
 
-                     <div class="panel">
 
-                         <div class="panel-body">
 
-                             <div class="input-group input-group-sm">
 
-                                 <div class="input-group-prepend">
 
-                                     <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上一页" onclick="rptControlObj.prePage(this)"><i class="fa fa-angle-left "></i></button>
 
-                                 </div>
 
-                                 <input id="rpt_fullscreen_page_num" class="form-control" value="1/10" style="width:60px" onKeydown="rptControlObj.onKeydown(event, this)" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="输入页码按回车键,快速跳转">
 
-                                 <div class="input-group-append">
 
-                                     <button type="button" class="btn btn-outline-primary btn-sm" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下一页" onclick="rptControlObj.nextPage(this)"><i class="fa fa-angle-right"></i></button>
 
-                                 </div>
 
-                             </div>
 
-                         </div>
 
-                     </div>
 
-                     <div class="panel">
 
-                         <div class="panel-body">
 
-                             <button type="button" class="btn btn-outline-primary btn-sm" data-dismiss="modal" ><i class="fa fa-window-close-o"></i> 退出全屏</button>
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-             </div>
 
-             <div class="modal-body">
 
-                 <div class="modal-fullscreen pageContainer">
 
-                     <canvas id="fullScrCanvas" height="100%" width="100%"></canvas>
 
-                 </div>
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <% include ../stage/audit_modal.ejs %>
 
- <script>
 
-     zTreeOprObj.getCustomerCfg();
 
-     zTreeOprObj.iniFontCfgDom(CUST_CFG);
 
-     
 
-     <% if (false || (stg_id !== -100 && stg_id !== -200 && stg_id !== -300)) { %>
 
-     buildCustRptCommon('report_cust_group_common', ORG_TOP_TREE_NODES[1], CUST_TREE_NODES.common, 'true');
 
-     buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
 
-     <% } %>
 
-     let SELECTED_TENDERS = [];
 
-     function buildTendersTree() {
 
-         let sortedCat = [];
 
-         SELECTED_TENDERS = [];
 
-         for (const cat of category) {
 
-             if (cat.level > 0) {
 
-                 sortedCat.push(cat);
 
-             }
 
-         }
 
-         for (const tender of tenders) {
 
-             if (tender.lastStage !== undefined && tender.lastStage !== null && tender.category && tender.category.length === sortedCat.length) {
 
-                 for (let cat of tender.category) {
 
-                     for (let cIdx = 0; cIdx < sortedCat.length; cIdx++) {
 
-                         if (cat.cid === sortedCat[cIdx].id) {
 
-                             cat.level = sortedCat[cIdx].level;
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-                 tender.category.sort(function(i1, i2){
 
-                     return i1.level - i2.level;
 
-                 });
 
-             }
 
-         }
 
-         let treeCache = [];
 
-         //1. 选择用户已设置的分类
 
-         if (sortedCat.length > 0) {
 
-             sortedCat.sort(function(i1, i2){
 
-                 return i1.level - i2.level;
 
-             });
 
-             const _createItems = function (parentItems, grpLv) {
 
-                 if (grpLv < sortedCat.length) {
 
-                     let cat = sortedCat[grpLv];
 
-                     for (const nv of cat.value) {
 
-                         let item = {
 
-                             name: nv.value,
 
-                             id : nv.id,
 
-                             cid : nv.cid,
 
-                             items: [],
 
-                             isParent: true
 
-                         };
 
-                         parentItems.push(item);
 
-                         _createItems(item.items, grpLv + 1);
 
-                     }
 
-                 }
 
-             }
 
-             _createItems(treeCache, 0);
 
-         }
 
-         //2. 建立treeNodes
 
-         let hasCat = false;
 
-         for (const tender of tenders) {
 
-             if (tender.category && tender.category.length > 0) {
 
-                 hasCat = true;
 
-                 break;
 
-             }
 
-         }
 
-         //3. 把标段挂上去
 
-         let tmpCacheArr = []; //这个临时用来储存相应标段节点挂接信息
 
-         let _createTenderItem = function (tender) {
 
-             let rst = {
 
-                 name: tender.name,
 
-                 id : -1,
 
-                 cid : -1,
 
-                 tender_id: tender.id,
 
-                 last_stage: tender.lastStage.order,
 
-                 last_stage_id: tender.lastStage.id,
 
-                 report_id: zTreeOprObj.currentNode.refId,
 
-                 signature: '',
 
-                 items: [],
 
-                 isParent: false
 
-             }
 
-             return rst;
 
-         }
 
-         let _putTender = function (catLv, tender, parentItems) {
 
-             if (tender.lastStage !== undefined && tender.lastStage !== null) {
 
-                 if (hasCat) {
 
-                     let isSorted = false;
 
-                     for (let sCat of sortedCat) {
 
-                         if (sCat.level <= tender.category.length && sCat.level > 0 && sCat.id === tender.category[catLv].cid) {
 
-                             isSorted = true;
 
-                             break;
 
-                         }
 
-                     }
 
-                     if (isSorted) {
 
-                         for (const item of parentItems) {
 
-                             if (item.cid === tender.category[catLv].cid && item.id === tender.category[catLv].value) {
 
-                                 if (item.items.length > 0 && tender.category.length > (catLv + 1)) {
 
-                                     //递归循环
 
-                                     _putTender(catLv + 1, tender, item.items);
 
-                                 } else {
 
-                                     //就是这个了
 
-                                     let tdItem = _createTenderItem(tender); //标段节点
 
-                                     tmpCacheArr.push([item, tdItem]);
 
-                                 }
 
-                             }
 
-                         }
 
-                     } else {
 
-                         //超界了
 
-                         //let tdItem = _createTenderItem(tender); //标段节点
 
-                         //tmpCacheArr.push([item, tdItem]);
 
-                     }
 
-                 } else {
 
-                     // 没有设置category
 
-                     let tdItem = _createTenderItem(tender); //标段节点
 
-                     tmpCacheArr.push([null, tdItem]);
 
-                 }
 
-             }
 
-         }
 
-         for (const tender of tenders) {
 
-             //console.log('tender.name: ' + tender.name);
 
-             _putTender(0, tender, treeCache);
 
-         }
 
-         if (hasCat) {
 
-             for (const pairItem of tmpCacheArr) {
 
-                 pairItem[0].items.push(pairItem[1]);
 
-             }
 
-         }
 
-         //4. 剔除空items的项
 
-         if (hasCat) {
 
-             let _removeEmptyItems = function (parentItem) {
 
-                 let rst = false;
 
-                 if (parentItem.items.length === 0) {
 
-                     if (parentItem.isParent) {
 
-                         rst = true;
 
-                     }
 
-                 } else {
 
-                     for (let idx = parentItem.items.length - 1; idx >= 0; idx--) {
 
-                         if (_removeEmptyItems(parentItem.items[idx])) {
 
-                             parentItem.items.splice(idx, 1);
 
-                         }
 
-                     }
 
-                     rst = parentItem.items.length === 0;
 
-                 }
 
-                 return rst;
 
-             }
 
-             for (let idx = treeCache.length - 1; idx >= 0; idx--) {
 
-                 if (hasCat) {
 
-                     if (_removeEmptyItems(treeCache[idx])) {
 
-                         treeCache.splice(idx, 1);
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         //console.log(treeCache);
 
-         //还要请求各标段的原签名数据
 
-         let params = {};
 
-         params.selectedTenders = [];
 
-         let _getTenderRelatedInfos = function(parentItem, rstArr) {
 
-             if (parentItem.items.length === 0) {
 
-                 if (!parentItem.isParent) {
 
-                     rstArr.push([parentItem.tender_id, parentItem.last_stage_id, parentItem.report_id]);
 
-                 }
 
-             } else {
 
-                 for (let idx = parentItem.items.length - 1; idx >= 0; idx--) {
 
-                     _getTenderRelatedInfos(parentItem.items[idx], rstArr);
 
-                 }
 
-             }
 
-         };
 
-         let _addHint = function(parentItem, relArr) {
 
-             if (parentItem.items.length === 0) {
 
-                 if (!parentItem.isParent) {
 
-                     for (const rel of relArr) {
 
-                         if (rel.tender_id === parentItem.tender_id && rel.sid === parentItem.last_stage_id && rel.rpt_id === parentItem.report_id) {
 
-                             let hintStr = '';
 
-                             if (rel.rel_content instanceof Array) {
 
-                                 for (let idx = 0; idx < rel.rel_content.length; idx++) {
 
-                                     const dtlRel = rel.rel_content[idx];
 
-                                     if (idx > 0) {
 
-                                         hintStr = hintStr + '、';
 
-                                     }
 
-                                     hintStr = hintStr + '(' + dtlRel.signature_name + ')' + dtlRel.user_name;
 
-                                 }
 
-                             }
 
-                             parentItem.signature = hintStr;
 
-                             break;
 
-                         }
 
-                     }
 
-                 }
 
-             } else {
 
-                 for (let idx = parentItem.items.length - 1; idx >= 0; idx--) {
 
-                     _addHint(parentItem.items[idx], relArr);
 
-                 }
 
-             }
 
-         };
 
-         if (hasCat) {
 
-             for (let idx = treeCache.length - 1; idx >= 0; idx--) {
 
-                 _getTenderRelatedInfos(treeCache[idx], params.selectedTenders);
 
-             }
 
-         } else {
 
-             for (let idx = tmpCacheArr.length - 1; idx >= 0; idx--) {
 
-                 _getTenderRelatedInfos(tmpCacheArr[idx][1], params.selectedTenders);
 
-                 treeCache.push(tmpCacheArr[idx][1]);
 
-             }
 
-         }
 
-         $.bootstrapLoading.start();
 
-         CommonAjax.postXsrfEx("/tender/report_api/getMultiRoleRelationships", params, 30000, true, getCookie('csrfToken_j'),
 
-             function(result){
 
-                 $.bootstrapLoading.end();
 
-                 let relArr = result.data;
 
-                 for (const rel of relArr) {
 
-                     rel.rel_content = JSON.parse(rel.rel_content);
 
-                 }
 
-                 console.log(relArr);
 
-                 //5. 加hint
 
-                 for (let idx = treeCache.length - 1; idx >= 0; idx--) {
 
-                     _addHint(treeCache[idx], relArr);
 
-                 }
 
-                 //6. 建树
 
-                 _buildTenderTree('batch_tenders_individual', treeCache);
 
-             }, function(err){
 
-                 $.bootstrapLoading.end();
 
-             }, function(ex){
 
-                 $.bootstrapLoading.end();
 
-             }
 
-         );
 
-     }
 
-     function searchAccount() {
 
-         if (event.keyCode == 13) {
 
-             rptSignatureHelper.buildSelectableAccount(this);
 
-         }
 
-     }
 
-     function _buildTenderTree(tbDomId, tendersArr) {
 
-         let tbDom = $("#" + tbDomId);
 
-         tbDom.empty();
 
-         let domStrs = [];
 
-         domStrs.push('<thead><tr><th>名称</th><th width="50">计量期</th><th width="40">签名</th><th width="40">选择</th></tr></thead>');
 
-         domStrs.push('<tbody>');
 
-         const _createRow = function (rowItem, lv) {
 
-             let tdClassStr = 'in-' + lv;
 
-             if (rowItem.isParent) {
 
-                 //tbDom.append('<tr><td class="' + tdClassStr + '"><i class="fa fa-folder-o"></i>  ' + rowItem.name + '</td><td></td><td></td><td></td></tr>');
 
-                 domStrs.push('<tr><td class="' + tdClassStr + '"><i class="fa fa-folder-o"></i>  ' + rowItem.name + '</td><td></td><td></td><td></td></tr>');
 
-             } else {
 
-                 let hrefStr = '/tender/' + rowItem.tender_id;
 
-                 //<a href="biaoduan-panel.html" target="_blank">WWUJ-1</a>
 
-                 let lastStgStr = '';
 
-                 if (rowItem.last_stage === -1) {
 
-                     lastStgStr = '台账';
 
-                 } else {
 
-                     lastStgStr = '第' + rowItem.last_stage + '期';
 
-                 }
 
-                 if (rowItem.signature !== undefined && rowItem.signature !== null && rowItem.signature !== '') {
 
-                     let hintStr = '<i class="fa fa-exclamation-circle text-primary" data-container="body" data-toggle="tooltip" data-placement="bottom" data-original-title="' + rowItem.signature + '"></i>';
 
-                     domStrs.push('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td>' + hintStr + '</td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
 
-                 } else {
 
-                     domStrs.push('<tr><td class="' + tdClassStr + '"><a href="' + hrefStr + '" target="_blank">' + rowItem.name + '</a></td><td>' + lastStgStr + '</td><td></td><td><input type="checkbox" onclick="changeCrossTender(this, SELECTED_TENDERS, ' + rowItem.tender_id + ', ' + rowItem.last_stage_id + ', ' + rowItem.report_id + ')' + '"></td></tr>');
 
-                 }
 
-             }
 
-             if (rowItem.items && rowItem.items.length > 0) {
 
-                 for (const subItem of rowItem.items) {
 
-                     _createRow(subItem, lv + 1);
 
-                 }
 
-             }
 
-         }
 
-         let grpLv = 1;
 
-         for (const tItem of tendersArr) {
 
-             _createRow(tItem, grpLv);
 
-         }
 
-         domStrs.push('</tbody>');
 
-         tbDom.append(domStrs.join(''));
 
-         $('[data-toggle="tooltip"]').tooltip();
 
-     }
 
-     function buildCustRptCommon(tbDomId, topTreeNode, checkingArr, isCommonStr) {
 
-         const filterNames = ['01.支付审批报表'];
 
-         let tbDom = $("#" + tbDomId);
 
-         tbDom.empty();
 
-         tbDom.append('<tr><th>类别</th><th>包含报表</th><th>显示</th></tr>');
 
-         let _countAvailableTpls = function (tItem) {
 
-             let rst = 0;
 
-             if (tItem.nodeType === 1 && tItem.items && tItem.items.length > 0) {
 
-                 for (const dItem of tItem.items) {
 
-                     if (dItem.nodeType === 2) {
 
-                         if (dItem.released) rst++;
 
-                     } else {
 
-                         rst += _countAvailableTpls(dItem);
 
-                     }
 
-                 }
 
-             }
 
-             return rst;
 
-         };
 
-         let _pushRptLine = function (parentItem, rptItem, level, needChk, parentNodeIdStr, thisItemSeq, pHiddenVal) {
 
-             if (rptItem.nodeType === 1) {
 
-                 let amt = _countAvailableTpls(rptItem);
 
-                 if (amt > 0) {
 
-                     let padding_leftStr = '';
 
-                     // classStr = '',
 
-                     if (level > 0) {
 
-                         // classStr = 'pl-' + (level + 3);
 
-                         let rem = 1.5 * level;
 
-                         padding_leftStr = 'padding-left: ' + rem + 'rem!important'; //不受层数限制
 
-                     }
 
-                     if (needChk) {
 
-                         let chkName = pHiddenVal + parentItem.name + FOLDER_SEPERATER + rptItem.name;
 
-                         let checkedStr = (checkingArr.indexOf(chkName) >= 0) ? ' checked' : '';
 
-                         let sIdStr = parentNodeIdStr + '_sub_' + thisItemSeq;
 
-                         // tbDom.append('<tr><td class="' + classStr + '">' + rptItem.name + '</td><td>' + amt + '</td><td><input id="' + sIdStr + '" onchange="changeFolder(this, ' + isCommonStr + ', \'' + parentNodeIdStr + '\' )" hiddenval="' + chkName + '" type="checkbox"' + checkedStr + '></td></tr>');
 
-                         tbDom.append('<tr><td style="' + padding_leftStr + '">' + rptItem.name + '</td><td>' + amt + '</td><td><input id="' + sIdStr + '" onchange="changeFolder(this, ' + isCommonStr + ', \'' + parentNodeIdStr + '\' )" hiddenval="' + chkName + '" type="checkbox"' + checkedStr + '></td></tr>');
 
-                     } else {
 
-                         // tbDom.append('<tr><td class="' + classStr + '">' + rptItem.name + '</td><td>' + amt + '</td><td></td></tr>');
 
-                         tbDom.append('<tr><td style="' + padding_leftStr + '">' + rptItem.name + '</td><td>' + amt + '</td><td></td></tr>');
 
-                     }
 
-                     if (rptItem.items && rptItem.items.length > 0) {
 
-                         let subDtlSeq = 0;
 
-                         for (const subItem of rptItem.items) {
 
-                             _pushRptLine(rptItem, subItem, level + 1, true, '', subDtlSeq, parentItem.name + FOLDER_SEPERATER);
 
-                             subDtlSeq++;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         let TplAmts = [];
 
-         let parentIdx = 0;
 
-         let subCnt = topTreeNode.items.length;
 
-         for (const topItem of topTreeNode.items) {
 
-             if (!filterNames.includes(topItem.name)) {
 
-                 const avRpts = _countAvailableTpls(topItem);
 
-                 if (avRpts > 0) {
 
-                     TplAmts.push(avRpts);
 
-                     let checkedStr = (checkingArr.indexOf(topItem.name) >= 0) ? ' checked' : '';
 
-                     let pIdStr = tbDomId + '_' + parentIdx + '_' + subCnt;
 
-                     tbDom.append('<tr><td>' + topItem.name + '</td><td>' + TplAmts[TplAmts.length - 1] + '</td><td><input id="' + pIdStr + '" onchange="changeFolder(this, ' + isCommonStr + ', null)" hiddenval="' + topItem.name + '" type="checkbox"' + checkedStr + '></td></tr>');
 
-                     if (topItem.items && topItem.items.length > 0) {
 
-                         let subSeq = 0;
 
-                         for (const subItem of topItem.items) {
 
-                             _pushRptLine(topItem, subItem, 1, true, pIdStr, subSeq, '');
 
-                         }
 
-                         subSeq++;
 
-                     }
 
-                     parentIdx++;
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     function updateCustRptCfg(){
 
-         let params = {};
 
-         params.nodeItems = CUST_TREE_NODES;
 
-         CommonAjax.postXsrfEx("/tender/report_api/updateCustNode", params, 60000, true, getCookie('csrfToken_j'),
 
-             function(result){
 
-                 try {
 
-                     // console.log(result);
 
-                     ORG_CUST_TREE_NODES.common = JSON.parse(JSON.stringify(CUST_TREE_NODES.common));
 
-                     ORG_CUST_TREE_NODES.customize = JSON.parse(JSON.stringify(CUST_TREE_NODES.customize));
 
-                     //刷新报表模板树
 
-                     TOP_TREE_NODES = JSON.parse(JSON.stringify(ORG_TOP_TREE_NODES));
 
-                     // 移除未被选择的模板
 
-                     filterUnchkTplTreeNode(TOP_TREE_NODES[0], CUST_TREE_NODES.customize);
 
-                     filterUnchkTplTreeNode(TOP_TREE_NODES[1], CUST_TREE_NODES.common);
 
-                     zTreeOprObj.getReportTemplateTree();
 
-                 } catch(err) {
 
-                 }
 
-             }, function(err){
 
-                 // hintBox.unWaitBox();
 
-             }, function(ex){
 
-                 // hintBox.unWaitBox();
 
-             }
 
-         );
 
-     }
 
-     function revertCommonCustRptCfg(){
 
-         CUST_TREE_NODES.common = JSON.parse(JSON.stringify(ORG_CUST_TREE_NODES.common));
 
-         buildCustRptCommon('report_cust_group_common', ORG_TOP_TREE_NODES[1], CUST_TREE_NODES.common, 'true');
 
-     }
 
-     function revertIndividualCustRptCfg(){
 
-         CUST_TREE_NODES.customize = JSON.parse(JSON.stringify(ORG_CUST_TREE_NODES.customize));
 
-         buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
 
-     }
 
-     function changeCrossTender(dom, rstArr, tenderId, stageId, reportId) {
 
-         if (dom.checked) {
 
-             let item = [tenderId, stageId, reportId];
 
-             rstArr.push(item);
 
-         } else {
 
-             for (let idx = rstArr.length - 1; idx >= 0; idx--) {
 
-                 if (rstArr[idx][0] === tenderId && rstArr[idx][1] === stageId && rstArr[idx][2] === reportId) {
 
-                     rstArr.splice(idx, 1); //删除当前标段
 
-                     //这里不break,防止一些冗余数据
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     function changeFolder(dom, isCommon, parentIdStr) {
 
-         let prop = null;
 
-         if (isCommon) {
 
-             prop = CUST_TREE_NODES.common;
 
-         } else {
 
-             prop = CUST_TREE_NODES.customize;
 
-         }
 
-         let idx = prop.indexOf(dom.attributes['hiddenval'].value);
 
-         if (dom.checked) {
 
-             if (idx < 0) {
 
-                 prop.push(dom.attributes['hiddenval'].value);
 
-                 if (parentIdStr === null) {
 
-                     //这是父节点,需要把所有子节点都勾上
 
-                     //后期补上
 
-                 }
 
-             }
 
-         } else {
 
-             if (idx >= 0) {
 
-                 prop.splice(idx, 1);
 
-                 if (parentIdStr === null) {
 
-                     //这是父节点,需要把所有子节点都uncheck
 
-                     //后期补上
 
-                 }
 
-             }
 
-         }
 
-     }
 
- </script>
 
 
  |