Преглед изворни кода

hasMany以及array表单支持嵌套table

jiangqh пре 3 година
родитељ
комит
451a35bbf5
2 измењених фајлова са 26 додато и 24 уклоњено
  1. 13 13
      resources/views/form/hasmany.blade.php
  2. 13 11
      resources/views/form/hasmanytable.blade.php

+ 13 - 13
resources/views/form/hasmany.blade.php

@@ -17,12 +17,12 @@
                 {!! $form->render() !!}
 
                 @if($options['allowDelete'])
-                <div class="form-group row">
-                    <label class="{{$viewClass['label']}} control-label"></label>
-                    <div class="{{$viewClass['field']}}">
-                        <div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash">&nbsp;</i>{{ trans('admin.remove') }}</div>
+                    <div class="form-group row">
+                        <label class="{{$viewClass['label']}} control-label"></label>
+                        <div class="{{$viewClass['field']}}">
+                            <div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash">&nbsp;</i>{{ trans('admin.remove') }}</div>
+                        </div>
                     </div>
-                </div>
                 @endif
                 <hr>
             </div>
@@ -39,7 +39,7 @@
             <div class="form-group row">
                 <label class="{{$viewClass['label']}} control-label"></label>
                 <div class="{{$viewClass['field']}}">
-                    <div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash"></i>&nbsp;{{ trans('admin.remove') }}</div>
+                    <div class="{{$columnClass}}-remove btn btn-white btn-sm pull-right"><i class="feather icon-trash"></i>&nbsp;{{ trans('admin.remove') }}</div>
                 </div>
             </div>
             <hr>
@@ -47,12 +47,12 @@
     </template>
 
     @if($options['allowCreate'])
-    <div class="form-group row">
-        <label class="{{$viewClass['label']}} control-label"></label>
-        <div class="{{$viewClass['field']}}">
-            <div class="add btn btn-primary btn-outline btn-sm"><i class="feather icon-plus"></i>&nbsp;{{ trans('admin.new') }}</div>
+        <div class="form-group row">
+            <label class="{{$viewClass['label']}} control-label"></label>
+            <div class="{{$viewClass['field']}}">
+                <div class="{{$columnClass}}-add btn btn-primary btn-outline btn-sm"><i class="feather icon-plus"></i>&nbsp;{{ trans('admin.new') }}</div>
+            </div>
         </div>
-    </div>
     @endif
 
 </div>
@@ -66,7 +66,7 @@
         return String(value).replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex);
     }
 
-    $(container).on('click', '.add', function () {
+    $(container).on('click', '.{{$columnClass}}-add', function () {
 
         var tpl = $('template.{{ $columnClass }}-tpl');
 
@@ -76,7 +76,7 @@
         $(forms).append(template);
     });
 
-    $(container).on('click', '.remove', function () {
+    $(container).on('click', '.{{$columnClass}}-remove', function () {
         var $form = $(this).closest('.has-many-{{ $columnClass  }}-form');
         $form.hide();
         $form.find('.{{ Dcat\Admin\Form\NestedForm::REMOVE_FLAG_CLASS }}').val(1);

+ 13 - 11
resources/views/form/hasmanytable.blade.php

@@ -9,8 +9,8 @@
 
         <span name="{{$column}}"></span> {{-- 用于显示错误信息 --}}
 
-        <div class="has-many-{{$columnClass}}" >
-            <table class="table table-has-many has-many-{{$columnClass}}">
+        <div class="has-many-table-{{$columnClass}}" >
+            <table class="table table-has-many has-many-table-{{$columnClass}}">
                 <thead>
                 <tr>
                     @foreach($headers as $header)
@@ -24,9 +24,9 @@
                     @endif
                 </tr>
                 </thead>
-                <tbody class="has-many-{{$columnClass}}-forms">
+                <tbody class="has-many-table-{{$columnClass}}-forms">
                 @foreach($forms as $pk => $form)
-                    <tr class="has-many-{{$columnClass}}-form fields-group">
+                    <tr class="has-many-table-{{$columnClass}}-form fields-group">
 
                         <?php $hidden = ''; ?>
 
@@ -55,7 +55,7 @@
             </table>
 
             <template class="{{$columnClass}}-tpl">
-                <tr class="has-many-{{$columnClass}}-form fields-group">
+                <tr class="has-many-table-{{$columnClass}}-form fields-group">
 
                     {!! $template !!}
 
@@ -75,7 +75,6 @@
                 </div>
             @endif
         </div>
-        @include('admin::form.help-block')
     </div>
 </div>
 
@@ -83,23 +82,26 @@
 
 <script>
     var nestedIndex = {!! $count !!},
-        container = '.has-many-{{ $columnClass }}';
+        container = '.has-many-table-{{ $columnClass }}';
 
     function replaceNestedFormIndex(value) {
         return String(value).replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex);
     }
 
-    $(container).on('click', '.add', function () {
+    $(document).off('click', container+' .add').on('click', container+' .add', function (e) {
         var tpl = $('template.{{ $columnClass }}-tpl');
 
         nestedIndex++;
 
         var template = replaceNestedFormIndex(tpl.html());
-        $('.has-many-{{ $columnClass }}-forms').append(template);
+        $(this).closest(container).find('.has-many-table-{{ $columnClass }}-forms').append(template);
+
+        e.preventDefault();
+        return false
     });
 
-    $(container).on('click', '.remove', function () {
-        var $form = $(this).closest('.has-many-{{ $columnClass }}-form');
+    $(document).off('click', container+' .remove').on('click', container+' .remove', function () {
+        var $form = $(this).closest('.has-many-table-{{ $columnClass }}-form');
 
         $form.hide();
         $form.find('[required]').prop('required', false);