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.

113 lines
3.9 KiB

2 years ago
  1. 'use strict';
  2. var fnPageInit = function () {
  3. var canDo = new CanDo({
  4. /**
  5. * 當前程式所有ID名稱集合
  6. */
  7. idKeys: ['OrgID', 'DepartmentID'],
  8. /**
  9. * 當前程式所有參數名稱集合
  10. */
  11. paramKeys: ['DepartmentID'],
  12. /**
  13. * 客製化驗證規則
  14. * @param {Object} pargs CanDo 對象
  15. */
  16. validRulesCus: function (pargs) {
  17. $.validator.addMethod("departmentidrule", function (value) {
  18. var bRetn = true;
  19. if (value) {
  20. g_api.ConnectLite(pargs.ProgramId, pargs._api.getcout,
  21. {
  22. DepartmentID: value,
  23. },
  24. function (res) {
  25. if (res.RESULT && res.DATA.rel > 0) {
  26. bRetn = false;
  27. }
  28. }, null, false);
  29. }
  30. return bRetn;
  31. });
  32. },
  33. /**
  34. * 驗證規則
  35. */
  36. validRules: function (pargs) {
  37. return {
  38. onfocusout: false,
  39. rules: {
  40. DepartmentID: { departmentidrule: pargs.action === 'Add' ? true : false },
  41. },
  42. messages: {
  43. DepartmentID: { departmentidrule: i18next.t("message.Data_Repeat") }// ╠message.Data_Repeat⇒此筆資料已建檔╣
  44. }
  45. };
  46. },
  47. /**
  48. * 處理新增資料參數
  49. * @param {Object} pargs CanDo 對象
  50. * @param {Object} data 當前表單資料
  51. */
  52. getInsertParams: function (pargs, data) {
  53. data.NameOfLevel = '';
  54. data.LevelOfDepartment = !(data.ParentDepartmentID) ? 0 : data.ParentDepartmentID.split('-').length;
  55. return data;
  56. },
  57. /**
  58. * 處理修改資料參數
  59. * @param {Object} pargs CanDo 對象
  60. * @param {Object} data 當前表單資料
  61. */
  62. getUpdateParams: function (pargs, data) {
  63. return pargs.options.getInsertParams(pargs, data);
  64. },
  65. /**
  66. * 頁面初始化
  67. * @param {Object} pargs CanDo 對象
  68. */
  69. pageInit: function (pargs) {
  70. var postArray = [];
  71. if (pargs.action === 'upd') {
  72. $('#DepartmentID').prop('disabled', true);
  73. postArray.push(pargs._getOne());
  74. }
  75. postArray.push(fnSetOrderByValueDrop(), fnSetOrderByValueDrop(), fnSetDeptDrop($('#ParentDepartmentID')), fnSetUserDrop([
  76. {
  77. Select: $('#ChiefOfDepartmentID'),
  78. ShowId: true,
  79. Select2: true,
  80. Action: pargs.action
  81. }
  82. ]));
  83. $.whenArray(postArray).done(function (res) {
  84. if (pargs.action === 'upd' && res[0].RESULT) {
  85. var oRes = res[0].DATA.rel;
  86. pargs._setFormVal(oRes);
  87. pargs._getPageVal();//緩存頁面值,用於清除
  88. }
  89. });
  90. }
  91. }),
  92. /**
  93. * 設定報關類別下拉選單
  94. */
  95. fnSetOrderByValueDrop = function () {
  96. return g_api.ConnectLite(canDo.ProgramId, canDo._api.getcout, {},
  97. function (res) {
  98. if (res.RESULT) {
  99. var iCount = res.DATA.rel;
  100. if (canDo.action === 'add') {
  101. iCount++;
  102. }
  103. $('#OrderByValue').html(createOptions(iCount));
  104. if (canDo.action === 'add') {
  105. $('#OrderByValue').val(iCount);
  106. }
  107. }
  108. });
  109. };
  110. };
  111. require(['base', 'select2', 'jsgrid', 'cando'], fnPageInit);