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.
76 lines
2.3 KiB
76 lines
2.3 KiB
<script> |
|
@section('admin.select-ajax') |
|
@if(isset($ajax)) |
|
configs = $.extend(configs, { |
|
ajax: { |
|
url: "{{ $ajax['url'] }}", |
|
dataType: 'json', |
|
delay: 250, |
|
data: function (params) { |
|
return { |
|
q: params.term, |
|
page: params.page |
|
}; |
|
}, |
|
processResults: function (data, params) { |
|
params.page = params.page || 1; |
|
|
|
return { |
|
results: $.map(data.data, function (d) { |
|
d.id = d.{{ $ajax['idField'] }}; |
|
d.text = d.{{ $ajax['textField'] }}; |
|
return d; |
|
}), |
|
pagination: { |
|
more: data.next_page_url |
|
} |
|
}; |
|
}, |
|
cache: true |
|
}, |
|
escapeMarkup: function (markup) { |
|
return markup; |
|
} |
|
}); |
|
@endif |
|
@overwrite |
|
</script> |
|
|
|
|
|
@if(isset($loads)) |
|
{{--loads联动--}} |
|
<script once> |
|
var selector = '{!! $selector !!}'; |
|
|
|
var fields = '{!! $loads['fields'] !!}'.split('^'); |
|
var urls = '{!! $loads['urls'] !!}'.split('^'); |
|
|
|
$(document).off('change', selector); |
|
$(document).on('change', selector, function () { |
|
Dcat.helpers.loadFields(this, { |
|
group: '{{ $loads['group'] ?? '.fields-group' }}', |
|
urls: urls, |
|
fields: fields, |
|
textField: "{{ $loads['textField'] }}", |
|
idField: "{{ $loads['idField'] }}", |
|
}); |
|
}); |
|
$(selector).trigger('change'); |
|
</script> |
|
@endif |
|
|
|
<script once> |
|
// on first focus (bubbles up to document), open the menu |
|
$(document).off('focus', '.select2-selection.select2-selection--single') |
|
.on('focus', '.select2-selection.select2-selection--single', function (e) { |
|
$(this).closest(".select2-container").siblings('select:enabled').select2('open'); |
|
}); |
|
|
|
// steal focus during close - only capture once and stop propogation |
|
$(document).off('select2:closing', 'select.select2') |
|
.on('select2:closing', 'select.select2', function (e) { |
|
$(e.target).data("select2").$selection.one('focus focusin', function (e) { |
|
e.stopPropagation(); |
|
}); |
|
}); |
|
</script>
|
|
|