1
陈雯静
2024-02-28 fda28cff8d6ed7ce1acf878f3a23f8e77ecd53cf
WebTM/views/ϵͳ¹ÜÀí/Óû§¹ÜÀí/Gy_UserCustomer.html
@@ -43,6 +43,7 @@
                        <div class="layui-card-header">
                            <div class="layui-btn-group">
                                <button type="button" id="add-btn" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Saver">保存</button>
                                <button type="button" id="set_Excel" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="set_Excel">Excel导入</button>
                                <button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
                            </div>
                        </div>
@@ -59,6 +60,26 @@
                                                    <button type="button" lay-submit="" class="layui-btn" lay-filter="UserList" style="width:40px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label">客户代码</label>
                                                <div class="layui-input-inline">
                                                    <input type="text" name="HCusNumber" id="HCusNumber" class="layui-input" value="" style="float:left;width:150px;">
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label">客户名称</label>
                                                <div class="layui-input-inline">
                                                    <input type="text" name="HCusName" id="HCusName" class="layui-input" value="" style="float:left;width:150px;">
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <div class="layui-input-inline">
                                                    <button type="button" lay-submit="" class="layui-btn" lay-filter="Search" style="width:40px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                                    </button>
                                                    <button type="button" lay-submit="" class="layui-btn" lay-filter="ReSet" style="width:60px;">重置</button>
                                                </div>
                                            </div>
                                        </div>
@@ -118,13 +139,12 @@
            TabRow = { "HCusID": 0, "HCustomerNumber": "", "HCustomerName": "" };
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化表格
            //#region åˆå§‹åŒ–表格
            set_InitGrid();
            //#endregion
            //判断操作类型
            //#region åˆ¤æ–­æ“ä½œç±»åž‹
            if (OperationType == 1) {//无源新增
                //无源新增
                set_AddFNew();
@@ -136,154 +156,10 @@
                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;
                }
            });
            //行内事件
            table.on('tool(mainTable)', function (obj) {
                set_GridDelete(obj);   //行内删除
                set_GridCellCheck(obj); //行内快捷键筛选
            });
            //用户信息弹窗
            form.on('submit(UserList)', function () {
                //页面层-自定义
                layer.open({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '验收员列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/PeopleInformation.html', 'yes'],
                    btn: ['确定', '取消']
                    , btn1: function (index, layero) {
                        //按钮【按钮一】的回调
                        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('请选择数据');
                        }
                        $("#UserName").val(checkStatus.data[0].HName);
                        $("#UserID").val(checkStatus.data[0].HNumber);
                        $.ajax({
                            url: GetWEBURL() + "/Xt_User/CustomerPlaylist",
                            type: "GET",
                            data: { "HUserID": checkStatus.data[0].HNumber },
                            success: function (data) {
                                if (data.data != null && data.data != "") {
                                    option.data = data.data;
                                    table.render(option);
                                }
                                else {
                                    table.reload("mainTable", {});
                                    table.reload('mainTable', { data: [] });
                                }
                            }
                        });
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //表格行内事件快捷键筛选
            function set_GridCellCheck(obj) {
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    if (event.key == "F7") {
                        //供应商代码
                        if (obj.event === 'HCustomerNumber')  //模具信息  å¦‚果在模具代码列 æŒ‰F7
                        {
                            //页面层-自定义  //F7选择供应商
                            layer.open({
                                type: 2,
                                skin: 'layui-layer-rim', //加上边框
                                title: '客户列表',
                                closeBtn: 1,
                                shift: 2,
                                area: ['80%', '80%'],
                                maxmin: true,
                                content: ['../../Baseset/基础资料/Gy_CustomerList.html', 'yes'],
                                btn: ['确定', '取消']
                                , btn1: function (index, layero) {
                                    //按钮【按钮一】的回调
                                    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('请选择数据');
                                    }
                                    //console.log(obj.data);
                                    //同步更新表格和缓存对应的值
                                    //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);
                                        }
                                        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);
                                    layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) {
                                    //按钮【按钮二】的回调
                                    //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                },
                                end: function () {
                                }
                            });
                        }
                        obj.event = "";
                        return false;
                    }
                })
            }
            //保存
            //#region ä¸»è¡¨æŒ‰é’®è§¦å‘事件
            //#region ä¿å­˜
            form.on('submit(Saver)', function (data) {
                if ($("#UserName").val() == "") {
                    layer.msg("用户不能为空!");
@@ -301,11 +177,11 @@
                    list.push(JSON.parse(sSubStr)[i].HCustomerNumber)
                }
                if (isAllEqual(list)) {
                    layer.msg("有重复的客户信息!");
                    //layer.msg("有重复的客户信息!");
                    return false;
                }
                var sMainSub = sSubStr + ';' + UserID
                var sMainSub = sSubStr + ';' + UserID + ';' + sessionStorage["HUserName"];
                $.ajax(
                    {
                        type: "POST",
@@ -335,8 +211,15 @@
                        }
                    });
            });
            //#endregion
            //退出
            //#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值从列表传递
@@ -348,11 +231,239 @@
                    Pub_Close(2);
                }
            });
            //#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({
                    type: 2,
                    skin: 'layui-layer-rim', //加上边框
                    title: '验收员列表',
                    closeBtn: 1,
                    shift: 2,
                    area: ['80%', '80%'],
                    maxmin: true,
                    content: ['../../PublicPage/PeopleInformation.html', 'yes'],
                    btn: ['确定', '取消']
                    , btn1: function (index, layero) {
                        //按钮【按钮一】的回调
                        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('请选择数据');
                        }
                        $("#UserName").val(checkStatus.data[0].HName);
                        $("#UserID").val(checkStatus.data[0].HNumber);
                        $.ajax({
                            url: GetWEBURL() + "/Xt_User/CustomerPlaylist",
                            type: "GET",
                            data: { "HUserID": checkStatus.data[0].HNumber, "CurUserName": sessionStorage["HUserName"] },
                            success: function (data) {
                                if (data.data != null && data.data != "") {
                                    option.data = data.data;
                                    table.render(option);
                                }
                                else {
                                    table.reload("mainTable", {});
                                    table.reload('mainTable', { data: [] });
                                    layer.alert(data.Message);
                                }
                            }
                        });
                        layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                    },
                    end: function () {
                    },
                    success: function (layero, index) {
                    }
                });
            });
            //#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") {
                        //供应商代码
                        if (obj.event === 'HCustomerNumber')  //模具信息  å¦‚果在模具代码列 æŒ‰F7
                        {
                            //页面层-自定义  //F7选择供应商
                            layer.open({
                                type: 2,
                                skin: 'layui-layer-rim', //加上边框
                                title: '客户列表',
                                closeBtn: 1,
                                shift: 2,
                                area: ['80%', '80%'],
                                maxmin: true,
                                content: ['../../Baseset/基础资料/Gy_CustomerList.html', 'yes'],
                                btn: ['确定', '取消']
                                , btn1: function (index, layero) {
                                    //按钮【按钮一】的回调
                                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                                    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
                                    });
                                    //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);
                                    layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                                }
                                , btn2: function (index, layero) {
                                    //按钮【按钮二】的回调
                                    //return false å¼€å¯è¯¥ä»£ç å¯ç¦æ­¢ç‚¹å‡»è¯¥æŒ‰é’®å…³é—­
                                },
                                end: function () {
                                }
                            });
                        }
                        obj.event = "";
                        return false;
                    }
                })
            }
            //#endregion
            //#endregion
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰æ–¹æ³•
            //初始化表格
            //#region å¿«é€Ÿè¿‡æ»¤
            function get_FastQuery() {
                var UserID = $("#UserID").val();        //用户
                var HCusNumber = $("#HCusNumber").val();//客户代码
                var HCusName = $("#HCusName").val();    //客户名称
                if (UserID == null || UserID == "") {
                    layer.alert("用户未选择,请选择用户!");
                    return;
                }
                $.ajax({
                    url: GetWEBURL() + "/Xt_User/CustomerPlaylistFromUserCustomerList",
                    type: "GET",
                    data: { "HUserID": UserID, "HCusNumber": HCusNumber, "HCusName": HCusName, "CurUserName": sessionStorage["HUserName"] },
                    success: function (data) {
                        if (data.data != null && data.data != "") {
                            option.data = data.data;
                            table.render(option);
                        }
                        else {
                            table.reload("mainTable", {});
                            table.reload('mainTable', { data: [] });
                            layer.alert(data.Message);
                        }
                        if (HCusNumber == "" && HCusName == "") {
                            $('#add-btn').removeClass("layui-btn-disabled");
                        } else {
                            $('#add-btn').removeClass("layui-btn-disabled");
                            $('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
                        }
                    }
                });
            }
            //#endregion
            //#region é‡ç½®è¿‡æ»¤æ¡ä»¶
            function set_ClearQuery() {
                $("#HCusNumber").val("");//客户代码
                $("#HCusName").val(""); //客户名称
            }
            //#endregion
            //#region Excel导入
            function set_Excel() {
                layer.open({
                    type: 2
                    , skin: 'layui-layer-rim' //加上边框
                    , area: ['100%', '100%']
                    , title: '用户关联客户-导入'
                    , shift: 0//弹出动画
                    , content: '../../系统管理/用户管理/Gy_UserCustomer_ImportByExcel.html'
                    , end: function () {
                        //刷新页面,
                    }
                })
            }
            //#endregion
            //#region åˆå§‹åŒ–表格
            function set_InitGrid() {
                columns = [
                    { type: 'checkbox', fixed: 'left' }
@@ -375,64 +486,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;
@@ -454,6 +528,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>