WebTM/views/ÏîÄ¿¹ÜÀí/ÏîÄ¿½×¶Î/PM_ProjectStageBill.html
@@ -2,7 +2,7 @@
<html>
<head>
    <meta charset="utf-8" />
    <title>项目阶段列表</title>
    <title>项目阶段清单</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
@@ -14,7 +14,7 @@
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <style>
    <!--<style>
        .main-btn { /*头部主按钮*/
            padding: 0 2px; /*调整按钮左右空隙大小*/
            height: 30px;
@@ -44,7 +44,7 @@
        .layui-form-label {
            width: 25%;
        }
    </style>
    </style>-->
</head>
<body>
@@ -75,14 +75,14 @@
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">单据号*</label>
                                            <label class="layui-form-label" style="width: 85px;">单据号<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBillNo" lay-verify="HBillNo" id="HBillNo" style="background-color:#efefef4d;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" lay-verify="HInterID">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">日期</label>
                                            <label class="layui-form-label" style="width: 85px;">日期<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 120px; width:180px;">
                                                <input type="date" class="layui-input" lay-verify="HDate" name="HDate" id="HDate" style="padding-left: 80px;">
                                            </div>
@@ -90,7 +90,7 @@
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">备注<label style="color:red"> * </label></label>
                                            <label class="layui-form-label" style="width: 85px;">备注</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 501px;">
                                                <input type="text" class="layui-input" lay-verify="HRemark" name="HRemark" id="HRemark">
                                            </div>
@@ -207,8 +207,8 @@
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up"><i class="layui-icon layui-icon-form"></i>上一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under"><i class="layui-icon layui-icon-form"></i>下一行</button>
                                        <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn_up"><i class="layui-icon layui-icon-form"></i>上一行</button>
                                        <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_under"><i class="layui-icon layui-icon-form"></i>下一行</button>-->
                                    </div>
                                </script>
                            </div>
@@ -262,10 +262,6 @@
                    icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                }, function () { window.location.href = "../../user/login.html"; });
            }
            //#endregion
            //#region åˆå§‹åŒ–表格
            //DisPlay_HideColumn();
            //#endregion
            //#region åˆå§‹åŒ–组织
@@ -337,30 +333,6 @@
                }
            });
            //#endregion
            //#region å®¡æ ¸
            form.on('submit(set_CheckBill)', function (data) {
                set_CheckBill(data);
            });
            //#endregion
            //#region åå®¡æ ¸
            form.on('submit(set_AbandonCheck)', function (data) {
                set_AbandonCheck(data);
            });
            //#endregion
            //#region å…³é—­
            form.on('submit(set_CloseBill)', function (data) {
                set_CloseBill(data);
            });
            //#endregion
            //#region åå…³é—­
            form.on('submit(set_CancelCloseBill)', function (data) {
                set_CancelCloseBill(data);
            });
            //#endregion
            //#endregion
            //#region å¤é€‰æ¡† é€‰ä¸­/取消 è§¦å‘事件
@@ -427,12 +399,10 @@
                    //上一行
                    case 'btn_up':
                        btn_up(data);
                        CheckedSet_tableSub();
                        break;
                    //下一行
                    case 'btn_under':
                        btn_under(data);
                        CheckedSet_tableSub();
                        break;
                }
            });
@@ -448,21 +418,37 @@
            //#region å­è¡¨ï¼šè¡Œå†…鼠标离开事件:检查项目阶段是否重复
            table.on('edit(mainTable)', function (obj) {
                if (obj.field == "HProjectStageID") {
                    var num = 0;
                    for (var i = 0; i < option.data.length; i++) {
                        if (obj.value == option.data[i]["HProjectStageID"]) {
                            num += 1;
                        }
                        if (num > 1) {
                            layer.msg("项目阶段:" + obj.value + "重复!");
                            return false;
                        }
                    }
                }
            })
            //#endregion
            //#region å­è¡¨ï¼šå•元格编辑监听
            table.on('edit(mainTable)', function (obj) {
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
                    , data = obj.data //得到所在行所有键值
                    , field = obj.field; //得到字段
                //正则表达式-校验非负浮点数
                var ref = /^\d+(\.\d+)?$/;
                switch (field) {
                    case "HRate":                                            //数量
                        if (!ref.test(value)) {                             //若输入值格式不正确,则变回原来的值
                            obj.update({
                                HRate: oldText
                            });
                            layer.msg("业绩占比:数据错误,请输入非负小数")
                            table.render(option);
                            CheckedSet_tableSub();
                        } else {
                            table.render(option);
                            CheckedSet_tableSub();
                        }
                        break;
                    default:
                }
            });
            //#endregion
            //
@@ -546,27 +532,25 @@
            }
            //#endregion
            //#region é¡¹ç›®é˜¶æ®µè¡¨ã€é¡¹ç›®æˆå‘˜è¡¨åˆå§‹åŒ–
            //#region å­è¡¨åˆå§‹åŒ–
            function get_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , limit: 500
                    , limits: [50, 500, 5000, 50000]
                    , totalRow: true
                    , cellMinWidth: 120
                    , height: 400
                    , cols: [[
                        { type: 'checkbox', totalRowText: '合计行' }
                        , { type: 'numbers', title: '序号', totalRow: true }
                        , { field: 'RowID', title: '行号', hide: true }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HProjectStageID', title: '项目阶段ID', hide: true }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HProjectStageID', title: '项目阶段ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HProjectStageName', title: '项目阶段', edit: 'text', event: "HProjectStageName" }     //f7
                        , { field: 'HStageNote', title: '项目阶段详细内容' }
                        , { field: 'HPMGoodsID', title: '相关交付物ID', hide: true }
                        , { field: 'HStageNote', title: '项目阶段详细内容', edit: 'text' }
                        , { field: 'HPMGoodsID', title: '相关交付物ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HPMGoodsName', title: '相关交付物', edit: 'text', event: "HPMGoodsName" }            //f7
                        , { field: 'HIsKey', title: '里程碑', templet: "#HIsKey" }
                        , { field: 'HRate', title: '业绩占比', edit: 'text' }
                        , { field: 'HRate', title: '业绩占比', edit: 'text', totalRow: true }
                        //, { field: 'HEmpID', title: '阶段负责人ID', hide: true }
                        //, { field: 'HEmpName', title: '阶段负责人', edit: 'text', event: "HEmpName" }                    //f7
                        //, { field: 'HCheckEmpID', title: '阶段审核人ID', hide: true }
@@ -706,106 +690,6 @@
            }
            //#endregion
            //#region å®¡æ ¸
            function set_CheckBill() {
                layer.confirm("确认要审核吗?", function (index) {
                    var wait = layer.load();
                    $.ajax({
                        url: GetWEBURL() + '/Gy_RoutingBill/AuditGy_RoutingBill',
                        type: "GET",
                        data: { "HInterID": $("#HInterID").val(), "IsAudit": 0, "CurUserName": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1 });
                                layer.close(wait);
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                })
            }
            //#endregion
            //#region åå®¡æ ¸
            function set_AbandonCheck() {
                layer.confirm("确认要反审核吗?", function (index) {
                    var wait = layer.load();
                    $.ajax({
                        url: GetWEBURL() + '/Gy_RoutingBill/AuditGy_RoutingBill',
                        type: "GET",
                        data: { "HInterID": $("#HInterID").val(), "IsAudit": 1, "CurUserName": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1 });
                                layer.close(wait);
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                })
            }
            //#endregion
            //#region å…³é—­
            function set_CloseBill() {
                layer.confirm("确认要关闭吗?", function (index) {
                    var wait = layer.load();
                    $.ajax({
                        url: GetWEBURL() + '/Gy_RoutingBill/CloseGy_RoutingBill',
                        type: "GET",
                        data: { "HInterID": $("#HInterID").val(), "IsAudit": 0, "CurUserName": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1 });
                                layer.close(wait);
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                })
            }
            //#endregion
            //#region åå…³é—­
            function set_CancelCloseBill() {
                layer.confirm("确认要反关闭吗?", function (index) {
                    var wait = layer.load();
                    $.ajax({
                        url: GetWEBURL() + '/Gy_RoutingBill/CloseGy_RoutingBill',
                        type: "GET",
                        data: { "HInterID": $("#HInterID").val(), "IsAudit": 1, "CurUserName": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1 });
                                layer.close(wait);
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                })
            }
            //#endregion
            //#region éžç©ºéªŒè¯
            function AllowLoadData(data) {
                //#region è¡¨å¤´æ•°æ®æ£€éªŒ
@@ -813,41 +697,55 @@
                    layer.msg("单据号不能为空!");
                    return false;
                }
                if ($("#HDate").val() == "") {
                    layer.msg("日期不能为空!");
                    return false;
                }
                //#endregion
                //#region é¡¹ç›®é˜¶æ®µè¡¨æ•°æ®æ£€éªŒ
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i] != "") {
                        //项目阶段重复检验
                        if ($.inArray(option.data[i]["HProjectStageID"], num) == -1) {
                            num.push(option.data[i]["HProjectStageID"]);
                        } else {
                            layer.msg("第" + (i + 1) + "行,项目阶段:" + option.data[i]["HProjectStageName"] + "重复!");
                            return false;
                        }
                        //项目阶段非空检验
                        if (option.data[i]["HProjectStageName"] == "") {
                        if (option.data[i]["HProjectStageID"] == "0") {
                            layer.msg("第" + (i + 1) + "行:项目阶段不能为空!");
                            return false;
                        }
                        //业绩占比格式检验
                        var HRate = option.data[i]["HRate"] + "";
                        if (HRate.substring(HRate.length - 1, HRate.length) == ".") {
                            layer.msg("业绩占比末尾不能为.!");
                            return;
                            return false;
                        } else {
                            var ref = /^[0-9]+\.?[0-9]*$/;
                            if (!ref.test(HRate)) {
                                layer.msg("业绩占比请输正确入数字!");
                                return;
                                return false;
                            }
                        }
                        ////里程碑内容检验
                        //if (option.data[i]["HIsKey"] != "1" && option.data[i]["HIsKey"] != "0") {
                        //    layer.msg("里程碑请输入0或1!");
                        //}
                    }
                }
                //#endregion
                //#region ä¸šç»©å æ¯”合计检验
                var total = 0;
                for (var i = 0; i < option.data.length; i++) {
                    total += option.data[i]["HRate"] * 1;
                }
                if (total > 100) {
                    layer.msg("业绩占比合计不能大于100!");
                    return false;
                }
                //#endregion
                //#region å…³é”®å­—段重复性校验
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    if ($.inArray(option.data[i]["HProjectStageID"], num) == -1) {
                        num.push(option.data[i]["HProjectStageID"]);
                    } else {
                        layer.msg("第" + (i + 1) + "行,项目阶段:" + option.data[i]["HProjectStageName"] + "重复!");
                        return false;
                    }
                }
                //#endregion
@@ -938,7 +836,7 @@
                                , shift: 2                                          //弹出动画
                                , area: ["90%", "90%"]                              //窗体大小
                                , maxmin: true                                      //设置最大最小按钮是否显示
                                , content: ["../../项目管理/项目阶段/Gy_ProjectStage.html", "yes"]
                                , content: ["../../项目管理/项目阶段/Gy_ProjectStage.html?openType=2", "yes"]
                                , btn: ["确定", "取消"]
                                , btn1: function (index, laero) {
                                    //按钮一  çš„回调
@@ -953,7 +851,12 @@
                                        "HProjectStageID": checkStatus.data[0].HItemID
                                        , "HProjectStageName": checkStatus.data[0].阶段名称
                                        , "HStageNote": checkStatus.data[0].项目阶段详细内容
                                        , "HPMGoodsID": checkStatus.data[0].HPMGoodsID == null ? 0 : checkStatus.data[0].HPMGoodsID
                                        , "HPMGoodsName": checkStatus.data[0].相关交付物
                                        , "HRate": checkStatus.data[0].理论业绩占比
                                        , "HIsKey": checkStatus.data[0].里程碑 == "Y" ? true : false
                                    })
                                    CheckedSet_tableSub();
                                    layer.close(index);//关闭弹窗
                                }
                            })
@@ -1040,9 +943,9 @@
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                    option.cols[0][i + 1]["style"] += "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                    option.cols[0][i + 1]["style"] += "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {