| | |
| | | try { |
| | | if (top.myFresh.formType == 3 && !top.myFresh.clickNode) { |
| | | alert("请先选择左边分类再执行导出"); |
| | | closeLoading(); |
| | | return; |
| | | } |
| | | } catch (e) { |
| | | } |
| | | if (typeof (mygrid) != "undefined") { |
| | | if (typeof (panMain) != "undefined" && typeof (panMain[panIndex]) != "undefined") |
| | | mygrid.excelTitle = new Base64().encode((panMain[panIndex].panelTitle == undefined ? "" : panMain[panIndex].panelTitle) + "~" + mygrid.gridTitle);// 面板+格线的动态标题 |
| | | mygrid.excelTitle = new Base64().encode((panMain[panIndex].panelTitle == undefined ? "" : panMain[panIndex].panelTitle) + "~" + mygrid.gridTitlefun());// 面板+格线的动态标题 |
| | | else |
| | | mygrid.excelTitle = new Base64().encode("~" + mygrid.gridTitle);// a面板+格线的动态标题 |
| | | mygrid.excelTitle = new Base64().encode("~" + mygrid.gridTitlefun());// a面板+格线的动态标题 |
| | | var str = mygrid.exportExcl(); |
| | | excelurl = str.split("&p&")[0]; |
| | | if (excelurl.indexOf("flag=") < 0) { |
| | | excelurl += "flag=-1"; |
| | | } |
| | | TGData = str.split("&p&")[1].replace("TGData=", ""); |
| | | } 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) + "|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="; |
| | | } |
| | | var obj = toJson(excelurl); |
| | | |
| | | // 创建一个隐藏的iframe,用于接收Excel文件 |
| | | // 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); |
| | | form.attr('action', "/gtGrid.do?m="+ obj.m); |
| | | var input1 = $('<input>'); |
| | | input1.attr('type', 'hidden'); |
| | | input1.attr('name', 'autopaging'); |
| | |
| | | var input3 = $('<input>'); |
| | | input3.attr('type', 'hidden'); |
| | | input3.attr('name', 'flag'); |
| | | input3.attr('value', obj.flag); |
| | | input3.attr('value', -1); |
| | | form.append(input3); |
| | | var input4 = $('<input>'); |
| | | input4.attr('type', 'hidden'); |
| | | input4.attr('name', 'formID'); |
| | | input4.attr('value', obj.formID); |
| | | input4.attr('value', formType==496?formId:obj.formID); |
| | | form.append(input4); |
| | | var input5 = $('<input>'); |
| | | input5.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(); |
| | | if (typeof (mygrid) != "undefined") mygrid.ReloadBody(); |
| | | top.myFresh.clickNode = false; |
| | | closeLoading(); |
| | | } |
| | | |
| | | 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) {//由直接按确认后才调用 |
| | |
| | | |
| | | 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; |
| | |
| | | return output; |
| | | } |
| | | |
| | | // public method for decoding |
| | | // public method for decoding |
| | | this.decode = function (input) { |
| | | var output = ""; |
| | | var chr1, chr2, chr3; |
| | |
| | | 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 = ""; |
| | |
| | | return utftext; |
| | | } |
| | | |
| | | // private method for UTF-8 decoding |
| | | // private method for UTF-8 decoding |
| | | _utf8_decode = function (utftext) { |
| | | var string = ""; |
| | | var i = 0; |
| | |
| | | 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]; |
| | | } |
| | |
| | | }, |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | function codeScanning(state,formid,formtype,type){ |
| | | var url = "/general/SerialNumber/" + (type == "out" ? "deliveryPage.jsp?" : "warehousing.jsp?"); |
| | | var page = ""; |
| | | if (type == "out") { |
| | | page = "deliveryPage.jsp?"; |
| | | } else if (type == "in") { |
| | | page = "warehousing.jsp?"; |
| | | } else if (type == "cyc") { |
| | | page = "inventory.jsp?"; |
| | | } |
| | | var url = "/general/SerialNumber/" + page; |
| | | var parm = "formid=" + formid + "&formtype=" + formtype + "&doccode=" + getDoc("doccode", ".value"); |
| | | var isEdit = false; |
| | | if (state != null) { |
| | |
| | | gr.EndEdit(true); |
| | | var rowids = value.rowids; |
| | | for (var r in rowids) { |
| | | gr.setSerialNumber("serialnumbers", (rowids[r] != "" ? rowids[r].join(";") : ""), r); |
| | | gr.setSerialNumber("serialnumbers", (rowids[r] != "" ? rowids[r].join(";") : ""), r); |
| | | } |
| | | if(isSave){//有改动过是需要保存 |
| | | //处理保存自动执行事件 |
| | |
| | | return lay; |
| | | } |
| | | function delemptyrefdata() { |
| | | return; |
| | | return; |
| | | } |
| | | //解决格线高度问题 |
| | | function gridHeight() { |
| | | try { |
| | | var panelHeight = (top.panelHeight == 0 ? document.documentElement.clientHeight : top.panelHeight);// 获取页面的总高度 |
| | | var panelType = top.myFresh.panel[top.tabindex];// 获取面板的类型 |
| | | if (';2;3;4;20;30;301;302;303;304;'.indexOf(';' + panelType + ';') != -1) {// 有树形的特殊窗体处理 |
| | | |
| | | // let panelControlDiv=$('.panelControlDiv'); |
| | | // if(panelControlDiv && panelControlDiv.eq(0)){//是否有这个div层 xin 2023-8-22 15:59:36 |
| | | // //固定这个层的最大高度为自适应获取的高度,如果不固定为最大高度,在有42控件显示层的时候,如果42控件显示层大于这个层的高度话会把他撑高。 |
| | | // panelControlDiv.eq(0).css("max-height",panelControlDiv.outerHeight(true)); |
| | | // } |
| | | // 有树形的特殊窗体处理 |
| | | if (';2;3;4;20;30;301;302;303;304;'.indexOf(';' + panelType + ';') != -1) { |
| | | if (gridId.length == 0) return; |
| | | var panelWidth = document.documentElement.clientWidth; |
| | | var treeWidth = $('#wrappers').outerWidth(true);// 树形的宽度 |
| | | var treeHeight = $('#tplt-panels').outerHeight(true);// 树形的高度 |
| | | $('#' + gridId[0]).css('height', (treeHeight - 30) + 'px');// 减去30是因为margin和padding的值 |
| | | $('#' + gridId[0]).css('height', (treeHeight - 30 - 20) + 'px');// 减去30是因为margin和padding的值 |
| | | $('#' + gridId[0]).css('width', (panelWidth - treeWidth - 30) + 'px'); |
| | | return; |
| | | } |
| | | if (';1;9;10;15;17;18;497;499;'.indexOf(';' + panelType + ';') != -1 && typeof (formId) != 'undefined') {// 清单列表页面 |
| | | var topPanelHeight = $('#top_table').outerHeight(true); |
| | | |
| | | // 清单列表页面 |
| | | if (';1;9;10;15;17;18;19;497;499;'.indexOf(';' + panelType + ';') != -1 && typeof (formId) != 'undefined') { |
| | | var topPanelHeight = $('#top_table').outerHeight(true);//这个是头部状态栏高度 |
| | | if (topPanelHeight == null) {// 没有标题的高度 |
| | | topPanelHeight = $('#tplt-top').outerHeight(true)+10; |
| | | topPanelHeight = $('#tplt-top').outerHeight(true) + 10; |
| | | } |
| | | panelHeight = (panelHeight - topPanelHeight);//总高度 - 状态栏高度 |
| | | if (panelType == 1) { |
| | | $('#' + gridId[0]).css('height', (panelHeight - topPanelHeight - 50) + 'px');// 减去50是因为margin和padding的值 |
| | | $('#' + gridId[0]).css('height', (panelHeight - 50) + 'px');// 减去50是因为margin和padding的值 |
| | | return; |
| | | } |
| | | if (panelType == 10 || panelType == 18) { |
| | | panelHeight = (panelHeight - 60);//文字颜色说明占了50高 |
| | | if (panelType == 10 || panelType == 18 || panelType == 19) { |
| | | var panelTable0Height = $('#panelTable0').outerHeight(true); |
| | | $('#' + gridId[0]).css('height', (panelHeight - topPanelHeight - panelTable0Height - 50) + 'px');// 减去50是因为margin和padding的值 |
| | | panelHeight = panelHeight - panelTable0Height + 5; |
| | | $('#' + gridId[0]).css('margin-bottom', '0').css('margin-top', '0'); |
| | | $('#' + gridId[0]).css('height', panelHeight + 'px');// 减去25是因为margin和padding的值 |
| | | return; |
| | | } |
| | | var panelFormIdHeight = $('#panel_' + formId).outerHeight(true); |
| | | if(panelFormIdHeight==null){ |
| | | var panelFormIdHeight = $('#panel_' + formId).outerHeight(true);//面板控件占用的高度 |
| | | if (panelFormIdHeight == null) { |
| | | panelFormIdHeight = $('.main_talbe').outerHeight(true); |
| | | } |
| | | $('#' + gridId[0]).css('height', (panelHeight - topPanelHeight - panelFormIdHeight - 50) + 'px');// 减去50是因为margin和padding的值 |
| | | panelHeight = (panelHeight - panelFormIdHeight);//总高度 - 面板控件占用的高度 |
| | | panelHeight = (panelHeight - 25);//总高度 - 其他pdding等因素; |
| | | //文字颜色说明高度 |
| | | // let colorDescriptionContainer = $('.colorDescriptionContainer').outerHeight(true); |
| | | // if (colorDescriptionContainer != null) { |
| | | // colorDescriptionContainer = 40; |
| | | // } |
| | | // panelHeight = (panelHeight - colorDescriptionContainer);//总高度 - 文字颜色说明高度 |
| | | $('#' + gridId[0]).css('height', panelHeight + 'px');// 减去50是因为margin和padding的值 |
| | | return; |
| | | } |
| | | return; |
| | | } catch (e) { |
| | | //$.messager.alert("操作提示","获取格线高度出现了错误!"+e,"warning"); |
| | | console.log("调节格线高度出现错误异常。"+e); |
| | | } |
| | | } |
| | | |
| | |
| | | if (this.Collection[Cid] == null) {//第一次时进入 |
| | | this.getPanelParam(elem, Info, rod, Cid);//获取通用属性 |
| | | } |
| | | this.PremissField(Info,this.Collection[Cid].wheres);//个别窗体需要添加条件进去 如 18窗体表号 xin 2023-2-8 08:46:12 |
| | | // var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; |
| | | this.Collection[Cid].top = elem.offsetTop + 26;//elem.offsetParent.offsetParent.offsetTop + elem.offsetParent.offsetTop + 28 - scrollTop;// 42控件div的top控制 |
| | | this.Collection[Cid].left = elem.offsetLeft;//elem.offsetParent.offsetParent.offsetLeft + elem.offsetParent.offsetLeft + 118;// 42类型div的left控制 |
| | |
| | | } |
| | | , ShowDivForGrid: function (tg, elem, col,callback) {//格线数据加载 |
| | | var Cid = 'grid_table_' + col.rand; |
| | | var value = tg.Edit.Tag.value + ""; |
| | | if(value =='' || this.inputValue==value){ |
| | | return; |
| | | } |
| | | var value=""; |
| | | try { |
| | | value = tg.Edit.Tag.value + ""; |
| | | if (value == '' || this.inputValue == value) { |
| | | return; |
| | | } |
| | | }catch (e){} |
| | | this.inputValue=value; |
| | | value = value.replace(/'/g, "''"); |
| | | value = value == "" ? "''" : value; |
| | |
| | | list.wheres.sugg = Info.fk; |
| | | } |
| | | list.fk=Info.fk.toLowerCase().split(';'); |
| | | list.seekgroupid=Info.seekgroupid.toLowerCase().split(';'); |
| | | list.seekgroupid=Info.seekgroupid.toLowerCase().split(';');//接收自身字段名 |
| | | list._pop_json={}; |
| | | list.parm=list.wheres.sugg.split(';'); |
| | | list.wheres.ft = Info.ft; |
| | | this.Collection[Cid] = list; |
| | | } |
| | | ,PremissField:function (Info,wheres) {//个别窗体需要 如:18类型表号 |
| | | if (wheres != null && wheres != '') { |
| | | let sPremissField = Info.spremissfield || '';//自身条件字段名 |
| | | let dPremissField = Info.dpremissfield || '';//外表条件字段名 |
| | | wheres.formType = Info.ftformtype || 0;//表号的窗体类型 |
| | | wheres.parameter = ""; |
| | | if (sPremissField != '' && dPremissField != '') { |
| | | let a = []; |
| | | sPremissField = sPremissField.split(";"); |
| | | dPremissField = dPremissField.split(";"); |
| | | for (let d = 0; d < dPremissField.length; d++) { |
| | | a.push(dPremissField[d] + "=" + $("#" + sPremissField[d]).val() || ''); |
| | | } |
| | | wheres.parameter = a.join(";"); |
| | | } |
| | | } |
| | | } |
| | | , getGrideParam: function (tg, elem, col, Cid,callback) {//格线需要到的属性 |
| | | var list = {}; |
| | |
| | | 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 + ')'); |
| | |
| | | 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) { |
| | |
| | | "data": '',//.data.item //解析数据列表 |
| | | }; |
| | | } |
| | | for(var i=0;i<res.count;i++){ |
| | | var obj=res.data[i]; |
| | | for(var o in obj) { |
| | | if (obj[o] != null && obj[o] != "" && isNaN(obj[o])) { |
| | | //console.log(obj[o]); |
| | | if ((obj[o] + "").match(/<("[^"]*"|'[^']*'|[^'">])*>/g) && (obj[o] + "").match(/<a[^>]*>|<img[^>]*>/g) == null) { |
| | | obj[o + "_escape"] = obj[o]; |
| | | obj[o] = (obj[o] + "").replace(/</g, "<").replace(/>/g, ">"); |
| | | } |
| | | } |
| | | //--- 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); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | if (res instanceof Array) { |
| | | return { |
| | | "code": 0,//res.status, //解析接口状态 |
| | |
| | | } else { |
| | | //执行重载 |
| | | this.Env42table[list.id].reload({ |
| | | cols: [cols]//标题数组 |
| | | cols: [cols]//标题数组 |
| | | ,page: { |
| | | curr: 1 //重新从第 1 页开始 |
| | | } |
| | |
| | | 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 |
| | | getSelect31(list.seekgroupid[i]); |
| | |
| | | } |
| | | } |
| | | } 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') { |
| | | V.push((data[fileds[r]] != null ? data[fileds[r]] : '')); |
| | | //处理值是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"]; |
| | | } |
| | | if (arrayExpr[fileds[r]] != undefined) { |
| | | //表示这个值是加密了,需要注明 |
| | | newExpr[list.to[r]] = value; |
| | | } |
| | | V.push(value); |
| | | } else { |
| | | V.push(''); |
| | | } |
| | | } |
| | | if (list.gridIndex != null) { |
| | | var gd = Grids[list.gridIndex]; |
| | | // var row=gd.Rows[list.rowid];//三点弹出的所在行 |
| | | gd.threePop(V, list.to, GT.rowIDp, null, -1, null, null, list.Tfield);//赋值给页面 |
| | | // 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 != "") { |
| | | var ed = gd.Cols[list.Tfield].emptyrefdata.toLowerCase().split(";"); |
| | | for (var i = 0; i < ed.length; i++) { |
| | | gd.SetValue(GT.rowIDp, ed[i], "", 0); |
| | | gd.RefreshCell(GT.rowIDp, ed[i]); |
| | | } |
| | | } |
| | | //增加传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 = ""; |
| | | } |
| | |
| | | this.table42 = layui.table; |
| | | this.isControl42(); |
| | | } else { |
| | | var that=this; |
| | | $("<link>").attr({ |
| | | rel: "stylesheet", |
| | | type: "text/css", |
| | | href: "/layui/css/layui.css" |
| | | }).appendTo("head"); |
| | | $.getScript('/layui/layui.all.js', function () { |
| | | if (typeof layui == 'undefined') { |
| | | console.log('获取42控件插件层失败!'); |
| | | return null; |
| | | } |
| | | that.table42 = layui.table; |
| | | that.isControl42(); |
| | | }) |
| | | // var that=this; |
| | | // let u=location.hostname; |
| | | // let url=location.port; |
| | | // try { |
| | | // $("<link>").attr({ |
| | | // rel: "stylesheet", |
| | | // type: "text/css", |
| | | // href: u+":"+url + "/layui/css/layui.css" |
| | | // }).appendTo("head"); |
| | | // $.getScript(u+":"+url + '/layui/layui.all.js', function () { |
| | | // if (typeof layui == 'undefined') { |
| | | // console.log('获取42控件插件层失败!'); |
| | | // return null; |
| | | // } |
| | | // that.table42 = layui.table; |
| | | // that.isControl42(); |
| | | // }) |
| | | // }catch (e) { |
| | | // console.log('获取layui插件信息出现错误'); |
| | | // } |
| | | } |
| | | } |
| | | , isControl42: function () { |
| | |
| | | var empty = panInfo[elem.id].emptyrefdata.toLowerCase();//清空关联字段 |
| | | empty = empty.split(';'); |
| | | for (var e = 0; e < empty.length; e++) { |
| | | if (panInfo[empty[e]].controltype == 43) {//43控件清空 |
| | | if (panInfo[empty[e]]!=null && panInfo[empty[e]].controltype == 43) {//43控件清空 |
| | | $("#" + empty[e]).val('').trigger('change'); |
| | | continue; |
| | | } |
| | |
| | | } |
| | | get.timer = setTimeout(function () { |
| | | get.ShowDivForPanel(elem, panInfo[elem.id], rod); |
| | | }, 2000); |
| | | }, 1000); |
| | | }); |
| | | } |
| | | }; |
| | | //执行收款显示二维码或退款 |
| | | function OpenPayAndRefund(doccode,state,type){ |
| | | if(state==1){//是否执行 |
| | | if(type=="pay"){//显示二维码 |
| | | var url = "/general/onlinePayment/payment.jsp?orderNo=" + doccode; |
| | | 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(); |
| | | 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; |
| | | } |
| | | } |
| | | layer.closeAll(); |
| | | getReductionURL(); |
| | | } |
| | | }); |
| | | }else if(type="refund"){//退款处理 |
| | | $.ajax({ |
| | | url: "/abc/refund.do?orderNo="+doccode, |
| | | type: "get", |
| | | async: false, |
| | | success: function (res) { |
| | | layer.msg(res.msg, {icon: (res.state==0?1:3)}, function(){ |
| | | getReductionURL(); |
| | | }); |
| | | }, error: function (e, h, a) { |
| | | alert(e.responseText ); |
| | | } |
| | | }); |
| | | } |
| | | }else if(state==0){//确定 |
| | | var bol=false; |
| | | var time= setInterval(function(){ |
| | | try { |
| | | if(!bol){ |
| | | save(3); |
| | | bol=true; |
| | | if (envt.ws != null) { |
| | | envt.ws.close(); |
| | | } |
| | | }catch (e) { |
| | | console.log(e) |
| | | } |
| | | if(bol){ |
| | | time=null; |
| | | 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(); |
| | | } |
| | | },500) |
| | | }, error: function (e, h, a) { |
| | | layer.alert(e.responseText,function (){location.reload();} ); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | //针对收款二维码界面关闭的处理 xin 2021-9-8 10:09:33 |
| | | function getReductionURL(){ |
| | | var url=location.search; |
| | | var parm=Base64().decode(url.substring(1,url.length)); |
| | | if(parm.indexOf("&onlinePay=1")!=-1){ |
| | | parm=parm.replace("&onlinePay=1",""); |
| | | parm="?"+encodeText(parm); |
| | | location.replace(location.href.split("?")[0]+parm); |
| | | }else{ |
| | | location.reload(); |
| | | function getReductionURL(doc){ |
| | | var url = location.search; |
| | | var parm = Base64().decode(url.substring(1, url.length)); |
| | | if (parm.indexOf("&onlinePay=1") != -1) { |
| | | parm = parm.replace("&onlinePay=1", ""); |
| | | parm = "?" + encodeText(parm); |
| | | location.replace(location.href.split("?")[0] + parm); |
| | | } else { |
| | | if (doc != null) { |
| | | let docUrl = '?' + encodeText('doccode=' + doc); |
| | | location.replace(location.href.split("?")[0] + docUrl); |
| | | } else { |
| | | location.reload(); |
| | | } |
| | | } |
| | | layer.closeAll(); |
| | | } |
| | | //批量上传物料主数据主图片 xin 2021-9-17 09:51:37 |
| | | function Batchupload(){ |
| | | var url="/general/batchUpload/uploadIndex.jsp"; |
| | | layui.layer.open({ |
| | | type: 2, |
| | | area: ['850px', '500px'], |
| | | title: false, |
| | | content: url, |
| | | cancel: function (index, layero) { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function progressBar(e,value){ |
| | | top.$(e).jQMeter({ |
| | | goal: '100', |
| | | raised: value+'', |
| | | height: '24px', |
| | | barColor:'#6699cc', |
| | | bgColor: '#CCC' |
| | | }); |
| | | } |
| | | function formatDate (str, format) { |
| | | var d = new Date(toDate(str));//4位的数字不作为日期处理,直接返回 |
| | | if (d==null||d.getFullYear() == '1970') return str; |
| | | var o = { |
| | | "M+": d.getMonth() + 1, //month |
| | | "d+": d.getDate(), //day |
| | | "H+": d.getHours(), //hour |
| | | "m+": d.getMinutes(), //minute |
| | | "s+": d.getSeconds(), //second |
| | | "q+": Math.floor((d.getMonth() + 3) / 3), //quarter |
| | | "S+": d.getMilliseconds() //millisecond |
| | | } |
| | | var format = format ? format : "yyyy-MM-dd HH:mm"; |
| | | if (/(y+)/.test(format)) { |
| | | format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); |
| | | } |
| | | for (var k in o) { |
| | | if (new RegExp("(" + k + ")").test(format)) { |
| | | if (RegExp.$1 == "S") { |
| | | format = format.replace(RegExp.$1, "000"); |
| | | } else { |
| | | format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); |
| | | } |
| | | } |
| | | } |
| | | return format; |
| | | }; |
| | | function toDate (dateStr) { |
| | | var regex1 = /^\d{4}\/\d{1,2}\/\d{1,2}$|^\d{1,2}\/\d{1,2}\/\d{4}$|^\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$|^\d{1,2}\/\d{1,2}\/\d{4} \d{1,2}:\d{1,2}:\d{1,2}:\d{1,3}$/; |
| | | var regex2 = /^\d{4}-\d{1,2}-\d{1,2}$/; |
| | | var regex3 = /^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}$/; |
| | | var regex4 = /^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/; |
| | | var regex5 = /^\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}.\d{1,3}$/; |
| | | var regex6 = /^\d{4}-\d{1,2}$/; |
| | | var regex7 = /^\d{4}$/; |
| | | if (regex1.test(dateStr)) { |
| | | return new Date(dateStr); |
| | | } else if (regex2.test(dateStr)) { |
| | | var arr = dateStr.split("-"); |
| | | return new Date(arr[0], arr[1] - 1, arr[2]); |
| | | } else if (regex3.test(dateStr)) { |
| | | var arr1 = dateStr.split(" "); |
| | | var arr2 = arr1[0].split("-"); |
| | | var arr3 = arr1[1].split(":"); |
| | | return new Date(arr2[0], arr2[1] - 1, arr2[2], arr3[0], arr3[1]) |
| | | } else if (regex4.test(dateStr)) { |
| | | var arr1 = dateStr.split(" "); |
| | | var arr2 = arr1[0].split("-"); |
| | | var arr3 = arr1[1].split(":"); |
| | | return new Date(arr2[0], arr2[1] - 1, arr2[2], arr3[0], arr3[1], arr3[2]) |
| | | } else if (regex5.test(dateStr)) { |
| | | var arr1 = dateStr.split(" "); |
| | | var arr2 = arr1[0].split("-"); |
| | | var arr3 = arr1[1].split(":"); |
| | | return new Date(arr2[0], arr2[1] - 1, arr2[2], arr3[0], arr3[1], arr3[2].replace(/\.\d+/g, "")); |
| | | } else if (regex6.test(dateStr)) { |
| | | var arr2 = dateStr.split("-"); |
| | | return new Date(arr2[0], arr2[1] - 1) |
| | | } else { |
| | | var art2= timeFormat(dateStr,"yyyy-MM-dd HH:mm"); |
| | | return art2; |
| | | } |
| | | }; |
| | | function timeFormat(timeStr,formatStr){ |
| | | if(timeStr==""||timeStr==null||!isNaN(timeStr)){ |
| | | return null; |
| | | } |
| | | var arr = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; |
| | | var arrtime = timeStr.split(" "); |
| | | var str = arrtime[2];//年 |
| | | str += "-"; |
| | | var flag=false; |
| | | for(var i=0;i<arr.length;i++){//月 |
| | | if(timeStr.indexOf(arr[i])!=-1){ |
| | | str += (i+1)>=10?(i+1):"0"+(i+1); |
| | | flag=true; |
| | | } |
| | | } |
| | | if(!flag){//不存在月份,表示不是这种格式的日期 |
| | | return timeStr; |
| | | } |
| | | str += "-"; |
| | | str += arrtime[1].substring(0,2);//日 |
| | | if(formatStr == "yyyy-MM-dd"){ |
| | | return str; |
| | | } |
| | | str += " "; |
| | | var hh = arrtime[3].substring(0,2);//小时 |
| | | if(formatStr == "yyyy-MM-dd HH:mm"){//小时分钟 |
| | | if(timeStr.indexOf("PM")!=-1){ |
| | | str += (parseInt(hh)+12); |
| | | str += arrtime[3].substring(2,5); |
| | | }else{ |
| | | str += arrtime[3].substring(0,5); |
| | | } |
| | | } |
| | | if(formatStr == "yyyy-MM-dd HH:mm:ss"){//小时分钟秒 |
| | | if(timeStr.indexOf("PM")!=-1){ |
| | | str += (parseInt(hh)+12); |
| | | str += arrtime[3].substring(2,9); |
| | | }else{ |
| | | str += arrtime[3].substring(0,9); |
| | | } |
| | | } |
| | | return str; |
| | | } |
| | | $(function () { |
| | | //单据窗体头部固定 xin 2020-10-26 17:23:58 |
| | | if (isTopFixed()) { |
| | |
| | | //------下面的是关于42控件的处理------ |
| | | control42DivData.loading(); |
| | | //---end---关于42控件的处理结束------ |
| | | |
| | | //---------47控件类型加载---------- xin 2022-4-27 10:58:12 |
| | | $(".progressBar47").each(function () { |
| | | let id = $(this).data("id"); |
| | | let value = $("#" + id).val();//获取控件Id的value值 |
| | | value = value != null ? value : 0; |
| | | if (isNaN(value) || value == "") {//不全是数字 |
| | | value = 0; |
| | | } |
| | | if (value > 0 ) {//这种情况是1表示100%的值,那么0.1*100=10 // && value < 1 |
| | | value = value * 100; |
| | | } |
| | | progressBar(this, value); |
| | | }) |
| | | |
| | | }) |