fastadmin 新手部分功能点

1、时间范围组件

复制代码

<div class="col-xs-12 col-sm-6 col-md-3" style="width: 300px"> <div class="form-group"> <label class="control-label">下单时间</label> <input class="operate" type="hidden" data-name="created_at" value="RANGE"/> <div> <input class="form-control datetimerange" type="text" name="created_at" placeholder="开始日期 - 结束日期" autocomplete="off" value="" data-daterangepicker-options='{"locale":{"format":"YYYY-MM-DD"}}'/> </div> </div> </div>

2、操作按钮设置弹出窗口大小

复制代码

{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, buttons: [ { name: 'show', //唯一标识、权限标识 text: '推荐列表', //按钮显示的文字,支持function title: '推荐列表', //按钮显示的文字,支持function classname: 'btn btn-info btn-xs btn-dialog', //按钮的class,支持btn-dialog/btn-ajax/btn-addtabs url: 'cook/partners?cook_invite_code={cook_code}', //按钮的链接,支持使用{字段名}来占位替换,支持`function` extend: 'data-area=["1000px","650px"]' } ], formatter: Table.api.formatter.operate}

3、html设置弹出窗口大小

复制代码

<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('shop_meals/add')?'':'hide'}" data-area='["900px","700px"]' title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>

4、bootstrapTabler属性设置

复制代码

#声明加载一些库 define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'partners/index' + location.search, add_url: 'partners/add', edit_url: 'partners/edit', del_url: 'partners/del', multi_url: 'partners/multi', import_url: 'partners/import', table: 'partners', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url,#获取链接 pk: 'id', sortName: 'id', search: false, showExport: false, searchable: false, commonSearch: false, showToggle : false, showColumns: false, fixedColumns: true,//控制固定操作的 fixedRightNumber: 1,//控制右边固定操作列数 fixedNumber: 1, //控制左边固定操作列数 searchFormTemplate: 'customformtpl',//自定义搜索项模板 columns: [ [ {checkbox: true},#控制选择的 {field: 'mobile', title: __('厨师手机号'), operate: '=', placeholder:'手机/姓名/ID只用其一'},//input的placeholder文字自定义 {field: 'franchisee', title: __('城市合伙人名称')}, {field: 'cooperate_start', title: __('Cooperate_start'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},#控制时间范围搜索 {field: 'franchise_area', title: __('加盟城市'), operate: 'LIKE'}, {field: 'username', title: __('城市合伙人账号')}, {field: 'area', title: __('Area'),operate: 'LIKE', searchable: false, formatter : function(value, row, index, field){ return "<span style='display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;' title='" + value + "'>" + value + "</span>"; }, {field: 'start_at', title: __('Start_at'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, searchable: false},#时间 cellStyle : function(value, row, index, field){ return { css: { "white-space": "nowrap", "text-overflow": "ellipsis", "overflow": "hidden", "max-width":"150px" } }; }},#自定义操作显示,样式 {field: 'banner_status', title: __('Banner_status'), searchList: {"1":__('Banner_status 1'),"2":__('Banner_status 2')}, formatter: Table.api.formatter.status},#控制默认搜索选项 {field: 'nickname', title: __('联系人姓名'), operate: false},#operate的值有BETWEEN/LIKE/false/true/=/ {field: 'mobile', title: __('联系人手机'), operate: false}, { field: 'business_license', title: __('营业执照'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image, searchable: false }, {field: 'user_recording', title: __('用户录音'), formatter: function (index,row) { let div = '<div>'; if(row.user_recording != null) { let user_recording = row.user_recording let arr = user_recording.split(',') for (let i = 0; i < arr.length; i++) { div += `<a style="border: 1px solid #cccccc;margin: 2px" href=${arr[i]} target="_blank">录音${i+1}</a>` } }else{ div += '未上传录音' } div += '</div>' return div; }}, {field: 'cook_code', title: __('邀请码'), operate: false}, // { // field: 'qrcode_url', // title: __('二维码'), // operate: false, // events: Table.api.events.image, // formatter: Table.api.formatter.image, // searchable: false // }, {field: 'invite_num', title: __('邀请人数'), operate: false}, {field: 'standard_commission', title: __('标准抽成(%)') , operate: false}, {field: 'comments', title: __('备注'), operate: false}, {field: 'source', title: __('来源'), operate: false, searchable: false},#searchable控制是否开启默认搜索-false/true {field: 'status', title: __("Status"), searchList: {"normal":__('Normal'),"hidden":__('停用')}, formatter: Table.api.formatter.status}, {field: 'createtime_format', title: __('添加时间'), operate: false}, {field: 'updatetime_format', title: __('更新时间'), operate: false}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, buttons: [ { name: 'show', //唯一标识、权限标识 text: '推荐列表', //按钮显示的文字,支持function title: '推荐列表', //按钮显示的文字,支持function classname: 'btn btn-info btn-xs btn-dialog', //按钮的class,支持btn-dialog/btn-ajax/btn-addtabs url: 'cook/partners?cook_invite_code={cook_code}', //按钮的链接,支持使用{字段名}来占位替换,支持`function` extend: 'data-area=["1000px","650px"]' } ], formatter: Table.api.formatter.operate} ] ] }); // 为表格绑定事件 $(".btn-activateSelected").click(function () { var ids = Table.api.selectedids(table); // 获取选中的条目ID集合 var currentURL = window.location.href; var urlParams = new URLSearchParams(currentURL); var card_id = urlParams.get("ids"); if (ids.length === 0) { layer.msg('请选择要操作的数据', { icon: 3 }); return; } layer.confirm('确定要激活选中吗?', { btn: ['是', '否'] }, function (index) { layer.close(index); $.post("card_number/activateSelected", { ids: ids, card_id: card_id, action: 'success', reply: '' }, function (response) { if (response.code == 1) { Toastr.success(response.msg); $(".btn-refresh").trigger('click'); } else { Toastr.error(response.msg); } }, 'json'); }, function (index) { layer.close(index); } ); }); // 为表格绑定事件 Table.api.bindevent(table); }, //另加一个列表 list: function () { }, add: function () { $('#source0').click(function () { $("[type=checkbox]").prop('checked', this.checked) }) Controller.api.bindevent(); }, edit: function () { $('#source0').click(function () { $("[type=checkbox]").prop('checked', this.checked) }) Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; return Controller; });

5、bootstrapTable的operate属性所有值:

说明
false 禁用通用搜索:该字段将不参与通用搜索。
'=' 等于:精确匹配,这也是默认值。
'!=' 不等于
'LIKE' 模糊匹配:通常用于字符串类型的字段搜索。
'NOT LIKE' 不包含
'>' 大于
'<' 小于
'>=' 大于等于
'<=' 小于等于
'IN' 包含于:用于多选值查询。
'NOT IN' 不包含于
'BETWEEN' 介于:用于查询某个范围的值,常用于数字或时间区间。
'NOT BETWEEN' 不介于
'RANGE' 区间 :与 BETWEEN 类似,常与时间选择器配合使用。
'NOT RANGE' 不介于 :与 NOT BETWEEN 类似。
'FIND_IN_SET' 查找在集合中 :专门用于处理存储为逗号分隔字符串的字段(如 '1,2,3')。
'NULL' 为空 :查询该字段值为 NULL 的记录。
'NOT NULL' 不为空 :查询该字段值不为 NULL 的记录。
相关推荐
殳翰4 天前
向客户端提供JSON数据的方式
okhttp·json
CYY9510 天前
OkHttp 和 Retrofit 封装使用
okhttp·retrofit
CYY9511 天前
OkHttp 的使用
okhttp
朝星22 天前
Android开发[14]:网络优化之OkHttp
android·okhttp·kotlin
之歆24 天前
Promise 基础技术深度解析:从回调地狱到链式调用
前端·okhttp·promise
之歆24 天前
Ajax 基础技术深度解析:XHR 从入门到跨域
前端·ajax·okhttp
YHHLAI25 天前
Ajax — 异步数据交互
ajax·okhttp·交互
Xaire1 个月前
行行查案例-数据解密-国密s4-webpack打包模块补齐
okhttp
霸道流氓气质1 个月前
Spring AI Ollama 连接超时问题排查与解决:OkHttp 读超时配置全指南
人工智能·spring·okhttp