|
|
@@ -1,17 +1,19 @@
|
|
|
import Dropdown from "../../../adminlte/js/Dropdown";
|
|
|
|
|
|
+let $document = $(document);
|
|
|
+
|
|
|
let defaultActions = {
|
|
|
// 刷新按钮
|
|
|
- refresh: function ($action, Dcat) {
|
|
|
- return function () {
|
|
|
+ refresh: function (action, Dcat) {
|
|
|
+ $document.on('click', action, function () {
|
|
|
Dcat.reload($(this).data('url'));
|
|
|
- };
|
|
|
+ });
|
|
|
},
|
|
|
// 删除按钮初始化
|
|
|
- delete: function ($action, Dcat) {
|
|
|
+ delete: function (action, Dcat) {
|
|
|
let lang = Dcat.lang;
|
|
|
|
|
|
- return function() {
|
|
|
+ $document.on('click', action, function() {
|
|
|
let url = $(this).data('url'),
|
|
|
redirect = $(this).data('redirect'),
|
|
|
msg = $(this).data('message');
|
|
|
@@ -31,11 +33,11 @@ let defaultActions = {
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
- };
|
|
|
+ });
|
|
|
},
|
|
|
// 批量删除按钮初始化
|
|
|
- 'batch-delete': function ($action, Dcat) {
|
|
|
- return function() {
|
|
|
+ 'batch-delete': function (action, Dcat) {
|
|
|
+ $document.on('click', action, function() {
|
|
|
let url = $(this).data('url'),
|
|
|
name = $(this).data('name'),
|
|
|
keys = Dcat.grid.selected(name),
|
|
|
@@ -59,26 +61,28 @@ let defaultActions = {
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
- };
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
// 图片预览
|
|
|
- 'preview-img': function ($action, Dcat) {
|
|
|
- return function () {
|
|
|
+ 'preview-img': function (action, Dcat) {
|
|
|
+ $document.on('click', action, function () {
|
|
|
return Dcat.helpers.previewImage($(this).attr('src'));
|
|
|
- };
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
- 'popover': function ($action) {
|
|
|
- $('.popover').remove();
|
|
|
+ 'popover': function (action, Dcat) {
|
|
|
+ Dcat.onPjaxComplete(function () {
|
|
|
+ $('.popover').remove();
|
|
|
+ }, false);
|
|
|
|
|
|
- return function () {
|
|
|
- $action.popover()
|
|
|
- };
|
|
|
+ $document.on('click', action, function () {
|
|
|
+ $(this).popover()
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
'box-actions': function () {
|
|
|
- $('.box [data-action="collapse"]').click(function (e) {
|
|
|
+ $document.on('click', '.box [data-action="collapse"]', function (e) {
|
|
|
e.preventDefault();
|
|
|
|
|
|
$(this).find('i').toggleClass('icon-minus icon-plus');
|
|
|
@@ -87,7 +91,7 @@ let defaultActions = {
|
|
|
});
|
|
|
|
|
|
// Close box
|
|
|
- $('.box [data-action="remove"]').click(function () {
|
|
|
+ $document.on('click', '.box [data-action="remove"]', function () {
|
|
|
$(this).closest(".box").removeClass().slideUp("fast");
|
|
|
});
|
|
|
},
|
|
|
@@ -96,8 +100,7 @@ let defaultActions = {
|
|
|
function hide() {
|
|
|
$('.dropdown-menu').removeClass('show')
|
|
|
}
|
|
|
- $(document).off('click', document, hide)
|
|
|
- $(document).on('click', hide);
|
|
|
+ $document.on('click', hide);
|
|
|
|
|
|
function toggle(event) {
|
|
|
var $this = $(this);
|
|
|
@@ -114,32 +117,27 @@ let defaultActions = {
|
|
|
function fix(event) {
|
|
|
event.preventDefault()
|
|
|
event.stopPropagation()
|
|
|
- // console.log(666);
|
|
|
+
|
|
|
setTimeout(function() {
|
|
|
$(this).Dropdown('fixPosition')
|
|
|
}, 1)
|
|
|
}
|
|
|
|
|
|
- $('[data-toggle="dropdown"]').off('click').on("click", toggle).on("click", fix);
|
|
|
+ let selector = '[data-toggle="dropdown"]';
|
|
|
+
|
|
|
+ $document
|
|
|
+ .on('click', selector, toggle)
|
|
|
+ .on('click', selector, fix);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
export default class DataActions {
|
|
|
constructor(Dcat) {
|
|
|
let actions = $.extend(defaultActions, Dcat.actions()),
|
|
|
- $action,
|
|
|
- name,
|
|
|
- func;
|
|
|
+ name;
|
|
|
|
|
|
for (name in actions) {
|
|
|
- $action = $(`[data-action="${name}"]`);
|
|
|
-
|
|
|
- func = actions[name]($action, Dcat);
|
|
|
-
|
|
|
- if (typeof func === 'function') {
|
|
|
- // 必须先取消再绑定,否则可能造成重复绑定的效果
|
|
|
- $action.off('click').click(func);
|
|
|
- }
|
|
|
+ actions[name](`[data-action="${name}"]`, Dcat);
|
|
|
}
|
|
|
}
|
|
|
}
|