compare.ejs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <% include ./stage_memu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main d-flex">
  5. <% include ./stage_mini_menu.ejs %>
  6. <div>
  7. <div class="d-inline-block">
  8. <div class="dropdown">
  9. <button class="btn btn-sm btn-light dropdown-toggle text-primary" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  10. <i class="fa fa-list-ol"></i> 显示层级
  11. </button>
  12. <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
  13. <a class="dropdown-item" name="showLevel" tag="1" href="javascript: void(0);">第一层</a>
  14. <a class="dropdown-item" name="showLevel" tag="2" href="javascript: void(0);">第二层</a>
  15. <a class="dropdown-item" name="showLevel" tag="3" href="javascript: void(0);">第三层</a>
  16. <a class="dropdown-item" name="showLevel" tag="4" href="javascript: void(0);">第四层</a>
  17. <a class="dropdown-item" name="showLevel" tag="last" href="javascript: void(0);">最底层</a>
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="content-wrap row pr-46">
  25. <div class="c-header p-0 col-12">
  26. </div>
  27. <!--核心内容(两栏)-->
  28. <div class="row w-100 sub-content">
  29. <!--左栏-->
  30. <div class="c-body" id="left-view" style="width: 100%">
  31. <div class="sjs-height-1" style="overflow: hidden" id="bills-spread">
  32. </div>
  33. <div class="bcontent-wrap">
  34. <div class="resize-y" id="detail-spr" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" r-parent="div2" title="调整大小"><!--调整上下高度条--></div>
  35. <div class="bc-bar mb-1">
  36. <ul class="nav nav-tabs">
  37. <li class="nav-item">
  38. <a class="nav-link active" href="javascript:void(0)">明细数据</a>
  39. </li>
  40. </ul>
  41. </div>
  42. <div class="sp-wrap" id="detail-spread">
  43. </div>
  44. </div>
  45. </div>
  46. <div class="c-body" id="right-view" style="display: none; width: 33%;">
  47. <div class="resize-x" id="right-spr" r-Type="width" div1="#left-view" div2="#right-view" title="调整大小" a-type="percent"><!--调整左右高度条--></div>
  48. <div class="tab-content">
  49. <div id="search" class="tab-pane tab-select-show">
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <!--右侧菜单-->
  55. <div class="side-menu">
  56. <ul class="nav flex-column right-nav" id="side-menu">
  57. <li class="nav-item">
  58. <a class="nav-link" content="#search" href="javascript: void(0);">查找定位</a>
  59. </li>
  60. </ul>
  61. </div>
  62. </div>
  63. </div>
  64. <script>
  65. const tenderId = parseInt('<%- ctx.tender.id %>');
  66. const stageId = parseInt('<%- ctx.costStage.id %>');
  67. const stageType = parseInt('<%- ctx.costStage.stage_type %>');
  68. const stageDate = '<%- ctx.costStage.stage_date %>';
  69. <% if (ctx.costStage.stage_type === 'ledger') { %>
  70. const bllsSpreadSetting = {
  71. cols: [
  72. {title: '编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 230, formatter: '@', cellType: 'tree'},
  73. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', cellType: 'autoTip'},
  74. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  75. {title: '税率(%)', colSpan: '1', rowSpan: '2', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  76. {title: '本期|付款金额', colSpan: '4|1', rowSpan: '1|1', field: 'pay_tp', hAlign: 2, width: 80, type: 'Number'},
  77. {title: '|扣款金额', colSpan: '|1', rowSpan: '|1', field: 'cut_tp', hAlign: 2, width: 80, type: 'Number'},
  78. {title: '|应付金额', colSpan: '|1', rowSpan: '|1', field: 'yf_tp', hAlign: 2, width: 80, type: 'Number'},
  79. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_tp', hAlign: 2, width: 80, type: 'Number'},
  80. {title: '本期(不含税)|应付金额', colSpan: '2|1', rowSpan: '1|1', field: 'yf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  81. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  82. ],
  83. emptyRows: 0,
  84. headRows: 2,
  85. headRowHeight: [25, 25],
  86. defaultRowHeight: 21,
  87. headerFont: '12px 微软雅黑',
  88. font: '12px 微软雅黑',
  89. headColWidth: [50],
  90. tipsSum: true,
  91. readOnly: true,
  92. };
  93. const dealSpreadSetting = {
  94. cols: [
  95. {title: '合同编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 160, formatter: '@'},
  96. {title: '合同名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 160, formatter: '@'},
  97. {title: '乙方', colSpan: '1', rowSpan: '2', field: 'party_b', hAlign: 0, width: 150, formatter: '@'},
  98. {title: '支付年月', colSpan: '1', rowSpan: '2', field: 'pay_date', hAlign: 1, width: 120, formatter: '@'},
  99. {title: '税率(%)', colSpan: '1', rowSpan: '2', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  100. {title: '本期|付款金额', colSpan: '4|1', rowSpan: '1|1', field: 'pay_tp', hAlign: 2, width: 80, type: 'Number'},
  101. {title: '|扣款金额', colSpan: '|1', rowSpan: '|1', field: 'cut_tp', hAlign: 2, width: 80, type: 'Number'},
  102. {title: '|应付金额', colSpan: '|1', rowSpan: '|1', field: 'yf_tp', hAlign: 2, width: 80, type: 'Number'},
  103. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_tp', hAlign: 2, width: 80, type: 'Number'},
  104. {title: '本期(不含税)|应付金额', colSpan: '2|1', rowSpan: '1|1', field: 'yf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  105. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  106. ],
  107. emptyRows: 0,
  108. headRows: 2,
  109. headRowHeight: [25, 25],
  110. defaultRowHeight: 21,
  111. headerFont: '12px 微软雅黑',
  112. font: '12px 微软雅黑',
  113. readOnly: true,
  114. headColWidth: [50],
  115. tipsSum: true,
  116. };
  117. const commonSpreadSetting = {
  118. cols: [
  119. {title: '编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 160, formatter: '@'},
  120. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 160, formatter: '@'},
  121. {title: '税率(%)', colSpan: '1', rowSpan: '2', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  122. {title: '本期|付款金额', colSpan: '4|1', rowSpan: '1|1', field: 'pay_tp', hAlign: 2, width: 80, type: 'Number'},
  123. {title: '|扣款金额', colSpan: '|1', rowSpan: '|1', field: 'cut_tp', hAlign: 2, width: 80, type: 'Number'},
  124. {title: '|应付金额', colSpan: '|1', rowSpan: '|1', field: 'yf_tp', hAlign: 2, width: 80, type: 'Number'},
  125. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_tp', hAlign: 2, width: 80, type: 'Number'},
  126. {title: '本期(不含税)|应付金额', colSpan: '2|1', rowSpan: '1|1', field: 'yf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  127. {title: '|实付金额', colSpan: '|1', rowSpan: '|1', field: 'sf_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  128. ],
  129. emptyRows: 3,
  130. headRows: 2,
  131. headRowHeight: [25, 25],
  132. defaultRowHeight: 21,
  133. headerFont: '12px 微软雅黑',
  134. font: '12px 微软雅黑',
  135. readOnly: true,
  136. headColWidth: [50],
  137. tipsSum: true,
  138. };
  139. <% } %>
  140. <% if (ctx.costStage.stage_type === 'book') { %>
  141. const bllsSpreadSetting = {
  142. cols: [
  143. {title: '编号', colSpan: '1', rowSpan: '1', field: 'code', hAlign: 0, width: 230, formatter: '@', cellType: 'tree'},
  144. {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 185, formatter: '@', cellType: 'autoTip'},
  145. {title: '单位', colSpan: '1', rowSpan: '1', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  146. {title: '税率(%)', colSpan: '1', rowSpan: '1', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  147. {title: '入账金额', colSpan: '1', rowSpan: '1', field: 'in_tp', hAlign: 2, width: 80, type: 'Number'},
  148. {title: '入账金额(不含税)', colSpan: '1', rowSpan: '1', field: 'in_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  149. ],
  150. emptyRows: 0,
  151. headRows: 1,
  152. headRowHeight: [25],
  153. defaultRowHeight: 21,
  154. headerFont: '12px 微软雅黑',
  155. font: '12px 微软雅黑',
  156. headColWidth: [50],
  157. tipsSum: true,
  158. readOnly: true,
  159. };
  160. const dealSpreadSetting = {
  161. cols: [
  162. {title: '合同编号', colSpan: '1', rowSpan: '1', field: 'code', hAlign: 0, width: 160, formatter: '@'},
  163. {title: '合同名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 160, formatter: '@'},
  164. {title: '乙方', colSpan: '1', rowSpan: '1', field: 'party_b', hAlign: 0, width: 150, formatter: '@'},
  165. {title: '支付年月', colSpan: '1', rowSpan: '1', field: 'pay_date', hAlign: 1, width: 120, formatter: '@'},
  166. {title: '税率(%)', colSpan: '1', rowSpan: '1', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  167. {title: '入账金额', colSpan: '1', rowSpan: '1', field: 'in_tp', hAlign: 2, width: 80, type: 'Number'},
  168. {title: '入账金额(不含税)', colSpan: '1', rowSpan: '1', field: 'in_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  169. ],
  170. emptyRows: 0,
  171. headRows: 1,
  172. headRowHeight: [25],
  173. defaultRowHeight: 21,
  174. headerFont: '12px 微软雅黑',
  175. font: '12px 微软雅黑',
  176. readOnly: true,
  177. headColWidth: [50],
  178. tipsSum: true,
  179. };
  180. const commonSpreadSetting = {
  181. cols: [
  182. {title: '编号', colSpan: '1', rowSpan: '1', field: 'code', hAlign: 0, width: 160, formatter: '@'},
  183. {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 160, formatter: '@'},
  184. {title: '税率(%)', colSpan: '1', rowSpan: '1', field: 'tax', hAlign: 2, width: 80, type: 'Number'},
  185. {title: '入账金额', colSpan: '1', rowSpan: '1', field: 'in_tp', hAlign: 2, width: 80, type: 'Number'},
  186. {title: '入账金额(不含税)', colSpan: '1', rowSpan: '1', field: 'in_excl_tax_tp', hAlign: 2, width: 100, type: 'Number'},
  187. ],
  188. emptyRows: 3,
  189. headRows: 1,
  190. headRowHeight: [25],
  191. defaultRowHeight: 21,
  192. headerFont: '12px 微软雅黑',
  193. font: '12px 微软雅黑',
  194. readOnly: true,
  195. headColWidth: [50],
  196. tipsSum: true,
  197. };
  198. <% } %>
  199. <% if (ctx.costStage.stage_type === 'analysis') { %>
  200. const bllsSpreadSetting = JSON.parse(unescape('<%- escape(JSON.stringify( ctx.costStage.calcTemplate.spread_cache )) %>'));
  201. const dealSpreadSetting = JSON.parse(unescape('<%- escape(JSON.stringify( ctx.costStage.calcTemplate.sub_spread_cache.deal )) %>'));
  202. const commonSpreadSetting = JSON.parse(unescape('<%- escape(JSON.stringify( ctx.costStage.calcTemplate.sub_spread_cache.common )) %>'));
  203. <% } %>
  204. const calcFields = JSON.parse('<%- JSON.stringify(calcFields) %>');
  205. </script>