2 changed files with 125 additions and 15 deletions
-
30app/AdminSupplier/Controllers/ProductController.php
-
110resources/views/admin/form/hasmanytable.blade.php
@ -0,0 +1,110 @@ |
|||||
|
<style> |
||||
|
.table-has-many .input-group{flex-wrap: nowrap!important} |
||||
|
</style> |
||||
|
|
||||
|
<div class="row form-group"> |
||||
|
<div class="{{$viewClass['label']}} "><label class="control-label pull-right">{!! $label !!}</label></div> |
||||
|
<div class="{{$viewClass['field']}}"> |
||||
|
@include('admin::form.error') |
||||
|
|
||||
|
<span name="{{$column}}"></span> {{-- 用于显示错误信息 --}} |
||||
|
|
||||
|
<div class="has-many-{{$columnClass}}" > |
||||
|
<table class="table table-has-many has-many-{{$columnClass}}"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
@foreach($headers as $header) |
||||
|
<th>{{ $header }}</th> |
||||
|
@endforeach |
||||
|
|
||||
|
<th class="hidden"></th> |
||||
|
|
||||
|
@if($options['allowDelete']) |
||||
|
<th></th> |
||||
|
@endif |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody class="has-many-{{$columnClass}}-forms"> |
||||
|
@foreach($forms as $pk => $form) |
||||
|
<tr class="has-many-{{$columnClass}}-form fields-group"> |
||||
|
|
||||
|
<?php $hidden = ''; ?>
|
||||
|
|
||||
|
@foreach($form->fields() as $field) |
||||
|
|
||||
|
@if (is_a($field, Dcat\Admin\Form\Field\Hidden::class)) |
||||
|
<?php $hidden .= $field->render(); ?>
|
||||
|
@continue |
||||
|
@endif |
||||
|
|
||||
|
<td>{!! $field->setLabelClass(['hidden'])->width(12, 0)->render() !!}</td> |
||||
|
@endforeach |
||||
|
|
||||
|
<td class="hidden">{!! $hidden !!}</td> |
||||
|
|
||||
|
@if($options['allowDelete']) |
||||
|
<td class="form-group"> |
||||
|
<div> |
||||
|
<div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash"></i></div> |
||||
|
</div> |
||||
|
</td> |
||||
|
@endif |
||||
|
</tr> |
||||
|
@endforeach |
||||
|
</tbody> |
||||
|
</table> |
||||
|
|
||||
|
<template class="{{$columnClass}}-tpl"> |
||||
|
<tr class="has-many-{{$columnClass}}-form fields-group"> |
||||
|
|
||||
|
{!! $template !!} |
||||
|
|
||||
|
<td class="form-group"> |
||||
|
<div> |
||||
|
<div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash"></i></div> |
||||
|
</div> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</template> |
||||
|
|
||||
|
@if($options['allowCreate']) |
||||
|
<div class="form-group row m-t-10"> |
||||
|
<div class="{{$viewClass['field']}}" style="margin-top: 8px"> |
||||
|
<div class="add btn btn-primary btn-outline btn-sm"><i class="feather icon-plus"></i> {{ trans('admin.new') }}</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
@endif |
||||
|
|
||||
|
@include('admin::form.help-block') |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{{--<hr style="margin-top: 0px;">--}} |
||||
|
|
||||
|
<script> |
||||
|
var nestedIndex = {!! $count !!}, |
||||
|
container = '.has-many-{{ $columnClass }}'; |
||||
|
|
||||
|
function replaceNestedFormIndex(value) { |
||||
|
return String(value).replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex); |
||||
|
} |
||||
|
|
||||
|
$(container).on('click', '.add', function () { |
||||
|
var tpl = $('template.{{ $columnClass }}-tpl'); |
||||
|
|
||||
|
nestedIndex++; |
||||
|
|
||||
|
var template = replaceNestedFormIndex(tpl.html()); |
||||
|
$('.has-many-{{ $columnClass }}-forms').append(template); |
||||
|
}); |
||||
|
|
||||
|
$(container).on('click', '.remove', function () { |
||||
|
var $form = $(this).closest('.has-many-{{ $columnClass }}-form'); |
||||
|
|
||||
|
$form.hide(); |
||||
|
$form.find('[required]').prop('required', false); |
||||
|
$form.find('.{{ Dcat\Admin\Form\NestedForm::REMOVE_FLAG_CLASS }}').val(1); |
||||
|
}); |
||||
|
</script> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue