ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 开关 ~~~ // 添加开关 $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(); ~~~