jqh 4 лет назад
Родитель
Сommit
c7c710282f
1 измененных файлов с 15 добавлено и 12 удалено
  1. 15 12
      resources/views/form/tree.blade.php

+ 15 - 12
resources/views/form/tree.blade.php

@@ -1,15 +1,15 @@
 <div class="{{$viewClass['form-group']}}">
 
-    <label for="{{$id}}" class="{{$viewClass['label']}} control-label">{!! $label !!}</label>
+    <label class="{{$viewClass['label']}} control-label">{!! $label !!}</label>
 
-    <div class="{{$viewClass['field']}}">
+    <div id="{{ $id }}" class="{{$viewClass['field']}}">
 
         @include('admin::form.error')
 
         <div class="input-group" style="width:100%">
-            <input {{$disabled}} {!! $attributes !!} name="{{$name}}" />
+            <input {{$disabled}} {!! $attributes !!} class="hidden-input" name="{{$name}}" />
 
-            <div class="jstree-wrapper {{$class}}-tree-wrapper">
+            <div class="jstree-wrapper">
                 <div class="d-flex">
                     {!! $checkboxes !!}
                 </div>
@@ -23,25 +23,28 @@
 </div>
 
 <script require="@jstree">
-    var $tree = $('.{{ $class }}-tree-wrapper').find('.da-tree'),
-        $input = $('input[name="{{$name}}"].{{ $class }}'),
+    var selector = replaceNestedFormIndex('#{{ $id }}'),
+        tree = selector+' .jstree-wrapper .da-tree',
+        $tree = $(tree),
+        $input = $(selector+' .hidden-input'),
         opts = {!! $options !!},
         parents = {!! $parents !!};
 
     opts.core = opts.core || {};
     opts.core.data = {!! $nodes !!};
 
-    $(document).on("click", ".{{$class}}-tree-wrapper input[value=1]", function () {
-        $tree.jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
+    $(document).on("click", selector+" input[value=1]", function () {
+        $(this).parents('.jstree-wrapper').find('.da-tree').jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
     });
-    $(document).on("click", ".{{$class}}-tree-wrapper input[value=2]", function () {
-        $tree.jstree($(this).prop("checked") ? "open_all" : "close_all");
+    $(document).on("click", selector+" input[value=2]", function () {
+        $(this).parents('.jstree-wrapper').find('.da-tree').jstree($(this).prop("checked") ? "open_all" : "close_all");
     });
 
     $tree.on("changed.jstree", function (e, data) {
+        var i, selected = [];
+
         $input.val('');
 
-        var i, selected = [];
         for (i in data.selected) {
             if (Dcat.helpers.inObject(parents, data.selected[i])) { // 过滤父节点
                 continue;
@@ -51,6 +54,6 @@
 
         selected.length && $input.val(selected.join(','));
     }).on("loaded.jstree", function () {
-        @if($expand) $tree.jstree('open_all'); @endif
+        @if($expand) $(this).jstree('open_all'); @endif
     }).jstree(opts);
 </script>