説明なし

keys.js 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /**
  2. * Created by TT on 2018/1/30.
  3. */
  4. ;
  5. spa_define(function () {
  6. return $.use(["spa", "util", "form"], function (spa, util, fb) {
  7. return {
  8. modal: function (data) {
  9. var root = spa.findInModal(".sys_question_keys");
  10. var ca = {ready: true, items: []};
  11. var form = fb.build(root.find(".newForm"), {
  12. keyList: ca
  13. });
  14. var oValue;
  15. var oJudge;
  16. util.get("../ajax/qa/question?id=" + data.id, null, function (data) {
  17. if (data) {
  18. if (data.keys) {
  19. form.val({keyList: split(data.keys)});
  20. }
  21. } else {
  22. util.alert("此问题不存在");
  23. }
  24. });
  25. var saveBtn = root.find(".opt-save"),
  26. save = function () {
  27. if (form.val().keyList) {
  28. form.val({
  29. keys: oString(form.val().keyList)
  30. });
  31. } else {
  32. util.alert("问题关键词不可为空");
  33. return;
  34. }
  35. util.post("../ajax/qa/question/keys", {
  36. id: data.id,
  37. keys: form.val().keys
  38. }, function () {
  39. spa.closeModal();
  40. if (data.hand) {
  41. data.hand();
  42. }
  43. }, {});
  44. };
  45. var trim = function (str) { //删除左右两端的空格
  46. return str.replace(/(^\s*)|(\s*$)/g, "");
  47. };
  48. var part = function (one, list, num) {
  49. oValue = one;
  50. oJudge = list || [];
  51. if (oJudge.length >= num) {
  52. util.alert("最多" + num + "个");
  53. return;
  54. }
  55. var repeat,
  56. b;
  57. if (!oValue) {
  58. util.alert('提示', '请先填写内容');
  59. return;
  60. }
  61. if (oValue.length > 15) {
  62. util.alert('提示', '添加内容不能超过15个字');
  63. return;
  64. } else {
  65. var oValueList = oValue.split(","),
  66. length = oValueList.length;
  67. for (var m = 0;m<oValueList.length;m++) {
  68. oValueList[m] = trim(oValueList[m]);
  69. }
  70. for (var j = 0; j < length; j++) {
  71. for (var n = j + 1; n < oValueList.length + 1;) {
  72. if (oValueList[j] == oValueList[n]) {
  73. oValueList.remove(n);
  74. repeat = false;
  75. } else {
  76. n++;
  77. }
  78. }
  79. }
  80. for (var j = 0; j < oValueList.length;) {
  81. for (var i = 0; i < oJudge.length; i++) {
  82. if (oValueList[j] == oJudge[i]) {
  83. oValueList.remove(j);
  84. repeat = false;
  85. b = true;
  86. }
  87. }
  88. if (b) {
  89. b = false
  90. } else j++;
  91. }
  92. if (repeat == false) {
  93. util.alert('提示', '添加内容不能重复');
  94. }
  95. for (var m = 0; m < oValueList.length; m++) {
  96. ca.items.push({code: oValueList[m], caption: oValueList[m]});
  97. oJudge.push(oValueList[m]);
  98. }
  99. }
  100. };
  101. Array.prototype.remove = function (obj) {
  102. for (var i = 0; i < this.length; i++) {
  103. var temp = this[i];
  104. if (!isNaN(obj)) {
  105. temp = i;
  106. }
  107. if (temp == obj) {
  108. for (var j = i; j < this.length; j++) {
  109. this[j] = this[j + 1];
  110. }
  111. this.length = this.length - 1;
  112. }
  113. }
  114. };
  115. function oString(data) {
  116. var arry = new Array();
  117. if (data) {
  118. for (var i = 0; i < data.length; i++) {
  119. arry.push(data[i]);
  120. }
  121. }
  122. return arry.join(",");
  123. }
  124. var split = function (data) {
  125. var index = data.split(",");
  126. var arr = [];
  127. for (var m = 0; m < index.length; m++) {
  128. ca.items.push({code: index[m], caption: index[m]});
  129. arr.push(index[m]);
  130. }
  131. return arr;
  132. };
  133. root.find(".opt-key").on("click", function () {
  134. part(form.val().newKey, form.val().keyList, 5);
  135. form.val({newKey: "", keyList: oJudge});
  136. });
  137. root.find(".modal-ctrl .icon-times").on("click", function () {
  138. spa.closeModal();
  139. });
  140. saveBtn.on("click", save);
  141. }
  142. }
  143. });
  144. });