• TP6框架--EasyAdmin学习笔记:列表调用搜索,开发常见问题记录


    这是我写的学习EasyAdmin的第五章,这一章我给大家分享下列表调用搜索的相关知识,并记录说明下开发时碰到的常见问题

    首先说明下如何在页面中调用layui的搜索,效果如下:

     代码如下:

    define(["jquery", "easy-admin"], function ($, ea) {
    
        var init = {
            table_elem: '#currentTable',
            table_render_id: 'currentTableRenderId',
            index_url: 'mall.cate/index',
            add_url: 'mall.cate/add',
            edit_url: 'mall.cate/edit',
            delete_url: 'mall.cate/delete',
            export_url: 'mall.cate/export',
            modify_url: 'mall.cate/modify',
        };
    
        var Controller = {
    
            index: function () {
                ea.table.render({
                    init: init,
                    cols: [[
                        {type: "checkbox"},
                        {field: 'id',  80, title: 'ID'},
                        {field: 'sort',  80, title: '排序', edit: 'text'},
                        {field: 'title', minWidth: 80, title: '分类名称'},
                        {field: 'image', minWidth: 80, title: '分类图片', search: false, templet: ea.table.image},
                        {field: 'remark', minWidth: 80, title: '备注信息'},
                        {field: 'status', title: '状态',  85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
                        {field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
                        { 250, title: '操作', templet: ea.table.tool}
                    ]],
                });
                ea.listen();
            },
            add: function () {
                ea.listen();
            },
            edit: function () {
                ea.listen();
            },
        };
        return Controller;
    });
    search: 'select'代表这一行数据是列表框展示,
    search: false 代表关闭这一行的搜索
    search: 'range'代表时间查找

    下面记录一些我开发时碰到的问题:

    1.layui提交表莫名奇妙提交了两次

    解决方法:检查是否多次导入了layui的js,layui的js每导入一次就创建一次事件,并且不会被替换。

    2.EasyAdmin原方法如何联三表四表

    解决方法:

    mods中加上方法(这里是案例)

     接口里调用

     3.如何修改原生到处接口:

    解决方法:

    方法里写上:

        /**
         * @NodeAnotation(title="导出")
         */
        public function export()
        {
            list($page, $limit, $where) = $this->buildTableParames();
            $tableName = $this->model->getName();
            $tableName = CommonTool::humpToLine(lcfirst($tableName));
            $prefix = config('database.connections.mysql.prefix');
            $dbList = Db::query("show full columns from {$prefix}{$tableName}");
            $header = [];
            foreach ($dbList as $vo) {
                $comment = !empty($vo['Comment']) ? $vo['Comment'] : $vo['Field'];
                if (!in_array($vo['Field'], $this->noExportFields)) {
                    $header[] = [$comment, $vo['Field']];
                }
            }
            $list = $this->model
                ->where($where)
                ->limit(100000)
                ->order('id', 'desc')
                ->select()
                ->toArray();
            $fileName = time();
            return Excel::exportData($list, $header, $fileName, 'xlsx');
        }

    直接在接口页面加上这个方法,在里面修改即可。

    如果本文对你有所帮助,麻烦你点个赞,下一章讲下如何处理excel的表单数据和图片。

  • 相关阅读:
    查询URL字符串参数
    location 对象
    css3 文字特效
    functionDo
    css3 渐变
    [LeetCode][Java]Peeking Iterator
    [LeetCode][JavaScript]Expression Add Operators
    [LeetCode][JavaScript]Different Ways to Add Parentheses
    [LeetCode][JavaScript]Move Zeroes
    [LeetCode][JavaScript]Binary Tree Postorder Traversal
  • 原文地址:https://www.cnblogs.com/smileZAZ/p/14931691.html
Copyright © 2020-2023  润新知