select.blade.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. @overwrite
  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. target.find("option").remove();
  48. $.ajax("{!! $load['url'].(strpos($load['url'],'?')?'&':'?') !!}q="+this.value).then(function (data) {
  49. $.map(data, function (d) {
  50. target.append(new Option(d.{{ $load['textField'] }}, d.{{ $load['idField'] }}, false, false));
  51. });
  52. target.val(String(target.attr('data-value')).split(',')).trigger('change');
  53. });
  54. });
  55. $(selector).trigger('change');
  56. </script>
  57. @endif
  58. @overwrite
  59. @section('admin.select-lang')
  60. @if (config('app.locale') !== 'en')
  61. {{--本地化--}}
  62. <script once>
  63. @php
  64. $lang = trans('select2') ?: [];
  65. $locale = str_replace('_', '-', config('app.locale'));
  66. @endphp
  67. if ($.fn.select2) {
  68. var e = $.fn.select2.amd;
  69. e.define("select2/i18n/{{ $locale }}", [], function () {
  70. return {
  71. errorLoading: function () {
  72. return "{{ $lang['error_loading'] ?? '' }}"
  73. }, inputTooLong: function (e) {
  74. return "{{ $lang['input_too_long'] ?? '' }}".replace(':num', e.input.length - e.maximum)
  75. }, inputTooShort: function (e) {
  76. return "{{ $lang['input_too_short'] ?? '' }}".replace(':num', e.minimum - e.input.length)
  77. }, loadingMore: function () {
  78. return "{{ $lang['loading_more'] ?? '' }}"
  79. }, maximumSelected: function (e) {
  80. return "{{ $lang['maximum_selected'] ?? '' }}".replace(':num', e.maximum)
  81. }, noResults: function () {
  82. return "{{ $lang['no_results'] ?? '' }}"
  83. }, searching: function () {
  84. return "{{ $lang['searching'] ?? '' }}"
  85. }
  86. }
  87. }), {define: e.define, require: e.require}
  88. }
  89. </script>
  90. @endif
  91. @overwrite