4
0
Fork 0
dcat-admin/resources/assets/dcat/js/dcat-app.js

128 lines
3.3 KiB
PHP

/*=========================================================================================
File Name: app.js
Description: Dcat Admin JS脚本.
----------------------------------------------------------------------------------------
Item Name: Dcat Admin
Author: Jqh
Author URL: https://github.com/jqhph
==========================================================================================*/
import Dcat from './Dcat'
import NProgress from './NProgress/NProgress.min'
import Ajax from './extensions/Ajax'
import Toastr from './extensions/Toastr'
import SweetAlert2 from './extensions/SweetAlert2'
import RowSelector from './extensions/RowSelector'
import Grid from './extensions/Grid'
import Form from './extensions/Form'
import DialogForm from './extensions/DialogForm'
import Loading from './extensions/Loading'
import AssetsLoader from './extensions/AssetsLoader'
import Slider from './extensions/Slider'
import Color from './extensions/Color'
import Validator from './extensions/Validator'
import DarkMode from './extensions/DarkMode'
import Menu from './bootstrappers/Menu'
import Footer from './bootstrappers/Footer'
import Pjax from './bootstrappers/Pjax'
import DataActions from './bootstrappers/DataActions'
let win = window,
$ = jQuery;
// 扩展Dcat对象
function extend (Dcat) {
// ajax处理相关扩展函数
new Ajax(Dcat);
// Toastr简化使用函数
new Toastr(Dcat);
// SweetAlert2简化使用函数
new SweetAlert2(Dcat);
// Grid相关功能函数
new Grid(Dcat);
// loading效果
new Loading(Dcat);
// 静态资源加载器
new AssetsLoader(Dcat);
// 颜色管理
new Color(Dcat);
// 表单验证器
new Validator(Dcat);
// 黑色主题切换
new DarkMode(Dcat);
// 加载进度条
Dcat.NP = NProgress;
// 行选择器
Dcat.RowSelector = function (options) {
return new RowSelector(options)
};
// ajax表单提交
Dcat.Form = function (options) {
return new Form(options)
};
// 弹窗表单
Dcat.DialogForm = function (options) {
return new DialogForm(Dcat, options);
};
// 滑动面板
Dcat.Slider = function (options) {
return new Slider(Dcat, options)
};
}
// 初始化
function listen(Dcat) {
// 只初始化一次
Dcat.booting(() => {
Dcat.NP.configure({parent: '.app-content'});
// layer弹窗设置
layer.config({maxmin: true, moveOut: true, shade: false});
//////////////////////////////////////////////////////////
// 菜单点击选中效果
new Menu(Dcat);
// 返回顶部按钮
new Footer(Dcat);
// data-action 动作绑定(包括删除、批量删除等操作)
new DataActions(Dcat);
});
// 每个请求都初始化
Dcat.bootingEveryRequest(() => {
// ajax全局设置
$.ajaxSetup({
cache: true,
error: Dcat.handleAjaxError,
headers: {
'X-CSRF-TOKEN': Dcat.token
}
});
// pjax初始化功能
new Pjax(Dcat);
});
}
function prepare(Dcat) {
extend(Dcat);
listen(Dcat);
return Dcat;
}
/**
* @returns {Dcat}
*/
win.CreateDcat = function(config) {
return prepare(new Dcat(config));
};