| | |
| | | var version = 0;// 版本号 |
| | | var pwdCallBack = null;// 密码输入点击确定后回调函数 |
| | | var obj22 = null;// 22类型传值对象 |
| | | var shx=false; |
| | | var leftWidth="0"; |
| | | var gridId=[]; |
| | | var shx = false; |
| | | var leftWidth = "0"; |
| | | var gridId = []; |
| | | //var uploadObj = null; |
| | | //var edit=''; |
| | | var pic={};// 格线附件上传参数属性 |
| | | var rsakey={ |
| | | pubkey:"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRupiYcKVGGUtDBDoR1t/1zm3ZtZgnte39iTJW6hlqjdY0UagKjpNiIv7J6XjtgfX7SgsR4AWnivqQHAICIvdPKfGZZzIs62OQ19MqrDTMoB/LvK5teNWhClv23WMUfRbP+EHgprT6hTw8U5apw1IB6i/y57NkLav792wiYBYRU4X45NoTaT+aiTSLFEflbfm94EXnhSS3vFkBmrZGy5BRNI8gmzafroslGx2Hk90CqlNdeKYxgZQ6xtvj+u33yrszWvPT6F9fsJT8aMjtvH050iYKRVct+x6Q7VRJgCI4MgvAexnTKdxW54YzvXCuO5bDiy5la7CgerWkTAq9dzXwIDAQAB" |
| | | var pic = {};// 格线附件上传参数属性 |
| | | var rsakey = { |
| | | pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRupiYcKVGGUtDBDoR1t/1zm3ZtZgnte39iTJW6hlqjdY0UagKjpNiIv7J6XjtgfX7SgsR4AWnivqQHAICIvdPKfGZZzIs62OQ19MqrDTMoB/LvK5teNWhClv23WMUfRbP+EHgprT6hTw8U5apw1IB6i/y57NkLav792wiYBYRU4X45NoTaT+aiTSLFEflbfm94EXnhSS3vFkBmrZGy5BRNI8gmzafroslGx2Hk90CqlNdeKYxgZQ6xtvj+u33yrszWvPT6F9fsJT8aMjtvH050iYKRVct+x6Q7VRJgCI4MgvAexnTKdxW54YzvXCuO5bDiy5la7CgerWkTAq9dzXwIDAQAB" |
| | | }; |
| | | let arrayFileType_Panel = {};//保存上传返回的附件uuid;seq及文件类型 |
| | | let arrayFileSeq_Panel = {};//保存上传返回的附件uuid;seq及文件名称,用于删除时根据文件名称匹配到seq |
| | | let fileUploadCount_Panel = 0;//保存附件总数 |
| | | let formid_Panel; |
| | | let paramExprs = [];//保存功能链接参数值是密文的参数名称 |
| | | function encryptFun(value) { |
| | | var encrypt = new JSEncrypt(); |
| | | encrypt.setPublicKey(rsakey.pubkey); |
| | | return encrypt.encrypt(value); |
| | | } |
| | | |
| | | //拼接附件url |
| | | function getAttachmentUrl(staticUrl,formid,unid,domain,dbid,isShowOrgPic,width,height,fileExt,isDownLoad){ |
| | | function getAttachmentUrl(staticUrl, formid, unid, domain, dbid, isShowOrgPic, width, height, fileExt, isDownLoad) { |
| | | // if (staticUrl != null && staticUrl != "") { |
| | | // if (isDownLoad) { |
| | | // return unid + "_" + dbid + "_" + formid + "_" + fileExt; |
| | |
| | | uploadAsync: false, // bool是否多文件批量上传将并行异步/。默认为true |
| | | showCaption: false,//是否显示被选文件的简介 |
| | | showBrowse: false,//是否显示文件浏览按钮 |
| | | showBatchDownload:true,//显示批量下载按钮 |
| | | showBatchDownload: true,//显示批量下载按钮 |
| | | showUpload: false,//是否显示上传按钮 |
| | | showCancel: false,//是否显示取消按钮 |
| | | showRemove: false,//是否显示移除按钮 |
| | | showDrag:false,//是否显示拖动按钮 |
| | | showDrag: false,//是否显示拖动按钮 |
| | | showClose: false,//是否显示关闭按钮 |
| | | multiple: id.type == 9 ? false : true,//by danaus 2024-02-19 17:39 |
| | | dropZoneEnabled: true, //是否显示拖拽区域 |
| | | browseOnZoneClick: false, //布尔值,是否在点击预览区域时触发文件浏览/选择。默认为false |
| | | showUploadedThumbs: true, // 是否在预览窗口中持续显示已经上传的文件缩略图(用于ajax上传),直到按下删除/清除按钮 |
| | |
| | | isNine: false, // 19类型就为false,9类型就为true,下面有判断 |
| | | validateInitialCount: false, // 是否包括初始预览文件数(服务器上传文件)验证minfilecount和maxfilecount。默认为false. |
| | | overwriteInitial: true, // 是否要覆盖初始预览内容和标题设置 |
| | | initialPreviewAsData:true, |
| | | allowedFileExtensions:null,//允许上传的文件扩展名列表。默认情况下设置为 null |
| | | initialPreviewAsData: true, |
| | | allowedFileExtensions: null,//允许上传的文件扩展名列表。默认情况下设置为 null |
| | | dropZoneTitle:'点击或拖拽文件', |
| | | dropZoneClickTitle:'', |
| | | layoutTemplates : { |
| | |
| | | fileInputId.fileinput('upload'); |
| | | }).on('filebatchuploadsuccess', function(event, data) { |
| | | // 此事件仅在ajax上传且文件批量上传成功之后触发 |
| | | let tmp={}; |
| | | let oldKey=id.val();// 旧的值 |
| | | let newKey=data.response.uuid?data.response.uuid+";":""; // 新的值 |
| | | if(oldKey!=""){ |
| | | var keys=oldKey.split(";"); |
| | | for(var i=1;i<keys.length;i++){ |
| | | newKey=newKey.replace(";"+keys[i]+";",";"); |
| | | fileUploadCount_Panel += data.files.length; |
| | | arrayFileSeq_Panel = JSON.parse(data.response.seqMap); |
| | | arrayFileType_Panel = JSON.parse(data.response.fileExtMap); |
| | | let tmp = {}; |
| | | let oldKey = id.val();// 旧的值 |
| | | let newKey = data.response.uuid ? data.response.uuid + ";" : ""; // 新的值 |
| | | if (oldKey != "") { |
| | | var keys = oldKey.split(";"); |
| | | for (var i = 1; i < keys.length; i++) { |
| | | newKey = newKey.replace(";" + keys[i] + ";", ";"); |
| | | } |
| | | } |
| | | tmp.key=newKey; |
| | | tmp.key = newKey; |
| | | tmp.type=data.response.type; |
| | | tmp.filedId=name; |
| | | tmp.oldKey=oldKey; |
| | |
| | | data.thumbs.attr("data-key",JSON.stringify(tmp)); |
| | | } |
| | | // 格线调用 |
| | | if(g){ |
| | | let grid=g.id; |
| | | let obj=unid+";"+data.response.fileType;// by by danaus 2020/4/30 11:32 |
| | | grid.SetValue(g.row, g.col,obj,0); |
| | | if(g) { |
| | | let grid = g.id; |
| | | let obj = unid + ";" + data.response.fileType;// by danaus 2020/4/30 11:32 |
| | | grid.SetValue(g.row, g.col, obj, 0); |
| | | grid.RefreshCell(g.row, g.col); |
| | | } |
| | | }).on('filebeforedelete', function(event, params) { |
| | |
| | | }).on('filedeleted', function(event, key) { |
| | | // 在删除initialPreview内容集中的每个缩略图文件之后触发此事件 |
| | | // 格线调用 |
| | | debugger; |
| | | fileUploadCount_Panel--; |
| | | if (isGrid != null && isGrid == 'grid') { |
| | | if (g) { |
| | | let grid = g.id; |
| | |
| | | } else { // 面板 |
| | | let va = id.val(); |
| | | key = key.split(";")[1]; |
| | | delete arrayFileType_Panel[key]; |
| | | va = va.replace(";" + key, ""); |
| | | if (va.indexOf(";") < 0) { |
| | | va = ""; |
| | |
| | | } |
| | | }).on('filesuccessremove', function(event, val) { |
| | | // 使用缩略图删除按钮删除成功上传的缩略图后,会触发此事件 |
| | | if(val!=null && val.key!=null){ |
| | | let vals = val.key.split(";"); |
| | | let uuid; |
| | | let seq = 0; |
| | | if (vals.length > 1) { |
| | | uuid = val.key.split(";")[0]; |
| | | seq = val.key.split(";")[1]; |
| | | } |
| | | debugger; |
| | | if(val!=null && val.key!=null) { |
| | | let title = val.title;//文件名称,用于查找对应的seq |
| | | let delSeq = arrayFileSeq_Panel[title];//对应删除的seq |
| | | let uuid = val.key.split(";")[0]; |
| | | $.ajax({ |
| | | type: "POST", |
| | | dataType: 'json', |
| | | url: '/attachment/deleteOwnerAttachment.do?type=' + val.type + '&unid=' + uuid + '&seq=' + seq, // 删除路径 |
| | | url: '/attachment/deleteOwnerAttachment.do?formid=' + formid_Panel + '&fieldid=' + val.filedId + '&ishd=1&type=' + val.type + '&unid=' + uuid + '&seq=' + delSeq, // 删除路径 |
| | | success: function (data) { |
| | | let newUid = val.oldKey == "" ? "" : val.oldKey.replace(";" + seq, ""); |
| | | fileUploadCount_Panel--; |
| | | delete arrayFileSeq_Panel[title]; |
| | | delete arrayFileType_Panel[uuid + ";" + delSeq]; |
| | | // let newUid = val.oldKey == "" ? "" : val.oldKey.replace(";" + delSeq, ""); |
| | | let newUid = val.key == "" ? "" : val.key.replace(";" + delSeq, "");//by danaus 2024-02-21 16:56 |
| | | id.val(newUid); |
| | | } |
| | | }); |
| | |
| | | var isReadOnly = false; |
| | | try { |
| | | // 上传附件需要的参数 |
| | | formid_Panel = formid; |
| | | var param = {}; |
| | | var panelautoSave = "";//标记是否为单据 |
| | | var readerUserCodes = $('#readerusercodes').val(); |
| | |
| | | //$.messager.defaults = { ok: "是", cancel: "否" }; |
| | | $.messager.confirm('提示', mes, function(r) { |
| | | if (r) { |
| | | funcLink$(f, t, sfs, lfs, lk, sd, ld, isp, ef, ref, clo, |
| | | autoSave, sortid, messageTip, mes,rowid); |
| | | funcLink$(f, t, sfs, lfs, lk, sd, ld, isp, ef, ref, clo, |
| | | autoSave, sortid, messageTip, mes, rowid); |
| | | $('.panel-tool-close').show(); |
| | | }else { |
| | | closeLoading(); //更新客户状态的取消 |
| | |
| | | "formid": f, |
| | | "param": paramVa, |
| | | "paramFields": lfs.join(";"),//值对应该的字段列表 |
| | | "paramExprs": paramExprs.join(";"),//值对应该的字段权限=0列表 |
| | | "disableDuplicateSubmitUUID": systemUuid.uuid //by danaus 2019/11/22 11:12 |
| | | }, |
| | | beforeSend: function (XMLHttpRequest) { |
| | |
| | | // console.log("faceswip:"+JSON.stringify(obj)) |
| | | top.layIframeWindow.faceSwipingInit(data); |
| | | top.layeerFace=layero; |
| | | } |
| | | }); |
| | | } else if (data.errcode != null && data.errcode == 0) { |
| | | $.messager.confirm('提示', "拉取企业微信标签已同步", function(r) { |
| | | if(r){ |
| | | location.reload(); |
| | | }else{ |
| | | location.reload(); |
| | | } |
| | | }); |
| | | }else { |
| | |
| | | function editCustomControl(){ |
| | | let formid = formId; |
| | | let formtype = formType; |
| | | let docCode = getDoc("doccode", ".value"); |
| | | let docCode = ''; |
| | | if (typeof getDoc !="undefined") { |
| | | getDoc("doccode", ".value"); |
| | | } |
| | | let queryString = ""; |
| | | let url = "/general/CustomControl/editLayout.html?formId=" + formid + "&formType=" + formtype + "&docCode=" + docCode; |
| | | top.addTab('自定义控件布局', '', '', '', url, '', ''); |
| | | let url = "/general/CustomControl/editLayout.html?formId=" + formid + "&formType=" + formtype + "&docCode=" + docCode+"&tabIndex="+top.tabindex; |
| | | top.addTab(top.layoutTitle+'布局', '', '', '', url, '', ''); |
| | | } |
| | | /** |
| | | * top页面info按钮执行函数 |
| | |
| | | } |
| | | return str; |
| | | } |
| | | function getValue(str,format,row) { // 获取页面值 |
| | | var t; |
| | | |
| | | function getValue(fieldId, format, row) { // 获取页面值 |
| | | let value; |
| | | try { |
| | | t = getDoc(str.toLowerCase(), ".value"); |
| | | //TODO 是实现面板需要根据权限是否为0取不同的值 by danaus 2024-03-08 14:53 |
| | | value = getDoc(fieldId.toLowerCase(), ".value"); |
| | | let value_expr = getDoc(fieldId.toLowerCase() + "_expr", ".value"); |
| | | let value_expr_val = getDoc(fieldId.toLowerCase() + "_expr_val", ".value"); |
| | | if (value_expr != undefined && value_expr == 0) { |
| | | value = value_expr_val; |
| | | paramExprs.push(fieldId.toLowerCase()); |
| | | } |
| | | } catch (e) { |
| | | t=undefined; // by danaus 出现异常赋值 作为判断识别 |
| | | value = undefined; // by danaus 出现异常赋值 作为判断识别 |
| | | } |
| | | if(t==null){ // 只有是这种情况才需要继续向下查找 by danaus 原则:如果页面上有这个字段定义,不管它是什么值,都把它替换,如果没有这个字段,就继续向下查找,直到没有 则不用替(传什么就是什么) |
| | | if (value == null) { // 只有是这种情况才需要继续向下查找 by danaus 原则:如果页面上有这个字段定义,不管它是什么值,都把它替换,如果没有这个字段,就继续向下查找,直到没有 则不用替(传什么就是什么) |
| | | |
| | | if (typeof (mygrid) != "undefined") { |
| | | try { |
| | | if(row==undefined){ |
| | | var tempRow=mygrid.getFristRow(1);//再判断一次,以确定这个字段是否存在于表格,存在才需要提示 |
| | | if(tempRow!=null&&tempRow[str.toLowerCase()]!=undefined) { |
| | | if (row == undefined) { |
| | | var tempRow = mygrid.getFristRow(1);//再判断一次,以确定这个字段是否存在于表格,存在才需要提示 |
| | | if (tempRow != null && tempRow[fieldId.toLowerCase()] != undefined) { |
| | | alert("请从表格选中需要执行的行"); |
| | | return false; |
| | | } |
| | | } |
| | | var d=t; // 保存原值 |
| | | if(row!=undefined){ |
| | | t = (row[str.toLowerCase()+"Link"]!==undefined)?row[str.toLowerCase()+"Link"]:((row[str.toLowerCase()]==undefined)?null:row[str.toLowerCase()]); |
| | | }else{ |
| | | t=mygrid.getField(str.toLowerCase()); |
| | | let orgValue = value; // 保存原值 |
| | | if (row != undefined) { |
| | | value = (row[fieldId.toLowerCase() + "Link"] !== undefined) ? row[fieldId.toLowerCase() + "Link"] : ((row[fieldId.toLowerCase()] == undefined) ? null : row[fieldId.toLowerCase()]); |
| | | if (row[fieldId.toLowerCase() + "_expr"] != undefined && row[fieldId.toLowerCase() + "_expr"] == 0) { |
| | | //密文,取_expr_val的值 |
| | | value = row[fieldId.toLowerCase() + "_expr_val"]; |
| | | paramExprs.push(fieldId.toLowerCase()); |
| | | } |
| | | } else { |
| | | value = mygrid.getField(fieldId.toLowerCase()); |
| | | } |
| | | if (t==null&&d==null) return str; |
| | | if (value == null && orgValue == null) return fieldId; |
| | | } catch (e) { |
| | | return str; |
| | | return fieldId; |
| | | } |
| | | } |
| | | return t; |
| | | }else{ |
| | | if(t=='null'){t="";} |
| | | return t; |
| | | return value; |
| | | }else { |
| | | if (value == 'null') { |
| | | value = ""; |
| | | } |
| | | return value; |
| | | } |
| | | |
| | | } |
| | |
| | | },'json') |
| | | }) |
| | | |
| | | /** |
| | | * css样式编辑器 xin 2024-1-29 10:34:34 |
| | | * @param grid |
| | | * @param panel |
| | | */ |
| | | //getTextCssEdit(option)//option是格线当前行触发的对象可以获取值和返回 |
| | | var textCssOption={}; |
| | | function getTextCssEdit(option){ |
| | | if (option && option.close) {//关闭 |
| | | if (option.type == 1 && option.value != null) {//给面板赋值 |
| | | $doc(textCssOption.id).val(option.value); |
| | | } |
| | | layer.closeAll(); |
| | | return false; |
| | | } |
| | | let cssText = ""; |
| | | let type = 0; |
| | | let pindex = 0; |
| | | if (typeof (panIndex) != "undefined") { |
| | | pindex = panIndex; |
| | | } |
| | | textCssOption = option; |
| | | if (option && option.id) {//获取值(面板) |
| | | if (option.index != null) {//取对应元素的控件值 |
| | | panIndex = option.index; |
| | | cssText = $doc(option.id).val(); |
| | | } else { |
| | | cssText = $("#" + option.id).val(); |
| | | } |
| | | type = 1;//面板控件 |
| | | } |
| | | if(option.grid || option.value){//获取值(格线) |
| | | cssText=option.value; |
| | | } |
| | | layer.open({ |
| | | type: 2, |
| | | area: ['400px', '780px'], |
| | | closeBtn: 0, |
| | | isOutAnim: false, |
| | | title: false, |
| | | resize: false, |
| | | fixed: false, |
| | | shade: 0.6, |
| | | skin: 'layui-layer-molv', |
| | | shadeClose: false, // 点击遮罩区域,关闭弹层, |
| | | content: encodeURL('/general/textCssEdit/textCssEdit.html?cssText=' + cssText + '&type=' + type + '&grid=' + option.grid),//cssText有值时候可以传过去 |
| | | move: false, |
| | | success: function (layero, index) { |
| | | // createFormElement(); |
| | | }, cancel: function (index, layero) { |
| | | panIndex = pindex; |
| | | }, end: function () { |
| | | panIndex = pindex; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function checkVersion(){ |
| | | setTimeout(checkVersion, 86400000); |
| | | setTimeout(checkVersion2, 86400000);//24小时调用一次 |