1
duhe
2025-04-08 60873cc299ff1acd06b51b9189abdcaec42995a7
WebTM/views/ÏîÄ¿¹ÜÀí/¹¤³ÌÏîÄ¿/PM_ProjectTaskNeedCheckQuery.html
@@ -137,20 +137,12 @@
                                            </div>
                                        </div>
                                        <div class="layui-tab" lay-filter="tab-POStockInBill" style=" background-color: white">
                                            <ul class="layui-tab-title" lay-filter="tab-all">
                                                <li lay-id="1" style="padding:1px;" class="layui-this">项目阶段</li>
                                                <li lay-id="2" style="padding:1px;">项目成员</li>
                                            </ul>
                                            <div class="layui-tab-content">
                                                <!--项目阶段-->
                                                <div class="layui-tab-item layui-show">
                                                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                                            <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                                            <script type="text/html" id="toolbarDemo">
                                                <div class="layui-btn-container" id="toolbarDemo_ButtonSet">
                                                    <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                                </div>
                                                <!--项目成员-->
                                                <div class="layui-tab-item">
                                                    <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
                                                </div>
                                            </div>
                                            </script>
                                        </div>
                                    </div>
                                </div>
@@ -162,18 +154,6 @@
            </div>
        </div>
    </div>
    <!--里程碑-->
    <script type="text/html" id="HIsKey">
        <div class="layui-input-block" style="margin-left: 20px;">
            <input type="checkbox" name="HIsKey" lay-filter="HIsKey" id="HIsKey{{d.LAY_TABLE_INDEX+1}}" lay-skin="primary">
        </div>
    </script>
    <!--项目经理-->
    <script type="text/html" id="HIsPM">
        <div class="layui-input-block" style="margin-left: 20px;">
            <input type="checkbox" name="HIsPM" lay-filter="HIsPM" id="HIsPM{{d.LAY_TABLE_INDEX+1}}" lay-skin="primary">
        </div>
    </script>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
@@ -198,7 +178,7 @@
            //#endregion
            //#endregion
            var HModName = "PM_ProjectTaskNeedCheckQuery";
            var HModName2 = "PM_ProjectTaskNeedCheckQuery_SellOut";
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化表格
            set_InitGrid();
@@ -235,6 +215,15 @@
                        break;
                };
            });
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //列设置
                    case 'set_HideColumn': get_HideColumnNoPage(HModName2, sessionStorage["HUserName"], option, function () { });
                        break;
                };
            });
            //#endregion
            //#region é€€å‡º
@@ -266,23 +255,15 @@
            //#region ç‚¹å‡»è¡Œé€‰ä¸­é«˜äº®
            table.on('row(mainTableNeedCheck)', function (obj) {
                //选中行改变颜色
                var flag = !obj.tr.find(':checkbox:first').prop('checked');
                obj.tr.find(':checkbox').prop('checked', flag);
                if (flag) {
                    obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
                } else {
                    obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
                }
                //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
                layui.each(table.cache.mainTable, function (i, l) {
                    if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                        l.LAY_CHECKED = flag;
                    }
                });
                var flag = !obj.tr.find(':radio:first').prop('checked');
                obj.tr.find(':radio').prop('checked', flag);
                $('tr').attr({ "style": "background:" });
                $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
                //obj.tr.find('.layui-form-radio').addClass('layui-form-radioed');
                //显示项目信息
                RoadBillMain(obj.data["HInterID"]);
            })
            //#endregion
@@ -352,90 +333,15 @@
                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: '序号', 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: '项目阶段',  event: "HProjectStageName" }     //f7
                        , { field: 'HStageNote', title: '项目详细内容', style: 'background-color: #f9f9f9;' }
                        , { field: 'HPMGoodsID', title: '相关交付物ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HPMGoodsName', title: '相关交付物',  event: "HPMGoodsName" }            //f7
                        , { field: 'HIsKey', title: '里程碑', templet: "#HIsKey" }
                        , { field: 'HRate', title: '业绩占比',  totalRow: true }
                        , { field: 'HEmpID', title: '阶段负责人ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HEmpName', title: '阶段负责人',  event: "HEmpName" }                    //f7
                        , { field: 'HCheckEmpID', title: '阶段审核人ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HCheckEmpName', title: '阶段审核人',  event: "HCheckEmpName" }          //f7
                        , { field: 'HFinishDate', title: '预计完成日期', event: "HFinishDate" }
                        , { field: 'HWorkDays', title: '预计人天',  totalRow: true }
                        , { field: 'HRemarkSub', title: '备注', edit: 'text' }
                    ]]
                }
                var rowdata = [
                    {
                        "RowID": 10
                        , 'HProjectStageID': '0'
                        , 'HProjectStageName': ''
                        , 'HStageNote': ''
                        , 'HPMGoodsID': '0'
                        , 'HPMGoodsName': ''
                        , 'HIsKey': false
                        , 'HRate': '0'
                        , 'HEmpID': '0'
                        , 'HEmpName': ''
                        , 'HCheckEmpID': '0'
                        , 'HCheckEmpName': ''
                        , 'HFinishDate': ''
                        , 'HWorkDays': '0'
                        , 'HRemarkSub': ''
                    }
                ];
                option.data = rowdata;
                table.render(option);
                option1 = {
                    elem: '#mainTable1'
                    //, toolbar: '#toolbarDemo1'
                    , page: false
                    , totalRow: true
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , limit: 500
                    , limits: [50, 500, 5000, 50000]
                    , limits: [50, 500, 1000, 2000]
                    , totalRow: true
                    , cellMinWidth: 120
                    , height: 400
                    , cols: [[
                        //{ type: 'checkbox', totalRowText: '合计行' }
                        { type: 'numbers', title: '序号', style: 'background-color: #f9f9f9;' }
                        , { field: 'RowID', title: '行号', hide: true, style: 'background-color: #f9f9f9;' }                                                   //行标识,用于下一行、上一行识别所在行
                        , { field: 'HEmployeeID', title: '项目成员ID', hide: true, style: 'background-color: #f9f9f9;' }
                        , { field: 'HEmployeeName', title: '项目成员',  event: "HEmployeeName" }     //f7
                        , { field: 'HIsPM', title: '是否项目经理', templet: "#HIsPM" }
                        , { field: 'HRate', title: '项目占比',  totalRow: true }
                        , { field: 'HPlanAvgMoney', title: '预计分配业绩',  totalRow: true }
                        , { field: 'HPlanCountMoney', title: '预计提成',  totalRow: true }
                        , { field: 'HRemarkSub', title: '备注', edit: 'text' }
                    ]]
                    , height: 600
                    , cols: [[]]
                }
                var rowdata1 = [
                    {
                        "RowID": 10
                        , 'HEmployeeID': '0'
                        , 'HEmployeeName': ''
                        , 'HIsPM': false
                        , 'HRate': '0'
                        , 'HPlanAvgMoney': '0'
                        , 'HPlanCountMoney': '0'
                        , 'HRemarkSub': ''
                    }
                ];
                option1.data = rowdata1;
                table.render(option1);
            }
            //#endregion
@@ -445,6 +351,7 @@
                $.ajax({
                    url: GetWEBURL() + '/PM_ProjectBill/NeedCheckQuery',
                    type: "GET",
                    async: false,
                    data: {"user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
@@ -455,7 +362,7 @@
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                            col.push({ type: 'radio', fixed: 'left', totalRowText: '合计' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData) > -1) {
@@ -481,7 +388,7 @@
                            optionNeedCheck.cols = [col];
                            optionNeedCheck.data = data1.data;
                            //列设置
                            DisPlay_HideColumn(HModName, sessionStorage["HUserName"], optionNeedCheck);
                            DisPlay_HideColumn(HModName, sessionStorage["HUserName"], optionNeedCheck, titleData);
                            ins = table.render(optionNeedCheck);
                            layer.close(ajaxLoad);
                        } else {
@@ -507,8 +414,6 @@
                    data: { "HInterID": linterid, "user": sessionStorage["HUserName"] },
                    success: function (result) {
                        var tableMain = result.data[0];
                        var tableSub = result.data[1];
                        var tableSub_Emp = result.data[2];
                        //主表 èµ‹å€¼
                        form.val("formData", { //formTest å³ class="layui-form" æ‰€åœ¨å…ƒç´ å±žæ€§ lay-filter="" å¯¹åº”的值
                            "HInterID": tableMain[0]["HInterID"]
@@ -540,39 +445,82 @@
                        if (tableMain[0]["HTaskWorkMoneyCheckFlag"] == false) {
                            $('#btnCheckWorkMoney').prop('disabled', false).removeClass('layui-btn-disabled');
                        }
                        //渲染项目阶段表
                        //设置项目阶段表完成日期的格式
                        for (var i = 0; i < tableSub.length; i++) {
                            tableSub[i]["HFinishDate"] = Format(new Date(tableSub[i]["HFinishDate"]), "yyyy-MM-dd");
                            tableSub[i].RowID = (i + 1) * 10;
                        }
                        option.data = tableSub;
                        table.render(option);
                        //对子表中的复选框进行选中
                        for (var i = 0; i < tableSub.length; i++) {
                            if (tableSub[i].HIsKey) {
                                $('#HIsKey' + (i + 1)).attr("checked", true);
                            }
                        }
                        form.render('checkbox');
                        //渲染项目成员表
                        for (var i = 0; i < tableSub_Emp.length; i++) {
                            tableSub_Emp[i].RowID = (i + 1) * 10;
                        }
                        option1.data = tableSub_Emp;
                        table.render(option1);
                        //对子表中的项目经理复选框进行选中
                        for (var i = 0; i < tableSub_Emp.length; i++) {
                            if (tableSub_Emp[i].HIsPM) {
                                $('#HIsPM' + (i + 1)).attr("checked", true);
                            }
                        }
                        form.render('checkbox');
                        RoadBillSub(linterid);
                    }
                })
            }
            //#endregion
            //#region èŽ·å–é”€å”®å‡ºåº“å•åˆ—è¡¨
            function RoadBillSub(linterid)//加载表头
            {
                var ajaxLoad = layer.load();//遮罩
                //明细列表
                var sql = "exec h_p_PM_GetSellOutBillListByHProjectID " + linterid ;
                $.ajax({
                    url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sql },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];//列字段数据
                            var col = [];
                            var totalArray = [];
                            var titleData = [];
                            //给空的数组赋值
                            for (var key in data1.list) {//循序遍历数组
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
                                //获取不需要显示的列(H开头的列不显示)
                                var patrn = new RegExp(/^h/i);
                                if (patrn.test(data1.list[key].ColmCols)) {
                                    titleData[key] = data1.list[key].ColmCols;
                                }
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                            for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData) > -1) {//检查data【i】.name是否在数组中  //计算列
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                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, filter: true });
                                }  else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, filter: true, templet: "<div>{{d." + (data[i].name == "行关闭日期" ? "行关闭人" : data[i].name) + " ==''?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, filter: true });
                                    }
                                }
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            //统计材料费
                            let totalAmount = data1.data.reduce((accumulator, currentValue) => {
                                return accumulator + currentValue.金额;
                            }, 0);
                            $("#HTaskMaterMoney").val(totalAmount);
                            //列设置
                            DisPlay_HideColumn(HModName2, sessionStorage["HUserName"], option, titleData);
                            table.render(option);
                            layer.close(ajaxLoad);
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                            layer.close(ajaxLoad);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                });
            }
            //#endregion
            //#region åå®¡æ ¸/审核数据
            function set_CheckBill(type) {
                var HInterID = $("#HInterID").val();