zrg
2025-02-25 82ba14eeb57b4e7ccc652afb0e700a89ce4e64f6
WebTM/views/ϵͳ¹ÜÀí/Óû§¹ÜÀí/Gy_UserCustomer.html
@@ -139,13 +139,12 @@
            TabRow = { "HCusID": 0, "HCustomerNumber": "", "HCustomerName": "" };
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化表格
            //#region åˆå§‹åŒ–表格
            set_InitGrid();
            //#endregion
            //判断操作类型
            //#region åˆ¤æ–­æ“ä½œç±»åž‹
            if (OperationType == 1) {//无源新增
                //无源新增
                set_AddFNew();
@@ -157,29 +156,118 @@
                layer.alert("未知操作类型!", { icon: 5 });
            }
            //#endregion
            //#endregion
            //#region ç‚¹å‡»äº‹ä»¶ï¼ŒåŒ…括on和form事件
            //头工具栏
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;;
                var AddRow = table.cache['mainTable'];
                var NewRow = TabRow;
                switch (obj.event) {
                    //新增一行
                    case 'btn-AddLine': btnAddLine(NewRow);
                        break;
                    //复制一行
                    case 'btn-CopyLine': btnCopyLine(data);
                        break;
            //#region ä¸»è¡¨æŒ‰é’®è§¦å‘事件
            //#region ä¿å­˜
            form.on('submit(Saver)', function (data) {
                if ($("#UserName").val() == "") {
                    layer.msg("用户不能为空!");
                    return false;
                }
                var UserID = $("#UserID").val();  //获取选择的用户编码
                //debugger;
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                if (!AllowLoadData(sSubStr))//数据验证
                {
                    return false;
                }
                var list = [];
                for (var i = 0; i < JSON.parse(sSubStr).length; i++) {
                    list.push(JSON.parse(sSubStr)[i].HCustomerNumber)
                }
                if (isAllEqual(list)) {
                    //layer.msg("有重复的客户信息!");
                    return false;
                }
                var sMainSub = sSubStr + ';' + UserID + ';' + sessionStorage["HUserName"];
                $.ajax(
                    {
                        type: "POST",
                        url: GetWEBURL() + "/Xt_User/SaveUserCustomer", //方法所在页面和方法名
                        async: true,
                        data: { "msg": sMainSub },
                        dataType: "json",
                        success: function (data) {
                            if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                                layer.msg(data.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    $('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
                                    var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                                    parent.layer.close(index); //再执行关闭 Â  Â  Â  Â  Â Â  Â Â Â  Â 
                                });
                            }
                            else {
                                layer.alert(data.Message);
                                console.log("Reason" + sMainSub + "sub:" + JSON.stringify(layui.table.cache.mainTable));
                            }
                            layer.closeAll("loading");
                        },
                        error: function (err) {
                            layer.alert("错误:" + err);
                            console.log("Reason" + sMainStr);
                        }
                    });
            });
            //#endregion
            //#region ç‚¹å‡»è¡Œé€‰ä¸­é«˜äº®
            table.on('row(mainTable)', 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;
                    }
                });
            })
            //#region excel导入
            form.on('submit(set_Excel)', function (data) {
                set_Excel();
            });
            //#endregion
            //#region é€€å‡º
            form.on('submit(Exit)', function (data) {
                if (OperationType == 1) {
                    Pub_Close(closeType);//直接新增closeType值为2,列表调新增closeType值从列表传递
                }
                else if (OperationType == 3) {
                    Pub_Close(closeType);
                }
                else {
                    Pub_Close(2);
                }
            });
            //行内事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            //#endregion
            //#region å¿«é€Ÿè¿‡æ»¤
            form.on('submit(Search)', function () {
                get_FastQuery();
            });
            //用户信息弹窗
            //#endregion
            //#region é‡ç½®è¿‡æ»¤æ¡ä»¶
            form.on('submit(ReSet)', function () {
                set_ClearQuery();
            });
            //#endregion
            //#endregion
            //#region å¼¹çª—触发事件
            //#region ç”¨æˆ·ä¿¡æ¯å¼¹çª—
            form.on('submit(UserList)', function () {
                //页面层-自定义
                layer.open({
@@ -234,8 +322,35 @@
                    }
                });
            });
            //#endregion
            //#endregion
            //表格行内事件快捷键筛选
            //#region å­è¡¨è§¦å‘事件
            //#region å¤´å·¥å…·æ 
            table.on('toolbar(mainTable)', function (obj) {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;;
                var AddRow = table.cache['mainTable'];
                var NewRow = TabRow;
                switch (obj.event) {
                    //新增一行
                    case 'btn-AddLine': btnAddLine(NewRow);
                        break;
                    //复制一行
                    case 'btn-CopyLine': btnCopyLine(data);
                        break;
                }
            });
            //#endregion
            //#region è¡Œå†…事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
            //#endregion
            //#region è¡¨æ ¼è¡Œå†…事件快捷键筛选
            function set_GridCellCheck(obj) {
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    if (event.key == "F7") {
@@ -258,32 +373,32 @@
                                    //按钮【按钮一】的回调
                                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                                    if (checkStatus.data.length === 0) {
                                        return layer.msg('请选择数据');
                                    if (checkStatus.data.length != 1) {
                                        return layer.msg('请选择一行数据');
                                    }
                                    //console.log(obj.data);
                                    //同步更新表格和缓存对应的值
                                    //obj.update({
                                    //    HCusID: checkStatus.data[0].HItemID,
                                    //    HCustomerNumber: checkStatus.data[0].HNumber,
                                    //    HCustomerName: checkStatus.data[0].HName
                                    //});
                                    obj.update({
                                        HCusID: checkStatus.data[0].HItemID,
                                        HCustomerNumber: checkStatus.data[0].HNumber,
                                        HCustomerName: checkStatus.data[0].HName
                                    });
                                    var rowIndex = $(obj.tr).attr("data-index") * 1;
                                    for (var i = 0; i < checkStatus.data.length; i++) {
                                        if (rowIndex + i >= option.data.length) {
                                            var NewRow = { "HCusID": 0, "HCustomerNumber": "", "HCustomerName": "" };
                                            table.cache["mainTable"].push(NewRow);
                                            option.data = table.cache["mainTable"];
                                            table.render(option);
                                        }
                                    //var rowIndex = $(obj.tr).attr("data-index") * 1;
                                    //for (var i = 0; i < checkStatus.data.length; i++) {
                                    //    if (rowIndex + i >= option.data.length) {
                                    //        var NewRow = { "HCusID": 0, "HCustomerNumber": "", "HCustomerName": "" };
                                    //        table.cache["mainTable"].push(NewRow);
                                    //        option.data = table.cache["mainTable"];
                                    //        table.render(option);
                                    //    }
                                        option.data[rowIndex + i].HCusID = checkStatus.data[i].HItemID;
                                        option.data[rowIndex + i].HCustomerNumber = checkStatus.data[i].HNumber;
                                        option.data[rowIndex + i].HCustomerName = checkStatus.data[i].HName;
                                    }
                                    table.render(option);
                                    //    option.data[rowIndex + i].HCusID = checkStatus.data[i].HItemID;
                                    //    option.data[rowIndex + i].HCustomerNumber = checkStatus.data[i].HNumber;
                                    //    option.data[rowIndex + i].HCustomerName = checkStatus.data[i].HName;
                                    //}
                                    //table.render(option);
@@ -304,89 +419,8 @@
                    }
                })
            }
            //保存
            form.on('submit(Saver)', function (data) {
                if ($("#UserName").val() == "") {
                    layer.msg("用户不能为空!");
                    return false;
                }
                var UserID = $("#UserID").val();  //获取选择的用户编码
                //debugger;
                var sSubStr = JSON.stringify(table.cache['mainTable']);
                if (!AllowLoadData(sSubStr))//数据验证
                {
                    return false;
                }
                var list = [];
                for (var i = 0; i < JSON.parse(sSubStr).length; i++) {
                    list.push(JSON.parse(sSubStr)[i].HCustomerNumber)
                }
                if (isAllEqual(list)) {
                    layer.msg("有重复的客户信息!");
                    return false;
                }
                var sMainSub = sSubStr + ';' + UserID + ';' + sessionStorage["HUserName"];
                $.ajax(
                    {
                        type: "POST",
                        url: GetWEBURL() + "/Xt_User/SaveUserCustomer", //方法所在页面和方法名
                        async: true,
                        data: { "msg": sMainSub },
                        dataType: "json",
                        success: function (data) {
                            if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                                layer.msg(data.Message, { time: 1 * 1000, icon: 1 }, function () {
                                    $('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
                                    var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                                    parent.layer.close(index); //再执行关闭 Â  Â  Â  Â  Â Â  Â Â Â  Â 
                                });
                            }
                            else {
                                layer.alert(data.Message);
                                console.log("Reason" + sMainSub + "sub:" + JSON.stringify(layui.table.cache.mainTable));
                            }
                            layer.closeAll("loading");
                        },
                        error: function (err) {
                            layer.alert("错误:" + err);
                            console.log("Reason" + sMainStr);
                        }
                    });
            });
            //#region excel导入
            form.on('submit(set_Excel)', function (data) {
                set_Excel();
            });
            //#endregion
            //退出
            form.on('submit(Exit)', function (data) {
                if (OperationType == 1) {
                    Pub_Close(closeType);//直接新增closeType值为2,列表调新增closeType值从列表传递
                }
                else if (OperationType == 3) {
                    Pub_Close(closeType);
                }
                else {
                    Pub_Close(2);
                }
            });
            //快速过滤
            form.on('submit(Search)', function () {
                get_FastQuery();
            });
            //重置过滤条件
            form.on('submit(ReSet)', function () {
                set_ClearQuery();
            });
            //#endregion
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰æ–¹æ³•
@@ -449,7 +483,7 @@
            }
            //#endregion
            //初始化表格
            //#region åˆå§‹åŒ–表格
            function set_InitGrid() {
                columns = [
                    { type: 'checkbox', fixed: 'left' }
@@ -472,64 +506,27 @@
                    }
                };
            }
            //无源单新增
            //#endregion
            //#region æ— æºå•新增
            function set_AddFNew() {
                option.data = [TabRow];
                table.render(option);
            }
            //#endregion
            //增加一行
            function btnAddLine(NewRow) {
                var tableBak = table.cache["mainTable"]; //获取之前编辑过的表格数据
                buttonArr = [];//清空数组
                for (var i = 0; i < tableBak.length; i++) {
                    buttonArr.push(tableBak[i]);  //将之前的数据存储
                }
                buttonArr.push(NewRow);  //在尾部加一行
                table.reload("mainTable", {
                    data: buttonArr    //将数据重新载入表格
                })
            }
            //复制一行
            function btnCopyLine(data) {
                var copydata = JSON.stringify(data);
                if (data.length <= 0) {
                    layer.msg("请选择需要复制的一行!");
                }
                else if (data.length > 1) {
                    layer.msg("只能选择复制一行!");
                }
                else {
                    var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                    var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
                    table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
                    option.data = table.cache["mainTable"];//将数据绑定到data上
                    table.render(option);//将数据渲染到表格上
                }
            }
            // è¡¨æ ¼è¡Œå†…事件删除
            function set_GridDelete(obj) {
                var data = obj.data;
                var rowIndex = $(obj.tr).attr("data-index");
                if (obj.event === 'del') {
                    layer.confirm('真的删除行么', function (index) {
                        var oldData = table.cache["mainTable"];
                        oldData.splice(obj.tr.data('index'), 1);
                        table.reload('mainTable', { data: oldData });
                        layer.close(index);
                    });
                }
            }
            //#region åˆ¤æ–­æ•°æ®æ•°ç»„中的值是否相同
            function isAllEqual(list) {
                var s = list.join(",") + ",";
                for (var i = 0; i < list.length; i++) {
                    if (s.replace(list[i] + ",", "").indexOf(list[i] + ",") > -1) {
                        layer.msg("第" + (i+1) + "行:数据重复");
                        return true;
                    }
                }
            }
            //#endregion
            //#region éžç©ºéªŒè¯
            function AllowLoadData(sSubStr) {  //非空验证
                var Result = true;
@@ -551,6 +548,58 @@
                }
                return Result;
            }
            //#endregion
            //#region å¢žåŠ ä¸€è¡Œ
            function btnAddLine(NewRow) {
                var tableBak = table.cache["mainTable"]; //获取之前编辑过的表格数据
                buttonArr = [];//清空数组
                for (var i = 0; i < tableBak.length; i++) {
                    buttonArr.push(tableBak[i]);  //将之前的数据存储
                }
                buttonArr.push(NewRow);  //在尾部加一行
                table.reload("mainTable", {
                    data: buttonArr    //将数据重新载入表格
                })
            }
            //#endregion
            //#region å¤åˆ¶ä¸€è¡Œ
            function btnCopyLine(data) {
                var copydata = JSON.stringify(data);
                if (data.length <= 0) {
                    layer.msg("请选择需要复制的一行!");
                }
                else if (data.length > 1) {
                    layer.msg("只能选择复制一行!");
                }
                else {
                    var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                    var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
                    table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
                    option.data = table.cache["mainTable"];//将数据绑定到data上
                    table.render(option);//将数据渲染到表格上
                }
            }
            //#endregion
            //#region è¡¨æ ¼è¡Œå†…事件删除
            function set_GridDelete(obj) {
                var data = obj.data;
                var rowIndex = $(obj.tr).attr("data-index");
                if (obj.event === 'del') {
                    layer.confirm('真的删除行么', function (index) {
                        var oldData = table.cache["mainTable"];
                        oldData.splice(obj.tr.data('index'), 1);
                        table.reload('mainTable', { data: oldData });
                        layer.close(index);
                    });
                }
            }
            //#endregion
            //#endregion
        });
    </script>