xinyb
2024-09-19 18ffbca9acaccd5099a7a63652f52210f59a7e40
WebRoot/js/hotkey.js
@@ -154,86 +154,87 @@
    } else {
        if (typeof (panMain) != "undefined")
            excelTitle = new Base64().encode((panMain[panIndex].panelTitle == undefined ? "" : panMain[panIndex].panelTitle) + "~" + "");// 面板+格线的动态标题
        TGData = '{"Cfg":{"Sort":"","SortCols":"","SortTypes":"0","Group":"","GroupCols":"","SearchAction":"","TimeZone":"-480","ScrollLeft":"0","LeftScrollLeft":"0","ScrollTop":"0"},"CutFilter":{"Filter":""},"rowspan":"","Filters":[],"IO":{},"Fields":{"FieldsName":"" },"CutFilter":{"Filter":"" },"Exprs":{"expr":"" },"Cps":{"cp":"" },"rowspan":"","excelTitle":"fg==","Body":[{"Pos":"0"}]}';
        TGData = '{"Cfg":{"Sort":"","SortCols":"","SortTypes":"0","Group":"","GroupCols":"","SearchAction":"","TimeZone":"-480","ScrollLeft":"0","LeftScrollLeft":"0","ScrollTop":"0"},"CutFilter":{"Filter":""},"rowspan":"","Filters":[],"IO":{},"Fields":{"FieldsName":""},"CutFilter":{"Filter":""},"Exprs":{"expr":""},"Cps":{"cp":""},"rowspan":"","excelTitle":"fg==","Body":[{"Pos":"0"}]}';
        if (panMain[panIndex].panelTitle == null || panMain[panIndex].panelTitle == "") {
            var doccode = $("#doccode").val();
            if (doccode != null && doccode != "") {
                panMain[panIndex].panelTitle = "doccode='" + doccode + "'";
            }
        }
        excelurl = "/gtGrid.do?m=load&where=" + (panMain[panIndex].panelTitle == undefined ? "" : panMain[panIndex].panelTitle) + "&formID=" + formId + "&winType=" + (formType == 16 ? 17 : (formType == 496?497:formType)) + "|0&flag=-1&autopaging=3&cp=0&formdatafilters=&pageSize=100&picFild=";
        //16类型单独处理
        excelurl = "/gtGrid.do?m=load&where=" + (panMain[panIndex].panelTitle == undefined ? "" : panMain[panIndex].panelTitle) + "&formID=" + formId + "&winType=" +  (formType == 496?497:formType)+ "|0&flag=-1&autopaging=3&cp=0&formdatafilters=&pageSize=100&picFild=";
    }
    // 创建一个隐藏的iframe,用于接收Excel文件
   // var iframe = $("<iframe>");
    // var iframe = $("<iframe>");
    //iframe.attr('style', 'display:none');
    //$('body').append(iframe);
    var obj = toJson(excelurl);
       var form = $("<form>");
       form.attr('style', 'display:none');
       form.attr('target', '');
       form.attr('method', 'post');
       form.attr('action', "/gtGrid.do?m="+ obj.m);
       var input1 = $('<input>');
       input1.attr('type', 'hidden');
       input1.attr('name', 'autopaging');
       input1.attr('value', obj.autopaging);
       form.append(input1);
       var input2 = $('<input>');
       input2.attr('type', 'hidden');
       input2.attr('name', 'cp');
       input2.attr('value', obj.cp);
       form.append(input2);
       var input3 = $('<input>');
       input3.attr('type', 'hidden');
       input3.attr('name', 'flag');
       input3.attr('value', -1);
       form.append(input3);
       var input4 = $('<input>');
       input4.attr('type', 'hidden');
       input4.attr('name', 'formID');
       input4.attr('value', obj.formID);
       form.append(input4);
       var input5 = $('<input>');
       input5.attr('type', 'hidden');
       input5.attr('name', 'formdatafilters');
       input5.attr('value', obj.formdatafilters);
       form.append(input5);
       var input6 = $('<input>');
       input6.attr('type', 'hidden');
       input6.attr('name', 'pageSize');
       input6.attr('value', obj.pageSize);
       form.append(input6);
       var input7 = $('<input>');
       input7.attr('type', 'hidden');
       input7.attr('name', 'picFild');
       input7.attr('value', obj.picFild);
       form.append(input7);
       var input8 = $('<input>');
       input8.attr('type', 'hidden');
       input8.attr('name', 'where');
       input8.attr('value', obj.where);
       form.append(input8);
       var input9 = $('<input>');
       input9.attr('type', 'hidden');
       input9.attr('name', 'winType');
       input9.attr('value', obj.winType);
       form.append(input9);
       var input10 = $('<input>');
       input10.attr('type', 'hidden');
       input10.attr('name', 'isExportExcel');
       input10.attr('value', obj.isExportExcel);
       form.append(input10);
       var input11 = $('<input>');
       input11.attr('type', 'hidden');
       input11.attr('name', 'TGData');
       input11.attr('value', TGData);
       form.append(input11);
       var input12 = $('<input>');
       input12.attr('type', 'hidden');
       input12.attr('name', 'tbCols');
       input12.attr('value', obj.tbCols);
       form.append(input12);
    var form = $("<form>");
    form.attr('style', 'display:none');
    form.attr('target', '');
    form.attr('method', 'post');
    form.attr('action', "/gtGrid.do?m="+ obj.m);
    var input1 = $('<input>');
    input1.attr('type', 'hidden');
    input1.attr('name', 'autopaging');
    input1.attr('value', obj.autopaging);
    form.append(input1);
    var input2 = $('<input>');
    input2.attr('type', 'hidden');
    input2.attr('name', 'cp');
    input2.attr('value', obj.cp);
    form.append(input2);
    var input3 = $('<input>');
    input3.attr('type', 'hidden');
    input3.attr('name', 'flag');
    input3.attr('value', -1);
    form.append(input3);
    var input4 = $('<input>');
    input4.attr('type', 'hidden');
    input4.attr('name', 'formID');
    input4.attr('value', formType==496?formId:obj.formID);
    form.append(input4);
    var input5 = $('<input>');
    input5.attr('type', 'hidden');
    input5.attr('name', 'formdatafilters');
    input5.attr('value', obj.formdatafilters);
    form.append(input5);
    var input6 = $('<input>');
    input6.attr('type', 'hidden');
    input6.attr('name', 'pageSize');
    input6.attr('value', obj.pageSize);
    form.append(input6);
    var input7 = $('<input>');
    input7.attr('type', 'hidden');
    input7.attr('name', 'picFild');
    input7.attr('value', obj.picFild);
    form.append(input7);
    var input8 = $('<input>');
    input8.attr('type', 'hidden');
    input8.attr('name', 'where');
    input8.attr('value', obj.where);
    form.append(input8);
    var input9 = $('<input>');
    input9.attr('type', 'hidden');
    input9.attr('name', 'winType');
    input9.attr('value', obj.winType);
    form.append(input9);
    var input10 = $('<input>');
    input10.attr('type', 'hidden');
    input10.attr('name', 'isExportExcel');
    input10.attr('value', obj.isExportExcel==undefined?"0":obj.isExportExcel);
    form.append(input10);
    var input11 = $('<input>');
    input11.attr('type', 'hidden');
    input11.attr('name', 'TGData');
    input11.attr('value', TGData);
    form.append(input11);
    var input12 = $('<input>');
    input12.attr('type', 'hidden');
    input12.attr('name', 'tbCols');
    input12.attr('value', obj.tbCols==undefined?"":obj.tbCols);
    form.append(input12);
    $('body').append(form);
    form.submit();
    form.remove();
@@ -242,34 +243,35 @@
}
function refalshGridOfColse() {
    var p_frame = parent.frames[inChangFrame];
    if (p_frame) {
        if (C_Grid != "") {
            var gr = eval('(' + C_Grid + ')');//弹出的父页面传过来的信息
            var pa = p_frame.Grids[gr.gridID];//得到grid
            if (pa.clickDb) {
                pa.clickDb = false;
                return;
            }
            if (pa && gr.clickGrid) {
                if (gr.toP == undefined || gr.toP == null || gr.toP == "null" || gr.toP == "") return;//没有需要返回字段,不作处理
                //增加如果当前页面是31类型弹出作选择用则需要判断是否已保存了数据才给返回
                if (gr.is31 && (this.getInsertedRecords().length > 0 || this.getUpdatedRecords().length > 0 || this.getDeletedRecords().length > 0)) {
                    alert(this.GetText("isSave"));
                    return;
                }
                var ower = gr.toP.split(";");//自表
                var temp = [];
                var row = pa.Rows[gr.rowIDp];//三点弹出的所在行
                for (var i = 0; i < ower.length; i++) {
                    temp[i] = row[ower[i]];
                }
                pa.threePop(temp, ower, row, null, -1);
                pa.EndEdit(0);
            }
        }
    }
    return;
//--下面代码没用,因为取得的数据为空。再更新没意义了 by danaus 2024-03-20 15:59
    /* var p_frame = parent.frames[inChangFrame];
     if (p_frame) {
         if (C_Grid != "") {
             var gr = eval('(' + C_Grid + ')');//弹出的父页面传过来的信息
             var pa = p_frame.Grids[gr.gridID];//得到grid
             if (pa.clickDb) {
                 pa.clickDb = false;
                 return;
             }
             if (pa && gr.clickGrid) {
                 if (gr.toP == undefined || gr.toP == null || gr.toP == "null" || gr.toP == "") return;//没有需要返回字段,不作处理
                 //增加如果当前页面是31类型弹出作选择用则需要判断是否已保存了数据才给返回
                 if (gr.is31 && (this.getInsertedRecords().length > 0 || this.getUpdatedRecords().length > 0 || this.getDeletedRecords().length > 0)) {
                     alert(this.GetText("isSave"));
                     return;
                 }
                 var ower = gr.toP.split(";");//自表
                 var temp = [];
                 var row = pa.Rows[gr.rowIDp];//三点弹出的所在行
                 for (var i = 0; i < ower.length; i++) {
                     temp[i] = row[ower[i]];
                 }
                 pa.threePop(temp, ower, row, null, -1);
                 pa.EndEdit(0);
             }
         }
     }*/
}
function postCheck(y, grid) {//由直接按确认后才调用
@@ -436,10 +438,10 @@
function Base64() {
    // private property
    // private property
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    // public method for encoding
    // public method for encoding
    this.encode = function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
@@ -465,7 +467,7 @@
        return output;
    }
    // public method for decoding
    // public method for decoding
    this.decode = function (input) {
        var output = "";
        var chr1, chr2, chr3;
@@ -492,7 +494,7 @@
        return output;
    }
    // private method for UTF-8 encoding
    // private method for UTF-8 encoding
    _utf8_encode = function (string) {
        string = string.replace(/\r\n/g, "\n");
        var utftext = "";
@@ -513,7 +515,7 @@
        return utftext;
    }
    // private method for UTF-8 decoding
    // private method for UTF-8 decoding
    _utf8_decode = function (utftext) {
        var string = "";
        var i = 0;
@@ -988,7 +990,7 @@
                if (item.indexOf("_expr") > 0) continue;
                var cell = row.insertCell(i);
                var vlu = ob[item] == 'null' ? "" : ob[item];
                if (ob[item + "_expr"] == 0) {
                if (ob[item + "_expr"]=== 0) {
                    vlu = "***";
                    cell.hd = ob[item];
                }
@@ -1198,16 +1200,16 @@
        },
        close: function () {
            layer.close(this.layIndex);
                //by danaus 2021/4/8 14:45
                if(this._flg_ == 2) {
                    if (mygrid)
                        mygrid.ReloadBody();
                }else if(this._flg_ == -1){
                    //表示是序列号扫码入库调用,不需要刷新页面
                }else {
                    if (location)
                        location.reload();
                }
            //by danaus 2021/4/8 14:45
            if(this._flg_ == 2) {
                if (mygrid)
                    mygrid.ReloadBody();
            }else if(this._flg_ == -1){
                //表示是序列号扫码入库调用,不需要刷新页面
            }else {
                if (location)
                    location.reload();
            }
        }
@@ -1370,7 +1372,7 @@
    return lay;
}
function delemptyrefdata() {
   return;
    return;
}
//解决格线高度问题
function gridHeight() {
@@ -1466,7 +1468,7 @@
        var Cid = 'grid_table_' + col.rand;
        var value="";
        try {
             value = tg.Edit.Tag.value + "";
            value = tg.Edit.Tag.value + "";
            if (value == '' || this.inputValue == value) {
                return;
            }
@@ -1571,8 +1573,8 @@
        list.array = [];
        var array = $('#' + list.id).data('title');//显示的字段名
        if (typeof  array == 'undefined'){//不是最新生成的界面
             list.isOld=true;
             callback(false);
            list.isOld=true;
            callback(false);
        }else{
            if (array != null && array.length>0) {
                array = eval('(' + array + ')');
@@ -1628,6 +1630,9 @@
        for (i = 0; i < bens.length; i++) {
            col = bens[i].toLowerCase();
            if (col.Trim() != "") {
                if (getDoc(col + "_expr", ".value") == 0) {//权限控制就不需要带入进去做条件 xin 2024-6-24 10:10:06
                    continue;
                }
                value = getDoc(col, ".value");
                // 针对 300029 资金帐户
                if (value == null) {
@@ -1707,18 +1712,18 @@
                                }
                            }
                            //--- by danaus 2023-07-27 14:43
                                list.array.forEach(function (item, index) {
                                    //处理5类型日期格式显示
                                    if (item.field == o && (item.controlType != undefined && item.controlType == 5)) {
                                        var format = "yyyy-MM-dd";
                                        if (item.displayformat != undefined && item.displayformat != null && item.displayformat != "") {
                                            format = item.displayformat;
                                        }
                                        if (typeof (formatDate) == "function") {
                                            obj[o] = formatDate(obj[o], format);
                                        }
                            list.array.forEach(function (item, index) {
                                //处理5类型日期格式显示
                                if (item.field == o && (item.controlType != undefined && item.controlType == 5)) {
                                    var format = "yyyy-MM-dd";
                                    if (item.displayformat != undefined && item.displayformat != null && item.displayformat != "") {
                                        format = item.displayformat;
                                    }
                                });
                                    if (typeof (formatDate) == "function") {
                                        obj[o] = formatDate(obj[o], format);
                                    }
                                }
                            });
                        }
                    }
                    if (res instanceof Array) {
@@ -1768,7 +1773,7 @@
        } else {
            //执行重载
            this.Env42table[list.id].reload({
                 cols: [cols]//标题数组
                cols: [cols]//标题数组
                ,page: {
                    curr: 1 //重新从第 1 页开始
                }
@@ -1807,12 +1812,18 @@
        if (list.type == 0) {//面板
            var fk = list.fk;
            var p=panMain[panIndex];
            var encrypt = new JSEncrypt();
            encrypt.setPublicKey(rsakey.pubkey);
            for (var i = 0; i < fk.length; i++) {//赋值给页面
                if (typeof data[fk[i]] != 'undefined') {
                    var v = (data[fk[i]] == null ? "" : data[fk[i]]);
                    //处理值是html标签格式: 169 123<H 455>W 123,因为显示时候做了转义,这里取值就需要还原 by danaus 2023-07-04 09:34
                    if(data[fk[i]+"_escape"]!=undefined){
                        v=data[fk[i]+"_escape"];
                    }
                    if (getDoc(list.seekgroupid[i] + "_expr", ".value") != "" && getDoc(list.seekgroupid[i] + "_expr", ".value") == 0) {//权限控制 显示星号 xin 2024-6-24 10:22:43
                        setDoc(list.seekgroupid[i] + "_expr_val", ".value='" + encrypt.encrypt(v) + "'");//加密值
                        v = "******";
                    }
                    setDoc(list.seekgroupid[i], ".value='" + v + "'");
                    if (p.select[list.seekgroupid[i]] != null) {//有级联到31控件的字段需要加载 xin 2021-5-10 14:55:33
@@ -1824,14 +1835,28 @@
                }
            }
        } else if (list.type == 1) {//格线
            //debugger;
            var fileds = list.formfileds;
            var V = [];
            let arrayExpr = {};
            let newExpr = {};
            for (let name in data) {
                //取出有权限字段
                if (data[name + "_expr"] != undefined && data[name + "_expr"] === 0) {
                    arrayExpr[name] = 1;
                }
            }
            for (var r = 0; r < fileds.length; r++) {
                if (typeof data[fileds[r]] != 'undefined') {
                    //处理值是html标签格式: 169 123<H 455>W 123,因为显示时候做了转义,这里取值就需要还原 by danaus 2023-07-04 09:34
                    var value=data[fileds[r]] != null ? data[fileds[r]] : '';
                    if(data[fileds[r]+"_escape"]!=undefined){
                        value=data[fileds[r]+"_escape"];
                    var value = data[fileds[r]] != null ? data[fileds[r]] : '';
                    if (data[fileds[r] + "_escape"] != undefined) {
                        value = data[fileds[r] + "_escape"];
                    }
                    if (arrayExpr[fileds[r]] != undefined) {
                        //表示这个值是加密了,需要注明
                        newExpr[list.to[r]] = value;
                    }
                    V.push(value);
                } else {
@@ -1840,17 +1865,21 @@
            }
            if (list.gridIndex != null) {
                var gd = Grids[list.gridIndex];
                // var row=gd.Rows[list.rowid];//三点弹出的所在行
                // var row=gd.Rows[list.rowid];//三点弹出的所在行,
                // by danaus 2024-02-07 10:24   TODO 需要增加返回有权限表达式的字段,更新对应的字段为有权限表达式,像3点弹出,42选择出来的数据返回是有权限为0的字段,则相应回填的字段也要设置成有权限为0的属性
                //清空关联
                if (gd.Cols[list.Tfield]!=undefined&&gd.Cols[list.Tfield].emptyrefdata!=undefined
                    &&gd.Cols[list.Tfield].emptyrefdata!="") {
                if (gd.Cols[list.Tfield] != undefined && gd.Cols[list.Tfield].emptyrefdata != undefined
                    && gd.Cols[list.Tfield].emptyrefdata != "") {
                    var ed = gd.Cols[list.Tfield].emptyrefdata.toLowerCase().split(";");
                    for(var i=0;i<ed.length;i++){
                    for (var i = 0; i < ed.length; i++) {
                        gd.SetValue(GT.rowIDp, ed[i], "", 0);
                        gd.RefreshCell(GT.rowIDp, ed[i]);
                    }
                }
                gd.threePop(V, list.to, GT.rowIDp, null, -1, null, null, list.Tfield);//赋值给页面
                //增加传expr=0的字段,把权限属性更新到对应的字段 by danaus 2024-02-23 10:07
                gd.threePop(V, list.to, GT.rowIDp, null, -1, null, null, list.Tfield, newExpr);//赋值给页面
                gd.EndEdit(0);
                this.inputValue = "";
            }
@@ -1936,45 +1965,45 @@
};
//执行收款显示二维码或退款
function OpenPayAndRefund(doccode,type,formid){
        if(type=="pay"){//显示二维码
            let doc=doccode;
            var url = "/general/onlinePayment/payment.jsp?orderNo=" + doc+"&formId="+formid;
            layui.layer.open({
                type: 2,
                area: ['700px', '500px'],
                title: false,
                content: url,
                cancel: function (index, layero) {
                    var envt = $(layero).find("iframe")[0].contentWindow;
                    if (envt != null) {
                        if (!envt.isChang) {
                            if (!confirm("还没有支付,确定关闭吗?")) {
                                return false;
                            }
                        }
                        if (envt.ws != null) {
                            envt.ws.close();
    if(type=="pay"){//显示二维码
        let doc=doccode;
        var url = "/general/onlinePayment/payment.jsp?orderNo=" + doc+"&formId="+formid;
        layui.layer.open({
            type: 2,
            area: ['700px', '500px'],
            title: false,
            content: url,
            cancel: function (index, layero) {
                var envt = $(layero).find("iframe")[0].contentWindow;
                if (envt != null) {
                    if (!envt.isChang) {
                        if (!confirm("还没有支付,确定关闭吗?")) {
                            return false;
                        }
                    }
                    layer.closeAll();
                    getReductionURL(doc);
                }
            });
        }else{//确定
            $.ajax({
                url: "/gtGrid.do?m=newTran&formid="+formid+"&docCode="+doccode,
                type: "get",
                async: false,
                success: function (res) {
                    if(res.state==-1) {
                        layer.alert(res.msg,function (){location.reload();});
                    }else{
                        location.reload();
                    if (envt.ws != null) {
                        envt.ws.close();
                    }
                }, error: function (e, h, a) {
                    layer.alert(e.responseText,function (){location.reload();} );
                }
            });
                layer.closeAll();
                getReductionURL(doc);
            }
        });
    }else{//确定
        $.ajax({
            url: "/gtGrid.do?m=newTran&formid="+formid+"&docCode="+doccode,
            type: "get",
            async: false,
            success: function (res) {
                if(res.state==-1) {
                    layer.alert(res.msg,function (){location.reload();});
                }else{
                    location.reload();
                }
            }, error: function (e, h, a) {
                layer.alert(e.responseText,function (){location.reload();} );
            }
        });
    }
}
//针对收款二维码界面关闭的处理 xin 2021-9-8 10:09:33