1
chenhaozhe
2025-07-02 fe50d723e5d050113c4ecc493220e264f39d8e5f
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/Sc_BulkEditWorkTimeNew.html
@@ -149,16 +149,6 @@
            set_SaveBill();
        })
        // ç›‘听日期选择
        $('#HBeginDate').on('change', function () {
            get_DisplayDate();
            // åœ¨è¿™é‡Œå¤„理日期选择后的逻辑
        });
        $('#HEndDate').on('change', function () {
            get_DisplayDate();
            // åœ¨è¿™é‡Œå¤„理日期选择后的逻辑
        });
        //#region æ—¥æœŸé—´éš”下拉列表监听
        form.on('select(HInitTimeCycle)', function (data) {
@@ -171,8 +161,6 @@
                $("#HBeginDate").val(Format(new Date().setDate(new Date().getDate()), "yyyy-MM-dd"));//欠料日期
                $("#HEndDate").val(Format(new Date().setDate(new Date().getDate() + HInitTimeCycle), "yyyy-MM-dd"));//至
                //执行查询方法
                get_DisplayDate();
            } else {
                //$('#HDate').prop('disabled', false);
                //$('#HDate1').prop('disabled', false);
@@ -205,7 +193,6 @@
            //获取默认车间
            GetDefValByUser();
            //查询
            get_DisplayDate();
            get_DisplaySource();
        }
        //#endregion
@@ -267,15 +254,24 @@
                , limits: [50, 500, 1000, 5000]
                //, loading: false               
                , cols: [[
                    { field: 'index', title: '序号', width: 80, sort: true },
                    { field: 'date', title: '日期', width: 120 },
                    { type: 'numbers', title: '序号', width: 80},
                    { field: 'week', title: '星期', width: 120 },
                    { field: 'workHours', title: '上班时间', width: 120, edit: 'text' }
                ]]
                , data: [
                    { "week": "星期日", "workHours": 0 },
                    { "week": "星期一", "workHours": 0 },
                    { "week": "星期二", "workHours": 0 },
                    { "week": "星期三", "workHours": 0 },
                    { "week": "星期四", "workHours": 0 },
                    { "week": "星期五", "workHours": 0 },
                    { "week": "星期六", "workHours": 0 }
                ]
                , done: function (res, curr, count) {
                    soulTable.render(this);
                }
            };
            table.render(option);
            sourceOption = {
                elem: '#SourceTable'
                //, toolbar: '#toolbarDemo'
@@ -295,63 +291,6 @@
                }
            };
        }
        //#endregion
        //#region æŸ¥è¯¢
        function get_DisplayDate() {
            var HBeginDate = $('#HBeginDate').val();
            var HEndDate = $('#HEndDate').val();
            if (!HBeginDate || !HEndDate) {
                layer.msg('请选择开始和结束日期');
                return;
            }
            if (HBeginDate > HEndDate) {
                return layer.msg("开始日期不能小于结束日期!");
            }
            // è®¡ç®—日期差并生成表格数据
            var dateArray = getDateRange(HBeginDate, HEndDate);
            var tableData = [];
            for (var i = 0; i < dateArray.length; i++) {
                tableData.push({
                    index: i + 1,
                    date: dateArray[i].date,
                    week: dateArray[i].week,
                    workHours: 0 // é»˜è®¤ä¸Šç­æ—¶é—´ä¸º0
                });
            }
            option.data = tableData;
            // æ¸²æŸ“表格
            table.render(option)
        }
        function get_DisplaySource() {
            var HDeptID = $("#HDeptID").val();
            if (HDeptID != 0 && HDeptID != "") {
                var sWhere = " and ç¦ç”¨æ ‡è®° != 'Y' and HDeptID=" + HDeptID
                //进入页面显示的缓存列表
                $.ajax({
                    url: GetWEBURL() + '/Gy_Source/list',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            sourceOption.data = data1.data;
                            table.render(sourceOption);
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        }
        //#endregion
        //#region ç”Ÿäº§è½¦é—´é€‰æ‹©æŒ‰é’®
@@ -383,6 +322,34 @@
        }
        //#endregion
        //#region èŽ·å–å¯¹åº”è½¦é—´ç”Ÿäº§èµ„æº
        function get_DisplaySource() {
            var HDeptID = $("#HDeptID").val();
            if (HDeptID != 0 && HDeptID != "") {
                var sWhere = " and ç¦ç”¨æ ‡è®° != 'Y' and HDeptID=" + HDeptID
                //进入页面显示的缓存列表
                $.ajax({
                    url: GetWEBURL() + '/Gy_Source/list',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            sourceOption.data = data1.data;
                            table.render(sourceOption);
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        }
        //#endregion
        //#region åˆå§‹æ—¥æœŸé—´éš” ä¸‹æ‹‰åˆ—表
        function setSelect_HInitTimeCycle() {
            var valueList = [7,30, 45, 60];
@@ -403,30 +370,32 @@
            //#endregion
        //#region æ—¶é—´åˆ—表相关函数
        function getDateRange(startDate, endDate) {
            var dateArray = [];
            var start = new Date(startDate.replace(/-/g, '/'));
            var end = new Date(endDate.replace(/-/g, '/'));
        function generateWorkHoursData(startDate, endDate, originalData) {
            const result = [];
            const currentDate = new Date(startDate);
            const lastDate = new Date(endDate);
            while (start <= end) {
                var dateStr = Format(start,"yyyy-MM-dd");
                var weekStr = getWeekDay(start);
            // åˆ›å»ºä¸€ä¸ªæ˜ŸæœŸæ˜ å°„表(中文星期名 -> workHours)
            const weekHoursMap = {};
            originalData.forEach(item => {
                weekHoursMap[item.week] = item.workHours;
            });
                dateArray.push({
                    date: dateStr,
                    week: weekStr
            // éåŽ†æ—¥æœŸèŒƒå›´
            while (currentDate <= lastDate) {
                const dayOfWeek = currentDate.toLocaleDateString('zh-CN', { weekday: 'long' }); // èŽ·å–ä¸­æ–‡æ˜ŸæœŸåï¼Œå¦‚ "星期一"
                const formattedDate = currentDate.toISOString().split('T')[0]; // æ ¼å¼åŒ–为 YYYY-MM-DD
                result.push({
                    date: formattedDate,
                    week: dayOfWeek,
                    workHours: weekHoursMap[dayOfWeek] || 0, // å¦‚果没有匹配的星期,默认 0
                });
                start.setDate(start.getDate() + 1);
                currentDate.setDate(currentDate.getDate() + 1); // ä¸‹ä¸€å¤©
            }
            return dateArray;
        }
        // èŽ·å–æ˜ŸæœŸå‡ 
        function getWeekDay(date) {
            var weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
            return weekDays[date.getDay()];
            return result;
        }
        //#endregion
@@ -459,8 +428,13 @@
        function set_SaveBill() {
            var checkStatus = table.checkStatus('SourceTable')
                , data = checkStatus.data;
            var sSubStr = JSON.stringify(table.cache["mainTable"]);
            var sMainSub = JSON.stringify(data) + ';' + sSubStr + ';' + sessionStorage["HUserName"];
            var sSubStr = table.cache["mainTable"];
            //根据开始时间结束日期生成新数据
            const newData = generateWorkHoursData($("#HBeginDate").val(), $("#HEndDate").val(), sSubStr);
            if (newData.length == 0) {
                return layer.msg("请检查开始时间和结束日期是否合理");
            }
            var sMainSub = JSON.stringify(data) + ';' + JSON.stringify(newData) + ';' + sessionStorage["HUserName"];
            if (data.length > 0) {
                $.ajax({   //异步请求
                    type: "POST",  //请求类型