select.blade.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <script>
  2. @section('admin.select-ajax')
  3. @if(isset($ajax))
  4. configs = $.extend(configs, {
  5. ajax: {
  6. url: "{{ $ajax['url'] }}",
  7. dataType: 'json',
  8. delay: 250,
  9. data: function (params) {
  10. return {
  11. q: params.term,
  12. page: params.page
  13. };
  14. },
  15. processResults: function (data, params) {
  16. params.page = params.page || 1;
  17. return {
  18. results: $.map(data.data, function (d) {
  19. d.id = d.{{ $ajax['idField'] }};
  20. d.text = d.{{ $ajax['textField'] }};
  21. return d;
  22. }),
  23. pagination: {
  24. more: data.next_page_url
  25. }
  26. };
  27. },
  28. cache: true
  29. },
  30. escapeMarkup: function (markup) {
  31. return markup;
  32. }
  33. });
  34. @endif
  35. @endsection
  36. </script>
  37. @section('admin.select-load')
  38. @if(isset($load))
  39. <script once>
  40. var selector = '{!! $selector !!}';
  41. $(document).off('change', selector);
  42. $(document).on('change', selector, function () {
  43. var target = $(this).closest('{{ $load['group'] ?? '.fields-group' }}').find(".{{ $load['class'] }}");
  44. if (String(this.value) !== '0' && ! this.value) {
  45. return;
  46. }
  47. $.ajax("{{ $load['url'] }}?q="+this.value).then(function (data) {
  48. target.find("option").remove();
  49. $(target).select2({
  50. data: $.map(data, function (d) {
  51. d.id = d.{{ $load['idField'] }};
  52. d.text = d.{{ $load['textField'] }};
  53. return d;
  54. })
  55. }).val(target.attr('data-value').split(',')).trigger('change');
  56. });
  57. });
  58. $(selector).trigger('change');
  59. </script>
  60. @endif
  61. @endsection
  62. @section('admin.select-lang')
  63. @if (config('app.locale') !== 'en')
  64. {{--本地化--}}
  65. <script once>
  66. @php
  67. $lang = trans('select2');
  68. $locale = config('app.locale');
  69. @endphp
  70. if ($.fn.select2) {
  71. var e = $.fn.select2.amd;
  72. e.define("select2/i18n/{{ $locale }}", [], function () {
  73. return {
  74. errorLoading: function () {
  75. return "{{ $lang['error_loading'] }}"
  76. }, inputTooLong: function (e) {
  77. return "{{ $lang['input_too_long'] }}".replace(':num', e.input.length - e.maximum)
  78. }, inputTooShort: function (e) {
  79. return "{{ $lang['input_too_short'] }}".replace(':num', e.minimum - e.input.length)
  80. }, loadingMore: function () {
  81. return "{{ $lang['loading_more'] }}"
  82. }, maximumSelected: function (e) {
  83. return "{{ $lang['maximum_selected'] }}".replace(':num', e.maximum)
  84. }, noResults: function () {
  85. return "{{ $lang['no_results'] }}"
  86. }, searching: function () {
  87. return "{{ $lang['searching'] }}"
  88. }
  89. }
  90. }), {define: e.define, require: e.require}
  91. }
  92. </script>
  93. @endif
  94. @endsection