sale_account_report.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>ECharts</title>
  6. <!-- 引入 echarts.js -->
  7. <script src="/jc_data/static/lib/echarts.min.js" type="text/javascript"></script>
  8. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
  9. <style>
  10. td, th {
  11. border-right: 1px solid gray;
  12. border-bottom: 1px solid gray;
  13. width: 100px;
  14. height: 30px;
  15. box-sizing: border-box;
  16. }
  17. th {
  18. background-color: lightblue;
  19. }
  20. table {
  21. border-collapse: separate;
  22. table-layout: fixed;
  23. width: 100%; /* 固定寬度 */
  24. }
  25. thead tr th {
  26. position: sticky;
  27. top: 0; /* 第一列最上 */
  28. }
  29. th:first-child {
  30. z-index: 2;
  31. background-color: lightblue;
  32. }
  33. .table > tbody > tr > td {
  34. vertical-align: middle;
  35. }
  36. .row_and_column {
  37. z-index: 3;
  38. background-color: lightblue;
  39. }
  40. .clearfix{zoom:1} /*zooom 属性:IE 浏览器的专用属性。这一句是专门针对老版本的IE浏览器所写的,为了兼容*/
  41. .clearfix:after{ /* :after伪对象选择符---在这个对象被浏览器渲染后添加一定的内容*/
  42. content:"."; /*content属性:添加的内容即为这个属性的值。这个属性是专门与伪对象搭配使用的*/
  43. display: block; /*将添加进去的内容转换为块状元素*/
  44. visibility: hidden; /*visibility:可视化属性,控制元素是否可见,但无论是否隐藏都保留物理空间。{与display:none的比较}*/
  45. height: 0;/*将添加进去的内容高度设置为0,消除其占位*/
  46. clear: both;/*将添加进去的内容作为清除浮动的对象,实现外围容器中有内容存在,因此可以自动判定高度,解决塌陷*/
  47. }
  48. .label-link{
  49. color: blue;
  50. cursor: pointer;
  51. text-decoration: underline;
  52. }
  53. .label-link-select{
  54. color: red;
  55. cursor: pointer;
  56. text-decoration: underline;
  57. }
  58. </style>
  59. </head>
  60. <body>
  61. {% import 'table.html' as t %}
  62. <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
  63. <div class="wrap clearfix">
  64. <div style="float: left;">
  65. <div>
  66. {% for item in data_label.labels %}
  67. {% if item.id==data_label.selectedID1 %}
  68. <text class="label-link-select" onclick="click_label(1,{{item.id}})">{{item.name}}</text>
  69. {% else %}
  70. <text class="label-link" onclick="click_label(1,{{item.id}})">{{item.name}}</text>
  71. {% endif %}
  72. {% endfor %}
  73. </div>
  74. <div>
  75. {% if data_label.show2 %}
  76. {% for item in data_label.labels2 %}
  77. {% if item.id==data_label.selectedID2 %}
  78. <text class="label-link-select" onclick="click_label(2,{{item.id}})">{{item.name}}</text>
  79. {% else %}
  80. <text class="label-link" onclick="click_label(2,{{item.id}})">{{item.name}}</text>
  81. {% endif %}
  82. {% endfor %}
  83. {% endif %}
  84. </div>
  85. <div>
  86. {% if data_label.show3 %}
  87. {% for item in data_label.labels3 %}
  88. {% if item.id==data_label.selectedID3 %}
  89. <text class="label-link-select" onclick="click_label(3,{{item.id}})">{{item.name}}</text>
  90. {% else %}
  91. <text class="label-link" onclick="click_label(3,{{item.id}})">{{item.name}}</text>
  92. {% endif %}
  93. {% endfor %}
  94. {% endif %}
  95. </div>
  96. </div>
  97. <!-- <div style="float: right;width: 100px;">查询</div>-->
  98. <div style="float: right;width:350px;">
  99. <div style="float: left;">日期:</div>
  100. <div style="float: right;">
  101. <input type="date" id="date-start" value="{{data_label.date_start}}"/>~<input type="date" id="date-end" value="{{data_label.date_end}}"/>
  102. </div>
  103. </div>
  104. </div>
  105. <div id="customer" style="position:absolute;top:5%;left:0;width: 25%;height:32%;border:1px solid gray;"></div>
  106. <div id="staff" style="position:absolute;top:37%;left:0;width: 25%;height:32%;border:1px solid gray;"></div>
  107. <div id="zone3" style="position:absolute;top:69%;left:0;width: 75%;height:31%;border:1px solid gray;"></div>
  108. <div id="zone4" style="position:absolute;top:5%;left:25%;width: 50%;height:64%;border:1px solid gray;">
  109. {% if data_label.is_table %}
  110. {% if data4 %}
  111. {% set all_data4 = data4|str_to_obj %}
  112. {{t.get_table(all_data4.headers,all_data4.rows,all_data4.table_height,all_data4.table_width,all_data4.lock_column_count,all_data4.width)}}
  113. {% endif %}
  114. {% endif %}
  115. </div>
  116. <div id="zone5" style="position:absolute;top:5%;left:75%;width: 25%;height:64%;border:1px solid gray;">
  117. {% if data_label.is_table %}
  118. {% if data5 %}
  119. {% set all_data5 = data5|str_to_obj %}
  120. {{t.get_table(all_data5.headers,all_data5.rows,all_data5.table_height,all_data5.table_width,all_data5.lock_column_count,all_data5.width)}}
  121. {% endif %}
  122. {% endif %}
  123. </div>
  124. <div id="zone6" style="position:absolute;top:69%;left:75%;width: 25%;height:31%;border:1px solid gray;"></div>
  125. <!-- <div id="zone7" style="position:absolute;top:0;left:0;width: 25%;height:33%;"></div>-->
  126. <script type="text/javascript">
  127. // 基于准备好的dom,初始化echarts实例
  128. var _customer = echarts.init(document.getElementById('customer'));
  129. var data_table_customer = {{data_table_customer|safe}};
  130. if(data_table_customer){
  131. var data_table_customer2 = (new Function("return " + data_table_customer))();
  132. // 使用刚指定的配置项和数据显示图表。
  133. _customer.setOption(data_table_customer2);
  134. }
  135. var _staff = echarts.init(document.getElementById('staff'));
  136. var data_table_staff = {{data_table_staff|safe}};
  137. if(data_table_staff){
  138. var data_table_staff2 = (new Function("return " + data_table_staff))();
  139. // 使用刚指定的配置项和数据显示图表。
  140. _staff.setOption(data_table_staff2);
  141. }
  142. var data3 = {{data3|safe}};
  143. if(data3){
  144. var _zone3 = echarts.init(document.getElementById('zone3'));
  145. var _data3 = (new Function("return " + data3))();
  146. // 使用刚指定的配置项和数据显示图表。
  147. _zone3.setOption(_data3);
  148. }
  149. var data4 = {{data4|safe}};
  150. var is_table = {{data_label.is_table|safe}}
  151. if(data4){
  152. if(!is_table) {
  153. var _zone4 = echarts.init(document.getElementById('zone4'));
  154. var _data4 = (new Function("return " + data4))();
  155. // 使用刚指定的配置项和数据显示图表。
  156. _zone4.setOption(_data4);
  157. }
  158. }
  159. var data5 = {{data5|safe}};
  160. if(data5){
  161. if(!is_table) {
  162. var _zone5 = echarts.init(document.getElementById('zone5'));
  163. var _data5 = (new Function("return " + data5))();
  164. console.log('real:', _data5);
  165. // 使用刚指定的配置项和数据显示图表。
  166. _zone5.setOption(_data5);
  167. }
  168. }
  169. var data6 = {{data6|safe}};
  170. if(data6){
  171. var _zone6 = echarts.init(document.getElementById('zone6'));
  172. var _data6 = (new Function("return " + data6))();
  173. // 使用刚指定的配置项和数据显示图表。
  174. _zone6.setOption(_data6);
  175. }
  176. // var data7 = {{data7|safe}};
  177. // if(data7){
  178. // var _zone7 = echarts.init(document.getElementById('zone7'));
  179. // var _data7 = (new Function("return " + data7))();
  180. // // 使用刚指定的配置项和数据显示图表。
  181. // _zone7.setOption(_data7);
  182. // }
  183. function click_label(level, data_id) {
  184. let start = document.getElementById('date-start').value;
  185. let end = document.getElementById('date-end').value;
  186. let url = "";
  187. if (level === 1){
  188. url = "/report/sale_account_report/" + data_id + "?s=" + start + "&e=" + end;
  189. }
  190. if (level === 2){
  191. url = "/report/sale_account_report/{{data_label.selectedID1}}/" + data_id + "?s=" + start + "&e=" + end;
  192. }
  193. if (level === 3){
  194. url = "/report/sale_account_report/{{data_label.selectedID1}}/{{data_label.selectedID2}}/" + data_id + "?s=" + start + "&e=" + end;
  195. }
  196. window.location.href = url;
  197. }
  198. </script>
  199. </body>
  200. </html>