fastadmin开发笔记

文档地址:https://doc.fastadmin.net/docs/index.html

/** * 无需登录的方法,同时也就不需要鉴权了 * @var array */

protected $noNeedLogin = [];

/** * 无需鉴权的方法,但需要登录 * @var array */

protected $noNeedRight = [];

 

 

 

获取配置信息的方法get_addon_config();

 

 

 

 

 

 

 

关闭弹窗:

sendmulti: function () {
   Controller.api.bindevent();
},

权限问题:插件名.php 文件

                       'name'    => 'user/rule',
                        'title'   => '会员规则',
                        'icon'    => 'fa fa-circle-o',
                        'remark'  => '管理会员显示的不同页面',
                        'ismenu'  => 1,
                        'sublist' => [
                            ['name' => 'user/rule/index', 'title' => '查看'],    权限问题
                            ['name' => 'user/rule/add', 'title' => '添加'],
                            ['name' => 'user/rule/edit', 'title' => '修改'],
                            ['name' => 'user/rule/del', 'title' => '删除'],
                            ['name' => 'user/rule/multi', 'title' => '批量更新'],
                        ]

<div class="panel panel-default panel-intro">
    <div class="panel-heading">
        <ul class="nav nav-tabs">
            <li class="active"><a href="#one" data-toggle="tab">{:__('All')}</a></li>
            <li><a href="#two" data-toggle="tab">{:__('Cancer_category')}</a></li>          
        </ul>
    </div>


    <div class="panel-body">
        <div id="myTabContent" class="tab-content">
            <div class="tab-pane fade active in" id="one">
                <div class="widget-body no-padding">
                    <div id="toolbar1" class="toolbar">
                        {:build_toolbar()}
                        <div class="dropdown btn-group {:$auth->check('shop/ads/multi')?'':'hide'}">
                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
                            <ul class="dropdown-menu text-left" role="menu">
                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
                            </ul>
                        </div>
                    </div>
                    <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                           data-operate-edit="{:$auth->check('shop/ads/edit')}" 
                           data-operate-del="{:$auth->check('shop/ads/del')}" 
                           width="100%">
                    </table>
                </div>
            </div>
            <div class="tab-pane fade" id="two">
                <div class="widget-body no-padding">
                    <div id="toolbar2" class="toolbar">
                        {:build_toolbar()}
                        <div class="dropdown btn-group {:$auth->check('shop/ads/multi')?'':'hide'}">
                            <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
                            <ul class="dropdown-menu text-left" role="menu">
                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
                                <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
                            </ul>
                        </div>
                    </div>
                    <table id="table2" class="table table-striped table-bordered table-hover table-nowrap"
                           data-operate-edit="{:$auth->check('shop/ads/edit')}" 
                           data-operate-del="{:$auth->check('shop/ads/del')}" 
                           width="100%">
                    </table>
                </div>
            </div>
            
            
            
        </div>
    </div>
</div>

define(['jquery', 'bootstrap', 'frontend', 'form', 'template', 'fast', 'jqzoom'], function ($, undefined, Frontend, Form, Template) {

    var Controller = {
        index: function () { //购物车
            // 增加数量
            $("#cartTable").delegate(".increase", "click", function () {
                var $quantity = $(this).parent().find("input");
                var quantity = $quantity.val();
                if (/^\d*[1-9]\d*$/.test(quantity)) {
                    $quantity.val(parseInt(quantity) + 1);
                } else {
                    $quantity.val(1);
                }
                subtotal($quantity)
            });

            // 减少数量
            $("#cartTable").delegate(".decrease", "click", function () {
                var $quantity = $(this).parent().find("input");
                var quantity = $quantity.val();
                if (/^\d*[1-9]\d*$/.test(quantity) && parseInt(quantity) > 1) {
                    $quantity.val(parseInt(quantity) - 1);
                } else {
                    $quantity.val(1);
                }
                subtotal($quantity);
            });
            $.ajax({
                url: Config.upload.cdnurl + '/cart/index',
                type: "post",
                dataType: "json",
                success: function (data) {
                    $("#cartBtnTop em").text(data.total);
                    var trStr = "";
                    var data = data.rows;
                    var total = 0;
                    var totalScore = 0;
                    if(data.length > 0){
                        $(".cart_bottom").show();
                        for (var i = 0; i < data.length; i++) {
                            var small_price = (new Number(data[i].specs.price)).toFixed(2);
                            var goodImg=""
                            if(data[i].goods.image ==null || data[i].goods.image == ""){
                                goodImg=Config.upload.cdnurl + "/assets/addons/shop/img/default_large.jpg";
                            }else{
                                 goodImg=data[i].goods.image;
                            }
                            trStr += '<tr cartId="' + data[i].cart_id + '">' +
                                    '<td><img src="' + goodImg + '" >' +
                                    '<a href="'+urlPublic+'/goods/index?sn='+data[i].goods.sn+'" title="' + data[i].goods.name + '" target="_blank">' + data[i].goods.name + '&nbsp;&nbsp;</a></td>'+
                                    '<td><span>' + data[i].specs.sn + '</span></td>' +
                                    '<td><span>[' + data[i].specs.specification_values[0].value + ']</span></td>' +
                                    '<td class="cart_jmprice" data_price="' + small_price + '">¥' + small_price + '</td>' +
                                    '<td class="reward_point">' + data[i].specs.reward_point + '</td>' +
                                    '<td class="quantity" style="min-width:70px;">' +
                                    '<span class="decrease">-</span>' +
                                    '<input type="text" name="quantity" value="' + data[i].num + '" maxlength="4" onpaste="return false;">' +
                                    '<span class="increase">+</span></td>' +
                                    '<td width="140"><span class="subtotal"  data_samll="' + small_price * data[i].num + '">¥' + (small_price * data[i].num).toFixed(2) + '</span></td>' +
                                    '<td>[<a href="javascript:;" class="delete" onclick="deleteGoods($(this))">'+__('Delete')+'</a>]</td>' +
                                    '</tr>';
                            total += small_price * data[i].num;//商品总额
                            totalScore += data[i].specs.reward_point * data[i].num;//赠送总积分
                        }
                    }else{
                       trStr +='<tr><td colspan="7"><p class="cart_null">'+__("Shopping cart is still empty. Let's go to see our favorite products. Go shopping")+'></p></td></tr>';
                       $(".cart_bottom").hide();
                    }
                    $(".cartTable tbody").html(trStr);
                    $("#effectivePrice").text("¥" + total.toFixed(2));
                    $("#effectiveRewardPoint").text(totalScore);

                }
            });
        }
    };
    return Controller;
});
//小计
function subtotal($quantity) {
    var quantity = $quantity.val();
    var cart_jmprice = $quantity.parents("tr").find(".cart_jmprice").attr("data_price");
    var smallTotal = Number(cart_jmprice) * Number(quantity)
    $quantity.parents("tr").find(".subtotal").html("¥" + smallTotal + "");
    $quantity.parents("tr").find(".subtotal").attr("data_samll", smallTotal);
    var total = 0;
    var totalScore = 0;
    $(".cartTable tbody tr").each(function () {
        total += Number($(this).find(".subtotal").attr("data_samll"));
        totalScore += Number($(this).find(".reward_point").text()) * Number(quantity);
    });
    $("#effectivePrice").text("¥" + total + __('Origin'));
    $("#effectiveRewardPoint").text(totalScore);
    var cartId = $quantity.parents("tr").attr("cartId");
    $.ajax({
        url: Config.upload.cdnurl + '/cart/edit',
        type: "post",
        data: {cart_id: cartId,num:quantity},
        dataType: "json",
        success: function (data) {
            if(data.code==true){
            }
        }
    });
}
//删除商品
function deleteGoods(obj) {
    var cartId = obj.parents("tr").attr("cartId");
    layer.confirm(__('Are you sure you want to delete the product')+'?', {
        btn: [__('Sure'), __('Cancel')] //按钮
    }, function (index) {
        $.ajax({
            url: Config.upload.cdnurl + '/cart/delete',
            type: "post",
            data: {cart_id: cartId},
            dataType: "json",
            success: function (data) {
                if(data.code==true){
                    layer.msg(data.msg);
                    setTimeout(function(){
                        window.location.reload();
                    }, 1000);
                }
                
            }
        });
    });

}
//清空购物车
function deleteCart() {
    layer.confirm(__('Are you sure you want to clear the shopping cart')+'?', {
        btn: [__('Sure'), __('Cancel')] //按钮
    }, function (index) {
        $.ajax({
            url: Config.upload.cdnurl + '/cart/clear',
            type: "post",
            dataType: "json",
            success: function (data) {
                if(data.code==true){
                    layer.msg(data.msg);
                    setTimeout(function(){
                        window.location.reload();
                    }, 1000);
                }
                
            }
        });
    });

}

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
// 初始化表格参数配置
            Table.api.init();
            //绑定事件
            $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                var panel = $($(this).attr("href"));
                if (panel.size() > 0) {
                    Controller.table[panel.attr("id")].call(this);
                    $(this).on('click', function (e) {
                        $($(this).attr("href")).find(".btn-refresh").trigger("click");
                    });
                }
                //移除绑定的事件
                $(this).unbind('shown.bs.tab');
            });

            //必须默认触发shown.bs.tab事件
            $('ul.nav-tabs li.active a[data-toggle="tab"]').trigger("shown.bs.tab");
        },
        table: {
            one: function () {
                var table = $("#table");
                // 初始化表格
                table.bootstrapTable({
                    url: 'shop/ads/index',
                    extend: {
                        index_url: 'shop/ads/index',
                        add_url: 'shop/ads/add',
                        edit_url: 'shop/ads/edit',
                        del_url: 'shop/ads/del',
                        import_url: 'shop/ads/import',
                        multi_url: 'shop/ads/multi',
                        table: 'ads',
                    },
                    pk: 'id',
                    sortName: 'weigh',
                    toolbar: '#toolbar1',
                    columns: [
                        [
                            {checkbox: true},
                            {field: 'id', title: __('Id')},
                            {field: 'name', title: __('Name')},
                            {field: 'thumb', title: __('Thumb')},
                            {field: 'open_mode', title: __('Open_mode'), searchList: {"0": __('Open_mode 0'), "1": __('Open_mode 1')}, formatter: Table.api.formatter.normal},
                            {field: 'path_url', title: __('Path_url'), formatter: Table.api.formatter.url},
                            {field: 'adsposition.position', title: __('Position'),sortable: true,formatter: Table.api.formatter.search},
                            {field: 'starttime', title: __('Starttime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
                            {field: 'endtime', title: __('Endtime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
                            {field: 'weigh', title: __('Weigh')},
                            {field: 'status', title: __('Status'), searchList: {"0": __('Status 0'), "1": __('Status 1')}, formatter: Table.api.formatter.status},
                            {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                        ]
                    ]
                });

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

            two: function () {
                var table2 = $("#table2");
                // 初始化表格
                table2.bootstrapTable({
                    url: 'shop/adsposition/index',
                    extend: {
                        index_url: 'shop/adsposition/index',
                        add_url: 'shop/adsposition/add',
                        edit_url: 'shop/adsposition/edit',
                        del_url: 'shop/adsposition/del',
                        import_url: 'shop/adsposition/import',
                        multi_url: 'shop/adsposition/multi',
                        table: 'ads_position',
                    },
                    pk: 'id',
                    sortName: 'weigh',
                    toolbar: '#toolbar2',
                    columns: [
                        [
                            {checkbox: true},
                            {field: 'id', title: __('Id')},
                            {field: 'name', title: __('Name')},
                            {field: 'position', title: __('Position')},
                            {field: 'createtime', title: __('Createtime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
                            {field: 'updatetime', title: __('Updatetime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
                            {field: 'weigh', title: __('Weigh')},
                            {field: 'status', title: __('Status'), searchList: {"0": __('Status 0'), "1": __('Status 1')}, formatter: Table.api.formatter.status},
                            {field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                        ]
                    ]
                });
                // 绑定TAB事件

                // 为表格绑定事件
                Table.api.bindevent(table2);
            }
        },
        add: function () {
            Controller.api.bindevent();
        }
        ,
        edit: function () {
            Controller.api.bindevent();
        }
        ,
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    }
    ;
    return Controller;
});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值