sysfile.js 6.54 KB
let action = null;
let app = null;
let sendDataWhere = {
    targetId: null,
    targetTableName: null,
    eqName: null
};
layui.config({
    base: "/js/",
    version: 1
}).use(['system', 'ztree'], function () {
    var form = layui.form,
        $ = layui.jquery,
        system = layui.system,
        u = new system.u(),
        table = layui.table,
        rowData = null,
        areaName = "Base",
        controller = "SysFile";

    action = {
        deleteOptions: function () {
            var options = {
                url: `/${areaName}/${controller}/DelByIds`,
                keyId: "id"
            }
            return options;
        },

        queryOptions: function () {
            var options = {
                resetFrom: "form[lay-filter=listForm]",
                fromId: "listForm",
                urlExport: `/${areaName}/${controller}/Export`,
                urlQuery: `/${areaName}/${controller}/Load`,
                mainTable: app.data.tableIns
            }
            return options;
        },

        uploadOptions: function () {
            var options = {
                area: ["600px", "500px"],
                url: `/${areaName}/${controller}/Import`,
                fromFile: "#excelfile",
                content: $("#ImportData")
            }
            return options;
        },
        //内部不支持异步,成功返回true,失败返回false
        uploadBefore: function (checkStatus, parm) {
            if (sendDataWhere.targetId == null || sendDataWhere.targetId=="r_1") {
                layer.alert("请选择设备或者设备类型节点上传文件!", { icon: u.config.iconoError, shade: 0.4, time: u.config.errorTime });
                return false;
            }

            $("#ImportData [name='targetId']").val(sendDataWhere.targetId);
            $("#ImportData [name='targetTableName']").val(sendDataWhere.targetTableName);
            $("#ImportData [name='eqName']").val(sendDataWhere.eqName);      
            return true;
        },
        uploadSaveBefore: function (formData, selectRow, callBack) {
            if (callBack != null) callBack();
        },

        //所有动作成功之后
        actionSuccess: (falg) => {
            if (falg === "upload" || falg=="delete") {
                app.methods.initTable({ targetId: sendDataWhere.targetId });
            } else if (falg === "refresh") {
                app.data.tableIns.config.page.curr = 1;
                app.data.tableIns.reload("mainList", {});
            }
        }
    }

    app = {
        data: {
            cols: [[
                { checkbox: true, fixed: true },
                { field: "id", width: 100, title: "编码", hide: true },
                { field: 'fileName', width: 300, title: '文档名称' },
                {
                    field: 'url', width: 300, title: '文件下载', templet: function (d) {
                        var target = "_blank";
                        if (d.suffix.indexOf("pdf") > -1 || d.suffix.indexOf("docx") > -1 || d.suffix.indexOf("doc") > -1 || d.suffix.indexOf("xlsx") > -1) {
                            target = "_self";
                        }
                        return `<a href="../../Document/${d.url}"  target='${target}' style="color:cornflowerblue;text-decoration: underline;cursor:pointer;">${d.fileName}</a>`;
                    }
                },
                { field: 'size', width: 120, title: '文档大小' },
                { field: 'targetId', title: '设备Code', hide: true },
                { field: 'targetTableName', width: 120, title: '适用的设备', hide: true },
                { field: 'suffix', width: 100, title: '文档类型' },
                { field: 'remark', width: 120, title: '备注' },

                { field: 'createTime', width: 150, title: '创建时间' },
                { field: 'createBy', width: 100, title: '创建人' }
            ]],
            urlTable: `/${areaName}/${controller}/Load`,
            tableIns: null,
            tableInsDesc: null,

            tableElem: "mainList",

            tree: $("#tree"),
            treeObj: null,
            setting: {
                view: { selectedMulti: false },
                async: {
                    enable: true,
                    url: `/${areaName}/${controller}/GetTreeList`,
                    type: "get"
                },
                data: {
                    simpleData: {
                        enable: true,
                        idKey: "keys",
                        pIdKey: "parentId",
                        rootPId: ""
                    }
                },
                callback: {
                    onClick: function (event, treeId, treeNode) {
                        sendDataWhere.targetId = treeNode.keys;
                        sendDataWhere.targetTableName = treeNode.code;
                        sendDataWhere.eqName = treeNode.name;
                        app.methods.initTable(sendDataWhere);
                    },
                    onAsyncSuccess: function (event, treeId, treeNode, msg) {
                        app.data.treeObj.expandAll(true);
                    }
                }
            },
            selectOption: {
                //返回的数据 用于后续操作
                selectData: {
                    
                }
            }
        },
        methods: {
            initTable: function (options) {
                var config = {

                };
                if (options != undefined) $.extend(config, options);
                let opt = {
                    cols: u.columnRecord(app.data.tableElem, app.data.cols),
                    elem: "#" + app.data.tableElem,
                    url: app.data.urlTable,
                    toolbar: '#toolbarTable',
                    where: config,
                    menuModule: controller
                }
                app.data.tableIns = u.initTable(opt);
            },
            initTree: function () {
                setTimeout(() => {
                    app.data.treeObj = $.fn.zTree.init(app.data.tree, app.data.setting);

                    app.data.tree.height($("div.layui-table-view").height() - 12);
                }, 50);
            },
            initFrom() {
                u.initSelect(app.data.selectOption);
            },
        },
        registerEvent: function () {

        },
        init: function () {
            app.registerEvent();
            var sendDataWhere = "".getAllUrlParameters();
            app.methods.initTable(sendDataWhere);
            app.methods.initTree();
            app.methods.initFrom();
        }
    };
    app.init();
})