datatable.blade.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <script type="text/html" id="toolbar">
  2. <span class="data-attr-{{ $dataId }}" style="display:none" @verbatim{{# layui.each(d, function(index, item){ }}data-{{ index }}="{{ item }}"{{# }); }}@endverbatim ></span>
  3. @if($dataToolBar!=-1)
  4. @foreach ($dataToolBar as $tool)
  5. <a class="layui-btn layui-btn-sm {{ $tool }}" lay-event="detail" pid="{{ $primaryKey }}" uri="/{{S('MODULE')}}/{{S('CONTROLLER')}}/{{$tool}}/?{{$primaryKey}}=" href="/{{S('MODULE')}}/{{S('CONTROLLER')}}/{{$tool}}/?{{$primaryKey}}=@verbatim{{ d.@endverbatim {{$primaryKey}} @verbatim}}@endverbatim">@if (trans($dataTableLang.'.'.$tool)==$dataTableLang.'.'.$tool) {{ trans('common.'.$tool) }} @else {{ trans($dataTableLang.'.'.$tool) }} @endif</a>
  6. @endforeach
  7. @endif
  8. </script>
  9. <table class="layui-hide" id="{{ $dataId }}" lay-filter="{{ $dataId }}"></table>
  10. <style>
  11. .layui-table-view .layui-table {
  12. position: relative;
  13. width: 100%;
  14. margin: 0px;
  15. }
  16. .layui-form{
  17. height: auto !important;
  18. }
  19. .layui-table-cell{
  20. padding: 0px 12px;
  21. }
  22. </style>
  23. <script>
  24. function initcss(){
  25. let height = $(".container .layui-col-xs12 .layui-row form").height();
  26. $(".container .layui-border-box").css('margin-top', height+2);
  27. //$(".layui-tab-content").height("100%");
  28. }
  29. function loadCols()
  30. {
  31. var cols= @json($dataCols);
  32. try{
  33. cols=optCols($cols);
  34. }catch(ex){
  35. }
  36. return cols;
  37. }
  38. function loadData(){
  39. return ;
  40. }
  41. /**
  42. * 初始化where条件
  43. **/
  44. function initLoadWhere(){
  45. var list={};
  46. $('*[eventType=event-query]').each(function(index,item){
  47. var field=$(this).attr('name');
  48. var value=$(this).val();
  49. try{
  50. list[field]=filterWhere(field,value);
  51. }catch(ex){
  52. list[field]=value;
  53. }
  54. list[field]=value;
  55. });
  56. return list;
  57. }
  58. var tab;
  59. var pid='{{ $primaryKey }}';
  60. layui.use(['table','form','tree','laydate'], function(){
  61. table = layui.table ,
  62. form = layui.form,
  63. laydate = layui.laydate //日期;
  64. //展示已知数据
  65. var tableIns=table.render({
  66. elem: '#{{ $dataId }} '
  67. // ,height: 'full-150'
  68. // ,cellMinWidth: 100
  69. ,cellMinWidth: 50
  70. ,url:'{!! $dataUri !!}'
  71. ,where:initLoadWhere()
  72. ,cols:loadCols()
  73. ,cellMinWidth: 80
  74. //,skin: 'line' //表格风格
  75. ,even: true
  76. ,id:'{{ $dataId }}'
  77. ,page: true //是否显示分页
  78. ,limits: [5, 7, 10,20,30,50,100,200,500,1000,2000]
  79. ,limit: 50 //每页默认显示的数量
  80. ,done: function(res, curr, count){
  81. initcss();
  82. // var width = $('.layui-table').find('th .layui-table-cell').width();
  83. //
  84. // width = parseFloat(width);
  85. // $('.layui-table').find('.layui-table-cell').width(width-3)
  86. try{
  87. dataTableLoadFinished(res,curr,count);
  88. }catch(ex){}
  89. tab=tableIns;
  90. }
  91. });
  92. table.on('sort({{ $dataId }})', function(obj){
  93. table.reload('{{ $dataId }}', {
  94. page: {
  95. curr: 1 //重新从第 1 页开始
  96. }
  97. ,initSort: obj
  98. ,where: {
  99. field: obj.field
  100. ,order: obj.type
  101. }
  102. });
  103. });
  104. table.on('edit({{ $dataId }})', function(obj){
  105. var value = obj.value //得到修改后的值
  106. ,data = obj.data //得到所在行所有键值
  107. ,field = obj.field; //得到字段
  108. try{
  109. editlineOpt(data.id,field,value);
  110. }catch(ex){
  111. editLine('/{{S('MODULE')}}/{{S('CONTROLLER')}}/editCols?id='+data.id+'&field='+field+'&value='+value,'{{ trans("common.editline") }}');
  112. }
  113. });
  114. form.on('switch({{ $dataId }})', function(obj){
  115. try{
  116. switchOpt(obj);
  117. }catch(ex){}
  118. });
  119. form.on('checkbox({{ $dataId }})', function(obj){
  120. try{
  121. checkboxOpt(obj);
  122. }catch(ex){}
  123. });
  124. table.on('checkbox({{ $dataId }})', function(obj){
  125. if(g.currentDataTableIdArray==undefined){
  126. g.currentDataTableIdArray=[];
  127. }
  128. if(obj.checked){
  129. if(obj.type=='all'){
  130. var checkStatus = table.checkStatus('{{ $dataId }}'),data = checkStatus.data;
  131. for (x in data)
  132. {
  133. g.currentDataTableIdArray.push(data[x][pid]);
  134. }
  135. }else{
  136. g.currentDataTableIdArray.push(obj.data[pid]);
  137. }
  138. }else{
  139. var id=obj.data[pid];
  140. var index=$.inArray(id,g.currentDataTableIdArray);
  141. if(index!=-1){
  142. g.currentDataTableIdArray.splice(index,1);
  143. }
  144. }
  145. g.currentDataTableIds=g.currentDataTableIdArray.join(',');
  146. console.log(g.currentDataTableIds);
  147. });
  148. //获取今日号
  149. var data=new Date();
  150. var m=data.getMonth();
  151. m=m+1;
  152. var d=data.getDate();
  153. var y=data.getFullYear();
  154. var now=y+'-'+m+'-'+d;
  155. var obj='{"'+now+'":"今天"}';
  156. var obj=JSON.parse(obj);
  157. //同时绑定多个
  158. lay('.test-item').each(function(){
  159. laydate.render({
  160. elem: this
  161. ,type: 'date'
  162. ,trigger: 'click'
  163. ,btns:['now']
  164. ,mark:obj
  165. ,done: function(value, date){
  166. $('.lay-btn-diy').click();
  167. }
  168. });
  169. });
  170. @stack('dataTableJS')
  171. g.currentDataTable=table;
  172. var _dataTableReload = {
  173. reload: function(){
  174. //执行重载
  175. table.reload('{{ $dataId }}', {
  176. page: {
  177. curr: 1 //重新从第 1 页开始
  178. }
  179. ,where: initLoadWhere()
  180. });
  181. }
  182. };
  183. g.currentDataTableReload=_dataTableReload;
  184. $('*[eventType=event-query-submit]').on('click', function(){
  185. $('*[eventType=eventForm]').submit();
  186. // _dataTableReload['reload'] ? _dataTableReload['reload'].call(this) : '';
  187. });
  188. function tableReload(obj){
  189. _dataTableReload['reload'] ? _dataTableReload['reload'].call(null) : '';
  190. }
  191. });
  192. </script>