| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316 |
-
- /**
- *
- * @param param 上传的参数,例子:
- * var parameters = {
- * configId:'bxgx_cbgl_plxgzsfs_xgmd_i',//必填项目,FW_IMPEXP的配置ID
- * filePath:'C:/Documents and Settings/liguocai/桌面/excel643657087605952371.xls'//必填项目,上传文件的路径
- * _commDo:'workflowProxyService.doWork',//非必填项目,上传的后续服务
- * } ;
- * @param uploadEvents JSON类型,包含上传过程中的回调函数,例如,上传前的校验onStart,上传完成后的回调函数onComplete,
- * 上传过程中发生错误的回调函数onFail等等,后面可能会扩充更多的事件。
- * 例子:{onComplete:'myFunction1',
- * onFail:'myFunction2',
- * onStart:'myFunction3'}
- * 格式就是 事件名:函数名
- * 各个事件的解析:
- * 1. onComplete,如果上传成功完毕,调用该函数
- * 2. onFail,如果上传过程发生异常,调用该函数
- * 3. onStart,上传之前的检验函数,返回true往下执行applet,返回false直接返回,不往下执行
- *
- * @returns
- */
- function initUploadApplet(uploadEvents,appletId){
- var uploadFileAppletId = appletId||'UploadFileApplet';
- var attributes = {id : uploadFileAppletId,
- code:'UploadFileApplet',
- archive: contextPath+'/applet/UploadFileApplet.jar',
- width:710,
- height:40,
- align:'middle'};
- var parameters = { url: _getUrl(),
- MAYSCRIPT:true,
- onGetJsessionid:uploadEvents.onGetJsessionid,
- onGetParams:uploadEvents.onGetParams,
- onStart:uploadEvents.onStart,
- onFail:uploadEvents.onFail,
- onComplete:uploadEvents.onComplete,
- cache_option:"NO"
- } ;
- _setParameters(parameters);
- //要求JDK版本1.5或以上
- var version = '1.5';
- deployJava.runApplet(attributes, parameters, version);
- //获取上传的URL
- function _getUrl(){
-
- var url = window.location.toString();
- var count = 0;
- var pos = 0;
- for(var i=0;i<url.length;i++){
- if(url.charAt(i) == "/"){
- count++;
- }
- if(count == 4){
- pos = i;
- break;
- }
- }
- return url.substring(0,pos) + "/CommUpload.do";
- }
- function _setParameters(params){
- for(var key in params){
- if(null == params[key]){
- delete params[key];
- }
- }
- }
- }
- function setProgressBar(num, id){
- if(num<0 || num>100){
- return;
- }
- var uploadAppletId = id || 'UploadFileApplet';
- document.getElementById(uploadAppletId).setProgressBar(num);
- }
- /**
- * 把JSON对象的里面值转换成字符串,供applet上传使用
- * @param obj JSON对象
- * @returns
- */
- function setJSONAllStr(obj){
- for(var key in obj){
- if((typeof obj[key])!='string'){
- obj[key] = obj[key].toString();
- }
- }
- return obj;
- }
- /**
- * 功能:从初始化文件(.ini)中读取字符串型设置值
- * @param filename 字符串,必填,指定初始化文件的名称,包含路径
- * @param section 字符串,必填,指定要得到的值所在的节
- * @param key 字符串,必填,指定要得到的值的名称,不用区分大小写
- * @param defaultValue 字符串,必填,当指定的文件、节名、项目名不存在时,函数返回该参数指定的值返回值
- * @param id 字符串,非必填,applet的id,缺省为'UploadFileApplet'
- * @returns 函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值;
- * 如果指定的文件、节名、项目名不存在,函数返回default参数指定的缺省值;
- * 如果发生错误,函数返回空字符串;
- * 如果任何参数的值为NULL,ProfileString()函数返回NULL。
- */
- function ProfileString ( filename, section, key, defaultValue,id) {
- //如果任何参数的值为NULL,ProfileString()函数返回NULL
- if(null == filename || null == section || null == key || null == defaultValue){
- return null;
- }
- var applet = null;
- if(null == id){
- applet = _getReadWriteApplet();
- }else{
- applet = document.getElementById(id);
- }
- if(null == applet){
- alert("找不到applet,无法读写文件");
- return "";
- }
- //文件不存在返回默认值
- if(false == applet.isFileExists(filename)){
- return defaultValue;
- }
- var lines = applet.readFile(filename);
- //读文件出错返回空字符串
- if(null == lines){
- return "";
- }
- var myCRLF = "_SINOBESTCRLF_";
- lines = lines.split(myCRLF);
- var DIVIDER = "_SINOBESTPARSEFILEDIVIDER_";
- var data = _parseFile(lines);
- //JSON的KEY都是大写格式,转换成大写查询数据
- if(null == data[section+DIVIDER+key.toUpperCase()]){
- //如果指定的文件、节名、项目名不存在,函数返回default参数指定的缺省值
- return defaultValue;
- }else{
- //函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值
- return data[section+DIVIDER+key.toUpperCase()];
- }
-
- //将ini文件转换成JSON对象
- function _parseFile(lines){
- var posSectionBeg = 0;
- var posSectionEnd = 0;
- var posEqual = 0;
- var section = "";
- var key = "";
- var value = "";
- var rtn = {};
- for(var i=0,len=lines.length;i<len;i++){
- posSectionBeg = lines[i].indexOf("[");
- posSectionEnd = lines[i].indexOf("]");
- posEqual = lines[i].indexOf("=");
- if(-1!=posSectionBeg && -1!=posSectionEnd){
- section = lines[i].substring(posSectionBeg+1,posSectionEnd);
- }else if(-1 != posEqual){
- key = $.trim(lines[i].substring(0,posEqual));
- value = $.trim(lines[i].substring(posEqual+1));
- rtn[section+DIVIDER+key.toUpperCase()] = value;//key作为大写保存
- }
- }
- return rtn;
- }
- /**
- * 功能:获取有读写本地文件能力的Applet
- * @returns 如果找到,则返回相应的applet对象,否则返回null
- */
- function _getReadWriteApplet(){
- //有读写本地文件能力的applet列表
- var appletIds = ["UploadFileApplet","DownloadFileApplet"];
- var applet = null;
- for(var i=0,len=appletIds.length;i<len;i++){
- if(null != document.getElementById(appletIds[i])){
- applet = document.getElementById(appletIds[i]);
- break;
- }
- }
- return applet;
- }
- }
- /***
- * 功能:设置初始化文件中指定项的值。
- * @param filename 字符串,必填,指定初始化文件的名称,可以包括路径,省略路径时,该函数按操作系统的标准路径搜索指定文件
- * @param section 字符串,必填,指定要设置的值所在的节
- * @param key 字符串,必填,指定要设置的值的名称,不用区分大小写
- * @param value 字符串,必填,指定要设置项的值
- * @param id 字符串,非必填,applet的id,缺省为'UploadFileApplet'
- * @returns 返回值 数字
- * 函数执行成功时返回1,
- * 指定的文件未找到或指定的文件不能访问时函数返回-1。
- * 如果任何参数的值为NULL,SetProfileString()函数返回NULL
- */
- function SetProfileString(filename, section, key,value,id){
- if(null == filename || null == section || null == key || null == value){
- return null;
- }
-
- var applet = null;
- if(null == id){
- applet = _getReadWriteApplet();
- }else{
- applet = document.getElementById(id);
- }
- if(null == applet){
- alert("找不到applet,无法读写文件");
- return "";
- }
-
- //applet返回一个字符串数组,但这个数组只能访问length属性,元素,但是不能使用splice等函数
- //这个数组其实JAVA中数组,所以没有JS数组的方法。
- var lines = applet.readFile(filename);
- if(null == lines){
- return -1;
- }
-
- //转换为JS的数组
- var myCRLF = "_SINOBESTCRLF_";
- var arrLines = lines.split(myCRLF);
- var head = "[" + section + "]";
- var newLine = key + " = " + value;
- var isSectionExist = false;
- var posSection = -1;
- var pos = -1;
- //判断section 是否存在,如果存在则获取所在行数写入posHead
- for(var i=0,len=arrLines.length;i<len;i++){
- pos = arrLines[i].indexOf(head);
- if(-1 != pos){
- posSection = i;
- isSectionExist = true;
- break;
- }
- }
-
- if(true == isSectionExist){
- var tKey;
- var posEqual = -1;
- var posSectionBeg = -1;
- var posSectionEnd = -1;
- var isKeyExist = false;
- var posKey = -1;
- //判断KEY是否已经存在
- for(var i=posSection+1,len=arrLines.length;i<len;i++){
- //先判断是否到达了下一个section
- posSectionBeg = arrLines[i].indexOf('[');
- posSectionEnd = arrLines[i].indexOf(']');
- posEqual = arrLines[i].indexOf('=');
- if(-1 != posSectionBeg && -1 != posSectionEnd){
- isKeyExist = false;
- break;
- }else if(-1 != posEqual){
- tKey = $.trim((arrLines[i].split('='))[0]);
- if(tKey.toUpperCase() == key.toUpperCase()){
- isKeyExist = true;
- posKey = i;
- break;
- }
- }
-
- }
- if(true == isKeyExist){
- arrLines[posKey] = newLine;
- }else if(false == isKeyExist){
- arrLines.splice(posSection + 1, 0, newLine);
- }
- }else if(false == isSectionExist){
- arrLines.push("");
- arrLines.push(head);
- arrLines.push(newLine);
- }
- return applet.writeFile(filename,arrLines);
-
- /**
- * 功能:获取有读写本地文件能力的Applet
- * @returns 如果找到,则返回相应的applet对象,否则返回null
- */
- function _getReadWriteApplet(){
- //有读写本地文件能力的applet列表
- var appletIds = ["UploadFileApplet","DownloadFileApplet"];
- var applet = null;
- for(var i=0,len=appletIds.length;i<len;i++){
- if(null != document.getElementById(appletIds[i])){
- applet = document.getElementById(appletIds[i]);
- break;
- }
- }
- return applet;
- }
- }
-
- /**
- * 功能
- * @param filePath 字符串,必填项,删除文件的路径
- * @param id 字符串,非必填项,有删除功能applet id,不填则程序会查找页面可用的applet
- * @returns 返回1,表示删除成功,返回-1表示删除失败,返回0,表示指定文件不存在
- */
- function appletDeleteFile(filePath,id){
- var applet = null;
- if(null == id){
- applet = _getDeleteFileApplet();
- }else{
- applet = document.getElementById(id);
- }
- if(null == applet){
- alert("找不到applet,无法删除文件");
- return "";
- }
- return applet.deleteFile(filePath);
-
- function _getDeleteFileApplet(){
- var applet = null;
- var appletIds = ["DownloadFileApplet"];
- for(var i=0,len=appletIds.length;i<len;i++){
- if(null != document.getElementById(appletIds[i])){
- applet = document.getElementById(appletIds[i]);
- break;
- }
- }
- return applet;
- }
- }
- /**
- * 功能:初始化下载applet
- * @param downloadEvents JSON对象,必填项,指定事件响应函数
- * 例子:
- * var downloadEvents = {
- * onGetParams : 'onGetParams',//获取参数
- * onFail : 'onFail'//错误响应
- * };
- * @param appletId 字符串,非必填项,applet的id,默认为'DownloadFileApplet'
- * @returns
- */
- function initDownloadApplet(downloadEvents,appletId){
- var downloadAppletId = appletId||'DownloadFileApplet';
- var attributes = { id: downloadAppletId,
- code:'DownloadFileApplet',
- archive: contextPath+'/applet/DownloadFileApplet.jar',
- width: 0,
- height: 0
- };
- var parameters = { url: _getUrl(),
- onFail: downloadEvents.onFail,
- onGetParams: downloadEvents.onGetParams,
- onGetmyxxid: downloadEvents.onGetmyxxid,
- cache_option:"NO",
- MAYSCRIPT:true
- };
- _setParameters(parameters);
- //要求JDK版本1.5或以上
- var version = '1.5';
- deployJava.runApplet(attributes,parameters,version);
-
- function _getUrl(){
- var url = window.location.toString();
- var count = 0;
- var pos = 0;
- for(var i=0;i<url.length;i++){
- if(url.charAt(i) == "/"){
- count++;
- }
- if(count == 4){
- pos = i;
- break;
- }
- }
- return url.substring(0,pos) + "/downFile.do";
- }
- function _setParameters(params){
- for(var key in params){
- if(null == params[key]){
- delete params[key];
- }
- }
- }
- }
- /**
- * 功能:提供给DownloadFileApplet调用的JS函数,用作拼接请求字符串
- * @param obj JSON对象,必填项,DownloadFileApplet的下载配置参数
- * @returns
- */
- function downloadAppletGetRquestString(obj){
- result = "";
- var DIVIDER = "_SINOBESTFILEPATHDIVIDER_";
- var filePath = obj["filePath"];
- for(var key in obj){
- if("filePath" != key){
- if('string' != obj[key]){
- obj[key] = obj[key].toString();
- }
- result += (encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]) + "&");
- }
- }
- var len = result.length;
- if(0 == len){
- return "" + DIVIDER + filePath;
- }else{
- return result.substring(0,len-1) + DIVIDER + filePath;
- }
- }
- /**
- * 功能:使用DownloadFileApplet下载文件
- * @param appletId 字符串,非必填项,默认为'DownloadFileApplet'
- * @returns 返回值为1, 表示下载成功,
- * 返回值为-1,表示下载失败
- */
- function appletDownload(appletId){
- var downloadAppletId = appletId||'DownloadFileApplet';
- var applet = document.getElementById(downloadAppletId);
- return applet.download();
- }
-
- /**
- * 生成批量打印按钮。每个页面只能有一个"批量打印"按钮。
- */
- function genBatchPrintBtn(){
- if(0 < document.getElementsByName('batchPrintForm').length){
- alert("生成批量打印按钮出错:一个页面只能有一个批量打印按钮");
- return;
- }
- var appRoot = _getUrl();
- var ctx = contextPath;
- var codebase = appRoot + "/j2re-1_4_1-windows-i586-i.exe#Version=1,4,1,0";
- var archive = ctx + "/runqianReport4Applet.jar";
- function _getUrl(){
- var url = window.location.toString();
- var count = 0;
- var pos = 0;
- for(var i=0;i<url.length;i++){
- if(url.charAt(i) == "/"){
- count++;
- }
- if(count == 4){
- pos = i;
- break;
- }
- }
- //返回类似 "http://127.0.0.1:8080/fw"
- return url.substring(0,pos);
- }
-
- var html = '<form name="batchPrintForm" >' +
- '<input type="hidden" name="reportStr" value=""/>'+
- '<input type="hidden" name="jy" value=""/>'+
- '<p align="center"><object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" '+
- 'id="report1_directPrintApplet" width="80" height="20" style="vertical-align: middle" ' +
- 'codebase="'+ codebase + '"' +
- ' >'+
- '<param name="name" value="report1_directPrintApplet">'+
- '<param name="code" value="com.runqian.report4.view.applet.DirectPrintApplet.class">'+
- '<param name="archive" value="'+archive+'">'+
- '<param name="type" value="application/x-java-applet;version=1.4">'+
- '<param name="appRoot" value="'+appRoot+'">'+
- '<param name="dataServlet" value="/reportServlet?action=1">'+
- '<param name="srcType" value="file">'+
- '<param name="fontFace" value="宋体">'+
- '<param name="fontSize" value="18pt">'+
- '<param name="fontColor" value="#0000FF">'+
- '<param name="backColor" value="#12632256">'+
- '<param name="label" value="批量打印">'+
- '<param name="savePrintSetup" value="yes"> '+
- '<param name="needPrintPrompt" value="no">'+
- '<param name="scriptable" value="true">'+
- '</object></p>'+
- '</form>'+
- '<script>'+
- 'function runqian_getPrintReports() {'+
- ' var jyFunc = batchPrintForm.jy.value;'+
- ' if(jyFunc!="" && window[jyFunc]!=null){'+
- ' if(false==eval(jyFunc+"()")){'+
- 'return "";'+
- '}'+
- ' }'+
- ' return batchPrintForm.reportStr.value;'+
- '}' + '</script'+'>';
-
- document.write(html);
- }//generateBatchPrintBtn() end
- /**
- * 功能:设置批量打印按钮,指定打印那些报表,传进什么参数。
- * 注意点1:可以多次调用该API,调用之后, "批量打印"按钮打印根据设置的字符串打印出相应的报表。
- * 注意点2:如果不想打印任何报表,请设置setBatchPrintBtn("");
- *
- * reportStr:字符串,必填项。
- * 格式为:"{无参数报表名}{报表1(参数1=value1;参数2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}..."
- * jy : 字符串,可选项。点击批量打印按钮调用的校验函数,如果检验函数返回false,则不打印,否则,继续打印。
- * 例子,打印三份报表 "{test.raq}{test2.raq(ID=2;DWSXH=3;)}{test2.raq(ID=3;DWSXH=4;)}"
- * {}花括号包含一个报表模板,()小括号包含报表模板的入参,入参分号;隔开,开发人员根据实际情况构造reportStr。
- */
- function setBatchPrintBtn(reportStr,jy){
- batchPrintForm.jy.value = jy||"";
- batchPrintForm.reportStr.value = reportStr;
- }
- /**
- * 功能:通过指定配置ID数组,报表参数FORM,初始化批量打印按钮
- * @param cfgIds 字符串数组,必填项,配置ID字符串,例子
- * ["ybdy_yyqt_cyjs_jsjg","ybdy_yyqt_cyjs_ylfyjsd","ybdy_yyqt_cyjs_grzfxmqd","ybdy_yyqt_cyjs_ylzfxmqd"]
- * @param printForm FORM对象,必填项,包含报表参数
- * @param jy 字符串,可选项。点击批量打印按钮调用的校验函数,如果检验函数返回false,则不打印,否则,继续打印。
- * @returns
- * 代码解析:关键就是组装好如下格式的字符串"{报表1(参数1=参数值1;参数2=参数值2;)}{报 表2}",
- * 一个花括号包住一个报表模板,如果模板带有入参,则需要加个小括号,在小括号里边写参数。
- * 例如"{test.raq}{test2.raq(ID=2;DWSXH=3;)}{test2.raq(ID=3;DWSXH=4;)}"。
- * 润乾applet通过读取该字符串,批量打印报表
- */
- function initBatchReport(cfgIds,printForm,jy){
- var ajaxQuerys = [];
- for(var i=0,len=cfgIds.length;i<len;i++){
- ajaxQuerys.push({
- configId:'FW_CONFIG.FW_REPORT_CONF_Q',
- parameters:{ID:cfgIds[i]},
- transform:'firstRow'
- });
- }
- new Service().appendQuery(ajaxQuerys).sentAjax('设置批量打印参数',function(data){
- //设置成"{test.raq}{test2.raq(ID=2;DWSXH=3;)}{test2.raq(ID=3;DWSXH=4;)}"的格式
- var reportStr = "";
- for(var i=0,len=data.length;i<len;i++){
- reportStr += "{";
- reportStr += data[i].TEMPLATEFILE;
-
- var reportParm = data[i].REPORTPARM;
- if(reportParm != "" && reportParm !=null){
- reportStr += _getParamsString(reportParm,printForm);
- }
-
- reportStr += "}";
- }
- setBatchPrintBtn(reportStr,jy||"");
- },null,false);//同步执行
-
- //参数字符串,形式为(参数1=参数值1;参数2=参数值2;)
- function _getParamsString(reportParm,printForm){
- var rst = "";
- rst+="(";
- params = reportParm.split('|');
- for(var i=0,len=params.length;i<len;i++){
- rst += params[i] + "=" + (printForm[params[i]] ? printForm[params[i]].value : '')+ ";";
- }
- rst+=")";
- return rst;
- }//_getParamsString
- }//initBatchReport
- ///////////////////////////////////////////////////////////////////////////
- //validate.js
- ///////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////
- //ajax.js
- ///////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////
- //table.js
- ///////////////////////////////////////////////////////////////////////////
- jQuery(':input').live('keydown',function(event){
- if(this.readOnly!=true){
- return true;
- }else if(event.keyCode==8){
- //屏蔽只读输入框的backspace按键
- return false;
- }
- }).live('dblclick',function(event){
- //只读采用双击拷贝内容
- copyToClipboard(this.value);
- });
-
- $('input,textarea').live('focus',function(event){
- //$(this).addClass('focus'); 目前暂时采用这种方式
- if($(this).hasClass('readOnly')){
- return true;
- }
- if(this.type=='checkbox'){
- return true;
- }
- var tmp = $(this).css("background-color");
- $(this).attr("_color",tmp);
- $(this).css("background-color","#FDFDBD");
- }).live('blur',function(event){
- //$(this).removeClass('focus');
- //应用remove 这种方式会导致焦点移开后录入框撑大
- if($(this).hasClass('readOnly')){
- return true;
- }
- if(this.type=='checkbox'){
- return true;
- }
- var tmp = $(this).attr("_color");
- if(tmp=='#fdfdbd'){
- $(this).css("background-color",'white');
- }else{
- $(this).css("background-color",tmp);
- }
- });
- function copyToClipboard(txt) {
- if (window.clipboardData) {
- window.clipboardData.clearData();
- window.clipboardData.setData("Text", txt);
- } else if (navigator.userAgent.indexOf("Opera") != -1) {
- window.location = txt;
- } else if (window.netscape) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- } catch (e) {
- return;
- }
- var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
- if (!clip)
- return;
- var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
- if (!trans)
- return;
- trans.addDataFlavor('text/unicode');
- var str = new Object();
- var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
- var copytext = txt;
- str.data = copytext;
- trans.setTransferData("text/unicode", str, copytext.length * 2);
- var clipid = Components.interfaces.nsIClipboard;
- if (!clip)
- return false;
- clip.setData(trans, null, clipid.kGlobalClipboard);
- }
- }
- /**
- * 获取存储大字典所用的APPLET
- * @returns applet对象
- */
- function FWGetDictApplet(){
- var twindow = window;
- while(twindow.dialogArguments!=null || twindow.opener != null){
- while(twindow.dialogArguments!=null){
- if(_isWindow(twindow.dialogArguments)){
- twindow = twindow.dialogArguments;
- }else if(_isWindow(twindow.dialogArguments.window)){
- twindow = twindow.dialogArguments.window;
- }
- }
- while(twindow.opener != null){;
- twindow = twindow.opener;
- }
- }
- var tapplet;
- tapplet = twindow.top.frames['TreeMenu'].dictapplet;
- return tapplet;
-
-
- function _isWindow(obj){
- return obj && typeof obj === "object" && "setInterval" in obj;
- }
- }
- ///////////////////////////////////////////////////////////////////////////
- //init.js
- ///////////////////////////////////////////////////////////////////////////
- //此文件为页面载入时需要初始化的内容以及事件
-
- jQuery(function(){
-
-
- /**
- * 判断对象disabled状态
- * @param obj 对象
- * @returns true/false
- */
- function isDisabled(obj) {
- if (obj.disabled) {
- return true;
- }
- return false;
- }
- //捕捉键盘事件
- jQuery(document).keydown(function(e){
- var el=e.target || e.srcElement;
- var iLen=0;
- var str="";
-
- if (event.keyCode == 9){//TAB
- return true;
- }
-
- if(event.keyCode==8){ //backspace
- return true;
- }
- if(event.keyCode==46){ //delete
- return true;
- }
-
-
- //处理组合键-快捷方式 ctrl+s、ctrl+y、ctrl+d、ctrl+m、ctrl+q
- //s=83 y=89 n=78 d=68 m=77 q=81
- if(event.ctrlKey && event.keyCode==83){
- $("a").each(function(){
- if(this.keycomb=='ctrl+s' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
- if(event.ctrlKey && event.keyCode==89){
- $("a").each(function(){
- if(this.keycomb=='ctrl+y' && !isDisabled(this)){
- $(this).trigger("click");
- return false;
- }
- });
- }
-
- if(event.ctrlKey && event.keyCode==76){
- $("a").each(function(){
- if(this.keycomb=='ctrl+l' && !isDisabled(this)){
- $(this).trigger("click");
- return false;
- }
- });
- }
-
-
- if(event.altKey && event.keyCode==81){
- $("a").each(function(){
- if(this.keycomb=='alt+q' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
- if(event.ctrlKey && event.keyCode==68){
- $("a").each(function(){
- if(this.keycomb=='ctrl+d' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
- if(event.ctrlKey && event.keyCode==77){
- $("a").each(function(){
- if(this.keycomb=='ctrl+m' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
-
- if(event.ctrlKey && event.keyCode==81){
- $("a").each(function(){
- if(this.keycomb=='ctrl+q' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
-
- //x=88 信息提示框关闭
- if(event.ctrlKey && event.keyCode==88){
- $("div.fwmessager-tool-close").each(function(){
- if(this.keycomb=='ctrl+x' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- $("a").each(function(){
- if(this.keycomb=='ctrl+x' && !isDisabled(this)){
- $(this).trigger("click");
- return true;
- }
- });
- }
-
- //单击回车调用TAB键
- if(jQuery(el).is('.textbox,.notpastebox,.datebox,.datetime,.floatbox,.numberbox,.chinessbox,.yearmonthbox,.timebox,.checkbox,.postbox,.phonebox,.idcardbox,.combobox,.zjtextbox,.fwcombox-text,.searchgridbox')){
- if (event.keyCode == 13) {
- event.keyCode = 9;
- return true;
- }
- }
-
- return true;
- });//jQuery(document).keydown 结束
-
-
- //处理按钮
- jQuery('.buttonlink',document).each(function(){
- var plain = $(this).attr("plain");
- if(plain=="false"||plain==null||plain==""){
- $(this).attr({"plain":"true"});
- $(this).linkbutton({plain:false});
- }
- });
-
-
-
- //导航栏固定 代码开始
- //以下的代码是为了把本页的导航栏提交到frame名为 navigation 的DIV
- //为了实现导航栏固定在最上方
- var obj_navigator_button = document.all._navigator_button;
-
- if(document.all._menu_button != null){
- if( obj_navigator_button !=null){
- var obj = document.all._menu_button;
- jQuery(obj_navigator_button).html(obj.innerHTML);
- }
- }
- //获取同级的frames的DIV
- if(self.parent.navigation!=null){
-
- if(self.parent.navigation._navigator!=null){
-
- var obj_navigator = self.parent.navigation._navigator;
- var obj_content_navigator = jQuery("#content_navigator");
-
- if(obj_content_navigator != null ) {
-
- if(obj_navigator != null){ //存在就替换
-
- jQuery(obj_navigator).html(obj_content_navigator.html());
-
- obj_navigator_button = self.parent.navigation._navigator_button;
-
- if(obj_navigator_button != null){
-
- jQuery('a',obj_navigator_button).each(function(){
- var tmp = jQuery(this).attr('onclick')+'';
- if(tmp!=null&&tmp!=''){
- var iPos1 = tmp.indexOf('{')+1;
- var iPos2 = tmp.indexOf('}');
- var iLen = iPos2 - iPos1;
- tmp = tmp.substr(iPos1,iLen);
- tmp = "self.parent.workspace." + tmp;
- //这样处理的目的是为了另一层的FRAMES可以执行workspace的函数
- jQuery(this).removeAttr('onclick');
-
- try{
- jQuery(this).bind('click',function(){eval(tmp)});
- }catch(e){}
- }
- });
-
- }
-
-
- }else{
- //不存在就直接显示
- jQuery(document.all.content_navigator).css({display:'block'});
- }
- }else{
- if(obj_navigator != null){
- jQuery(obj_navigator).html('');
- }
- }
- }
- }else{
- if(self.frameElement!=null&&self.frameElement.tagName=="IFRAME"){
- return;
- }
- //这种是针对frameset 内还有frameset的情况
- if(self.parent.parent.navigation!=null){
- var obj_navigator = self.parent.parent.navigation._navigator;
- var obj_content_navigator = jQuery("#content_navigator");
-
- if(obj_navigator != null){ //存在就替换
- jQuery(obj_navigator).html(obj_content_navigator.html());
- }
-
- }
- }
- //导航栏固定 代码结束
-
- });
- /**
- * Job操类
- */
- function FwJob() {
- /**
- * 执行Job
- * @param jobId Job标识
- * @param key Job关键字
- * @param argsObj 传参
- */
- this.execute = function(jobId,key,argsObj) {
- var refresh = eval("job_"+jobId+"_refresh");
- if ($.trim(key) !='') {
- $("#"+jobId+"_key").val(key);
- }
-
- var args = {"_longTransID":""+jobId,"_longTransKey":$("#"+jobId+"_key").val()};
- args = jQuery.extend(args,argsObj);
- new Service({serviceId:'longProcessService',method:'scheduler',parameters:args})
- .sentAjax(function(data){
- if (data == '1') {
- CFW.oWin.fnAlert('此任务已在执行中!');
- } else {
- CFW.oWin.fnAlert('任务提交成功!');
- }
- FwJob.prototype.clearAllRefresh();
- var func = eval("FwJob.prototype.win_job_"+jobId+"_refresh");
- func();
- var t = setInterval("FwJob.prototype.win_job_"+jobId+"_refresh()",refresh);
- FwJob.prototype.__jobRefresh[jobId]=t;
- },function(data){
- CFW.oWin.fnAlert(data);
- FwJob.prototype.clearAllRefresh();
- var t = setInterval("FwJob.prototype.win_job_"+jobId+"_refresh()",refresh);
- FwJob.prototype.__jobRefresh[jobId]=t;
- });
- };
-
-
- }
- FwJob.prototype.__jobRefresh = [];
- FwJob.prototype.__jobWin = [];
- FwJob.prototype.isComplete = function(jobId,key){
- var args = {"TRANSID":""+jobId,"KEY":key};
- new Service({serviceId:'longProcessService',method:'isComplete',parameters:args})
- .sentAjax(function(data){
- if (data == '2') {
- FwJob.prototype.clearRefresh(jobId);
- }
- },function(data){
- FwJob.prototype.clearRefresh(jobId);
- });
- };
- FwJob.prototype.clearAllRefresh = function(){
- for(i = 0;i< FwJob.prototype.__jobRefresh.length; i++){
- window.clearInterval(FwJob.prototype.__jobRefresh[i]);
- }
- };
-
- FwJob.prototype.clearRefresh = function(jobId){
- window.clearInterval(FwJob.prototype.__jobRefresh[jobId]);
- };
- var GBtn = {};
- function __btnClick(obj,doAction,delay) {
- var txt = $(obj).text();
- var times = delay != null && delay != undefined ? delay : 3;
- if(!obj.disabled) {
-
- GBtn[obj] = [];
- GBtn[obj]['i'] = times;
- if (typeof doAction === 'function') {
- var resp = doAction() ;
- resp = resp == null ? true : resp ;
- if (!resp) {
- return ;
- }
- $(obj).linkbutton("disable");
- obj.disabled=true;
- if (times != -1) {
- $(obj).linkbutton({text:txt+" ("+times+"s)"});
- GBtn[obj]['t'] = setTimeout(function(){
- __btnClick.prototype.delay(obj,txt,times);
- }, 1000);
- }
- } else {
- window.location.href = doAction;
- }
- }
-
- __btnClick.prototype.delay = function(obj,txt,times) {
- state = $.data(obj, 'linkbutton');
- if(state.options.disabled && times > 0) {
- $(obj).linkbutton({text:txt + " ("+ times +"s)"});
- times = times - 1;
- GBtn[obj]['t'] = setTimeout(function(){
- __btnClick.prototype.delay(obj,txt,times);
- }, 1000);
- } else {
- //clearInterval(GBtn[obj]['t']);
- $(obj).linkbutton("enable");
- $(obj).linkbutton({text:txt});
- obj.disabled=false;
- //$(this).linkbutton('disable');
- }
- };
- }
- /**
- * 框架封装对象
- */
- var FW = {
- /**
- * 获取全局变量 (访问属性:private)
- * @returns {}
- */
- _getGVAR : function() {
- var twindow = this.getTopWindow(window);
- var rtn = null;
- try{
- rtn = twindow.top.frames['banner'].GVAR || {};
- }catch(e){
- rtn = window.HEAD_GVAR || {};
- }
- return rtn;
- },
- /**
- * 是否可以使用前端缓存
- * @@returns String
- */
- isLocalStorage :function(){
- if(window.localStorage){
- return true;
- }else{
- return false;
- }
- },
-
- /**
- * 获取字典模式 (访问属性:public)
- * @@returns String
- */
- getDictMode : function() {
- return this._getGVAR().dictMode;
- },
-
- /**
- * 字典模式常量 (访问属性:public)
- */
- DICTMODES : {'SERVER':'server', //ajax获取
- 'LOCAL':'local', //本地缓存
- 'LOCALSTORAGE':'localstorage' //前端缓存获取
- },
-
- /**
- * 获取顶层框窗口 (访问属性:public)
- * @param window self对象
- * @returns top window
- */
- getTopWindow:function(win) {
- var twindow = window;
- while(twindow.dialogArguments!=null || twindow.opener != null){
- while(twindow.dialogArguments!=null){
- twindow = twindow.dialogArguments;
- }
- while(twindow.opener != null){
- twindow = twindow.opener;
- }
- }
- return twindow;
- },
-
- /**
- * (访问属性:private)
- */
- _storeDict: function(dictName,dict) {
- var GVAR = this._getGVAR();
- GVAR.dicts[dictName] = dict;
- },
-
- storeDict: function(dicts){
- if (FW.getDictMode() == FW.DICTMODES.SERVER ) {
- var GVAR = this._getGVAR();
- for(var key in dicts){
- if(GVAR.dicts[key]==null){
- this._storeDict(key, dicts[key])
- }
- }
- }
- },
- /**
- * 通过gltId,page获获取数据
- * @param gltId 多记录表ID
- * @param formData from表单数据where条件 eg:{"STATE":5,"formEntryId": "form_t_dsdz_qxjyxkz"}
- * @param page 分页信息 eg:{"pageNo": 1,"pageSize": 20}
- * success:处理成功后触发的函数,原型是function(data)。
- */
- getPageData : function(gltId,formData,page,success) {
- var t_message = '正在请求服务,请稍候...';
- var resultPage={};
- var thisrequest={};
- var t_async = true;
- $.ajax({
- type : "POST", //提交方式
- url:contextPath+"/pageData.do",
- contentType:"application/x-www-form-urlencoded;",
- dataType: "json",
- async:t_async,
- data:{confid:gltId,formDatas:JSON.stringify(formData),pageInfo:JSON.stringify(page)},
- error:function (request, textStatus, errorThrown){alert("获取数据出错!");},
- success:function(result) {
- if(result!=null && result[headtoken]!=null){
- token=result[headtoken];//更新全局变量token标志
- }
- success(result);
- //校验业务处理是否正确执行
- /**
- alert(JSON.stringify(resultPage));
- if("SUCCESS"==result.FLAG){//出错了,弹出错误提醒
- alert(JSON.stringify(result.pageData.result));//
- alert(JSON.stringify(result.pageData.pageNo));//
- alert(JSON.stringify(result.pageData.pageSize));//
- alert(JSON.stringify(result.pageData.totalCount));//
- }else{
- alert(JSON.stringify(result.MSG));//
- }
- */
- },
- beforeSend:function(XMLHttpRequest ){
- var cToken = $.cookie(headtoken) || token;XMLHttpRequest.setRequestHeader(headtoken,cToken);
- $.data(thisrequest,'msg',showMsg(t_message,-1));
- //createProgressBar();
- },
- complete:function( ){
- hideMsg($.data(thisrequest,'msg'));
- }
- });
- },
- /**
- * 通过web获取字典信息 (访问属性:public)
- * @param dictName 字典名
- */
- getDict : function(dictName,whereCls) {
- var GVAR = this._getGVAR();
- var strDynDict="dyndict_";
- //对于动态字典不查询缓存
- if(dictName.substr(0,strDynDict.length)!=strDynDict){
- if (GVAR.dicts[dictName] != null && !jQuery.isEmptyObject(GVAR.dicts[dictName])) {
- return GVAR.dicts[dictName];
- }
- }
- var dict = {};
- if(_ENCRYPT_WHERE){
- if(whereCls!=null&&whereCls!='null'&&whereCls!=''&&whereCls!='undefined'){
- whereCls=stringToHex(encrypt(WHEREKEY,whereCls));
- }
- }
-
- jQuery.ajax({
- url:contextPath+'/jsp/framework/getDict.jsp'
- ,data:{dictName:dictName,whereCls:whereCls}
- ,cache:true
- ,type:'post'
- ,dataType:'json'
- ,async:false
- ,error:function (request, textStatus, errorThrown){alert("获取字典出错!");}
- ,success:function (data, textStatus){
- dict = data;
- }
- });
- if(dictName.substr(0,strDynDict.length)!=strDynDict){//对于动态字典不做存储
- if (dict != null && !jQuery.isEmptyObject(dict)) {
- this._storeDict(dictName, dict);
- }
- }
-
- return dict;
- },
- /**
- * 通过前端缓存获取字典信息 (访问属性:public)
- * @param dictName 字典名
- */
- getDictByLocalStorage : function(dictName,whereCls) {
- if(this.isLocalStorage()){
- var strDynDict="dyndict_";
- if (dictName.indexOf('@') > -1) {
- var dictKeys = dictName.split("@");
- var subCode=dictKeys[1];
- if (dictKeys[1] != null && dictKeys[1]!="" ) {
- var dicts=JSON.parse(localStorage.getItem('DICTS'));
- var subdictdata=[];
- var dictdata={};
- if (dicts[dictKeys[0]] != null && !jQuery.isEmptyObject(dicts[dictKeys[0]]) ) {
- dictdata= dicts[dictKeys[0]];
- //alert("1111----"+JSON.stringify(dictdata));
- $.each(dictdata,function(key){
- var value = dictdata[key][3];
- if(value == subCode )
- {
- subdictdata.push(dictdata[key]);
- }
- });
- }
- return subdictdata;
- }
- }else if(dictName.substr(0,strDynDict.length)!=strDynDict){////静态字典通过本地缓存,取不到的返回为空
- var dicts=JSON.parse(localStorage.getItem('DICTS'));
- var dictdata={};
- if (dicts[dictName] != null && !jQuery.isEmptyObject(dicts[dictName])) {
- dictdata= dicts[dictName];
- }
- return dictdata;
- }
- //动态字典依然通过web方式查询
- return this.getDict(dictName, whereCls);
- }else{//本机不支持前端缓存依然采用web方式获取字典内容
- return this.getDict(dictName, whereCls);
- }
- },
- /**
- * 通过前端缓存获取字典信息 (访问属性:public)
- * @param dictName 字典名
- */
- getBDDatasByLocalStorage : function(dictName,query,startRow,pageSize) {
- var datas={};
- if(this.isLocalStorage()){
- var bigdicts=JSON.parse(localStorage.getItem('BIGDICTS'));
- var bigdict=bigdicts[dictName];
- var dictdatas=bigdict['datas'];
-
- if (dictdatas == null || dictdatas.length==0) {
- return datas;
- } else if (query.length == 0) {
- // 返回全部集合
- var pageData=[];
- var t=Math.min(pageSize,dictdatas.length);
- for(var i=startRow;i<dictdatas.length;i++){
- if(t>0){
- pageData.push(dictdatas[i]);
- }else{
- break;
- }
- t--;
- }
- datas["pageData"]= pageData;
- datas["total"]= dictdatas.length;
- return datas;
- }
- var result=[];
- for(var rowIndex=0;rowIndex<dictdatas.length;rowIndex++){
- var onerow=dictdatas[rowIndex];
- for(var colIndex=0;colIndex<onerow.length;colIndex++){
- var col=onerow[colIndex];
- if(col!=null&&col.indexOf(query)!= -1){
- result.push(onerow);
- break;
- }
- }
-
- }
- if(result!=null){
- var pageData=[];
- var size=Math.min(pageSize,result.length-startRow);
- for(var i=startRow;i<startRow+size;i++){
- pageData.push(result[i]);
- }
- datas["pageData"]= pageData;
- }
- datas["total"]= result.length;
- return datas;
- }else{
- return datas;
- }
- },
- /**
- * 通过前端缓存获取字典信息 (访问属性:public)
- * @param dictName 字典名
- */
- getBDHeadersByLocalStorage : function(dictName) {
- if(this.isLocalStorage()){
- var bigdicts=JSON.parse(localStorage.getItem('BIGDICTS'));
- var bigdict=bigdicts[dictName];
-
- return bigdict['columns']
- }else{
- return [];
- }
- },
- /**
- * 字典是否存在
- * @param dictName 字典名
- */
- isExistsDict:function(dictName) {
- var GVAR = this._getGVAR();
- if (GVAR.dicts[dictName] != null && !jQuery.isEmptyObject(GVAR.dicts[dictName])) {
- return true;
- }
- return false;
- },
- showModalDialog:function(href,options) {
- var opt = options;
- if (opt == null || opt == undefined) {
- var w=600,h=400, l = (screen.Width-w)/2,t = (screen.Height-h)/2;
- var locStr = "dialogLeft:" + l + ";dialogTop:" + t;
- opt="status:0;help:0;dialogWidth:"+w+"px;dialogHeight:"+h+"px;"+locStr;
- }
- href += href.indexOf("?") > 0 ? "&" : "?" +"_t="+new Date().getTime();
- return showModalDialog(href,window,opt);
- }
- };
|