WebTM/views/ÏîÄ¿¹ÜÀí/¹¤×÷ÈÎÎñ/PM_WorkTaskBillList.html
@@ -18,6 +18,8 @@
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
</head>
<body>
@@ -66,6 +68,18 @@
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:5px">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">接单人</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HReceiveEmp" id="HReceiveEmp">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">单据状态</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBillStatus" id="HBillStatus">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
@@ -102,9 +116,16 @@
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="get_view"><i class="layui-icon layui-icon-form"></i>浏览</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit"><i class="layui-icon layui-icon-radio"></i>审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit"><i class="layui-icon layui-icon-radio"></i>审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeAudit"><i class="layui-icon layui-icon-circle"></i>反审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Stop"><i class="layui-icon layui-icon-radio"></i>禁用</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-BatchAudit"><i class="layui-icon layui-icon-radio"></i>批量审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-BatchDeAudit"><i class="layui-icon layui-icon-radio"></i>批量反审核</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Close"><i class="layui-icon layui-icon-radio"></i>关闭</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeClose"><i class="layui-icon layui-icon-radio"></i>反关闭</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Drop"><i class="layui-icon layui-icon-radio"></i>作废</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeDrop"><i class="layui-icon layui-icon-radio"></i>反作废</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill_dh"><i class="layui-icon layui-icon-radio"></i>批量下推</button>
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Stop"><i class="layui-icon layui-icon-radio"></i>禁用</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeStop"><i class="layui-icon layui-icon-radio"></i>反禁用</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
@@ -115,12 +136,19 @@
            </div>
        </div>
    </div>
    <!--批量审核/反审核进度条-->
    <div class="layui-progress layui-progress-big" lay-filter="BatchAuditProgress" id="BatchAuditProgress" style="width:20%;position:fixed;left:40%;top:55%;display:none;">
        <div class="layui-progress-bar" style="width:200px;" lay-percent="0%"></div>
    </div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','soulTable'], function () {
            //#region å…¬ç”¨å˜é‡
            var $ = layui.$
                , admin = layui.admin
@@ -130,12 +158,14 @@
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , soulTable = layui.soulTable
            var option = [];
            var sWhere = "";
            var HModName = "PM_WorkTaskBillList";
            //不需要显示的字段 å¯æ‰©å±•
            var titleData = ["HItemID","HProcessID_K3","HUSEORGID"];
            var titleData = ["HInterID", "HProjectStageID", "HOrgID", "HEntryID", "HProjectID", "HBillStatus"];
            //#endregion
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -166,14 +196,41 @@
                    ////浏览
                    //case 'get_view': get_view();
                    //    break;
                    ////审核按钮
                    //case 'btn-Audit':
                    //    set_CheckBill(0);
                    //    break;
                    ////反审核按钮
                    //case 'btn-DeAudit':
                    //    set_CheckBill(1);
                    //    break;
                    //审核按钮
                    case 'btn-Audit':
                        set_CheckBill(1);
                        break;
                    //反审核按钮
                    case 'btn-DeAudit':
                        set_CheckBill(2);
                        break;
                    //批量审核按钮
                    case 'btn-BatchAudit':
                        set_BatchCheckBill(1);
                        break;
                    //批量反审核按钮
                    case 'btn-BatchDeAudit':
                        set_BatchCheckBill(2);
                        break;
                    //关闭按钮        ï¼ˆ1:关闭、2:反关闭)
                    case 'btn-Close':
                        set_CloseBill(1);
                        break;
                    //反关闭按钮
                    case 'btn-DeClose':
                        set_CloseBill(2);
                        break;
                    //作废按钮        ï¼ˆ1:作废、2:反作废)
                    case 'btn-Drop':
                        set_DropBill(1);
                        break;
                    //反作废按钮
                    case 'btn-DeDrop':
                        set_DropBill(2);
                        break;
                    case 'set_ShowBill_dh':
                        set_ShowBill_dh();
                        break;
                    ////禁用按钮
                    //case 'btn-Stop':
                    //    set_De_Stop(0);
@@ -233,9 +290,14 @@
            function set_ClearBill() {
                //初始化表格
                set_InitGrid();
                //查询
                get_FastQuery(1);
                //初始化组织
                Organ();
                //查询
                if (addSWhereByOpenType()) {                        //addSWhereByOpenType()方法判断是否其它页面打开本页面,若是则处理过滤条件,并返回true
                    get_FastQuery(2);
                } else {
                    get_FastQuery(1);
                }
            }
            //#endregion
@@ -246,9 +308,13 @@
                    , toolbar: '#toolbarDemo'
                    , height: 'full-50'
                    , page: true
                    , totalRow: true
                    //, cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 50000]
                    , done: function (res, curr, count) {
                        soulTable.render(this);
                    }
                };
            }
            //#endregion
@@ -258,6 +324,7 @@
                //获取登录页组织列
                $.ajax({
                    type: "get",
                    async: false,
                    url: GetWEBURL() + "/Web/GetOrganizations",
                    success: function (result) {
                        var Organization = "";
@@ -285,6 +352,7 @@
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"]},
                    success: function (data1) {
                        if (data1.count == 1) {
                            var totalArray = ["评估工时", "自评工时", "已耗用工时"];
                            var data = [];
                            var col = [];
                            //给空的数组赋值
@@ -298,11 +366,13 @@
                                if ($.inArray(data[i].name, titleData) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                else if ($.inArray(data[i].name, totalArray)>-1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
                                } else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width:120 });
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120 });
@@ -339,10 +409,18 @@
            //#region å¿«é€Ÿè¿‡æ»¤
            function get_FastQuery(number) {
                //获取登录账户对应职员名称
                var HUserName = getHEmpByHUserName();
                if (HUserName != "" && HUserName != null) {
                    sWhere += " and (派单人 = '" + HUserName + "' or æŽ¥å•人 = '" + HUserName + "' or æŠ„送人 like '%" + HUserName + "%') ";
                }
                var HOrgID = "";
                var HBillNo = $("#HBillNo").val();  //单据号
                var HProNumber = $("#HProNumber").val();//项目代码
                var HName = $("#HName").val();//工作名称
                var HBillStatus = $("#HBillStatus").val();//单据状态
                var HReceiveEmp = $("#HReceiveEmp").val();//接单人
                //任意字段过滤
                var ColName = $("#ColName").val();//复选框
                var Comparator = $("#Comparator").val()
@@ -376,17 +454,24 @@
                    HOrgID = $("#HOrgID").val();//组织
                }
                if (HBillNo) {
                    sWhere += " and HBillNo like '%" + HBillNo + "%'";
                    sWhere += " and å•据号 like '%" + HBillNo + "%'";
                }
                if (HProNumber) {
                    sWhere += " and HProNumber like '%" + HProNumber + "%'";
                    sWhere += " and é¡¹ç›®ä»£ç  like '%" + HProNumber + "%'";
                }
                if (HName) {
                    sWhere += " and HName like '%" + HName + "%'";
                    sWhere += " and ä»»åŠ¡åç§° like '%" + HName + "%'";
                }
                if (HOrgID) {
                    sWhere += " and HOrgID = '" + HOrgID + "'";
                }
                if (HBillStatus) {
                    sWhere += " and å•据状态 like '%" + HBillStatus + "%'";
                }
                if (HReceiveEmp) {
                    sWhere += " and æŽ¥å•人 like '%" + HReceiveEmp + "%'";
                }
                get_Display(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
            }
@@ -397,6 +482,8 @@
                $("#HBillNo").val("");
                $("#HProNumber").val("");
                $("#HName").val("");
                $("#HReceiveEmp").val("");
                $("#HBillStatus").val("");
                $("#HOrgID").val(sessionStorage["OrganizationID"]);
                $("#ColContent").val("");
                $("#ColName").val("0");
@@ -418,9 +505,9 @@
                    , content: '../../项目管理/工作任务/PM_WorkTaskBill.html?OperationType=1&linterid=0&HSouceBillType='
                    ,btn: ['确定'],
                    // æŒ‰é’®1 çš„回调
                    btn1: function (index, layero, that) {
                    end: function (index, layero, that) {
                        //刷新页面
                        window.location.reload();
                        $("#btnSearch").trigger('click');
                    }
                })
            }
@@ -441,9 +528,9 @@
                        , content: '../../项目管理/工作任务/PM_WorkTaskBill.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
                        , btn: ['确定'],
                        // æŒ‰é’®1 çš„回调
                        btn1: function (index, layero, that) {
                        end: function (index, layero, that) {
                            //刷新页面
                            window.location.reload();
                            $("#btnSearch").trigger('click');
                        }
                    })
                } else {
@@ -467,9 +554,9 @@
                        , content: '../../项目管理/项目阶段/Add_Edit_Gy_ProjectStage.html?OperationType=4&linterid=' + linterid + '&HSouceBillType='
                        , btn: ['确定'],
                        // æŒ‰é’®1 çš„回调
                        btn1: function (index, layero, that) {
                        end: function (index, layero, that) {
                            //刷新页面
                            //window.location.reload();
                            $("#btnSearch").trigger('click');
                        }
                    })
                } else {
@@ -500,7 +587,7 @@
                                        //关闭当前frame
                                        layer.close(wait);
                                        //修改为功后刷新界面
                                        window.location.reload();
                                        w$("#btnSearch").trigger('click');
                                    });
                                } else {
                                    layer.alert(result.code + result.Message, { icon: 5 });
@@ -522,8 +609,7 @@
            //#region åˆ·æ–°
            function get_Refresh() {
                set_ClearQuery();
                get_FastQuery(1);
                $("#btnSearch").trigger('click');
            }
            //#endregion
@@ -532,12 +618,12 @@
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].HItemID.toString();
                    var InterID = data[0].HInterID.toString();
                    //逻辑审核方法
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/Gy_Process/AuditGy_Process", //方法所在页面和方法名
                        data: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] },
                        url: GetWEBURL() + "/PM_WorkTaskBill/AuditPM_WorkTaskBill", //方法所在页面和方法名
                        data: { "HInterID": InterID, "Type": num, "user": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
@@ -563,17 +649,85 @@
            }
            //#endregion
            //#region åç¦ç”¨/禁用数据
            function set_De_Stop(num) {
            //#region æ‰¹é‡åå®¡æ ¸/审核数据
            function set_BatchCheckBill(num) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length != 0) {
                    var errMsg = "";                                         //记录审核失败信息
                    var successMsg = "";                                     //记录审核成功信息
                    var div = document.getElementById("BatchAuditProgress"); //获取进度条
                    var progressPercent = 0;
                    //获取需要审核的单据集合对应的单据内码集合
                    var HInterIDArray = [];
                    var HBillNoArray = [];
                    for (var i = 0; i < data.length; i++) {
                        if ($.inArray(data[i]["HInterID"], HInterIDArray) == -1) {
                            HInterIDArray.push(data[i]["HInterID"]);
                            HBillNoArray.push(data[i]["单据号"]);
                        }
                    }
                    //设置加载图标
                    var ajaxLoad = layer.load();
                    //进度条显示并进度归0
                    element.progress('BatchAuditProgress', '0%');
                    div.style.display = "block";
                    //遍历需要审核的单据内码集合,并审核对应单据内码的单据
                    for (var i = 0; i < HInterIDArray.length; i++) {
                        var HInterID = HInterIDArray[i];
                        var HBillNo = HBillNoArray[i];
                        //逻辑审核方法
                        $.ajax({
                            type: "GET",
                            async: false,
                            url: GetWEBURL() + "/PM_WorkTaskBill/AuditPM_WorkTaskBill", //方法所在页面和方法名
                            data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
                            success: function (result) {
                                if (result.count == 1) {
                                    successMsg += "[" + HInterID + "],[" + HBillNo + "]:操作执行成功。\n";
                                } else {
                                    errMsg += "[" + HInterID + "],[" + HBillNo + "]:操作执行失败。失败原因:" + result.Message + "\n";
                                }
                            }, error: function () {
                                errMsg += "[" + HInterID + "],[" + HBillNo + "]:操作执行失败。失败原因:接口请求失败!\n";
                            }
                        });
                        //增加进度条进度
                        progressPercent = (i + 1) / HInterIDArray.length * 100;
                        element.progress('BatchAuditProgress', progressPercent + "%");
                    }
                    //隐藏进度条
                    div.style.display = "none";
                    //拼接审核成功信息与审核失败信息
                    var resultMessage = successMsg + errMsg;
                    //审核结果提示弹窗
                    layer.alert(resultMessage, { icon: 5 });
                    //关闭加载图标
                    layer.close(ajaxLoad);
                    //刷新界面
                    $("#btnSearch").trigger('click');
                }
                else {
                    layer.msg('请选择数据审核!');
                }
            }
            //#endregion
            //#region åå…³é—­/关闭数据
            function set_CloseBill(num) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].HItemID.toString();
                    var InterID = data[0].HInterID.toString();
                    //逻辑审核方法
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/Gy_Process/StopGy_Process", //方法所在页面和方法名
                        data: { "HInterID": InterID, "IsStop": num, "CurUserName": sessionStorage["HUserName"] },
                        url: GetWEBURL() + "/PM_WorkTaskBill/ClosePM_WorkTaskBill", //方法所在页面和方法名
                        data: { "HInterID": InterID, "Type": num, "user": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
@@ -595,6 +749,100 @@
                }
                else {
                    layer.msg('请选择一行数据审核!');
                }
            }
            //#endregion
            //#region åä½œåºŸ/作废数据
            function set_DropBill(num) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var InterID = data[0].HInterID.toString();
                    //逻辑审核方法
                    $.ajax({
                        type: "GET",
                        url: GetWEBURL() + "/PM_WorkTaskBill/DropPM_WorkTaskBill", //方法所在页面和方法名
                        data: { "HInterID": InterID, "Type": num, "user": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    // å¾—到frame索引
                                    var index = layer.getFrameIndex(window.name);
                                    //关闭当前frame
                                    layer.close(index);
                                    //修改为功后刷新界面
                                    $("#btnSearch").trigger('click');
                                });
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                        }
                    });
                }
                else {
                    layer.msg('请选择一行数据审核!');
                }
            }
            //#endregion
            //#region å¤šè¡Œä¸‹æŽ¨
            function set_ShowBill_dh() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (data.length != 0) {
                    //layer.confirm("确认要下推吗?", function (index) {
                    var dataArray = [];
                    var sHBillStatus = "";  //单据状态
                    for (var i = 0; i < data.length; i++) {
                        var temp = {
                            "HProjectID": data[i].HProjectID
                            , "HProNumber": data[i].项目代码
                            , "HProjectStageID": data[i].HProjectStageID
                            , "HProjectStageName": data[i].项目阶段
                            , "HName": data[i].任务名称
                            , "HTaskNote": data[i].任务描述
                            , "HType": data[i].任务类型
                            , "HSourceInterID": data[i].HInterID
                            , "HSourceEntryID": data[i].HEntryID
                            , "HSourceBillNo": data[i].单据号
                            , "HSourceBillType": data[i].单据类型
                        }
                        dataArray.push(temp);
                        if (data[i].HBillStatus != 2) {
                            sHBillStatus = "1";
                        }
                    }
                    //判断所选行中是否存在单据状态不为已审核状态的数据
                    if (sHBillStatus == "1") {
                        layer.msg('所选择工作任务存在单据状态不为已审核的行,不允许下推!');
                    }
                    else {
                        var datajson = {
                            "data": dataArray
                        };
                        var url = encodeURI('../../项目管理/工作任务/PM_WorkTaskReportBill.html?OperationType=4&res=' + JSON.stringify(datajson));
                        layer.open({
                            type: 2
                            , area: ['100%', '100%']
                            , title: '工作任务列表-多行下推'
                            , shift: 0//弹出动画
                            , content: url
                            , btn: ['确定'],
                            // æŒ‰é’®1 çš„回调
                            end: function (index, layero, that) {
                                //刷新页面
                                $("#btnSearch").trigger('click');
                            }
                        })
                    }
                } else {
                    layer.msg('请选择数据下推!');
                }
            }
            //#endregion
@@ -731,10 +979,64 @@
            }
            //#endregion
            //#region èŽ·å–å‚æ•°
            function getUrlVars() {
                var vars = [], hash;
                var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                for (var i = 0; i < hashes.length; i++) {
                    hash = hashes[i].split('=');
                    vars.push(hash[0]);
                    vars[hash[0]] = hash[1];
                }
                return vars;
            }
            //#endregion
            //#region åˆ¤æ–­æ˜¯ç›´æŽ¥æ‰“开页面还是其它页面通过选择按钮打开,并显示相应数据
            function addSWhereByOpenType() {
                //获取参数
                var params = getUrlVars();
                var openType = params[params[0]]; //从参数中获取 æ‰“开方式  1直接打开 2其它页面通过选择按钮打开
                var HOrgID = params[params[1]];
                if (openType == 2) {
                    sWhere += " and HBillStatus=2 ";
                    $("#HOrgID").val(HOrgID);
                    form.render("select");
                    return true;
                }
                return false;
            }
            //#endregion
            //#region æ ¹æ®ç™»å½•账户获取相应职员
            function getHEmpByHUserName() {
                var Czybm = sessionStorage["Czybm"];
                var HUserName = "";
                var wait = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/PM_WorkTaskReportBill/getHEmpByHUserName',
                    type: "GET",
                    async: false,
                    data: { "Czybm": Czybm, "user": sessionStorage["HUserName"] },
                    success: function (result) {
                        if (result.count == 1) {
                            HUserName = result.data[0]["HEmpName"];
                            layer.close(wait);
                        } else {
                            layer.alert(result.code + result.Message, { icon: 5 });
                            layer.close(wait);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                        layer.close(wait);
                    }
                });
                return HUserName;
            }
            //#endregion
        });
            //#endregion
            //以上是layui模块
    </script>