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.

138 lines
5.0 KiB

3 years ago
  1. 'use strict';
  2. var fnPageInit = function () {
  3. var canDo = new CanDo({
  4. /**
  5. * 當前程式所有ID名稱集合
  6. */
  7. idKeys: ['OrgID', 'ArgumentClassID', 'ArgumentID'],
  8. /**
  9. * 當前程式所有參數名稱集合
  10. */
  11. paramKeys: ['ArgumentClassID', 'ArgumentID'],
  12. /**
  13. * 客製化驗證規則
  14. * @param {Object} pargs CanDo 對象
  15. */
  16. validRulesCus: function (pargs) {
  17. $.validator.addMethod("argumentidrule", function (value) {
  18. var bRetn = true;
  19. if (value) {
  20. g_api.ConnectLite(pargs.ProgramId, pargs._api.getcout,
  21. {
  22. ArgumentClassID: $('#ArgumentClassID').val(),
  23. ArgumentID: value
  24. },
  25. function (res) {
  26. if (res.RESULT && res.DATA.rel > 0) {
  27. bRetn = false;
  28. }
  29. }, null, false);
  30. }
  31. return bRetn;
  32. });
  33. },
  34. /**
  35. * 驗證規則
  36. */
  37. validRules: {
  38. onfocusout: false,
  39. rules: {
  40. ArgumentID: { argumentidrule: true },
  41. },
  42. messages: {
  43. ArgumentID: { argumentidrule: i18next.t("message.Data_Repeat") }// ╠message.Data_Repeat⇒此筆資料已建檔╣
  44. }
  45. },
  46. /**
  47. * 頁面初始化
  48. * @param {Object} pargs CanDo 對象
  49. */
  50. pageInit: function (pargs) {
  51. var postArray = [];
  52. if (pargs.action === 'upd') {
  53. $('#ArgumentClassID,#ArgumentID').prop('disabled', true);
  54. postArray.push(pargs._getOne());
  55. }
  56. postArray.push(fnSetArgumentClassIDDrop(), fnSetOrderByValueDrop());
  57. //加載報關類別,加載報價頁簽,加載運輸方式, 加載機場, 加載貨棧場, 加載倉庫
  58. $.whenArray(postArray).done(function (res) {
  59. if (pargs.action === 'upd' && res[0].RESULT) {
  60. var oRes = res[0].DATA.rel;
  61. pargs._setFormVal(oRes);
  62. }
  63. fnSetParentArgumentDrop().done(function () {
  64. pargs._getPageVal();//緩存頁面值,用於清除
  65. });
  66. });
  67. $('#ArgumentValue').on('blur', function () {
  68. $('#ArgumentValue_CN').val(simplized(this.value));
  69. });
  70. }
  71. }),
  72. /**
  73. * 設定參數類別下拉選單
  74. * @return {Object} Ajax 物件
  75. */
  76. fnSetArgumentClassIDDrop = function () {
  77. return g_api.ConnectLite(canDo.QueryPrgId, canDo._api.getlist, {},
  78. function (res) {
  79. if (res.RESULT) {
  80. var saList = res.DATA.rel;
  81. $('#ArgumentClassID').html(createOptions(saList, 'ArgumentClassID', 'ArgumentClassName', true))
  82. .on('change', function () {
  83. fnSetOrderByValueDrop();
  84. });
  85. }
  86. });
  87. },
  88. /**
  89. * 設定報關類別下拉選單
  90. * @return {Object} Ajax 物件
  91. */
  92. fnSetOrderByValueDrop = function () {
  93. return g_api.ConnectLite(canDo.ProgramId, canDo._api.getcout,
  94. {
  95. ArgumentClassID: $('#ArgumentClassID').val()
  96. },
  97. function (res) {
  98. if (res.RESULT) {
  99. var iOrderByCount = res.DATA.rel;
  100. if (canDo.action === 'add') {
  101. iOrderByCount++;
  102. }
  103. $('#OrderByValue').html(createOptions(iOrderByCount));
  104. if (canDo.action === 'add') {
  105. $('#OrderByValue').val(iOrderByCount);
  106. }
  107. }
  108. });
  109. },
  110. /**
  111. * 獲取父層下拉資料
  112. * @return {Object} Ajax 物件
  113. */
  114. fnSetParentArgumentDrop = function () {
  115. var sArgumentClassID = $('#ArgumentClassID').val();
  116. if (sArgumentClassID) {
  117. return fnSetArgDrop([
  118. {
  119. ArgClassID: sArgumentClassID,
  120. Select: $('#ParentArgument'),
  121. ShowId: true,
  122. Select2: true,
  123. CallBack: function (data) {
  124. if (canDo.data.ParentArgument) {
  125. $('#ParentArgument').val(canDo.data.ParentArgument).trigger('change');
  126. }
  127. }
  128. }
  129. ]);
  130. }
  131. else {
  132. return $.Deferred().resolve().promise();
  133. }
  134. };
  135. };
  136. require(['base', 'select2', 'jsgrid', 'convetlng', 'cando'], fnPageInit);