插件管理新增分类
parent
fc5d99a96e
commit
3159115c13
|
|
@ -17,6 +17,7 @@ use app\service\PluginsAdminService;
|
|||
use app\service\ResourcesService;
|
||||
use app\service\PluginsService;
|
||||
use app\service\PluginsUpgradeService;
|
||||
use app\service\PluginsCategoryService;
|
||||
|
||||
/**
|
||||
* 应用管理
|
||||
|
|
@ -74,6 +75,10 @@ class Pluginsadmin extends Base
|
|||
// 插件更新信息
|
||||
$upgrade = PluginsService::PluginsUpgradeInfo($ret['data']);
|
||||
$assign['upgrade_info'] = $upgrade['data'];
|
||||
|
||||
// 插件分类
|
||||
$categosy = PluginsCategoryService::PluginsCategoryList();
|
||||
$assign['plugins_categosy_list'] = $categosy['data'];
|
||||
}
|
||||
|
||||
// 数据赋值
|
||||
|
|
@ -239,16 +244,16 @@ class Pluginsadmin extends Base
|
|||
}
|
||||
|
||||
/**
|
||||
* 排序保存
|
||||
* 设置保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-01-05
|
||||
* @desc description
|
||||
*/
|
||||
public function SortSave()
|
||||
public function SetupSave()
|
||||
{
|
||||
return ApiService::ApiDataReturn(PluginsAdminService::SortSave($this->data_request));
|
||||
return ApiService::ApiDataReturn(PluginsAdminService::SetupSave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\PluginsCategoryService;
|
||||
|
||||
/**
|
||||
* 应用分类管理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class PluginsCategory extends Base
|
||||
{
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-06T21:31:53+0800
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取节点子列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-25T15:19:45+0800
|
||||
*/
|
||||
public function GetNodeSon()
|
||||
{
|
||||
return ApiService::ApiDataReturn(PluginsCategoryService::PluginsCategoryNodeSon($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-25T22:36:12+0800
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
return ApiService::ApiDataReturn(PluginsCategoryService::PluginsCategorySave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-25T22:36:12+0800
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(PluginsCategoryService::PluginsCategoryDelete($params));
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1024,7 +1024,7 @@ return [
|
|||
'base_search_input_placeholder' => '請輸入名稱/描述',
|
||||
'base_top_tips_one' => '清單排序方式[自定義排序->最早安裝]',
|
||||
'base_top_tips_two' => '可點擊拖動圖標按鈕調整挿件調用和展示順序',
|
||||
'base_open_sort_title' => '開啟排序',
|
||||
'base_open_setup_title' => '開啟設定',
|
||||
'data_list_author_title' => '作者',
|
||||
'data_list_author_url_title' => '主頁',
|
||||
'data_list_version_title' => '版本',
|
||||
|
|
@ -1040,6 +1040,13 @@ return [
|
|||
'cancel_delete_plugins_button_name' => '再考慮一下',
|
||||
'more_plugins_store_to_text' => '去應用商店挑選更多挿件豐富網站>>',
|
||||
'no_data_store_to_text' => '到應用商店挑選挿件豐富網站>>',
|
||||
'plugins_category_title' => '應用分類',
|
||||
'plugins_category_admin_title' => '分類管理',
|
||||
],
|
||||
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
'base_nav_title' => '挿件分類',
|
||||
],
|
||||
|
||||
// 安装页面
|
||||
|
|
|
|||
|
|
@ -1039,7 +1039,7 @@ return [
|
|||
'base_search_input_placeholder' => 'Please enter a name/description',
|
||||
'base_top_tips_one' => 'List sorting method [custom sorting ->earliest installation]',
|
||||
'base_top_tips_two' => 'Click and drag icon button to adjust plug-in call and display order',
|
||||
'base_open_sort_title' => 'Enable sorting',
|
||||
'base_open_setup_title' => 'Enable Settings',
|
||||
'data_list_author_title' => 'Author',
|
||||
'data_list_author_url_title' => 'HomePage',
|
||||
'data_list_version_title' => 'Version',
|
||||
|
|
@ -1055,6 +1055,13 @@ return [
|
|||
'cancel_delete_plugins_button_name' => 'Think again',
|
||||
'more_plugins_store_to_text' => 'Go to the app store to select more plugins to enrich the site >>',
|
||||
'no_data_store_to_text' => 'Go to the app store to select plug-in rich sites >>',
|
||||
'plugins_category_title' => 'Application Category',
|
||||
'plugins_category_admin_title' => 'Category Management',
|
||||
],
|
||||
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
'base_nav_title' => 'PluginsCategory',
|
||||
],
|
||||
|
||||
// 安装页面
|
||||
|
|
|
|||
|
|
@ -1024,7 +1024,7 @@ return [
|
|||
'base_search_input_placeholder' => 'Introduzca el nombre / descripción',
|
||||
'base_top_tips_one' => 'Método de clasificación de lista [clasificación personalizada - > instalación más temprana]',
|
||||
'base_top_tips_two' => 'Se puede hacer clic en el botón arrastrar icono para ajustar el orden de llamada y visualización del plug - IN.',
|
||||
'base_open_sort_title' => 'Abrir clasificación',
|
||||
'base_open_setup_title' => 'Activar configuración',
|
||||
'data_list_author_title' => 'Autor',
|
||||
'data_list_author_url_title' => 'Página principal',
|
||||
'data_list_version_title' => 'Versión',
|
||||
|
|
@ -1040,6 +1040,13 @@ return [
|
|||
'cancel_delete_plugins_button_name' => 'Piénsalo de nuevo.',
|
||||
'more_plugins_store_to_text' => 'Ir a la tienda de aplicaciones para seleccionar más plug - ins para enriquecer el sitio > > 1',
|
||||
'no_data_store_to_text' => 'Ir a la tienda de aplicaciones para seleccionar los sitios ricos en plug - ins > >',
|
||||
'plugins_category_title' => 'Clasificación de aplicaciones',
|
||||
'plugins_category_admin_title' => 'Gestión clasificada',
|
||||
],
|
||||
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
'base_nav_title' => 'Clasificación plugins',
|
||||
],
|
||||
|
||||
// 安装页面
|
||||
|
|
|
|||
|
|
@ -1024,7 +1024,7 @@ return [
|
|||
'base_search_input_placeholder' => '请输入名称/描述',
|
||||
'base_top_tips_one' => '列表排序方式[ 自定义排序 -> 最早安装 ]',
|
||||
'base_top_tips_two' => '可点击拖动图标按钮调整插件调用和展示顺序',
|
||||
'base_open_sort_title' => '开启排序',
|
||||
'base_open_setup_title' => '开启设置',
|
||||
'data_list_author_title' => '作者',
|
||||
'data_list_author_url_title' => '主页',
|
||||
'data_list_version_title' => '版本',
|
||||
|
|
@ -1040,6 +1040,13 @@ return [
|
|||
'cancel_delete_plugins_button_name' => '再考虑一下',
|
||||
'more_plugins_store_to_text' => '去应用商店挑选更多插件丰富站点 >>',
|
||||
'no_data_store_to_text' => '到应用商店挑选插件丰富站点 >>',
|
||||
'plugins_category_title' => '应用分类',
|
||||
'plugins_category_admin_title' => '分类管理',
|
||||
],
|
||||
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
'base_nav_title' => '插件分类',
|
||||
],
|
||||
|
||||
// 安装页面
|
||||
|
|
|
|||
|
|
@ -29,9 +29,9 @@
|
|||
<p>{{:MyLang('pluginsadmin.base_top_tips_one')}}</p>
|
||||
<p>
|
||||
<span>{{:MyLang('pluginsadmin.base_top_tips_two')}}</span>
|
||||
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-xs am-icon-sort-numeric-asc submit-move-sort-open"> {{:MyLang('pluginsadmin.base_open_sort_title')}}</button>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-margin-left-xs am-icon-check submit-move-sort-save am-hide"> {{:MyLang('save_title')}}</button>
|
||||
<button type="button" class="am-btn am-btn-danger am-radius am-btn-xs am-margin-left-xs am-icon-close submit-move-sort-cancel am-hide"> {{:MyLang('cancel_title')}}</button>
|
||||
<button type="button" class="am-btn am-btn-success am-radius am-btn-xs am-margin-left-xs am-icon-cog submit-move-setup-open"> {{:MyLang('pluginsadmin.base_open_setup_title')}}</button>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-xs am-margin-left-xs am-icon-check submit-move-setup-save am-hide"> {{:MyLang('save_title')}}</button>
|
||||
<button type="button" class="am-btn am-btn-danger am-radius am-btn-xs am-margin-left-xs am-icon-close submit-move-setup-cancel am-hide"> {{:MyLang('cancel_title')}}</button>
|
||||
</p>
|
||||
{{if empty($site_store_info) or empty($site_store_info['user'])}}
|
||||
<p>
|
||||
|
|
@ -41,17 +41,24 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
|
||||
<!-- 搜索无数据展示 -->
|
||||
<div class="not-data-tips none">
|
||||
{{include file="public/not_data" /}}
|
||||
</div>
|
||||
|
||||
{{if !empty($data_list['db_data'])}}
|
||||
<!-- 插件分类 -->
|
||||
<div class="plugins-category-nav am-padding-vertical-xs">
|
||||
<strong>{{:MyLang('pluginsadmin.plugins_category_title')}}</strong>
|
||||
<button type="button" class="am-btn am-btn-secondary am-radius am-margin-left-sm">{{:MyLang('all_title')}}</button>
|
||||
{{if !empty($plugins_categosy_list)}}
|
||||
{{foreach $plugins_categosy_list as $cv}}
|
||||
<button type="button" class="am-btn am-btn-default am-radius am-margin-left-sm" data-value="{{$cv.id}}">{{$cv.name}}</button>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
<a href="javascript:;" class="am-fr am-margin-top-xs am-icon-edit submit-popup" data-url="{{:MyUrl('admin/pluginscategory/index')}}" data-full="1" data-full-max="1" data-class="plugins-category-save-popup"> {{:MyLang('pluginsadmin.plugins_category_admin_title')}}</a>
|
||||
</div>
|
||||
|
||||
<!-- 已安装 -->
|
||||
<ul class="already-install am-nbfc" data-sort-save-url="{{:MyUrl('admin/pluginsadmin/sortsave')}}">
|
||||
<ul class="already-install am-nbfc" data-setup-save-url="{{:MyUrl('admin/pluginsadmin/setupsave')}}">
|
||||
{{foreach $data_list['db_data'] as $v}}
|
||||
{{if isset($v['is_install']) and $v['is_install'] eq 1}}
|
||||
<li data-id="{{$v.id}}" data-plugins="{{$v.plugins}}">
|
||||
<li class="plugins-category-{{$v.plugins_category_id}}" data-id="{{$v.id}}" data-plugins="{{$v.plugins}}">
|
||||
<div class="item {{if $v['is_enable'] eq 0}}am-active{{/if}}" id="data-list-{{$v.plugins}}">
|
||||
<img src="{{$v.logo}}" class="icon" />
|
||||
<div class="base">
|
||||
|
|
@ -85,11 +92,26 @@
|
|||
<button class="am-btn am-btn-danger am-btn-xs am-radius am-icon-refresh package-upgrade-event" title="{{:MyLang('update_title')}}" data-type="plugins" data-name="{{$v.name}}" data-value="{{$v.plugins}}" data-json="{{:urlencode(json_encode($upgrade_info[$v['plugins']]))}}"></button>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{if !empty($plugins_categosy_list)}}
|
||||
<div class="plugins-category-item am-hide">
|
||||
<select class="am-radius chosen-select" data-placeholder="{{:MyLang('please_select_tips')}}">
|
||||
<option value="0">{{:MyLang('please_select_tips')}}</option>
|
||||
{{foreach $plugins_categosy_list as $cv}}
|
||||
<option value="{{$cv.id}}" {{if isset($v['plugins_category_id']) and $cv['id'] eq $v['plugins_category_id']}}selected{{/if}}>{{$cv.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
|
||||
<!-- 搜索无数据展示 -->
|
||||
<div class="not-data-tips am-hide">
|
||||
{{include file="public/not_data" /}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{if !empty($data_list['dir_data'])}}
|
||||
|
|
@ -102,7 +124,7 @@
|
|||
</strong>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-top-0" />
|
||||
</div>
|
||||
<ul class="am-nbfc" data-sort-save-url="{{:MyUrl('admin/pluginsadmin/sortsave')}}">
|
||||
<ul class="am-nbfc" data-setup-save-url="{{:MyUrl('admin/pluginsadmin/sortsave')}}">
|
||||
{{foreach $data_list['dir_data'] as $v}}
|
||||
{{if !isset($v['is_install']) or $v['is_install'] eq 0}}
|
||||
<li data-id="{{$v.id}}" data-plugins="{{$v.plugins}}">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- operation start -->
|
||||
<div class="am-g">
|
||||
<button class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus tree-submit-add" data-am-modal="{target: '#data-save-win'}"> {{:MyLang('add_title')}}</button>
|
||||
</div>
|
||||
<!-- operation end -->
|
||||
|
||||
<!-- save win start -->
|
||||
<div class="am-popup am-radius" id="data-save-win">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title" data-add-title="{{:MyLang('pluginscategory.base_nav_title')}}{{:MyLang('add_title')}}" data-edit-title="{{:MyLang('pluginscategory.base_nav_title')}}{{:MyLang('edit_title')}}">{{:MyLang('pluginscategory.base_nav_title')}}{{:MyLang('add_title')}}</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/pluginscategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group">
|
||||
<label>{{:MyLang('common_service.pluginscategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="{{:MyLang('common_service.pluginscategory.form_item_name_message')}}" name="name" minlength="1" maxlength="60" data-validation-message="{{:MyLang('common_service.pluginscategory.form_item_name_message')}}" class="am-radius" required />
|
||||
</div>
|
||||
{{include file="lib/sort" /}}
|
||||
{{include file="lib/is_enable" /}}
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">{{:MyLang('save_title')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- save win end -->
|
||||
|
||||
<!-- list start -->
|
||||
<div id="tree" class="am-margin-top-sm" data-node-url="{{:MyUrl('admin/pluginscategory/getnodeson')}}" data-del-url="{{:MyUrl('admin/pluginscategory/delete')}}" data-popup-tag="#data-save-win">
|
||||
{{include file="public/loading" /}}
|
||||
</div>
|
||||
<!-- list end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
||||
<script type="text/javascript">
|
||||
// 初始化
|
||||
Tree(0, $('#tree').data('node-url'), 0);
|
||||
|
||||
// 回调处理
|
||||
function TreeFormSaveBack(e)
|
||||
{
|
||||
TreeFormSaveBackHandle(e);
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1899,6 +1899,12 @@ return [
|
|||
'pay_request_log_insert_fail_tips' => '支付請求日誌添加失敗',
|
||||
'pay_request_log_update_fail_tips' => '支付請求日誌更新失敗',
|
||||
],
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
// 表单
|
||||
'form_item_name' => '名稱',
|
||||
'form_item_name_message' => '名稱長度1~60個字元',
|
||||
],
|
||||
// 插件管理
|
||||
'pluginsadmin' => [
|
||||
// 表单
|
||||
|
|
@ -1966,8 +1972,8 @@ return [
|
|||
'plugins_new_config_error_tips' => '新設定檔有誤',
|
||||
'plugins_new_config_update_fail_tips' => '新應用設定檔更新失敗',
|
||||
'app_update_no_exist_tips' => '應用不存在[{:plugins}]、請先安裝',
|
||||
'sort_save_data_empty_tips' => '沒有可保存的挿件數據',
|
||||
'sort_save_data_error_tips' => '挿件排序數據有誤',
|
||||
'setup_save_data_empty_tips' => '沒有可保存的挿件數據',
|
||||
'setup_save_data_error_tips' => '挿件設定數據有誤',
|
||||
],
|
||||
// 插件服务
|
||||
'plugins' => [
|
||||
|
|
|
|||
|
|
@ -1962,8 +1962,14 @@ return [
|
|||
'plugins_new_config_error_tips' => 'The new configuration file is incorrect',
|
||||
'plugins_new_config_update_fail_tips' => 'Failed to update the new app profile',
|
||||
'app_update_no_exist_tips' => 'The application does not exist [{:plugins}]. Please install it first',
|
||||
'sort_save_data_empty_tips' => 'No plug-in data to save',
|
||||
'sort_save_data_error_tips' => 'The plug-in sorting data is incorrect',
|
||||
'setup_save_data_empty_tips' => 'No plug-in data to save',
|
||||
'setup_save_data_error_tips' => 'Incorrect plugin setting data',
|
||||
],
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
// 表单
|
||||
'form_item_name' => 'Name',
|
||||
'form_item_name_message' => 'The name is 1~60 characters long',
|
||||
],
|
||||
// 插件服务
|
||||
'plugins' => [
|
||||
|
|
|
|||
|
|
@ -1966,8 +1966,14 @@ return [
|
|||
'plugins_new_config_error_tips' => 'El nuevo perfil es incorrecto',
|
||||
'plugins_new_config_update_fail_tips' => 'Falló la actualización del perfil de la nueva aplicación',
|
||||
'app_update_no_exist_tips' => 'La aplicación no existe ({:plugins}), por favor instale primero',
|
||||
'sort_save_data_empty_tips' => 'No hay datos de plug - in guardables',
|
||||
'sort_save_data_error_tips' => 'Los datos de clasificación del plug - in son incorrectos',
|
||||
'setup_save_data_empty_tips' => 'No hay datos de plug - in guardables',
|
||||
'setup_save_data_error_tips' => 'Los datos de configuración del plug - in son incorrectos',
|
||||
],
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
// 表单
|
||||
'form_item_name' => 'Nombre',
|
||||
'form_item_name_message' => 'La longitud del nombre es de 1 a 60 caracteres.',
|
||||
],
|
||||
// 插件服务
|
||||
'plugins' => [
|
||||
|
|
|
|||
|
|
@ -1966,8 +1966,14 @@ return [
|
|||
'plugins_new_config_error_tips' => '新配置文件有误',
|
||||
'plugins_new_config_update_fail_tips' => '新应用配置文件更新失败',
|
||||
'app_update_no_exist_tips' => '应用不存在[{:plugins}]、请先安装',
|
||||
'sort_save_data_empty_tips' => '没有可保存的插件数据',
|
||||
'sort_save_data_error_tips' => '插件排序数据有误',
|
||||
'setup_save_data_empty_tips' => '没有可保存的插件数据',
|
||||
'setup_save_data_error_tips' => '插件设置数据有误',
|
||||
],
|
||||
// 插件分类
|
||||
'pluginscategory' => [
|
||||
// 表单
|
||||
'form_item_name' => '名称',
|
||||
'form_item_name_message' => '名称长度1~60个字符',
|
||||
],
|
||||
// 插件服务
|
||||
'plugins' => [
|
||||
|
|
|
|||
|
|
@ -103,19 +103,22 @@ class BrandCategoryService
|
|||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
if(Db::name('BrandCategory')->insertGetId($data) > 0)
|
||||
$data['id'] = Db::name('BrandCategory')->insertGetId($data);
|
||||
if($data['id'] <= 0)
|
||||
{
|
||||
return DataReturn(MyLang('insert_success'), 0);
|
||||
return DataReturn(MyLang('insert_fail'), -100);
|
||||
}
|
||||
return DataReturn(MyLang('insert_fail'), -100);
|
||||
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->update($data))
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->update($data) === false)
|
||||
{
|
||||
return DataReturn(MyLang('edit_success'), 0);
|
||||
return DataReturn(MyLang('edit_fail'), -100);
|
||||
} else {
|
||||
$data['id'] = $params['id'];
|
||||
}
|
||||
return DataReturn(MyLang('edit_fail'), -100);
|
||||
}
|
||||
return DataReturn(MyLang('operate_success'), 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -100,22 +100,23 @@ class PluginsAdminService
|
|||
// 数据组装
|
||||
$db_config = array_key_exists($base['plugins'], $temp_data) ? $temp_data[$base['plugins']] : [];
|
||||
$dir_data[$base['plugins']] = [
|
||||
'id' => empty($db_config['id']) ? 0 : $db_config['id'],
|
||||
'plugins' => $base['plugins'],
|
||||
'is_enable' => isset($db_config['is_enable']) ? $db_config['is_enable'] : 0,
|
||||
'is_install' => empty($db_config) ? 0 : 1,
|
||||
'logo_old' => $base['logo'],
|
||||
'logo' => ResourcesService::AttachmentPathViewHandle($base['logo']),
|
||||
'is_home' => isset($base['is_home']) ? $base['is_home'] : false,
|
||||
'name' => isset($base['name']) ? $base['name'] : '',
|
||||
'author' => isset($base['author']) ? $base['author'] : '',
|
||||
'author_url' => isset($base['author_url']) ? $base['author_url'] : '',
|
||||
'version' => isset($base['version']) ? $base['version'] : '',
|
||||
'desc' => isset($base['desc']) ? $base['desc'] : '',
|
||||
'apply_version' => isset($base['apply_version']) ? $base['apply_version'] : [],
|
||||
'apply_terminal'=> isset($base['apply_terminal']) ? $base['apply_terminal'] : [],
|
||||
'add_time_time' => isset($db_config['add_time']) ? date('Y-m-d H:i:s', $db_config['add_time']) : '',
|
||||
'add_time_date' => isset($db_config['add_time']) ? date('Y-m-d', $db_config['add_time']) : '',
|
||||
'id' => empty($db_config['id']) ? 0 : $db_config['id'],
|
||||
'plugins' => $base['plugins'],
|
||||
'plugins_category_id' => isset($db_config['plugins_category_id']) ? $db_config['plugins_category_id'] : 0,
|
||||
'is_enable' => isset($db_config['is_enable']) ? $db_config['is_enable'] : 0,
|
||||
'is_install' => empty($db_config) ? 0 : 1,
|
||||
'logo_old' => $base['logo'],
|
||||
'logo' => ResourcesService::AttachmentPathViewHandle($base['logo']),
|
||||
'is_home' => isset($base['is_home']) ? $base['is_home'] : false,
|
||||
'name' => isset($base['name']) ? $base['name'] : '',
|
||||
'author' => isset($base['author']) ? $base['author'] : '',
|
||||
'author_url' => isset($base['author_url']) ? $base['author_url'] : '',
|
||||
'version' => isset($base['version']) ? $base['version'] : '',
|
||||
'desc' => isset($base['desc']) ? $base['desc'] : '',
|
||||
'apply_version' => isset($base['apply_version']) ? $base['apply_version'] : [],
|
||||
'apply_terminal' => isset($base['apply_terminal']) ? $base['apply_terminal'] : [],
|
||||
'add_time_time' => isset($db_config['add_time']) ? date('Y-m-d H:i:s', $db_config['add_time']) : '',
|
||||
'add_time_date' => isset($db_config['add_time']) ? date('Y-m-d', $db_config['add_time']) : '',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -1523,7 +1524,7 @@ php;
|
|||
}
|
||||
|
||||
/**
|
||||
* 排序保存
|
||||
* 设置保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
|
|
@ -1531,14 +1532,14 @@ php;
|
|||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function SortSave($params = [])
|
||||
public static function SetupSave($params = [])
|
||||
{
|
||||
// 请求类型
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'data',
|
||||
'error_msg' => MyLang('common_service.pluginsadmin.sort_save_data_empty_tips'),
|
||||
'error_msg' => MyLang('common_service.pluginsadmin.setup_save_data_empty_tips'),
|
||||
]
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
|
|
@ -1556,15 +1557,19 @@ php;
|
|||
|
||||
// 捕获异常
|
||||
try {
|
||||
foreach($data as $k=>$v)
|
||||
foreach($data as $v)
|
||||
{
|
||||
$upd_data = [
|
||||
'sort' => intval($k),
|
||||
'add_time' => time(),
|
||||
];
|
||||
if(Db::name('Plugins')->where(['id'=>intval($v)])->update($upd_data) === false)
|
||||
if(!empty($v['id']))
|
||||
{
|
||||
throw new \Exception(MyLang('operate_fail'));
|
||||
$upd_data = [
|
||||
'sort' => empty($v['sort']) ? 0 : intval($v['sort']),
|
||||
'plugins_category_id' => empty($v['cid']) ? 0 : intval($v['cid']),
|
||||
'add_time' => time(),
|
||||
];
|
||||
if(Db::name('Plugins')->where(['id'=>intval($v['id'])])->update($upd_data) === false)
|
||||
{
|
||||
throw new \Exception(MyLang('operate_fail'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1583,7 +1588,7 @@ php;
|
|||
return DataReturn($e->getMessage(), -1);
|
||||
}
|
||||
}
|
||||
return DataReturn(MyLang('common_service.pluginsadmin.sort_save_data_error_tips'), -1);
|
||||
return DataReturn(MyLang('common_service.pluginsadmin.setup_save_data_error_tips'), -1);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\service;
|
||||
|
||||
use think\facade\Db;
|
||||
|
||||
/**
|
||||
* 应用分类服务层
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class PluginsCategoryService
|
||||
{
|
||||
/**
|
||||
* 应用分类
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PluginsCategoryList($params = [])
|
||||
{
|
||||
$field = empty($params['field']) ? '*' : $params['field'];
|
||||
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
|
||||
|
||||
$data = Db::name('PluginsCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->select()->toArray();
|
||||
|
||||
return DataReturn(MyLang('handle_success'), 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取应用分类节点数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-16T23:54:46+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PluginsCategoryNodeSon($params = [])
|
||||
{
|
||||
// 获取数据
|
||||
$field = '*';
|
||||
$data = Db::name('PluginsCategory')->field($field)->order('sort asc')->select()->toArray();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
$v['is_son'] = 'no';
|
||||
$v['ajax_url'] = MyUrl('admin/pluginscategory/getnodeson', array('id'=>$v['id']));
|
||||
$v['delete_url'] = MyUrl('admin/pluginscategory/delete');
|
||||
$v['json'] = json_encode($v);
|
||||
}
|
||||
return DataReturn(MyLang('operate_success'), 0, $data);
|
||||
}
|
||||
return DataReturn(MyLang('no_data'), -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用分类保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T01:04:03+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PluginsCategorySave($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'name',
|
||||
'checked_data' => '1,60',
|
||||
'error_msg' => MyLang('common_service.pluginscategory.form_item_name_message'),
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 数据
|
||||
$data = [
|
||||
'name' => $params['name'],
|
||||
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
|
||||
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
|
||||
];
|
||||
|
||||
// 添加
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
$data['id'] = Db::name('PluginsCategory')->insertGetId($data);
|
||||
if($data['id'] <= 0)
|
||||
{
|
||||
return DataReturn(MyLang('insert_fail'), -100);
|
||||
}
|
||||
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('PluginsCategory')->where(['id'=>intval($params['id'])])->update($data) === false)
|
||||
{
|
||||
return DataReturn(MyLang('edit_fail'), -100);
|
||||
} else {
|
||||
$data['id'] = $params['id'];
|
||||
}
|
||||
}
|
||||
return DataReturn(MyLang('operate_success'), 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用分类删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T02:40:29+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function PluginsCategoryDelete($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => MyLang('data_id_error_tips'),
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'admin',
|
||||
'error_msg' => MyLang('user_info_incorrect_tips'),
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 开始删除
|
||||
if(Db::name('PluginsCategory')->where(['id'=>intval($params['id'])])->delete())
|
||||
{
|
||||
return DataReturn(MyLang('delete_success'), 0);
|
||||
}
|
||||
return DataReturn(MyLang('delete_fail'), -100);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -4,66 +4,66 @@
|
|||
.plugins-data-list {
|
||||
position: relative;
|
||||
}
|
||||
.plugins-data-list ul {
|
||||
.plugins-data-list > ul {
|
||||
padding: 0px;
|
||||
width: calc(100% + 20px);
|
||||
margin-left: -10px;
|
||||
}
|
||||
.plugins-data-list ul li {
|
||||
.plugins-data-list > ul > li {
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
.plugins-data-list ul li .item {
|
||||
.plugins-data-list > ul > li .item {
|
||||
height: 208px;
|
||||
padding: 10px;
|
||||
}
|
||||
.plugins-data-list ul li .icon {
|
||||
.plugins-data-list > ul > li .icon {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,.4);
|
||||
}
|
||||
.plugins-data-list ul .item {
|
||||
.plugins-data-list > ul .item {
|
||||
box-shadow: none;
|
||||
border: 1px solid #d4d4d4;
|
||||
border: 1px solid #f0f0f0;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.plugins-data-list ul .item.am-active {
|
||||
border: 1px solid #ff8a8a !important;
|
||||
background: #fff2f2;
|
||||
.plugins-data-list > ul .item.am-active {
|
||||
border: 1px solid #ffd3d3 !important;
|
||||
background: #fff8f8;
|
||||
}
|
||||
.plugins-data-list ul .item:hover {
|
||||
border: 1px solid #999;
|
||||
box-shadow: 0px 12px 12px -10px rgba(0,0,0,.4);
|
||||
.plugins-data-list > ul .item:hover {
|
||||
border: 1px solid #ddd;
|
||||
box-shadow: 0px 12px 12px -10px rgba(0,0,0,.3);
|
||||
}
|
||||
.plugins-data-list ul li {
|
||||
.plugins-data-list > ul > li {
|
||||
position: relative;
|
||||
}
|
||||
.plugins-data-list ul li .base {
|
||||
.plugins-data-list > ul > li .base {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 110px;
|
||||
width: calc(100% - 130px);
|
||||
}
|
||||
.plugins-data-list ul li .base h3 {
|
||||
.plugins-data-list > ul > li .base h3 {
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
margin: 2px 0px 3px 0px;
|
||||
}
|
||||
.plugins-data-list ul li .base p {
|
||||
.plugins-data-list > ul > li .base p {
|
||||
line-height: 18px;
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
color: #999;
|
||||
}
|
||||
.plugins-data-list ul li .base h3, .plugins-data-list ul li .base p {
|
||||
.plugins-data-list > ul > li .base h3, .plugins-data-list > ul > li .base p {
|
||||
word-wrap: normal;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.plugins-data-list ul .desc {
|
||||
.plugins-data-list > ul .desc {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
|
|
@ -73,30 +73,30 @@
|
|||
height: 36px;
|
||||
line-height: 18px;
|
||||
}
|
||||
.plugins-data-list ul li .operation {
|
||||
border-top: 1px dashed #eee;
|
||||
.plugins-data-list > ul > li .operation {
|
||||
border-top: 1px dashed #f6f6f6;
|
||||
padding: 10px 0 5px 0;
|
||||
}
|
||||
.plugins-data-list ul li .am-btn, .plugins-data-list ul li .am-icon-btn {
|
||||
.plugins-data-list > ul > li .am-btn, .plugins-data-list > ul > li .am-icon-btn {
|
||||
width: 35px;
|
||||
}
|
||||
.plugins-data-list ul li .submit-state {
|
||||
.plugins-data-list > ul > li .submit-state {
|
||||
height: 30px;
|
||||
border-radius: 2px;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
.plugins-data-list ul li .submit-state.am-success {
|
||||
.plugins-data-list > ul > li .submit-state.am-success {
|
||||
border: 1px solid #4caf50;
|
||||
background-color: #4caf50;
|
||||
color: #fff;
|
||||
}
|
||||
.plugins-data-list ul li .submit-move {
|
||||
.plugins-data-list > ul > li .submit-move {
|
||||
cursor: move !important;
|
||||
}
|
||||
.plugins-data-list ul.already-install .item.am-active {
|
||||
border: 1px solid #f8815d !important;
|
||||
background: #fffbf5;
|
||||
.plugins-data-list > ul.already-install .item.am-active {
|
||||
border: 1px solid #ffe0d7 !important;
|
||||
background: #fffefb;
|
||||
}
|
||||
.content .middle-divider {
|
||||
height: 50px;
|
||||
|
|
@ -121,21 +121,21 @@
|
|||
border-top: 1px dashed #2196F3;
|
||||
}
|
||||
@media only screen and (max-width: 641px) {
|
||||
.plugins-data-list ul li .item {
|
||||
.plugins-data-list > ul > li .item {
|
||||
height: 187px;
|
||||
}
|
||||
.plugins-data-list ul li .icon {
|
||||
.plugins-data-list > ul > li .icon {
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
}
|
||||
.plugins-data-list ul li .base {
|
||||
.plugins-data-list > ul > li .base {
|
||||
left: 95px;
|
||||
width: calc(100% - 115px);
|
||||
}
|
||||
.plugins-data-list ul li .base h3 {
|
||||
.plugins-data-list > ul > li .base h3 {
|
||||
margin: 0px;
|
||||
}
|
||||
.plugins-data-list ul li .base p {
|
||||
.plugins-data-list > ul > li .base p {
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
box-shadow: rgb(85 85 85 / 60%) 0px 0px 30px;
|
||||
}
|
||||
@media only screen and (min-width: 641px) {
|
||||
.plugins-data-list ul li {
|
||||
.plugins-data-list > ul > li {
|
||||
width: 50%;
|
||||
}
|
||||
#plugins-delete-modal .am-modal-bd button.submit-ajax {
|
||||
|
|
@ -155,12 +155,12 @@
|
|||
}
|
||||
}
|
||||
@media only screen and (min-width: 1025px) {
|
||||
.plugins-data-list ul li {
|
||||
.plugins-data-list > ul > li {
|
||||
width: 33.33%;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 641px) {
|
||||
.plugins-data-list ul li {
|
||||
.plugins-data-list > ul > li {
|
||||
width: 100%;
|
||||
}
|
||||
#plugins-delete-modal .am-modal-bd .am-btn {
|
||||
|
|
@ -188,4 +188,14 @@
|
|||
top: auto;
|
||||
right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分类选择
|
||||
*/
|
||||
.plugins-data-list .plugins-category-item {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 120px;
|
||||
}
|
||||
|
|
@ -8,31 +8,43 @@
|
|||
*/
|
||||
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)
|
||||
{
|
||||
var count = 0;
|
||||
$('.plugins-data-list ul li').each(function(k, v)
|
||||
$list.find('>li').each(function(k, v)
|
||||
{
|
||||
var name = $(this).find('.base .name').text();
|
||||
var desc = $(this).find('.desc').text();
|
||||
if(name.indexOf(keywords) != -1 || desc.indexOf(keywords) != -1)
|
||||
if(!$(this).hasClass('am-hide'))
|
||||
{
|
||||
$(this).show();
|
||||
count++;
|
||||
} else {
|
||||
$(this).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(count == 0)
|
||||
{
|
||||
$('.not-data-tips').removeClass('none');
|
||||
} else {
|
||||
$('.not-data-tips').addClass('none');
|
||||
}
|
||||
}
|
||||
|
||||
// 空则显示提示
|
||||
if($list.find('>li:not(.am-hide)').length > 0)
|
||||
{
|
||||
$('.not-data-tips').addClass('am-hide');
|
||||
} else {
|
||||
$('.plugins-data-list ul li').show();
|
||||
$('.not-data-tips').addClass('none');
|
||||
$('.not-data-tips').removeClass('am-hide');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -61,29 +73,35 @@ $(function()
|
|||
$('.plugins-data-list ul').dragsort({ dragSelector: 'button.submit-move', placeHolderTemplate: '<li><div class="item drag-sort-dotted"></div></li>'});
|
||||
|
||||
// 排序开启/取消/保存
|
||||
$('.submit-move-sort-open').on('click', function()
|
||||
$('.submit-move-setup-open').on('click', function()
|
||||
{
|
||||
$('.submit-move-sort-open').addClass('am-hide');
|
||||
$('.submit-move-sort-save').removeClass('am-hide');
|
||||
$('.submit-move-sort-cancel').removeClass('am-hide');
|
||||
$('.plugins-data-list ul li .submit-move').removeClass('am-hide');
|
||||
$('.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 .submit-move').removeClass('am-hide');
|
||||
$('.plugins-data-list > ul > li .plugins-category-item').removeClass('am-hide');
|
||||
});
|
||||
$('.submit-move-sort-cancel').on('click', function()
|
||||
$('.submit-move-setup-cancel').on('click', function()
|
||||
{
|
||||
$('.submit-move-sort-open').removeClass('am-hide');
|
||||
$('.submit-move-sort-save').addClass('am-hide');
|
||||
$('.submit-move-sort-cancel').addClass('am-hide');
|
||||
$('.plugins-data-list ul li .submit-move').addClass('am-hide');
|
||||
$('.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 .submit-move').addClass('am-hide');
|
||||
$('.plugins-data-list > ul > li .plugins-category-item').addClass('am-hide');
|
||||
});
|
||||
$('.submit-move-sort-save').on('click', function()
|
||||
$('.submit-move-setup-save').on('click', function()
|
||||
{
|
||||
var json = {};
|
||||
$('.plugins-data-list ul li').each(function(k, v)
|
||||
$('.plugins-data-list > ul > li').each(function(k, v)
|
||||
{
|
||||
var id = parseInt($(this).data('id')) || 0;
|
||||
if(id > 0)
|
||||
{
|
||||
json[k] = id;
|
||||
json[k] = {
|
||||
sort: k,
|
||||
id: id,
|
||||
cid: $(this).find('.plugins-category-item select').val() || 0
|
||||
};
|
||||
}
|
||||
});
|
||||
var len = 0;
|
||||
|
|
@ -100,7 +118,7 @@ $(function()
|
|||
// ajax请求
|
||||
$.AMUI.progress.start();
|
||||
$.ajax({
|
||||
url: RequestUrlHandle($('.plugins-data-list ul').data('sort-save-url')),
|
||||
url: RequestUrlHandle($('.plugins-data-list ul').data('setup-save-url')),
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
timeout: 10000,
|
||||
|
|
@ -110,11 +128,16 @@ $(function()
|
|||
$.AMUI.progress.done();
|
||||
if(result.code == 0)
|
||||
{
|
||||
$('.submit-move-sort-open').removeClass('am-hide');
|
||||
$('.submit-move-sort-save').addClass('am-hide');
|
||||
$('.submit-move-sort-cancel').addClass('am-hide');
|
||||
$('.plugins-data-list ul li .submit-move').addClass('am-hide');
|
||||
$('.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 .submit-move').addClass('am-hide');
|
||||
$('.plugins-data-list > ul > li .plugins-category-item').addClass('am-hide');
|
||||
Prompt(result.msg, 'success');
|
||||
setTimeout(function()
|
||||
{
|
||||
window.location.reload();
|
||||
}, 1500);
|
||||
} else {
|
||||
Prompt(result.msg);
|
||||
}
|
||||
|
|
@ -141,4 +164,15 @@ $(function()
|
|||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
// 分类筛选
|
||||
$('.plugins-category-nav button').on('click', function()
|
||||
{
|
||||
// 分类样式
|
||||
$('.plugins-category-nav button').removeClass('am-btn-secondary').addClass('am-btn-default');
|
||||
$(this).addClass('am-btn-secondary');
|
||||
|
||||
// 搜索
|
||||
PluginsSearch();
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue