/** * 插件搜索 * @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: '
  • ', 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(); }); });