dcat-app.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*=========================================================================================
  2. File Name: app.js
  3. Description: Dcat Admin JS脚本.
  4. ----------------------------------------------------------------------------------------
  5. Item Name: Dcat Admin
  6. Author: Jqh
  7. Author URL: https://github.com/jqhph
  8. ==========================================================================================*/
  9. import Dcat from './Dcat'
  10. import NProgress from './NProgress/NProgress.min'
  11. import Ajax from './extensions/Ajax'
  12. import Toastr from './extensions/Toastr'
  13. import SweetAlert2 from './extensions/SweetAlert2'
  14. import RowSelector from './extensions/RowSelector'
  15. import Grid from './extensions/Grid'
  16. import Form from './extensions/Form'
  17. import DialogForm from './extensions/DialogForm'
  18. import Loading from './extensions/Loading'
  19. import AssetsLoader from './extensions/AssetsLoader'
  20. import Slider from './extensions/Slider'
  21. import Color from './extensions/Color'
  22. import Validator from './extensions/Validator'
  23. import DarkMode from './extensions/DarkMode'
  24. import Menu from './bootstrappers/Menu'
  25. import Footer from './bootstrappers/Footer'
  26. import Pjax from './bootstrappers/Pjax'
  27. import DataActions from './bootstrappers/DataActions'
  28. let win = window,
  29. $ = jQuery;
  30. // 扩展Dcat对象
  31. function extend (Dcat) {
  32. // ajax处理相关扩展函数
  33. new Ajax(Dcat);
  34. // Toastr简化使用函数
  35. new Toastr(Dcat);
  36. // SweetAlert2简化使用函数
  37. new SweetAlert2(Dcat);
  38. // Grid相关功能函数
  39. new Grid(Dcat);
  40. // loading效果
  41. new Loading(Dcat);
  42. // 静态资源加载器
  43. new AssetsLoader(Dcat);
  44. // 颜色管理
  45. new Color(Dcat);
  46. // 表单验证器
  47. new Validator(Dcat);
  48. // 黑色主题切换
  49. new DarkMode(Dcat);
  50. // 加载进度条
  51. Dcat.NP = NProgress;
  52. // 行选择器
  53. Dcat.RowSelector = function (options) {
  54. return new RowSelector(options)
  55. };
  56. // ajax表单提交
  57. Dcat.Form = function (options) {
  58. return new Form(options)
  59. };
  60. // 弹窗表单
  61. Dcat.DialogForm = function (options) {
  62. return new DialogForm(Dcat, options);
  63. };
  64. // 滑动面板
  65. Dcat.Slider = function (options) {
  66. return new Slider(Dcat, options)
  67. };
  68. }
  69. // 初始化
  70. function listen(Dcat) {
  71. // 只初始化一次
  72. Dcat.booting(() => {
  73. Dcat.NP.configure({parent: '.app-content'});
  74. // layer弹窗设置
  75. layer.config({maxmin: true, moveOut: true, shade: false});
  76. //////////////////////////////////////////////////////////
  77. // 菜单点击选中效果
  78. new Menu(Dcat);
  79. // 返回顶部按钮
  80. new Footer(Dcat);
  81. // data-action 动作绑定(包括删除、批量删除等操作)
  82. new DataActions(Dcat);
  83. });
  84. // 每个请求都初始化
  85. Dcat.bootingEveryRequest(() => {
  86. // ajax全局设置
  87. $.ajaxSetup({
  88. cache: true,
  89. error: Dcat.handleAjaxError,
  90. headers: {
  91. 'X-CSRF-TOKEN': Dcat.token
  92. }
  93. });
  94. // pjax初始化功能
  95. new Pjax(Dcat);
  96. });
  97. }
  98. function prepare(Dcat) {
  99. extend(Dcat);
  100. listen(Dcat);
  101. return Dcat;
  102. }
  103. /**
  104. * @returns {Dcat}
  105. */
  106. win.CreateDcat = function(config) {
  107. return prepare(new Dcat(config));
  108. };