设置角色组
This commit is contained in:
@@ -84,6 +84,33 @@ class User extends Backend
|
||||
return parent::edit($ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置角色组
|
||||
*/
|
||||
public function group($ids = null)
|
||||
{
|
||||
$row = $this->model->get($ids);
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$this->token();
|
||||
$params = $this->request->post('row/a');
|
||||
$groupId = isset($params['group_id']) ? intval($params['group_id']) : 0;
|
||||
if (!$groupId || !\app\admin\model\UserGroup::get($groupId)) {
|
||||
$this->error('请选择角色组');
|
||||
}
|
||||
$result = $row->allowField(['group_id'])->save(['group_id' => $groupId]);
|
||||
if ($result === false) {
|
||||
$this->error('角色组保存失败');
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
$this->view->assign('row', $row);
|
||||
$this->view->assign('groupList', build_select('row[group_id]', \app\admin\model\UserGroup::column('id,name'), $row['group_id'], ['class' => 'form-control selectpicker']));
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<form id="group-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input class="form-control" type="text" value="{$row.nickname|htmlentities}" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">{:__('Group')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{$groupList}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-3"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -18,6 +18,7 @@
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user/user/edit')}"
|
||||
data-operate-del="{:$auth->check('user/user/del')}"
|
||||
data-operate-group="{:$auth->check('user/user/group')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -33,6 +33,7 @@ class Profile extends Api
|
||||
public function userCenter()
|
||||
{
|
||||
$userInfo = $this->auth->getUserinfo();
|
||||
$group = $this->auth->getUser()->group;
|
||||
$userInfo = [
|
||||
'id' => $userInfo['id'],
|
||||
'avatarUrl' => $userInfo['avatar'] ?: $this->request->domain() . '/uploads/avatar/default.png',
|
||||
@@ -40,6 +41,7 @@ class Profile extends Api
|
||||
'phoneNumber' => '',
|
||||
'gender' => $userInfo['gender'],
|
||||
'role' => $userInfo['role'],
|
||||
'group_name' => $group ? trim((string)$group['name']) : '',
|
||||
];
|
||||
$publishCount = DemandService::where('user_id', $userInfo['id'])->count();
|
||||
$quoteCount = DemandBiddingService::where(['user_id' => $userInfo['id']])->count();
|
||||
|
||||
@@ -547,7 +547,7 @@ if (!function_exists('convert_keys_to_camelcase')) {
|
||||
if (!function_exists('generate_order_sn')) {
|
||||
function generate_order_sn($prefix = '', $digits = 10)
|
||||
{
|
||||
$sn = date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, $digits);
|
||||
$sn = date('Ymd') . substr(implode('', array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, $digits);
|
||||
return strtoupper($prefix) . $sn;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,23 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
{field: 'jointime', title: __('Jointime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
|
||||
{field: 'joinip', title: __('Joinip'), formatter: Table.api.formatter.search},
|
||||
{field: 'status', title: __('Status'), formatter: Table.api.formatter.status, searchList: {normal: __('Normal'), hidden: __('Hidden')}},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
{
|
||||
field: 'operate',
|
||||
title: __('Operate'),
|
||||
table: table,
|
||||
events: Table.api.events.operate,
|
||||
buttons: [
|
||||
{
|
||||
name: 'group',
|
||||
text: __('角色'),
|
||||
title: __('角色组'),
|
||||
classname: 'btn btn-xs btn-info btn-dialog',
|
||||
icon: 'fa fa-users',
|
||||
url: 'user/user/group'
|
||||
}
|
||||
],
|
||||
formatter: Table.api.formatter.operate
|
||||
}
|
||||
]
|
||||
]
|
||||
});
|
||||
@@ -58,6 +74,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
group: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// 接口环境:按小程序运行版本自动切换,无需注释切换域名
|
||||
// develop: 开发者工具运行/真机预览调试 | trial: 上传后的体验版 | release: 审核发布的正式版
|
||||
const API_ROOTS = {
|
||||
develop: 'http://codebg.cn', // 本地开发(phpStudy,hosts 需将 codebg.cn 指向 127.0.0.1)
|
||||
develop: 'https://code.syoai.cn', // 本地开发(http://codebg.cn)
|
||||
trial: 'https://code.syoai.cn', // 体验版(线上,需 https + 备案域名)
|
||||
release: 'https://code.syoai.cn', // 正式版(线上,需 https + 备案域名)
|
||||
};
|
||||
|
||||
@@ -30,12 +30,6 @@ const menuData = [
|
||||
url: '',
|
||||
type: 'balance',
|
||||
},
|
||||
{
|
||||
title: '推广中心',
|
||||
tit: '',
|
||||
url: '',
|
||||
type: 'promoter',
|
||||
},
|
||||
],
|
||||
[{
|
||||
title: '帮助中心',
|
||||
@@ -53,6 +47,16 @@ const menuData = [
|
||||
],
|
||||
];
|
||||
|
||||
// 会员角色组名为 Promoter 时才展示推广中心
|
||||
const PROMOTER_GROUP = 'Promoter';
|
||||
const promoterMenu = {
|
||||
title: '推广中心',
|
||||
tit: '',
|
||||
url: '',
|
||||
icon: '',
|
||||
type: 'promoter',
|
||||
};
|
||||
|
||||
const orderTagInfos = [{
|
||||
title: '待付款',
|
||||
iconName: 'wallet',
|
||||
@@ -134,10 +138,14 @@ Page({
|
||||
customerServiceInfo,
|
||||
} = res.data;
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
menuData[0] = menuData[0].filter(item => item.type !== 'quote');
|
||||
menuData[0] = menuData[0].filter((item) => item.type !== 'quote' && item.type !== 'promoter');
|
||||
if (userInfo.role === 'dev') {
|
||||
menuData[0].splice(1, 0, { title: '我投标的需求', tit: '', url: '', icon: '', type: 'quote' });
|
||||
}
|
||||
if (userInfo.group_name === PROMOTER_GROUP) {
|
||||
const balanceIndex = menuData[0].findIndex((item) => item.type === 'balance');
|
||||
menuData[0].splice(balanceIndex === -1 ? menuData[0].length : balanceIndex + 1, 0, { ...promoterMenu });
|
||||
}
|
||||
menuData[0].forEach((v) => {
|
||||
countsData.forEach((counts) => {
|
||||
if (counts.type === v.type) {
|
||||
|
||||
Reference in New Issue
Block a user