rpt_all_popup.ejs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. <div class="modal fade" id="paper" data-backdrop="static">
  2. <div class="modal-dialog" role="document">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <h5 class="modal-title">页边距(毫米)</h5>
  6. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  7. <span aria-hidden="true">&times;</span>
  8. </button>
  9. </div>
  10. <div class="modal-body">
  11. <div class="row mb-1 justify-content-center">
  12. <div class="col-3">
  13. <div class="input-group input-group-sm ">
  14. <div class="input-group-prepend">
  15. <span class="input-group-text">上</span>
  16. </div>
  17. <input type="number" class="form-control form-control-sm" id="elementMargin_Top" value="12" onchange="rptControlObj.changeMargin('Top', this)" onkeyup="rptControlObj.changeMargin('Top', this)">
  18. </div>
  19. </div>
  20. </div>
  21. <div class="row mb-1 align-items-center">
  22. <div class="col-3">
  23. <div class="input-group input-group-sm ">
  24. <div class="input-group-prepend">
  25. <span class="input-group-text">左</span>
  26. </div>
  27. <input type="number" class="form-control form-control-sm" id="elementMargin_Left" value="12" onchange="rptControlObj.changeMargin('Left', this)" onkeyup="rptControlObj.changeMargin('Left', this)">
  28. </div>
  29. </div>
  30. <div class="col-6">
  31. <h1 class="display-4 text-center"><i class="fa fa-file-o"></i></h1>
  32. </div>
  33. <div class="col-3">
  34. <div class="input-group input-group-sm ">
  35. <div class="input-group-prepend">
  36. <span class="input-group-text">右</span>
  37. </div>
  38. <input type="number" class="form-control form-control-sm" id="elementMargin_Right" value="12" onchange="rptControlObj.changeMargin('Right', this)" onkeyup="rptControlObj.changeMargin('Right', this)">
  39. </div>
  40. </div>
  41. </div>
  42. <div class="row mb-1 justify-content-center">
  43. <div class="col-3">
  44. <div class="input-group input-group-sm ">
  45. <div class="input-group-prepend">
  46. <span class="input-group-text">下</span>
  47. </div>
  48. <input type="number" class="form-control form-control-sm" id="elementMargin_Bottom"value="12" onchange="rptControlObj.changeMargin('Bottom', this)" onkeyup="rptControlObj.changeMargin('Bottom', this)">
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="modal-footer">
  54. <button type="button" class="btn btn-link btn-sm float-left" data-dismiss="modal" onclick="rptControlObj.restoreMargine(); zTreeOprObj.changeCfg();">恢复默认值</button>
  55. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">取消</button>
  56. <a href="javascript:void(0)" class="btn btn-primary btn-sm" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</a>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="modal fade" id="format" data-backdrop="static">
  62. <div class="modal-dialog" role="document">
  63. <div class="modal-content">
  64. <div class="modal-header">
  65. <h5 class="modal-title">格式</h5>
  66. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  67. <span aria-hidden="true">&times;</span>
  68. </button>
  69. </div>
  70. <div class="modal-body">
  71. <div class="row mb-1" id="font_cfg_blank_flag"></div>
  72. <div class="row mb-1">
  73. <div class="col-3">边框线粗</div>
  74. <div class="col-4">
  75. <select class="form-control form-control-sm" id="cfg_border_thick" onchange="rptControlObj.changeBorderWeight(this)"><option>1</option><option>2</option></select>
  76. </div>
  77. </div>
  78. <div class="row mb-1">
  79. <div class="col-4">
  80. <div class="form-check">
  81. <label class="form-check-label">
  82. <input type="checkbox" class="form-check-input" id="cfg_rpt_vertical_line" onchange="rptControlObj.changeCfgOption('showVerticalLine', this)">
  83. 报表边框竖线
  84. </label>
  85. </div>
  86. </div>
  87. <div class="col-4">
  88. <div class="form-check">
  89. <label class="form-check-label">
  90. <input type="checkbox" class="form-check-input" id="cfg_rpt_narrow" onchange="rptControlObj.changeCfgOption('isNarrow', this)">
  91. 内容窄体输出
  92. </label>
  93. </div>
  94. </div>
  95. <div class="col-4">
  96. <div class="form-check">
  97. <label class="form-check-label">
  98. <input type="checkbox" class="form-check-input" id="cfg_rpt_fill_zero" onchange="rptControlObj.changeCfgOption('fillZero', this)">
  99. 小数补0
  100. </label>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="modal-footer">
  106. <button type="button" class="btn btn-link btn-sm float-left" data-dismiss="modal" onclick="rptControlObj.restoreFormat(); zTreeOprObj.changeCfg();">恢复默认值</button>
  107. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">取消</button>
  108. <a href="javascript:void(0)" class="btn btn-primary btn-sm" data-dismiss="modal" onclick="rptControlObj.confirmCfgChange()">确定</a>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <div class="modal fade" id="export_excel" data-backdrop="static">
  114. <div class="modal-dialog" role="document">
  115. <div class="modal-content">
  116. <div class="modal-header">
  117. <h5 class="modal-title">批量导出Excel</h5>
  118. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  119. <span aria-hidden="true">&times;</span>
  120. </button>
  121. </div>
  122. <div class="modal-body">
  123. <div class="row">
  124. <div class="col-6">
  125. <div class="card">
  126. <img class="card-img-top" src="/public/images/p2.png">
  127. <div class="card-body px-3">
  128. <div class="form-check">
  129. <input class="form-check-input" type="radio" name="excelExportTypeRadio" id="excelExportType_AllInOneBook" value="option1" checked>
  130. <label class="form-check-label" for="excelExportType_AllInOneBook">
  131. 多个表导出一个Excel文件
  132. </label>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="col-6">
  138. <div class="card">
  139. <img class="card-img-top" src="/public/images/p1.png">
  140. <div class="card-body px-3">
  141. <div class="form-check">
  142. <input class="form-check-input" type="radio" name="excelExportTypeRadio" id="excelExportType_IndividualBook" value="option2" checked>
  143. <label class="form-check-label" for="excelExportType_IndividualBook">
  144. 每个表导出一个Excel文件
  145. </label>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. <div class="modal-footer">
  153. <a onclick="rptControlObj.getExcel()" class="btn btn-primary btn-sm" data-dismiss="modal">确定导出</a>
  154. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">取消</button>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="modal fade" id="eSignature" data-backdrop="static">
  160. <div class="modal-dialog" role="document">
  161. <div class="modal-content">
  162. <div class="modal-header">
  163. <h5 class="modal-title">设置电子签名(审核通过后才显示)</h5>
  164. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  165. <span aria-hidden="true">&times;</span>
  166. </button>
  167. </div>
  168. <div class="modal-body" id="eSignatureBodyDiv">
  169. </div>
  170. <div class="modal-footer">
  171. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal" onclick="rptSignatureHelper.removeSelectSignature()">取消</button>
  172. <a href="javascript:void(0);" onclick="rptSignatureHelper.setupAfterSelectSignature()" class="btn btn-primary btn-sm" data-dismiss="modal">确定</a>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. <!--弹出添加签名人-->
  178. <div class="modal fade" id="add-sign" data-backdrop="static">
  179. <div class="modal-dialog modal-sm" role="document">
  180. <div class="modal-content">
  181. <div class="modal-header">
  182. <h5 class="modal-title">添加签名</h5>
  183. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  184. <span aria-hidden="true">&times;</span>
  185. </button>
  186. </div>
  187. <div class="modal-body">
  188. <ul class="nav nav-tabs justify-content-center mb-1" role="tablist">
  189. <li class="nav-item">
  190. <a class="nav-link active px-3 p-1" data-toggle="tab" href="#adst-1" role="tab">项目</a>
  191. </li>
  192. <li class="nav-item">
  193. <a class="nav-link px-3 p-1" data-toggle="tab" href="#adst-2" role="tab"><i class="fa fa-user"></i> 角色</a>
  194. </li>
  195. <li class="nav-item">
  196. <a class="nav-link px-3 p-1" data-toggle="tab" href="#adst-3" role="tab">最近使用</a>
  197. </li>
  198. </ul>
  199. <div class="tab-content">
  200. <div class="tab-pane fade show active" id="adst-1" role="tabpanel" aria-labelledby="home-tab">
  201. <div class="input-group input-group-sm mt-1 mb-2">
  202. <div class="input-group-prepend">
  203. <span class="input-group-text" id="inputGroup-sizing-sm"><i class="fa fa-search" onclick="rptSignatureHelper.buildSelectableAccount(this);"></i></span>
  204. </div>
  205. <input type="text" id="search_account" class="form-control form-control-sm" placeholder="搜索..." onkeypress="searchAccount()">
  206. </div>
  207. <div class="modal-height-300" id="project_account_select_div">
  208. </div>
  209. </div>
  210. <div class="tab-pane fade" id="adst-2" role="tabpanel" aria-labelledby="profile-tab">
  211. <a href="javascript:void(0)" onclick="rptSignatureHelper.switchAddRoleDiv(this)" class="btn btn-sm btn-link">添加角色</a>
  212. <div class="modal-height-300">
  213. <!--添加角色-->
  214. <div class="card" id="role_select_acc_div" style="display:none">
  215. <div class="p-2">
  216. <div class="input-group input-group-sm mb-1">
  217. <div class="input-group-prepend">
  218. <span class="input-group-text" id="inputGroup-sizing-sm">角色名称</span>
  219. </div>
  220. <input type="text" class="form-control form-control-sm" id="acc_role_name" placeholder="最多10个字符">
  221. </div>
  222. <div class="input-group input-group-sm mb-1">
  223. <div class="input-group-prepend">
  224. <span class="input-group-text" id="inputGroup-sizing-sm">绑定成员</span>
  225. </div>
  226. <select class="form-control form-control-sm" id="project_account_select_dom">
  227. </select>
  228. </div>
  229. <a href="javascript:void(0)" onclick="rptSignatureHelper.createNewRole(this)" class="btn btn-sm btn-primary">添加角色</a>
  230. </div>
  231. </div>
  232. <ul class="list-group p-2" id="existed_roles_ul">
  233. </ul>
  234. </div>
  235. </div>
  236. <div class="tab-pane fade" id="adst-3" role="tabpanel" aria-labelledby="contact-tab">
  237. <div class="modal-height-300">
  238. <ul class="list-group" id="account_used_select_div"></ul>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. </div>
  244. </div>
  245. </div>
  246. <!--选择审批人-->
  247. <div class="modal fade" id="audit-select" data-backdrop="static">
  248. <div class="modal-dialog" role="document">
  249. <div class="modal-content">
  250. <div class="modal-header">
  251. <h5 class="modal-title" id="audit-select-title">重置</h5>
  252. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  253. <span aria-hidden="true">&times;</span>
  254. </button>
  255. </div>
  256. <div class="modal-body">
  257. <table class="table table-bordered">
  258. <tr><th style="width: 50%">报表数据</th><th>审批人</th></tr>
  259. <tbody id="audit-select-list">
  260. </tbody>
  261. </table>
  262. <div id="audit-select-hint" class="text-danger">
  263. </div>
  264. </div>
  265. <div class="modal-footer">
  266. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
  267. <button id="audit-select-ok" class="btn btn-primary btn-sm" onclick="rptCustomObj.resetAuditSelect(this)">确定</button>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. <!--选择标段-->
  273. <div class="modal fade" id="gather-select" data-backdrop="static">
  274. <div class="modal-dialog modal-lg" role="document">
  275. <div class="modal-content">
  276. <div class="modal-header">
  277. <h5 class="modal-title" id="gather-select-title">选择标段</h5>
  278. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  279. <span aria-hidden="true">&times;</span>
  280. </button>
  281. </div>
  282. <div class="modal-body">
  283. <div class="row">
  284. <div class="col-6">
  285. <h5>可选标段 </h5>
  286. <div class="modal-height-300" id="gather-source-spread" style="height: 330px">
  287. </div>
  288. </div>
  289. <div class="col-6">
  290. <h5>已选标段 </h5>
  291. <div class="modal-height-300" id="gather-result-spread">
  292. </div>
  293. <div class="mt-1" id="gather-by-month" style="width: 60%">
  294. <div class="input-group input-group-sm">
  295. <div class="input-group-prepend">
  296. <span class="input-group-text">汇总年月</span>
  297. </div>
  298. <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">
  299. </div>
  300. </div>
  301. <div id="gather-by-zone">
  302. <div class="input-group input-group-sm">
  303. <div class="input-group-prepend">
  304. <span class="input-group-text">汇总周期</span>
  305. </div>
  306. <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">
  307. </div>
  308. </div>
  309. </div>
  310. <div class="text-danger text-center ml-3" id="gather-hint">我是提示呀</div>
  311. </div>
  312. </div>
  313. <div class="modal-footer">
  314. <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
  315. <button class="btn btn-sm btn-primary" id="gather-select-ok">确定</button>
  316. </div>
  317. </div>
  318. </div>
  319. </div>
  320. <div class="modal fade" id="stage-select" data-backdrop="static">
  321. <div class="modal-dialog" role="document">
  322. <div class="modal-content">
  323. <div class="modal-header">
  324. <h5 class="modal-title" id="stage-select-title">选择期</h5>
  325. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  326. <span aria-hidden="true">&times;</span>
  327. </button>
  328. </div>
  329. <div class="modal-body">
  330. <div class="row">
  331. <% for (const s of stages) { %>
  332. <div class="col-3">
  333. <div class="custom-control custom-checkbox custom-control-inline">
  334. <input type="checkbox" id="stage-select-<%- s.order %>" name="stage-select-check" stage-order="<%- s.order %>" class="custom-control-input">
  335. <label class="custom-control-label" for="stage-select-<%- s.order %>">第<%- s.order %>期</label>
  336. </div>
  337. </div>
  338. <% } %>
  339. </div>
  340. <div class="alert alert-danger my-2 p-2" id="stage-select-hint">我是提示呀</div>
  341. </div>
  342. <div class="modal-footer">
  343. <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
  344. <button class="btn btn-sm btn-primary" id="stage-select-ok">确定</button>
  345. </div>
  346. </div>
  347. </div>
  348. </div>
  349. <!--管理通用报表-->
  350. <div class="modal fade" id="man-c" data-backdrop="static">
  351. <div class="modal-dialog" role="document">
  352. <div class="modal-content">
  353. <div class="modal-header">
  354. <h5 class="modal-title">管理通用报表</h5>
  355. </div>
  356. <div class="modal-body">
  357. <div class="modal-height-500" style="overflow: auto;">
  358. <table class="table table-sm table-bordered" id="report_cust_group_common">
  359. </table>
  360. </div>
  361. </div>
  362. <div class="modal-footer">
  363. <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="revertCommonCustRptCfg();">关闭</button>
  364. <!--有结果出现添加-->
  365. <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="updateCustRptCfg()">确认</button>
  366. </div>
  367. </div>
  368. </div>
  369. </div>
  370. <!--管理定制报表-->
  371. <div class="modal fade" id="man-i" data-backdrop="static">
  372. <div class="modal-dialog" role="document">
  373. <div class="modal-content">
  374. <div class="modal-header">
  375. <h5 class="modal-title">管理定制报表</h5>
  376. </div>
  377. <div class="modal-body">
  378. <div class="modal-height-500" style="overflow: auto;">
  379. <table class="table table-sm table-bordered" id="report_cust_group_individual">
  380. </table>
  381. </div>
  382. </div>
  383. <div class="modal-footer">
  384. <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="revertIndividualCustRptCfg();">关闭</button>
  385. <!--有结果出现添加-->
  386. <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="updateCustRptCfg()">确认</button>
  387. </div>
  388. </div>
  389. </div>
  390. </div>
  391. <script>
  392. zTreeOprObj.getCustomerCfg();
  393. zTreeOprObj.iniFontCfgDom(CUST_CFG);
  394. buildCustRptCommon('report_cust_group_common', ORG_TOP_TREE_NODES[1], CUST_TREE_NODES.common, 'true');
  395. buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
  396. function searchAccount() {
  397. if (event.keyCode == 13) {
  398. rptSignatureHelper.buildSelectableAccount(this);
  399. }
  400. }
  401. function buildCustRptCommon(tbDomId, topTreeNode, checkingArr, isCommonStr) {
  402. let tbDom = $("#" + tbDomId);
  403. tbDom.empty();
  404. tbDom.append('<tr><th>类别</th><th>包含报表</th><th>显示</th></tr>');
  405. let _countAvailableTpls = function (tItem) {
  406. let rst = 0;
  407. if (tItem.nodeType === 1 && tItem.items && tItem.items.length > 0) {
  408. for (const dItem of tItem.items) {
  409. if (dItem.nodeType === 2) {
  410. if (dItem.released) rst++;
  411. } else {
  412. rst += _countAvailableTpls(dItem);
  413. }
  414. }
  415. }
  416. return rst;
  417. };
  418. let _pushRptLine = function (parentItem, rptItem, level, needChk, parentNodeIdStr, thisItemSeq) {
  419. if (rptItem.nodeType === 1) {
  420. let amt = _countAvailableTpls(rptItem);
  421. let classStr = '';
  422. if (level > 0) {
  423. classStr = 'pl-' + (level + 3);
  424. }
  425. if (needChk) {
  426. let chkName = parentItem.name + FOLDER_SEPERATER + rptItem.name;
  427. let checkedStr = (checkingArr.indexOf(chkName) >= 0) ? ' checked' : '';
  428. let sIdStr = parentNodeIdStr + '_sub_' + thisItemSeq;
  429. 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>');
  430. } else {
  431. tbDom.append('<tr><td class="' + classStr + '">' + rptItem.name + '</td><td>' + amt + '</td><td></td></tr>');
  432. }
  433. if (rptItem.items && rptItem.items.length > 0) {
  434. for (const subItem of rptItem.items) {
  435. _pushRptLine(rptItem, subItem, level + 1, false, '');
  436. }
  437. }
  438. }
  439. }
  440. let TplAmts = [];
  441. let parentIdx = 0;
  442. let subCnt = topTreeNode.items.length;
  443. for (const topItem of topTreeNode.items) {
  444. TplAmts.push(_countAvailableTpls(topItem));
  445. let checkedStr = (checkingArr.indexOf(topItem.name) >= 0) ? ' checked' : '';
  446. let pIdStr = tbDomId + '_' + parentIdx + '_' + subCnt;
  447. 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>');
  448. if (topItem.items && topItem.items.length > 0) {
  449. let subSeq = 0;
  450. for (const subItem of topItem.items) {
  451. _pushRptLine(topItem, subItem, 1, true, pIdStr, subSeq);
  452. }
  453. subSeq++;
  454. }
  455. parentIdx++;
  456. }
  457. }
  458. function updateCustRptCfg(){
  459. let params = {};
  460. params.nodeItems = CUST_TREE_NODES;
  461. CommonAjax.postXsrfEx("/tender/report_api/updateCustNode", params, 60000, true, getCookie('csrfToken'),
  462. function(result){
  463. try {
  464. // console.log(result);
  465. ORG_CUST_TREE_NODES.common = JSON.parse(JSON.stringify(CUST_TREE_NODES.common));
  466. ORG_CUST_TREE_NODES.customize = JSON.parse(JSON.stringify(CUST_TREE_NODES.customize));
  467. //刷新报表模板树
  468. TOP_TREE_NODES = JSON.parse(JSON.stringify(ORG_TOP_TREE_NODES));
  469. // 移除未被选择的模板
  470. filterUnchkTplTreeNode(TOP_TREE_NODES[0], CUST_TREE_NODES.customize);
  471. filterUnchkTplTreeNode(TOP_TREE_NODES[1], CUST_TREE_NODES.common);
  472. zTreeOprObj.getReportTemplateTree();
  473. } catch(err) {
  474. }
  475. }, function(err){
  476. // hintBox.unWaitBox();
  477. }, function(ex){
  478. // hintBox.unWaitBox();
  479. }
  480. );
  481. }
  482. function revertCommonCustRptCfg(){
  483. CUST_TREE_NODES.common = JSON.parse(JSON.stringify(ORG_CUST_TREE_NODES.common));
  484. buildCustRptCommon('report_cust_group_common', ORG_TOP_TREE_NODES[1], CUST_TREE_NODES.common, 'true');
  485. }
  486. function revertIndividualCustRptCfg(){
  487. CUST_TREE_NODES.customize = JSON.parse(JSON.stringify(ORG_CUST_TREE_NODES.customize));
  488. buildCustRptCommon('report_cust_group_individual', ORG_TOP_TREE_NODES[0], CUST_TREE_NODES.customize, 'false');
  489. }
  490. function changeFolder(dom, isCommon, parentIdStr) {
  491. let prop = null;
  492. if (isCommon) {
  493. prop = CUST_TREE_NODES.common;
  494. } else {
  495. prop = CUST_TREE_NODES.customize;
  496. }
  497. let idx = prop.indexOf(dom.attributes['hiddenval'].value);
  498. if (dom.checked) {
  499. if (idx < 0) {
  500. prop.push(dom.attributes['hiddenval'].value);
  501. if (parentIdStr === null) {
  502. //这是父节点,需要把所有子节点都勾上
  503. //后期补上
  504. }
  505. }
  506. } else {
  507. if (idx >= 0) {
  508. prop.splice(idx, 1);
  509. if (parentIdStr === null) {
  510. //这是父节点,需要把所有子节点都uncheck
  511. //后期补上
  512. }
  513. }
  514. }
  515. }
  516. </script>