项目阶段汇报:必填标识、取消上一行下一行、取消分页、启用合计行、子表不可编辑做颜色区分、重复校验、
2个文件已修改
261 ■■■■ 已修改文件
WebTM/Properties/PublishProfiles/JFTM.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/项目管理/项目阶段/PM_ProjectReportBill.html 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/Properties/PublishProfiles/JFTM.pubxml.user
@@ -4455,7 +4455,7 @@
      <publishTime>07/06/2023 09:17:28</publishTime>
    </File>
    <File Include="views/项目管理/项目阶段/PM_ProjectReportBill.html">
      <publishTime>07/25/2023 15:45:20</publishTime>
      <publishTime>08/16/2023 14:30:15</publishTime>
    </File>
    <File Include="views/项目管理/项目阶段/PM_ProjectReportBillList.html">
      <publishTime>07/14/2023 10:39:07</publishTime>
WebTM/views/ÏîÄ¿¹ÜÀí/ÏîÄ¿½×¶Î/PM_ProjectReportBill.html
@@ -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,26 +75,20 @@
                                <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>
                                        </div>
                                        <!--<div class="layui-inline">
                                            <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" lay-verify="HProNumber" name="HProNumber" id="HProNumber">
                                            </div>
                                        </div>-->
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">项目代码*</label>
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">项目代码<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="text" class="layui-input" lay-verify="HProNumber" name="HProNumber" id="HProNumber" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="hidden" name="HProID" id="HProID" lay-verify="HProID" value="0">
@@ -106,7 +100,7 @@
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">项目阶段*</label>
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">项目阶段<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="text" class="layui-input" lay-verify="HProjectStageName" name="HProjectStageName" id="HProjectStageName" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="hidden" name="HProjectStageID" id="HProjectStageID" lay-verify="HProjectStageID" value="0">
@@ -141,7 +135,7 @@
                                    </div>
                                    <div class="layui-row">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">汇报人*</label>
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">汇报人<label style="color:red"> * </label></label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="text" class="layui-input" lay-verify="HReportEmpName" name="HReportEmpName" id="HReportEmpName" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="hidden" name="HReportEmpID" id="HReportEmpID" lay-verify="HReportEmpID" value="0">
@@ -193,7 +187,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>
@@ -201,7 +195,7 @@
                                    </div>
                                    <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; width: 501px;">
                                                <select name="HOrgID" id="HOrgID" lay-verify="HOrgID">
                                                    <!--动态渲染组织-->
@@ -320,8 +314,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>
@@ -378,10 +372,6 @@
                    icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                }, function () { window.location.href = "../../user/login.html"; });
            }
            //#endregion
            //#region åˆå§‹åŒ–表格
            //DisPlay_HideColumn();
            //#endregion
            //#region åˆå§‹åŒ–组织
@@ -526,30 +516,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
            //#endregion
@@ -602,12 +568,10 @@
                    //上一行
                    case 'btn_up':
                        btn_up(data);
                        CheckedSet_tableSub_Emp();
                        break;
                    //下一行
                    case 'btn_under':
                        btn_under(data);
                        CheckedSet_tableSub_Emp();
                        break;
                }
            });
@@ -617,24 +581,11 @@
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
            //#endregion
            //#region å­è¡¨ï¼šè¡Œå†…鼠标离开事件:检查项目阶段是否重复
            table.on('edit(mainTable)', function (obj) {
                if (obj.field == "HEmpID") {
                    var num = 0;
                    for (var i = 0; i < option.data.length; i++) {
                        if (obj.value == option.data[i]["HEmpID"]) {
                            num += 1;
                        }
                        if (num > 1) {
                            layer.msg("成员:" + obj.value + "重复!");
                            return false;
                        }
                    }
                }
            })
            //#endregion
@@ -723,26 +674,27 @@
            }
            //#endregion
            //#region é¡¹ç›®é˜¶æ®µè¡¨ã€é¡¹ç›®æˆå‘˜è¡¨åˆå§‹åŒ–
            //#region å­è¡¨åˆå§‹åŒ–
            function get_InitGrid1() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , limit: 500
                    , limits: [50, 500, 5000, 50000]
                    //, 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: 'HEmpID', title: '成员ID', hide: true }
                        , { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HEmpID', title: '成员ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HEmpName', title: '成员', edit: 'text', event: "HEmpName" }     //f7
                        , { field: 'HIsPM', title: '项目经理', templet: "#HIsPM" }
                        , { field: 'HRate', title: '项目占比', hide: true }
                        , { field: 'HAvgMoney', title: '分配业绩', edit: 'text' }
                        , { field: 'HCountMoney', title: '提成', edit: 'text' }
                        , { field: 'HRate', title: '项目占比', totalRow: true, style: 'background-color: #f9f9f9;'}
                        , { field: 'HAvgMoney', title: '分配业绩', totalRow: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HCountMoney', title: '提成', totalRow: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HRemarkSub', title: '备注', edit: 'text' }
                        , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                    ]]
@@ -788,14 +740,14 @@
                        }
                        //设置表头数据
                        //设置文本框值
                        $("#HProNumber").val(checkStatus.data[0].项目代码);//工程项目代码
                        $("#HProjectStageID").val(checkStatus.data[0].HProjectStageID);//工程项目代码
                        $("#HProjectStageName").val(checkStatus.data[0].项目阶段);//工程项目代码
                        $("#HStageNote").val(checkStatus.data[0].项目阶段详细内容);//工程项目代码
                        $("#HPMGoodsID").val(checkStatus.data[0].HPMGoodsID);//工程项目代码
                        $("#HRelationGoods").val(checkStatus.data[0].阶段相关交付物);//工程项目代码
                        $("#HIsKey").val((checkStatus.data[0].里程碑=='Y'?true:false));//工程项目代码
                        $("#HRate").val(checkStatus.data[0].阶段业绩占比);//工程项目代码
                        $("#HProNumber").val(checkStatus.data[0].项目代码);
                        $("#HProjectStageID").val(checkStatus.data[0].HProjectStageID);
                        $("#HProjectStageName").val(checkStatus.data[0].项目阶段);
                        $("#HStageNote").val(checkStatus.data[0].项目阶段详细内容);
                        $("#HPMGoodsID").val(checkStatus.data[0].HPMGoodsID);
                        $("#HRelationGoods").val(checkStatus.data[0].阶段相关交付物);
                        $("#HIsKey").val((checkStatus.data[0].里程碑=='Y'?true:false));
                        $("#HRate").val(checkStatus.data[0].阶段业绩占比);
                        //设置复选框选中状态
                        if ($("#HIsKey").val() == "true") {
@@ -828,8 +780,7 @@
                                            , 'HAvgMoney': '0'
                                            , 'HCountMoney': '0'
                                            , 'HRemarkSub': ''
                                        }
                                        ;
                                        };
                                    num.push(rowdata);
                                }
                                option.data = num;
@@ -1147,106 +1098,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 è¡¨å¤´æ•°æ®æ£€éªŒ
@@ -1254,16 +1105,20 @@
                    layer.msg("单据号不能为空!");
                    return false;
                }
                if ($("#HProNumber").val() == "") {
                    layer.msg("项目代码不能为空!");
                if ($("#HDate").val() == "") {
                    layer.msg("日期不能为空!");
                    return false;
                }
                if ($("#HProjectStageName").val() == "") {
                if ($("#HProID").val() == "0") {
                    layer.msg("项目代码未选择!");
                    return false;
                }
                if ($("#HProjectStageID").val() == "0") {
                    layer.msg("项目阶段未选择!");
                    return false;
                }
                if ($("#HReportEmpName").val() == "") {
                if ($("#HReportEmpID").val() == "0") {
                    layer.msg("汇报人没有选择!");
                    return false;
                }
@@ -1276,7 +1131,7 @@
                } else {
                    var ref = /^[0-9]+\.?[0-9]*$/;
                    if (!ref.test(HRate1)) {
                        layer.msg("业绩占比请输正确入数字!");
                        layer.msg("本阶段业绩占比请输正确入数字!");
                        return;
                    }
                }
@@ -1284,25 +1139,11 @@
                //#endregion
                //#region å­è¡¨æ•°æ®æ£€éªŒ
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i] != "") {
                        //成员段重复检验
                        if ($.inArray(option.data[i]["HEmpID"], num) == -1) {
                            num.push(option.data[i]["HEmpID"]);
                        } else {
                            layer.msg("第" + (i + 1) + "行,成员:" + option.data[i]["HEmpName"] + "重复!");
                            return false;
                        }
                        //成员非空检验
                        if (option.data[i]["HEmpName"] == "") {
                        if (option.data[i]["HEmpID"] == "0") {
                            layer.msg("第" + (i + 1) + "行:成员不能为空!");
                            return false;
                        }
                        //是否项目经理格式检验
                        if (option.data[i]["HIsPM"] != "1" && option.data[i]["HIsPM"] != '0') {
                            layer.msg("第" + (i + 1) + "行:是否项目经理请输入0或1!");
                            return false;
                        }
@@ -1344,6 +1185,18 @@
                                return;
                            }
                        }
                    }
                }
                //#endregion
                //#region å­è¡¨å…³é”®å­—重复校验
                var num = [];
                for (var i = 0; i < option.data.length; i++) {
                    if ($.inArray(option.data[i]["HEmpID"], num) == -1) {
                        num.push(option.data[i]["HEmpID"]);
                    } else {
                        layer.msg("第" + (i + 1) + "行,成员:" + option.data[i]["HEmpName"] + "重复!");
                        return false;
                    }
                }
                //#endregion
@@ -1534,9 +1387,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) {