select.blade.php 3.5 KB

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