This commit is contained in:
2020-02-18 10:15:02 +08:00
parent 5fb45fc57c
commit d4325e3016
18 changed files with 194 additions and 159 deletions

View File

@@ -63,4 +63,19 @@ function get_client_ip($type = 0, $adv = false) {
function avatar($uid, $size = 'middle') {
return request()->root(true) . '/static/common/images/default_avatar_' . $size . '.jpg';
}
// 分析枚举类型配置值 格式 a:名称1,b:名称2
function parse_config_attr($string) {
$array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n"));
if (strpos($string, ':')) {
$value = array();
foreach ($array as $val) {
list($k, $v) = explode(':', $val);
$value[$k] = $v;
}
} else {
$value = $array;
}
return $value;
}

View File

@@ -9,6 +9,7 @@
namespace app\controller;
use app\model\Menu;
use think\facade\View;
/**
* @title 后端公共模块
@@ -73,9 +74,8 @@ class Admin extends Base {
}
//菜单设置
$this->getMenu();
// $this->setMeta();
// $this->data['__menu__'] = ['main' => [], 'child' => []];
$this->data['meta_title'] = $this->getCurrentTitle();
View::assign('meta_title', $this->getCurrentTitle());
}
}
@@ -186,7 +186,7 @@ class Admin extends Base {
}
}
}
$this->data['__menu__'] = $menu;
View::assign('__menu__', $menu);
}
protected function getContentMenu() {

View File

@@ -11,7 +11,9 @@ namespace app\controller;
use think\App;
use think\exception\ValidateException;
use think\facade\View;
use think\facade\Cache;
use think\Validate;
use app\model\Config;
class Base {
@@ -62,6 +64,12 @@ class Base {
$this->app = $app;
$this->request = $this->app->request;
$config = Cache::get('system_config_data');
if (!$config) {
$config = Config::getConfigList($this->request);
Cache::set('system_config_data', $config);
}
View::assign('config', $config);
// 控制器初始化
$this->initialize();
}

View File

@@ -7,11 +7,15 @@
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\admin\controller;
use app\common\controller\Admin;
namespace app\controller\admin;
use app\model\Category as CategoryM;
use app\model\Attribute;
use app\model\Module;
use app\controller\Admin;
/**
* @title 分类管理
* @title 栏目管理
* @description 分类管理
*/
class Category extends Admin {
@@ -22,26 +26,34 @@ class Category extends Admin {
}
/**
* @title 分类列表
* @title 栏目列表
*/
public function index($model_id = '') {
$map = array('status' => array('gt', -1));
if ($model_id) {
$map['model_id'] = $model_id;
public function index(CategoryM $category, Attribute $attr, Module $medule) {
$param = $this->request->param();
$map = [];
$map[] = ['status', '>', -1];
if (isset($param['model_id']) && $param['model_id']) {
$map[] = ['model_id', '=', $model_id];
}
$list = db('Category')->where($map)->order('sort asc,id asc')->column('*', 'id');
$list = $category->where($map)->order('sort asc,id asc')->select();
if (!empty($list)) {
$tree = new \com\Tree();
$list = $tree->toFormatTree($list);
$tree = new \sent\tree\Tree();
$list = $tree->toFormatTree($list->toArray());
}
$subsql = db('Attribute')->where('name', 'category_id')->fetchSql(true)->column('model_id');
$model_list = model('Model')->where('id IN ('. $subsql.')')->select();
// $subsql = $attr->where('name', 'category_id')->fetchSql(true)->column('model_id');
// $model_list = $medule->where('id IN ('. $subsql.')')->select();
$this->assign('tree', $list);
$this->assign('model_list', $model_list);
$this->assign('model_id', $model_id);
$this->setMeta('栏目列表');
$this->data = [
'tree' => $list,
'module_id' => isset($param['module_id']) ? $param['module_id'] : 0,
'model_list' => []
];
// $this->assign('tree', $list);
// $this->assign('model_list', $model_list);
// $this->assign('model_id', $model_id);
// $this->setMeta('栏目列表');
return $this->fetch();
}

View File

@@ -25,7 +25,10 @@ class Config extends Admin {
* @title 配置管理
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
public function index() {
public function index(ConfigM $config) {
$param = $this->request->param();
$group = input('group', 0, 'trim');
$name = input('name', '', 'trim');
/* 查询条件初始化 */
@@ -38,13 +41,13 @@ class Config extends Admin {
$map['name'] = array('like', '%' . $name . '%');
}
$list = $this->model->where($map)->order('id desc')->paginate(25, false, array(
$list = $config->where($map)->order('id desc')->paginate(25, false, array(
'query' => $this->request->param(),
));
// 记录当前列表页的cookie
Cookie('__forward__', $_SERVER['REQUEST_URI']);
$data = array(
$this->data = array(
'group' => config('config_group_list'),
'config_type' => config('config_config_list'),
'page' => $list->render(),
@@ -52,32 +55,28 @@ class Config extends Admin {
'list' => $list,
);
$this->assign($data);
$this->setMeta('配置管理');
return $this->fetch();
}
/**
* @title 信息配置
*/
public function group($id = 1) {
public function group(ConfigM $config, $id = 1) {
if ($this->request->isPost()) {
$config = $this->request->post('config/a');
$model = model('Config');
foreach ($config as $key => $value) {
$model->where(array('name' => $key))->setField('value', $value);
$data = $this->request->post();
foreach ($data['config'] as $key => $value) {
ConfigM::update(['value' => $value], ['name' => $key]);
}
//清除db_config_data缓存
cache('db_config_data', null);
cache('system_config_data', null);
return $this->success("更新成功!");
} else {
$type = config('config_group_list');
$list = (new ConfigM())->where(array('status' => 1, 'group' => $id))->field('id,name,title,extra,value,remark,type')->order('sort')->select();
$list = $config->where(array('status' => 1, 'group' => $id))->field('id,name,title,extra,value,remark,type')->order('sort')->select();
if ($list) {
$this->data['list'] = $list;
}
// $this->assign('id', $id);
// $this->setMeta($type[$id] . '设置');
$this->data['id'] = $id;
return $this->fetch();
}
}
@@ -86,17 +85,14 @@ class Config extends Admin {
* @title 新增配置
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
public function add() {
public function add(ConfigM $config) {
if ($this->request->isPost()) {
$config = model('Config');
$data = $this->request->post();
if ($data) {
$id = $config->validate(true)->save($data);
$id = $config->save($data);
if ($id) {
cache('db_config_data', null);
//记录行为
action_log('update_config', 'config', $id, session('user_auth.uid'));
return $this->success('新增成功', url('index'));
cache('system_config_data', null);
return $this->success('新增成功', url('/admin/config/index'));
} else {
return $this->error('新增失败');
}
@@ -104,8 +100,7 @@ class Config extends Admin {
return $this->error($config->getError());
}
} else {
$this->setMeta('新增配置');
$this->assign('info', null);
$this->data['info'] = [];
return $this->fetch('edit');
}
}

View File

@@ -6,9 +6,11 @@
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\controller\admin;
use sent\tree\Tree;
use app\controller\Admin;
use app\model\Menu as MenuM;
/**
* @title 菜单管理
@@ -22,21 +24,19 @@ class Menu extends Admin {
/**
* @title 菜单列表
*/
public function index() {
public function index(MenuM $menu) {
$map = array();
$title = trim(input('get.title'));
$list = db("Menu")->where($map)->field(true)->order('sort asc,id asc')->column('*', 'id');
int_to_string($list, array('hide' => array(1 => '是', 0 => '否'), 'is_dev' => array(1 => '是', 0 => '否')));
$list = $menu->where($map)->field(true)->order('sort asc,id asc')->select();
// int_to_string($list, array('hide' => array(1 => '是', 0 => '否'), 'is_dev' => array(1 => '是', 0 => '否')));
if (!empty($list)) {
$tree = new \com\Tree();
$list = $tree->toFormatTree($list);
$list = (new Tree())->toFormatTree($list->append(['is_dev_text', 'hide_text'])->toArray());
}
// 记录当前列表页的cookie
Cookie('__forward__', $_SERVER['REQUEST_URI']);
// Cookie('__forward__', $_SERVER['REQUEST_URI']);
$this->setMeta('菜单列表');
$this->assign('list', $list);
$this->data['list'] = $list;
return $this->fetch();
}

View File

@@ -21,20 +21,7 @@ class User extends Admin {
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
public function index(Member $member) {
$param = $this->request->param();
$map[] = ['status', '>=', 0];
if (isset($param['nickname']) && $param['nickname']) {
$map['nickname'] = array('like', '%' . $param['nickname'] . '%');
}
if (isset($param['username']) && $param['username']) {
$map['username'] = array('like', '%' . (string) $param['nickname'] . '%');
}
$order = "uid desc";
$list = $member->where($map)->order($order)
->paginate(15, false, array(
'param' => $param,
));
$list = $member->getUserList($this->request);
$this->data['list'] = $list;
$this->data['page'] = $list->render();
@@ -46,24 +33,18 @@ class User extends Admin {
* @title 添加用户
* @author colin <molong@tensent.cn>
*/
public function add() {
$model = \think\Loader::model('Member');
public function add(Member $member) {
if ($this->request->isPost()) {
$data = $this->request->param();
//创建注册用户
$result = $model->register($data['username'], $data['password'], $data['repassword'], $data['email'], false);
$result = $member->register($data['username'], $data['password'], $data['repassword'], $data['email'], false);
if ($result) {
return $this->success('用户添加成功!', url('admin/user/index'));
} else {
return $this->error($model->getError());
}
} else {
$data = array(
'keyList' => $model->addfield,
);
$this->assign($data);
$this->setMeta("添加用户");
return $this->fetch('public/edit');
return $this->fetch('admin/public/edit');
}
}

View File

@@ -12,7 +12,7 @@ namespace app\model;
/**
* 设置模型
*/
class Category {
class Category extends \think\Model{
protected $name = "Category";
protected $auto = array('update_time', 'status' => 1);

View File

@@ -149,8 +149,8 @@ class Member extends Model {
}];
}
$list = self::with(['depart', 'role'])->field('uid,username,nickname,status,email,mobile,department,reg_time')->where($map)->order($order)->paginate($request->pageConfig);
return $list->append(['avatar', 'status_text'])->toArray();
$list = self::with(['role'])->field('uid,username,nickname,status,email,mobile,department,reg_time')->where($map)->order($order)->paginate($request->pageConfig);
return $list->append(['avatar', 'status_text']);
}
/**

View File

@@ -19,9 +19,19 @@ class Menu extends \think\Model {
'id' => 'integer',
);
protected function getIsDevTextAttr($value, $data){
$is_dev = [0 => '否', 1 => '是'];
return isset($is_dev[$data['is_dev']]) ? $is_dev[$data['is_dev']] : '是';
}
protected function getHideTextAttr($value, $data){
$is_dev = [0 => '否', 1 => '是'];
return isset($is_dev[$data['is_dev']]) ? $is_dev[$data['is_dev']] : '是';
}
public function getAuthNodes($type = 'admin') {
$map['type'] = $type;
$rows = $this->db()->field('id,pid,group,title,url')->where($map)->order('id asc')->select();
$rows = $this->field('id,pid,group,title,url')->where($map)->order('id asc')->select();
foreach ($rows as $key => $value) {
$data[$value['id']] = $value;
}

View File

@@ -29,7 +29,8 @@
"sent/think-auth": "^1.2",
"topthink/think-captcha": "^3.0",
"sent/think-jwt": "^1.0",
"xin/helper": "^1.0"
"xin/helper": "^1.0",
"sent/tree": "^1.0"
},
"require-dev": {
"symfony/var-dumper": "^4.2"

32
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "0476987d328bafb722d7dd0d63579fa8",
"content-hash": "6b1346aad2724d940b44b2a507ab9be5",
"packages": [
{
"name": "lcobucci/jwt",
@@ -636,6 +636,36 @@
"description": "thinkphp jwt auth composer",
"time": "2019-11-19T07:11:50+00:00"
},
{
"name": "sent/tree",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://gitee.com/ycgpp/tree.git",
"reference": "61229ea4cc4485fb8a82343921d33559daed2992"
},
"require": {
"php": ">=5.6"
},
"type": "library",
"autoload": {
"psr-4": {
"sent\\tree\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "molong",
"email": "ycgpp@126.com"
}
],
"description": "tree",
"time": "2019-11-26T13:24:07+00:00"
},
{
"name": "topthink/framework",
"version": "v6.0.2",

View File

@@ -17,10 +17,10 @@
<div class="table-responsive clearfix">
<div class="tabs-wrapper">
<ul class="nav nav-tabs">
<li {if $model_id == ''}class="active"{/if}><a href="{:url('admin/category/index')}">全部</a></li>
<li {if $module_id == ''}class="active"{/if}><a href="{:url('admin/category/index')}">全部</a></li>
{volist name="model_list" id="item"}
<li {if $item['id'] == $model_id}class="active"{/if}>
<a href="{:url('admin/category/index',array('model_id'=>$item['id']))}">{$item['title']}</a>
<li {if $item['id'] == $module_id}class="active"{/if}>
<a href="{:url('admin/category/index',array('module_id'=>$item['id']))}">{$item['title']}</a>
</li>
{/volist}
</ul>

View File

@@ -12,21 +12,21 @@
<div class="form-group">
<label class="col-lg-2 control-label">配置标识</label>
<div class="col-lg-10">
<input type="text" class="form-control" style="width: 400px" name="name" value="{$info.name|default=''}">
<input type="text" class="form-control" style="width: 400px" name="name" value="{$info['name']|default=''}">
<span class="help-block">用于config函数调用只能使用英文且不能重复</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">配置标题</label>
<div class="col-lg-10">
<input type="text" class="form-control" style="width:400px;" name="title" value="{$info.title|default=''}">
<input type="text" class="form-control" style="width:400px;" name="title" value="{$info['title']|default=''}">
<span class="help-block">(用于后台显示的配置标题)</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">排序</label>
<div class="col-lg-10">
<input type="text" class="form-control" style="width: 400px" name="sort" value="{$info.sort|default=0}">
<input type="text" class="form-control" style="width: 400px" name="sort" value="{$info['sort']|default=0}">
<span class="help-block">(用于分组显示的顺序)</span>
</div>
</div>
@@ -34,8 +34,8 @@
<label class="col-lg-2 control-label">配置类型</label>
<div class="col-lg-10">
<select name="type" class="form-control" style="width:auto;">
{volist name=":config('config_type_list')" id="type"}
<option value="{$key}" {eq name="key" value="$info['type']"}selected{/eq}>{$type}</option>
{volist name="config['config_type_list']" id="item"}
<option value="{$item['key']}" {if isset($info['type']) && $type['key'] == $info['type']}selected{/if}>{$item['label']}</option>
{/volist}
</select>
<span class="help-block">(系统会根据不同类型解析配置值)</span>
@@ -46,8 +46,8 @@
<div class="col-lg-10">
<select name="group" class="form-control" style="width: auto">
<option value="0">不分组</option>
{volist name=":config('config_group_list')" id="group"}
<option value="{$key}" {eq name="key" value="$info['group']"}selected{/eq}>{$group}</option>
{volist name="config['config_group_list']" id="item"}
<option value="{$item['key']}" {if isset($info['group']) && $item['key'] == $info['group']}selected{/if}>{$item['label']}</option>
{/volist}
</select>
<span class="help-block">(配置分组 用于批量设置 不分组则不会显示在系统设置中)</span>
@@ -56,21 +56,21 @@
<div class="form-group">
<label class="col-lg-2 control-label">配置值</label>
<div class="col-lg-10">
<textarea name="value" class="form-control" style="width: 80%;height: 120px">{$info.value|default=''}</textarea>
<textarea name="value" class="form-control" style="width: 80%;height: 120px">{$info['value']|default=''}</textarea>
<span class="help-block">(配置值)</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">配置项</label>
<div class="col-lg-10">
<textarea name="extra" class="form-control" style="width: 80%;height: 120px">{$info.extra|default=''}</textarea>
<textarea name="extra" class="form-control" style="width: 80%;height: 120px">{$info['extra']|default=''}</textarea>
<span class="help-block">(如果是枚举型 需要配置该项)</span>
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label">说明</label>
<div class="col-lg-10">
<textarea name="remark" class="form-control" style="width: 80%;height: 120px">{$info.remark|default=''}</textarea>
<textarea name="remark" class="form-control" style="width: 80%;height: 120px">{$info['remark']|default=''}</textarea>
<span class="help-block">(配置详细说明)</span>
</div>
</div>
@@ -84,5 +84,4 @@
</form>
</div>
</div>
{/block}

View File

@@ -7,11 +7,11 @@
<h2>配置管理</h2>
</div>
<div class="pull-right">
<a href="{:url('Config/index')}" class="btn btn-primary">
<a href="{:url('/admin/config/index')}" class="btn btn-primary">
<i class="fa fa-list"></i>
配置列表
</a>
<a href="{:url('Config/add')}" class="btn btn-danger">
<a href="{:url('/admin/config/add')}" class="btn btn-danger">
<i class="fa fa-list"></i>
添加配置
</a>
@@ -20,9 +20,9 @@
<div class="main-box-body clearfix">
<div class="tabs-wrapper">
<ul class="nav nav-tabs">
{volist name=":config('config_group_list')" id="item"}
<li {if condition="$key eq $id"}class="active"{/if}>
<a href="{:url('Config/group',array('id'=>$key))}">{$item}</a>
{volist name="config['config_group_list']" id="item"}
<li {if $item.key == $id}class="active"{/if}>
<a href="{:url('/admin/config/group',array('id'=>$item.key))}">{$item['label']}</a>
</li>
{/volist}
</ul>

View File

@@ -6,11 +6,11 @@
<h2>网站设置</h2>
</div>
<div class="pull-right">
<a href="{:url('Config/group')}" class="btn btn-danger">
<a href="{:url('/admin/config/group')}" class="btn btn-danger">
<i class="fa fa-list"></i>
配置管理
</a>
<a href="{:url('Config/add')}" class="btn btn-danger">
<a href="{:url('/admin/config/add')}" class="btn btn-danger">
<i class="fa fa-plus"></i>
添加配置
</a>
@@ -19,10 +19,10 @@
<div class="main-box-body clearfix">
<div class="tabs-wrapper">
<ul class="nav nav-tabs">
<li {if condition="!$group_id"}class="active"{/if}><a href="{:url('index')}">全部</a></li>
{volist name="group" id="item"}
<li {if condition="$group_id eq $key"}class="active"{/if}>
<a href="{:url('index?group='.$key)}">{$item}</a>
<li {if !$group_id}class="active"{/if}><a href="{:url('/admin/config/index')}">全部</a></li>
{volist name="config['config_group_list']" id="item"}
<li {if $group_id == $item['key']}class="active"{/if}>
<a href="{:url('/admin/config/index?group='.$item['key'])}">{$item['label']}</a>
</li>
{/volist}
</ul>
@@ -65,7 +65,7 @@
</tbody>
</table>
</div>
{$page}
{$page|raw}
</div>
</div>
</div>

View File

@@ -1,6 +1,6 @@
{extend name="admin/public/base"/}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css">
<link rel="stylesheet" type="text/css" href="__static__/common/css/bootstrap-editable.css">
{/block}
{block name="body"}
<div class="main-box clearfix">
@@ -16,9 +16,9 @@
<span class="input-group-btn"><a class="btn btn-default" href="javascript:;" id="search" url="__SELF__"><i class="icon-search"></i></a></span>
</div>
</div> -->
<a class="btn btn-primary" href="{:url('add',array('pid'=>input('get.pid',0)))}">新 增</a>
<button class="btn btn-danger ajax-post confirm" url="{:url('del')}" target-form="ids">删 除</button>
<a class="btn btn-success" href="{:url('import',array('pid'=>input('get.pid',0)))}">导 入</a>
<a class="btn btn-primary" href="{:url('/admin/menu/add',array('pid'=>input('get.pid',0)))}">新 增</a>
<button class="btn btn-danger ajax-post confirm" url="{:url('/admin/menu/del')}" target-form="ids">删 除</button>
<a class="btn btn-success" href="{:url('/admin/menu/import',array('pid'=>input('get.pid',0)))}">导 入</a>
</div>
</header>
<div class="main-box-body clearfix">
@@ -49,31 +49,31 @@
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$menu.id}"></td>
<td>{$menu.id}</td>
<td>
{$menu['level_show']}
<a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="title" data-type="text" data-pk="{$menu['id']}" data-url="{:url('editable')}">{$menu['title']}</a>
<a class="add-sub-cate" title="添加子分类" href="{:url('add?pid='.$menu['id'])}">
{$menu['level_show']|raw}
<a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="title" data-type="text" data-pk="{$menu['id']}" data-url="{:url('/admin/menu/editable')}">{$menu['title']}</a>
<a class="add-sub-cate" title="添加子分类" href="{:url('/admin/menu/add?pid='.$menu['id'])}">
<i class="fa fa-plus-square"></i>
</a>
</td>
<td>{$menu.up_title|default='无'}</td>
<td>{$menu.group}</td>
<td>{$menu.url}</td>
<td><a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="sort" data-type="text" data-pk="{$menu['id']}" data-url="{:url('editable')}">{$menu['sort']}</a></td>
<td><a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="sort" data-type="text" data-pk="{$menu['id']}" data-url="{:url('/admin/menu/editable')}">{$menu['sort']}</a></td>
<td>
<a href="{:url('toogleDev',array('id'=>$menu['id'],'value'=>abs($menu['is_dev']-1)))}"
<a href="{:url('/admin/menu/toogleDev',array('id'=>$menu['id'],'value'=>abs($menu['is_dev']-1)))}"
class="ajax-get">
{$menu.is_dev_text}
</a>
</td>
<td>
<a href="{:url('toogleHide',array('id'=>$menu['id'],'value'=>abs($menu['hide']-1)))}"
<a href="{:url('/admin/menu/toogleHide',array('id'=>$menu['id'],'value'=>abs($menu['hide']-1)))}"
class="ajax-get">
{$menu.hide_text}
</a>
</td>
<td>
<a title="编辑" href="{:url('edit?id='.$menu['id'])}">编辑</a>
<a class="confirm ajax-get" title="删除" href="{:url('del?id='.$menu['id'])}">删除</a>
<a title="编辑" href="{:url('/admin/menu/edit?id='.$menu['id'])}">编辑</a>
<a class="confirm ajax-get" title="删除" href="{:url('/admin/menu/del?id='.$menu['id'])}">删除</a>
</td>
</tr>
{/volist}
@@ -88,7 +88,7 @@
</div>
{/block}
{block name="script"}
<script type="text/javascript" src="__PUBLIC__/js/bootstrap-editable.min.js"></script>
<script type="text/javascript" src="__static__/common/js/bootstrap-editable.min.js"></script>
<script type="text/javascript">
$(function () {
$.fn.editable.defaults.mode = 'popup';

View File

@@ -6,7 +6,7 @@
<h2>{$meta_title}</h2>
</div>
<div class="pull-right">
<a href="{:url('add')}" class="btn btn-primary pull-right"> <i class="fa fa-plus-circle fa-lg"></i> 新增用户</a>
<a href="{:url('/admin/user/add')}" class="btn btn-primary pull-right"> <i class="fa fa-plus-circle fa-lg"></i> 新增用户</a>
</div>
</header>
<div class="main-box-body clearfix">
@@ -15,13 +15,19 @@
<div class="form-group">
<label class="control-label" for="input-order-id">用户名</label>
<div class="input-group">
<input type="text" name="username" value="{$param['username']|default=''}" placeholder="用户名" class="form-control">
<input type="text" name="name" value="{$param['name']|default=''}" placeholder="用户名" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label" for="input-order-id">昵称</label>
<label class="control-label" for="input-order-id">邮箱</label>
<div class="input-group">
<input type="text" name="nickname" value="{$param['nickname']|default=''}" placeholder="昵称" class="form-control">
<input type="text" name="email" value="{$param['email']|default=''}" placeholder="邮箱" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label" for="input-order-id">电话</label>
<div class="input-group">
<input type="text" name="mobile" value="{$param['mobile']|default=''}" placeholder="电话" class="form-control">
</div>
</div>
<button class="btn btn-primary" type="submit"><i class="fa fa-search"></i> 筛选</button>
@@ -31,24 +37,12 @@
<table class="table user-list table-hover">
<thead>
<tr>
<th>
<span>用户</span>
</th>
<th>
<span>Email</span>
</th>
<th>
<span>手机号码</span>
</th>
<th>
<span>授权分组</span>
</th>
<th>
<span>创建时间</span>
</th>
<th class="text-center">
<span>状态</span>
</th>
<th><span>用户</span></th>
<th><span>Email</span></th>
<th><span>手机号码</span></th>
<th><span>授权分组</span></th>
<th><span>创建时间</span></th>
<th class="text-center"><span>状态</span></th>
<th>操作</th>
</tr>
</thead>
@@ -64,12 +58,8 @@
<a href="#" class="user-link">{$item['nickname']}</a>
<span class="user-subhead">{$item['username']}</span>
</td>
<td>
<span >{$item['email']}</span>
</td>
<td>
<span >{$item['mobile']}</span>
</td>
<td><span >{$item['email']}</span></td>
<td><span >{$item['mobile']}</span></td>
<td></td>
<td>{$item['reg_time']}</td>
<td class="text-center">
@@ -80,15 +70,9 @@
{/if}
</td>
<td>
<a href="{:url('User/edit',array('id'=>$item['uid']))}" class="table-link" title="">
编辑
</a>
<a href="{:url('User/auth',array('id'=>$item['uid']))}" class="table-link">
授权
</a>
<a href="{:url('User/del',array('id'=>$item['uid']))}" class="table-link confirm ajax-get">
删除
</a>
<a href="{:url('User/edit',array('id'=>$item['uid']))}" class="table-link" title="">编辑</a>
<a href="{:url('User/auth',array('id'=>$item['uid']))}" class="table-link">授权</a>
<a href="{:url('User/del',array('id'=>$item['uid']))}" class="table-link confirm ajax-get">删除</a>
</td>
</tr>
{/volist}