datacollect.ejs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <link href="/public/css/bootstrap/select2.min.css" rel="stylesheet" />
  2. <link rel="stylesheet" href="/public/css/bootstrap/select2-bootstrap4.min.css">
  3. <script src="/public/js/bootstrap/select2.min.js"></script>
  4. <style>
  5. .select2-container {
  6. /*display: inline-block!important;*/
  7. /*height: 27px;*/
  8. width: 100% !important;
  9. }
  10. .select2-container--bootstrap4 .select2-selection--single {
  11. height: calc(1.1em + .75rem + 2px) !important;
  12. }
  13. /*.select2-container--bootstrap4 .select2-selection {*/
  14. /* background-color: #f8f9fa;*/
  15. /* !*border-color: #f8f9fa;*!*/
  16. /* border: 1px solid #f8f9fa;*/
  17. /*}*/
  18. /*.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered:focus{*/
  19. /* box-shadow: 0 0 0 0.2rem rgba(216,217,219,.5);*/
  20. /*}*/
  21. /*.select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered:hover {*/
  22. /* background-color: #e2e6ea;*/
  23. /* border-color: #dae0e5;*/
  24. /*}*/
  25. .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
  26. line-height: calc(1.1em + .75rem);
  27. /*color: #007bff!important;*/
  28. border-radius: 0.2rem;
  29. /*background-color: #f8f9fa;*/
  30. /*border-color: #f8f9fa;*/
  31. }
  32. .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b {
  33. border-color: #007bff transparent transparent transparent;
  34. border-width: 4px 3.7px 0;
  35. }
  36. .select2-search--dropdown .select2-search__field {
  37. padding: 0.175rem 0.5rem;
  38. }
  39. </style>
  40. <% include ./sub_menu.ejs %>
  41. <div class="panel-content">
  42. <div class="panel-title">
  43. <div class="title-main">
  44. <h2>决策大屏
  45. <a href="#power" data-toggle="modal" data-target="#power" class="btn btn-primary btn-sm pull-right">权限管理</a>
  46. <a href="javascript:void(0);" id="tenderBtn" class="btn btn-primary btn-sm pull-right mr-1">标段管理</a>
  47. </h2>
  48. </div>
  49. </div>
  50. <div class="content-wrap">
  51. <div class="c-body">
  52. <div class="sjs-height-0">
  53. <nav class="nav nav-tabs m-3" id="tablist" role="tablist">
  54. <% for (let i = 1; i <= 2; i++) { %>
  55. <a class="nav-item nav-link<% if ((ctx.subProject.data_collect === 0 && i === 1) || ctx.subProject.data_collect === i) { %> active<% } %>" data-datacollect="<%- i %>" data-toggle="tab" href="#shujudaping-<%- i %>" role="tab">
  56. 决策大屏<%- ctx.helper.transFormToChinese(i) %><% if (ctx.helper._.indexOf(ctx.subProject.data_collect_pages, i.toString()) !== -1) { %>(已开启<% if (i === ctx.subProject.data_collect) { %>、默认<% } %>)<% } %></a>
  57. <% } %>
  58. <% if (is_dz1) { %>
  59. <a class="nav-item nav-link<% if (ctx.subProject.data_collect === is_dz1) { %> active<% } %>" data-datacollect="<%- is_dz1 %>" data-toggle="tab" href="#shujudaping-<%- is_dz1 %>" role="tab">
  60. 决策大屏<%- ctx.helper.transFormToChinese(is_dz1) %><% if (ctx.helper._.indexOf(ctx.subProject.data_collect_pages, is_dz1.toString()) !== -1) { %>(已开启<% if (ctx.subProject.data_collect === is_dz1) { %>、默认<% } %>)<% } %></a>
  61. <% } %>
  62. <% if (is_dz2) { %>
  63. <a class="nav-item nav-link<% if (ctx.subProject.data_collect === is_dz2) { %> active<% } %>" data-datacollect="<%- is_dz2 %>" data-toggle="tab" href="#shujudaping-<%- is_dz2 %>" role="tab">
  64. 决策大屏<%- ctx.helper.transFormToChinese(is_dz2) %><% if (ctx.helper._.indexOf(ctx.subProject.data_collect_pages, is_dz2.toString()) !== -1) { %>(已开启<% if (ctx.subProject.data_collect === is_dz2) { %>、默认<% } %>)<% } %></a>
  65. <% } %>
  66. <% if (is_dzcb) { %>
  67. <a class="nav-item nav-link<% if (ctx.subProject.data_collect === is_dzcb) { %> active<% } %>" data-datacollect="<%- is_dzcb %>" data-toggle="tab" href="#shujudaping-<%- is_dzcb %>" role="tab">
  68. 成本管理<% if (ctx.helper._.indexOf(ctx.subProject.data_collect_pages, is_dzcb.toString()) !== -1) { %>(已开启<% if (ctx.subProject.data_collect === is_dzcb) { %>、默认<% } %>)<% } %></a>
  69. <% } %>
  70. <a class="nav-item nav-link<% if (ctx.subProject.data_collect === is_dztz) { %> active<% } %>" data-datacollect="<%- is_dztz %>" data-toggle="tab" href="#shujudaping-<%- is_dztz %>" role="tab">
  71. 投资总控<% if (ctx.helper._.indexOf(ctx.subProject.data_collect_pages, is_dztz.toString()) !== -1) { %>(已开启<% if (ctx.subProject.data_collect === is_dztz) { %>、默认<% } %>)<% } %></a>
  72. <div class="ml-auto">
  73. <!--<div class="form-check form-check-inline">-->
  74. <!--<input class="form-check-input" type="checkbox" id="show-datacollect" value="option1" <% if (ctx.subProject.data_collect) { %>checked<% } %>>-->
  75. <!--<label class="form-check-label" for="show-datacollect">数据大屏显示</label>-->
  76. <!--</div>-->
  77. <div class="d-inline-block form-group form-check mt-2">
  78. <div class="custom-control custom-switch">
  79. <input type="checkbox" class="custom-control-input" id="show_datacollect" <% if (ctx.subProject.data_collect !== 0) { %>checked<% } %>>
  80. <label class="custom-control-label" for="show_datacollect">开启<i class="fa fa-question-circle text-primary" data-placement="bottom" data-toggle="tooltip" data-original-title="开启后,在决策大屏模块显示"></i></label>
  81. </div>
  82. </div>
  83. <div class="d-inline-block form-group form-check mt-2">
  84. <div class="custom-control custom-switch">
  85. <input type="checkbox" class="custom-control-input" id="default_datacollect" <% if (ctx.subProject.data_collect !== 0) { %>checked<% } %>>
  86. <label class="custom-control-label" for="default_datacollect">默认<i class="fa fa-question-circle text-primary" data-placement="bottom" data-toggle="tooltip" data-original-title="决策大屏第一个显示"></i></label>
  87. </div>
  88. </div>
  89. </div>
  90. </nav>
  91. <div class="tab-content m-3">
  92. <% for (let i = 1; i <= 2; i++) { %>
  93. <div id="shujudaping-<%- i %>" class="tab-pane<% if ((ctx.subProject.data_collect === 0 && i === 1) || ctx.subProject.data_collect === i) { %> active<% } %>"><img src="/public/images/juecedaping0<%- i %>.png" width="100%"></div>
  94. <% } %>
  95. <% if (is_dz1) { %>
  96. <div id="shujudaping-<%- is_dz1 %>" class="tab-pane<% if (ctx.subProject.data_collect === is_dz1) { %> active<% } %>">
  97. 山东济邹项目定制(MI22U)<img src="/public/images/juecedaping0<%- is_dz1 %>.png" width="100%">
  98. </div>
  99. <% } %>
  100. <% if (is_dz2) { %>
  101. <div id="shujudaping-<%- is_dz2 %>" class="tab-pane<% if (ctx.subProject.data_collect === is_dz2) { %> active<% } %>">
  102. <span>四川广元路桥集团计量内控管理云平台定制(GY18Y)</span><a class="nav-link" style="display: inline-block;" data-toggle="modal" href="#dpsix-set" data-target="#dpsix-set" title="决策大屏六设置"><i class="fa fa-cog"></i></a><img src="/public/images/juecedaping0<%- is_dz2 %>.png" width="100%">
  103. </div>
  104. <% } %>
  105. <div id="shujudaping-<%- is_dzcb %>" class="tab-pane<% if (ctx.subProject.data_collect === is_dzcb) { %> active<% } %>">
  106. <span>成本管理决策大屏定制(Y3T2Q)</span><img src="/public/images/juecedaping0<%- is_dzcb %>.png" width="100%">
  107. </div>
  108. <% if (is_dztz) { %>
  109. <div id="shujudaping-<%- is_dztz %>" class="tab-pane<% if (ctx.subProject.data_collect === is_dztz) { %> active<% } %>">
  110. <span>投资总控决策大屏定制(Y3T2Q)</span><a class="nav-link" style="display: inline-block;" data-toggle="modal" href="#dpeight-set" data-target="#dpeight-set" title="决策大屏八设置"><i class="fa fa-cog"></i></a><img src="/public/images/juecedaping0<%- is_dztz %>.png" width="100%">
  111. </div>
  112. <% } %>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <script src="/public/js/setting_datacollect_tender.js"></script>
  119. <script src="/public/js/PinYinOrder.bundle.js"></script>
  120. <script src="/public/js/shares/show_level.js"></script>
  121. <script src="/public/js/tender_showhide.js"></script>
  122. <script src="/public/js/shares/tender_list_order.js"></script>
  123. <script>
  124. let dataCollectPages = JSON.parse(unescape('<%- escape(JSON.stringify(ctx.subProject.data_collect_pages)) %>'));
  125. let dataCollect = parseInt('<%- ctx.subProject.data_collect %>');
  126. const category = JSON.parse(unescape('<%- escape(JSON.stringify(categoryData)) %>'));
  127. const selfCategoryLevel = '<%- (selfCategoryLevel || '') %>';
  128. console.log(category);
  129. const tenders = JSON.parse(unescape('<%- escape(JSON.stringify(tenders)) %>'));
  130. let dcTenders = JSON.parse(unescape('<%- escape(JSON.stringify(dcTenders)) %>'));
  131. let addDataCollect = JSON.parse(unescape('<%- escape(JSON.stringify(ctx.subProject.page_show.addDataCollect)) %>'));
  132. let is_dz1 = <% if (is_dz1) { %>parseInt('<%- is_dz1 %>');<% } else { %>false;<% } %>
  133. let is_dz2 = <% if (is_dz2) { %>parseInt('<%- is_dz2 %>');<% } else { %>false;<% } %>
  134. let is_dzcb = <% if (is_dzcb) { %>parseInt('<%- is_dzcb %>');<% } else { %>false;<% } %>
  135. let is_dztz = <% if (is_dztz) { %>parseInt('<%- is_dztz %>');<% } else { %>false;<% } %>
  136. $(function () {
  137. autoFlashHeight();
  138. // 开启及关闭展示
  139. $('#show_datacollect').change(function () {
  140. const activePage = $('#tablist').find('.active').data('datacollect').toString();
  141. if ($(this).is(':checked')) {
  142. dataCollectPages.push(activePage);
  143. dataCollectPages.sort();
  144. if (dataCollect === 0) {
  145. dataCollect = parseInt(activePage);
  146. $('#default_datacollect').prop('checked', true);
  147. }
  148. } else {
  149. dataCollectPages.map((val, i) => {
  150. if (val === activePage) {
  151. dataCollectPages.splice(i, 1);
  152. }
  153. });
  154. if (dataCollectPages.length === 0) {
  155. dataCollect = 0;
  156. } else if (dataCollectPages.length !== 0 && dataCollect === parseInt(activePage)){
  157. dataCollect = parseInt(dataCollectPages[0]);
  158. }
  159. $('#default_datacollect').prop('checked', false);
  160. }
  161. postData('/sp/' + spid + '/setting/datacollect/save', { type: 'show', data_collect_pages: dataCollectPages, data_collect: dataCollect }, function (result) {
  162. updateTab();
  163. })
  164. });
  165. $('#default_datacollect').change(function () {
  166. const activePage = $('#tablist').find('.active').data('datacollect').toString();
  167. if ($(this).is(':checked')) {
  168. dataCollect = parseInt(activePage);
  169. $('#show_datacollect').prop('checked', true);
  170. if (_.indexOf(dataCollectPages, activePage) === -1) {
  171. dataCollectPages.push(activePage);
  172. dataCollectPages.sort();
  173. }
  174. } else {
  175. if (dataCollectPages.length === 1) {
  176. dataCollect = 0;
  177. dataCollectPages = [];
  178. $('#show_datacollect').prop('checked', false);
  179. } else {
  180. dataCollect = parseInt(dataCollectPages[0]) === dataCollect ? parseInt(dataCollectPages[1]) : parseInt(dataCollectPages[0]);
  181. }
  182. }
  183. updateTab();
  184. postData('/sp/' + spid + '/setting/datacollect/save', { type: 'show', data_collect_pages: dataCollectPages, data_collect: dataCollect }, function (result) {
  185. updateTab();
  186. })
  187. })
  188. function updateTab() {
  189. for (let i = 1; i <= 2; i++) {
  190. let msg = '';
  191. if (_.indexOf(dataCollectPages, i.toString()) !== -1) {
  192. msg = '(已开启' + (i=== dataCollect ? '、默认' : '') + ')' ;
  193. }
  194. $('#tablist a').eq(i-1).text('决策大屏' + transFormToChinese(i) + msg);
  195. }
  196. if (is_dz1) {
  197. let msg = '';
  198. if (_.indexOf(dataCollectPages, is_dz1.toString()) !== -1) {
  199. msg = '(已开启' + (is_dz1=== dataCollect ? '、默认' : '') + ')' ;
  200. }
  201. $('#tablist a').eq(is_dz1-3).text('决策大屏' + transFormToChinese(is_dz1) + msg);
  202. }
  203. if (is_dz2) {
  204. let msg = '';
  205. if (_.indexOf(dataCollectPages, is_dz2.toString()) !== -1) {
  206. msg = '(已开启' + (is_dz2=== dataCollect ? '、默认' : '') + ')' ;
  207. }
  208. $('#tablist a').eq(is_dz2-3).text('决策大屏' + transFormToChinese(is_dz2) + msg);
  209. }
  210. if (is_dzcb) {
  211. let msg = '';
  212. if (_.indexOf(dataCollectPages, is_dzcb.toString()) !== -1) {
  213. msg = '(已开启' + (is_dzcb === dataCollect ? '、默认' : '') + ')' ;
  214. }
  215. $('#tablist a').eq(is_dzcb-3).text('成本管理' + msg);
  216. }
  217. if (is_dztz) {
  218. let msg = '';
  219. if (_.indexOf(dataCollectPages, is_dztz.toString()) !== -1) {
  220. msg = '(已开启' + (is_dztz=== dataCollect ? '、默认' : '') + ')' ;
  221. }
  222. $('#tablist a').eq(is_dztz-3).text('投资总控' + msg);
  223. }
  224. }
  225. $('#tablist a').click(function () {
  226. const page = parseInt($(this).data('datacollect'));
  227. if (_.indexOf(dataCollectPages, page.toString()) !== -1) {
  228. $('#show_datacollect').prop('checked', true);
  229. } else {
  230. $('#show_datacollect').prop('checked', false);
  231. }
  232. if (page === dataCollect) {
  233. $('#default_datacollect').prop('checked', true);
  234. } else {
  235. $('#default_datacollect').prop('checked', false);
  236. }
  237. });
  238. })
  239. </script>