## 开关
~~~
// 添加开关
$data_list = Db::name('admin')->select();
return Format::ins() //实例化
->addColumn('is_hot', '是否热门', 'switch')
->setData($data_list)//设置数据 此数据根据字段自动匹配
->fetch();//显示
~~~
该组件作用可以在列表展示一个复选框开关,勾选后数据库值被设成1,否则设置成0
~~~
->addColumns([
['is_hot', '是否热门', 'switch']
])
~~~
1,在extend/service/Format.php文件的compileRows方法中,在switch ($column\['type'\]) 的单元,增加一个case 支持swicth组件
~~~
case 'switch': // 开关
$column['param'] = $column['param'] != '' ? $column['param'] : $column['name'];
$row[$column['name'] . '__' . $column['type']] = '<div class="switch" ><input type="checkbox"
data-table="' . $this->createTableToken($_table_name == '' ? $this->_table_name : $_table_name, $this->_prefix) . '"
data-pk="' . $row['_primary_key_value'] . '"
data-name="' . $_name . '"';
if($row[$column['name']] ){
$row[$column['name'] . '__' . $column['type']] .= " checked ";
}
$row[$column['name'] . '__' . $column['type']] .= "/></div>";
break;
~~~
![](https://zhongben-crm.oss-cn-zhangjiakou.aliyuncs.com/uploads/images/20210508/8f4d9994e08169702a325232da0d94f5.png)
2,修改public/static/admin/js/table.js 文件,找到如下代码片段
~~~
// 开关
$('.table-builder .switch input:checkbox').on('ifChanged', function () {<br> ...
})
~~~
将这一段修改为:
~~~
// 开关
$('.table-builder .switch input:checkbox').on('click', function () {
var $switch = $(this);
var $data = {
value: $switch.prop('checked'),
_t: $switch.data('table') || '',
name: $switch.data('name') || '',
type: 'switch',
pk: $switch.data('pk') || '',
model: $switch.data('model') || '',
module: $switch.data('module') || '',
controller: $switch.data('controller') || '',
};
// 发送ajax请求
Stars.loading();
$.post( lwwan.quick_edit_url, $data , function(res){
Stars.loading('hide');
if (res.code == 0) {
Stars.notify(res.msg, 'danger');
$switch.prop('checked', !$data.status);
return false;
}
}).fail(function (res) {
Stars.loading('hide');
});
});
~~~
用例:
~~~
$fields = [
['id', 'ID'],
['is_recommend','是否推荐',"switch"],
['right_button', '操作', 'btn']
];
return Format::ins()
->addColumns($fields)
->setRightButtons($this->right_button)
->setData($data_list)
->fetch();
~~~
- 序言
- 基础
- 开发规范
- 目录结构
- 下载安装
- 快速开发
- 创建一个表格
- 设置页面标题
- 设置页面提示
- 创建右侧按钮
- 创建顶部按钮
- 隐藏和替换按钮
- 隐藏第一列多选框
- 一次添加多行列表
- 添加一列
- 字段类型
- status
- text
- text.edit
- picture
- callback
- img_url
- pictures
- link
- files
- switch(2.0+)
- 设置表格主键
- 创建一个顶部搜索
- 调用js
- 创建快捷搜索
- 添加数量索引
- 添加表头排序(2.0.0)
- 添加一个右侧弹窗按钮
- 创建一个表单
- 表单字段说明
- 文本框
- 密码框
- 单选框
- 复选框
- 单图上传
- 多图上传
- 下拉框
- 多行文本
- 隐藏域
- 单文件上传
- 多文件上传
- 富文本编辑器
- 静态文本
- 排序
- 数字输入框
- 选择图标
- 关联联动
- 多级联动
- selectAjax(2.0+)
- 使用自定义JS文件
- 使用自定义CSS文件
- 公用函数
- 框架common
- is_signin
- data_auth_sign
- parse_attr
- parse_sql
- get_client_ip
- get_file_url
- get_files_url
- get_thumb
- hook
- p
- get_location
- format_linkage
- format_bytes
- action_log
- parse_action
- execute_action
- role_auth
- module_config
- addons_menage
- addons_config
- get_addons_class
- addons_action_exists
- addons_model_exists
- addons_validate_exists
- get_addons_model
- get_model_name
- get_model_title
- get_model_type
- get_model_table
- is_default_field
- table_exist
- implode_attr
- parse_array
- parse_name
- parse_config
- addons_parse_config
- addons_action
- get_adminname
- get_nickname
- set_config_value
- get_file_name
- format_time
- get_order_sn
- get_msectime
- timeToHIS
- getMobileType
- curl_post
- friend_date
- str2sub
- createLinkagesToken
- get_level_data
- get_level_pid
- get_level_key_data
- clear_js
- get_sex
- get_age
- user_is_signin
- user_role_auth
- filter
- filter_data
- time_tran
- search_time
- time2string
- check_password
- check_mobile
- push
- common模块
- 模块开发
- 创建模块信息
- 安装模块
- 模块配置
- 控制器
- 创建菜单
- 第一个控制器
- 方法参考
- 导出模块
- 插件开发
- 插件结构
- 插件信息
- 管理界面的字段信息
- 新增或编辑字段
- 插件钩子
- 数据库表前缀
- 插件配置
- 插件开发
- 控制器
- 模型
- 验证器
- 方法参考
- 自定义表
- 接口开发
- 新增接口
- 请求参数/返回参数
- 业务流程
- 应用管理
- MOCK接口
- 其他说明
- Redis使用说明
- 图片上传说明
- CMS模块说明
- 函数参考
- 商城模块说明
- 购物流程
- 直接购买提交购物订单
- 购物车流程
- 商品添加到购物车
- 购物车中商品数量变化
- 购物车提交订单
- 单客服使用说明
- 服务部署
- 客户端调用
- 后台客服端使用
- 更新说明(2.0+)