Browse Source

:hammer: 表单tab布局支持column以及row布局

jqh 5 years ago
parent
commit
f641646279

+ 1 - 1
resources/assets/dcat/sass/components/_form.scss

@@ -198,7 +198,7 @@ select.form-control:not([multiple=multiple]) {
 }
 
 .select2-container--default .select2-selection--single .select2-selection__rendered {
-  line-height: 32px!important;
+  line-height: 28px!important;
 }
 
 .input-group-sm {

+ 14 - 3
resources/views/form/tab.blade.php

@@ -11,9 +11,20 @@
     <div class="tab-content fields-group mt-2" style="padding:18px 0">
         @foreach($tabObj->getTabs() as $tab)
             <div class="tab-pane {{ $tab['active'] ? 'active' : '' }}" id="{{ $tab['id'] }}">
-                @foreach($tab['fields'] as $field)
-                    {!! $field->render() !!}
-                @endforeach
+                @if($form->hasRows())
+                    <div class="ml-2 mb-2">
+                        <input type="hidden" name="_token" value="{{ csrf_token() }}">
+                        @foreach($form->rows() as $row)
+                            {!! $row->render() !!}
+                        @endforeach
+                    </div>
+                @elseif($form->layout()->hasColumns())
+                    {!! $form->layout()->build() !!}
+                @else
+                    @foreach($form->fields() as $field)
+                        {!! $field->render() !!}
+                    @endforeach
+                @endif
             </div>
         @endforeach
 

+ 43 - 39
resources/views/helpers/scaffold.blade.php

@@ -149,7 +149,7 @@
                             </td>
                             <td><input type="text" class="form-control" placeholder="{{trans('admin.scaffold.default')}}" name="fields[{{$index}}][default]" value="{{$field['default']}}"/></td>
                             <td><input type="text" class="form-control" placeholder="{{trans('admin.scaffold.comment')}}" name="fields[{{$index}}][comment]" value="{{$field['comment']}}" /></td>
-                            <td><button class="btn btn-sm btn-danger table-field-remove"><i class="feather icon-trash"></i></button></td>
+                            <td><button class="btn btn-sm btn-white table-field-remove"><i class="feather icon-trash"></i></button></td>
                         </tr>
                     @endforeach
                 @else
@@ -186,7 +186,7 @@
                         </td>
                         <td><input type="text" class="form-control" placeholder="{{trans('admin.scaffold.default')}}" name="fields[0][default]"></td>
                         <td><input type="text" class="form-control" placeholder="{{trans('admin.scaffold.comment')}}" name="fields[0][comment]"></td>
-                        <td><button class="btn btn-sm btn-danger table-field-remove"><i class="feather icon-trash"></i></button></td>
+                        <td><button class="btn btn-sm btn-white table-field-remove"><i class="feather icon-trash"></i></button></td>
                     </tr>
                 @endif
                 </tbody>
@@ -197,7 +197,7 @@
             <div class='form-inline d-flex justify-content-between' style="width: 100%; padding: 0 20px 12px;">
 
                 <div class='form-group'>
-                    <button type="button" class="btn btn-sm btn-success text-capitalize" id="add-table-field"><i class="feather icon-plus"></i>&nbsp;&nbsp;{{(trans('admin.scaffold.add_field'))}}</button>
+                    <button type="button" class="btn btn-sm btn-primary btn-outline text-capitalize" id="add-table-field"><i class="feather icon-plus"></i>&nbsp;&nbsp;{{(trans('admin.scaffold.add_field'))}}</button>
                 </div>
 
                 <div class="row">
@@ -261,7 +261,7 @@
         </td>
         <td><input value="{default}" type="text" class="form-control" placeholder="{{trans('admin.scaffold.default')}}" name="fields[__index__][default]"></td>
         <td><input value="{comment}" type="text" class="form-control" placeholder="{{trans('admin.scaffold.comment')}}" name="fields[__index__][comment]"></td>
-        <td><button class="btn btn-sm btn-danger table-field-remove"><i class="feather icon-trash"></i></button></td>
+        <td><button class="btn btn-sm btn-white table-field-remove"><i class="feather icon-trash"></i></button></td>
     </tr>
 </template>
 
@@ -329,44 +329,48 @@
 
             withSingularName(tb);
 
-            $.post('{{ admin_url('helpers/scaffold/table') }}', {db: db, tb: tb}, function (res) {
-                Dcat.loading(false);
-
-                if (!res.list) return;
-                var i, list = res.list, $id = $('#inputPrimaryKey'), updated, created, soft;
-
-                getTR().remove();
-                for (i in list) {
-                    if (list[i].id) {
-                        $id.val(i);
-                        continue;
-                    }
-                    if (i == 'updated_at') {
-                        updated = list[i];
-                        continue;
-                    }
-                    if (i == 'created_at') {
-                        created = list[i];
-                        continue;
-                    }
-                    if (i == 'deleted_at') {
-                        soft = list[i];
-                        continue;
+            $.post({
+                url: '{{ admin_url('helpers/scaffold/table') }}',
+                data: {db: db, tb: tb},
+                success: function (res) {
+                    Dcat.loading(false);
+
+                    if (!res.list) return;
+                    var i, list = res.list, $id = $('#inputPrimaryKey'), updated, created, soft;
+
+                    getTR().remove();
+                    for (i in list) {
+                        if (list[i].id) {
+                            $id.val(i);
+                            continue;
+                        }
+                        if (i == 'updated_at') {
+                            updated = list[i];
+                            continue;
+                        }
+                        if (i == 'created_at') {
+                            created = list[i];
+                            continue;
+                        }
+                        if (i == 'deleted_at') {
+                            soft = list[i];
+                            continue;
+                        }
+
+                        var c = helpers.replace(list[i].comment, '"', '');
+                        addField({
+                            name: i,
+                            lang: c,
+                            type: list[i].type,
+                            default: helpers.replace(list[i].default, '"', ''),
+                            comment: c,
+                            nullable: list[i].nullable != 'NO',
+                        });
                     }
 
-                    var c = helpers.replace(list[i].comment, '"', '');
-                    addField({
-                        name: i,
-                        lang: c,
-                        type: list[i].type,
-                        default: helpers.replace(list[i].default, '"', ''),
-                        comment: c,
-                        nullable: list[i].nullable != 'NO',
-                    });
+                    addTimestamps(updated, created);
+                    addSoftdelete(soft);
                 }
-
-                addTimestamps(updated, created);
-                addSoftdelete(soft);
             });
 
         });

+ 0 - 4
resources/views/widgets/form.blade.php

@@ -31,10 +31,6 @@
         @endif
     </div>
 
-    @if ($method != 'GET')
-        <input type="hidden" name="_token" value="{{ csrf_token() }}">
-    @endif
-    
     <!-- /.box-body -->
     @if($buttons['submit'] || $buttons['reset'])
     <div class="box-footer row" style="display: flex">

+ 1 - 1
src/Form/Builder.php

@@ -906,7 +906,7 @@ EOF;
             return $wrapper($view);
         }
 
-        return "<div class='card dcat-box'>{$view->render()}</div>";
+        return "<div class='card'>{$view->render()}</div>";
     }
 
     /**

+ 2 - 2
src/Form/Tools.php

@@ -182,7 +182,7 @@ class Tools implements Renderable
 
         return <<<EOT
 <div class="btn-group pull-right" style="margin-right: 5px">
-    <a href="{$this->getListPath()}" class="btn btn-sm btn-white "><i class="feather icon-list"></i><span class="d-none d-sm-inline">&nbsp;$text</span></a>
+    <a href="{$this->getListPath()}" class="btn btn-sm btn-primary "><i class="feather icon-list"></i><span class="d-none d-sm-inline">&nbsp;$text</span></a>
 </div>
 EOT;
     }
@@ -216,7 +216,7 @@ HTML;
 
         return <<<HTML
 <div class="btn-group pull-right" style="margin-right: 5px">
-    <a class="btn btn-sm btn-danger text-white" data-action="delete" data-url="{$this->getDeletePath()}" data-redirect="{$this->getListPath()}">
+    <a class="btn btn-sm btn-white" data-action="delete" data-url="{$this->getDeletePath()}" data-redirect="{$this->getListPath()}">
         <i class="feather icon-trash"></i><span class="d-none d-sm-inline"> {$delete}</span>
     </a>
 </div>

+ 2 - 2
src/Show/Tools.php

@@ -256,7 +256,7 @@ class Tools implements Renderable
 
         return <<<HTML
 <div class="btn-group pull-right btn-mini" style="margin-right: 5px">
-    <a href="{$this->getListPath()}" class="btn btn-sm btn-white ">
+    <a href="{$this->getListPath()}" class="btn btn-sm btn-primary ">
         <i class="feather icon-list"></i><span class="d-none d-sm-inline"> {$list}</span>
     </a>
 </div>
@@ -321,7 +321,7 @@ HTML;
 
         return <<<HTML
 <div class="btn-group pull-right btn-mini" style="margin-right: 5px">
-    <button class="btn btn-sm btn-danger " data-action="delete" data-url="{$this->getDeletePath()}" data-redirect="{$this->getListPath()}">
+    <button class="btn btn-sm btn-white " data-action="delete" data-url="{$this->getDeletePath()}" data-redirect="{$this->getListPath()}">
         <i class="feather icon-trash"></i><span class="d-none d-sm-inline">  {$delete}</span>
     </button>
 </div>