utils.js 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809
  1. //一卡通卡号****格式化
  2. function cardFmt(card) {
  3. if(card){
  4. var no = card;
  5. var tmp = "****************";
  6. if(card.length>=16){
  7. no = card.substr(0,16);
  8. var reg = /^(\d{8})\d{4}(\d{4})$/;
  9. no = no.replace(reg, "$1****$2");
  10. return no;
  11. }else{
  12. no = card + tmp.substr(0,16 - card.length);
  13. return no;
  14. }
  15. }else{
  16. return card;
  17. }
  18. }
  19. //手机号码****格式化
  20. function phoneFmt(tel) {
  21. if(tel){
  22. var reg = /^(\d{3})\d{4}(\d{4})$/;
  23. tel = tel.replace(reg, "$1****$2");
  24. return tel;
  25. }else{
  26. return tel;
  27. }
  28. }
  29. //金额格式化
  30. function moneyFmt(s, n) {
  31. if(s==0){
  32. return '0.00';
  33. }
  34. if(!s){
  35. return s;
  36. }
  37. n = n > 0 && n <= 20 ? n : 2;
  38. s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  39. var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
  40. t = "";
  41. for (i = 0; i < l.length; i++) {
  42. t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
  43. }
  44. return t.split("").reverse().join("") + "." + r;
  45. }
  46. //绝对值金额格式化
  47. function moneyFmt1(s, n) {
  48. if(s==0){
  49. return '0.00';
  50. }
  51. if(!s){
  52. return s;
  53. }
  54. if(s<0){
  55. s1=Math.abs(s);
  56. n = n > 0 && n <= 20 ? n : 2;
  57. s2=s1.toFixed(n);
  58. return s2;
  59. }
  60. n = n > 0 && n <= 20 ? n : 2;
  61. s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  62. var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
  63. t = "";
  64. for (i = 0; i < l.length; i++) {
  65. t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
  66. }
  67. return t.split("").reverse().join("") + "." + r;
  68. }
  69. /**
  70. * 数据链接格式化
  71. *
  72. * @returns {Function}
  73. */
  74. function linkFmt() {
  75. // 双引号:"\"", "&quot;"
  76. return function(value) {
  77. if (value) {
  78. var b = new Base64();
  79. var value1 = "'" + b.encode(value) + "'";
  80. return '<a href="javascript:void(0)" onclick="showWin(' + value1
  81. + ')">详细</a>';
  82. } else {
  83. return value;
  84. }
  85. };
  86. }
  87. /**
  88. * 标准数据格式对象方法 支持单数据和逗号分隔多数据
  89. *
  90. * @param id
  91. * 标准数据ID
  92. * @returns {Function}
  93. */
  94. function dataFmt(id) {
  95. return function(value) {
  96. return dataFormat(id, value);
  97. };
  98. }
  99. /**
  100. * 验证框封装
  101. *
  102. * @param isNeed
  103. * 是否必输
  104. * @param valiRule
  105. * 验证规则
  106. * @param minL
  107. * 最小长度
  108. * @param maxL
  109. * 最大长度
  110. * @param tips
  111. * 当文本框为空时出现的提示文本。
  112. * @returns editor
  113. */
  114. function valiBoxEtr(isNeed, valiRule, minL, maxL, tips) {
  115. var editor = {
  116. type : 'validatebox',
  117. options : {
  118. required : false,
  119. validType : []
  120. }
  121. };
  122. if (tips) {
  123. editor.options.missingMessage = tips;
  124. }
  125. if (isNeed) {
  126. editor.options.required = isNeed;
  127. }
  128. var array = new Array();
  129. if (valiRule && valiRule != '') {
  130. array.push(valiRule);
  131. }
  132. if (minL && maxL) {
  133. array.push('length[' + minL + ',' + maxL + ']');
  134. }
  135. editor.options.validType = array;
  136. return editor;
  137. }
  138. /**
  139. * comboBox编辑对象,只为单选
  140. *
  141. * @param id
  142. * 标准数据ID
  143. * @param del_id
  144. * 要删除的object的id值
  145. * @returns Editor
  146. */
  147. function comboBoxEtr(id,del_id) {
  148. data = getListData(id);
  149. //console.log(data);
  150. for (var i = data.length-1; i>=0; i--){
  151. if (data[i].id==del_id){
  152. data.splice(i,1);
  153. break;
  154. }
  155. }
  156. return {
  157. type : 'combobox',
  158. options : {
  159. editable : false,
  160. required : true,
  161. data : data,
  162. valueField : 'id',
  163. textField : 'text',
  164. panelHeight : 'auto'
  165. }
  166. };
  167. }
  168. /**
  169. * comboBox编辑对象,只为单选,显示给定内容列表
  170. * @param channelList 要显示的内容列表list
  171. * @param editable 是否可编辑
  172. * @param required 是否要求必填
  173. * @returns Editor
  174. */
  175. function comboBox_Etr(list, editable, required) {
  176. var editer = {
  177. type : 'combobox',
  178. options : {
  179. editable : false,
  180. required : false,
  181. data : list,
  182. valueField : 'id',
  183. textField : 'text',
  184. panelHeight : '200'
  185. }
  186. };
  187. if (editable) {
  188. editer.options.editable = editable;
  189. }
  190. if (required) {
  191. editer.options.required = required;
  192. }
  193. return editer;
  194. }
  195. /**
  196. * ","分割格式对象方法,支持单个和多个
  197. *
  198. * @param list,取数的数组
  199. * @param id
  200. * @param name
  201. * @returns {Function}
  202. */
  203. function listFmt(list, id, name) {
  204. return function(value) {
  205. return listFormat(list, value, id, name);
  206. };
  207. }
  208. /**
  209. * combogrid编辑对象,通过标准数据获取数组
  210. *
  211. * @param code
  212. * 标准数据编码
  213. * @param required
  214. * 是否必输
  215. * @param editable
  216. * 是否可编辑
  217. * @returns Editor
  218. */
  219. function comboGrid_Etr(code, required, editable) {
  220. data = getListData(code);
  221. var editer = {
  222. type : 'combogrid',
  223. options : {
  224. editable : false,
  225. required : false,
  226. panelWidth : 200,
  227. multiple : true,
  228. idField : 'id',
  229. textField : 'text',
  230. data : data,
  231. columns : [ [ {
  232. field : 'ck',
  233. checkbox : true
  234. }, {
  235. field : 'id',
  236. hidden : true,
  237. title : 'id',
  238. width : 100
  239. }, {
  240. field : 'text',
  241. title : '选择全部',
  242. width : 150
  243. } ] ],
  244. fitColumns : true
  245. }
  246. };
  247. if (editable) {
  248. editer.options.editable = editable;
  249. }
  250. if (required) {
  251. editer.options.required = required;
  252. }
  253. return editer;
  254. }
  255. /**
  256. * combogrid编辑对象,从数组中获取
  257. *
  258. * @param list
  259. * list取数数组
  260. * @param id
  261. * id字段
  262. * @param name
  263. * 名称字段
  264. * @param required
  265. * 是否必输
  266. * @param editable
  267. * 是否可编辑
  268. * @returns Editor
  269. */
  270. function comboGridEtr(list, id, name, required, editable) {
  271. var editer = {
  272. type : 'combogrid',
  273. options : {
  274. editable : false,
  275. required : false,
  276. panelWidth : 200,
  277. multiple : true,
  278. idField : id,
  279. textField : name,
  280. data : list,
  281. columns : [ [ {
  282. field : 'ck',
  283. checkbox : true
  284. }, {
  285. field : id,
  286. hidden : true,
  287. title : 'id',
  288. width : 100
  289. }, {
  290. field : name,
  291. title : '选择全部',
  292. width : 150
  293. } ] ],
  294. fitColumns : true
  295. }
  296. };
  297. if (editable) {
  298. editer.options.editable = editable;
  299. }
  300. if (required) {
  301. editer.options.required = required;
  302. }
  303. return editer;
  304. }
  305. /**
  306. * Excel导出处理
  307. *
  308. * @param gridId
  309. * datagrid
  310. * @param title
  311. * Excel标题
  312. * @param transCode
  313. * 交易码
  314. * @param params
  315. * 查询参数
  316. */
  317. function downloadExcel(gridId, title, transCode, params,servletName) {
  318. var columnfields = "";
  319. var columntitles = "";
  320. var cfs = $(gridId).datagrid('getColumnFields');
  321. var colCount = cfs.length;
  322. for ( var i = 0; i < colCount; i++) {
  323. if(cfs[i]!='ck'&&cfs[i]!=''&&cfs[i]!='undefined'){
  324. if (columnfields == '') {
  325. columnfields = cfs[i];
  326. columntitles = $(gridId).datagrid('getColumnOption', cfs[i]).title;
  327. } else {
  328. columnfields = columnfields + "," + cfs[i];
  329. columntitles = columntitles + ","
  330. + $(gridId).datagrid('getColumnOption', cfs[i]).title;
  331. }
  332. }
  333. }
  334. params = params + "&title=" + title + "&columnfields=" + columnfields
  335. + "&columntitles=" + columntitles;
  336. var pageopt;
  337. var pageNumber =1;
  338. var pageSize = 9000000;
  339. try{
  340. pageopt=$(gridId).datagrid('getPager').data("pagination").options;
  341. pageNumber = pageopt.pageNumber;
  342. pageSize = pageopt.pageSize;
  343. }catch(e){
  344. //
  345. }
  346. /* var order = 'asc';
  347. var sort = 'transcode';*/
  348. params = params + "&page=" + pageNumber + "&rows=" + pageSize;
  349. // +"&sort="+sort+"&order="+order;
  350. url = getUrl(transCode, encodeURI(params || ''),servletName);
  351. var iTop = (window.screen.availHeight - 30 - 600) / 2; // 获得窗口的垂直位置;
  352. var iLeft = (window.screen.availWidth - 10 - 800) / 2; // 获得窗口的水平位置;
  353. window
  354. .open(
  355. url,
  356. 'reportWin',
  357. 'top='
  358. + iTop
  359. + ',left='
  360. + iLeft
  361. + ',height=600,width=800,status=no,toolbar=no,menubar=no,location=no,scrollbars=no');
  362. };
  363. function downloadIneyesExcel(gridId, title, transCode, params,servletName) {
  364. var columnfields = "";
  365. var columntitles = "";
  366. var cfs = $(gridId).datagrid('getColumnFields');
  367. var colCount = cfs.length;
  368. for ( var i = 0; i < colCount; i++) {
  369. if(cfs[i]!='ck'&&cfs[i]!=''&&cfs[i]!='undefined'){
  370. if (columnfields == '') {
  371. columnfields = cfs[i];
  372. columntitles = $(gridId).datagrid('getColumnOption', cfs[i]).title;
  373. } else {
  374. columnfields = columnfields + "," + cfs[i];
  375. columntitles = columntitles + ","
  376. + $(gridId).datagrid('getColumnOption', cfs[i]).title;
  377. }
  378. }
  379. }
  380. params = params + "&title=" + title + "&columnfields=" + columnfields
  381. + "&columntitles=" + columntitles;
  382. var pageopt;
  383. var pageNumber =1;
  384. var pageSize = 9000000;
  385. try{
  386. pageopt=$(gridId).datagrid('getPager').data("pagination").options;
  387. pageNumber = pageopt.pageNumber;
  388. pageSize = pageopt.pageSize;
  389. }catch(e){
  390. //
  391. }
  392. /* var order = 'asc';
  393. var sort = 'transcode';*/
  394. params = params + "&page=" + pageNumber + "&rows=" + pageSize;
  395. // +"&sort="+sort+"&order="+order;
  396. url = getIneyesUrl(transCode, encodeURI(params || ''),servletName);
  397. var iTop = (window.screen.availHeight - 30 - 600) / 2; // 获得窗口的垂直位置;
  398. var iLeft = (window.screen.availWidth - 10 - 800) / 2; // 获得窗口的水平位置;
  399. window
  400. .open(
  401. url,
  402. 'reportWin',
  403. 'top='
  404. + iTop
  405. + ',left='
  406. + iLeft
  407. + ',height=600,width=800,status=no,toolbar=no,menubar=no,location=no,scrollbars=no');
  408. };
  409. /**
  410. * 日期格式化
  411. *
  412. * @param date
  413. * @returns {String}
  414. */
  415. function formatterDate(date) {
  416. var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate();
  417. var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0"
  418. + (date.getMonth() + 1);
  419. return date.getFullYear() + '-' + month + '-' + day;
  420. };
  421. /**
  422. * 前端uuid
  423. *
  424. * @returns
  425. */
  426. function uuid() {
  427. var s = [];
  428. var hexDigits = "0123456789abcdef";
  429. for ( var i = 0; i < 36; i++) {
  430. s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
  431. }
  432. s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
  433. s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the
  434. // clock_seq_hi_and_reserved
  435. // to 01
  436. s[8] = s[13] = s[18] = s[23] = "";
  437. var uuid = s.join("");
  438. return uuid;
  439. }
  440. //初始化需要转发的transcode对应的url
  441. function initExcludeUrlMap() {
  442. if($.excludeUrlMap == null ){
  443. $.excludeUrlMap=new MapUtils();
  444. }
  445. if(serverUrl==''||serverUrl== undefined){
  446. serverUrl=""
  447. }
  448. $.excludeUrlMap.put("HM0016",serverUrl);
  449. $.excludeUrlMap.put("HM004901",serverUrl);
  450. $.excludeUrlMap.put("HM004902",serverUrl);
  451. $.excludeUrlMap.put("HM005001",serverUrl);
  452. $.excludeUrlMap.put("GENERALH01",serverUrl);//帮助信息
  453. $.excludeUrlMap.put("GENERALH02",serverUrl);
  454. $.excludeUrlMap.put("GENERALH03",serverUrl);
  455. $.excludeUrlMap.put("GENERALH04",serverUrl);
  456. $.excludeUrlMap.put("GENERALP01",serverUrl);//协议信息
  457. $.excludeUrlMap.put("GENERALP02",serverUrl);
  458. $.excludeUrlMap.put("GENERALP03",serverUrl);
  459. $.excludeUrlMap.put("GENERALP04",serverUrl);
  460. $.excludeUrlMap.put("GENERALV01",serverUrl);//版本信息
  461. $.excludeUrlMap.put("GENERALV02",serverUrl);
  462. $.excludeUrlMap.put("GENERALV03",serverUrl);
  463. $.excludeUrlMap.put("GENERALV04",serverUrl);
  464. $.excludeUrlMap.put("GENERALD01",serverGzlUrl);//机构信息
  465. $.excludeUrlMap.put("GENERALD02",serverGzlUrl);
  466. $.excludeUrlMap.put("GENERALD03",serverGzlUrl);
  467. $.excludeUrlMap.put("GENERALD04",serverGzlUrl);
  468. //企业审核表
  469. $.excludeUrlMap.put("USERCERT01",serverUrl);
  470. $.excludeUrlMap.put("HM0013",serverUrl);//审核
  471. $.excludeUrlMap.put("HX0003",serverUrl);//文件下载
  472. $.excludeUrlMap.put("HX0004",serverUrl);//文件全路径查询
  473. $.excludeUrlMap.put("XE0012",gzlBrowser);//区块链数据
  474. //商品管理
  475. $.excludeUrlMap.put("GENERALG04",serverUrl);
  476. $.excludeUrlMap.put("GENERALG03",serverUrl);
  477. $.excludeUrlMap.put("GENERALG02",serverUrl);
  478. $.excludeUrlMap.put("GENERALG01",serverUrl);
  479. $.excludeUrlMap.put("C00030",serverUrl);//获取首页信息
  480. $.excludeUrlMap.put("MALLORDE01",serverUrl);//获取订单信息
  481. $.excludeUrlMap.put("C00003",serverUrl);//获取商品信息
  482. $.excludeUrlMap.put("PAY01",serverUrl);//获取支付信息
  483. $.excludeUrlMap.put("ORDERINF01",serverUrl);//获取订单相关信息
  484. $.excludeUrlMap.put("C00014",serverUrl);//设置状态变更
  485. $.excludeUrlMap.put("PRODUCT01",serverUrl);//商品信息
  486. $.excludeUrlMap.put("PRODUCT02",serverUrl);//商品信息
  487. $.excludeUrlMap.put("PRODUCT03",serverUrl);//商品信息
  488. $.excludeUrlMap.put("PRODUCT04",serverUrl);//商品信息
  489. $.excludeUrlMap.put("B00022",serverUrl);//商品信息
  490. $.excludeUrlMap.put("C00025",serverUrl);//添加商品,上传文件
  491. $.excludeUrlMap.put("C00026",serverUrl);//删除商品图片
  492. $.excludeUrlMap.put("BANNER01",serverUrl);//banner操作
  493. $.excludeUrlMap.put("BANNER02",serverUrl);//banner操作
  494. $.excludeUrlMap.put("BANNER03",serverUrl);//banner操作
  495. $.excludeUrlMap.put("BANNER04",serverUrl);//banner操作
  496. $.excludeUrlMap.put("ACTIVE01",serverUrl);//活动操作
  497. $.excludeUrlMap.put("ACTIVE02",serverUrl);//活动操作
  498. $.excludeUrlMap.put("ACTIVE03",serverUrl);//活动操作
  499. $.excludeUrlMap.put("ACTIVE04",serverUrl);//活动操作
  500. $.excludeUrlMap.put("C00028",serverUrl);//添加banner图片
  501. $.excludeUrlMap.put("HC0015",serverUrl);//退款申请
  502. $.excludeUrlMap.put("HC0016",serverUrl);//修改用户状态
  503. $.excludeUrlMap.put("VIEWSYSU01",serverUrl);//员工操作
  504. $.excludeUrlMap.put("VIEWUSER01",serverUrl);//用户操作
  505. $.excludeUrlMap.put("HC0017",serverUrl);//员工操作
  506. $.excludeUrlMap.put("HC0018",serverUrl);//支付统计
  507. $.excludeUrlMap.put("HC0019",serverUrl);//员工操作
  508. $.excludeUrlMap.put("VIEWORDE01",serverUrl);//获取订单信息
  509. $.excludeUrlMap.put("SYSVERSI01",serverUrl);//版本管理
  510. $.excludeUrlMap.put("SYSVERSI02",serverUrl);//版本管理
  511. $.excludeUrlMap.put("SYSVERSI03",serverUrl);//版本管理
  512. $.excludeUrlMap.put("SYSVERSI04",serverUrl);//版本管理
  513. $.excludeUrlMap.put("TRADEMAR01",serverUrl);//
  514. $.excludeUrlMap.put("TRADEMAR03",serverUrl);//
  515. }
  516. /**
  517. * 获取运行时URL
  518. *
  519. * @param transCode
  520. * @param params
  521. */
  522. function getUrl(transCode, params,servletName) {
  523. if($.excludeUrlMap == null){
  524. initExcludeUrlMap();
  525. }
  526. url=$.excludeUrlMap.get(transCode);
  527. if(url){
  528. if (params == '') {
  529. return url+"?transCode=" + transCode
  530. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid");
  531. } else {
  532. return url+"?transCode=" + transCode
  533. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid") + "&" + params;
  534. }
  535. }else {
  536. if (servletName) {
  537. if (params == '') {
  538. return sysWebAppName + servletName + "?transCode=" + transCode
  539. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid");
  540. } else {
  541. return sysWebAppName + servletName + "?transCode=" + transCode
  542. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid") + "&" + params;
  543. }
  544. } else {
  545. if (params == '') {
  546. return sysWebAppName + "TransServlet?transCode=" + transCode
  547. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid");
  548. } else {
  549. return sysWebAppName + "TransServlet?transCode=" + transCode
  550. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid") + "&" + params;
  551. }
  552. }
  553. }
  554. }
  555. function getServerUrl(transCode, params, servletName) {
  556. url = serverUrl;
  557. if (url) {
  558. if (params == '') {
  559. return url + "?transCode=" + transCode
  560. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid");
  561. } else {
  562. return url + "?transCode=" + transCode
  563. + "&clientToken=" + $.__token + "&userId=" + localStorage.getItem("userid") + "&" + params;
  564. }
  565. }
  566. }
  567. /**
  568. * 获取gzl运行时URL
  569. *
  570. * @param transCode
  571. * @param params
  572. */
  573. function getGzlUrl(transCode, params,servletName) {
  574. if(servletName){
  575. if (params == '') {
  576. return servletName+"/manager/gzl/TransServlet?transCode=" + transCode
  577. + "&clientToken=" + $.__token;
  578. } else {
  579. return servletName+"/manager/gzl/TransServlet?transCode=" + transCode
  580. + "&clientToken=" + $.__token + "&" + params;
  581. }
  582. }else{
  583. if (params == '') {
  584. return sysWebAppName+"manager/gzl/TransServlet?transCode=" + transCode
  585. + "&clientToken=" + $.__token;
  586. } else {
  587. return sysWebAppName+"manager/gzl/TransServlet?transCode=" + transCode
  588. + "&clientToken=" + $.__token + "&" + params;
  589. }
  590. }
  591. }
  592. /**
  593. * 获取ineyes运行时URL
  594. *
  595. * @param transCode
  596. * @param params
  597. */
  598. function getIneyesUrl(transCode, params,servletName) {
  599. if(servletName){
  600. if (params == '') {
  601. return "/manager/ineyes/TransServlet?transCode=" + transCode
  602. + "&clientToken=" + $.__token;
  603. } else {
  604. return "/manager/ineyes/TransServlet?transCode=" + transCode
  605. + "&clientToken=" + $.__token + "&" + params;
  606. }
  607. }else{
  608. if (params == '') {
  609. return "/manager/ineyes/TransServlet?transCode=" + transCode
  610. + "&clientToken=" + $.__token;
  611. } else {
  612. return "/manager/ineyes/TransServlet?transCode=" + transCode
  613. + "&clientToken=" + $.__token + "&" + params;
  614. }
  615. }
  616. }
  617. /**
  618. * 获取ineyes运行时URL
  619. *
  620. * @param transCode
  621. * @param params
  622. */
  623. // function getIneyesUrl(transCode, params,servletName) {
  624. // if(servletName){
  625. // if (params == '') {
  626. // return "/adminineyes/serviceineyes/TransServlet?transCode=" + transCode
  627. // + "&clientToken=" + $.__token;
  628. // } else {
  629. // return "/adminineyes/serviceineyes/TransServlet?transCode=" + transCode
  630. // + "&clientToken=" + $.__token + "&" + params;
  631. // }
  632. // }else{
  633. // if (params == '') {
  634. // return "/adminineyes/serviceineyes/TransServlet?transCode=" + transCode
  635. // + "&clientToken=" + $.__token;
  636. // } else {
  637. // return "/adminineyes/serviceineyes/TransServlet?transCode=" + transCode
  638. // + "&clientToken=" + $.__token + "&" + params;
  639. // }
  640. // }
  641. // }
  642. /**
  643. * ajax 通信工具类,采用同步机制
  644. */
  645. function crudAjaxCall(transCode, params, fun_success, fun_error, isLoginOut){
  646. syncAjaxCall(transCode, params, fun_success, fun_error, isLoginOut);
  647. }
  648. /**
  649. * ajax 通信工具类
  650. *
  651. * @param transCode
  652. * @param params
  653. * @param fun_success
  654. * @param fun_error
  655. * @param isLoginOut
  656. */
  657. function syncAjaxCall(transCode, params, fun_success, fun_error, isLoginOut) {
  658. if (params == null) {
  659. params = {};
  660. }
  661. __mask++;
  662. if (__mask >= 0) {
  663. showLoading(1);
  664. }
  665. url = getUrl(transCode);
  666. // sysWebAppName + 'TransServlet?transCode=' + transCode
  667. // + '&clientToken=' + $.__token;
  668. $.ajax({
  669. url : encodeURI(url),
  670. data : encodeURI(params || ''),
  671. type : "GET",
  672. dataType : "jsonp",
  673. // type : "POST",
  674. contentType : "application/x-www-form-urlencoded; charset=utf-8",
  675. // dataType : "text",
  676. timeout : ajaxTimeout,
  677. success : function(data) {
  678. //console.log(data==null); console.log(data===""); //出错时为空
  679. if (data == null || data === "")
  680. data = "{}";//return;
  681. // data = JSON.parse(data);//$.parseJSON(data); //jsonp不需要在转换一次
  682. __mask--;
  683. if (__mask == 0) {
  684. showLoading(-1);
  685. }
  686. if (data.returnCode == 'EB8000006') {
  687. if (isLoginOut) {
  688. fun_success && fun_success(data);
  689. } else {
  690. if (__login > 0)
  691. return;
  692. $.messager
  693. .confirm(
  694. '用户异常提示',
  695. '用户异常,是否重新登录。',
  696. function(r) {
  697. if (r) {
  698. $(
  699. ".leftcurtain",
  700. window.parent.document)
  701. .stop().animate({
  702. width : '50%'
  703. }, 1500);
  704. $(
  705. ".rightcurtain",
  706. window.parent.document)
  707. .stop().animate({
  708. width : '51%'
  709. }, 1500);
  710. $(
  711. ".login",
  712. window.parent.document)
  713. .show();
  714. $(
  715. ".login",
  716. window.parent.document)
  717. .find(
  718. "input[type=password]")
  719. .val("");
  720. $(
  721. ".login",
  722. window.parent.document)
  723. .find(
  724. "input[type=text]")
  725. .val("");
  726. parent.changeImage();
  727. __login--;
  728. } else {
  729. __login--;
  730. }
  731. });
  732. __login++;
  733. }
  734. } else {
  735. if (data.returnCode == successCode ) {//|| data.returnCode == microSrvcSucsCode
  736. fun_success && fun_success(data);
  737. } else {
  738. if (fun_error) {
  739. fun_error && fun_error(data);
  740. }
  741. }
  742. }
  743. },
  744. error : function(XMLHttpRequest, textStatus, errorThrown) {
  745. __mask--;
  746. if (__mask == 0) {
  747. showLoading(-1);
  748. }
  749. if (fun_error) {
  750. fun_error
  751. && fun_error(XMLHttpRequest, textStatus,
  752. errorThrown);
  753. }
  754. }
  755. });
  756. }
  757. function syncAjaxCallPost(transCode, params, fun_success, fun_error, isLoginOut) {
  758. if (params == null) {
  759. params = {};
  760. }
  761. __mask++;
  762. if (__mask >= 0) {
  763. showLoading(1);
  764. }
  765. url = getUrl(transCode);
  766. // sysWebAppName + 'TransServlet?transCode=' + transCode
  767. // + '&clientToken=' + $.__token;
  768. $.ajax({
  769. url : encodeURI(url),
  770. data : encodeURI(params || ''),
  771. type : "POST",
  772. // type : "GET",
  773. // dataType : "jsonp",
  774. contentType : "application/x-www-form-urlencoded; charset=utf-8",
  775. dataType : "json",
  776. timeout : ajaxTimeout,
  777. success : function(data) {
  778. //console.log(data==null); console.log(data===""); //出错时为空
  779. if (data == null || data === "")
  780. data = "{}";//return;
  781. // data = $.parseJSON(data);//JSON.parse(data);//
  782. __mask--;
  783. if (__mask == 0) {
  784. showLoading(-1);
  785. }
  786. if (data.returnCode == 'EB8000006') {
  787. if (isLoginOut) {
  788. fun_success && fun_success(data);
  789. } else {
  790. if (__login > 0)
  791. return;
  792. $.messager
  793. .confirm(
  794. '用户异常提示',
  795. '用户异常,是否重新登录。',
  796. function(r) {
  797. if (r) {
  798. $(
  799. ".leftcurtain",
  800. window.parent.document)
  801. .stop().animate({
  802. width : '50%'
  803. }, 1500);
  804. $(
  805. ".rightcurtain",
  806. window.parent.document)
  807. .stop().animate({
  808. width : '51%'
  809. }, 1500);
  810. $(
  811. ".login",
  812. window.parent.document)
  813. .show();
  814. $(
  815. ".login",
  816. window.parent.document)
  817. .find(
  818. "input[type=password]")
  819. .val("");
  820. $(
  821. ".login",
  822. window.parent.document)
  823. .find(
  824. "input[type=text]")
  825. .val("");
  826. parent.changeImage();
  827. __login--;
  828. } else {
  829. __login--;
  830. }
  831. });
  832. __login++;
  833. }
  834. } else {
  835. if (data.returnCode == successCode ) {//|| data.returnCode == microSrvcSucsCode
  836. fun_success && fun_success(data);
  837. } else {
  838. if (fun_error) {
  839. fun_error && fun_error(data);
  840. }
  841. }
  842. }
  843. },
  844. error : function(XMLHttpRequest, textStatus, errorThrown) {
  845. __mask--;
  846. if (__mask == 0) {
  847. showLoading(-1);
  848. }
  849. if (fun_error) {
  850. fun_error
  851. && fun_error(XMLHttpRequest, textStatus,
  852. errorThrown);
  853. }
  854. }
  855. });
  856. }
  857. function comboBox_Etr1(list, id,name,editable, required) {
  858. var editer = {
  859. type : 'combobox',
  860. options : {
  861. editable : false,
  862. required : false,
  863. data : list,
  864. valueField : id,
  865. textField : name,
  866. panelHeight : '200'
  867. }
  868. };
  869. if (editable) {
  870. editer.options.editable = editable;
  871. }
  872. if (required) {
  873. editer.options.required = required;
  874. }
  875. return editer;
  876. }
  877. /**
  878. * ajax 通信工具类
  879. *
  880. * @param transCode
  881. * @param params
  882. * @param fun_success
  883. * @param fun_error
  884. * @param isLoginOut
  885. */
  886. function synchronAjaxCall(transCode, params, fun_success, fun_error, isLoginOut) {
  887. if (params == null) {
  888. params = {};
  889. }
  890. __mask++;
  891. if (__mask >= 0) {
  892. showLoading(1);
  893. }
  894. url = getUrl(transCode);
  895. // sysWebAppName + 'TransServlet?transCode=' + transCode
  896. // + '&clientToken=' + $.__token;
  897. $.ajax({
  898. url : encodeURI(url),
  899. data : encodeURI(params || ''),
  900. type : "POST",
  901. async: false,
  902. // type : "GET",
  903. // dataType : "jsonp",
  904. contentType : "application/x-www-form-urlencoded; charset=utf-8",
  905. dataType : "text",
  906. timeout : ajaxTimeout,
  907. success : function(data) {
  908. //console.log(data==null); console.log(data===""); //出错时为空
  909. if (data == null || data === "")
  910. data = "{}";//return;
  911. // data = $.parseJSON(data);//JSON.parse(data);//
  912. __mask--;
  913. if (__mask == 0) {
  914. showLoading(-1);
  915. }
  916. if (data.returnCode == 'EB8000006') {
  917. if (isLoginOut) {
  918. fun_success && fun_success(data);
  919. } else {
  920. if (__login > 0)
  921. return;
  922. $.messager
  923. .confirm(
  924. '用户异常提示',
  925. '用户异常,是否重新登录。',
  926. function(r) {
  927. if (r) {
  928. $(
  929. ".leftcurtain",
  930. window.parent.document)
  931. .stop().animate({
  932. width : '50%'
  933. }, 1500);
  934. $(
  935. ".rightcurtain",
  936. window.parent.document)
  937. .stop().animate({
  938. width : '51%'
  939. }, 1500);
  940. $(
  941. ".login",
  942. window.parent.document)
  943. .show();
  944. $(
  945. ".login",
  946. window.parent.document)
  947. .find(
  948. "input[type=password]")
  949. .val("");
  950. $(
  951. ".login",
  952. window.parent.document)
  953. .find(
  954. "input[type=text]")
  955. .val("");
  956. parent.changeImage();
  957. __login--;
  958. } else {
  959. __login--;
  960. }
  961. });
  962. __login++;
  963. }
  964. } else {
  965. if (data.returnCode == successCode ) {//|| data.returnCode == microSrvcSucsCode
  966. fun_success && fun_success(data);
  967. } else {
  968. if (fun_error) {
  969. fun_error && fun_error(data);
  970. }
  971. }
  972. }
  973. },
  974. error : function(XMLHttpRequest, textStatus, errorThrown) {
  975. __mask--;
  976. if (__mask == 0) {
  977. showLoading(-1);
  978. }
  979. if (fun_error) {
  980. fun_error
  981. && fun_error(XMLHttpRequest, textStatus,
  982. errorThrown);
  983. }
  984. }
  985. });
  986. }
  987. // edatagrid通讯数据过滤处理
  988. function loadFilterError(data) {
  989. if (data.returnCode == 'EB8000006') {
  990. $.messager.confirm('用户异常提示', '用户异常,是否重新登录。', function(r) {
  991. if (r) {
  992. $(".leftcurtain", window.parent.document).stop().animate({
  993. width : '50%'
  994. }, 1500);
  995. $(".rightcurtain", window.parent.document).stop().animate({
  996. width : '51%'
  997. }, 1500);
  998. $(".login", window.parent.document).show();
  999. $(".login", window.parent.document).find(
  1000. "input[type=password]").val("");
  1001. $(".login", window.parent.document)
  1002. .find("input[type=text]").val("");
  1003. parent.changeImage();
  1004. }
  1005. });
  1006. } else {
  1007. if (data.returnCode == '000000000' || data.returnCode == '0000000') {
  1008. return;
  1009. }else{
  1010. $.messager.alert('系统错误', '错误码:[' + data.returnCode + '],错误信息:['
  1011. + data.returnMsg + '].', 'error');
  1012. }
  1013. }
  1014. }
  1015. /*******************************************************************************
  1016. * ajax form file upload
  1017. *
  1018. * @param formId
  1019. * @param fun_success
  1020. * @param fun_error
  1021. */
  1022. function ajaxFormUpload(formId, fun_success, fun_error) {
  1023. url = sysWebAppName + 'TransServlet';
  1024. $("#" + formId).form(
  1025. 'submit',
  1026. {
  1027. url : encodeURI(url),
  1028. timeout : ajaxTimeout,
  1029. async : false,
  1030. traditional : false,
  1031. cache : false,
  1032. ajaxSubmit : function() {
  1033. return true;
  1034. },
  1035. success : function(result) {
  1036. var data = (new Function("return " + result))();
  1037. if (data.returnCode == 'EB8000006') {
  1038. $.messager.confirm('用户异常提示', '用户异常,是否重新登录。',
  1039. function(r) {
  1040. if (r) {
  1041. $(".leftcurtain",
  1042. window.parent.document).stop()
  1043. .animate({
  1044. width : '50%'
  1045. }, 1500);
  1046. $(".rightcurtain",
  1047. window.parent.document).stop()
  1048. .animate({
  1049. width : '51%'
  1050. }, 1500);
  1051. $(".login", window.parent.document)
  1052. .show("slow").find(
  1053. "input[type=password]")
  1054. .val("");
  1055. parent.changeImage();
  1056. }
  1057. });
  1058. } else {
  1059. if (data.returnCode == successCode ) {
  1060. fun_success && fun_success(data);
  1061. } else {
  1062. if (fun_error) {
  1063. fun_error && fun_error(data);
  1064. }
  1065. }
  1066. }
  1067. },
  1068. onLoadError : function() {
  1069. $.messager.alert('系统错误', '网络或系统忙提交失败,请重试!', 'error');
  1070. }
  1071. });
  1072. }
  1073. /**
  1074. * 构建js Map工具类
  1075. *
  1076. * @returns {MapUtils}
  1077. */
  1078. function MapUtils() {
  1079. this.elements = new Array();
  1080. // 获取MAP元素个数
  1081. this.size = function() {
  1082. return this.elements.length;
  1083. };
  1084. // 判断MAP是否为空
  1085. this.isEmpty = function() {
  1086. return (this.elements.length < 1);
  1087. };
  1088. // 删除MAP所有元素
  1089. this.clear = function() {
  1090. this.elements = new Array();
  1091. };
  1092. // 向MAP中增加元素(key, value)
  1093. this.put = function(_key, _value) {
  1094. if (this.get(_key) != null) {
  1095. this.remove(_key);
  1096. }
  1097. this.elements.push({
  1098. key : _key,
  1099. value : _value
  1100. });
  1101. };
  1102. // 把一个json数组放到map中 ,并且指定 key值所在的字段
  1103. this.putJson = function(_keyName, _json) {
  1104. _json = _json == undefined ? [] : _json;
  1105. var i = 0;
  1106. for (; i < _json.length; i++) {
  1107. this.put(_json[i][_keyName], _json[i]);
  1108. }
  1109. };
  1110. // 删除指定KEY的元素,成功返回True,失败返回False
  1111. this.remove = function(_key) {
  1112. var bln = false;
  1113. try {
  1114. var i = 0;
  1115. for (; i < this.elements.length; i++) {
  1116. if (this.elements[i].key == _key) {
  1117. this.elements.splice(i, 1);
  1118. return true;
  1119. }
  1120. }
  1121. } catch (e) {
  1122. bln = false;
  1123. }
  1124. return bln;
  1125. };
  1126. // 获取指定KEY的元素值VALUE,失败返回NULL
  1127. this.get = function(_key) {
  1128. try {
  1129. var i = 0;
  1130. for (; i < this.elements.length; i++) {
  1131. if (this.elements[i].key == _key) {
  1132. return this.elements[i].value;
  1133. }
  1134. }
  1135. } catch (e) {
  1136. return null;
  1137. }
  1138. };
  1139. // 获取MAP中所有VALUE的数组(ARRAY)
  1140. this.values = function() {
  1141. var arr = new Array();
  1142. var i = 0;
  1143. for (; i < this.elements.length; i++) {
  1144. arr.push(this.elements[i].value);
  1145. }
  1146. return arr;
  1147. };
  1148. this.keys=function () {
  1149. var arr = new Array();
  1150. var i = 0;
  1151. for (; i < this.elements.length; i++) {
  1152. arr.push(this.elements[i].key);
  1153. }
  1154. return arr;
  1155. }
  1156. }
  1157. /**
  1158. * 页面加载遮罩函数 1显示遮罩 非1隐藏遮罩
  1159. *
  1160. * @param show_or_hide
  1161. */
  1162. function showLoading(show_or_hide) {
  1163. setTimeout(
  1164. function() {
  1165. if (show_or_hide == 1) {
  1166. if ($("#ajaxLoadingMask", window.parent.document).length == 0)
  1167. $("body", window.parent.document)
  1168. .append(
  1169. "<div id='ajaxLoadingMask' style='display:none;background:#000;position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:30000;filter:alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;'></div>");
  1170. var mask = $("#ajaxLoadingMask", window.parent.document);
  1171. if ($("#ajaxLoadingIcon", window.parent.document).length == 0)
  1172. $("body", window.parent.document)
  1173. .append(
  1174. "<div id='ajaxLoadingIcon' style='display:none;color:#000;z-index:30001;position:absolute;left:100px;top:100px;'><div class='icon-showloading'></div><b>请稍候...</b></div>");
  1175. var icon = $("#ajaxLoadingIcon", window.parent.document);
  1176. var bh = $(window.parent.document).height();
  1177. var wh = $(window.parent.document).height();
  1178. mask.height(bh > wh ? bh : wh).fadeIn();
  1179. icon
  1180. .css(
  1181. "top",
  1182. ($(window.parent.document).height() - icon
  1183. .height())
  1184. / 2
  1185. + $(window.parent.document)
  1186. .scrollTop()).css(
  1187. "left",
  1188. ($(window.parent.document).width() - icon
  1189. .width()) / 2).fadeIn();
  1190. } else {
  1191. var mask2 = $("#ajaxLoadingMask", window.parent.document);
  1192. var icon2 = $("#ajaxLoadingIcon", window.parent.document);
  1193. mask2.fadeOut();
  1194. icon2.fadeOut();
  1195. }
  1196. }, 20);
  1197. }
  1198. /*
  1199. * 两个json数组拼接treeJson @param
  1200. * opt{parentArray:{},childArray:{},confParFiled:{id:'xxx',text:'xxx'},confChdFiled:{id:'xxx',text:'xxx'},linkFiled:{par:'xxx',chd:'xxx'}}
  1201. * xxx代表对应的字段名 @returns {Array}
  1202. */
  1203. function array2tree(opt) {
  1204. var _opt = opt || {}, _parAy = _opt.parentArray || [], _childAy = _opt.childArray
  1205. || [], _confParFiled = _opt.confParFiled || {}, _confChdFiled = _opt.confChdFiled
  1206. || {}, _linkFiled = _opt.linkFiled || {};
  1207. var _treeJson = [];
  1208. for ( var i = 0; i < _parAy.length; i++) {
  1209. var _tempTree = {};
  1210. _tempTree.id = _parAy[i][_confParFiled.id];
  1211. _tempTree.text = _parAy[i][_confParFiled.text];
  1212. _tempTree.children = [];
  1213. for ( var j = 0; j < _childAy.length; j++) {
  1214. if (_childAy[j][_linkFiled.chd] == _parAy[i][_linkFiled.par]) {
  1215. var _sortTree = {};
  1216. _sortTree.id = _childAy[j][_confChdFiled.id];
  1217. _sortTree.text = _childAy[j][_confChdFiled.text];
  1218. _tempTree.children.push(_sortTree);
  1219. }
  1220. }
  1221. _treeJson.push(_tempTree);
  1222. }
  1223. return _treeJson;
  1224. }
  1225. /**
  1226. * json格式转树状结构
  1227. *
  1228. * @param {json}
  1229. * json数据
  1230. * @param {String}
  1231. * id的字符串
  1232. * @param {String}
  1233. * 父id的字符串
  1234. * @param {String}
  1235. * children的字符串
  1236. * @return {Array} 数组
  1237. */
  1238. function arrayToTree(a, idStr, pidStr, chindrenStr, aId, aText) {
  1239. var r = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, i = 0, j = 0, len = a.length;
  1240. for (; i < len; i++) {
  1241. hash[a[i][id]] = a[i];
  1242. }
  1243. if (aId == null || aId == undefined || aText == null || aText == undefined) {
  1244. for (; j < len; j++) {
  1245. var aVal = a[j], hashVP = hash[aVal[pid]];
  1246. if (hashVP) {
  1247. !hashVP[children] && (hashVP[children] = []);
  1248. hashVP[children].push(aVal);
  1249. } else {
  1250. r.push(aVal);
  1251. }
  1252. }
  1253. } else {
  1254. for (; j < len; j++) {
  1255. var aVal = a[j], hashVP = hash[aVal[pid]];
  1256. var tree = {};
  1257. if (hashVP) {
  1258. !hashVP[children] && (hashVP[children] = []);
  1259. tree.id = aVal[aId];
  1260. tree.text = aVal[aText];
  1261. if (aVal.children) {
  1262. tree.children = aVal.children;
  1263. }
  1264. hashVP[children].push(tree);
  1265. } else {
  1266. tree.id = aVal[aId];
  1267. tree.text = aVal[aText];
  1268. tree.children = aVal[children];
  1269. r.push(tree);
  1270. }
  1271. }
  1272. }
  1273. return r;
  1274. }
  1275. /*******************************************************************************
  1276. * 数字转中文
  1277. *
  1278. * @param obj
  1279. * @returns {String}
  1280. */
  1281. function chinesenumeral(obj) {
  1282. var Num = $("#" + obj.id).val();
  1283. Num = Num.replace(/,/g, "");// 替换Num中的","
  1284. var numberValue = new String(Math.round(Num * 100)); // 数字金额
  1285. var chineseValue = ""; // 转换后的汉字金额
  1286. var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
  1287. var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
  1288. var len = numberValue.length; // numberValue 的字符串长度
  1289. var Ch1; // 数字的汉语读法
  1290. var Ch2; // 数字位的汉字读法
  1291. var nZero = 0; // 用来计算连续的零值的个数
  1292. var String3; // 指定位置的数值
  1293. if (len > 15) {
  1294. alert("超出计算范围");
  1295. return "";
  1296. }
  1297. if (numberValue == 0) {
  1298. chineseValue = "零元整";
  1299. return chineseValue;
  1300. }
  1301. String2 = String2.substr(String2.length - len, len); // 取出对应位数的STRING2的值
  1302. for ( var i = 0; i < len; i++) {
  1303. String3 = parseInt(numberValue.substr(i, 1), 10); // 取出需转换的某一位的值
  1304. if (i != (len - 3) && i != (len - 7) && i != (len - 11)
  1305. && i != (len - 15)) {
  1306. if (String3 == 0) {
  1307. Ch1 = "";
  1308. Ch2 = "";
  1309. nZero = nZero + 1;
  1310. } else if (String3 != 0 && nZero != 0) {
  1311. Ch1 = "零" + String1.substr(String3, 1);
  1312. Ch2 = String2.substr(i, 1);
  1313. nZero = 0;
  1314. } else {
  1315. Ch1 = String1.substr(String3, 1);
  1316. Ch2 = String2.substr(i, 1);
  1317. nZero = 0;
  1318. }
  1319. } else { // 该位是万亿,亿,万,元位等关键位
  1320. if (String3 != 0 && nZero != 0) {
  1321. Ch1 = "零" + String1.substr(String3, 1);
  1322. Ch2 = String2.substr(i, 1);
  1323. nZero = 0;
  1324. } else if (String3 != 0 && nZero == 0) {
  1325. Ch1 = String1.substr(String3, 1);
  1326. Ch2 = String2.substr(i, 1);
  1327. nZero = 0;
  1328. } else if (String3 == 0 && nZero >= 3) {
  1329. Ch1 = "";
  1330. Ch2 = "";
  1331. nZero = nZero + 1;
  1332. } else {
  1333. Ch1 = "";
  1334. Ch2 = String2.substr(i, 1);
  1335. nZero = nZero + 1;
  1336. }
  1337. if (i == (len - 11) || i == (len - 3)) { // 如果该位是亿位或元位,则必须写上
  1338. Ch2 = String2.substr(i, 1);
  1339. }
  1340. }
  1341. chineseValue = chineseValue + Ch1 + Ch2;
  1342. }
  1343. if (String3 == 0) { // 最后一位(分)为0时,加上“整”
  1344. chineseValue = chineseValue + "整";
  1345. }
  1346. $("#chinesenumeral").html(
  1347. "<span id='chinesenumeral'>大写金额:" + chineseValue + "</span>");
  1348. }
  1349. /*
  1350. * @author:wangwanhua @date:2013-05-30
  1351. * @desc:此方法实现将非id和text类型json数据的combotree转换为以id和text类型命名的json数据,
  1352. * 参数说明:rows(要转换的json),mid(id),mparentId(父id),mName(text)
  1353. */
  1354. function convert(rows, mid, mparentId, mName) {
  1355. function exists(rows, cparentId) {
  1356. for ( var i = 0; i < rows.length; i++) {
  1357. if (rows[i][mid] == cparentId)
  1358. return true;
  1359. }
  1360. return false;
  1361. }
  1362. var nodes = [];
  1363. // get the top level nodes
  1364. for ( var i = 0; i < rows.length; i++) {
  1365. var row = rows[i];
  1366. if (!exists(rows, row[mparentId])) {
  1367. nodes.push({
  1368. id : row[mid],
  1369. text : row[mName]
  1370. });
  1371. }
  1372. }
  1373. var toDo = [];
  1374. for ( var i = 0; i < nodes.length; i++) {
  1375. toDo.push(nodes[i]);
  1376. }
  1377. while (toDo.length) {
  1378. var node = toDo.shift(); // the parent node
  1379. // get the children nodes
  1380. for ( var i = 0; i < rows.length; i++) {
  1381. var row = rows[i];
  1382. if (row[mparentId] == node.id) {
  1383. var child = {
  1384. id : row[mid],
  1385. text : row[mName]
  1386. };
  1387. if (node.children) {
  1388. node.children.push(child);
  1389. } else {
  1390. node.children = [ child ];
  1391. }
  1392. toDo.push(child);
  1393. }
  1394. }
  1395. }
  1396. return nodes;
  1397. }
  1398. /*******************************************************************************
  1399. * html页面间 获取参数值
  1400. *
  1401. * @param name
  1402. * @returns
  1403. */
  1404. function getQueryString(name) {
  1405. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  1406. var r = window.location.search.substr(1).match(reg);
  1407. if (r != null) {
  1408. return unescape(r[2]);
  1409. }
  1410. return null;
  1411. }
  1412. /*******************************************************************************
  1413. * 根据数据列键值对,见','分割串ids转换为','分割values串
  1414. */
  1415. function listFormat(list, value, idtag, valuetag) {
  1416. if (!value && value != 0) {
  1417. return value;
  1418. }
  1419. inarray = value.split(",");
  1420. retarray = new Array();
  1421. for ( var i = 0; i < inarray.length; i++) {
  1422. for ( var j = 0; j < list.length; j++) {
  1423. if (list[j][idtag] == inarray[i]) {
  1424. if (list[j][valuetag]) {
  1425. retarray.push(list[j][valuetag]);
  1426. } else {
  1427. retarray.push(inarray[i]);
  1428. }
  1429. }
  1430. }
  1431. }
  1432. return retarray.join(",");
  1433. }
  1434. /*******************************************************************************
  1435. * 标准数据格式化
  1436. *
  1437. * @param codetype
  1438. * 标准分类
  1439. * @param value
  1440. * 页面字段值
  1441. * @return 返回字段含义或描述
  1442. */
  1443. function dataFormat(codetype, value) {
  1444. if (!value && value != 0) {
  1445. return value;
  1446. }
  1447. var stdData = $.mapData.get(codetype);
  1448. if (!stdData)
  1449. return value;
  1450. if (stdData[value]) {
  1451. return stdData[value];
  1452. } else {
  1453. inarray = value.split(",");
  1454. retarray = new Array();
  1455. for ( var i = 0; i < inarray.length; i++) {
  1456. if (stdData[inarray[i]]) {
  1457. retarray.push(stdData[inarray[i]]);
  1458. } else {
  1459. retarray.push(inarray[i]);
  1460. }
  1461. }
  1462. return retarray.join(",");
  1463. }
  1464. }
  1465. /**
  1466. * 从servlet获取数据
  1467. *
  1468. */
  1469. function getComboData(servlet,param)
  1470. {
  1471. var channelListTmp=[]; //角色列表数据
  1472. var channelList=[];
  1473. /*var obj = {
  1474. "id":"all",
  1475. "text":"全部"
  1476. }
  1477. channelList.push(obj);*/
  1478. var p =""+ "&channelNo=service&page=1&rows=-1&orderBy="+param;
  1479. crudAjaxCall(servlet, p, function(data){
  1480. if(data){
  1481. channelListTmp = data.rows;
  1482. if(channelListTmp){
  1483. for(var i=0; i < channelListTmp.length;i++) {
  1484. var tmp = {};
  1485. var obj = {
  1486. "id":channelListTmp[i].id,
  1487. "text":channelListTmp[i][param]
  1488. }
  1489. channelList.push(obj);
  1490. }
  1491. }
  1492. }
  1493. });
  1494. return channelList;
  1495. }
  1496. /**
  1497. * 从servlet获取数据
  1498. *
  1499. */
  1500. function getComboDatamanager(servlet,param)
  1501. {
  1502. var channelListTmp=[]; //角色列表数据
  1503. var channelList=[];
  1504. /*var obj = {
  1505. "id":"all",
  1506. "text":"全部"
  1507. }
  1508. channelList.push(obj);*/
  1509. var p =""+ "&channelNo=manager&page=1&rows=-1";
  1510. crudAjaxCall(servlet, p, function(data){
  1511. if(data){
  1512. channelListTmp = data.rows;
  1513. if(channelListTmp){
  1514. for(var i=0; i < channelListTmp.length;i++) {
  1515. var tmp = {};
  1516. var obj = {
  1517. "id":channelListTmp[i].userid,
  1518. "text":channelListTmp[i][param]
  1519. }
  1520. channelList.push(obj);
  1521. }
  1522. }
  1523. }
  1524. });
  1525. return channelList;
  1526. }
  1527. /**
  1528. * 从servlet获取数据
  1529. * 术语标签管理表中特定类别的数据
  1530. *
  1531. */
  1532. function getComboDatafenlei(servlet,param,fenlei)
  1533. {
  1534. var channelListTmp=[]; //角色列表数据
  1535. var channelList=[];
  1536. /*var obj = {
  1537. "id":"all",
  1538. "text":"全部"
  1539. }
  1540. channelList.push(obj);*/
  1541. var p =""+ "&channelNo=service&orderBy=tagindexno&page=1&rows=-1";
  1542. crudAjaxCall(servlet, p, function(data){
  1543. if(data){
  1544. channelListTmp = data.rows;
  1545. if(channelListTmp){
  1546. for(var i=0; i < channelListTmp.length;i++) {
  1547. var tmp = {};
  1548. var obj = {
  1549. "id":channelListTmp[i].id,
  1550. "text":channelListTmp[i][param]
  1551. }
  1552. if(channelListTmp[i].tagstate == fenlei){
  1553. channelList.push(obj);}
  1554. }
  1555. }
  1556. }
  1557. });
  1558. return channelList;
  1559. }
  1560. function addDefData(codetype) {
  1561. var data=getListData(codetype);
  1562. data.push({"id" : "",
  1563. "text" : "全部"});
  1564. return data;
  1565. }
  1566. /**
  1567. * 获取标准数据转换为ComBox加载
  1568. *
  1569. * @param codetype
  1570. * @param del_id
  1571. * 需要去除的object的id值
  1572. * @returns
  1573. */
  1574. function getListData(codetype,del_id) {
  1575. var data = [];
  1576. var stdData = $.mapData.get(codetype);
  1577. for ( var key in stdData) {
  1578. var obj = {
  1579. "id" : key,
  1580. "text" : stdData[key]
  1581. };
  1582. if(key!=del_id)
  1583. data.push(obj);
  1584. }
  1585. return data;
  1586. };
  1587. /**
  1588. * 获取标准数据类型id的描述
  1589. * @param codetype
  1590. * @param id
  1591. */
  1592. function getTypeDecs(codetype,id){
  1593. var stdData = $.mapData.get(codetype);
  1594. if(stdData){
  1595. if(stdData[id] != undefined){
  1596. return stdData[id];
  1597. }
  1598. }
  1599. return id;
  1600. }
  1601. /**
  1602. * json字符串格式化
  1603. */
  1604. var formatJson = function(json, options) {
  1605. var reg = null, formatted = '', pad = 0, PADDING = ' '; // one can also
  1606. // use '\t' or a
  1607. // different
  1608. // number of
  1609. // spaces
  1610. // optional settings
  1611. options = options || {};
  1612. // remove newline where '{' or '[' follows ':'
  1613. options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true
  1614. : false;
  1615. // use a space after a colon
  1616. options.spaceAfterColon = (options.spaceAfterColon === false) ? false
  1617. : true;
  1618. // begin formatting...
  1619. if (typeof json !== 'string') {
  1620. // make sure we start with the JSON as a string
  1621. json = JSON.stringify(json);
  1622. } else {
  1623. // is already a string, so parse and re-stringify in order to remove
  1624. // extra whitespace
  1625. json = JSON.parse(json);
  1626. json = JSON.stringify(json);
  1627. }
  1628. // add newline before and after curly braces
  1629. reg = /([\{\}])/g;
  1630. json = json.replace(reg, '\r\n$1\r\n');
  1631. // add newline before and after square brackets
  1632. reg = /([\[\]])/g;
  1633. json = json.replace(reg, '\r\n$1\r\n');
  1634. // add newline after comma
  1635. reg = /(\,)/g;
  1636. json = json.replace(reg, '$1\r\n');
  1637. // remove multiple newlines
  1638. reg = /(\r\n\r\n)/g;
  1639. json = json.replace(reg, '\r\n');
  1640. // remove newlines before commas
  1641. reg = /\r\n\,/g;
  1642. json = json.replace(reg, ',');
  1643. // optional formatting...
  1644. if (!options.newlineAfterColonIfBeforeBraceOrBracket) {
  1645. reg = /\:\r\n\{/g;
  1646. json = json.replace(reg, ':{');
  1647. reg = /\:\r\n\[/g;
  1648. json = json.replace(reg, ':[');
  1649. }
  1650. if (options.spaceAfterColon) {
  1651. reg = /\:/g;
  1652. json = json.replace(reg, ':');
  1653. }
  1654. $.each(json.split('\r\n'), function(index, node) {
  1655. var i = 0, indent = 0, padding = '';
  1656. if (node.match(/\{$/) || node.match(/\[$/)) {
  1657. indent = 1;
  1658. } else if (node.match(/\}/) || node.match(/\]/)) {
  1659. if (pad !== 0) {
  1660. pad -= 1;
  1661. }
  1662. } else {
  1663. indent = 0;
  1664. }
  1665. for (i = 0; i < pad; i++) {
  1666. padding += PADDING;
  1667. }
  1668. formatted += padding + node + '\r\n';
  1669. pad += indent;
  1670. });
  1671. return formatted.trim();
  1672. };
  1673. //获取url中指定的字段值
  1674. function geturlcode(name,url){
  1675. var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  1676. var r =null;
  1677. if(url) {
  1678. var url1 = url.split("#")[0];
  1679. r = url1.substr(url1.indexOf('?')+1).match(reg);
  1680. } else {
  1681. r = window.location.search.substr(1).match(reg);
  1682. }
  1683. if(r!=null)
  1684. return unescape(r[2]);
  1685. return null;
  1686. }
  1687. function formatTime(date) {
  1688. var year = date.getFullYear();
  1689. var month = date.getMonth() + 1;
  1690. var day = date.getDate();
  1691. var hour = date.getHours();
  1692. var minute = date.getMinutes();
  1693. var second = date.getSeconds();
  1694. return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':');
  1695. }
  1696. //获取YYYY-MM-DD hh:mm:ss格式的当前北京时间
  1697. function formatTimeZone(date){
  1698. var timezone = 8; //目标时区时间,东八区
  1699. var offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟
  1700. var nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
  1701. var date = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
  1702. return formatTime(date);
  1703. }
  1704. //小于10前面加0补位
  1705. function formatNumber(n) {
  1706. n = n.toString();
  1707. return n[1] ? n : '0' + n;
  1708. }
  1709. //获取当前时间的格式化时间
  1710. function getNowFormatTime() {
  1711. var oDate = new Date(),
  1712. oYear = oDate.getFullYear(),
  1713. oMonth = oDate.getMonth()+1,
  1714. oDay = oDate.getDate(),
  1715. oHour = oDate.getHours(),
  1716. oMin = oDate.getMinutes(),
  1717. oSen = oDate.getSeconds(),
  1718. oTime = oYear +'-'+ getzf(oMonth) +'-'+ getzf(oDay) +' '+ getzf(oHour) +':'+ getzf(oMin) +':'+getzf(oSen);//最后拼接时间
  1719. return oTime;
  1720. }
  1721. //补0操作
  1722. function getzf(num){
  1723. if(parseInt(num) < 10){
  1724. num = '0'+num;
  1725. }
  1726. return num;
  1727. }