tree.blade.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <div class="{{$viewClass['form-group']}} {!! !$errors->has($errorKey) ? '' : 'has-error' !!}">
  2. <label for="{{$id}}" class="{{$viewClass['label']}} control-label">{!! $label !!}</label>
  3. <div class="{{$viewClass['field']}}">
  4. @include('admin::form.error')
  5. <div class="input-group" style="width:100%">
  6. <input {{$disabled}} {!! $attributes !!} name="{{$name}}" />
  7. <div class="jstree-wrapper {{$class}}-tree-wrapper">
  8. {!! $checkboxes !!}
  9. <div class="da-tree" style="margin-top:10px"></div>
  10. </div>
  11. </div>
  12. @include('admin::form.help-block')
  13. </div>
  14. </div>
  15. @php
  16. $formId = $formId ? '#'.$formId : '';
  17. @endphp
  18. <script data-exec-on-popstate>
  19. LA.ready(function () {
  20. var $tree = $('{!!$formId !!} .{{$class}}-tree-wrapper').find('.da-tree'),
  21. opts = {!! $options !!},
  22. $input = $('{!!$formId !!} input[name="{{$name}}"]'),
  23. parents = {!! $parents !!};
  24. opts.core = opts.core || {};
  25. opts.core.data = {!! $nodes !!};
  26. $(document).on("click", "{!!$formId !!} .{{$class}}-tree-wrapper input[value=1]", function () {
  27. $tree.jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
  28. });
  29. $(document).on("click", "{!!$formId !!} .{{$class}}-tree-wrapper input[value=2]", function () {
  30. $tree.jstree($(this).prop("checked") ? "open_all" : "close_all");
  31. });
  32. $tree.on("changed.jstree", function (e, data) {
  33. $input.val('');
  34. var i, selected = [];
  35. for (i in data.selected) {
  36. if (LA.arr.in(parents, data.selected[i])) { // 过滤父节点
  37. continue;
  38. }
  39. selected.push(data.selected[i]);
  40. }
  41. selected.length && $input.val(selected.join(','));
  42. }).on("loaded.jstree", function () {
  43. @if($expand) $tree.jstree('open_all'); @endif
  44. }).jstree(opts);
  45. });
  46. </script>