fastamdin中前端js内容剖析

位置:public/assets/js/backend/test/a.js

//RequireJS的标准语法,意思是模块依赖'jquery', 'bootstrap', 'backend', 'table', 'form'这五个模块,同时把他们加载为对应的$, undefined, Backend, Table, Form
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
//定义一个Controller 对象,对象下有index/add/edit/api四个方法
    var Controller = {
        index: function () {//实现主页index方法的功能
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'test/a/index' + location.search,//主页index的地址
                    add_url: 'test/a/add',//添加页面的url
                    edit_url: 'test/a/edit',//编辑页面的url
                    del_url: 'test/a/del',//删除页面的url
                    multi_url: 'test/a/multi',//多选操作的url
                    import_url: 'test/a/import',//导入操作的url
                    table: 'test',//对应的数据库表为fa_test
                }
            });
            //给变量table赋值为一个jQuery对象,该对象的选择器被设置为id为table的元素
            var table = $("#table");
            // 初始化表格
            table.bootstrapTable({
                //指BootstrapTable默认的索引URL,它是一种加载数据的方式,可将静态数据加载到表格中
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',//BootstrapTable中的pk:'id'表示主键,其代表了一个表的记录的唯一标识,
                sortName: 'weigh',//用于指定表格中排序所用的列名称(这里以weight作为排序字段)
                sortOrder:'asc',//排序方式(asc表示升序,desc表示降序)
                fixedColumns: true,//是 BootstrapTable 的一个可选设置,用于确保表格中的列总是固定在浏览器视窗里,即便列表内容滚动,也仍保持固定。固定表格操作栏 
                fixedRightNumber: 1,//在表中用于指示将固定在表右侧的列数。这意味着当您水平滚动时,这些列将保持不变,而其他列将滚动。就相当于对“操作”这1列的固定
                columns: [//表格的具体每一列的信息
                    [
                        {checkbox: true},//开启复选框的功能
                        //下面均为列信息中。
                    //'field'使用字段名称来定义要呈现的数据字段,而'title'表示该字段的显示标题, 
                        {field: 'id', title: __('Id')},
                        {field: 'user_id', title: __('User_id')},
                        {field: 'admin_id', title: __('Admin_id')},
                        {field: 'category_id', title: __('Category_id')},
                        {field: 'category_ids', title: __('Category_ids'), operate: 'LIKE'},
                        {field: 'tags', title: __('Tags'), operate: 'LIKE', formatter: Table.api.formatter.flag},
                        {field: 'week', title: __('Week'), searchList: {"monday":__('Week monday'),"tuesday":__('Week tuesday'),"wednesday":__('Week wednesday')}, formatter: Table.api.formatter.normal},
                        {field: 'flag', title: __('Flag'), searchList: {"hot":__('Flag hot'),"index":__('Flag index'),"recommend":__('Flag recommend')}, operate:'FIND_IN_SET', formatter: Table.api.formatter.label},
                        {field: 'genderdata', title: __('Genderdata'), searchList: {"male":__('Genderdata male'),"female":__('Genderdata female')}, formatter: Table.api.formatter.normal},
                        {field: 'hobbydata', title: __('Hobbydata'), searchList: {"music":__('Hobbydata music'),"reading":__('Hobbydata reading'),"swimming":__('Hobbydata swimming')}, operate:'FIND_IN_SET', formatter: Table.api.formatter.label},
                        {field: 'title', title: __('Title'), operate: 'LIKE'},
                        {field: 'image', title: __('Image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
                        {field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
                        {field: 'attachfile', title: __('Attachfile'), operate: false, formatter: Table.api.formatter.file},
                        {field: 'keywords', title: __('Keywords'), operate: 'LIKE'},
                        {field: 'description', title: __('Description'), operate: 'LIKE'},
                        {field: 'city', title: __('City'), operate: 'LIKE'},
                        {field: 'price', title: __('Price'), operate:'BETWEEN'},
                        {field: 'views', title: __('Views')},
                        {field: 'workrange', title: __('Workrange'), operate: 'LIKE'},
                        {field: 'startdate', title: __('Startdate'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        {field: 'activitytime', title: __('Activitytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        {field: 'year', title: __('Year')},
                        {field: 'times', title: __('Times')},
                        {field: 'refreshtime', title: __('Refreshtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'weigh', title: __('Weigh'), operate: false},
                        {field: 'switch', title: __('Switch'), searchList: {"1":__('Yes'),"0":__('No')}, table: table, formatter: Table.api.formatter.toggle},
                        {field: 'status', title: __('Status'), searchList: {"normal":__('Normal'),"hidden":__('Hidden')}, formatter: Table.api.formatter.status},
                        {field: 'state', title: __('State'), searchList: {"0":__('State 0'),"1":__('State 1'),"2":__('State 2')}, formatter: Table.api.formatter.normal},
                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        //实现回收站功能
        recyclebin: function () {
            // 初始化表格参数配置
            //用于初始化Bootstrap表库中的拖放排序功能。“dragsort_url”参数用于定义将用于执行表行重新排序的AJAX请求的url路径。
            Table.api.init({
                extend: {
                    'dragsort_url': ''//即表示令移动功能指向的url为空
                }
            });
            //给变量table赋值为一个jQuery对象,该对象的选择器被设置为id为table的元素
            var table = $("#table");

            // 初始化表格
            table.bootstrapTable({
                url: 'test/a/recyclebin' + location.search,//回收站url
                pk: 'id',//主键为id
                sortName: 'id',//排序字段为id
                columns: [//所有列信息展示
                    [
                        {checkbox: true},//多选按钮展示
                        {field: 'id', title: __('Id')},
                        {field: 'title', title: __('Title'), align: 'left'},
                        {
                            field: 'deletetime',
                            title: __('Deletetime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            formatter: Table.api.formatter.datetime
                            //Bootstrap Table中一个格式化器,Table.api.formatter.datetime是指用于将日期/时间类型数据转换成格式化的日期/时间格式
                        },
                        {
                            field: 'operate',
                            width: '140px',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,//是一个bootstrap table的事件,它会在表格中的操作列被激活(比如点击编辑按钮)时发生。
                            buttons: [//按钮
                                {
                                    name: 'Restore',//名称
                                    text: __('Restore'),//按钮名称
                                    classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',//按钮样式
                                    icon: 'fa fa-rotate-left',//按钮图标
                                    url: 'test/a/restore',//按钮
                                    refresh: true//点击按钮之后执行刷新
                                },
                                {
                                    name: 'Destroy',
                                    text: __('Destroy'),
                                    classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
                                    icon: 'fa fa-times',
                                    url: 'test/a/destroy',
                                    refresh: true
                                }
                            ],
                            formatter: Table.api.formatter.operate//是bootstrap table中的一个函数,可以为表格中每行添加操作按钮。它会分析函数中传入的value,然后在每行末尾添加可编辑、删除、查看等操作按钮。
                        }
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },

        add: function () {//执行添加功能
            Controller.api.bindevent();
        },
        edit: function () {//执行编辑功能
            Controller.api.bindevent();
        },
        api: {//它指的是bindEvent函数,该函数用于将事件绑定到提供的表单。通过调用该函数,可以在与表单交互时触发事件,例如当用户单击按钮或更改输入时。
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;//是指返回Controller类的特定实例的函数
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值