dcat-app.js 3.2 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 Helpers from './extensions/Helpers'
  12. import Ajax from './extensions/Ajax'
  13. import Toastr from './extensions/Toastr'
  14. import SweetAlert2 from './extensions/SweetAlert2'
  15. import RowSelector from './extensions/RowSelector'
  16. import Grid from './extensions/Grid'
  17. import Form from './extensions/Form'
  18. import DialogForm from './extensions/DialogForm'
  19. import Loading from './extensions/Loading'
  20. import PreviewImage from './extensions/PreviewImage'
  21. import AssetsLoader from './extensions/AssetsLoader'
  22. import Slider from './extensions/Slider'
  23. import Menu from './bootstrappers/Menu'
  24. import Footer from './bootstrappers/Footer'
  25. import Pjax from './bootstrappers/Pjax'
  26. import DataActions from './bootstrappers/DataActions'
  27. let win = window,
  28. $ = jQuery;
  29. // 扩展Dcat对象
  30. function extend (Dcat) {
  31. // 工具函数
  32. new Helpers(Dcat);
  33. // ajax处理相关扩展函数
  34. new Ajax(Dcat);
  35. // Toastr简化使用函数
  36. new Toastr(Dcat);
  37. // SweetAlert2简化使用函数
  38. new SweetAlert2(Dcat);
  39. // Grid相关功能函数
  40. new Grid(Dcat);
  41. // loading效果
  42. new Loading(Dcat);
  43. // 图片预览功能
  44. new PreviewImage(Dcat);
  45. // 静态资源加载器
  46. new AssetsLoader(Dcat);
  47. // 加载进度条
  48. Dcat.NP = NProgress;
  49. // 行选择器
  50. Dcat.RowSelector = function (options) {
  51. return new RowSelector(options)
  52. };
  53. // ajax表单提交
  54. Dcat.Form = function (options) {
  55. return new Form(options)
  56. };
  57. // 弹窗表单
  58. Dcat.DialogForm = function (options) {
  59. return new DialogForm(Dcat, options);
  60. };
  61. // 滑动面板
  62. Dcat.Slider = function (options) {
  63. return new Slider(Dcat, options)
  64. };
  65. }
  66. // 初始化
  67. function listen(Dcat) {
  68. // 只初始化一次
  69. Dcat.booting(() => {
  70. // ajax全局设置
  71. $.ajaxSetup({
  72. cache: true,
  73. error: Dcat.handleAjaxError
  74. });
  75. Dcat.NP.configure({parent: '.app-content'});
  76. // 滚动条优化
  77. new PerfectScrollbar('html');
  78. // 菜单点击选中效果
  79. new Menu(Dcat);
  80. // 返回顶部按钮
  81. new Footer(Dcat);
  82. // layer弹窗设置
  83. layer.config({maxmin: true, moveOut: true, shade: false});
  84. });
  85. // 每个请求都初始化
  86. Dcat.bootingEveryRequest(() => {
  87. // pjax初始化功能
  88. new Pjax(Dcat);
  89. // data-action 动作绑定(包括删除、批量删除等操作)
  90. new DataActions(Dcat);
  91. });
  92. }
  93. // 开始初始化
  94. function boot(Dcat) {
  95. extend(Dcat);
  96. listen(Dcat);
  97. $(Dcat.boot.bind(Dcat));
  98. return Dcat;
  99. }
  100. /**
  101. * @returns {Dcat}
  102. */
  103. win.CreateDcat = function(config) {
  104. return boot(new Dcat(config));
  105. };