xeasyui.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. /**
  2. * Xeasyui 1.0
  3. * ==============================
  4. * 作者:徐伟
  5. * 日期:2019-08-14
  6. * ==============================
  7. */
  8. document.write('<link rel="shortcut icon" href="/img/logo.png" />');
  9. document.write('<link rel="bookmark" href="/img/logo.png" />');
  10. document.write('<link rel="stylesheet" type="text/css" href="/plugins/jquery-easyui-1.8.3/themes/bootstrap/easyui.css" id="theme">');
  11. document.write('<link rel="stylesheet" type="text/css" href="/plugins/jquery-easyui-1.8.3/themes/icon.css">');
  12. document.write('<script type="text/javascript" src="/plugins/jquery-easyui-1.8.3/jquery.min.js"></script>');
  13. document.write('<script type="text/javascript" src="/plugins/jquery-easyui-1.8.3/jquery.easyui.min.js"></script>');
  14. //document.write('<script type="text/javascript" src="/plugins/jquery-easyui-1.8.3/treegrid-dnd.js"></script>');
  15. document.write('<script type="text/javascript" src="/plugins/jquery-easyui-1.8.3/locale/easyui-lang-zh_CN.js"></script>');
  16. document.write('<link rel="stylesheet" type="text/css" href="/plugins/xeasyui/xeasyui.css">');
  17. function request(paras) {
  18. var url = location.href;
  19. var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
  20. var paraObj = {};
  21. for (i = 0; j = paraString[i]; i++) {
  22. paraObj[decodeURI(j.substring(0, j.indexOf("=")).toLowerCase())] = j.substring(j.indexOf("=") + 1, j.length);
  23. }
  24. var returnValue = paraObj[decodeURI(paras.toLowerCase())];
  25. if (typeof (returnValue) == "undefined") {
  26. return "";
  27. }
  28. else {
  29. return decodeURI(returnValue);
  30. }
  31. }
  32. var dk = {
  33. 'currentPath': window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1),
  34. 'treeTag': 'treePanel',
  35. 'tabTag': 'tabPanel',
  36. 'tabAllowRepeat': false,
  37. 'dialogTag': 'dd',
  38. 'dialogWidth': 800,
  39. 'dialogHeight': 600,
  40. 'dialogModal': true,
  41. 'dialogTarget': window.parent,
  42. //'dialogTarget' : window,
  43. 'formTag': 'ff',
  44. 'datagridTag': 'dg',
  45. 'datagridtoolbarTag': 'tb',
  46. 'datagridsearchtextTag': 'toolbarSearchtext',
  47. 'datagridcheckboxTag': 'toolbarCheckbox',
  48. 'datagridcheckboxShow': false,
  49. 'afterSaveUrl': '',
  50. 'uploadfileUrl': '/plugins/UEditor/net/controller.ashx?action=uploadfile&encode=utf-8',
  51. 'treeShow': function (ops) {
  52. var treeTag = typeof (ops.treeTag) == 'undefined' ? xw.treeTag : ops.treeTag;
  53. $('#' + treeTag).tree({
  54. url: typeof(ops.url) == 'undefined' ? '' : ops.url,
  55. method: typeof(ops.method) == 'undefined' ? 'post' : ops.method,
  56. animate: typeof(ops.animate) == 'undefined' ? true : ops.animate,
  57. lines: typeof(ops.lines) == 'undefined' ? false : ops.lines,
  58. onClick: function (node) {
  59. if ($('#' + treeTag).tree('isLeaf', node.target)) {
  60. var trueUrl;
  61. trueUrl = node.attributes.url.replace('@资讯类别', node.attributes['资讯类别']);
  62. //==============================================
  63. switch (node.attributes.target) {
  64. case '_blank': {
  65. window.open(trueUrl);
  66. break;
  67. }
  68. case '_self': {
  69. window.location = trueUrl;
  70. break;
  71. }
  72. case '_tabs': {
  73. xw.tabOpen({ title: node.text, url: trueUrl, closable: true });
  74. break;
  75. }
  76. default: {
  77. xw.tabOpen({ title: node.text, url: trueUrl, closable: true });
  78. }
  79. }
  80. //==============================================
  81. }
  82. },
  83. onBeforeLoad: function (node, param) {
  84. $.messager.progress();
  85. },
  86. onLoadSuccess: function (node, data) {
  87. $.messager.progress('close');
  88. }
  89. });
  90. },
  91. 'tabOpen': function (ops) {
  92. var tabTag = typeof (ops.tabTag) == 'undefined' ? xw.tabTag : ops.tabTag;
  93. var url = typeof(ops.url) == 'undefined' ? '' : ops.url;
  94. var title = typeof(ops.title) == 'undefined' ? '' : ops.title;
  95. var id = typeof(ops.id) == 'undefined' ? ops.title : ops.id;
  96. var closable = typeof (ops.closable) == 'undefined' ? true : ops.closable;
  97. if ($('#' + tabTag).tabs('exists', title) && !xw.tabAllowRepeat) {
  98. $('#' + tabTag).tabs('select', title);
  99. }
  100. else {
  101. $('#' + tabTag).tabs('add', {
  102. id: id,
  103. title: title,
  104. closable: closable,
  105. //href: url
  106. //content:'<iframe scrolling="yes" frameborder="0" src="'+url+'" style="width:100%;height:99%;"></iframe>'
  107. content: '<div style="overflow:hidden;width:100%;height:100%;-webkit-overflow-scrolling: touch;"><iframe id="' + id + 'Frame" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe></div>'
  108. //bodyCls: 'content-doc',
  109. //href: url,
  110. //extractor: function (data) {
  111. // data = $.fn.panel.defaults.extractor(data);
  112. // return data;
  113. //}
  114. });
  115. }
  116. },
  117. 'datagridShow': function (ops) {
  118. //var dgSingleSelect = false;
  119. //if ($.fn.jquery < '2.0.0') { dgSingleSelect = true; }
  120. var datagridTag = typeof (ops.datagridTag) == 'undefined' ? xw.datagridTag : ops.datagridTag;
  121. var searchtextTag = typeof (ops.searchtextTag) == 'undefined' ? xw.datagridsearchtextTag : ops.searchtextTag;
  122. var ssParams = typeof (ops.queryParams) == 'undefined' ? "" : ops.queryParams;
  123. if (request('ss') != "") ssParams = request('ss');
  124. var queryParams = ssParams == "" ? "" : eval('(' + ssParams + ')');
  125. if (ssParams != '' && ssParams != '{}') {
  126. $('#' + searchtextTag).linkbutton({
  127. iconCls: 'icon-redo',
  128. text: ssParams,
  129. plain: true,
  130. onClick: toolbarSearchText
  131. });
  132. //$('#' + datagridTag).datagrid('load', eval('(' + request('ss') + ')'));
  133. }
  134. //数据表格
  135. $('#' + datagridTag).datagrid({
  136. iconCls: typeof (ops.iconCls) == 'undefined' ? 'icon-grid' : ops.iconCls,
  137. title: typeof (ops.title) == 'undefined' ? '' : ops.title,
  138. idField: typeof (ops.idField) == 'undefined' ? '标识' : ops.idField,
  139. fit: true,
  140. fitColumns: false,
  141. rownumbers: true,
  142. pagination: true,
  143. remoteSort: true,
  144. multiSort: false,
  145. singleSelect: false,
  146. checkOnSelect: true,
  147. selectOnCheck: true,
  148. ctrlSelect: true,
  149. url: typeof (ops.url) == 'undefined' ? '' : ops.url,
  150. queryParams: queryParams,
  151. method: 'post',
  152. border: false,
  153. collapsible: true,
  154. pageSize: typeof (ops.pageSize) == 'undefined' ? 10 : ops.pageSize,
  155. pageList: typeof (ops.pageList) == 'undefined' ? [10, 15, 20, 25, 30, 35, 40, 45, 50] : ops.pageList,
  156. //autoRowHeight: false,
  157. //rowStyler: function (index, row) {
  158. // return 'height:32px'
  159. //},
  160. //treeField: '名称',
  161. //onLoadSuccess: function (row) {
  162. // $('#' + datagridTag).treegrid('enableDnd', row ? row.id : null);
  163. //}
  164. });
  165. },
  166. 'datagridToolbarCheckBox': function () {
  167. if ($.fn.jquery < '2.0.0') {
  168. //小于2.0.0版本的checkbox处理
  169. if (xw.datagridcheckboxShow) {
  170. xw.datagridcheckboxShow = false;
  171. $('#' + xw.datagridTag).datagrid('hideColumn', 'guid');
  172. //$('#' + xw.datagridTag).datagrid({ singleSelect: true });
  173. }
  174. else {
  175. xw.datagridcheckboxShow = true;
  176. $('#' + xw.datagridTag).datagrid('showColumn', 'guid');
  177. //$('#' + xw.datagridTag).datagrid({ singleSelect: false });
  178. }
  179. }
  180. else {
  181. //大于2.0.0版本的checkbox处理
  182. $('#' + xw.datagridTag).datagrid($('#' + xw.datagridcheckboxTag).linkbutton('options').selected ? 'hideColumn' : 'showColumn', 'guid');
  183. }
  184. },
  185. 'datagridDelete': function (ops) {
  186. var datagridTag = typeof (ops.datagridTag) == 'undefined' ? xw.datagridTag : ops.datagridTag;
  187. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  188. var rowCount = $('#' + datagridTag).datagrid('getSelections').length;
  189. if (rowCount > 0) {
  190. $.messager.confirm('删除操作', '您确定要删除选定的 ' + rowCount + ' 条记录吗?', function (r) {
  191. if (r) {
  192. var idstr = '';
  193. var idname = $('#' + datagridTag).datagrid('options').idField;
  194. for (i = 0; i < $('#' + datagridTag).datagrid('getSelections').length; i++) {
  195. if (i > 0) idstr += ",";
  196. idstr += $('#' + datagridTag).datagrid('getSelections')[i][idname];
  197. }
  198. var jsonstr = '{' + idname + ':"' + idstr + '"}';
  199. $.post(url, eval('(' + jsonstr + ')'), function (data) {
  200. var result = eval("(" + data + ")");
  201. if (result['success'] == 'true' || result['success'] == true) {
  202. //删除成功
  203. $('#' + datagridTag).datagrid('reload');
  204. }
  205. else {
  206. //删除失败
  207. alert(result['message']);
  208. }
  209. });
  210. }
  211. });
  212. }
  213. else {
  214. $.messager.alert('删除操作', '您还没有选择任何记录!', 'info');
  215. }
  216. },
  217. 'datagridReloadFromDialog': function () {
  218. var dgTag = xw.datagridTag;
  219. var ddTarget = xw.dialogTarget;
  220. var tabTag = xw.tabTag;
  221. if (ddTarget == window.parent) {
  222. if (ddTarget.$('#tabPanel').length != 0) {
  223. //在tab框架中处理
  224. var tab = ddTarget.$('#' + tabTag).tabs('getSelected');
  225. var ff = ddTarget.$('#' + tabTag).find('#' + tab.attr('id') + 'Frame')[0];
  226. ff.contentWindow.$('#' + dgTag).datagrid('reload');
  227. }
  228. else {
  229. //单页调试模式处理
  230. ddTarget.$('#' + dgTag).datagrid('reload');
  231. }
  232. }
  233. else {
  234. ddTarget.parent.$('#' + dgTag).datagrid('reload');
  235. }
  236. },
  237. 'dialogGotoUrl': function (ops) {
  238. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  239. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  240. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  241. var newUrl = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
  242. dialogTarget.$('#' + dialogTag).find('#ddFrame')[0].src = newUrl;
  243. },
  244. 'dialogShow': function (ops) {
  245. var modal = typeof (ops.modal) == 'undefined' ? xw.dialogModal : ops.modal;
  246. //if (!modal) xw.dialogTag = 'd' + Math.random().toString(36).slice(2);
  247. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  248. var newUrl = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
  249. //var newUrl = url.indexOf('?') > -1 ? url + '&dd=' + xw.dialogTag : url + '?dd=' + xw.dialogTag;
  250. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  251. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  252. if (dialogTarget.$('#' + dialogTag).length == 0) {
  253. dialogTarget.$('body').append('<div id="' + dialogTag + '"></div>');
  254. }
  255. dialogTarget.$('#' + dialogTag).dialog({
  256. iconCls: typeof (ops.iconCls) == 'undefined' ? 'icon-grid' : ops.iconCls,
  257. title: typeof (ops.title) == 'undefined' ? '数据操作' : ops.title,
  258. top: typeof (ops.top) == 'undefined' ? ($(dialogTarget).height() - xw.dialogHeight) * 0.5 : ops.top,
  259. left: typeof (ops.left) == 'undefined' ? ($(dialogTarget).width() - xw.dialogWidth) * 0.5 : ops.left,
  260. width: typeof (ops.width) == 'undefined' ? xw.dialogWidth : ops.width,
  261. height: typeof (ops.height) == 'undefined' ? xw.dialogHeight : ops.height,
  262. closed: false,
  263. cache: false,
  264. maximizable: true,
  265. maximized: false,
  266. minimizable: false,
  267. minimized: true,
  268. collapsible: false,
  269. resizable: true,
  270. content: '<div style="overflow:hidden;width:100%;height:100%;"><iframe id="ddFrame" scrolling="yes" frameborder="0" src="" style="width:100%;height:100%;"></iframe></div>',
  271. modal: modal
  272. });
  273. dialogTarget.$('#' + dialogTag).find('#ddFrame')[0].src = newUrl;
  274. },
  275. 'dialogSave': function (ops) {
  276. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  277. var newUrl = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
  278. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  279. var formTag = typeof (ops.formTag) == 'undefined' ? xw.formTag : ops.formTag;
  280. var tabTag = typeof (ops.tabTag) == 'undefined' ? xw.tabTag : ops.tabTag;
  281. var datagridTag = typeof (ops.datagridTag) == 'undefined' ? xw.datagridTag : ops.datagridTag;
  282. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  283. var afterSaveUrl = typeof (ops.afterSaveUrl) == 'undefined' ? xw.afterSaveUrl : ops.afterSaveUrl;
  284. $.messager.progress();
  285. $('#' + formTag).form('submit', {
  286. url: newUrl,
  287. onSubmit: function () {
  288. //获取编辑器数据
  289. if (typeof (xeditor) != 'undefined') {
  290. for (var i = 0; i < xeditor.length; i++) {
  291. $('#' + xeditor[i].key.substring(0, xeditor[i].key.length - 6)).val(xeditor[i].getContent());
  292. }
  293. }
  294. //校验数据
  295. return $('#' + formTag).form("validate");
  296. },
  297. success: function (data) {
  298. var result = eval("(" + data + ")");
  299. if (result['success'] == 'true' || result['success'] == true) {
  300. //执行成功操作
  301. if (dialogTarget == window.parent) {
  302. if (dialogTarget.$('#' + tabTag).length != 0) {
  303. //在tab框架中处理
  304. var tab = dialogTarget.$('#' + tabTag).tabs('getSelected');
  305. var ff = dialogTarget.$('#' + tabTag).find('#' + tab.attr('id') + 'Frame')[0];
  306. ff.contentWindow.$('#' + datagridTag).datagrid('reload');
  307. }
  308. else {
  309. //单页调试模式处理
  310. dialogTarget.$('#' + datagridTag).datagrid('reload');
  311. }
  312. //如果定义的保存之后的后续链接 不关闭窗口 直接跳转
  313. if (afterSaveUrl == "") {
  314. dialogTarget.$('#' + dialogTag).dialog('close');
  315. }
  316. else {
  317. dialogTarget.$('#' + datagridTag).find('#ddFrame')[0].src = afterSaveUrl.replace('@id', result['标识']).replace('@guid', result['标识']);
  318. }
  319. }
  320. else {
  321. ddTarget.parent.$('#' + dgTag).datagrid('reload');
  322. //如果定义的保存之后的后续链接 不关闭窗口 直接跳转
  323. if (afterSaveUrl == "") {
  324. ddTarget.parent.$('#' + dialogTag).dialog('close');
  325. }
  326. else {
  327. ddTarget.parent.$('#' + ddTag).find('#ddFrame')[0].src = afterSaveUrl.replace('@id', result['标识']).replace('@guid', result['标识']);
  328. }
  329. }
  330. }
  331. else {
  332. //执行失败操作
  333. alert(result['message']);
  334. }
  335. $.messager.progress('close');
  336. }
  337. });
  338. },
  339. 'dialogDelete': function (ops) {
  340. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  341. var newUrl = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
  342. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  343. var datagridTag = typeof (ops.datagridTag) == 'undefined' ? xw.datagridTag : ops.datagridTag;
  344. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  345. var tabTag = typeof (ops.tabTag) == 'undefined' ? xw.tabTag : ops.tabTag;
  346. $.messager.confirm('删除操作', '您确定要删除当前记录吗?', function (r) {
  347. if (r) {
  348. $.get(newUrl, function (data) {
  349. var result = eval("(" + data + ")");
  350. if (result['success'] == 'true' || result['success'] == true) {
  351. //删除成功
  352. if (dialogTarget == window.parent) {
  353. if (dialogTarget.$('#' + tabTag).length != 0) {
  354. //在tab框架中处理
  355. var tab = dialogTarget.$('#' + tabTag).tabs('getSelected');
  356. var ff = dialogTarget.$('#' + tabTag).find('#' + tab.attr('id') + 'Frame')[0];
  357. ff.contentWindow.$('#' + datagridTag).datagrid('reload');
  358. dialogTarget.$('#' + dialogTag).dialog('close');
  359. }
  360. else {
  361. //单页调试模式
  362. dialogTarget.$('#' + datagridTag).datagrid('reload');
  363. dialogTarget.$('#' + dialogTag).dialog('close');
  364. }
  365. }
  366. else {
  367. dialogTarget.parent.$('#' + datagridTag).datagrid('reload');
  368. dialogTarget.parent.$('#' + dialogTag).dialog('close');
  369. }
  370. } else {
  371. //删除失败
  372. alert(result['message']);
  373. }
  374. });
  375. }
  376. });
  377. },
  378. 'dialogSearch': function (ops) {
  379. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  380. var tabTag = typeof (ops.tabTag) == 'undefined' ? xw.tabTag : ops.tabTag;
  381. var datagridTag = typeof (ops.datagridTag) == 'undefined' ? xw.datagridTag : ops.datagridTag;
  382. var searchtextTag = typeof (ops.searchtextTag) == 'undefined' ? xw.datagridsearchtextTag : ops.searchtextTag;
  383. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  384. var searchStr = typeof (ops.searchStr) == 'undefined' ? '' : ops.searchStr;
  385. if (dialogTarget == window.parent) {
  386. if (dialogTarget.$('#' + tabTag).length != 0) {
  387. //在tab框架中处理
  388. var tab = dialogTarget.$('#' + tabTag).tabs('getSelected');
  389. var ff = dialogTarget.$('#' + tabTag).find('#' + tab.attr('id') + 'Frame')[0];
  390. //设置搜索文字
  391. if (searchStr != "{}") {
  392. ff.contentWindow.$('#' + searchtextTag).linkbutton({
  393. iconCls: 'icon-redo',
  394. text: searchStr,
  395. plain: true,
  396. onClick: ff.contentWindow.toolbarSearchText
  397. });
  398. }
  399. else {
  400. ff.contentWindow.$('#' + searchtextTag).text('');
  401. ff.contentWindow.$('#' + datagridTag).datagrid('load', {});
  402. }
  403. //表格读取数据
  404. ff.contentWindow.$('#' + datagridTag).datagrid('load', eval('(' + searchStr + ')'));
  405. dialogTarget.$('#' + dialogTag).dialog('close');
  406. }
  407. else {
  408. //单页调试处理
  409. //设置搜索文字
  410. if (searchStr != "{}") {
  411. dialogTarget.$('#' + searchtextTag).linkbutton({
  412. iconCls: 'icon-redo',
  413. text: searchStr,
  414. plain: true,
  415. onClick: ddTarget.toolbarSearchText
  416. });
  417. }
  418. else {
  419. dialogTarget.$('#' + searchtextTag).text('');
  420. dialogTarget.$('#' + datagridTag).datagrid('load', {});
  421. }
  422. //表格读取数据
  423. dialogTarget.$('#' + datagridTag).datagrid('load', eval('(' + searchStr + ')'));
  424. dialogTarget.$('#' + dialogTag).dialog('close');
  425. }
  426. }
  427. else {
  428. //设置搜索文字
  429. if (searchStr != "{}") {
  430. dialogTarget.parent.$('#' + searchtextTag).linkbutton({
  431. iconCls: 'icon-redo',
  432. text: searchStr,
  433. plain: true,
  434. onClick: dialogTarget.parent.toolbarSearchText
  435. });
  436. }
  437. else {
  438. dialogTarget.parent.$('#' + searchtextTag).text('');
  439. dialogTarget.parent.$('#' + datagridTag).datagrid('load', {});
  440. }
  441. //表格读取数据
  442. dialogTarget.parent.$('#' + datagridTag).datagrid('load', eval('(' + searchStr + ')'));
  443. dialogTarget.parent.$('#' + dialogTag).dialog('close');
  444. }
  445. },
  446. 'dialogClose': function () {
  447. var ddTag = xw.dialogTag;
  448. xw.dialogTarget.parent.$('#' + ddTag).dialog('close');
  449. },
  450. 'dialogSetTitle': function (ops) {
  451. var dialogTag = typeof (ops.dialogTag) == 'undefined' ? xw.dialogTag : ops.dialogTag;
  452. var dialogTarget = typeof (ops.dialogTarget) == 'undefined' ? xw.dialogTarget : ops.dialogTarget;
  453. var title = typeof (ops.title) == 'undefined' ? '' : ops.title;
  454. dialogTarget.parent.$('#' + dialogTag).dialog('open').dialog('setTitle', title);
  455. },
  456. 'formLoad': function (ops) {
  457. var formTag = typeof (ops.formTag) == 'undefined' ? xw.formTag : ops.formTag;
  458. var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
  459. var newUrl = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
  460. var callBack = typeof (ops.callBack) == 'undefined' ? function () { } : ops.callBack;
  461. $.messager.progress();
  462. $.get(newUrl, function (data) {
  463. if (data != '') {
  464. //加载成功
  465. var jsonStr = eval('(' + data + ')');
  466. //表单加载
  467. $('#' + formTag).form('load', jsonStr);
  468. //div或span赋值
  469. //<div xfieldvalue="true">或<span xfieldvalue="true">
  470. var xfieldvalue = $('div[xfieldvalue="true"],span[xfieldvalue="true"]');
  471. $.each(xfieldvalue, function (i, item) {
  472. $('div #' + item.id).html(jsonStr[item.id]);
  473. });
  474. //图片赋值
  475. //<img xfieldvalue="true">
  476. var ximg = $('img[xfieldvalue="true"]');
  477. $.each(ximg, function (i, item) {
  478. if (jsonStr[item.id] == '') {
  479. $('#' + item.id).remove();
  480. }
  481. else {
  482. item.src = jsonStr[item.id];
  483. $('#' + item.id).css('max-width', '100%');
  484. }
  485. });
  486. //链接赋值
  487. //<a xfieldvalue="true">
  488. $('a[xfieldvalue="true"]').each(function (i, item) {
  489. item.href = jsonStr[item.id];
  490. });
  491. //隐藏字段赋值
  492. //<input xfieldvalue="true">
  493. $('input:hidden[xfieldvalue="true"]').each(function (i, item) {
  494. item.value = jsonStr[item.name];
  495. });
  496. //上传文件控件处理 开始=====================================================
  497. //<input xfilebox="true">
  498. var xfilebox = $('input[xfilebox="true"]');
  499. $.each(xfilebox, function (i, item) {
  500. $('#' + item.id).filebox({
  501. buttonText: '选择文件',
  502. buttonAlign: 'right',
  503. accept: 'image/*',
  504. onChange: xw.imagePreview
  505. });
  506. });
  507. //<img xfilebox="true">
  508. var ximage = $('img[xfilebox="true"]');
  509. $.each(ximage, function (i, item) {
  510. if (jsonStr[item.id] == '') {
  511. //空值显示上传控件
  512. xw.imageDelete(item.id);
  513. }
  514. else {
  515. //有值进行赋值 并绑定事件
  516. item.src = jsonStr[item.id];
  517. item.title = "双击图片删除!";
  518. $('#' + item.id).dblclick(function () {
  519. if (confirm('您确定要删除图片吗?')) xw.imageDelete(xw.id)
  520. });
  521. }
  522. });
  523. //上传文件控件处理 结束=====================================================
  524. //编辑器的文本
  525. var xe = $('[xeditor="true"]');
  526. $.each(xe, function (i, item) {
  527. item.value = jsonStr[item.name];
  528. });
  529. //编辑器加载
  530. if (typeof (xeditor) != 'undefined') {
  531. //如果使用ue编辑器
  532. if (typeof (UE) != 'undefined') {
  533. for (var i = 0; i < xeditor.length; i++) {
  534. UE.getEditor(xeditor[i].key).ready(function () {
  535. UE.getEditor(this.key).setContent($('#' + this.key.substring(0, +this.key.length - 6)).val());
  536. //UE.getEditor(this.key).execCommand('insertHtml', $('#' + this.key.substring(0, +this.key.length - 6)).val());
  537. })
  538. }
  539. }
  540. //如果使用um编辑器
  541. if (typeof (UM) != 'undefined') {
  542. for (var i = 0; i < xeditor.length; i++) {
  543. UM.getEditor(xeditor[i].key).ready(function () {
  544. UM.getEditor(this.key).setContent($('#' + this.key.substring(0, +this.key.length - 6)).val());
  545. //UM.getEditor(this.key).execCommand('insertHtml', $('#' + this.key.substring(0, +this.key.length - 6)).val());
  546. })
  547. }
  548. }
  549. }
  550. //加载easyui-switchbutton的值
  551. var sb = $('input.easyui-switchbutton');
  552. $.each(sb, function (i, item) {
  553. if (jsonStr[item.id].toLowerCase() == 'true' || jsonStr[item.id] == '1')
  554. $('#' + item.id).switchbutton('check');
  555. else
  556. $('#' + item.id).switchbutton('uncheck');
  557. });
  558. //true false 替换图标
  559. var xtruefalse = $('div[xtruefalse="true"]');
  560. $.each(xtruefalse, function (i, item) {
  561. if (jsonStr[item.id] == 'True') {
  562. $('#' + item.id).html('<img src="/js/themes/icons/ok.png">');
  563. }
  564. else {
  565. $('#' + item.id).html('<img src="/js/themes/icons/cancel.png">');
  566. }
  567. });
  568. //给确认密码赋值
  569. if ($('#确认密码').length > 0 && $('#密码').length > 0) {
  570. $('#确认密码').textbox('setText', $('#密码').textbox('getValue'));
  571. $('#确认密码').textbox('setValue', $('#密码').textbox('getValue'));
  572. }
  573. //callback
  574. callBack(jsonStr);
  575. $.messager.progress('close');
  576. }
  577. else {
  578. //载入失败
  579. $.messager.progress('close');
  580. alert('数据不存在或已被删除!');
  581. }
  582. });
  583. },
  584. 'formGet': function () {
  585. var ss = '{';
  586. var obj = $('input:hidden');
  587. var list = [];
  588. var repeat = -1;
  589. $.each(obj, function (i, item) {
  590. if (item.name != "") {
  591. if (item.value != '') {
  592. repeat = -1;
  593. for (var j = 0; j < list.length; j++) {
  594. if (item.name == list[j].name) repeat = j;
  595. };
  596. if (repeat >= 0) {
  597. list[repeat].value += ',' + item.value;
  598. }
  599. else {
  600. var listitem = {};
  601. listitem.name = item.name;
  602. listitem.value = item.value;
  603. list.push(listitem);
  604. }
  605. }
  606. }
  607. });
  608. for (var k = 0; k < list.length; k++) {
  609. if (ss != '{') ss += ',';
  610. ss += '\'' + list[k].name + '\':\'' + list[k].value + '\'';
  611. }
  612. ss += '}';
  613. return ss;
  614. },
  615. 'imagePreview': function () {
  616. var inputObject = document.getElementsByTagName("input");
  617. var fileCount = 0;
  618. for (i = 0; i < inputObject.length; i++) {
  619. if (inputObject[i].type == "file") {
  620. fileCount++;
  621. var f = document.getElementById('filebox_file_id_' + fileCount).files[0];
  622. if (f) {
  623. var fileObject = document.getElementById('filebox_file_id_' + fileCount);
  624. var src;
  625. if (window.navigator.userAgent.indexOf("Chrome") >= 1 || window.navigator.userAgent.indexOf("Safari") >= 1) {
  626. src = window.webkitURL.createObjectURL(f);
  627. }
  628. else {
  629. src = window.URL.createObjectURL(f);
  630. }
  631. if (document.getElementById(fileObject.id + '_img_preview')) {
  632. document.getElementById(fileObject.id + '_img_preview').src = src;
  633. }
  634. else {
  635. $('#' + fileObject.name).before('<img id="' + fileObject.id + '_img_preview" src="' + src + '" style="max-width: 100%;" title="双击图片删除!" ondblclick="$(\'#' + fileObject.id + '_img_preview\').remove();$(\'#' + fileObject.id + '_br_preview\').remove();$(\'#' + fileObject.name + '\').filebox(\'setValue\',\'\')"><br id="' + fileObject.id + '_br_preview">');
  636. }
  637. }
  638. }
  639. }
  640. },
  641. 'imageDelete': function (id) {
  642. var imgTag = '<input id="' + id + '" name="' + id + '" type="text" style="width:100%;height:32px;">';
  643. var imgObject = $('#' + id);
  644. imgObject.before(imgTag);
  645. imgObject.remove();
  646. $('#' + id).filebox({
  647. buttonText: '选择文件',
  648. buttonAlign: 'right',
  649. accept: 'image/*',
  650. onChange: xw.imagePreview
  651. });
  652. //文件和数据库字段删除操作待处理
  653. }
  654. }