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

    var AreaName = 'acs';
    var TableName = 'TTask';

    var AreaNameDtl = 'acs';
    var TableNameDtl = 'TSonTask';

    I18nPage.GetI18nText({
        Type: "LP",
        Code: "TTask",
    });

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

    var cols_arrDtl = I18nPage.GetI18nTable(
        {
            TableNo: AreaNameDtl + "-" + TableNameDtl,
            TableName: TableNameDtl,
        }
    );

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

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

    hhweb.Config = {
        'StrAcceptTime': vm,
        'StrBeginTime': vm,
        'StrEndTime': vm,

        'qStrAcceptTime': vmq,
        'qStrBeginTime': vmq,
        'qStrEndTime': vmq,
    };
    hhweb.InitUIClass();

    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: 10
                , limits: [10, 20, 50, 100, 200, 500, 1000]
                , defaultToolbar: ['filter']
                , toolbar: '#toolbarTable'
                , height: '555'
                , 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 selfbtn = {
        //自定义按钮
        btnPause: function () {
            var checkStatus = table.checkStatus('mainList');
            var count = checkStatus.data.length;
            if (count !== 0) {
                for (var i = 0; i < count; i++) {
                    if (checkStatus.data[i].isTaskSubmit) {
                        var Id = checkStatus.data[i].Id;
                        layer.alert("任务Id:" + Id + " 的任务已提交,无法暂停!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    }
                }

                $.ajax({
                    type: "POST",
                    url: "/acs/TTask/TaskChange",
                    async: true,
                    data: { ids: checkStatus.data.map(function (e) { return e.Id; }), taskState: "Stop" },
                    dataType: "json",
                    success: function (data) {
                        if (data.Status) {
                            layer.msg("暂停成功!");
                            mainList.Load();
                        } else {
                            layer.alert(data.Message)
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        layer.alert(errorThrown, { icon: 2, shadeClose: true, title: "错误信息" });
                    }
                });
            }
            else
                layer.alert("请至少选择一条操作数据!", { icon: 5, shadeClose: true, title: "错误信息" });
        },
        btnCancel: function () {
            var checkStatus = table.checkStatus('mainList');
            var count = checkStatus.data.length;
            if (count == 0) {
                layer.alert("至少选择一条任务数据!", { icon: 5, shadeClose: true, title: "错误信息" });
                return;
            }
            //for (var i = 0; i < count; i++) {
            //    if (checkStatus.data[i].isTaskSubmit) {
            //        var Id = checkStatus.data[i].Id;
            //        layer.alert("任务Id:" + Id + " 的任务已提交,无法取消!", { icon: 5, shadeClose: true, title: "错误信息" });
            //        return null;
            //    }
            //}
            var taskMsg = '【' + checkStatus.data[0].StrTaskNo + '】';
            layer.msg(taskMsg);
            layer.open({
                type: 0
                , title: "任务删除"
                , icon: 3
                , closeBtn: 0
                , shade: 0.1
                , shadeClose: true
                , maxmin: false
                , content: "确定要删除任务" + taskMsg +"?"
                , btn: ["确定", "取消"]
                , yes: function () {
                    $.ajax({
                        type: "POST",
                        url: "/acs/TTask/TaskChange",
                        async: true,
                        data: { ids: checkStatus.data.map(function (e) { return e.Id; }), taskState: "Cancel" },
                        dataType: "json",
                        success: function (data) {
                            if (data.Status) {
                                layer.msg("取消成功!");
                                mainList.Load();
                            } else {
                                layer.alert(data.Message)
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            layer.alert(errorThrown, { icon: 2, shadeClose: true, title: "错误信息" });
                        }
                    });
                }
                , btn2: function () {
                    layer.closeAll();

                }
                , success: function (layero) {

                }
            });

            //else
            //    layer.alert("请至少选择一条操作数据!", { icon: 5, shadeClose: true, title: "错误信息" });
        },
    };

    //子表逻辑
    var All = new Array();
    var AreaNameDtlTSonTask = 'acs';
    var TableNameDtlTSonTask = 'TSonTask';
    //{子表字段:主表字段}
    var NameDtlTSonTask = { StrTaskNo: 'StrTaskNo' };
    var vmqDtlTSonTask = new Vue({
        data: { StrTaskNo: '' }
    });

    var mainListDtlTSonTask = {
        Render: function () {
            mainListDtlTSonTask.Table = table.render({
                elem: '#mainListDtl' + TableNameDtlTSonTask
                , url: "/" + AreaNameDtlTSonTask + "/" + TableNameDtlTSonTask + "/Load"
                , where: vmqDtlTSonTask.$data
                , method: "post"
                , page: true //开启分页
                , cols: hhweb.ColumnSetting('mainListDtl' + TableNameDtlTSonTask, cols_arrDtl)
                , id: 'mainListDtl' + TableNameDtlTSonTask
                , limit: 10
                , limits: [10, 50, 100, 200, 500, 1000]
                , toolbar: false
                , height: '285'
                , cellMinWidth: 80
                , size: 'sm'
                , done: function (res) { }
            });

            return mainListDtlTSonTask.Table;
        },
        Load: function () {
            if (mainListDtlTSonTask.Table == undefined) {
                mainListDtlTSonTask.Table = this.Render();
                return;
            }
            table.reload('mainListDtl' + TableNameDtlTSonTask, {
                url: "/" + AreaNameDtlTSonTask + "/" + TableNameDtlTSonTask + "/Load"
                , where: vmqDtlTSonTask.$data
                , method: "post"
                , page: { curr: 1 }
            });
        }
    };
    All.push({
        AreaNameDtl: AreaNameDtlTSonTask, TableNameDtl: TableNameDtlTSonTask, vmqDtl: vmqDtlTSonTask,
        NameDtl: NameDtlTSonTask, mainListDtl: mainListDtlTSonTask
    });

    var selector = {
        'IsTaskSubmit': {
            SelType: "FromDict",
            SelFrom: "sys_true_false",
            SelModel: "IsTaskSubmit",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='IsTaskSubmit']"), $("[name='qIsTaskSubmit']")]
        },
        'SonTaskType': {
            SelType: "FromDict",
            SelFrom: "TaskType",
            SelModel: "SonTaskType",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='SonTaskType']"), $("[name='qSonTaskType']")]
        },
        'SonTaskState': {
            SelType: "FromDict",
            SelFrom: "TaskState",
            SelModel: "SonTaskState",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='SonTaskState']"), $("[name='qSonTaskState']")]
        },
    };

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

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