Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
飞鱼0526
ShopXO
提交
3be30994
ShopXO
项目概览
飞鱼0526
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3be30994
编写于
6月 14, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
角色列表优化
上级
d8eb911d
变更
23
展开全部
隐藏空白更改
内联
并排
Showing
23 changed file
with
1042 addition
and
615 deletion
+1042
-615
application/admin/controller/Common.php
application/admin/controller/Common.php
+8
-8
application/admin/controller/Goods.php
application/admin/controller/Goods.php
+4
-1
application/admin/controller/Power.php
application/admin/controller/Power.php
+7
-136
application/admin/controller/Role.php
application/admin/controller/Role.php
+219
-0
application/admin/form/Role.php
application/admin/form/Role.php
+115
-0
application/admin/view/default/power/index.html
application/admin/view/default/power/index.html
+3
-3
application/admin/view/default/power/role.html
application/admin/view/default/power/role.html
+0
-64
application/admin/view/default/role/detail.html
application/admin/view/default/role/detail.html
+20
-0
application/admin/view/default/role/index.html
application/admin/view/default/role/index.html
+9
-0
application/admin/view/default/role/module/operate.html
application/admin/view/default/role/module/operate.html
+15
-0
application/admin/view/default/role/save_info.html
application/admin/view/default/role/save_info.html
+5
-5
application/common.php
application/common.php
+6
-2
application/index/controller/Common.php
application/index/controller/Common.php
+8
-8
application/module/FormHandleModule.php
application/module/FormHandleModule.php
+9
-4
application/service/AdminPowerService.php
application/service/AdminPowerService.php
+1
-239
application/service/AdminRoleService.php
application/service/AdminRoleService.php
+305
-0
application/service/AdminService.php
application/service/AdminService.php
+1
-1
application/service/GoodsService.php
application/service/GoodsService.php
+0
-72
config/shopxo.sql
config/shopxo.sql
+264
-47
public/static/admin/default/css/power.css
public/static/admin/default/css/power.css
+0
-0
public/static/admin/default/css/role.css
public/static/admin/default/css/role.css
+16
-0
public/static/admin/default/js/power.js
public/static/admin/default/js/power.js
+0
-25
public/static/admin/default/js/role.js
public/static/admin/default/js/role.js
+27
-0
未找到文件。
application/admin/controller/Common.php
浏览文件 @
3be30994
...
...
@@ -255,21 +255,21 @@ class Common extends Controller
public
function
FormTableInit
()
{
// 获取表格模型
$
module
=
FormModulePath
(
$this
->
data_request
);
if
(
!
empty
(
$
module
))
$
data
=
FormModulePath
(
$this
->
data_request
);
if
(
!
empty
(
$
data
))
{
// 调用表格处理
$re
s
=
(
new
FormHandleModule
())
->
Run
(
$module
,
$this
->
data_request
);
if
(
$re
s
[
'code'
]
==
0
)
$re
t
=
(
new
FormHandleModule
())
->
Run
(
$data
[
'module'
],
$data
[
'action'
]
,
$this
->
data_request
);
if
(
$re
t
[
'code'
]
==
0
)
{
$this
->
form_table
=
$re
s
[
'data'
][
'table'
];
$this
->
form_where
=
$re
s
[
'data'
][
'where'
];
$this
->
form_params
=
$re
s
[
'data'
][
'params'
];
$this
->
form_table
=
$re
t
[
'data'
][
'table'
];
$this
->
form_where
=
$re
t
[
'data'
][
'where'
];
$this
->
form_params
=
$re
t
[
'data'
][
'params'
];
$this
->
assign
(
'form_table'
,
$this
->
form_table
);
$this
->
assign
(
'form_params'
,
$this
->
form_params
);
}
else
{
$this
->
form_error
=
$re
s
[
'msg'
];
$this
->
form_error
=
$re
t
[
'msg'
];
$this
->
assign
(
'form_error'
,
$this
->
form_error
);
}
}
...
...
application/admin/controller/Goods.php
浏览文件 @
3be30994
...
...
@@ -129,7 +129,10 @@ class Goods extends Common
if
(
!
empty
(
$params
[
'id'
]))
{
// 条件
$where
=
GoodsService
::
GetAdminIndexWhere
(
$params
);
$where
=
[
[
'is_delete_time'
,
'='
,
0
],
[
'id'
,
'='
,
intval
(
$params
[
'id'
])],
];
// 获取数据
$data_params
=
[
...
...
application/admin/controller/Power.php
浏览文件 @
3be30994
...
...
@@ -10,11 +10,10 @@
// +----------------------------------------------------------------------
namespace
app\admin\controller
;
use
think\facade\Hook
;
use
app\service\AdminPowerService
;
/**
* 权限管理
* 权限
菜单
管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
...
...
@@ -63,13 +62,13 @@ class Power extends Common
}
/**
* [
Power
Save 权限添加/编辑]
* [Save 权限添加/编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-13T21:41:03+0800
*/
public
function
Power
Save
()
public
function
Save
()
{
// 是否ajax
if
(
!
IS_AJAX
)
...
...
@@ -78,19 +77,19 @@ class Power extends Common
}
// 开始操作
$params
=
input
(
'post.'
)
;
$params
=
$this
->
data_post
;
$params
[
'admin'
]
=
$this
->
admin
;
return
AdminPowerService
::
PowerSave
(
$params
);
}
/**
* [
Power
Delete 权限删除]
* [Delete 权限删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:40:29+0800
*/
public
function
Power
Delete
()
public
function
Delete
()
{
// 是否ajax
if
(
!
IS_AJAX
)
...
...
@@ -99,137 +98,9 @@ class Power extends Common
}
// 开始操作
$params
=
input
(
'post.'
)
;
$params
=
$this
->
data_post
;
$params
[
'admin'
]
=
$this
->
admin
;
return
AdminPowerService
::
PowerDelete
(
$params
);
}
/**
* [Role 角色组列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
Role
()
{
$data_params
=
[
'field'
=>
'id,name,is_enable,add_time'
,
];
$data
=
AdminPowerService
::
RoleList
(
$data_params
);
$this
->
assign
(
'data_list'
,
$data
);
return
$this
->
fetch
();
}
/**
* [RoleSaveInfo 角色组添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
RoleSaveInfo
()
{
// 参数
$params
=
input
();
// 角色组
$data
=
[];
if
(
!
empty
(
$params
[
'id'
]))
{
$data_params
=
[
'where'
=>
[
'id'
=>
intval
(
$params
[
'id'
])],
];
$ret
=
AdminPowerService
::
RoleList
(
$data_params
);
if
(
!
empty
(
$ret
[
0
][
'id'
]))
{
$data
=
$ret
[
0
];
// 权限关联数据
$params
[
'role_id'
]
=
$ret
[
0
][
'id'
];
}
}
// 菜单列表
$power
=
AdminPowerService
::
RolePowerEditData
(
$params
);
$this
->
assign
(
'common_is_enable_list'
,
lang
(
'common_is_enable_list'
));
$this
->
assign
(
'power'
,
$power
);
// 角色编辑页面钩子
$hook_name
=
'plugins_view_admin_power_role_save'
;
$this
->
assign
(
$hook_name
.
'_data'
,
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'role_id'
=>
isset
(
$params
[
'id'
])
?
$params
[
'id'
]
:
0
,
'data'
=>
&
$data
,
'params'
=>
&
$params
,
]));
// 数据
$this
->
assign
(
'data'
,
$data
);
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
}
/**
* [RoleSave 角色组添加/编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
RoleSave
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
$this
->
error
(
'非法访问'
);
}
// 开始操作
return
AdminPowerService
::
RoleSave
(
input
(
'post.'
));
}
/**
* [RoleDelete 角色删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public
function
RoleDelete
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
$this
->
error
(
'非法访问'
);
}
// 开始操作
return
AdminPowerService
::
RoleDelete
(
input
(
'post.'
));
}
/**
* [RoleStatusUpdate 角色状态更新]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-12T22:23:06+0800
*/
public
function
RoleStatusUpdate
()
{
// 是否ajax
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 开始操作
$params
=
input
(
'post.'
);
$params
[
'admin'
]
=
$this
->
admin
;
return
AdminPowerService
::
RoleStatusUpdate
(
$params
);
}
}
?>
\ No newline at end of file
application/admin/controller/Role.php
0 → 100644
浏览文件 @
3be30994
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\admin\controller
;
use
think\facade\Hook
;
use
app\service\AdminRoleService
;
/**
* 角色管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
Role
extends
Common
{
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T12:39:08+0800
*/
public
function
__construct
()
{
// 调用父类前置方法
parent
::
__construct
();
// 登录校验
$this
->
IsLogin
();
// 权限校验
$this
->
IsPower
();
}
/**
* [Index 角色组列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
Index
()
{
// 总数
$total
=
AdminRoleService
::
RoleTotal
(
$this
->
form_where
);
// 分页
$page_params
=
[
'number'
=>
$this
->
page_size
,
'total'
=>
$total
,
'where'
=>
$this
->
data_request
,
'page'
=>
$this
->
page
,
'url'
=>
MyUrl
(
'admin/role/index'
),
];
$page
=
new
\
base\Page
(
$page_params
);
// 获取数据列表
$data_params
=
[
'where'
=>
$this
->
form_where
,
'm'
=>
$page
->
GetPageStarNumber
(),
'n'
=>
$this
->
page_size
,
];
$ret
=
AdminRoleService
::
RoleList
(
$data_params
);
// 基础参数赋值
$this
->
assign
(
'params'
,
$this
->
data_request
);
$this
->
assign
(
'page_html'
,
$page
->
GetPageHtml
());
$this
->
assign
(
'data_list'
,
$ret
[
'data'
]);
return
$this
->
fetch
();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-05T08:21:54+0800
*/
public
function
Detail
()
{
if
(
!
empty
(
$this
->
data_request
[
'id'
]))
{
// 条件
$where
=
[
[
'id'
,
'='
,
intval
(
$this
->
data_request
[
'id'
])],
];
// 获取列表
$data_params
=
[
'm'
=>
0
,
'n'
=>
1
,
'where'
=>
$where
,
];
$ret
=
AdminRoleService
::
RoleList
(
$data_params
);
$data
=
(
empty
(
$ret
[
'data'
])
||
empty
(
$ret
[
'data'
][
0
]))
?
[]
:
$ret
[
'data'
][
0
];
$this
->
assign
(
'data'
,
$data
);
}
return
$this
->
fetch
();
}
/**
* [SaveInfo 角色组添加/编辑页面]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
SaveInfo
()
{
// 参数
$params
=
$this
->
data_request
;
// 角色组
$data
=
[];
if
(
!
empty
(
$params
[
'id'
]))
{
$data_params
=
[
'where'
=>
[
'id'
=>
intval
(
$params
[
'id'
])],
];
$ret
=
AdminRoleService
::
RoleList
(
$data_params
);
if
(
!
empty
(
$ret
[
'data'
][
0
])
&&
!
empty
(
$ret
[
'data'
][
0
][
'id'
]))
{
$data
=
$ret
[
'data'
][
0
];
// 权限关联数据
$params
[
'role_id'
]
=
$ret
[
'data'
][
0
][
'id'
];
}
}
// 菜单列表
$power
=
AdminRoleService
::
RolePowerEditData
(
$params
);
$this
->
assign
(
'power'
,
$power
);
// 角色编辑页面钩子
$hook_name
=
'plugins_view_admin_role_save'
;
$this
->
assign
(
$hook_name
.
'_data'
,
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'role_id'
=>
isset
(
$params
[
'id'
])
?
$params
[
'id'
]
:
0
,
'data'
=>
&
$data
,
'params'
=>
&
$params
,
]));
// 数据
$this
->
assign
(
'data'
,
$data
);
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
}
/**
* [Save 角色组添加/编辑]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-14T21:37:02+0800
*/
public
function
Save
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
$this
->
error
(
'非法访问'
);
}
// 开始操作
return
AdminRoleService
::
RoleSave
(
$this
->
data_post
);
}
/**
* [Delete 角色删除]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-15T11:03:30+0800
*/
public
function
Delete
()
{
// 是否ajax请求
if
(
!
IS_AJAX
)
{
$this
->
error
(
'非法访问'
);
}
// 开始操作
return
AdminRoleService
::
RoleDelete
(
$this
->
data_post
);
}
/**
* [StatusUpdate 角色状态更新]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2017-01-12T22:23:06+0800
*/
public
function
StatusUpdate
()
{
// 是否ajax
if
(
!
IS_AJAX
)
{
return
$this
->
error
(
'非法访问'
);
}
// 开始操作
$params
=
$this
->
data_post
;
$params
[
'admin'
]
=
$this
->
admin
;
return
AdminRoleService
::
RoleStatusUpdate
(
$params
);
}
}
?>
\ No newline at end of file
application/admin/form/Role.php
0 → 100644
浏览文件 @
3be30994
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\admin\form
;
use
app\service\AdminService
;
/**
* 角色管理动态表格
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-11
* @desc description
*/
class
Role
{
// 基础条件
public
$condition_base
=
[];
/**
* 入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-11
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Run
(
$params
=
[])
{
return
[
// 基础配置
'base'
=>
[
'key_field'
=>
'id'
,
'status_field'
=>
'is_enable'
,
'is_search'
=>
1
,
'search_url'
=>
MyUrl
(
'admin/role/index'
),
'is_delete'
=>
1
,
'delete_url'
=>
MyUrl
(
'admin/role/delete'
),
'delete_key'
=>
'ids'
,
'detail_title'
=>
'基础信息'
,
],
// 表单配置
'form'
=>
[
[
'view_type'
=>
'checkbox'
,
'is_checked'
=>
0
,
'checked_text'
=>
'反选'
,
'not_checked_text'
=>
'全选'
,
'align'
=>
'center'
,
'not_show_data'
=>
[
1
],
'not_show_key'
=>
'id'
,
'width'
=>
80
,
],
[
'label'
=>
'角色名称'
,
'view_type'
=>
'field'
,
'view_key'
=>
'name'
,
'search_config'
=>
[
'form_type'
=>
'input'
,
'where_type'
=>
'like'
,
],
],
[
'label'
=>
'状态'
,
'view_type'
=>
'status'
,
'view_key'
=>
'is_enable'
,
'post_url'
=>
MyUrl
(
'admin/role/statusupdate'
),
'is_form_su'
=>
1
,
'align'
=>
'center'
,
'search_config'
=>
[
'form_type'
=>
'select'
,
'where_type'
=>
'in'
,
'data'
=>
lang
(
'common_is_text_list'
),
'data_key'
=>
'id'
,
'data_name'
=>
'name'
,
'is_multiple'
=>
1
,
],
],
[
'label'
=>
'创建时间'
,
'view_type'
=>
'field'
,
'view_key'
=>
'add_time'
,
'search_config'
=>
[
'form_type'
=>
'datetime'
,
],
],
[
'label'
=>
'更新时间'
,
'view_type'
=>
'field'
,
'view_key'
=>
'upd_time'
,
'search_config'
=>
[
'form_type'
=>
'datetime'
,
],
],
[
'label'
=>
'操作'
,
'view_type'
=>
'operate'
,
'view_key'
=>
'role/module/operate'
,
'align'
=>
'center'
,
'fixed'
=>
'right'
,
],
],
];
}
}
?>
\ No newline at end of file
application/admin/view/default/power/index.html
浏览文件 @
3be30994
...
...
@@ -18,7 +18,7 @@
</div>
<div
class=
"am-popup-bd"
>
<!-- form start -->
<form
class=
"am-form form-validation admin-save"
action=
"{{:MyUrl('admin/power/
power
save')}}"
method=
"POST"
request-type=
"ajax-reload"
request-value=
""
>
<form
class=
"am-form form-validation admin-save"
action=
"{{:MyUrl('admin/power/save')}}"
method=
"POST"
request-type=
"ajax-reload"
request-value=
""
>
<div
class=
"am-form-group"
>
<label>
栏目级别
</label>
<select
class=
"am-radius chosen-select"
name=
"pid"
data-validation-message=
"栏目级别选择错误"
>
...
...
@@ -75,7 +75,7 @@
<div
class=
"am-fr m-r-20 list-submit"
>
<span
class=
"am-icon-edit am-icon-md c-p submit-edit {{if !empty($v['item'])}}am-margin-right-xs{{/if}}"
data-am-modal=
"{target: '#power-save-win'}"
data-json=
'{{:json_encode($v)}}'
data-tag=
"power-save-win"
data-item=
"{{if !empty($v['item'])}}ok{{else /}}no{{/if}}"
></span>
{{if empty($v['item'])}}
<span
class=
"am-icon-trash-o am-icon-md c-p m-l-20 m-r-15 submit-delete"
data-url=
"{{:MyUrl('admin/power/
power
delete')}}"
data-id=
"{{$v.id}}"
></span>
<span
class=
"am-icon-trash-o am-icon-md c-p m-l-20 m-r-15 submit-delete"
data-url=
"{{:MyUrl('admin/power/delete')}}"
data-id=
"{{$v.id}}"
></span>
{{/if}}
</div>
</li>
...
...
@@ -88,7 +88,7 @@
</label>
<div
class=
"am-fr am-margin-left-sm find-submit"
>
<span
class=
"am-icon-edit am-icon-sm c-p submit-edit"
data-am-modal=
"{target: '#power-save-win'}"
data-json=
'{{:json_encode($vs)}}'
data-tag=
"power-save-win"
data-item=
"no"
></span>
<span
class=
"am-icon-trash-o am-icon-sm c-p am-margin-left-sm am-margin-right-sm submit-delete"
data-url=
"{{:MyUrl('admin/power/
power
delete')}}"
data-id=
"{{$vs.id}}"
></span>
<span
class=
"am-icon-trash-o am-icon-sm c-p am-margin-left-sm am-margin-right-sm submit-delete"
data-url=
"{{:MyUrl('admin/power/delete')}}"
data-id=
"{{$vs.id}}"
></span>
</div>
</li>
{{/foreach}}
...
...
application/admin/view/default/power/role.html
已删除
100755 → 0
浏览文件 @
d8eb911d
{{include file="public/header" /}}
<!-- right content start -->
<div
class=
"content-right"
>
<div
class=
"content"
>
<!-- operation start -->
<div
class=
"am-g"
>
<a
href=
"{{:MyUrl('admin/power/rolesaveinfo')}}"
class=
"am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"
>
新增
</a>
</div>
<!-- operation end -->
<!-- list start -->
<div
class=
"am-scrollable-horizontal am-table-scrollable-horizontal am-margin-top-sm"
>
<table
class=
"am-table am-table-striped am-table-hover am-table-bordered am-text-nowrap am-table-td-fixed-last"
>
<thead>
<tr>
<th>
名称
</th>
<th
class=
"am-text-center"
>
状态
</th>
<th>
创建时间
</th>
<th
class=
"am-text-center"
data-width=
"170"
>
操作
</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr
id=
"data-list-{{$v.id}}"
{{
if
$
v
['
is_enable
']
eq
0}}
class=
"am-active"
{{/
if
}}
>
<td
class=
"am-text-middle"
>
{{$v.name}}
</td>
<td
class=
"am-text-middle am-text-center"
>
<a
href=
"javascript:;"
class=
"am-icon-btn am-icon-check submit-state {{if $v['is_enable'] eq 1}}am-success{{else /}}am-default{{/if}}"
data-url=
"{{:MyUrl('admin/power/RoleStatusUpdate')}}"
data-id=
"{{$v.id}}"
data-state=
"{{$v['is_enable']}}"
data-is-update-status=
"1"
></a>
</td>
<td
class=
"am-text-middle"
>
{{:date('Y-m-d H:i:s', $v['add_time'])}}
</td>
<td
class=
"am-operate-grid"
data-width=
"170"
>
<div
class=
"am-scrollable-vertical"
>
{{if $v['id'] eq 1}}
<span
class=
"cr-ccc"
>
不可操作
</span>
{{else /}}
<a
class=
"am-btn am-btn-secondary am-btn-xs am-radius"
href=
"{{:MyUrl('admin/power/rolesaveinfo', array('id'=>$v['id']))}}"
>
<i
class=
"am-icon-edit"
></i>
<span>
编辑
</span>
</a>
<button
class=
"am-btn am-btn-danger am-btn-xs am-radius submit-delete"
data-url=
"{{:MyUrl('admin/power/roledelete')}}"
data-id=
"{{$v.id}}"
>
<i
class=
"am-icon-trash-o"
></i>
<span>
删除
</span>
</button>
{{/if}}
</div>
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
{{if empty($data_list)}}
<div
class=
"table-no"
><i
class=
"am-icon-warning"
></i>
没有相关数据
</div>
{{/if}}
</div>
<!-- list end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/admin/view/default/role/detail.html
0 → 100644
浏览文件 @
3be30994
<!-- 继承公共的 form -->
{{extend name="public/module/detail" /}}
<!-- 重写数据模块 -->
{{block name="detail_data"}}
<!-- 父级内容 -->
{__block__}
<!-- 权限项 -->
<div
class=
"am-panel am-panel-default"
>
<div
class=
"am-panel-hd"
>
权限项
</div>
<div
class=
"am-panel-bd"
>
<ul
class=
"am-avg-sm-2 am-avg-md-4 am-avg-lg-6"
>
{{foreach $data.items as $item}}
<li
class=
"am-padding-vertical-sm"
>
{{$item}}
</li>
{{/foreach}}
</ul>
</div>
</div>
{{/block}}
\ No newline at end of file
application/admin/view/default/role/index.html
0 → 100644
浏览文件 @
3be30994
<!-- 继承公共的 form -->
{{extend name="public/module/form" /}}
<!-- 表单顶部操作栏 -->
{{block name="form_operate_top"}}
<a
href=
"{{:MyUrl('admin/role/saveinfo')}}"
class=
"am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"
>
新增
</a>
<!-- 父级内容 -->
{__block__}
{{/block}}
\ No newline at end of file
application/admin/view/default/role/module/operate.html
0 → 100644
浏览文件 @
3be30994
<!-- 操作栏 -->
<button
type=
"button"
class=
"am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup"
data-url=
"{{:MyUrl('admin/role/detail', ['id'=>$module_data['id']])}}"
>
<i
class=
"am-icon-eye"
></i>
<span>
详情
</span>
</button>
{{if $module_data['id'] neq 1}}
<a
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-btn-block"
href=
"{{:MyUrl('admin/role/saveinfo', array('id'=>$module_data['id']))}}"
>
<i
class=
"am-icon-edit"
></i>
<span>
编辑
</span>
</a>
<button
type=
"button"
class=
"am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete"
data-url=
"{{:MyUrl('admin/role/delete')}}"
data-id=
"{{$module_data.id}}"
data-key=
"ids"
>
<i
class=
"am-icon-trash-o"
></i>
<span>
删除
</span>
</button>
{{/if}}
\ No newline at end of file
application/admin/view/default/
power/role_
save_info.html
→
application/admin/view/default/
role/
save_info.html
浏览文件 @
3be30994
...
...
@@ -4,7 +4,7 @@
<div
class=
"content-right"
>
<div
class=
"content"
>
<!-- form start -->
<form
class=
"am-form form-validation view-save"
action=
"{{:MyUrl('admin/
power/rolesave')}}"
method=
"POST"
request-type=
"ajax-url"
request-value=
"{{:MyUrl('admin/power/role
')}}"
>
<form
class=
"am-form form-validation view-save"
action=
"{{:MyUrl('admin/
role/save')}}"
method=
"POST"
request-type=
"ajax-url"
request-value=
"{{:MyUrl('admin/role/index
')}}"
>
<legend>
<span
class=
"am-text-default"
>
{{if empty($data['id'])}}
...
...
@@ -13,7 +13,7 @@
角色编辑
{{/if}}
</span>
<a
href=
"{{:MyUrl('admin/
power/role
')}}"
class=
"am-fr am-text-sm am-margin-top-xs am-icon-mail-reply"
>
返回
</a>
<a
href=
"{{:MyUrl('admin/
role/index
')}}"
class=
"am-fr am-text-sm am-margin-top-xs am-icon-mail-reply"
>
返回
</a>
</legend>
<div
class=
"am-form-group"
>
<label>
角色名称
</label>
...
...
@@ -59,14 +59,14 @@
<!-- 插件扩展数据 start -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div
class=
"plugins-tag"
>
<span>
plugins_view_admin_
power_
role_save
</span>
<span>
plugins_view_admin_role_save
</span>
</div>
{{/if}}
{{if !empty($plugins_view_admin_
power_role_save_data) and is_array($plugins_view_admin_power
_role_save_data)}}
{{if !empty($plugins_view_admin_
role_save_data) and is_array($plugins_view_admin
_role_save_data)}}
<div
class=
"am-alert am-alert-secondary"
>
<label
class=
"am-text-sm am-text-warning"
>
该区域为插件扩展数据,请按照插件文档填写相应的值
</label>
<div>
{{foreach $plugins_view_admin_
power_
role_save_data as $hook}}
{{foreach $plugins_view_admin_role_save_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
...
...
application/common.php
浏览文件 @
3be30994
...
...
@@ -68,7 +68,8 @@ function FormModulePath($params = [])
{
// 参数变量
$path
=
''
;
$controller
=
request
()
->
controller
();
$controller
=
request
()
->
controller
();
$action
=
request
()
->
action
();
// 是否插件调用
if
(
$controller
==
'Plugins'
)
...
...
@@ -81,7 +82,10 @@ function FormModulePath($params = [])
$path
=
'\app\\'
.
request
()
->
module
()
.
'\form\\'
.
$controller
;
}
return
$path
;
return
[
'module'
=>
$path
,
'action'
=>
$action
,
];
}
/**
...
...
application/index/controller/Common.php
浏览文件 @
3be30994
...
...
@@ -383,21 +383,21 @@ class Common extends Controller
public
function
FormTableInit
()
{
// 获取表格模型
$
module
=
FormModulePath
(
$this
->
data_request
);
if
(
!
empty
(
$
module
))
$
data
=
FormModulePath
(
$this
->
data_request
);
if
(
!
empty
(
$
data
))
{
// 调用表格处理
$re
s
=
(
new
FormHandleModule
())
->
Run
(
$module
,
$this
->
data_request
);
if
(
$re
s
[
'code'
]
==
0
)
$re
t
=
(
new
FormHandleModule
())
->
Run
(
$data
[
'module'
],
$data
[
'action'
]
,
$this
->
data_request
);
if
(
$re
t
[
'code'
]
==
0
)
{
$this
->
form_table
=
$re
s
[
'data'
][
'table'
];
$this
->
form_where
=
$re
s
[
'data'
][
'where'
];
$this
->
form_params
=
$re
s
[
'data'
][
'params'
];
$this
->
form_table
=
$re
t
[
'data'
][
'table'
];
$this
->
form_where
=
$re
t
[
'data'
][
'where'
];
$this
->
form_params
=
$re
t
[
'data'
][
'params'
];
$this
->
assign
(
'form_table'
,
$this
->
form_table
);
$this
->
assign
(
'form_params'
,
$this
->
form_params
);
}
else
{
$this
->
form_error
=
$re
s
[
'msg'
];
$this
->
form_error
=
$re
t
[
'msg'
];
$this
->
assign
(
'form_error'
,
$this
->
form_error
);
}
}
...
...
application/module/FormHandleModule.php
浏览文件 @
3be30994
...
...
@@ -41,9 +41,10 @@ class FormHandleModule
* @date 2020-06-02
* @desc description
* @param [string] $module [模块位置]
* @param [string] $action [模块方法(默认 Run 方法,可自动匹配控制器方法名)]
* @param [mixed] $params [参数数据]
*/
public
function
Run
(
$module
,
$params
=
[])
public
function
Run
(
$module
,
$
action
=
'Run'
,
$
params
=
[])
{
// 参数
$this
->
out_params
=
$params
;
...
...
@@ -54,12 +55,16 @@ class FormHandleModule
return
DataReturn
(
'表格模块未定义['
.
$module
.
']'
,
-
1
);
}
// 调用方法
$action
=
'Run'
;
// 指定方法检测
$this
->
module_obj
=
new
$module
();
if
(
!
method_exists
(
$this
->
module_obj
,
$action
))
{
return
DataReturn
(
'表格方法未定义['
.
$module
.
'->'
.
$action
.
'()]'
,
-
1
);
// 默认方法检测
$action
=
'Run'
;
if
(
!
method_exists
(
$this
->
module_obj
,
$action
))
{
return
DataReturn
(
'表格方法未定义['
.
$module
.
'->'
.
$action
.
'()]'
,
-
1
);
}
}
// 获取表格配置数据
...
...
application/service/AdminPowerService.php
浏览文件 @
3be30994
...
...
@@ -13,7 +13,7 @@ namespace app\service;
use
think\Db
;
/**
* 权限服务层
* 权限
菜单
服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
...
...
@@ -171,244 +171,6 @@ class AdminPowerService
return
DataReturn
(
'删除失败'
,
-
100
);
}
/**
* 角色列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleList
(
$params
=
[])
{
$where
=
empty
(
$params
[
'where'
])
?
[]
:
$params
[
'where'
];
$field
=
empty
(
$params
[
'field'
])
?
'*'
:
$params
[
'field'
];
$order_by
=
empty
(
$params
[
'order_by'
])
?
'id desc'
:
trim
(
$params
[
'order_by'
]);
// 获取角色列表
$data
=
Db
::
name
(
'Role'
)
->
where
(
$where
)
->
order
(
$order_by
)
->
select
();
if
(
!
empty
(
$data
))
{
foreach
(
$data
as
&
$v
)
{
// 关联查询权限和角色数据
if
(
$v
[
'id'
]
==
1
)
{
$v
[
'item'
]
=
Db
::
name
(
'Power'
)
->
select
();
}
else
{
$v
[
'item'
]
=
Db
::
name
(
'Role'
)
->
alias
(
'r'
)
->
join
([
'__ROLE_POWER__'
=>
'rp'
],
'rp.role_id = r.id'
)
->
join
([
'__POWER__'
=>
'p'
],
'rp.power_id = p.id'
)
->
where
(
array
(
'r.id'
=>
$v
[
'id'
]))
->
field
(
'p.id,p.name'
)
->
select
();
}
}
}
return
$data
;
}
/**
* 角色状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleStatusUpdate
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'操作id有误'
,
],
[
'checked_type'
=>
'in'
,
'key_name'
=>
'state'
,
'checked_data'
=>
[
0
,
1
],
'error_msg'
=>
'状态有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 数据更新
if
(
Db
::
name
(
'Role'
)
->
where
([
'id'
=>
intval
(
$params
[
'id'
])])
->
update
([
'is_enable'
=>
intval
(
$params
[
'state'
])]))
{
return
DataReturn
(
'编辑成功'
);
}
return
DataReturn
(
'编辑失败或数据未改变'
,
-
100
);
}
/**
* 权限菜单编辑列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RolePowerEditData
(
$params
=
[])
{
// 当前角色关联的所有菜单id
$action
=
empty
(
$params
[
'role_id'
])
?
[]
:
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
$params
[
'role_id'
]])
->
column
(
'power_id'
);
// 权限列表
$power_field
=
'id,name,is_show'
;
$power
=
Db
::
name
(
'Power'
)
->
field
(
$power_field
)
->
where
([
'pid'
=>
0
])
->
order
(
'sort'
)
->
select
();
if
(
!
empty
(
$power
))
{
foreach
(
$power
as
&
$v
)
{
// 是否有权限
$v
[
'is_power'
]
=
in_array
(
$v
[
'id'
],
$action
)
?
'ok'
:
'no'
;
// 获取子权限
$item
=
Db
::
name
(
'Power'
)
->
field
(
$power_field
)
->
where
(
array
(
'pid'
=>
$v
[
'id'
]))
->
order
(
'sort'
)
->
select
();
if
(
!
empty
(
$item
))
{
foreach
(
$item
as
$ks
=>
$vs
)
{
$item
[
$ks
][
'is_power'
]
=
in_array
(
$vs
[
'id'
],
$action
)
?
'ok'
:
'no'
;
}
$v
[
'item'
]
=
$item
;
}
}
}
return
$power
;
}
/**
* 角色保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-07T00:24:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleSave
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'name'
,
'error_msg'
=>
'角色名称不能为空'
,
],
[
'checked_type'
=>
'length'
,
'key_name'
=>
'name'
,
'checked_data'
=>
'2,8'
,
'error_msg'
=>
'角色名称格式 2~8 个字符之间'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 角色数据更新
$role_data
=
array
(
'name'
=>
$params
[
'name'
],
'is_enable'
=>
isset
(
$params
[
'is_enable'
])
?
intval
(
$params
[
'is_enable'
])
:
0
,
);
if
(
empty
(
$params
[
'id'
]))
{
$role_data
[
'add_time'
]
=
time
();
$role_id
=
Db
::
name
(
'Role'
)
->
insertGetId
(
$role_data
);
}
else
{
if
(
Db
::
name
(
'Role'
)
->
where
([
'id'
=>
$params
[
'id'
]])
->
update
(
$role_data
)
!==
false
)
{
$role_id
=
$params
[
'id'
];
}
}
if
(
empty
(
$role_id
))
{
Db
::
rollback
();
return
DataReturn
(
'角色数据保存失败'
,
-
2
);
}
// 权限关联数据删除
if
(
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
$role_id
])
->
delete
()
===
false
)
{
Db
::
rollback
();
return
DataReturn
(
'角色权限操作失败'
,
-
3
);
}
// 权限关联数据添加
if
(
!
empty
(
$params
[
'power_id'
]))
{
$rp_data
=
[];
foreach
(
explode
(
','
,
$params
[
'power_id'
])
as
$power_id
)
{
if
(
!
empty
(
$power_id
))
{
$rp_data
[]
=
[
'role_id'
=>
$role_id
,
'power_id'
=>
$power_id
,
'add_time'
=>
time
(),
];
}
}
if
(
!
empty
(
$rp_data
))
{
if
(
Db
::
name
(
'RolePower'
)
->
insertAll
(
$rp_data
)
<
count
(
$rp_data
))
{
Db
::
rollback
();
return
DataReturn
(
'角色权限添加失败'
,
-
10
);
}
}
}
// 提交事务
Db
::
commit
();
// 清除用户权限数据
self
::
PowerCacheDelete
();
return
DataReturn
(
'操作成功'
,
0
);
}
/**
* 角色删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-07T00:24:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleDelete
(
$params
=
[])
{
// 参数是否有误
if
(
empty
(
$params
[
'id'
]))
{
return
DataReturn
(
'角色id有误'
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 删除角色
if
(
Db
::
name
(
'Role'
)
->
delete
(
intval
(
$params
[
'id'
]))
!==
false
&&
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
intval
(
$params
[
'id'
])])
->
delete
()
!==
false
)
{
// 提交事务
Db
::
commit
();
// 清除用户权限数据
self
::
PowerCacheDelete
();
return
DataReturn
(
'删除成功'
,
0
);
}
Db
::
rollback
();
return
DataReturn
(
'删除失败'
,
-
100
);
}
/**
* 后台管理员权限缓存数据清除
* @author Devil
...
...
application/service/AdminRoleService.php
0 → 100644
浏览文件 @
3be30994
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
app\service
;
use
think\Db
;
use
app\service\AdminPowerService
;
/**
* 角色服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class
AdminRoleService
{
/**
* 角色列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleList
(
$params
=
[])
{
$where
=
empty
(
$params
[
'where'
])
?
[]
:
$params
[
'where'
];
$field
=
empty
(
$params
[
'field'
])
?
'*'
:
$params
[
'field'
];
$order_by
=
empty
(
$params
[
'order_by'
])
?
'id desc'
:
trim
(
$params
[
'order_by'
]);
$m
=
isset
(
$params
[
'm'
])
?
intval
(
$params
[
'm'
])
:
0
;
$n
=
isset
(
$params
[
'n'
])
?
intval
(
$params
[
'n'
])
:
10
;
// 获取角色列表
$data
=
Db
::
name
(
'Role'
)
->
field
(
$field
)
->
where
(
$where
)
->
order
(
$order_by
)
->
limit
(
$m
,
$n
)
->
select
();
if
(
!
empty
(
$data
))
{
foreach
(
$data
as
&
$v
)
{
// 关联查询权限和角色数据
if
(
$v
[
'id'
]
==
1
)
{
$v
[
'items'
]
=
Db
::
name
(
'Power'
)
->
column
(
'name'
);
}
else
{
$v
[
'items'
]
=
Db
::
name
(
'Role'
)
->
alias
(
'r'
)
->
join
([
'__ROLE_POWER__'
=>
'rp'
],
'rp.role_id = r.id'
)
->
join
([
'__POWER__'
=>
'p'
],
'rp.power_id = p.id'
)
->
where
(
array
(
'r.id'
=>
$v
[
'id'
]))
->
column
(
'p.name'
);
}
// 时间
$v
[
'add_time'
]
=
date
(
'Y-m-d H:i:s'
,
$v
[
'add_time'
]);
$v
[
'upd_time'
]
=
empty
(
$v
[
'upd_time'
])
?
''
:
date
(
'Y-m-d H:i:s'
,
$v
[
'upd_time'
]);
}
}
return
DataReturn
(
'处理成功'
,
0
,
$data
);
}
/**
* 角色总数
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-07
* @desc description
* @param [array] $where [条件]
*/
public
static
function
RoleTotal
(
$where
=
[])
{
return
(
int
)
Db
::
name
(
'Role'
)
->
where
(
$where
)
->
count
();
}
/**
* 角色状态更新
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleStatusUpdate
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'id'
,
'error_msg'
=>
'操作id有误'
,
],
[
'checked_type'
=>
'in'
,
'key_name'
=>
'state'
,
'checked_data'
=>
[
0
,
1
],
'error_msg'
=>
'状态有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 数据更新
if
(
Db
::
name
(
'Role'
)
->
where
([
'id'
=>
intval
(
$params
[
'id'
])])
->
update
([
'is_enable'
=>
intval
(
$params
[
'state'
])]))
{
return
DataReturn
(
'编辑成功'
);
}
return
DataReturn
(
'编辑失败或数据未改变'
,
-
100
);
}
/**
* 权限菜单编辑列表
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
* @param [array] $params [输入参数]
*/
public
static
function
RolePowerEditData
(
$params
=
[])
{
// 当前角色关联的所有菜单id
$action
=
empty
(
$params
[
'role_id'
])
?
[]
:
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
$params
[
'role_id'
]])
->
column
(
'power_id'
);
// 权限列表
$power_field
=
'id,name,is_show'
;
$power
=
Db
::
name
(
'Power'
)
->
field
(
$power_field
)
->
where
([
'pid'
=>
0
])
->
order
(
'sort'
)
->
select
();
if
(
!
empty
(
$power
))
{
foreach
(
$power
as
&
$v
)
{
// 是否有权限
$v
[
'is_power'
]
=
in_array
(
$v
[
'id'
],
$action
)
?
'ok'
:
'no'
;
// 获取子权限
$item
=
Db
::
name
(
'Power'
)
->
field
(
$power_field
)
->
where
(
array
(
'pid'
=>
$v
[
'id'
]))
->
order
(
'sort'
)
->
select
();
if
(
!
empty
(
$item
))
{
foreach
(
$item
as
$ks
=>
$vs
)
{
$item
[
$ks
][
'is_power'
]
=
in_array
(
$vs
[
'id'
],
$action
)
?
'ok'
:
'no'
;
}
$v
[
'item'
]
=
$item
;
}
}
}
return
$power
;
}
/**
* 角色保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-07T00:24:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleSave
(
$params
=
[])
{
// 请求参数
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'name'
,
'error_msg'
=>
'角色名称不能为空'
,
],
[
'checked_type'
=>
'length'
,
'key_name'
=>
'name'
,
'checked_data'
=>
'2,8'
,
'error_msg'
=>
'角色名称格式 2~8 个字符之间'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 角色数据更新
$role_data
=
[
'name'
=>
$params
[
'name'
],
'is_enable'
=>
isset
(
$params
[
'is_enable'
])
?
intval
(
$params
[
'is_enable'
])
:
0
,
'upd_time'
=>
time
(),
];
// 不存在添加,则更新
if
(
empty
(
$params
[
'id'
]))
{
$role_data
[
'add_time'
]
=
time
();
$role_id
=
Db
::
name
(
'Role'
)
->
insertGetId
(
$role_data
);
}
else
{
// 是否包含删除超级管理员角色
if
(
$params
[
'id'
]
==
1
)
{
return
DataReturn
(
'超级管理员角色不可编辑'
,
-
1
);
}
// 更新
if
(
Db
::
name
(
'Role'
)
->
where
([
'id'
=>
$params
[
'id'
]])
->
update
(
$role_data
)
!==
false
)
{
$role_id
=
$params
[
'id'
];
}
}
if
(
empty
(
$role_id
))
{
Db
::
rollback
();
return
DataReturn
(
'角色数据保存失败'
,
-
2
);
}
// 权限关联数据删除
if
(
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
$role_id
])
->
delete
()
===
false
)
{
Db
::
rollback
();
return
DataReturn
(
'角色权限操作失败'
,
-
3
);
}
// 权限关联数据添加
if
(
!
empty
(
$params
[
'power_id'
]))
{
$rp_data
=
[];
foreach
(
explode
(
','
,
$params
[
'power_id'
])
as
$power_id
)
{
if
(
!
empty
(
$power_id
))
{
$rp_data
[]
=
[
'role_id'
=>
$role_id
,
'power_id'
=>
$power_id
,
'add_time'
=>
time
(),
];
}
}
if
(
!
empty
(
$rp_data
))
{
if
(
Db
::
name
(
'RolePower'
)
->
insertAll
(
$rp_data
)
<
count
(
$rp_data
))
{
Db
::
rollback
();
return
DataReturn
(
'角色权限添加失败'
,
-
10
);
}
}
}
// 提交事务
Db
::
commit
();
// 清除用户权限数据
AdminPowerService
::
PowerCacheDelete
();
return
DataReturn
(
'操作成功'
,
0
);
}
/**
* 角色删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-07T00:24:14+0800
* @param [array] $params [输入参数]
*/
public
static
function
RoleDelete
(
$params
=
[])
{
// 参数是否有误
if
(
empty
(
$params
[
'ids'
]))
{
return
DataReturn
(
'角色id有误'
,
-
1
);
}
// 是否数组
if
(
!
is_array
(
$params
[
'ids'
]))
{
$params
[
'ids'
]
=
explode
(
','
,
$params
[
'ids'
]);
}
// 是否包含删除超级管理员角色
if
(
in_array
(
1
,
$params
[
'ids'
]))
{
return
DataReturn
(
'超级管理员角色不可删除'
,
-
1
);
}
// 开启事务
Db
::
startTrans
();
// 删除角色
if
(
Db
::
name
(
'Role'
)
->
where
([
'id'
=>
$params
[
'ids'
]])
->
delete
()
!==
false
&&
Db
::
name
(
'RolePower'
)
->
where
([
'role_id'
=>
$params
[
'ids'
]])
->
delete
()
!==
false
)
{
// 提交事务
Db
::
commit
();
// 清除用户权限数据
AdminPowerService
::
PowerCacheDelete
();
return
DataReturn
(
'删除成功'
,
0
);
}
Db
::
rollback
();
return
DataReturn
(
'删除失败'
,
-
100
);
}
}
?>
\ No newline at end of file
application/service/AdminService.php
浏览文件 @
3be30994
...
...
@@ -302,7 +302,7 @@ class AdminService
// 参数是否有误
if
(
empty
(
$params
[
'ids'
]))
{
return
DataReturn
(
'
商品
id有误'
,
-
1
);
return
DataReturn
(
'
管理员
id有误'
,
-
1
);
}
// 是否数组
if
(
!
is_array
(
$params
[
'ids'
]))
...
...
application/service/GoodsService.php
浏览文件 @
3be30994
...
...
@@ -968,78 +968,6 @@ class GoodsService
return
self
::
GoodsDataHandle
(
$params
,
$data
);
}
/**
* 后台管理商品列表条件
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-10T22:16:29+0800
* @param [array] $params [输入参数]
*/
public
static
function
GetAdminIndexWhere
(
$params
=
[])
{
$where
=
[
[
'is_delete_time'
,
'='
,
0
],
];
// id
if
(
!
empty
(
$params
[
'id'
]))
{
$where
[]
=
[
'id'
,
'='
,
intval
(
$params
[
'id'
])];
}
// 模糊
if
(
!
empty
(
$params
[
'keywords'
]))
{
$where
[]
=
[
'title|model|simple_desc|seo_title|seo_keywords|seo_keywords'
,
'like'
,
'%'
.
$params
[
'keywords'
]
.
'%'
];
}
// 是否更多条件
if
(
isset
(
$params
[
'is_more'
])
&&
$params
[
'is_more'
]
==
1
)
{
// 等值
if
(
isset
(
$params
[
'is_shelves'
])
&&
$params
[
'is_shelves'
]
>
-
1
)
{
$where
[]
=
[
'is_shelves'
,
'='
,
intval
(
$params
[
'is_shelves'
])];
}
if
(
isset
(
$params
[
'is_home_recommended'
])
&&
$params
[
'is_home_recommended'
]
>
-
1
)
{
$where
[]
=
[
'is_home_recommended'
,
'='
,
intval
(
$params
[
'is_home_recommended'
])];
}
// 时间
if
(
!
empty
(
$params
[
'time_start'
]))
{
$where
[]
=
[
'add_time'
,
'>'
,
strtotime
(
$params
[
'time_start'
])];
}
if
(
!
empty
(
$params
[
'time_end'
]))
{
$where
[]
=
[
'add_time'
,
'<'
,
strtotime
(
$params
[
'time_end'
])];
}
// 商品分类
if
(
!
empty
(
$params
[
'category_id'
])
&&
$params
[
'category_id'
]
>
0
)
{
$category_ids
=
self
::
GoodsCategoryItemsIds
([
intval
(
$params
[
'category_id'
])],
1
);
$goods_ids
=
Db
::
name
(
'GoodsCategoryJoin'
)
->
where
([
'category_id'
=>
$category_ids
])
->
column
(
'goods_id'
);
if
(
!
empty
(
$goods_ids
))
{
$where
[]
=
[
'id'
,
'in'
,
$goods_ids
];
}
else
{
// 避免空条件造成无效的错觉
$where
[]
=
[
'id'
,
'='
,
0
];
}
}
// 品牌
if
(
!
empty
(
$params
[
'brand_id'
])
&&
$params
[
'brand_id'
]
>
0
)
{
$where
[]
=
[
'brand_id'
,
'='
,
intval
(
$params
[
'brand_id'
])];
}
}
return
$where
;
}
/**
* 商品保存
* @author Devil
...
...
config/shopxo.sql
浏览文件 @
3be30994
此差异已折叠。
点击以展开。
public/static/admin/default/css/power.css
100755 → 100644
浏览文件 @
3be30994
文件模式从 100755 更改为 100644
public/static/admin/default/css/role.css
0 → 100755
浏览文件 @
3be30994
/**
* 权限添加/编辑
*/
.tree-list
li
{
list-style-type
:
none
;
padding-left
:
5px
!important
;
}
.tree-list
li
label
{
display
:
inline
;
}
.list-find
{
margin
:
0px
0px
5px
35px
;
overflow
:
hidden
;
padding-top
:
5px
!important
;
}
.tree-list
i
{
width
:
10px
;
}
.list-find
li
{
line-height
:
26px
;
}
.list-find
span
{
font-weight
:
normal
;
}
.tree-list
li
{
border
:
1px
dashed
#d3ebf7
;
background
:
#f5fafd
;
padding
:
6px
10px
;
}
.list-find
li
{
background
:
#ecf8ff
;
float
:
left
;
margin
:
0px
10px
10px
0px
;
}
.list-find
li
input
[
type
=
"checkbox"
]
{
vertical-align
:
text-top
;
}
@media
only
screen
and
(
min-width
:
641px
)
{
.list-submit
,
.find-submit
{
display
:
none
;
}
.list-find
li
:hover
.find-submit
,
.tree-list
li
:hover
.list-submit
{
display
:
block
!important
;
}
}
\ No newline at end of file
public/static/admin/default/js/power.js
浏览文件 @
3be30994
...
...
@@ -16,31 +16,6 @@ $(function()
$
(
this
).
parent
().
next
(
'
.list-find
'
).
toggle
(
100
);
});
/**
* 全选/取消
*/
$
(
'
.node-choice
'
).
on
(
'
click
'
,
function
()
{
var
state
=
$
(
this
).
is
(
'
:checked
'
);
$
(
this
).
parents
(
'
li
'
).
next
(
'
.list-find
'
).
find
(
'
input[type="checkbox"]
'
).
each
(
function
()
{
this
.
checked
=
state
;
});
});
/**
* 子元素选择/取消操作
*/
$
(
'
.list-find input[type="checkbox"]
'
).
on
(
'
click
'
,
function
()
{
var
state
=
(
$
(
this
).
parents
(
'
.list-find
'
).
find
(
'
input[type="checkbox"]:checked
'
).
length
>
0
);
$
(
this
).
parents
(
'
ul
'
).
prev
().
find
(
'
label input
'
).
each
(
function
()
{
this
.
checked
=
state
;
});
});
/**
* 添加
*/
...
...
public/static/admin/default/js/role.js
0 → 100755
浏览文件 @
3be30994
$
(
function
()
{
/**
* 全选/取消
*/
$
(
'
.node-choice
'
).
on
(
'
click
'
,
function
()
{
var
state
=
$
(
this
).
is
(
'
:checked
'
);
$
(
this
).
parents
(
'
li
'
).
next
(
'
.list-find
'
).
find
(
'
input[type="checkbox"]
'
).
each
(
function
()
{
this
.
checked
=
state
;
});
});
/**
* 子元素选择/取消操作
*/
$
(
'
.list-find input[type="checkbox"]
'
).
on
(
'
click
'
,
function
()
{
var
state
=
(
$
(
this
).
parents
(
'
.list-find
'
).
find
(
'
input[type="checkbox"]:checked
'
).
length
>
0
);
$
(
this
).
parents
(
'
ul
'
).
prev
().
find
(
'
label input
'
).
each
(
function
()
{
this
.
checked
=
state
;
});
});
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录