dcat-app.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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 Menu from './bootstrappers/Menu'
  21. import Footer from './bootstrappers/Footer'
  22. import Pjax from './bootstrappers/Pjax'
  23. import DataActions from './bootstrappers/DataActions'
  24. let win = window,
  25. $ = jQuery;
  26. // 扩展Dcat对象
  27. function extend (Dcat) {
  28. new Helpers(Dcat);
  29. new Ajax(Dcat);
  30. new Toastr(Dcat);
  31. new SweetAlert2(Dcat);
  32. new Grid(Dcat);
  33. new Loading(Dcat);
  34. // NProgress
  35. Dcat.NP = NProgress;
  36. // 行选择器
  37. Dcat.RowSelector = function (options) {
  38. return new RowSelector(options)
  39. };
  40. // ajax表单提交
  41. Dcat.Form = function (options) {
  42. return new Form(options)
  43. };
  44. // 弹窗表单
  45. Dcat.DialogForm = function (options) {
  46. return new DialogForm(Dcat, options);
  47. };
  48. // 滑动窗
  49. Dcat.Slider = function (options) {
  50. };
  51. }
  52. // 初始化
  53. function listen(Dcat) {
  54. // 只初始化一次
  55. Dcat.booting(() => {
  56. // 菜单点击选中效果
  57. new Menu(Dcat);
  58. // 返回顶部按钮
  59. new Footer(Dcat);
  60. // layer弹窗设置
  61. layer.config({maxmin: true, moveOut: true, shade: false});
  62. // ajax全局设置
  63. $.ajaxSetup({
  64. cache: true,
  65. error: Dcat.handleAjaxError
  66. });
  67. Dcat.NP.configure({parent: '.app-content'});
  68. });
  69. // 每个请求都初始化
  70. Dcat.bootingEveryRequest(() => {
  71. // pjax初始化功能
  72. new Pjax(Dcat);
  73. // data-action 动作绑定
  74. new DataActions(Dcat);
  75. });
  76. }
  77. // 开始初始化
  78. function boot(Dcat) {
  79. extend(Dcat);
  80. listen(Dcat);
  81. $(Dcat.boot.bind(Dcat));
  82. return Dcat;
  83. }
  84. win.CreateDcat = function(config) {
  85. return boot(new Dcat(config));
  86. };