You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

917 lines
29 KiB

5 days ago
  1. $(function () {
  2. document.body.className = localStorage.getItem('config-skin');
  3. $("[data-toggle='tooltip']").tooltip();
  4. })
  5. $.reload = function () {
  6. location.reload();
  7. return false;
  8. }
  9. $.loading = function (bool, text) {
  10. var $loadingpage = top.$("#loadingPage");
  11. var $loadingtext = $loadingpage.find('.loading-content');
  12. if (bool) {
  13. $loadingpage.show();
  14. } else {
  15. if ($loadingtext.attr('istableloading') == undefined) {
  16. $loadingpage.hide();
  17. }
  18. }
  19. if (!!text) {
  20. $loadingtext.html(text);
  21. } else {
  22. $loadingtext.html("页面加载中,请稍等...");
  23. }
  24. $loadingtext.css("left", (top.$('body').width() - $loadingtext.width()) / 2 - 50);
  25. $loadingtext.css("top", (top.$('body').height() - $loadingtext.height()) / 2);
  26. }
  27. $.request = function (name) {
  28. var search = location.search.slice(1);
  29. var arr = search.split("&");
  30. for (var i = 0; i < arr.length; i++) {
  31. var ar = arr[i].split("=");
  32. if (ar[0] == name) {
  33. if (unescape(ar[1]) == 'undefined') {
  34. return "";
  35. } else {
  36. return unescape(ar[1]);
  37. }
  38. }
  39. }
  40. return "";
  41. }
  42. $.currentWindow = function () {
  43. var iframeId = top.$(".NFine_iframe:visible").attr("id");
  44. return top.frames[iframeId];
  45. }
  46. $.currentWindow1 = function () {
  47. var iframeId = window.parent.document.getElementsByName("CartonNoAdd");
  48. return top.frames[iframeId];
  49. }
  50. $.browser = function () {
  51. var userAgent = navigator.userAgent;
  52. var isOpera = userAgent.indexOf("Opera") > -1;
  53. if (isOpera) {
  54. return "Opera"
  55. };
  56. if (userAgent.indexOf("Firefox") > -1) {
  57. return "FF";
  58. }
  59. if (userAgent.indexOf("Chrome") > -1) {
  60. if (window.navigator.webkitPersistentStorage.toString().indexOf('DeprecatedStorageQuota') > -1) {
  61. return "Chrome";
  62. } else {
  63. return "360";
  64. }
  65. }
  66. if (userAgent.indexOf("Safari") > -1) {
  67. return "Safari";
  68. }
  69. if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
  70. return "IE";
  71. };
  72. }
  73. $.download = function (url, data, method) {
  74. if (url && data) {
  75. data = typeof data == 'string' ? data : jQuery.param(data);
  76. var inputs = '';
  77. $.each(data.split('&'), function () {
  78. var pair = this.split('=');
  79. inputs += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';
  80. });
  81. $('<form action="' + url + '" method="' + (method || 'post') + '">' + inputs + '</form>').appendTo('body').submit().remove();
  82. };
  83. };
  84. $.modalOpen = function (options) {
  85. var defaults = {
  86. id: null,
  87. title: '系统提示',
  88. width: "100px",
  89. height: "100px",
  90. url: '',
  91. shade: 0.3,
  92. btn: ['确定', '关闭'],
  93. btnclass: ['btn btn-primary', 'btn btn-danger'],
  94. end: null,
  95. callBack: null
  96. };
  97. var options = $.extend(defaults, options);
  98. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  99. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  100. top.layer.open({
  101. id: options.id,
  102. type: 2,
  103. shade: options.shade,
  104. title: options.title,
  105. fix: false,
  106. area: [_width, _height],
  107. content: options.url,
  108. btn: options.btn,
  109. btnclass: options.btnclass,
  110. yes: function () {
  111. options.callBack(options.id)
  112. }, cancel: function () {
  113. return true;
  114. }
  115. });
  116. }
  117. $.modalOpen3 = function (options) {
  118. var defaults = {
  119. id: null,
  120. title: '系统提示',
  121. width: "100px",
  122. height: "100px",
  123. url: '',
  124. shade: 0.3,
  125. btn: ['确定'],
  126. btnclass: ['btn btn-info', 'btn btn-danger'],
  127. callBack: null
  128. };
  129. var options = $.extend(defaults, options);
  130. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  131. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  132. top.layer.open({
  133. id: options.id,
  134. type: 2,
  135. closeBtn: 0,
  136. shade: options.shade,
  137. title: options.title,
  138. fix: false,
  139. area: [_width, _height],
  140. content: options.url,
  141. btn: options.btn,
  142. btnclass: options.btnclass,
  143. yes: function () {
  144. options.callBack(options.id)
  145. }, cancel: function () {
  146. options.callBack(options.id)
  147. }
  148. });
  149. $("#" + options.id).next().hide();//隐藏弹窗的按钮组
  150. }
  151. //条款
  152. $.modalOpenClean = function (options) {
  153. debugger;
  154. var defaults = {
  155. id: null,
  156. title: '系统提示',
  157. width: "100px",
  158. height: "100px",
  159. url: '',
  160. shade: 0.3,
  161. btn: [],
  162. btnclass: ['btn btn-danger'],
  163. end: null,
  164. callBack: null
  165. };
  166. var options = $.extend(defaults, options);
  167. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  168. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  169. top.layer.open({
  170. id: options.id,
  171. type: 2,
  172. shade: options.shade,
  173. title: options.title,
  174. fix: false,
  175. area: [_width, _height],
  176. content: options.url,
  177. btn: options.btn,
  178. maxmin: true,
  179. btnclass: options.btnclass,
  180. cancel: function () {
  181. return true;
  182. }
  183. //,
  184. //end: function () {
  185. // var $Gird = $("#gridList");
  186. // $("#gridList").trigger("reloadGrid");
  187. // //reloadData();
  188. //}
  189. });
  190. }
  191. $.modalOpenCommit = function (options) {
  192. var defaults = {
  193. id: null,
  194. title: '系统提示',
  195. width: "100px",
  196. height: "100px",
  197. url: '',
  198. shade: 0.3,
  199. btn: ['提交', '关闭'],
  200. btnclass: ['btn btn-info', 'btn btn-danger'],
  201. end: null,
  202. callBack: null
  203. };
  204. var options = $.extend(defaults, options);
  205. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  206. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  207. top.layer.open({
  208. id: options.id,
  209. type: 2,
  210. shade: options.shade,
  211. title: options.title,
  212. fix: false,
  213. area: [_width, _height],
  214. content: options.url,
  215. btn: options.btn,
  216. maxmin: true,
  217. btnclass: options.btnclass,
  218. yes: function () {
  219. options.callBack(options.id)
  220. }, cancel: function () {
  221. return true;
  222. },
  223. end: function () {
  224. var $Gird = $("#gridList");
  225. $("#gridList").trigger("reloadGrid");
  226. //reloadData();
  227. }
  228. });
  229. }
  230. $.submitFormNOClose = function (options) {
  231. var defaults = {
  232. url: "",
  233. param: [],
  234. loading: "正在提交数据...",
  235. //loading: "Submission of data...",
  236. success: null,
  237. close: true
  238. };
  239. var options = $.extend(defaults, options);
  240. $.loading(true, options.loading);
  241. window.setTimeout(function () {
  242. if ($('[name=__RequestVerificationToken]').length > 0) {
  243. options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  244. }
  245. $.ajax({
  246. url: options.url,
  247. data: options.param,
  248. type: "post",
  249. dataType: "json",
  250. success: function (data) {
  251. if (data.state == "success") {
  252. options.success(data);
  253. $.modalMsg(data.message, data.state);
  254. if (options.close == true) {
  255. //$.modalClose();
  256. }
  257. } else {
  258. $.modalAlert(data.message, data.state);
  259. }
  260. },
  261. error: function (XMLHttpRequest, textStatus, errorThrown) {
  262. $.loading(false);
  263. $.modalMsg(errorThrown, "error");
  264. },
  265. beforeSend: function () {
  266. $.loading(true, options.loading);
  267. },
  268. complete: function () {
  269. $.loading(false);
  270. }
  271. });
  272. }, 500);
  273. }
  274. $.modalOpenbyxu = function (options) {
  275. var defaults = {
  276. id: null,
  277. title: '系统提示',
  278. width: "100px",
  279. height: "100px",
  280. url: '',
  281. shade: 0.3,
  282. btn: [],
  283. btnclass: ['btn btn-info', 'btn btn-danger'],
  284. end: null,
  285. callBack: null
  286. };
  287. var options = $.extend(defaults, options);
  288. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  289. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  290. top.layer.open({
  291. id: options.id,
  292. type: 2,
  293. shade: options.shade,
  294. title: options.title,
  295. fix: false,
  296. area: [_width, _height],
  297. content: options.url,
  298. btn: options.btn,
  299. maxmin: true,
  300. btnclass: options.btnclass,
  301. yes: function () {
  302. options.callBack(options.id)
  303. }, cancel: function () {
  304. return true;
  305. },
  306. end: function () {
  307. var $Gird = $("#gridList");
  308. $("#gridList").trigger("reloadGrid");
  309. //reloadData();
  310. }
  311. });
  312. }
  313. //注册界面
  314. $.modalOpenRegister = function (options) {
  315. var defaults = {
  316. id: null,
  317. title: '系统提示',
  318. width: "100px",
  319. height: "100px",
  320. url: '',
  321. shade: 0.3,
  322. btn: ['注册', '关闭'],
  323. btnclass: ['btn btn-info', 'btn btn-danger'],
  324. end: null,
  325. callBack: null
  326. };
  327. var options = $.extend(defaults, options);
  328. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  329. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  330. top.layer.open({
  331. id: options.id,
  332. type: 2,
  333. shade: options.shade,
  334. title: options.title,
  335. fix: false,
  336. area: [_width, _height],
  337. content: options.url,
  338. btn: options.btn,
  339. maxmin: true,
  340. btnclass: options.btnclass,
  341. yes: function () {
  342. options.callBack(options.id)
  343. }, cancel: function () {
  344. return true;
  345. },
  346. end: function () {
  347. var $Gird = $("#gridList");
  348. $("#gridList").trigger("reloadGrid");
  349. //reloadData();
  350. }
  351. });
  352. }
  353. //送货单添加增加关闭按钮
  354. $.modalOpenOKAndCancel = function (options) {
  355. var defaults = {
  356. id: null,
  357. title: '系统提示',
  358. width: "100px",
  359. height: "100px",
  360. url: '',
  361. shade: 0.3,
  362. btn: ['确定'],
  363. btnclass: ['btn btn-primary', 'btn btn-danger'],
  364. end: null,
  365. callBack: null
  366. };
  367. var options = $.extend(defaults, options);//将两个参数合并成一个对象
  368. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  369. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  370. top.layer.open({
  371. id: options.id,
  372. type: 2,
  373. shade: options.shade,
  374. title: options.title,
  375. fix: false,
  376. area: [_width, _height],
  377. content: options.url,
  378. btn: options.btn,
  379. btnclass: options.btnclass,
  380. yes: function () {
  381. options.callBack(options.id)
  382. }, cancel: function () {
  383. options.btnClose(options.id);
  384. $(".btn-danger")
  385. }
  386. });
  387. }
  388. $.modalOpen1 = function (options) {
  389. var defaults = {
  390. id: null,
  391. title: '系统提示',
  392. width: "100px",
  393. height: "100px",
  394. url: '',
  395. shade: 0.3,
  396. btn: ['确定'],
  397. btnclass: ['btn btn-primary', 'btn btn-danger'],
  398. callBack: null
  399. };
  400. var options = $.extend(defaults, options);
  401. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  402. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  403. top.layer.open({
  404. id: options.id,
  405. type: 2,
  406. closeBtn:0,
  407. shade: options.shade,
  408. title: options.title,
  409. fix: false,
  410. area: [_width, _height],
  411. content: options.url,
  412. btn: options.btn,
  413. btnclass: options.btnclass,
  414. yes: function () {
  415. options.callBack(options.id)
  416. }, cancel: function () {
  417. options.callBack(options.id)
  418. }
  419. });
  420. }
  421. $.modalOpen2 = function (options) {
  422. var defaults = {
  423. id: null,
  424. title: '系统提示',
  425. width: "100px",
  426. height: "100px",
  427. url: '',
  428. shade: 0.3,
  429. btn: ['确定', '关闭'],
  430. btnclass: ['btn btn-primary', 'btn btn-danger'],
  431. end: null,
  432. callBack: null
  433. };
  434. var options = $.extend(defaults, options);
  435. var _width = top.$(window).width() > parseInt(options.width.replace('px', '')) ? options.width : top.$(window).width() + 'px';
  436. var _height = top.$(window).height() > parseInt(options.height.replace('px', '')) ? options.height : top.$(window).height() + 'px';
  437. top.layer.open({
  438. id: options.id,
  439. type: 2,
  440. shade: options.shade,
  441. title: options.title,
  442. fix: false,
  443. area: [_width, _height],
  444. content: options.url,
  445. btn: options.btn,
  446. maxmin:true,
  447. btnclass: options.btnclass,
  448. yes: function () {
  449. options.callBack(options.id)
  450. }, cancel: function () {
  451. return true;
  452. },
  453. end: function () {
  454. var $Gird = $("#gridList");
  455. $("#gridList").trigger("reloadGrid");
  456. reloadData();
  457. }
  458. });
  459. }
  460. $.modalConfirm = function (content, callBack) {
  461. top.layer.confirm(content, {
  462. icon: "fa-exclamation-circle",
  463. title: "提示信息",
  464. btn: ['确认', '取消'],
  465. btnclass: ['btn btn-primary', 'btn btn-danger'],
  466. }, function () {
  467. callBack(true);
  468. }, function () {
  469. callBack(false)
  470. });
  471. }
  472. $.modalConfirm2 = function (content, callBack) {
  473. top.layer.confirm(content, {
  474. icon: "fa-exclamation-circle",
  475. title: "系统消息",
  476. btn: ['确定', '取消'],
  477. btnclass: ['btn btn-primary', 'btn btn-danger'],
  478. }, function () {
  479. callBack(true);
  480. }, function () {
  481. callBack(false)
  482. });
  483. }
  484. $.modalAlert = function (content, type) {
  485. var icon = "";
  486. if (type == 'success') {
  487. icon = "fa-check-circle";
  488. }
  489. if (type == 'error') {
  490. icon = "fa-times-circle";
  491. }
  492. if (type == 'warning') {
  493. icon = "fa-exclamation-circle";
  494. }
  495. top.layer.alert(content, {
  496. icon: icon,
  497. //title: "System Message",
  498. title: "系统信息",
  499. btn: ['确认'],
  500. btnclass: ['btn btn-primary'],
  501. });
  502. }
  503. $.modalMsg = function (content, type) {
  504. if (type != undefined) {
  505. var icon = "";
  506. if (type == 'success') {
  507. icon = "fa-check-circle";
  508. }
  509. if (type == 'error') {
  510. icon = "fa-times-circle";
  511. }
  512. if (type == 'warning') {
  513. icon = "fa-exclamation-circle";
  514. }
  515. top.layer.msg(content, { icon: icon, time: 4000, shift: 5 });
  516. top.$(".layui-layer-msg").find('i.' + icon).parents('.layui-layer-msg').addClass('layui-layer-msg-' + type);
  517. } else {
  518. top.layer.msg(content);
  519. }
  520. }
  521. $.modalClose = function () {
  522. var index = top.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  523. var $IsdialogClose = top.$("#layui-layer" + index).find('.layui-layer-btn').find("#IsdialogClose");
  524. var IsClose = $IsdialogClose.is(":checked");
  525. if ($IsdialogClose.length == 0) {
  526. IsClose = true;
  527. }
  528. if (IsClose) {
  529. top.layer.close(index);
  530. } else {
  531. location.reload();
  532. }
  533. }
  534. $.submitForm = function (options) {
  535. var defaults = {
  536. url: "",
  537. param: [],
  538. loading: "正在提交数据...",
  539. //loading: "Submission of data...",
  540. success: null,
  541. close: true
  542. };
  543. var options = $.extend(defaults, options);
  544. $.loading(true, options.loading);
  545. window.setTimeout(function () {
  546. if ($('[name=__RequestVerificationToken]').length > 0) {
  547. options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  548. }
  549. $.ajax({
  550. url: options.url,
  551. data: options.param,
  552. type: "post",
  553. dataType: "json",
  554. success: function (data) {
  555. if (data.state == "success") {
  556. options.success(data);
  557. $.modalMsg(data.message, data.state);
  558. if (options.close == true) {
  559. $.modalClose();
  560. }
  561. } else {
  562. $.modalAlert(data.message, data.state);
  563. }
  564. },
  565. error: function (XMLHttpRequest, textStatus, errorThrown) {
  566. $.loading(false);
  567. $.modalMsg(errorThrown, "error");
  568. },
  569. beforeSend: function () {
  570. $.loading(true, options.loading);
  571. },
  572. complete: function () {
  573. $.loading(false);
  574. }
  575. });
  576. }, 500);
  577. }
  578. $.submitForm2 = function (options) {
  579. var defaults = {
  580. url: "",
  581. param: [],
  582. loading: "正在提交数据...",
  583. //loading: "Submission of data...",
  584. success: null,
  585. close: true
  586. };
  587. var options = $.extend(defaults, options);
  588. $.loading(true, options.loading);
  589. window.setTimeout(function () {
  590. if ($('[name=__RequestVerificationToken]').length > 0) {
  591. options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  592. }
  593. $.ajax({
  594. url: options.url,
  595. data: options.param,
  596. type: "post",
  597. dataType: "json",
  598. success: function (data) {
  599. if (data.state == "success") {
  600. options.success(data);
  601. $.modalAlert(data.message, data.state);
  602. if (options.close == true) {
  603. $.modalClose();
  604. }
  605. } else {
  606. $.modalAlert(data.message, data.state);
  607. }
  608. },
  609. error: function (XMLHttpRequest, textStatus, errorThrown) {
  610. $.loading(false);
  611. $.modalMsg(errorThrown, "error");
  612. },
  613. beforeSend: function () {
  614. $.loading(true, options.loading);
  615. },
  616. complete: function () {
  617. $.loading(false);
  618. }
  619. });
  620. }, 500);
  621. }
  622. $.submitForm3 = function (options) {
  623. var defaults = {
  624. url: "",
  625. param: [],
  626. loading: "正在提交数据...",
  627. //loading: "Submission of data...",
  628. success: null,
  629. close: true
  630. };
  631. var options = $.extend(defaults, options);
  632. $.loading(true, options.loading);
  633. window.setTimeout(function () {
  634. //if ($('[name=__RequestVerificationToken]').length > 0) {
  635. // options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  636. //}
  637. $.ajax({
  638. url: options.url,
  639. data: options.param,
  640. type: "post",
  641. dataType: "json",
  642. success: function (data) {
  643. if (data.state == "success") {
  644. options.success(data);
  645. $.modalMsg(data.message, data.state);
  646. if (options.close == true) {
  647. //window.parent.reloadData();
  648. $.modalClose();
  649. }
  650. } else {
  651. $.modalAlert(data.message, data.state);
  652. }
  653. },
  654. error: function (XMLHttpRequest, textStatus, errorThrown) {
  655. $.loading(false);
  656. $.modalMsg(errorThrown, "error");
  657. },
  658. beforeSend: function () {
  659. $.loading(true, options.loading);
  660. },
  661. complete: function () {
  662. $.loading(false);
  663. }
  664. });
  665. }, 500);
  666. }
  667. $.deleteForm = function (options) {
  668. var defaults = {
  669. prompt: "注:您确定要删除该项数据吗?",
  670. //prompt: "Note: are you sure you want to delete this data?",
  671. url: "",
  672. param: [],
  673. loading: "正在删除数据...",
  674. //loading: "Deleting data...",
  675. success: null,
  676. close: true
  677. };
  678. var options = $.extend(defaults, options);
  679. if ($('[name=__RequestVerificationToken]').length > 0) {
  680. options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  681. }
  682. $.modalConfirm(options.prompt, function (r) {
  683. if (r) {
  684. $.loading(true, options.loading);
  685. window.setTimeout(function () {
  686. $.ajax({
  687. url: options.url,
  688. data: options.param,
  689. type: "post",
  690. dataType: "json",
  691. success: function (data) {
  692. if (data.state == "success") {
  693. options.success(data);
  694. $.modalMsg(data.message, data.state);
  695. } else {
  696. $.modalAlert(data.message, data.state);
  697. }
  698. },
  699. error: function (XMLHttpRequest, textStatus, errorThrown) {
  700. $.loading(false);
  701. $.modalMsg(errorThrown, "error");
  702. },
  703. beforeSend: function () {
  704. $.loading(true, options.loading);
  705. },
  706. complete: function () {
  707. $.loading(false);
  708. }
  709. });
  710. }, 500);
  711. }
  712. });
  713. }
  714. $.jsonWhere = function (data, action) {
  715. if (action == null) return;
  716. var reval = new Array();
  717. $(data).each(function (i, v) {
  718. if (action(v)) {
  719. reval.push(v);
  720. }
  721. })
  722. return reval;
  723. }
  724. $.fn.jqGridRowValue = function () {
  725. var $grid = $(this);
  726. var selectedRowIds = $grid.jqGrid("getGridParam", "selarrrow");
  727. if (selectedRowIds != "") {
  728. var json = [];
  729. var len = selectedRowIds.length;
  730. for (var i = 0; i < len ; i++) {
  731. var rowData = $grid.jqGrid('getRowData', selectedRowIds[i]);
  732. json.push(rowData);
  733. }
  734. return json;
  735. } else {
  736. return $grid.jqGrid('getRowData', $grid.jqGrid('getGridParam', 'selrow'));
  737. }
  738. }
  739. $.fn.formValid = function () {
  740. return $(this).valid({
  741. errorPlacement: function (error, element) {
  742. element.parents('.formValue').addClass('has-error');
  743. element.parents('.has-error').find('i.error').remove();
  744. element.parents('.has-error').append('<i class="form-control-feedback fa fa-exclamation-circle error" data-placement="left" data-toggle="tooltip" title="' + error + '"></i>');
  745. $("[data-toggle='tooltip']").tooltip();
  746. if (element.parents('.input-group').hasClass('input-group')) {
  747. element.parents('.has-error').find('i.error').css('right', '33px')
  748. }
  749. },
  750. success: function (element) {
  751. element.parents('.has-error').find('i.error').remove();
  752. element.parent().removeClass('has-error');
  753. }
  754. });
  755. }
  756. $.fn.formSerialize = function (formdate) {
  757. var element = $(this);
  758. if (!!formdate) {
  759. for (var key in formdate) {
  760. var $id = element.find('#' + key);
  761. var value = $.trim(formdate[key]).replace(/&nbsp;/g, '');
  762. var type = $id.attr('type');
  763. if ($id.hasClass("select2-hidden-accessible")) {
  764. type = "select";
  765. }
  766. switch (type) {
  767. case "checkbox":
  768. if (value == "true") {
  769. $id.attr("checked", 'checked');
  770. } else {
  771. $id.removeAttr("checked");
  772. }
  773. break;
  774. case "select":
  775. $id.val(value).trigger("change");
  776. break;
  777. default:
  778. $id.val(value);
  779. break;
  780. }
  781. };
  782. return false;
  783. }
  784. var postdata = {};
  785. element.find('input,select,textarea').each(function (r) {
  786. var $this = $(this);
  787. var id = $this.attr('id');
  788. var type = $this.attr('type');
  789. switch (type) {
  790. case "checkbox":
  791. postdata[id] = $this.is(":checked");
  792. break;
  793. default:
  794. var value = $this.val() == "" ? "&nbsp;" : $this.val();
  795. if (!$.request("keyValue")) {
  796. value = value.replace(/&nbsp;/g, '');
  797. }
  798. postdata[id] = value;
  799. break;
  800. }
  801. });
  802. if ($('[name=__RequestVerificationToken]').length > 0) {
  803. postdata["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
  804. }
  805. return postdata;
  806. };
  807. $.fn.bindText = function (options) {
  808. var defaults = {
  809. id: "id",
  810. text: "text",
  811. search: false,
  812. url: "",
  813. param: [],
  814. change: null
  815. };
  816. var options = $.extend(defaults, options);
  817. var $element = $(this);
  818. if (options.url != "") {
  819. $.ajax({
  820. url: options.url,
  821. data: options.param,
  822. dataType: "text",
  823. async: false,
  824. success: function (data) {
  825. $element.val(data);
  826. }
  827. });
  828. }
  829. }
  830. $.fn.bindSelect = function (options) {
  831. var defaults = {
  832. id: "id",
  833. text: "text",
  834. search: false,
  835. url: "",
  836. param: [],
  837. change: null
  838. };
  839. var options = $.extend(defaults, options);
  840. var $element = $(this);
  841. if (options.url != "") {
  842. $.ajax({
  843. url: options.url,
  844. data: options.param,
  845. dataType: "json",
  846. async: false,
  847. success: function (data) {
  848. $.each(data, function (i) {
  849. $element.append($("<option></option>").val(data[i][options.id]).html(data[i][options.text]));
  850. });
  851. $element.select2({
  852. minimumResultsForSearch: options.search == true ? 0 : -1
  853. });
  854. $element.on("change", function (e) {
  855. if (options.change != null) {
  856. options.change(data[$(this).find("option:selected").index()]);
  857. }
  858. $("#select2-" + $element.attr('id') + "-container").html($(this).find("option:selected").text().replace(/  /g, ''));
  859. });
  860. }
  861. });
  862. } else {
  863. $element.select2({
  864. minimumResultsForSearch: -1
  865. });
  866. }
  867. }
  868. $.fn.authorizeButton = function () {
  869. var moduleId = top.$(".NFine_iframe:visible").attr("id").substr(6);
  870. var dataJson = top.clients.authorizeButton[moduleId];
  871. var $element = $(this);
  872. $element.find('a[authorize=yes]').attr('authorize', 'no');
  873. if (dataJson != undefined) {
  874. $.each(dataJson, function (i) {
  875. $element.find("#" + dataJson[i].F_EnCode).attr('authorize', 'yes');
  876. });
  877. }
  878. $element.find("[authorize=no]").parents('li').prev('.split').remove();
  879. $element.find("[authorize=no]").parents('li').remove();
  880. $element.find('[authorize=no]').remove();
  881. }
  882. $.fn.dataGrid = function (options) {
  883. var defaults = {
  884. datatype: "json",
  885. autowidth: true,
  886. rownumbers: true,
  887. shrinkToFit: false,
  888. gridview: true
  889. };
  890. var options = $.extend(defaults, options);
  891. var $element = $(this);
  892. options["onSelectRow"] = function (rowid) {
  893. if ($(this).jqGrid("getGridParam", "selrow") != null) {
  894. var length = $(this).jqGrid("getGridParam", "selrow").length;
  895. var $operate = $(".operate");
  896. if (length > 0) {
  897. $operate.animate({ "left": 0 }, 200);
  898. } else {
  899. $operate.animate({ "left": '-100.1%' }, 200);
  900. }
  901. $operate.find('.close').click(function () {
  902. $operate.animate({ "left": '-100.1%' }, 200);
  903. })
  904. }
  905. };
  906. $element.jqGrid(options);
  907. };