You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.0 KiB
112 lines
4.0 KiB
<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-table-{{$columnClass}}" > |
|
<table class="table table-has-many has-many-table-{{$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-table-{{$columnClass}}-forms"> |
|
@foreach($forms as $pk => $form) |
|
<tr class="has-many-table-{{$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-table-{{$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 |
|
</div> |
|
</div> |
|
</div> |
|
|
|
{{--<hr style="margin-top: 0px;">--}} |
|
|
|
<script> |
|
(function () { |
|
var nestedIndex = {!! $count !!}, |
|
container = '.has-many-table-{{ $columnClass }}'; |
|
|
|
function replaceNestedFormIndex(value) { |
|
return String(value).replace(/{{ $parentKey ?: Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex); |
|
} |
|
|
|
$(document).off('click', container+' .add').on('click', container+' .add', function (e) { |
|
var $con = $(this).closest(container); |
|
var tpl = $con.find('template.{{ $columnClass }}-tpl'); |
|
|
|
nestedIndex++; |
|
|
|
$con.find('.has-many-table-{{ $columnClass }}-forms').append(replaceNestedFormIndex(tpl.html())); |
|
|
|
e.preventDefault(); |
|
return false |
|
}); |
|
|
|
$(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); |
|
$form.find('.{{ Dcat\Admin\Form\NestedForm::REMOVE_FLAG_CLASS }}').val(1); |
|
}); |
|
})(); |
|
</script>
|
|
|