-
Notifications
You must be signed in to change notification settings - Fork 4
QuickCms
dengyongbin edited this page Jan 18, 2017
·
21 revisions
默认app.php配置文件中的locale=en,如果需要使用中文的提示,需要把locale改为zh
1、路由名称的规则:使用resource的情况下,laravel会默认为每个route都设置routeName,控制器会通过该routeName来查找对应generals下的配置文件;
2、路由path的规则:在不使用resource的情况下,也没有设置route的name情况下,控制器会读取route的path值来查询对应generals下得配置文件;(以前一直都是使用的该方式)
针对第一种配置方式,可以实现相同模块配置文件复用的问题,比如orderReview、orderPass、可以配置在一个文件中,只修改部分不同的配置定义;
'model_class' => 'App\Models\Test',
'model_name' => '测试',
'query' => array(
// 默认type=input,默认operator为=
['name' => 'ID', 'column' => 'id'],
// 当operator=like时模糊搜索,默认为精确搜索
['name' => '名称', 'column' => 'name', 'operator' => 'like'],
// 下拉框控件,param接受枚举的key,并自动添加空value的全部选项
['name' => '状态', 'column' => 'status', 'type' => 'selector', 'param' => 'online_offline_status'],
// 多选框控件,param接受枚举的key
['name' => '标签类型', 'column' => 'type', 'type' => 'checkbox', 'param' => 'normal_disable_status'],
// 日期段控件,format格式化日期控件参数:c-20表示20年前,c+1表示1年后
['name' => '创建时间', 'column' => 'created_at', 'type' => 'date', 'operator' => 'between', 'format' => ['yearRange' => 'c-20:c+1']],
// 日期控件
['name' => '更新时间', 'column' => 'created_at', 'type' => 'date'],
),
// 单表查询
'index_column' => array('id', 'name', 'status'),
// 多表查询,user为模型中定义的方法,email为user对象的属性
'index_column' => array('id', 'name', 'status', 'user.email'),
'index_column_name' => array('ID', '名称', '状态'),
'index_multi_join' => array(
['users', 'tests.user_id', '=', 'users.id'],
['roles', 'tests.role_id', '=', 'roles.id'],
),
'index_multi_column' => array('user_id', 'users.name as user_name', 'tests.name', 'roles.name as role_name'),
'index_column_rename' => array(
// 枚举映射
'name' => array(
'type' => 'selector',
'param' => 'test_selector'
),
// 不同值显示不同样式
'status' => array(
'type' => 'normal',
'param' => array(
0 => '<span class="label label-default">未启用</span>',
1 => '<span class="label label-success">已启用</span>',
)
),
// 模态框
'id' => array(
'type' => 'dialog',
'param' => array(
// a标签name名称
'name' => 'test_btn',
//模态框名称
'target' => 'test_dialog',
//模态框标题
'dialog_title' => 'Modal',
//模态框路由,结尾的'/'不能省略,url后会传递id值,路由需配置
'url' => '/admin/test/detail/',
// id参数在列表中的索引位置,从0开始
'index' => 3,
'width' => '80%'
)
),
// html样式替换
'avatar' => array(
'type' => 'html',
// 图片样式(如果图片需要自定义样式则使用该方法,否则请用图片类型实现)
'param' => '<a href="%s" target="_blank"><img style="width:50px;height:50px" src="%s" alt=""></a>',
// 链接样式
//'param' => '<a href="%s" target="_blank" title="%s">点击查看</a>',
),
'title' => array(
'type' => 'limit',
'param' => '50'
),
// 单张图片处理
'image' => array('type' => 'image'),
// 多张图片处理
'images' => array('type' => 'images'),
),
'index_column_format' => array(
// 金额格式化,建议不使用,在Model中get时/100
array('column' => 3, 'type' => 'amount'),
// 日期格式化
array('column' => 8, 'type' => 'date', 'format' => 'Y-m-d H:i'),
// 自定义函数格式化字段值
array('column' => 5, 'type' => 'function', 'value' => function ($value) {
return strtotime($value) > time() ? $value : $value . '已结束';
}),
),
'sort' => array(['created_at', 'desc'], ['test_time', 'desc']),
// key为每列在表格中得索引,从0开始;value为宽度,可以是百分比,或者其他px单位;未配置的列会自动计算内容分配宽度;
'table_column_width' => array(
2 => '30%',
3 => '20%',
),
// 需要显示排序的列就配置为true,不需要排序的列不用配置,默认没有排序列功能
'table_sort' => array(
'id' => true,
'created_at' => true,
),
// 默认排序配置
'table_order' => array(
0 => 'desc',
5 => 'asc',
),
'index_where' => array(
array('column' => 'news_type', 'operator' => '=', 'value' => 2),
array('column' => 'news_type', 'operator' => 'whereIn', 'value' => [1,2]),
array('column' => 'news_type', 'operator' => 'whereNotIn', 'value' => [1,2]),
array('column' => 'news_type', 'operator' => 'whereBetween', 'value' => [1,2]),
array('column' => 'news_type', 'operator' => 'whereNotBetween', 'value' => [1,2]),
array('column' => 'news_type', 'operator' => 'whereNull'),
array('column' => 'news_type', 'operator' => 'whereNotNull'),
),
'edit_column' => array('name', 'title', 'publish_time', 'test_time'),
'edit_column_name' => array('名称', '标题', '发布日期', '测试日期'),
'edit_column_detail' => array(
// 下拉控件[style:select|select2]
'name' => array(
'type' => 'selector',
'selector_key' => 'test_selector',
'style' => 'select',
'validator' => array('required' => true)
),
// 默认input输入框
'title' => array('validator' => array('required' => true)),
// 密码控件,如果需要在编辑页面不设置该密码控件,可使用'disabled' => true来控制
'password' => array('type' => 'password', 'validator' => array('required' => true), 'disabled' => true),
// 日期控件
'publish_time' => array(
'type' => 'date',
'default_value' => 'now',
'date_picker' => array(
'dateFormat' => 'yy-mm-dd',
'yearRange' => '-10:+10',
'minDate' => '-2',
'maxDate' => '+2',
),
'validator' => array('required' => true)
),
// 时间控件
'test_time' => array(
'type' => 'time',
'validator' => array('required' => true)),
),
// 编辑器控件(编辑器额外需要引入模板,在外层配置:'edit_editor' => true,编辑器控件才生效)
// toolbars自定义工具参考:[http://fex.baidu.com/ueditor/#start-toolbar]
'summary' => array(
'type' => 'editor'
'language' => true,
'toolbars' => ['fullscreen', 'source', 'undo', 'redo', 'bold']
),
// 图片控件
'image' => array(
'type' => 'image',
'name' => 'image',
'min_count' => 1,
'max_count' => 1,
'min_error_msg' => '至少上传%s张图片',
'max_error_msg' => '最多只允许上传%s张图片',
'editable' => true
),
// 多语言
'name' => array(
'type' => 'language',
),
// 多标签控件(字段接受用逗号拼接的字符串)
'name' => array(
'type' => 'tagsinput',
'style' => 'tags'
),
// 多选控件
'name' => array(
'type' => 'checkbox',
'value' => ['1' => 'a', '2' => 'b', '3' => 'c'],
),
),
'edit_hidden' => array(
array('name' => 'news_type', 'value' => 2),
array('name' => 'language_hidden', 'value' => 'name,title'),
// 当隐藏元素只需要在创建或者更新时才存在,可设置action=create|edit,默认不设置action
// 需要获取当前后台登陆管理员id,可以设置admin_id=true
array('name' => 'created_by', 'admin_id' => true, 'action' => 'create'),
array('name' => 'updated_by', 'admin_id' => true, 'action' => 'edit'),
),
'edit_hidden_business_id' => array(
'name' => 'store_id',
),
'edit_redirect_location' => '/admin/store/{id}/edit',
'edit_redirect_location' => '/admin/store/edit',
// user.email 支持model中定义的关联对象
'detail_column' => ['id', 'name', 'title', 'status', 'created_at', 'user.email'],
'detail_column_name' => array('ID', '名称', '标题', '状态', '创建时间'),
'detail_multi_join' => array(
['users', 'users.id', '=', 'feedbacks.account_id'],
),
'detail_multi_column' => array(
'users.email as email', 'feedbacks.*'
),
'detail_column_rename' => array(
// 金额
'amount' => ['type' => 'amount'],
// 图片
'image' => ['type' => 'image'],
// 重命名
'status' => [
'type' => 'normal',
'param' => [
'0' => '<span class="label-default status">未上线</span>',
'1' => '<span class="label-success status">已上线</span>'
]
],
// 下拉枚举
'type' => [
'type' => 'selector',
'param' => 'test_type'
],
// 日期
'created_at' => [
'type' => 'date',
'format' => 'Y-m-d H:i'
],
// html
'title' => [
'type' => 'html'
],
// 多语言
'name' => [
'type' => 'language'
],
),
'curd_action' => array(
'create' => false,
'edit' => false,
'detail' => false,
'delete' => false,
// 全表数据导出excel,定义指定route到GeneralController@tableExportExcel
'table_export_excel' => true,
),
// 禁用权限检查
'disable_permission' => true,
// 按钮排列布局,默认不填写的话是按钮下拉样式
'table_action_line' => true,
// 按钮配置
'table_action' => array(
// 状态变更
array(
'type' => 'confirm',
'name' => 'enabled_btn',
'display_name' => '启用',
'permission' => 'admin.test.changeStatus.enabled',
'url' => '/admin/test/changeStatus',
'data' => array('status' => 1, 'publish_time' => 'now', 'admin_id' => 'admin_id'),
'where' => array('status' => [0, 1]),
),
// 操作自定义
array(
'type' => 'redirect_with_id',
'name' => 'add_topic',
'display_name' => '添加话题',
'method' => 'get',
'url' => '/admin/account/addTopic'
),
// 带自定义参数的配置,外部需配置额外2个属性
'table_action' => array(
array(
'type' => 'redirect_with_id',
'name' => 'city_index',
'display_name' => '市区域管理',
'method' => 'get',
'url' => '/admin/area/{custom_id}/city'
),
),
// 模态框
array(
'type' => 'dialog',
'name' => 'edit_permission',
'target' => 'edit_permission',
'dialog_title' => '分配权限',
'display_name' => '分配权限',
'url' => '/admin/roles/permissions/',
'form' => array(
'form_id' => 'smart-form-permissions',
'submit_id' => 'confirmPermission',
'success_msg' => '分配权限成功,重新登陆后即可更新左侧菜单栏',
'failure_msg' => '分配失败'
),
),
),
'custom_id_relation_column' => 'parent_id',
'custom_id_back_url' => '/admin/area',