vr-shopxo-plugin/shopxo/public/static/admin/default/js/pluginsadmin.js

222 lines
8.6 KiB
JavaScript
Raw Normal View History

/**
* 插件搜索
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2022-07-09
* @desc description
*/
function PluginsSearch () {
// 分类筛选
var $list = $('.plugins-data-list ul.already-install');
var cid = parseInt($('.plugins-category-nav button.am-btn-secondary').data('value') || 0);
if (cid == 0) {
$list.find('>li').removeClass('am-hide');
} else {
$list.find('>li').addClass('am-hide');
$list.find('>li.plugins-category-' + cid).removeClass('am-hide');
}
// 关键字筛选
var keywords = $('.plugins-search input').val().trim() || null;
if (keywords != null) {
$list.find('>li').each(function (k, v) {
if (!$(this).hasClass('am-hide')) {
var name = $(this).find('.base .name').text();
var desc = $(this).find('.desc').text();
if (name.indexOf(keywords) != -1 || desc.indexOf(keywords) != -1) {
$(this).removeClass('am-hide');
} else {
$(this).addClass('am-hide');
}
}
});
}
// 空则显示提示
if ($list.find('>li:not(.am-hide)').length > 0) {
$('.not-data-tips').addClass('am-hide');
} else {
$('.not-data-tips').removeClass('am-hide');
}
}
$(function () {
// 是否执行自动插件更新
if($('.plugins-batch-update-submit input').length > 0 && $('.plugins-batch-update-submit input').is(':checked')) {
// 模拟打开更新弹窗
$('.plugins-data-list .package-upgrade-event:eq(0)').trigger('click');
// 1.5秒后模拟点击更新按钮,给用户一个可以主动关闭的时间空间
setTimeout(function() {
var $package_upgrade_modal = $('#package-upgrade-modal');
if($package_upgrade_modal.hasClass('am-modal-active')) {
$package_upgrade_modal.find('.package-upgrade-submit').trigger('click');
}
}, 1500);
}
// 状态
$(document).on('click', '.plugins-status-event', function() {
var $this = $(this);
var state = parseInt($this.attr('data-status') || 0) == 1 ? 0 : 1;
$.AMUI.progress.start();
$.ajax({
url: RequestUrlHandle($this.attr('data-url')),
type: 'POST',
dataType: 'json',
timeout: 60000,
data: {
id: $this.attr('data-value'),
state: state,
},
success: function (result) {
$.AMUI.progress.done();
if (result.code == 0) {
$this.removeClass('am-success');
$this.attr('data-status', state);
$this.find('>span').text($this.attr('data-'+(state == 1 ? 'close' : 'open')+'-text'));
$this.parents('.operation').attr('data-status', state);
if(state == 1) {
$this.addClass('am-success');
}
Prompt(result.msg, 'success');
} else {
Prompt(result.msg);
}
},
error: function (xhr, type) {
$.AMUI.progress.done();
Prompt(HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'), null, 30);
}
});
});
// 插件批量更新事件
$(document).on('click', '.plugins-batch-update-submit', function() {
var status = $(this).find('input').is(':checked') ? 1 : null;
window.location.href = UrlFieldReplace('is_auto_update', status);
});
// 删除提示
$(document).on('click', '.submit-delete-modal', function () {
var $modal = $('#plugins-delete-modal');
$modal.find('button.submit-ajax').attr('data-id', $(this).data('id'));
$modal.modal('open');
});
// 插件设置事件
$(document).on('click', '.plugins-set-event', function () {
if (parseInt($(this).parents('.operation').attr('data-status') || 0) == 0) {
Prompt(window['lang_not_enable_tips'] || '请先点击勾勾启用');
} else {
window.parent.AdminTopNavIframeAddHandle($(this).data('set-url'), $(this).data('name'), $(this).data('key'), 'nnav', true);
}
});
// 拖拽
$('.plugins-data-list ul').dragsort({
dragSelector: '.submit-move',
placeHolderTemplate: '<li><div class="item drag-sort-dotted"></div></li>',
dragEnd: function () { // 拖动结束时触发的回调函数
// 保存排序结果
if (!$('.submit-move-setup-open').hasClass('am-hide')) {
$('.submit-move-setup-save').trigger('click');
}
}
});
// 排序开启/取消/保存
$(document).on('click', '.submit-move-setup-open', function () {
$('.submit-move-setup-open').addClass('am-hide');
$('.submit-move-setup-save').removeClass('am-hide');
$('.submit-move-setup-cancel').removeClass('am-hide');
$('.plugins-data-list > ul > li').addClass('setup');
$('.plugins-data-list > ul > li .plugins-setup-container').removeClass('am-hide');
});
$(document).on('click', '.submit-move-setup-cancel', function () {
$('.submit-move-setup-open').removeClass('am-hide');
$('.submit-move-setup-save').addClass('am-hide');
$('.submit-move-setup-cancel').addClass('am-hide');
$('.plugins-data-list > ul > li').removeClass('setup');
$('.plugins-data-list > ul > li .plugins-setup-container').addClass('am-hide');
});
$(document).on('click', '.submit-move-setup-save', function () {
var json = {};
$('.plugins-data-list > ul > li').each(function (k, v) {
var id = parseInt($(this).data('id')) || 0;
if (id > 0) {
var $right = $(this).find('.plugins-setup-container');
json[k] = {
sort: k,
id: id,
category_id: $right.find('select[name="plugins_category_id"]').val() || 0,
menu_control: $right.find('select[name="plugins_menu_control"]').val() || '',
is_second_domain: $right.find('input[name="plugins_is_second_domain"]:checked').val() || 0,
};
}
});
var len = 0;
for (var i in json) {
len++;
}
if (len <= 0) {
Prompt(window['lang_save_no_data_tips'] || '没有可保存的插件数据');
return false;
}
// ajax请求
$.AMUI.progress.start();
$.ajax({
url: RequestUrlHandle($('.plugins-data-list ul').data('setup-save-url')),
type: 'POST',
dataType: 'json',
timeout: 10000,
data: { "data": json },
success: function (result) {
$.AMUI.progress.done();
if (result.code == 0) {
Prompt(result.msg, 'success');
// 当没有开启设置时,保存不再刷新页面
if ($('.submit-move-setup-open').hasClass('am-hide')) {
setTimeout(function () {
window.location.reload();
}, 1500);
}
$('.submit-move-setup-open').removeClass('am-hide');
$('.submit-move-setup-save').addClass('am-hide');
$('.submit-move-setup-cancel').addClass('am-hide');
$('.plugins-data-list > ul > li').removeClass('setup');
$('.plugins-data-list > ul > li .plugins-setup-container').addClass('am-hide');
} else {
Prompt(result.msg);
}
},
error: function (xhr, type) {
$.AMUI.progress.done();
Prompt(HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'), null, 30);
}
});
});
// 搜索
$(document).on('click', '.plugins-search .search-event', function () {
PluginsSearch();
});
// 输入回车搜索
$(document).on('keydown', '.plugins-search input', function (e) {
if (e.keyCode == 13) {
PluginsSearch();
e.preventDefault();
}
});
// 分类筛选
$(document).on('click', '.plugins-category-nav button', function () {
// 分类样式
$('.plugins-category-nav button').removeClass('am-btn-secondary').addClass('am-btn-default');
$(this).addClass('am-btn-secondary');
// 搜索
PluginsSearch();
});
});