datatablev254.blade.php 6.7 KB

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