layui.use(["laytp","card"], function () {
    const funController = {};
    //静态页面地址前缀
    window.htmlPrefix = facade.compatibleHtmlPath("/admin/files/");
    //后端接口地址前缀
    window.apiPrefix  = facade.compatibleApiRoute("/admin.files/");

    //表格渲染
    funController.tableRender1 = function (where, page) {
        layui.table.render({
            elem: "#laytp-table"
            , limit: facade.getLimit('/admin/files/')
            , id: "laytp-table"
            , url: facade.url("/admin.files/index",{paging:1})
            , toolbar: "#default-toolbar"
            , defaultToolbar: [{
                title: '刷新',
                layEvent: 'refresh',
                icon: 'layui-icon-refresh',
            }, 'filter', 'print', 'exports']
            , where: where
            , method: "GET"
            , cellMinWidth: 120
            , skin: 'line'
            , loading: false
            , page: {
                curr: page
            }
            , parseData: function (res) { //res 即为原始返回的数据
                layui.laytpTable.setLimit('/admin/files/', res.data.per_page);
                return facade.parseTableData(res, true);
            }
            , done: function(){
                layui.laytpTable.done();
            }
            , cols: [[
                {type:'checkbox',fixed:'left'}
				,{field:'id',title:'ID',align:'center',width:80,fixed:'left'}
				,{field:'category_id',title:'所属分类',align:'center',templet:'<div>{{# if(d.category){ }}{{d.category.name}}{{# }else{ }}-{{# } }}</div>'}
				,{field:'name',title:'文件名称',align:'center',templet:function(d){
                        return layui.laytpl('{{=d.name}}').render({name:d.name});
                    }}
				,{field:'file_type',title:'文件类型',align:'center',templet:function(d){
                    return laytp.tableFormatter.status('file_type',d.file_type,{"value":["image","video","audio","file"],"text":["图片","视频","音频","文件"]});
                }}
				,{field:'path',title:'文件路径',align:'center',templet:function(d){
					return laytp.tableFormatter.file(d.path);
				}}
				,{field:'upload_type',title:'上传方式',align:'center',templet:function(d){
                    return laytp.tableFormatter.status('upload_type',d.upload_type,{"value":["local","ali-oss","qiniu-kodo"],"text":["本地上传","阿里云OSS","七牛云KODO"]});
                }}
				,{field:'create_admin_user_id',title:'创建者',align:'center',templet:'<div>{{# if(d.createAdminUser){ }}{{d.createAdminUser.nickname}}{{# }else{ }}-{{# } }}</div>'}
				,{field:'update_admin_user_id',title:'最后更新者',align:'center',templet:'<div>{{# if(d.updateAdminUser){ }}{{d.updateAdminUser.nickname}}{{# }else{ }}-{{# } }}</div>'}
				,{field:'create_time',title:'创建时间',align:'center'}
            ]]
        });

        //监听数据表格顶部左侧按钮点击事件
        layui.table.on("toolbar(laytp-table)", function (obj) {
            //默认按钮点击事件，包括添加按钮和回收站按钮
            var defaultTableToolbar = layui.context.get("defaultTableToolbar");
            if (defaultTableToolbar.indexOf(obj.event) !== -1) {
                laytp.tableToolbar(obj);
            } else {
                // //自定义按钮点击事件
                // switch(obj.event){
                // //自定义按钮点击事件
                // case "":
                //
                //     break;
                // }
            }
        });

        //监听数据表格[操作列]按钮点击事件
        layui.table.on("tool(laytp-table)", function (obj) {
            var defaultTableTool = layui.context.get("defaultTableTool");
            if (defaultTableTool.indexOf(obj.event) !== -1) {
                laytp.tableTool(obj);
            } else {
                // //自定义按钮点击事件
                // switch(obj.event){
                // //自定义按钮点击事件
                // case "":
                //
                //     break;
                // }
            }
        });

        //监听表头排序事件
        layui.table.on('sort(laytp-table)', function(obj){
            layui.table.reloadData('laytp-table', {
                initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。
                , where: {
                    "order_param" : {
                        "field" : obj.field,
                        "type" : obj.type
                    }
                }
            });
        });
    };

    funController.tableRender = function(where, page){
        layui.card.render({
            elem:'#laytp-card',
            url:facade.url("/admin.files/index",{paging:1}),
            parseData: function (res) { //res 即为ajax原始返回的数据
                layui.laytpTable.setLimit('/admin/files/', res.data.per_page);
                return facade.parseTableData(res, true);
            },
            parseItem: function(row){ //row 为每条数据
                return {
                    "title": row.name,
                    "file_type": row.file_type,
                    "file_path": row.path,
                    "remark": row.file_type,
                    "create_time": row.create_time,
                    "create_avatar": row.createAdminUser.avatarFile.path,
                    "create_nickname": row.createAdminUser.nickname,
                }
            },
            where:where,
            currentPage:page,
            toolbar: '#default-toolbar', //顶部操作按钮
            bar: '#default-bar',//每个卡片的操作按钮
        });

        //监听数据表格顶部左侧按钮点击事件
        layui.card.on('toolbar(laytp-card)', function(obj){
            var defaultTableToolbar = layui.context.get("defaultTableToolbar");
            if (defaultTableToolbar.indexOf(obj.event) !== -1) {
                layui.laytp.tableToolbar(obj);
            } else {
                // //自定义按钮点击事件
                // switch(obj.event){
                // //自定义按钮点击事件
                // case "":
                //
                //     break;
                // }
            }
        });

        //监听数据表格[操作列]按钮点击事件
        layui.card.on('tool(laytp-card)', function(obj){
            var defaultTableTool = layui.context.get("defaultTableTool");
            if (defaultTableTool.indexOf(obj.event) !== -1) {
                layui.laytp.tableTool(obj);
            } else {
                //自定义按钮点击事件
                switch(obj.event){
                    //预览
                    case "preview":
                        if(obj.data.file_type === "image"){
                            return laytp.tableFormatter.showImage(obj.data.path);
                        }else if(obj.data.file_type === "video"){
                            return laytp.tableFormatter.showVideo(obj.data.path);
                        }else if(obj.data.file_type === "audio"){
                            return laytp.tableFormatter.showAudio(obj.data.path);
                        }else if(obj.data.file_type === "file"){
                            return laytp.tableFormatter.file(obj.data.path);
                        }
                        break;
                    //下载
                    case "download":
                        return facade.downloadFile(obj.data.path, obj.data.name);
                        break;
                }
            }
        });
    }

    funController.tableRender();

    window.funController = funController;
});