Map.js 10.1 KB
layui.config({
    base: "/js/"
}).use(['form', 'I18nPage', 'element', 'vue', 'layer', 'laydate', 'jquery', 'table', 'hhweb', 'utils', 'Universal'], function () {
    var form = layui.form,
        layer = (top == undefined || top.layer === undefined) ? layui.layer : top.layer,
        element = layui.element,
        laydate = layui.laydate,
        $ = layui.jquery,
        table = layui.table,
        hhweb = layui.hhweb,
        Universal = layui.Universal,
        I18nPage = layui.I18nPage;

    var thiswin = (top == undefined) ? window : top.window;
    var AreaName = 'map';
    var TableName = 'Map';

    var MessageContainer = {};
    I18nPage.GetI18nMessage({
        Type: "PM",
        Code: "Map",
        Container: MessageContainer,
    });

    var cols_arr = I18nPage.GetI18nTable(
        {
            TableNo: AreaName + "-" + TableName,
            TableName: TableName,
            Qel: "#qFields",
            Eel: "#eFields",
        }
    );

    var vm = new Vue({
        el: '#modifyForm'
    });

    var vmq = new Vue({
        el: '#panelSearch',
        data: {
        }
    });

    var mainList = {
        Render: function () {
            mainList.Table = table.render({
                elem: '#mainList'
                , url: "/" + AreaName + "/" + TableName + "/Load"
                , method: "post"
                , page: true //开启分页
                , cols: hhweb.ColumnSetting('mainList', cols_arr)
                , id: 'mainList'
                , limit: 20
                , limits: [20, 50, 100, 200, 500, 1000]
                , defaultToolbar: ['filter']
                , toolbar: '#toolbarTable'
                , height: 'full-1'
                , cellMinWidth: 80
                , size: 'sm'
                , done: function (res) { }
            });

            return mainList.Table;
        },
        Load: function () {
            if (mainList.Table == undefined) {
                mainList.Table = this.Render();
                return;
            }
            table.reload('mainList', {});
        }
    };

    //编辑
    var EditInfo = function (tabledata) {
        data = tabledata;
        vm.$set('$data', data);
        //表单修改时填充需修改的数据
        var list = {};
        $('.ClearSelector_' + TableName).each(function () {
            var selDom = ($(this));
            if ($(selDom)[0].name.search("q") == -1) {
                list[$(selDom)[0].name] = data[$(selDom)[0].name] + "";
            }
        });
        //表单修改时填充需修改的数据
        form.val('modifyForm', list);
    };


    //添加(编辑)对话框
    var editDlg = function () {
        var show = function (data) {
            let url = window.location.origin + '/map/Map/design?id=' + data.Id;
            //history.pushState({ page: "地图修改" }, "地图修改", window.location.origin +"/Home/Index");
            //history.pushState({ page: "地图修改" }, "地图修改", url);
            layer.open({
                type: 2,
                area: ['100%', '100%'], //宽高
                maxmin: false,
                title: false,
                closeBtn: false,
                //btnAlign: 'c',
                content: '/map/Map/design?id=' + data.Id,
                btn: [MessageContainer.SaveBtn, MessageContainer.CloseBtn],
                yes: function (index, layero) {
                    var iframeWin = thiswin[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                    iframeWin.submit();

                    //layer.close(index);
                    table.reload('mainList', {});
                },
                btn2: function (index) {
                    layer.close(index);
                    table.reload('mainList', {});
                },
                cancel: function (index) {
                    layer.close(index);
                    table.reload('mainList', {});
                },
                success: function (layero, index) {
                   // history.pushState({ page: "地图修改" }, "地图修改", window.location.origin + '/map/Map/design?id=' + data.Id);
                    
                    //document.location.replace(document.location.host + '/map/Map/design?id=' + data.Id);
                    layer.full(index);
                }
            });
        }
        return {
            add: function () { //弹出添加
                update = false;
                show({
                    Id: ''
                });
            },
            update: function (data) { //弹出编辑框
                update = true;
                show(data);
            }
        };
    }();


    var selfbtn = {
        //自定义按钮
        btnDel: function () {      //批量删除
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;

            if (checkStatus.data.length > 0) {
                layer.confirm(MessageContainer.DeleteMsg, { icon: 3 }, function (index) {
                    $.ajax({
                        url: "/" + AreaName + "/" + TableName + "/DelByIds",
                        type: "post",
                        data: { ids: data.map(function (e) { return e.Id; }) },
                        dataType: "json",
                        success: function (result) {
                            if (result.Code == 200 && result.Status) {
                                layer.msg(MessageContainer.SuccessMsg, { icon: 6, shade: 0.4, time: 1000 });
                                layer.close(index);
                                mainList.Load();//重载TABLE
                            }
                            else {
                                layer.alert(result.Message, { icon: 5, shadeClose: true, title: MessageContainer.ErrorInfo });
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            layer.alert(errorThrown, { icon: 2, shadeClose: true, title: MessageContainer.ErrorInfo });
                        }
                    });
                });
            }
            else
                layer.alert(MessageContainer.SelectSome, { icon: 5, shadeClose: true, title: MessageContainer.ErrorInfo });
        }
        , btnAdd: function () {  //添加
            editDlg.add();
        }
        , btnSelfEdit: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.SelectOne);
                return;
            }
            editDlg.update(data[0]);
        }
        , btnSelfPreview: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.SelectOne);
                return;
            }

            layer.open({
                type: 2,
                area: ['100%', '100%'], //宽高
                maxmin: false,
                title: false,
                closeBtn: false,
                //btnAlign: 'c',
                content: ['/map/Map/preview?id=' + data[0].Id, 'no'],
                btn: [MessageContainer.CloseBtn],
                yes: function (index, layero) {
                    layer.close(index);
                },
                cancel: function (index) {
                    layer.close(index);
                },
                success: function (layero, index) {
                    layer.full(index);
                }
            });
        }
        , MapBkp: function () {  //地图备份
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.SelectOne);
                return;
            }

            $.ajax({
                url: "/" + AreaName + "/" + TableName + "/MapBkp",
                type: "post",
                data: { id: data[0].Id },
                dataType: "json",
                success: function (result) {
                    if (result.Code == 200 && result.Status) {
                        layer.msg(MessageContainer.SuccessMsg, { icon: 6, shade: 0.4, time: 1000 });
                        mainList.Load();//重载TABLE
                    }
                    else {
                        layer.alert(result.Message, { icon: 5, shadeClose: true, title: MessageContainer.ErrorInfo });
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    layer.alert(errorThrown, { icon: 2, shadeClose: true, title: MessageContainer.ErrorInfo });
                }
            });
        }
        , MapRestore: function () {  //地图还原
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.msg(MessageContainer.SelectOne);
                return;
            }

            $.ajax({
                url: "/" + AreaName + "/" + TableName + "/MapRestore",
                type: "post",
                data: { id: data[0].Id },
                dataType: "json",
                success: function (result) {
                    if (result.Code == 200 && result.Status) {
                        layer.msg('操作成功', { icon: 6, shade: 0.4, time: 1000 });
                        mainList.Load();//重载TABLE
                    }
                    else {
                        layer.alert(result.Message, { icon: 5, shadeClose: true, title: MessageContainer.ErrorInfo });
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    layer.alert(errorThrown, { icon: 2, shadeClose: true, title: MessageContainer.ErrorInfo });
                }
            });
        }
    };

    var selector = {
    };

    var vml = new Array({
        vm: vm,
        vmq: vmq,
    });

    Universal.BindSelector(vml, selector);
    Universal.mmain(AreaName, TableName, vm, vmq, EditInfo, selfbtn, mainList);
});