HasAssets.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace Dcat\Admin\Traits;
  3. use Dcat\Admin\Support\Helper;
  4. trait HasAssets
  5. {
  6. /**
  7. * @var array
  8. */
  9. protected static $html = [];
  10. /**
  11. * @param string $html
  12. *
  13. * @return null|string
  14. */
  15. public static function html($html = '')
  16. {
  17. if (! empty($html)) {
  18. static::$html = array_merge(
  19. static::$html,
  20. array_map([Helper::class, 'render'], (array) $html)
  21. );
  22. return;
  23. }
  24. return implode('', array_unique(static::$html));
  25. }
  26. /**
  27. * @return \Dcat\Admin\Layout\Asset
  28. */
  29. public static function asset()
  30. {
  31. return app('admin.asset');
  32. }
  33. /**
  34. * @param string $name
  35. *
  36. * @return void
  37. */
  38. public static function collectAssets(string $name)
  39. {
  40. static::asset()->collect($name);
  41. }
  42. /**
  43. * Add css.
  44. *
  45. * @param string|array $css
  46. *
  47. * @return void
  48. */
  49. public static function css($css)
  50. {
  51. static::asset()->css($css);
  52. }
  53. /**
  54. * Set base css.
  55. *
  56. * @param array $css
  57. *
  58. * @return array|void
  59. */
  60. public static function baseCss(array $css)
  61. {
  62. static::asset()->baseCss($css);
  63. }
  64. /**
  65. * Add js.
  66. *
  67. * @param string|array $js
  68. *
  69. * @return void
  70. */
  71. public static function js($js)
  72. {
  73. static::asset()->js($js);
  74. }
  75. /**
  76. * Add js.
  77. *
  78. * @param string|array $js
  79. *
  80. * @return void
  81. */
  82. public static function headerJs($js)
  83. {
  84. static::asset()->headerJs($js);
  85. }
  86. /**
  87. * Set base js.
  88. *
  89. * @param array $js
  90. *
  91. * @return void
  92. */
  93. public static function baseJs(array $js)
  94. {
  95. static::asset()->baseJs($js);
  96. }
  97. /**
  98. * @param string $script
  99. * @param bool $direct
  100. *
  101. * @return void
  102. */
  103. public static function script($script, bool $direct = false)
  104. {
  105. static::asset()->script($script, $direct);
  106. }
  107. /**
  108. * @param string $style
  109. *
  110. * @return void
  111. */
  112. public static function style($style)
  113. {
  114. static::asset()->style($style);
  115. }
  116. /**
  117. * @param string|array $font
  118. *
  119. * @return void
  120. */
  121. public static function fonts($font)
  122. {
  123. static::asset()->fonts = $font;
  124. }
  125. }