Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
3159115c
ShopXO
项目概览
纵之格
/
ShopXO
通知
394
Star
16
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3159115c
编写于
5月 26, 2023
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
插件管理新增分类
上级
fc5d99a9
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
558 addition
and
129 deletion
+558
-129
app/admin/controller/Pluginsadmin.php
app/admin/controller/Pluginsadmin.php
+8
-3
app/admin/controller/Pluginscategory.php
app/admin/controller/Pluginscategory.php
+76
-0
app/admin/lang/cht.php
app/admin/lang/cht.php
+8
-1
app/admin/lang/en.php
app/admin/lang/en.php
+8
-1
app/admin/lang/spa.php
app/admin/lang/spa.php
+8
-1
app/admin/lang/zh.php
app/admin/lang/zh.php
+8
-1
app/admin/view/default/pluginsadmin/index.html
app/admin/view/default/pluginsadmin/index.html
+33
-11
app/admin/view/default/pluginscategory/index.html
app/admin/view/default/pluginscategory/index.html
+61
-0
app/lang/cht.php
app/lang/cht.php
+8
-2
app/lang/en.php
app/lang/en.php
+8
-2
app/lang/spa.php
app/lang/spa.php
+8
-2
app/lang/zh.php
app/lang/zh.php
+8
-2
app/service/BrandCategoryService.php
app/service/BrandCategoryService.php
+9
-6
app/service/PluginsAdminService.php
app/service/PluginsAdminService.php
+32
-27
app/service/PluginsCategoryService.php
app/service/PluginsCategoryService.php
+161
-0
public/static/admin/default/css/pluginsadmin.css
public/static/admin/default/css/pluginsadmin.css
+45
-35
public/static/admin/default/js/pluginsadmin.js
public/static/admin/default/js/pluginsadmin.js
+69
-35
未找到文件。
app/admin/controller/Pluginsadmin.php
浏览文件 @
3159115c
...
...
@@ -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
S
ort
Save
()
public
function
S
etup
Save
()
{
return
ApiService
::
ApiDataReturn
(
PluginsAdminService
::
S
ort
Save
(
$this
->
data_request
));
return
ApiService
::
ApiDataReturn
(
PluginsAdminService
::
S
etup
Save
(
$this
->
data_request
));
}
/**
...
...
app/admin/controller/Pluginscategory.php
0 → 100644
浏览文件 @
3159115c
<?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
));
}
}
?>
\ No newline at end of file
app/admin/lang/cht.php
浏览文件 @
3159115c
...
...
@@ -1024,7 +1024,7 @@ return [
'base_search_input_placeholder'
=>
'請輸入名稱/描述'
,
'base_top_tips_one'
=>
'清單排序方式[自定義排序->最早安裝]'
,
'base_top_tips_two'
=>
'可點擊拖動圖標按鈕調整挿件調用和展示順序'
,
'base_open_s
ort_title'
=>
'開啟排序
'
,
'base_open_s
etup_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'
=>
'挿件分類'
,
],
// 安装页面
...
...
app/admin/lang/en.php
浏览文件 @
3159115c
...
...
@@ -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_s
ort_title'
=>
'Enable sorting
'
,
'base_open_s
etup_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'
,
],
// 安装页面
...
...
app/admin/lang/spa.php
浏览文件 @
3159115c
...
...
@@ -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_s
ort_title'
=>
'Abrir clasific
ación'
,
'base_open_s
etup_title'
=>
'Activar configur
ació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'
,
],
// 安装页面
...
...
app/admin/lang/zh.php
浏览文件 @
3159115c
...
...
@@ -1024,7 +1024,7 @@ return [
'base_search_input_placeholder'
=>
'请输入名称/描述'
,
'base_top_tips_one'
=>
'列表排序方式[ 自定义排序 -> 最早安装 ]'
,
'base_top_tips_two'
=>
'可点击拖动图标按钮调整插件调用和展示顺序'
,
'base_open_s
ort_title'
=>
'开启排序
'
,
'base_open_s
etup_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'
=>
'插件分类'
,
],
// 安装页面
...
...
app/admin/view/default/pluginsadmin/index.html
浏览文件 @
3159115c
...
...
@@ -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-s
ort
-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-s
ort
-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-s
etup
-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-s
etup
-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-s
ort-save-url=
"{{:MyUrl('admin/pluginsadmin/sort
save')}}"
>
<ul
class=
"already-install am-nbfc"
data-s
etup-save-url=
"{{:MyUrl('admin/pluginsadmin/setup
save')}}"
>
{{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-s
ort
-save-url=
"{{:MyUrl('admin/pluginsadmin/sortsave')}}"
>
<ul
class=
"am-nbfc"
data-s
etup
-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}}"
>
...
...
app/admin/view/default/pluginscategory/index.html
0 → 100644
浏览文件 @
3159115c
{{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>
\ No newline at end of file
app/lang/cht.php
浏览文件 @
3159115c
...
...
@@ -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}]、請先安裝'
,
's
ort_save_data_empty_tips'
=>
'沒有可保存的挿件數據'
,
's
ort_save_data_error_tips'
=>
'挿件排序
數據有誤'
,
's
etup_save_data_empty_tips'
=>
'沒有可保存的挿件數據'
,
's
etup_save_data_error_tips'
=>
'挿件設定
數據有誤'
,
],
// 插件服务
'plugins'
=>
[
...
...
app/lang/en.php
浏览文件 @
3159115c
...
...
@@ -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'
=>
[
...
...
app/lang/spa.php
浏览文件 @
3159115c
...
...
@@ -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'
=>
[
...
...
app/lang/zh.php
浏览文件 @
3159115c
...
...
@@ -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'
=>
[
...
...
app/service/BrandCategoryService.php
浏览文件 @
3159115c
...
...
@@ -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'
),
-
10
0
);
}
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
);
}
/**
...
...
app/service/PluginsAdminService.php
浏览文件 @
3159115c
...
...
@@ -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
S
ort
Save
(
$params
=
[])
public
static
function
S
etup
Save
(
$params
=
[])
{
// 请求类型
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'data'
,
'error_msg'
=>
MyLang
(
'common_service.pluginsadmin.s
ort
_save_data_empty_tips'
),
'error_msg'
=>
MyLang
(
'common_service.pluginsadmin.s
etup
_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.s
ort
_save_data_error_tips'
),
-
1
);
return
DataReturn
(
MyLang
(
'common_service.pluginsadmin.s
etup
_save_data_error_tips'
),
-
1
);
}
}
?>
\ No newline at end of file
app/service/PluginsCategoryService.php
0 → 100644
浏览文件 @
3159115c
<?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
);
}
}
?>
\ No newline at end of file
public/static/admin/default/css/pluginsadmin.css
浏览文件 @
3159115c
...
...
@@ -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
#ff
8a8a
!important
;
background
:
#fff
2f2
;
.plugins-data-list
>
ul
.item.am-active
{
border
:
1px
solid
#ff
d3d3
!important
;
background
:
#fff
8f8
;
}
.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
#f
8815d
!important
;
background
:
#fff
bf5
;
.plugins-data-list
>
ul
.already-install
.item.am-active
{
border
:
1px
solid
#f
fe0d7
!important
;
background
:
#fff
efb
;
}
.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
;
}
\ No newline at end of file
public/static/admin/default/js/pluginsadmin.js
浏览文件 @
3159115c
...
...
@@ -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-s
ort
-open
'
).
on
(
'
click
'
,
function
()
$
(
'
.submit-move-s
etup
-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-s
ort
-cancel
'
).
on
(
'
click
'
,
function
()
$
(
'
.submit-move-s
etup
-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-s
ort
-save
'
).
on
(
'
click
'
,
function
()
$
(
'
.submit-move-s
etup
-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
(
'
s
ort
-save-url
'
)),
url
:
RequestUrlHandle
(
$
(
'
.plugins-data-list ul
'
).
data
(
'
s
etup
-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
();
});
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录